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 ju...@apache.org on 2013/11/04 16:26:06 UTC
svn commit: r1538647 - in /jackrabbit/oak/trunk/oak-core/src:
main/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImpl.java
test/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImplTest.java
Author: jukka
Date: Mon Nov 4 15:26:06 2013
New Revision: 1538647
URL: http://svn.apache.org/r1538647
Log:
OAK-1015: Optimise path parsing
Handle the "foo:bar:baz" case brought up by Michael
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImpl.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImplTest.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImpl.java?rev=1538647&r1=1538646&r2=1538647&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImpl.java Mon Nov 4 15:26:06 2013
@@ -260,14 +260,19 @@ public class NamePathMapperImpl implemen
}
break;
case ':':
- if (i == slash + 1 || i == colon + i || i + 1 == length) {
- return true; // colon following slash/colon or as last char
+ if (i == slash + 1 // "x/:y"
+ || i == colon + i // "x::y"
+ || colon > slash // "x:y:z"
+ || i + 1 == length) { // "x:"
+ return true;
}
colon = i;
break;
case '/':
- if (i == slash + 1 || i == colon + i || i + 1 == length) {
- return true; // colon following slash/colon or as last char
+ if (i == slash + 1 // "x//y"
+ || i == colon + i // "x:/y"
+ || i + 1 == length) { // "x/"
+ return true;
}
slash = i;
break;
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImplTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImplTest.java?rev=1538647&r1=1538646&r2=1538647&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImplTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImplTest.java Mon Nov 4 15:26:06 2013
@@ -160,8 +160,14 @@ public class NamePathMapperImplTest {
@Test
public void testInvalidJcrPaths() {
- String[] paths = {"//", "/foo//", "/..//", "/..", "/foo/../.."};
-
+ String[] paths = {
+ "//",
+ "/foo//",
+ "/..//",
+ "/..",
+ "/foo/../..",
+ "foo::bar",
+ "foo:bar:baz" };
for (String path : paths) {
assertNull(npMapper.getOakPath(path));
}