X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.jcr%2Fsrc%2Forg%2Fargeo%2Fjcr%2Ffs%2FJcrFileSystemProvider.java;h=7dbd4e43f88116e96a127b3b305fd1fae8dfe515;hb=1c9a38f78a8a1b314a8d4a46cb26237c27f60a59;hp=f1065be40a3ec4ac2dfb035597202ec3ba977962;hpb=5fdc21e6b89fde77a8614eecb691ab27ae93e956;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 f1065be40..7dbd4e43f 100644 --- a/org.argeo.jcr/src/org/argeo/jcr/fs/JcrFileSystemProvider.java +++ b/org.argeo.jcr/src/org/argeo/jcr/fs/JcrFileSystemProvider.java @@ -30,7 +30,6 @@ import javax.jcr.Session; import javax.jcr.nodetype.NodeType; import javax.jcr.nodetype.PropertyDefinition; -import org.apache.commons.io.FileExistsException; import org.argeo.jcr.JcrUtils; public abstract class JcrFileSystemProvider extends FileSystemProvider { @@ -56,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); @@ -67,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); @@ -91,8 +92,8 @@ public abstract class JcrFileSystemProvider extends FileSystemProvider { node.addMixin(NodeType.MIX_LAST_MODIFIED); node.getSession().save(); } else { - if (!node.getPrimaryNodeType().isNodeType(NodeType.NT_FOLDER)) - throw new FileExistsException(dir + " exists and is not a directory"); + // if (!node.getPrimaryNodeType().isNodeType(NodeType.NT_FOLDER)) + // throw new FileExistsException(dir + " exists and is not a directory"); } } catch (RepositoryException e) { discardChanges(node); @@ -170,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