mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Matthew Swift
19.01.2011 591ebf6d984dcb1bbe4542f43c0acf1d5990ad39
Fix OPENDJ-156: Errors when parsing collective attribute definitions
1 files added
1 files modified
71 ■■■■ changed files
opendj3/opendj-sdk/src/main/java/org/opends/sdk/schema/AttributeType.java 14 ●●●●● patch | view | raw | blame | history
opendj3/opendj-sdk/src/test/java/org/opends/sdk/schema/SchemaBuilderTest.java 57 ●●●●● patch | view | raw | blame | history
opendj3/opendj-sdk/src/main/java/org/opends/sdk/schema/AttributeType.java
@@ -23,6 +23,7 @@
 *
 *
 *      Copyright 2009 Sun Microsystems, Inc.
 *      Portions copyright 2011 ForgeRock AS.
 */
package org.opends.sdk.schema;
@@ -730,18 +731,13 @@
      if (superiorType.isCollective() != isCollective())
      {
        LocalizableMessage message;
        if (isCollective())
        if (!isCollective())
        {
          message = WARN_ATTR_SYNTAX_ATTRTYPE_COLLECTIVE_FROM_NONCOLLECTIVE
          LocalizableMessage message =
            WARN_ATTR_SYNTAX_ATTRTYPE_NONCOLLECTIVE_FROM_COLLECTIVE
              .get(getNameOrOID(), superiorType.getNameOrOID());
          throw new SchemaException(message);
        }
        else
        {
          message = WARN_ATTR_SYNTAX_ATTRTYPE_NONCOLLECTIVE_FROM_COLLECTIVE
              .get(getNameOrOID(), superiorType.getNameOrOID());
        }
        throw new SchemaException(message);
      }
    }
opendj3/opendj-sdk/src/test/java/org/opends/sdk/schema/SchemaBuilderTest.java
New file
@@ -0,0 +1,57 @@
/*
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License, Version 1.0 only
 * (the "License").  You may not use this file except in compliance
 * with the License.
 *
 * You can obtain a copy of the license at
 * trunk/opends/resource/legal-notices/OpenDS.LICENSE
 * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at
 * trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
 * add the following below this CDDL HEADER, with the fields enclosed
 * by brackets "[]" replaced with your own identifying information:
 *      Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 *
 *
 *      Copyright 2011 ForgeRock AS.
 */
package org.opends.sdk.schema;
import static org.fest.assertions.Assertions.assertThat;
import org.testng.annotations.Test;
/**
 * Test SchemaBuilder.
 */
public class SchemaBuilderTest extends SchemaTestCase
{
  /**
   * Test for OPENDJ-156: Errors when parsing collective attribute definitions.
   */
  @Test
  public void testCollectiveAttribute()
  {
    SchemaBuilder builder = new SchemaBuilder(Schema.getCoreSchema());
    builder
        .addAttributeType(
            "( 2.5.4.11.1 NAME 'c-ou' SUP ou SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 COLLECTIVE X-ORIGIN 'RFC 3671' )",
            false);
    Schema schema = builder.toSchema();
    assertThat(schema.getWarnings()).isEmpty();
  }
}