[dna-commits] DNA SVN: r786 - in trunk/dna-graph/src: test/java/org/jboss/dna/graph/property/basic and 1 other directory.

dna-commits at lists.jboss.org dna-commits at lists.jboss.org
Mon Mar 23 15:31:51 EDT 2009


Author: rhauch
Date: 2009-03-23 15:31:51 -0400 (Mon, 23 Mar 2009)
New Revision: 786

Modified:
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/NameValueFactory.java
   trunk/dna-graph/src/test/java/org/jboss/dna/graph/property/basic/NameValueFactoryTest.java
Log:
DNA-334 Should not allow creating a Name from a string with multiple non-escaped colons

Changed regular expression used in the NameValueFactory to create values, allowing only a single non-escaped colon in the name.  Added a test case to verify that this change indeed was required and has the correct behavior.

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/NameValueFactory.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/NameValueFactory.java	2009-03-20 18:40:19 UTC (rev 785)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/NameValueFactory.java	2009-03-23 19:31:51 UTC (rev 786)
@@ -62,8 +62,8 @@
     protected static final String FULLY_QUALFIED_NAME_PATTERN_STRING = "\\{([^}]*)\\}(.*)";
     protected static final Pattern FULLY_QUALIFIED_NAME_PATTERN = Pattern.compile(FULLY_QUALFIED_NAME_PATTERN_STRING);
 
-    // Original pattern: (([^:/]*):)?(.*)
-    private static final String PREFIXED_NAME_PATTERN_STRING = "(([^:/]*):)?(.*)";
+    // Original pattern: (([^:/]*):)?([^:]*)
+    private static final String PREFIXED_NAME_PATTERN_STRING = "(([^:/]*):)?([^:]*)";
     private static final Pattern PREFIXED_NAME_PATTERN = Pattern.compile(PREFIXED_NAME_PATTERN_STRING);
 
     private static Name BLANK_NAME;

Modified: trunk/dna-graph/src/test/java/org/jboss/dna/graph/property/basic/NameValueFactoryTest.java
===================================================================
--- trunk/dna-graph/src/test/java/org/jboss/dna/graph/property/basic/NameValueFactoryTest.java	2009-03-20 18:40:19 UTC (rev 785)
+++ trunk/dna-graph/src/test/java/org/jboss/dna/graph/property/basic/NameValueFactoryTest.java	2009-03-23 19:31:51 UTC (rev 786)
@@ -34,6 +34,7 @@
 import org.jboss.dna.graph.property.NamespaceRegistry;
 import org.jboss.dna.graph.property.Path;
 import org.jboss.dna.graph.property.ValueFactory;
+import org.jboss.dna.graph.property.ValueFormatException;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -126,6 +127,12 @@
         factory.create("a", "", decoder);
     }
 
+    @Test( expected = ValueFormatException.class )
+    public void shouldNotCreateNameFromStringWithMultipleNonEscapedColons() {
+        // This is a requirement of JCR, per the JCR TCK
+        factory.create("a:b:c");
+    }
+
     @Test
     public void shouldCreateIteratorOverValuesWhenSuppliedIteratorOfUnknownObjects() {
         List<String> values = new ArrayList<String>();




More information about the dna-commits mailing list