X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.jcr%2Fsrc%2Forg%2Fargeo%2Fjcr%2Ffs%2FJcrFileSystemProvider.java;h=7a38ba3701d45f071e1f654f1c4145dafc7c0c46;hb=2afabd9e7b225f80b341063e25188314394c9aef;hp=a9ea14826d2bc7c1937a6f8a9390f1f6ab588b84;hpb=6d8432bcf931c7525ecc4254b2a95e8a413a06f1;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.jcr/src/org/argeo/jcr/fs/JcrFileSystemProvider.java b/org.argeo.jcr/src/org/argeo/jcr/fs/JcrFileSystemProvider.java index a9ea14826..7a38ba370 100644 --- a/org.argeo.jcr/src/org/argeo/jcr/fs/JcrFileSystemProvider.java +++ b/org.argeo.jcr/src/org/argeo/jcr/fs/JcrFileSystemProvider.java @@ -25,6 +25,7 @@ import javax.jcr.Node; import javax.jcr.Property; import javax.jcr.PropertyIterator; import javax.jcr.PropertyType; +import javax.jcr.Repository; import javax.jcr.RepositoryException; import javax.jcr.Session; import javax.jcr.nodetype.NodeType; @@ -69,7 +70,8 @@ public abstract class JcrFileSystemProvider extends FileSystemProvider { Node base = toNode(dir); if (base == null) throw new IOException(dir + " is not a JCR node"); - return new NodeDirectoryStream((JcrFileSystem) dir.getFileSystem(), base.getNodes(), filter); + JcrFileSystem fileSystem = (JcrFileSystem) dir.getFileSystem(); + return new NodeDirectoryStream(fileSystem, base.getNodes(), fileSystem.listDirectMounts(dir), filter); } catch (RepositoryException e) { throw new IOException("Cannot list directory", e); } @@ -194,14 +196,10 @@ public abstract class JcrFileSystemProvider extends FileSystemProvider { @Override public void checkAccess(Path path, AccessMode... modes) throws IOException { - try { - Session session = ((JcrFileSystem) path.getFileSystem()).getSession(); - if (!session.itemExists(path.toString())) - throw new NoSuchFileException(path + " does not exist"); - // TODO check access via JCR api - } catch (RepositoryException e) { - throw new IOException("Cannot delete " + path, e); - } + Node node = toNode(path); + if (node == null) + throw new NoSuchFileException(path + " does not exist"); + // TODO check access via JCR api } @Override @@ -317,7 +315,7 @@ public abstract class JcrFileSystemProvider extends FileSystemProvider { * * @return null by default */ - public Node getUserHome(Session session) { + public Node getUserHome(Repository session) { return null; }