import java.io.IOException;
import java.nio.channels.SeekableByteChannel;
-import java.nio.charset.Charset;
import java.nio.file.AccessMode;
import java.nio.file.CopyOption;
import java.nio.file.DirectoryNotEmptyException;
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 {
throw new IOException(path + " parent is a 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);
|| parent.getPrimaryNodeType().isNodeType(NodeType.NT_LINKED_FILE))
throw new IOException(dir + " parent is a file");
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();
} 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);