@@ -1647,7 +1647,7 @@ private boolean needToUpdateSynopticOnForumSave(Object target, boolean isDraft){
16471647 boolean isDraftOld = false ;
16481648 boolean availabilityChanged = false ;
16491649
1650- Set oldMembershipItemSet = null ;
1650+ Set < DBMembershipItem > oldMembershipItemSet = null ;
16511651
16521652 if (target instanceof DiscussionForum ){
16531653 DiscussionForum forum = ((DiscussionForum ) target );
@@ -1691,23 +1691,25 @@ else if (target instanceof Topic){
16911691 update = true ;
16921692 break ;
16931693 }
1694-
1695- Iterator iter2 = oldMembershipItemSet .iterator ();
1696- while (iter2 .hasNext ())
1697- {
1698- DBMembershipItem oldItem = (DBMembershipItem ) iter2 .next ();
1699- if (permBean .getItem ().getId ().equals (oldItem .getId ())){
1700- PermissionLevel oldLevel = oldItem .getPermissionLevel ();
1701- if (oldLevel == null ) {
1702- oldLevel = permissionLevelManager .getPermissionLevelByName (oldItem .getPermissionLevelName ());
1703- }
1704- Boolean oldModerate = (oldLevel != null ) ? oldLevel .getModeratePostings () : Boolean .FALSE ;
1705- if (permBean .getModeratePostings () != Boolean .TRUE .equals (oldModerate )){
1706- update = true ;
1707- break ;
1708- }
1709- }
1710- }
1694+
1695+ for (DBMembershipItem oldItem : oldMembershipItemSet ) {
1696+ if (permBean .getItem ().getId ().equals (oldItem .getId ())) {
1697+ PermissionLevel oldLevel = oldItem .getPermissionLevel ();
1698+ if (oldLevel == null ) {
1699+ if (PermissionLevelManager .PERMISSION_LEVEL_NAME_CUSTOM .equals (oldItem .getPermissionLevelName ())) {
1700+ // Custom item with no stored level — permissions are unknown, treat as changed
1701+ update = true ;
1702+ break ;
1703+ }
1704+ oldLevel = permissionLevelManager .getPermissionLevelByName (oldItem .getPermissionLevelName ());
1705+ }
1706+ Boolean oldModerate = (oldLevel != null ) ? oldLevel .getModeratePostings () : Boolean .FALSE ;
1707+ if (permBean .getModeratePostings () != Boolean .TRUE .equals (oldModerate )) {
1708+ update = true ;
1709+ break ;
1710+ }
1711+ }
1712+ }
17111713 if (update ){
17121714 break ;
17131715 }
0 commit comments