From 85604f39c389c295fa9769b7631ba9201df32239 Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Tue, 29 Jan 2013 10:24:45 +0000 Subject: [PATCH] fixing bug in AbstractServer.updatePersonIfNecessary() SVN: 28222 --- .../openbis/generic/server/AbstractServer.java | 15 ++++++++++++--- .../query/server/api/v1/QueryApiServerTest.java | 2 ++ 2 files changed, 14 insertions(+), 3 deletions(-) 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 670fc57af0f..ad201071eba 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 @@ -348,17 +348,17 @@ public abstract class AbstractServer<T> extends AbstractServiceWithLogger<T> imp private final void updatePersonIfNecessary(final PersonPE person, final Principal principal) { boolean changed = false; - if (person.getEmail().equals(principal.getEmail()) == false) + if (updateNeeded(person.getEmail(), principal.getEmail())) { person.setEmail(principal.getEmail()); changed = true; } - if (person.getFirstName().equals(principal.getFirstName()) == false) + if (updateNeeded(person.getFirstName(), principal.getFirstName())) { person.setFirstName(principal.getFirstName()); changed = true; } - if (person.getLastName().equals(principal.getLastName()) == false) + if (updateNeeded(person.getLastName(), principal.getLastName())) { person.setLastName(principal.getLastName()); changed = true; @@ -375,6 +375,15 @@ public abstract class AbstractServer<T> extends AbstractServiceWithLogger<T> imp } } + private boolean updateNeeded(String currentValue, String newValue) + { + if (newValue == null) + { + return false; + } + return currentValue == null || currentValue.equals(newValue) == false; + } + protected final PersonPE getSystemUser() { return getSystemUser(daoFactory.getPersonDAO().listPersons()); diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/query/server/api/v1/QueryApiServerTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/query/server/api/v1/QueryApiServerTest.java index 9bfe012643b..c84f03e0fcf 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/query/server/api/v1/QueryApiServerTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/query/server/api/v1/QueryApiServerTest.java @@ -108,6 +108,8 @@ public class QueryApiServerTest extends AbstractServerTestCase one(personDAO).tryFindPersonByUserId(session.getUserName()); will(returnValue(person)); + one(personDAO).updatePerson(person); + one(queryServer).initDatabases(SESSION_TOKEN); } }); -- GitLab