This is an automated email from the ASF dual-hosted git repository.

reschke pushed a commit to branch 1.22
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git

commit 885c6fc7fb943f8bbf66dba2f9eeca84590df51b
Author: Manfred Baedke <manfred.bae...@gmail.com>
AuthorDate: Wed Jan 24 12:31:22 2024 +0100

    OAK-10624: o.a.j.o.namepath.JcrPathParser does not accept some valid local 
names containing "{" or "}".
    
    Modified (ignored) test case PathParserTest#testCurlyBracketsInNames().
---
 .../jackrabbit/oak/namepath/PathParserTest.java    | 135 ++++++++++++++++++---
 1 file changed, 118 insertions(+), 17 deletions(-)

diff --git 
a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/namepath/PathParserTest.java
 
b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/namepath/PathParserTest.java
index dec4c01a50..3a3cc0bdda 100755
--- 
a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/namepath/PathParserTest.java
+++ 
b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/namepath/PathParserTest.java
@@ -362,12 +362,11 @@ public class PathParserTest {
     @Test
     @Ignore //OAK-10624
     public void testCurlyBracketsInNames() throws RepositoryException {
-        String path = "/{";
+        String path = "{a";
         TestListener listener = new TestListener(
-                CALLBACKRESULT_ROOT,
-                CALLBACKRESULT_ERROR("'/{' is not a valid path. Missing '}'.")
+                CALLBACKRESULT_NAME("{a")
         );
-        verifyResult(path, listener, false);
+        verifyResult(path, listener, true);
 
         path = "/a{";
         listener = new TestListener(
@@ -376,6 +375,61 @@ public class PathParserTest {
         );
         verifyResult(path, listener, true);
 
+        path = "{a[1]";
+        listener = new TestListener(
+                CALLBACKRESULT_NAME("{a", 1)
+        );
+        verifyResult(path, listener, true);
+
+        path = "/a{[1]";
+        listener = new TestListener(
+                CALLBACKRESULT_ROOT,
+                CALLBACKRESULT_NAME("a{", 1)
+        );
+        verifyResult(path, listener, true);
+
+        path = "/{/a";
+        listener = new TestListener(
+                CALLBACKRESULT_ROOT,
+                CALLBACKRESULT_NAME("{"),
+                CALLBACKRESULT_NAME("a")
+        );
+        verifyResult(path, listener, true);
+
+        path = "/{[1]/a";
+        listener = new TestListener(
+                CALLBACKRESULT_ROOT,
+                CALLBACKRESULT_NAME("{", 1),
+                CALLBACKRESULT_NAME("a")
+        );
+        verifyResult(path, listener, true);
+
+        path = "{";
+        listener = new TestListener(
+                CALLBACKRESULT_NAME("{")
+        );
+        verifyResult(path, listener, true);
+
+        path = "{[1]";
+        listener = new TestListener(
+                CALLBACKRESULT_NAME("{", 1)
+        );
+        verifyResult(path, listener, true);
+
+        path = "/{";
+        listener = new TestListener(
+                CALLBACKRESULT_ROOT,
+                CALLBACKRESULT_NAME("{")
+        );
+        verifyResult(path, listener, true);
+
+        path = "/{[1]";
+        listener = new TestListener(
+                CALLBACKRESULT_ROOT,
+                CALLBACKRESULT_NAME("{", 1)
+        );
+        verifyResult(path, listener, true);
+
         path = "/}";
         listener = new TestListener(
                 CALLBACKRESULT_ROOT,
@@ -383,24 +437,24 @@ public class PathParserTest {
         );
         verifyResult(path, listener, true);
 
-        path = "/a}";
+        path = "/}[1]";
         listener = new TestListener(
                 CALLBACKRESULT_ROOT,
-                CALLBACKRESULT_NAME("a}")
+                CALLBACKRESULT_NAME("}", 1)
         );
         verifyResult(path, listener, true);
 
-        path = "/a}[1]";
+        path = "/a}";
         listener = new TestListener(
                 CALLBACKRESULT_ROOT,
-                CALLBACKRESULT_NAME("a}", 1)
+                CALLBACKRESULT_NAME("a}")
         );
         verifyResult(path, listener, true);
 
-        path = "/a{[1]";
+        path = "/a}[1]";
         listener = new TestListener(
                 CALLBACKRESULT_ROOT,
-                CALLBACKRESULT_NAME("a{", 1)
+                CALLBACKRESULT_NAME("a}", 1)
         );
         verifyResult(path, listener, true);
 
@@ -452,15 +506,62 @@ public class PathParserTest {
                 CALLBACKRESULT_ERROR("'/ab}:c' is not a valid path. Invalid 
name prefix: ab}")
         );
         verifyResult(path, listener, false);
-    }
 
-    @Test
-    public void testMissingClosingCurlyBracket() throws RepositoryException {
-        String path = "{a";
-        TestListener listener = new TestListener(
-                CALLBACKRESULT_ERROR(errorMissingClosingCurlyBracket(path))
+        path = "/a:{";
+        listener = new TestListener(
+                CALLBACKRESULT_ROOT,
+                CALLBACKRESULT_NAME("a:{")
         );
-        verifyResult(path, listener, false);
+        verifyResult(path, listener, true);
+
+        path = "/a:}";
+        listener = new TestListener(
+                CALLBACKRESULT_ROOT,
+                CALLBACKRESULT_NAME("a:}")
+        );
+        verifyResult(path, listener, true);
+
+        path = "/a:{}";
+        listener = new TestListener(
+                CALLBACKRESULT_ROOT,
+                CALLBACKRESULT_NAME("a:{}")
+        );
+        verifyResult(path, listener, true);
+
+        path = "/a:}{";
+        listener = new TestListener(
+                CALLBACKRESULT_ROOT,
+                CALLBACKRESULT_NAME("a:}{")
+        );
+        verifyResult(path, listener, true);
+
+        path = "/a:{[1]";
+        listener = new TestListener(
+                CALLBACKRESULT_ROOT,
+                CALLBACKRESULT_NAME("a:{", 1)
+        );
+        verifyResult(path, listener, true);
+
+        path = "/a:}[1]";
+        listener = new TestListener(
+                CALLBACKRESULT_ROOT,
+                CALLBACKRESULT_NAME("a:}", 1)
+        );
+        verifyResult(path, listener, true);
+
+        path = "/a:{}[1]";
+        listener = new TestListener(
+                CALLBACKRESULT_ROOT,
+                CALLBACKRESULT_NAME("a:{}", 1)
+        );
+        verifyResult(path, listener, true);
+
+        path = "/a:}{[1]";
+        listener = new TestListener(
+                CALLBACKRESULT_ROOT,
+                CALLBACKRESULT_NAME("a:}{", 1)
+        );
+        verifyResult(path, listener, true);
     }
 
     @Test

Reply via email to