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

FIX: uncaught EntityDoesNotExist exceptions

parent 2d352fe7
No related branches found
No related tags found
No related merge requests found
...@@ -22,14 +22,14 @@ ...@@ -22,14 +22,14 @@
*/ */
package caosdb.server.database.backend.implementation.UnixFileSystem; package caosdb.server.database.backend.implementation.UnixFileSystem;
import java.io.File;
import java.util.Arrays;
import java.util.Iterator;
import caosdb.server.FileSystem; import caosdb.server.FileSystem;
import caosdb.server.database.access.Access; import caosdb.server.database.access.Access;
import caosdb.server.database.backend.interfaces.GetFileIteratorImpl; import caosdb.server.database.backend.interfaces.GetFileIteratorImpl;
import caosdb.server.database.exceptions.TransactionException; import caosdb.server.database.exceptions.TransactionException;
import caosdb.server.entity.Message; import caosdb.server.entity.Message;
import java.io.File;
import java.util.Arrays;
import java.util.Iterator;
public class UnixFileSystemGetFileIterator extends UnixFileSystemTransaction public class UnixFileSystemGetFileIterator extends UnixFileSystemTransaction
implements GetFileIteratorImpl { implements GetFileIteratorImpl {
......
...@@ -22,6 +22,12 @@ ...@@ -22,6 +22,12 @@
*/ */
package caosdb.server.jobs.core; package caosdb.server.jobs.core;
import java.io.File;
import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import caosdb.server.CaosDBException; import caosdb.server.CaosDBException;
import caosdb.server.CaosDBServer; import caosdb.server.CaosDBServer;
import caosdb.server.FileSystem; import caosdb.server.FileSystem;
...@@ -42,12 +48,6 @@ import caosdb.server.utils.EntityStatus; ...@@ -42,12 +48,6 @@ import caosdb.server.utils.EntityStatus;
import caosdb.server.utils.FileUtils; import caosdb.server.utils.FileUtils;
import caosdb.server.utils.Undoable; import caosdb.server.utils.Undoable;
import caosdb.server.utils.Utils; import caosdb.server.utils.Utils;
import java.io.File;
import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@JobAnnotation( @JobAnnotation(
flag = "InsertFilesInDir", flag = "InsertFilesInDir",
...@@ -262,13 +262,14 @@ public class InsertFilesInDir extends FlagJob { ...@@ -262,13 +262,14 @@ public class InsertFilesInDir extends FlagJob {
} }
private boolean shouldBeProcessed(final File sub) throws IOException { private boolean shouldBeProcessed(final File sub) throws IOException {
if (sub.isFile()) {
if (this.isNotIncluded(sub)) { if (this.isNotIncluded(sub)) {
getContainer() getContainer()
.addMessage( .addMessage(
new Message( new Message(
MessageType.Warning, MessageType.Warning,
1, 1,
"Not explicitly included directory or file: " + sub.getCanonicalPath())); "Not explicitly included file: " + sub.getCanonicalPath()));
return false; return false;
} }
if (this.isExcluded(sub)) { if (this.isExcluded(sub)) {
...@@ -277,9 +278,10 @@ public class InsertFilesInDir extends FlagJob { ...@@ -277,9 +278,10 @@ public class InsertFilesInDir extends FlagJob {
new Message( new Message(
MessageType.Warning, MessageType.Warning,
2, 2,
"Explicitly excluded directory or file: " + sub.getCanonicalPath())); "Explicitly excluded file: " + sub.getCanonicalPath()));
return false; return false;
} }
}
if (sub.isHidden()) { if (sub.isHidden()) {
getContainer() getContainer()
.addMessage( .addMessage(
......
...@@ -22,6 +22,13 @@ ...@@ -22,6 +22,13 @@
*/ */
package caosdb.server.transaction; package caosdb.server.transaction;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map.Entry;
import java.util.TimeZone;
import org.jdom2.Element;
import caosdb.datetime.UTCDateTime; import caosdb.datetime.UTCDateTime;
import caosdb.server.database.DatabaseMonitor; import caosdb.server.database.DatabaseMonitor;
import caosdb.server.database.access.Access; import caosdb.server.database.access.Access;
...@@ -30,17 +37,11 @@ import caosdb.server.database.backend.transaction.GetFileIterator; ...@@ -30,17 +37,11 @@ import caosdb.server.database.backend.transaction.GetFileIterator;
import caosdb.server.database.backend.transaction.GetFileRecordByPath; import caosdb.server.database.backend.transaction.GetFileRecordByPath;
import caosdb.server.database.backend.transaction.RetrieveAllUncheckedFiles; import caosdb.server.database.backend.transaction.RetrieveAllUncheckedFiles;
import caosdb.server.database.backend.transaction.SetFileCheckedTimestamp; import caosdb.server.database.backend.transaction.SetFileCheckedTimestamp;
import caosdb.server.database.exceptions.EntityDoesNotExistException;
import caosdb.server.database.proto.SparseEntity; import caosdb.server.database.proto.SparseEntity;
import caosdb.server.entity.Message; import caosdb.server.entity.Message;
import caosdb.server.entity.xml.ToElementable; import caosdb.server.entity.xml.ToElementable;
import caosdb.server.utils.SHA512; import caosdb.server.utils.SHA512;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map.Entry;
import java.util.TimeZone;
import org.jdom2.Element;
public class FileStorageConsistencyCheck extends Thread public class FileStorageConsistencyCheck extends Thread
implements ToElementable, TransactionInterface { implements ToElementable, TransactionInterface {
...@@ -81,17 +82,13 @@ public class FileStorageConsistencyCheck extends Thread ...@@ -81,17 +82,13 @@ public class FileStorageConsistencyCheck extends Thread
} }
final String path = iterator.next(); final String path = iterator.next();
// FIXME this prevents all files with ".thumbnail" from being checked. // this prevents all thumbnails from being checked.
if (path.contains(".thumbnail")) { if (path.contains(".thumbnails/")) {
continue; continue;
} }
try {
final GetFileRecordByPath t = execute(new GetFileRecordByPath(path), this.access); final GetFileRecordByPath t = execute(new GetFileRecordByPath(path), this.access);
if (t.getEntity() == null) {
this.results.put(path, FileConsistencyCheck.UNKNOWN_FILE);
continue;
}
final int result = final int result =
execute( execute(
new FileConsistencyCheck( new FileConsistencyCheck(
...@@ -104,6 +101,11 @@ public class FileStorageConsistencyCheck extends Thread ...@@ -104,6 +101,11 @@ public class FileStorageConsistencyCheck extends Thread
} }
execute(new SetFileCheckedTimestamp(t.getId(), this.ts), this.access); execute(new SetFileCheckedTimestamp(t.getId(), this.ts), this.access);
} catch (EntityDoesNotExistException e) {
this.results.put(path, FileConsistencyCheck.UNKNOWN_FILE);
continue;
}
} }
// test all remaining file records // test all remaining file records
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment