Index: oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImpl.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImpl.java	(date 1347632634000)
+++ oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImpl.java	(revision )
@@ -151,9 +151,6 @@
     }
 
     private String getOakPath(String jcrPath, final boolean keepIndex) {
-        final List<String> elements = new ArrayList<String>();
-        final StringBuilder parseErrors = new StringBuilder();
-
         if ("/".equals(jcrPath)) {
             // avoid the need to special case the root path later on
             return "/";
@@ -180,6 +177,7 @@
         boolean hasIndexBrackets = false;
         boolean hasColon = false;
         boolean hasNameStartingWithDot = false;
+        boolean hasTrailingSlash = false;
 
         char prev = 0;
         for (int i = 0; i < length; i++) {
@@ -193,6 +191,8 @@
                 hasColon = true;
             } else if (c == '.' && (prev == 0 || prev == '/')) {
                 hasNameStartingWithDot = true;
+            } else if(c == '/' && i == (length-1)){
+                hasTrailingSlash = true;
             }
 
             prev = c;
@@ -202,6 +202,9 @@
         if (!hasNameStartingWithDot && !hasClarkBrackets && !hasIndexBrackets) {
             if (!hasColon || !hasSessionLocalMappings()) {
                 if (JcrPathParser.validate(jcrPath)) {
+                    if(hasTrailingSlash){
+                        return jcrPath.substring(0,length-1);
+                    }
                     return jcrPath;
                 }
                 else {
@@ -210,6 +213,9 @@
                 }
             }
         }
+
+        final List<String> elements = new ArrayList<String>();
+        final StringBuilder parseErrors = new StringBuilder();
 
         JcrPathParser.Listener listener = new JcrPathParser.Listener() {
 
Index: oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImplTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImplTest.java	(date 1347632634000)
+++ oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImplTest.java	(revision )
@@ -57,6 +57,12 @@
     }
 
     @Test
+    public void testTrailingSlash() {
+        assertEquals("/oak-foo:bar/oak-quu:qux",npMapper.getOakPath("/foo:bar/quu:qux/"));
+        assertEquals("/a/b/c",npMapper.getOakPath("/a/b/c/"));
+    }
+
+    @Test
     public void testJcrToOak() {
         assertEquals("/", npMapper.getOakPath("/"));
         assertEquals("foo", npMapper.getOakPath("{}foo"));
