Deal with illegal JCR characters
[lgpl/argeo-commons.git] / org.argeo.jcr / src / org / argeo / jcr / fs / JcrFileSystemProvider.java
index 17665a0a4a0735557699a24b5322c08e820aee8a..dcc59476ff646b59a97a54567958c325f19bbb84 100644 (file)
@@ -47,7 +47,9 @@ public abstract class JcrFileSystemProvider extends FileSystemProvider {
                                                || parent.getPrimaryNodeType().isNodeType(NodeType.NT_LINKED_FILE))
                                        throw new JcrFsException(path + " parent is a file");
 
-                               node = parent.addNode(path.getFileName().toString(), NodeType.NT_FILE);
+                               String fileName = path.getFileName().toString();
+                               fileName = Text.escapeIllegalJcrChars(fileName);
+                               node = parent.addNode(fileName, NodeType.NT_FILE);
                                node.addMixin(NodeType.MIX_CREATED);
                                node.addMixin(NodeType.MIX_LAST_MODIFIED);
                        }
@@ -80,7 +82,9 @@ public abstract class JcrFileSystemProvider extends FileSystemProvider {
                                if (parent.getPrimaryNodeType().isNodeType(NodeType.NT_FILE)
                                                || parent.getPrimaryNodeType().isNodeType(NodeType.NT_LINKED_FILE))
                                        throw new JcrFsException(dir + " parent is a file");
-                               node = parent.addNode(dir.getFileName().toString(), NodeType.NT_FOLDER);
+                               String fileName = dir.getFileName().toString();
+                               fileName = Text.escapeIllegalJcrChars(fileName);
+                               node = parent.addNode(fileName, NodeType.NT_FOLDER);
                                node.addMixin(NodeType.MIX_CREATED);
                                node.addMixin(NodeType.MIX_LAST_MODIFIED);
                                node.getSession().save();