From 17641c981d7f2f59374f02110edccda3b9ccb5f2 Mon Sep 17 00:00:00 2001
From: jcambon <jcambon@localhost>
Date: Wed, 12 Nov 2008 10:20:13 +0000
Subject: [PATCH] Fix for Issue #3569 (cont'd): dsconfig does not handle correctly multi-valued properties

---
 opendj-sdk/opends/src/server/org/opends/server/tools/dsconfig/SetPropSubCommandHandler.java |   14 +++++---------
 1 files changed, 5 insertions(+), 9 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/tools/dsconfig/SetPropSubCommandHandler.java b/opendj-sdk/opends/src/server/org/opends/server/tools/dsconfig/SetPropSubCommandHandler.java
index 7b767aa..14d9851 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tools/dsconfig/SetPropSubCommandHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tools/dsconfig/SetPropSubCommandHandler.java
@@ -754,9 +754,6 @@
 
     // Set properties.
     for (String m : propertySetArgument.getValues()) {
-      if (!propertyResetArgument.getValues().isEmpty()) {
-        throw ArgumentExceptionFactory.incompatiblePropertyModification(m);
-      }
       // Parse the property "property:value".
       int sep = m.indexOf(':');
 
@@ -783,6 +780,11 @@
       }
 
       // Apply the modification.
+      if (lastModTypes.containsKey(propertyName) &&
+        (lastModTypes.get(propertyName) == ModificationType.SET)) {
+        throw ArgumentExceptionFactory.incompatiblePropertyModification(m);
+      }
+
       if (lastModTypes.containsKey(propertyName)) {
         modifyPropertyValues(child, pd, changes, ModificationType.ADD, value);
       } else {
@@ -793,9 +795,6 @@
 
     // Remove properties.
     for (String m : propertyRemoveArgument.getValues()) {
-      if (!propertyResetArgument.getValues().isEmpty()) {
-        throw ArgumentExceptionFactory.incompatiblePropertyModification(m);
-      }
       // Parse the property "property:value".
       int sep = m.indexOf(':');
 
@@ -833,9 +832,6 @@
 
     // Add properties.
     for (String m : propertyAddArgument.getValues()) {
-      if (!propertyResetArgument.getValues().isEmpty()) {
-        throw ArgumentExceptionFactory.incompatiblePropertyModification(m);
-      }
       // Parse the property "property:value".
       int sep = m.indexOf(':');
 

--
Gitblit v1.10.0