@Override
public Session executeUpdate(ServiceFactory sf, Session session, String uuid,
long userId, Long sudoerId) {
Node node = nodeProvider.getManagerByUuid(uuid, sf);
if (node == null) {
node = new Node(0L, false);
}
if (session.getId() == null) {
session.setId(executeNextSessionId());
}
session.setNode(node);
session.setOwner(new Experimenter(userId, false));
if (sudoerId == null) {
session.setSudoer(null);
} else {
session.setSudoer(new Experimenter(sudoerId, false));
}
if (session.getClosed() == null) {
openSessions.put(session.getUuid(), session);
closedSessions.remove(session.getUuid());
} else {
closedSessions.put(session.getUuid(), session);
openSessions.remove(session.getUuid());
}
log.debug("Registered Session:{} ({})", session.getId(), session.getUuid());
return session;
}