diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/OpenBisSessionManager.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/OpenBisSessionManager.java index a404e7c904f396c4ad9ea11a714522dd93263c35..06b81318a0bfad102b00485c24298313ea51bc74 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/OpenBisSessionManager.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/OpenBisSessionManager.java @@ -22,6 +22,8 @@ import ch.systemsx.cisd.authentication.ILogMessagePrefixGenerator; import ch.systemsx.cisd.authentication.ISessionFactory; import ch.systemsx.cisd.common.server.IRemoteHostProvider; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory; +import ch.systemsx.cisd.openbis.generic.server.dataaccess.IPersonDAO; +import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE; import ch.systemsx.cisd.openbis.generic.shared.dto.Session; import ch.systemsx.cisd.openbis.generic.shared.util.HibernateUtils; @@ -59,9 +61,13 @@ public class OpenBisSessionManager extends DefaultSessionManager<Session> implem if (oldPerson != null && oldPerson.isSystemUser() == false) { - PersonPE person = daoFactory.getPersonDAO().getPerson(oldPerson.getId()); - HibernateUtils.initialize(person.getAllPersonRoles()); - session.setPerson(person); + IPersonDAO personDAO = daoFactory.getPersonDAO(); + PersonPE person = personDAO.tryGetByTechId(new TechId(oldPerson.getId())); + if (person != null) + { + HibernateUtils.initialize(person.getAllPersonRoles()); + session.setPerson(person); + } } } }