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

FIX FileSystem

parent 6a261cf3
No related branches found
No related tags found
No related merge requests found
...@@ -24,16 +24,6 @@ ...@@ -24,16 +24,6 @@
package caosdb.server; 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.File;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
...@@ -44,6 +34,17 @@ import java.security.MessageDigest; ...@@ -44,6 +34,17 @@ import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import org.apache.commons.fileupload.FileItemStream; 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 { public class FileSystem {
private static String filesystem = null; private static String filesystem = null;
...@@ -324,15 +325,22 @@ public class FileSystem { ...@@ -324,15 +325,22 @@ public class FileSystem {
final GetFileRecordByPath t = new GetFileRecordByPath(file.getPath()); final GetFileRecordByPath t = new GetFileRecordByPath(file.getPath());
t.setAccess(access); t.setAccess(access);
t.setTransactionBenchmark(b); 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) { if (t.getEntity() != null) {
final Integer foreign = t.getId(); final Integer foreign = t.getId();
if (foreign != null && foreign.equals(entity.getId())) { if (foreign != null && foreign.equals(entity.getId())) {
// entity already owns this path
return true; return true;
} }
throw ServerMessages.TARGET_PATH_EXISTS;
} }
} }
// another entity owns this path
throw ServerMessages.TARGET_PATH_EXISTS;
} }
return true; return true;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment