You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2010/12/28 16:31:50 UTC

svn commit: r1053369 - /directory/apacheds/branches/apacheds-AP/core/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java

Author: elecharny
Date: Tue Dec 28 15:31:49 2010
New Revision: 1053369

URL: http://svn.apache.org/viewvc?rev=1053369&view=rev
Log:
o Added some missing 'break' in a switch
o Used the correct AT instead of using always the same
o Updated the SeqNumber in added entries

Modified:
    directory/apacheds/branches/apacheds-AP/core/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java

Modified: directory/apacheds/branches/apacheds-AP/core/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-AP/core/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java?rev=1053369&r1=1053368&r2=1053369&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-AP/core/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java (original)
+++ directory/apacheds/branches/apacheds-AP/core/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java Tue Dec 28 15:31:49 2010
@@ -1682,6 +1682,7 @@ public class SubentryInterceptor extends
     private long updateSeqNumber( DN apDn, Set<AdministrativeRoleEnum> subentryRoles ) throws LdapException
     {
         long seqNumber = directoryService.getNewApSeqNumber();
+        String seqNumberStr = Long.toString( seqNumber );
         List<Modification> modifications = new ArrayList<Modification>();
 
         for ( AdministrativeRoleEnum role : subentryRoles )
@@ -1691,19 +1692,19 @@ public class SubentryInterceptor extends
             switch ( role )
             {
                 case AccessControl :
-                    newSeqNumber = new DefaultEntryAttribute( ACCESS_CONTROL_SEQ_NUMBER_AT, Long.toString( seqNumber ) );
+                    newSeqNumber = new DefaultEntryAttribute( ACCESS_CONTROL_SEQ_NUMBER_AT, seqNumberStr );
                     break;
 
                 case CollectiveAttribute :
-                    newSeqNumber = new DefaultEntryAttribute( COLLECTIVE_ATTRIBUTE_SEQ_NUMBER_AT, Long.toString( seqNumber ) );
+                    newSeqNumber = new DefaultEntryAttribute( COLLECTIVE_ATTRIBUTE_SEQ_NUMBER_AT, seqNumberStr );
                     break;
 
                 case SubSchema :
-                    newSeqNumber = new DefaultEntryAttribute( SUB_SCHEMA_SEQ_NUMBER_AT, Long.toString( seqNumber ) );
+                    newSeqNumber = new DefaultEntryAttribute( SUB_SCHEMA_SEQ_NUMBER_AT, seqNumberStr );
                     break;
 
                 case TriggerExecution :
-                    newSeqNumber = new DefaultEntryAttribute( TRIGGER_EXECUTION_SEQ_NUMBER_AT, Long.toString( seqNumber ) );
+                    newSeqNumber = new DefaultEntryAttribute( TRIGGER_EXECUTION_SEQ_NUMBER_AT, seqNumberStr );
                     break;
 
             }
@@ -1766,6 +1767,8 @@ public class SubentryInterceptor extends
                         }
                     }
                 }
+                
+                break;
 
             case CollectiveAttribute :
                 nodeAP = directoryService.getCollectiveAttributeAPCache().getParentWithElement( dn );
@@ -1777,7 +1780,7 @@ public class SubentryInterceptor extends
                     if ( parentAP != null )
                     {
                         // Update the entry seqNumber for CA
-                        entry.put( ApacheSchemaConstants.ACCESS_CONTROL_SEQ_NUMBER_AT, Long.toString( parentAP.getSeqNumber() ) );
+                        entry.put( ApacheSchemaConstants.COLLECTIVE_ATTRIBUTE_SEQ_NUMBER_AT, Long.toString( parentAP.getSeqNumber() ) );
                         
                         // This entry has a CollectiveAttribute AP parent.
                         Set<Subentry> subentries = parentAP.getSubentries();
@@ -1799,6 +1802,8 @@ public class SubentryInterceptor extends
                         }
                     }
                 }
+                
+                break;
 
             case SubSchema :
                 nodeAP = directoryService.getSubschemaAPCache().getParentWithElement( dn );
@@ -1811,7 +1816,7 @@ public class SubentryInterceptor extends
                     {
                         // This entry has a Subschema AP parent.
                         // Update the entry seqNumber for CA
-                        entry.put( ApacheSchemaConstants.ACCESS_CONTROL_SEQ_NUMBER_AT, Long.toString( parentAP.getSeqNumber() ) );
+                        entry.put( ApacheSchemaConstants.SUB_SCHEMA_SEQ_NUMBER_AT, Long.toString( parentAP.getSeqNumber() ) );
                         
                         // This entry has a CollectiveAttribute AP parent.
                         Set<Subentry> subentries = parentAP.getSubentries();
@@ -1833,6 +1838,8 @@ public class SubentryInterceptor extends
                         }
                     }
                 }
+                
+                break;
 
             case TriggerExecution :
                 nodeAP = directoryService.getTriggerExecutionAPCache().getParentWithElement( dn );
@@ -1844,7 +1851,7 @@ public class SubentryInterceptor extends
                     if ( parentAP != null )
                     {
                         // Update the entry seqNumber for TE
-                        entry.put( ApacheSchemaConstants.ACCESS_CONTROL_SEQ_NUMBER_AT, Long.toString( parentAP.getSeqNumber() ) );
+                        entry.put( ApacheSchemaConstants.TRIGGER_EXECUTION_SEQ_NUMBER_AT, Long.toString( parentAP.getSeqNumber() ) );
                         
                         // This entry has a TriggerExecution AP parent.
                         Set<Subentry> subentries = parentAP.getSubentries();
@@ -1866,6 +1873,8 @@ public class SubentryInterceptor extends
                         }
                     }
                 }
+                
+                break;
         }
     }
     
@@ -2184,7 +2193,9 @@ public class SubentryInterceptor extends
             AdministrativePoint adminPoint = getAdministrativePoint( apDn );
             adminPoint.deleteSubentry( removedSubentry );
             
-            // And finally, update the parent AP SeqNumber
+            // And finally, update the parent AP SeqNumber for each role the subentry manage
+            Set<AdministrativeRoleEnum> subentryRoles = removedSubentry.getAdministrativeRoles();
+            updateSeqNumber( apDn, subentryRoles );
         }
         else
         {