X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.jcr%2Fsrc%2Forg%2Fargeo%2Fjcr%2Ffs%2FJcrFileSystemProvider.java;h=7dbd4e43f88116e96a127b3b305fd1fae8dfe515;hb=a8731626eaf812794bec138649de575e6e036245;hp=04d1342bf3f480708f707805327487fb8f805b0e;hpb=088c1b517a543e935d8ab65c3b2fd2d0269b551d;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 04d1342bf..7dbd4e43f 100644 --- a/org.argeo.jcr/src/org/argeo/jcr/fs/JcrFileSystemProvider.java +++ b/org.argeo.jcr/src/org/argeo/jcr/fs/JcrFileSystemProvider.java @@ -55,7 +55,7 @@ public abstract class JcrFileSystemProvider extends FileSystemProvider { } if (!node.isNodeType(NodeType.NT_FILE)) throw new UnsupportedOperationException(node + " must be a file"); - return new BinaryChannel(node); + return new BinaryChannel(node, path); } catch (RepositoryException e) { discardChanges(node); throw new IOException("Cannot read file", e); @@ -66,6 +66,8 @@ public abstract class JcrFileSystemProvider extends FileSystemProvider { public DirectoryStream newDirectoryStream(Path dir, Filter filter) throws IOException { try { 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); } catch (RepositoryException e) { throw new IOException("Cannot list directory", e); @@ -169,7 +171,7 @@ public abstract class JcrFileSystemProvider extends FileSystemProvider { @Override public boolean isHidden(Path path) throws IOException { - return false; + return path.getFileName().toString().charAt(0) == '.'; } @Override