You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by md...@apache.org on 2012/03/22 19:04:09 UTC

svn commit: r1303940 - /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeState.java

Author: mduerig
Date: Thu Mar 22 18:04:09 2012
New Revision: 1303940

URL: http://svn.apache.org/viewvc?rev=1303940&view=rev
Log:
OAK-39: KernelNodeState does not handle boolean values correctly

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeState.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeState.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeState.java?rev=1303940&r1=1303939&r2=1303940&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeState.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeState.java Thu Mar 22 18:04:09 2012
@@ -86,11 +86,15 @@ class KernelNodeState extends AbstractNo
                     childNodes.put(name, new KernelNodeState(
                             kernel, childPath, revision));
                 } else if (reader.matches(JsopTokenizer.NUMBER) ||
-                        reader.matches(JsopTokenizer.TRUE) ||
-                        reader.matches(JsopTokenizer.FALSE) ||
                         reader.matches(JsopTokenizer.STRING)) {
                     properties.put(name, new KernelPropertyState(
                             name, reader.getToken()));
+                } else if (reader.matches(JsopTokenizer.TRUE)) {
+                    properties.put(name, new KernelPropertyState(
+                            name, "true"));
+                } else if (reader.matches(JsopTokenizer.FALSE)) {
+                    properties.put(name, new KernelPropertyState(
+                            name, "false"));
                 } else if (reader.matches('[')) {
                     properties.put(name, new KernelPropertyState(
                             name, readArray(reader)));
@@ -210,17 +214,20 @@ class KernelNodeState extends AbstractNo
         StringBuilder sb = new StringBuilder("[");
         String sep = "";
         while (!reader.matches(']')) {
+            String v;
             if (reader.matches(JsopTokenizer.NUMBER) ||
-                    reader.matches(JsopTokenizer.TRUE) ||
-                    reader.matches(JsopTokenizer.FALSE) ||
                     reader.matches(JsopTokenizer.STRING)) {
-                sb.append(sep);
-                sep = ",";
-                sb.append(reader.getToken());
-            }
-            else {
+                v = reader.getToken();
+            } else if (reader.matches(JsopTokenizer.TRUE)) {
+                v = "true";
+            } else if (reader.matches(JsopTokenizer.FALSE)) {
+                v = "false";
+            } else {
                 throw new IllegalArgumentException("Unexpected token: " + reader.getToken());
             }
+            sb.append(sep);
+            sep = ",";
+            sb.append(v);
             reader.matches(',');
         }
         sb.append(']');