From 3181453e2fa1149121b3f1ec202e7e97bc3bbb29 Mon Sep 17 00:00:00 2001
From: boli <boli@localhost>
Date: Thu, 17 Sep 2009 21:24:52 +0000
Subject: [PATCH] Fix for issue 4164: Fixed decoding bug where multiple values for extra properties are not parsed correctly.

---
 opends/src/server/org/opends/server/schema/DITStructureRuleSyntax.java |    5 +++--
 opends/src/server/org/opends/server/schema/AttributeTypeSyntax.java    |    3 ++-
 opends/src/server/org/opends/server/schema/DITContentRuleSyntax.java   |    5 +++--
 opends/src/server/org/opends/server/schema/MatchingRuleUseSyntax.java  |    5 +++--
 opends/src/server/org/opends/server/schema/ObjectClassSyntax.java      |    3 ++-
 opends/src/server/org/opends/server/schema/MatchingRuleSyntax.java     |    5 +++--
 opends/src/server/org/opends/server/schema/NameFormSyntax.java         |    5 +++--
 7 files changed, 19 insertions(+), 12 deletions(-)

diff --git a/opends/src/server/org/opends/server/schema/AttributeTypeSyntax.java b/opends/src/server/org/opends/server/schema/AttributeTypeSyntax.java
index b5bed40..579826b 100644
--- a/opends/src/server/org/opends/server/schema/AttributeTypeSyntax.java
+++ b/opends/src/server/org/opends/server/schema/AttributeTypeSyntax.java
@@ -1469,10 +1469,10 @@
     }
     else if (c == '(')
     {
+      startPos++;
       while (true)
       {
         // Skip over any leading spaces;
-        startPos++;
         while ((startPos < length) && ((c = valueStr.charAt(startPos)) == ' '))
         {
           startPos++;
@@ -1490,6 +1490,7 @@
         if (c == ')')
         {
           // This is the end of the list.
+          startPos++;
           break;
         }
         else if (c == '(')
diff --git a/opends/src/server/org/opends/server/schema/DITContentRuleSyntax.java b/opends/src/server/org/opends/server/schema/DITContentRuleSyntax.java
index ef74be8..aec4ee2 100644
--- a/opends/src/server/org/opends/server/schema/DITContentRuleSyntax.java
+++ b/opends/src/server/org/opends/server/schema/DITContentRuleSyntax.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Copyright 2006-2009 Sun Microsystems, Inc.
  */
 package org.opends.server.schema;
 import org.opends.messages.Message;
@@ -1371,10 +1371,10 @@
     }
     else if (c == '(')
     {
+      startPos++;
       while (true)
       {
         // Skip over any leading spaces;
-        startPos++;
         while ((startPos < length) && ((c = valueStr.charAt(startPos)) == ' '))
         {
           startPos++;
@@ -1391,6 +1391,7 @@
         if (c == ')')
         {
           // This is the end of the list.
+          startPos++;
           break;
         }
         else if (c == '(')
diff --git a/opends/src/server/org/opends/server/schema/DITStructureRuleSyntax.java b/opends/src/server/org/opends/server/schema/DITStructureRuleSyntax.java
index 41036bd..b3adfc3 100644
--- a/opends/src/server/org/opends/server/schema/DITStructureRuleSyntax.java
+++ b/opends/src/server/org/opends/server/schema/DITStructureRuleSyntax.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Copyright 2006-2009 Sun Microsystems, Inc.
  */
 package org.opends.server.schema;
 import org.opends.messages.Message;
@@ -1117,10 +1117,10 @@
     }
     else if (c == '(')
     {
+      startPos++;
       while (true)
       {
         // Skip over any leading spaces;
-        startPos++;
         while ((startPos < length) && ((c = valueStr.charAt(startPos)) == ' '))
         {
           startPos++;
@@ -1137,6 +1137,7 @@
         if (c == ')')
         {
           // This is the end of the list.
+          startPos++;
           break;
         }
         else if (c == '(')
diff --git a/opends/src/server/org/opends/server/schema/MatchingRuleSyntax.java b/opends/src/server/org/opends/server/schema/MatchingRuleSyntax.java
index 2384026..a60c67c 100644
--- a/opends/src/server/org/opends/server/schema/MatchingRuleSyntax.java
+++ b/opends/src/server/org/opends/server/schema/MatchingRuleSyntax.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Copyright 2006-2009 Sun Microsystems, Inc.
  */
 package org.opends.server.schema;
 import org.opends.messages.Message;
@@ -1071,10 +1071,10 @@
     }
     else if (c == '(')
     {
+      startPos++;
       while (true)
       {
         // Skip over any leading spaces;
-        startPos++;
         while ((startPos < length) && ((c = valueStr.charAt(startPos)) == ' '))
         {
           startPos++;
@@ -1091,6 +1091,7 @@
         if (c == ')')
         {
           // This is the end of the list.
+          startPos++;
           break;
         }
         else if (c == '(')
diff --git a/opends/src/server/org/opends/server/schema/MatchingRuleUseSyntax.java b/opends/src/server/org/opends/server/schema/MatchingRuleUseSyntax.java
index 1fbb240..950f682 100644
--- a/opends/src/server/org/opends/server/schema/MatchingRuleUseSyntax.java
+++ b/opends/src/server/org/opends/server/schema/MatchingRuleUseSyntax.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Copyright 2006-2009 Sun Microsystems, Inc.
  */
 package org.opends.server.schema;
 import org.opends.messages.Message;
@@ -1062,10 +1062,10 @@
     }
     else if (c == '(')
     {
+      startPos++;
       while (true)
       {
         // Skip over any leading spaces;
-        startPos++;
         while ((startPos < length) && ((c = valueStr.charAt(startPos)) == ' '))
         {
           startPos++;
@@ -1082,6 +1082,7 @@
         if (c == ')')
         {
           // This is the end of the list.
+          startPos++;
           break;
         }
         else if (c == '(')
diff --git a/opends/src/server/org/opends/server/schema/NameFormSyntax.java b/opends/src/server/org/opends/server/schema/NameFormSyntax.java
index 916bc9e..a75176e 100644
--- a/opends/src/server/org/opends/server/schema/NameFormSyntax.java
+++ b/opends/src/server/org/opends/server/schema/NameFormSyntax.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Copyright 2006-2009 Sun Microsystems, Inc.
  */
 package org.opends.server.schema;
 import org.opends.messages.Message;
@@ -1178,10 +1178,10 @@
     }
     else if (c == '(')
     {
+      startPos++;
       while (true)
       {
         // Skip over any leading spaces;
-        startPos++;
         while ((startPos < length) && ((c = valueStr.charAt(startPos)) == ' '))
         {
           startPos++;
@@ -1199,6 +1199,7 @@
         if (c == ')')
         {
           // This is the end of the list.
+          startPos++;
           break;
         }
         else if (c == '(')
diff --git a/opends/src/server/org/opends/server/schema/ObjectClassSyntax.java b/opends/src/server/org/opends/server/schema/ObjectClassSyntax.java
index cca31c1..8ba85cf 100644
--- a/opends/src/server/org/opends/server/schema/ObjectClassSyntax.java
+++ b/opends/src/server/org/opends/server/schema/ObjectClassSyntax.java
@@ -1426,10 +1426,10 @@
     }
     else if (c == '(')
     {
+      startPos++;
       while (true)
       {
         // Skip over any leading spaces;
-        startPos++;
         while ((startPos < length) && ((c = valueStr.charAt(startPos)) == ' '))
         {
           startPos++;
@@ -1447,6 +1447,7 @@
         if (c == ')')
         {
           // This is the end of the list.
+          startPos++;
           break;
         }
         else if (c == '(')

--
Gitblit v1.10.0