You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2015/04/08 16:54:30 UTC

svn commit: r1672098 - in /sling/trunk/bundles/jcr/resource/src: main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrNodeResourceIterator.java test/java/org/apache/sling/jcr/resource/internal/helper/JcrNodeResourceIteratorTest.java

Author: cziegeler
Date: Wed Apr  8 14:54:30 2015
New Revision: 1672098

URL: http://svn.apache.org/r1672098
Log:
SLING-4588 : JcrNodeResourceIterator : wrong paths generated when the parent resource is the root node.

Modified:
    sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrNodeResourceIterator.java
    sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/helper/JcrNodeResourceIteratorTest.java

Modified: sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrNodeResourceIterator.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrNodeResourceIterator.java?rev=1672098&r1=1672097&r2=1672098&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrNodeResourceIterator.java (original)
+++ sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrNodeResourceIterator.java Wed Apr  8 14:54:30 2015
@@ -130,12 +130,12 @@ public class JcrNodeResourceIterator imp
         return null;
     }
 
-    private String getPath(Node node) throws RepositoryException {
+    private String getPath(final Node node) throws RepositoryException {
         final String path;
         if (parentPath == null) {
             path = node.getPath();
         } else {
-            path = String.format("%s/%s", parentPath, node.getName());
+            path = String.format("%s/%s", "/".equals(parentPath) ? "" : parentPath, node.getName());
         }
         return helper.pathMapper.mapJCRPathToResourcePath(path);
     }

Modified: sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/helper/JcrNodeResourceIteratorTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/helper/JcrNodeResourceIteratorTest.java?rev=1672098&r1=1672097&r2=1672098&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/helper/JcrNodeResourceIteratorTest.java (original)
+++ sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/helper/JcrNodeResourceIteratorTest.java Wed Apr  8 14:54:30 2015
@@ -101,4 +101,24 @@ public class JcrNodeResourceIteratorTest
         }
     }
 
+    public void testRoot() throws RepositoryException {
+        String path = "/child";
+        Node node = new MockNode(path);
+        NodeIterator ni = new MockNodeIterator(new Node[] { node });
+        JcrNodeResourceIterator ri = new JcrNodeResourceIterator(null, "/", null, ni, getHelperData());
+
+        assertTrue(ri.hasNext());
+        Resource res = ri.next();
+        assertEquals(path, res.getPath());
+        assertEquals(node.getPrimaryNodeType().getName(), res.getResourceType());
+
+        assertFalse(ri.hasNext());
+
+        try {
+            ri.next();
+            fail("Expected no element in the iterator");
+        } catch (NoSuchElementException nsee) {
+            // expected
+        }
+    }
 }