X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.jcr%2Fsrc%2Forg%2Fargeo%2Fjcr%2Ffs%2FJcrPath.java;h=a2080c546a8eb48f178fc133168bc98dd939cc5c;hb=503f2f9ae7bc2167a3c41d1937fc63c299c16027;hp=8917f13a13c167211ec7127215c8edbe2be34c13;hpb=36c14000ab482f558a9679f75ac7bfb0953171f4;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.jcr/src/org/argeo/jcr/fs/JcrPath.java b/org.argeo.jcr/src/org/argeo/jcr/fs/JcrPath.java index 8917f13a1..a2080c546 100644 --- a/org.argeo.jcr/src/org/argeo/jcr/fs/JcrPath.java +++ b/org.argeo.jcr/src/org/argeo/jcr/fs/JcrPath.java @@ -259,15 +259,18 @@ public class JcrPath implements Path { if (other.startsWith(this)) { String p1 = toString(); String p2 = other.toString(); - return new JcrPath(fs, p2.substring(p1.length(), p2.length())); + String relative = p2.substring(p1.length(), p2.length()); + if (relative.charAt(0) == '/') + relative = relative.substring(1); + return new JcrPath(fs, relative); } - throw new IllegalArgumentException(other + " cannot be realtivized against " + this); + throw new IllegalArgumentException(other + " cannot be relativized against " + this); } @Override public URI toUri() { try { - return new URI("jcr", toString(), null); + return new URI(fs.provider().getScheme(), toString(), null); } catch (URISyntaxException e) { throw new JcrFsException("Cannot create URI for " + toString(), e); }