diff --git a/src/main/java/org/olat/group/manager/BusinessGroupServiceImpl.java b/src/main/java/org/olat/group/manager/BusinessGroupServiceImpl.java index 30a5731295c394112efb5c742158e19c91549b96..826d46da6cddcd58abce280e8c6adcba00db5b3d 100644 --- a/src/main/java/org/olat/group/manager/BusinessGroupServiceImpl.java +++ b/src/main/java/org/olat/group/manager/BusinessGroupServiceImpl.java @@ -317,21 +317,24 @@ public class BusinessGroupServiceImpl implements BusinessGroupService, UserDataD @Override public BusinessGroup setLastUsageFor(final Identity identity, final BusinessGroup group) { BusinessGroup reloadedBusinessGroup = businessGroupDAO.loadForUpdate(group.getKey()); - reloadedBusinessGroup.setLastUsage(new Date()); - if(identity != null) { - List<SecurityGroup> secGroups = new ArrayList<SecurityGroup>(); - if(group.getOwnerGroup() != null) { - secGroups.add(group.getOwnerGroup()); - } - if(group.getPartipiciantGroup() != null) { - secGroups.add(group.getPartipiciantGroup()); - } - if(group.getWaitingGroup() != null) { - secGroups.add(group.getWaitingGroup()); + BusinessGroup mergedGroup = null; + if(reloadedBusinessGroup != null) { + reloadedBusinessGroup.setLastUsage(new Date()); + if(identity != null) { + List<SecurityGroup> secGroups = new ArrayList<SecurityGroup>(); + if(group.getOwnerGroup() != null) { + secGroups.add(group.getOwnerGroup()); + } + if(group.getPartipiciantGroup() != null) { + secGroups.add(group.getPartipiciantGroup()); + } + if(group.getWaitingGroup() != null) { + secGroups.add(group.getWaitingGroup()); + } + securityManager.touchMembership(identity, secGroups); } - securityManager.touchMembership(identity, secGroups); + mergedGroup = businessGroupDAO.merge(reloadedBusinessGroup); } - BusinessGroup mergedGroup = businessGroupDAO.merge(reloadedBusinessGroup); dbInstance.commit(); return mergedGroup; }