From 0a18765d6070d62406146219d568bb8ebb6065b5 Mon Sep 17 00:00:00 2001
From: lutoff <lutoff@localhost>
Date: Mon, 28 Apr 2008 12:18:06 +0000
Subject: [PATCH] fix for issue #3209 (ClassCastException when deleting global ACI with dsconfig)

---
 opends/src/server/org/opends/server/tools/dsconfig/PropertyEditorModification.java |    8 +++-----
 opends/src/server/org/opends/server/tools/dsconfig/PropertyValueEditor.java        |    8 ++++----
 2 files changed, 7 insertions(+), 9 deletions(-)

diff --git a/opends/src/server/org/opends/server/tools/dsconfig/PropertyEditorModification.java b/opends/src/server/org/opends/server/tools/dsconfig/PropertyEditorModification.java
index 083f78c..2ef6a86 100644
--- a/opends/src/server/org/opends/server/tools/dsconfig/PropertyEditorModification.java
+++ b/opends/src/server/org/opends/server/tools/dsconfig/PropertyEditorModification.java
@@ -80,10 +80,8 @@
   {
     this.propertyDefinition = propertyDefinition;
     this.type = type;
-    this.values = new TreeSet<T>();
-    this.values.addAll(values);
-    this.originalValues = new TreeSet<T>();
-    this.originalValues.addAll(originalValues);
+    this.values = new TreeSet<T>(values);
+    this.originalValues = new TreeSet<T>(originalValues);
   }
 
   /**
@@ -97,7 +95,7 @@
       PropertyDefinition<T> propertyDefinition, SortedSet<T> originalValues)
   {
     return new PropertyEditorModification<T>(propertyDefinition, Type.RESET,
-        new TreeSet<T>(), originalValues);
+        new TreeSet<T>(propertyDefinition), originalValues);
   }
 
   /**
diff --git a/opends/src/server/org/opends/server/tools/dsconfig/PropertyValueEditor.java b/opends/src/server/org/opends/server/tools/dsconfig/PropertyValueEditor.java
index e253c44..4571422 100644
--- a/opends/src/server/org/opends/server/tools/dsconfig/PropertyValueEditor.java
+++ b/opends/src/server/org/opends/server/tools/dsconfig/PropertyValueEditor.java
@@ -2426,7 +2426,7 @@
     SortedSet<T> originalValues;
     if (mod != null)
     {
-      originalValues = new TreeSet<T>();
+      originalValues = new TreeSet<T>(pd);
       castAndAddValues(originalValues, mod.getOriginalValues(), pd);
       removeModification(mod);
     }
@@ -2457,7 +2457,7 @@
     SortedSet<T> originalValues;
     if (mod != null)
     {
-      originalValues = new TreeSet<T>();
+      originalValues = new TreeSet<T>(pd);
       castAndAddValues(originalValues, mod.getOriginalValues(), pd);
       removeModification(mod);
     }
@@ -2488,7 +2488,7 @@
     SortedSet<T> originalValues;
     if (mod != null)
     {
-      originalValues = new TreeSet<T>();
+      originalValues = new TreeSet<T>(pd);
       castAndAddValues(originalValues, mod.getOriginalValues(), pd);
       if (mod.getType() == PropertyEditorModification.Type.ADD)
       {
@@ -2534,7 +2534,7 @@
     SortedSet<T> originalValues;
     if (mod != null)
     {
-      originalValues = new TreeSet<T>();
+      originalValues = new TreeSet<T>(pd);
       castAndAddValues(originalValues, mod.getOriginalValues(), pd);
       if (newValues.isEmpty())
       {

--
Gitblit v1.10.0