From e736f929ae922d3351fae9bbd668f34925c39f0b Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Mon, 30 May 2016 10:43:12 +0000
Subject: [PATCH] OPENDJ-2987 Ensure top objectclass is added if missing for structural classes
---
opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/ObjectClass.java | 11 ++++++++---
1 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/ObjectClass.java b/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/ObjectClass.java
index 18c1c3d..221b2b8 100644
--- a/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/ObjectClass.java
+++ b/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/ObjectClass.java
@@ -16,6 +16,8 @@
*/
package org.forgerock.opendj.ldap.schema;
+import static org.forgerock.opendj.ldap.schema.SchemaConstants.TOP_OBJECTCLASS_OID;
+
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
@@ -32,11 +34,9 @@
import static java.util.Arrays.*;
import static java.util.Collections.*;
-
import static org.forgerock.opendj.ldap.schema.ObjectClassType.*;
import static org.forgerock.opendj.ldap.schema.SchemaConstants.*;
import static org.forgerock.opendj.ldap.schema.SchemaUtils.*;
-
import static com.forgerock.opendj.ldap.CoreMessages.*;
/**
@@ -939,10 +939,15 @@
superiorClasses.add(superiorClass);
}
+ } else if (superiorClasses.isEmpty() && getObjectClassType() == ObjectClassType.STRUCTURAL) {
+ // default superior to top
+ superiorClasses = new HashSet<>(1);
+ superiorClasses.add(schema.getObjectClass(TOP_OBJECTCLASS_OID));
+ derivesTop = true;
}
if (!derivesTop) {
- derivesTop = isDescendantOf(schema.getObjectClass("2.5.6.0"));
+ derivesTop = isDescendantOf(schema.getObjectClass(TOP_OBJECTCLASS_OID));
}
// Structural classes must have the "top" objectclass somewhere
--
Gitblit v1.10.0