diff --git a/server-application-server/source/java/ch/systemsx/cisd/openbis/generic/server/AbstractServer.java b/server-application-server/source/java/ch/systemsx/cisd/openbis/generic/server/AbstractServer.java index cb5e1d901085163da1aacbec4dd50889467babee..4e1e72471a3eb72c59db37024d56ec33317872ff 100644 --- a/server-application-server/source/java/ch/systemsx/cisd/openbis/generic/server/AbstractServer.java +++ b/server-application-server/source/java/ch/systemsx/cisd/openbis/generic/server/AbstractServer.java @@ -621,6 +621,12 @@ public abstract class AbstractServer<T> extends AbstractServiceWithLogger<T> imp final Session session = sessionManager.getSession(sessionToken); + PersonPE attachedPerson = getDAOFactory().getPersonDAO().tryFindPersonByUserId(session.getUserName()); + if(attachedPerson != null) + { + getDAOFactory().getPersonDAO().lock(attachedPerson); + } + return displaySettingsProvider.executeActionWithPersonLock(session.getUserName(), new IDelegatedActionWithResult<SessionContextDTO>() { @Override public SessionContextDTO execute(final boolean didOperationSucceed) diff --git a/server-application-server/source/java/ch/systemsx/cisd/openbis/generic/server/api/v1/GeneralInformationChangingService.java b/server-application-server/source/java/ch/systemsx/cisd/openbis/generic/server/api/v1/GeneralInformationChangingService.java index c724f7d56b90f8e034430d5f9c2d2a2acdef595e..9226110c3252a700335ef12a21d02da555e650b8 100644 --- a/server-application-server/source/java/ch/systemsx/cisd/openbis/generic/server/api/v1/GeneralInformationChangingService.java +++ b/server-application-server/source/java/ch/systemsx/cisd/openbis/generic/server/api/v1/GeneralInformationChangingService.java @@ -150,6 +150,12 @@ public class GeneralInformationChangingService extends final PersonPE person = session.tryGetPerson(); if (person != null) { + PersonPE attachedPerson = getDAOFactory().getPersonDAO().tryFindPersonByUserId(person.getUserId()); + if(attachedPerson != null) + { + getDAOFactory().getPersonDAO().lock(attachedPerson); + } + displaySettingsProvider.executeActionWithPersonLock(person, new IDelegatedActionWithResult<Object>() { @Override public Object execute(final boolean didOperationSucceed)