diff --git a/src/main/java/org/olat/portfolio/manager/InvitationDAO.java b/src/main/java/org/olat/portfolio/manager/InvitationDAO.java index e29e750efe277c2cecabab9683b2af7f7bc73986..cfba3cf6a7acb25fbf534cb868f2e31710abf38c 100644 --- a/src/main/java/org/olat/portfolio/manager/InvitationDAO.java +++ b/src/main/java/org/olat/portfolio/manager/InvitationDAO.java @@ -303,7 +303,7 @@ public class InvitationDAO { cal.add(Calendar.HOUR, -6); Date dateLimit = cal.getTime(); - StringBuilder sb = new StringBuilder(); + StringBuilder sb = new StringBuilder(512); sb.append("select invitation from ").append(InvitationImpl.class.getName()).append(" as invitation ") .append(" inner join invitation.baseGroup baseGroup ") .append(" where invitation.creationDate<:dateLimit")//someone can create an invitation but not add it to a policy within millisecond @@ -331,15 +331,17 @@ public class InvitationDAO { //normally only one identity for(Identity identity:identities) { if(identity.getStatus().compareTo(Identity.STATUS_VISIBLE_LIMIT) >= 0) { - //already deleted + //already deleted } else if(securityManager.isIdentityInSecurityGroup(identity, olatUserSecGroup)) { - //out of scope + //out of scope } else { - //delete user + //delete user UserDeletionManager.getInstance().deleteIdentity(identity); } } - dbInstance.getCurrentEntityManager().remove(invitation); + Invitation invitationRef = dbInstance.getCurrentEntityManager() + .getReference(InvitationImpl.class, invitation.getKey()); + dbInstance.getCurrentEntityManager().remove(invitationRef); dbInstance.commit(); } } diff --git a/src/test/java/org/olat/portfolio/manager/InvitationDAOTest.java b/src/test/java/org/olat/portfolio/manager/InvitationDAOTest.java index ce0dd0e13fc930af656fb361c65f80a1d20c1fec..3a351d06a32efcce3356af1233c395e613d39296 100644 --- a/src/test/java/org/olat/portfolio/manager/InvitationDAOTest.java +++ b/src/test/java/org/olat/portfolio/manager/InvitationDAOTest.java @@ -213,12 +213,11 @@ public class InvitationDAOTest extends OlatTestCase { //clean the invitations invitationDao.cleanUpInvitations(); + dbInstance.commitAndCloseSession(); //check that the invitation not was not deleted boolean afterVisible = epFrontendManager.isMapVisible(invitee, map.getOlatResource()); Assert.assertTrue(afterVisible); } - - }