Return-Path: Delivered-To: apmail-directory-commits-archive@www.apache.org Received: (qmail 77909 invoked from network); 12 Dec 2009 11:08:50 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 12 Dec 2009 11:08:50 -0000 Received: (qmail 94250 invoked by uid 500); 12 Dec 2009 11:08:50 -0000 Delivered-To: apmail-directory-commits-archive@directory.apache.org Received: (qmail 94186 invoked by uid 500); 12 Dec 2009 11:08:50 -0000 Mailing-List: contact commits-help@directory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@directory.apache.org Delivered-To: mailing list commits@directory.apache.org Received: (qmail 94177 invoked by uid 99); 12 Dec 2009 11:08:50 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 12 Dec 2009 11:08:50 +0000 X-ASF-Spam-Status: No, hits=-3.9 required=5.0 tests=AWL,BAYES_00 X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 12 Dec 2009 11:08:47 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 6C76323889D2; Sat, 12 Dec 2009 11:08:27 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r889925 - in /directory/shared/branches/shared-schema: ldap-schema-loader/src/test/java/org/apache/directory/server/schema/SchemaManagerAddTest.java ldap/src/main/java/org/apache/directory/shared/ldap/schema/ObjectClass.java Date: Sat, 12 Dec 2009 11:08:27 -0000 To: commits@directory.apache.org From: elecharny@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20091212110827.6C76323889D2@eris.apache.org> Author: elecharny Date: Sat Dec 12 11:08:26 2009 New Revision: 889925 URL: http://svn.apache.org/viewvc?rev=889925&view=rev Log: o When we have the same AT in MAY and MUST, we now generate an error. Fixed the test accordingly Modified: directory/shared/branches/shared-schema/ldap-schema-loader/src/test/java/org/apache/directory/server/schema/SchemaManagerAddTest.java directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/ObjectClass.java Modified: directory/shared/branches/shared-schema/ldap-schema-loader/src/test/java/org/apache/directory/server/schema/SchemaManagerAddTest.java URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap-schema-loader/src/test/java/org/apache/directory/server/schema/SchemaManagerAddTest.java?rev=889925&r1=889924&r2=889925&view=diff ============================================================================== --- directory/shared/branches/shared-schema/ldap-schema-loader/src/test/java/org/apache/directory/server/schema/SchemaManagerAddTest.java (original) +++ directory/shared/branches/shared-schema/ldap-schema-loader/src/test/java/org/apache/directory/server/schema/SchemaManagerAddTest.java Sat Dec 12 11:08:26 2009 @@ -28,9 +28,7 @@ import java.io.File; import java.io.IOException; -import java.util.HashSet; import java.util.List; -import java.util.Set; import javax.naming.NamingException; import javax.naming.directory.NoSuchAttributeException; @@ -1400,36 +1398,16 @@ objectClass.addMustAttributeTypeOids( "cn", "ref" ); objectClass.addMayAttributeTypeOids( "2.5.4.3" ); - assertTrue( schemaManager.add( objectClass ) ); - - assertEquals( 0, schemaManager.getErrors().size() ); - - assertTrue( isOCPresent( schemaManager, "1.1.1" ) ); - - ObjectClass added = schemaManager.lookupObjectClassRegistry( "1.1.1" ); - - assertNotNull( added ); - - assertNotNull( added.getMustAttributeTypes() ); - assertEquals( 2, added.getMustAttributeTypes().size() ); - Set expectedAT = new HashSet(); - - expectedAT.add( "cn" ); - expectedAT.add( "ref" ); - - for ( AttributeType attributeType : added.getMustAttributeTypes() ) - { - assertTrue( expectedAT.contains( attributeType.getName() ) ); + // Same AT i MAY and MUST : should fail + assertFalse( schemaManager.add( objectClass ) ); - expectedAT.remove( attributeType.getName() ); - } + assertEquals( 1, schemaManager.getErrors().size() ); + assertTrue( schemaManager.getErrors().get( 0 ) instanceof LdapSchemaViolationException ); - assertNotNull( added.getMayAttributeTypes() ); - assertEquals( 1, added.getMayAttributeTypes().size() ); - assertEquals( "2.5.4.3", added.getMayAttributeTypes().get( 0 ).getOid() ); + assertFalse( isOCPresent( schemaManager, "1.1.1" ) ); - assertEquals( ocrSize + 1, schemaManager.getObjectClassRegistry().size() ); - assertEquals( goidSize + 1, schemaManager.getOidRegistry().size() ); + assertEquals( ocrSize, schemaManager.getObjectClassRegistry().size() ); + assertEquals( goidSize, schemaManager.getOidRegistry().size() ); } Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/ObjectClass.java URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/ObjectClass.java?rev=889925&r1=889924&r2=889925&view=diff ============================================================================== --- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/ObjectClass.java (original) +++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/ObjectClass.java Sat Dec 12 11:08:26 2009 @@ -191,6 +191,19 @@ break; } + // Check that the MUST AT is not also present in the MAY AT + if ( mayAttributeTypes.contains( attributeType ) ) + { + // Already registered : this is an error + String msg = "Cannot register the SchemaOject " + oid + + ", there are some duplicate AT in MAY and MUST : " + mustAttributeTypeName; + + Throwable error = new LdapSchemaViolationException( msg, + ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX ); + errors.add( error ); + break; + } + mustAttributeTypes.add( attributeType ); } }