Allow to upload a file in any node.
authorMathieu Baudier <mbaudier@argeo.org>
Sat, 21 Jan 2017 17:05:00 +0000 (18:05 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Sat, 21 Jan 2017 17:05:00 +0000 (18:05 +0100)
org.argeo.jcr/src/org/argeo/jcr/fs/JcrFileSystemProvider.java

index add900540a3e2023d7934d2fc0ecdcee3f68e4ff..17665a0a4a0735557699a24b5322c08e820aee8a 100644 (file)
@@ -40,13 +40,14 @@ public abstract class JcrFileSystemProvider extends FileSystemProvider {
                try {
                        Node node = toNode(path);
                        if (node == null) {
-                               Node parentNode = toNode(path.getParent());
-                               if (parentNode == null)
+                               Node parent = toNode(path.getParent());
+                               if (parent == null)
                                        throw new JcrFsException("No parent directory for " + path);
-                               if (!(parentNode.getPath().equals("/") || parentNode.isNodeType(NodeType.NT_FOLDER)))
-                                       throw new JcrFsException("Parent of " + path + " is not a directory");
+                               if (parent.getPrimaryNodeType().isNodeType(NodeType.NT_FILE)
+                                               || parent.getPrimaryNodeType().isNodeType(NodeType.NT_LINKED_FILE))
+                                       throw new JcrFsException(path + " parent is a file");
 
-                               node = parentNode.addNode(path.getFileName().toString(), NodeType.NT_FILE);
+                               node = parent.addNode(path.getFileName().toString(), NodeType.NT_FILE);
                                node.addMixin(NodeType.MIX_CREATED);
                                node.addMixin(NodeType.MIX_LAST_MODIFIED);
                        }