Skip to content

Commit

Permalink
fixes #181
Browse files Browse the repository at this point in the history
  • Loading branch information
Sebastian Stenzel committed Mar 21, 2016
1 parent 77aaeab commit d397f59
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import java.util.stream.Stream;

import org.cryptomator.common.WeakValuedCache;
import org.cryptomator.common.streams.AutoClosingStream;
import org.cryptomator.filesystem.File;
import org.cryptomator.filesystem.Folder;
import org.cryptomator.filesystem.Node;
Expand All @@ -35,7 +36,7 @@ public Optional<D> parent() throws UncheckedIOException {

@Override
public Stream<? extends Node> children() throws UncheckedIOException {
return Stream.concat(folders(), files());
return AutoClosingStream.from(Stream.concat(folders(), files()));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import org.apache.commons.lang3.StringUtils;
import org.cryptomator.common.LazyInitializer;
import org.cryptomator.common.WeakValuedCache;
import org.cryptomator.common.streams.AutoClosingStream;
import org.cryptomator.crypto.engine.Cryptor;
import org.cryptomator.filesystem.Deleter;
import org.cryptomator.filesystem.File;
Expand Down Expand Up @@ -74,7 +75,7 @@ protected Optional<String> getDirectoryId() {

@Override
public Stream<? extends Node> children() {
return Stream.concat(files(), folders());
return AutoClosingStream.from(Stream.concat(files(), folders()));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import org.apache.jackrabbit.webdav.property.DavPropertyName;
import org.apache.jackrabbit.webdav.property.DefaultDavProperty;
import org.apache.jackrabbit.webdav.property.ResourceType;
import org.cryptomator.common.streams.AutoClosingStream;
import org.cryptomator.filesystem.Folder;
import org.cryptomator.filesystem.Node;
import org.cryptomator.filesystem.WritableFile;
Expand Down Expand Up @@ -90,7 +91,8 @@ private void addMemberFile(DavFile memberFile, InputStream inputStream) {
public DavResourceIterator getMembers() {
final Stream<DavFolder> folders = node.folders().map(this::folderToDavFolder);
final Stream<DavFile> files = node.files().map(this::fileToDavFile);
return new DavResourceIteratorImpl(Stream.concat(folders, files).collect(Collectors.toList()));
final Stream<DavResource> members = AutoClosingStream.from(Stream.concat(folders, files));
return new DavResourceIteratorImpl(members.collect(Collectors.toList()));
}

private DavFolder folderToDavFolder(FolderLocator memberFolder) {
Expand All @@ -115,9 +117,15 @@ public void removeMember(DavResource member) throws DavException {
* Error 404 if no child with the given name exists
*/
private Node getMemberNode(String name) throws DavException {
return node.children().filter(c -> c.name().equals(name)).findAny().orElseThrow(() -> {
return new DavException(DavServletResponse.SC_NOT_FOUND, "No such file or directory: " + node.getResourcePath() + name);
});
Node file = node.file(name);
Node folder = node.folder(name);
if (file.exists()) {
return file;
} else if (folder.exists()) {
return folder;
} else {
throw new DavException(DavServletResponse.SC_NOT_FOUND, "No such file or directory: " + node.getResourcePath() + name);
}
}

@Override
Expand Down

0 comments on commit d397f59

Please sign in to comment.