]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.jcr/src/org/argeo/jcr/fs/JcrFileSystemProvider.java
Improve error feedback in JCR FS
[lgpl/argeo-commons.git] / org.argeo.jcr / src / org / argeo / jcr / fs / JcrFileSystemProvider.java
index f1065be40a3ec4ac2dfb035597202ec3ba977962..804be94fdb752f83aa6ce830cbe39f085efbe46f 100644 (file)
@@ -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 {
@@ -67,6 +66,8 @@ public abstract class JcrFileSystemProvider extends FileSystemProvider {
        public DirectoryStream<Path> newDirectoryStream(Path dir, Filter<? super Path> 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);