From b5f211cba2660529048afc4ebd37b1903c3ea4ac 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 Use OID instead of full ObjectClass to detect multiple updates of the same objectclass in a modification
---
opendj-server-legacy/src/main/java/org/opends/server/backends/SchemaBackend.java | 16 ++++++----------
1 files changed, 6 insertions(+), 10 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/SchemaBackend.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/SchemaBackend.java
index 71d7996..baa74a6 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/SchemaBackend.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/SchemaBackend.java
@@ -1587,22 +1587,18 @@
for (ByteString v : a)
{
- ObjectClass oc;
+ String oid;
try
{
- oc = schema.parseObjectClass(v.toString());
+ oid = schema.parseOID(v.toString(), ResultCode.INVALID_ATTRIBUTE_SYNTAX, ERR_PARSING_OBJECTCLASS_OID);
}
catch (DirectoryException de)
{
logger.traceException(de);
-
- LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_OBJECTCLASS.get(
- v, de.getMessageObject());
- throw new DirectoryException(
- ResultCode.INVALID_ATTRIBUTE_SYNTAX, message, de);
+ throw de;
}
- if (objectClass.getOID().equals(oc.getOID()))
+ if (objectClass.getOID().equals(oid))
{
// We found a match where the objectClass is added back later, so we
// don't need to do anything else here.
@@ -2492,7 +2488,7 @@
{
// Check if there is an existing syntax with this oid.
String oid =
- Schema.parseOID(definition, ResultCode.INVALID_ATTRIBUTE_SYNTAX, ERR_ATTR_SYNTAX_LDAPSYNTAX_EMPTY_VALUE);
+ Schema.parseOID(definition, ResultCode.INVALID_ATTRIBUTE_SYNTAX, ERR_PARSING_LDAP_SYNTAX_OID);
// We allow only unimplemented syntaxes to be substituted.
if (schema.hasSyntax(oid))
@@ -2547,7 +2543,7 @@
* hence never deleted.
*/
String oid =
- Schema.parseOID(definition, ResultCode.INVALID_ATTRIBUTE_SYNTAX, ERR_ATTR_SYNTAX_LDAPSYNTAX_EMPTY_VALUE);
+ Schema.parseOID(definition, ResultCode.INVALID_ATTRIBUTE_SYNTAX, ERR_PARSING_LDAP_SYNTAX_OID);
LDAPSyntaxDescription removeLSD = schema.getLdapSyntaxDescription(oid);
if (removeLSD == null)
--
Gitblit v1.10.0