diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/AbstractServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/AbstractServer.java index 5518f68ebb968905d360738f17dd26a561cf51c4..bc12d8b482229fb46c7d1343d57696a52c5ff616 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/AbstractServer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/AbstractServer.java @@ -727,7 +727,9 @@ public abstract class AbstractServer<T> extends AbstractServiceWithLogger<T> imp displaySettingsProvider.getCurrentDisplaySettings(person); DisplaySettings newDisplaySettings = displaySettingsUpdate.update(currentDisplaySettings); - saveDisplaySettings(sessionToken, newDisplaySettings, -1); + displaySettingsProvider.replaceCurrentDisplaySettings(person, + newDisplaySettings); + getDAOFactory().getPersonDAO().updatePerson(person); } } } catch (InvalidSessionException e) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/DisplaySettingsProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/DisplaySettingsProvider.java index 628b6d12dafe368269d0e26d79abe26a4683452c..875eb41101b9ce982ce04cb4212013ad32ac0f25 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/DisplaySettingsProvider.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/DisplaySettingsProvider.java @@ -70,6 +70,14 @@ public class DisplaySettingsProvider return settings; } + public synchronized DisplaySettings replaceCurrentDisplaySettings(PersonPE person, + DisplaySettings settings) + { + displaySettingsMap.put(person.getUserId(), settings); + person.setDisplaySettings(settings); + return settings; + } + @SuppressWarnings("deprecation") public synchronized DisplaySettings replaceRegularDisplaySettings(PersonPE person, DisplaySettings settings)