Author: mreutegg
Date: Mon Apr 15 12:21:41 2019
New Revision: 1857569

URL: http://svn.apache.org/viewvc?rev=1857569&view=rev
Log:
OAK-8228: Optimize PathUtils.dropIndexFromName(String)

Modified:
    
jackrabbit/oak/trunk/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/PathUtils.java
    
jackrabbit/oak/trunk/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/PathUtilsTest.java

Modified: 
jackrabbit/oak/trunk/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/PathUtils.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/PathUtils.java?rev=1857569&r1=1857568&r2=1857569&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/PathUtils.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/PathUtils.java
 Mon Apr 15 12:21:41 2019
@@ -174,6 +174,9 @@ public final class PathUtils {
      */
     @NotNull
     public static String dropIndexFromName(@NotNull String name) {
+        if (!name.endsWith("]")) {
+            return name;
+        }
         Matcher matcher = SNS_PATTERN.matcher(name);
         if (matcher.matches()) {
             return matcher.group(1);

Modified: 
jackrabbit/oak/trunk/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/PathUtilsTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/PathUtilsTest.java?rev=1857569&r1=1857568&r2=1857569&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/PathUtilsTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/PathUtilsTest.java
 Mon Apr 15 12:21:41 2019
@@ -17,6 +17,7 @@
 package org.apache.jackrabbit.oak.commons;
 
 import java.util.Set;
+import java.util.concurrent.TimeUnit;
 
 import junit.framework.AssertionFailedError;
 import junit.framework.TestCase;
@@ -520,4 +521,15 @@ public class PathUtilsTest extends TestC
         assertEquals(newHashSet("/a", "/b"), includes);
         assertEquals(newHashSet(), excludes);
     }
+
+    public void testDropIndexFromNamePerformance() {
+        int loopCount = 1000000;
+        long time = System.nanoTime();
+        for (int i = 0; i < loopCount; i++) {
+            PathUtils.dropIndexFromName("jcr:content");
+        }
+        time = System.nanoTime() - time;
+        System.out.println("PathUtils.dropIndexFromName(): " +
+                TimeUnit.NANOSECONDS.toMillis(time) + " ms.");
+    }
 }


Reply via email to