Skip to content
Snippets Groups Projects
Verified Commit 2d352fe7 authored by Timm Fitschen's avatar Timm Fitschen
Browse files

FIX FileSystem

parent 6a261cf3
Branches
Tags
No related merge requests found
......@@ -24,16 +24,6 @@
package caosdb.server;
import caosdb.server.database.access.Access;
import caosdb.server.database.backend.transaction.GetFileRecordByPath;
import caosdb.server.database.misc.TransactionBenchmark;
import caosdb.server.entity.EntityInterface;
import caosdb.server.entity.FileProperties;
import caosdb.server.entity.Message;
import caosdb.server.utils.FileUtils;
import caosdb.server.utils.ServerMessages;
import caosdb.server.utils.Utils;
import com.google.common.io.Files;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
......@@ -44,6 +34,17 @@ import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.regex.Pattern;
import org.apache.commons.fileupload.FileItemStream;
import com.google.common.io.Files;
import caosdb.server.database.access.Access;
import caosdb.server.database.backend.transaction.GetFileRecordByPath;
import caosdb.server.database.exceptions.EntityDoesNotExistException;
import caosdb.server.database.misc.TransactionBenchmark;
import caosdb.server.entity.EntityInterface;
import caosdb.server.entity.FileProperties;
import caosdb.server.entity.Message;
import caosdb.server.utils.FileUtils;
import caosdb.server.utils.ServerMessages;
import caosdb.server.utils.Utils;
public class FileSystem {
private static String filesystem = null;
......@@ -324,15 +325,22 @@ public class FileSystem {
final GetFileRecordByPath t = new GetFileRecordByPath(file.getPath());
t.setAccess(access);
t.setTransactionBenchmark(b);
t.executeTransaction();
try {
t.executeTransaction();
} catch (EntityDoesNotExistException e) {
// could not determine which entity owns this path
// this is usually the case when target is a directory
}
if (t.getEntity() != null) {
final Integer foreign = t.getId();
if (foreign != null && foreign.equals(entity.getId())) {
// entity already owns this path
return true;
}
throw ServerMessages.TARGET_PATH_EXISTS;
}
}
// another entity owns this path
throw ServerMessages.TARGET_PATH_EXISTS;
}
return true;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment