From 593a5972746ee3b3bc282aeda9e7add3597388ea Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Thu, 28 Apr 2016 07:50:01 +0000
Subject: [PATCH] Also ensure the superior can be found when building the schema

---
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/NewAttributePanel.java |   39 +++++++++++++++------------------------
 1 files changed, 15 insertions(+), 24 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/NewAttributePanel.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/NewAttributePanel.java
index 3ca9534..6e8fa2e 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/NewAttributePanel.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/NewAttributePanel.java
@@ -17,6 +17,7 @@
 package org.opends.guitools.controlpanel.ui;
 
 import static org.opends.messages.AdminToolMessages.*;
+import static org.opends.server.util.CollectionUtils.*;
 
 import java.awt.Component;
 import java.awt.GridBagConstraints;
@@ -26,8 +27,8 @@
 import java.io.File;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.HashMap;
-import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -155,24 +156,7 @@
     final boolean[] repack = { firstSchema };
     final boolean[] error = { false };
 
-    boolean schemaChanged;
-    if (schema != null && s != null)
-    {
-      schemaChanged = !ServerDescriptor.areSchemasEqual(s, schema);
-    }
-    else if (schema == null && s != null)
-    {
-      schemaChanged = true;
-    }
-    else if (s == null && schema != null)
-    {
-      schemaChanged = false;
-    }
-    else
-    {
-      schemaChanged = false;
-    }
-    if (schemaChanged)
+    if (hasSchemaChanged(s))
     {
       schema = s;
       Map<String, Syntax> syntaxNameMap = new HashMap<>();
@@ -285,6 +269,15 @@
     }
   }
 
+  private boolean hasSchemaChanged(Schema s)
+  {
+    if (s != null)
+    {
+      return schema == null || !ServerDescriptor.areSchemasEqual(s, schema);
+    }
+    return false;
+  }
+
   @Override
   public void okClicked()
   {
@@ -373,10 +366,8 @@
     NewSchemaElementsTask newTask = null;
     if (errors.isEmpty())
     {
-      Set<AttributeType> attributes = new LinkedHashSet<>();
-      attributes.add(getAttribute());
-      Set<ObjectClass> ocs = new LinkedHashSet<>(0);
-      newTask = new NewSchemaElementsTask(getInfo(), dlg, ocs, attributes);
+      Set<ObjectClass> ocs = Collections.emptySet();
+      newTask = new NewSchemaElementsTask(getInfo(), dlg, ocs, newHashSet(getAttribute()));
       for (Task task : getInfo().getTasks())
       {
         task.canLaunch(newTask, errors);
@@ -693,7 +684,7 @@
   {
     AttributeType superior = getSuperior();
     Syntax selectedSyntax = (Syntax) syntax.getSelectedItem();
-    return new SchemaBuilder().buildAttributeType(getOID())
+    return new SchemaBuilder(schema.getSchemaNG()).buildAttributeType(getOID())
       .names(getAllNames())
       .description(getDescription())
       .superiorType(superior != null ? superior.getNameOrOID() : null)

--
Gitblit v1.10.0