You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by fm...@apache.org on 2008/02/04 14:17:30 UTC
svn commit: r618270 - in /incubator/sling/trunk/jcr/resource/src:
main/java/org/apache/sling/jcr/resource/JcrResourceUtil.java
test/java/org/apache/sling/jcr/resource/JcrResourceUtilTest.java
Author: fmeschbe
Date: Mon Feb 4 05:17:27 2008
New Revision: 618270
URL: http://svn.apache.org/viewvc?rev=618270&view=rev
Log:
* Prevent NullPointerException in getParent if path normalization returns null
* Do not return leading slash for getName
* Add unit tests for getParent and getName
Modified:
incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/JcrResourceUtil.java
incubator/sling/trunk/jcr/resource/src/test/java/org/apache/sling/jcr/resource/JcrResourceUtilTest.java
Modified: incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/JcrResourceUtil.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/JcrResourceUtil.java?rev=618270&r1=618269&r2=618270&view=diff
==============================================================================
--- incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/JcrResourceUtil.java (original)
+++ incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/JcrResourceUtil.java Mon Feb 4 05:17:27 2008
@@ -184,7 +184,7 @@
path = normalize(path);
// if normalized to root, there is no parent
- if ("/".equals(path)) {
+ if (path == null || "/".equals(path)) {
return null;
}
@@ -193,6 +193,9 @@
if (lastSlash < 0) {
// no slash in the path
return null;
+ } else if (lastSlash == 0) {
+ // parent is root
+ return "/";
}
return path.substring(0, lastSlash);
@@ -223,8 +226,7 @@
}
// find the last slash
- int lastSlash = path.lastIndexOf('/');
- return (lastSlash >= 0) ? path.substring(lastSlash) : path;
+ return path.substring(path.lastIndexOf('/')+1);
}
}
Modified: incubator/sling/trunk/jcr/resource/src/test/java/org/apache/sling/jcr/resource/JcrResourceUtilTest.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/jcr/resource/src/test/java/org/apache/sling/jcr/resource/JcrResourceUtilTest.java?rev=618270&r1=618269&r2=618270&view=diff
==============================================================================
--- incubator/sling/trunk/jcr/resource/src/test/java/org/apache/sling/jcr/resource/JcrResourceUtilTest.java (original)
+++ incubator/sling/trunk/jcr/resource/src/test/java/org/apache/sling/jcr/resource/JcrResourceUtilTest.java Mon Feb 4 05:17:27 2008
@@ -117,4 +117,34 @@
assertEquals("az/bz/cz", JcrResourceUtil.normalize("az/bz/cz"));
assertEquals("", JcrResourceUtil.normalize(""));
}
+
+ public void testGetParent() {
+ assertNull(JcrResourceUtil.getParent("/"));
+ assertNull(JcrResourceUtil.getParent("/.."));
+
+ assertEquals("/", JcrResourceUtil.getParent("/b"));
+ assertEquals("b/c", JcrResourceUtil.getParent("b/c/d"));
+ assertEquals("/b/c", JcrResourceUtil.getParent("/b/c/d"));
+
+ assertNull(JcrResourceUtil.getParent("b"));
+ assertNull(JcrResourceUtil.getParent("/b/.."));
+ }
+
+ public void testGetName() {
+ assertEquals("", JcrResourceUtil.getName("/"));
+ assertEquals("", JcrResourceUtil.getName("/a/.."));
+
+ assertEquals("c", JcrResourceUtil.getName("c"));
+ assertEquals("c", JcrResourceUtil.getName("/c"));
+
+ assertEquals("c", JcrResourceUtil.getName("b/c"));
+ assertEquals("c", JcrResourceUtil.getName("/b/c"));
+
+ assertEquals("c", JcrResourceUtil.getName("b/c/"));
+ assertEquals("c", JcrResourceUtil.getName("/b/c/"));
+
+ assertEquals("b", JcrResourceUtil.getName("b/c/.."));
+ assertEquals("b", JcrResourceUtil.getName("/b/c/.."));
+ assertEquals("", JcrResourceUtil.getName("/b/c/../.."));
+ }
}