From 591ebf6d984dcb1bbe4542f43c0acf1d5990ad39 Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Thu, 19 May 2011 11:01:59 +0000
Subject: [PATCH] Fix OPENDJ-156: Errors when parsing collective attribute definitions
---
opendj3/opendj-sdk/src/test/java/org/opends/sdk/schema/SchemaBuilderTest.java | 57 ++++++++++++++++++++++++++++
opendj3/opendj-sdk/src/main/java/org/opends/sdk/schema/AttributeType.java | 14 ++----
2 files changed, 62 insertions(+), 9 deletions(-)
diff --git a/opendj3/opendj-sdk/src/main/java/org/opends/sdk/schema/AttributeType.java b/opendj3/opendj-sdk/src/main/java/org/opends/sdk/schema/AttributeType.java
index a9c1a62..f5396c7 100644
--- a/opendj3/opendj-sdk/src/main/java/org/opends/sdk/schema/AttributeType.java
+++ b/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);
}
}
diff --git a/opendj3/opendj-sdk/src/test/java/org/opends/sdk/schema/SchemaBuilderTest.java b/opendj3/opendj-sdk/src/test/java/org/opends/sdk/schema/SchemaBuilderTest.java
new file mode 100644
index 0000000..52b0838
--- /dev/null
+++ b/opendj3/opendj-sdk/src/test/java/org/opends/sdk/schema/SchemaBuilderTest.java
@@ -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();
+ }
+}
--
Gitblit v1.10.0