X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.db.indexing%2Fsrc%2Forg%2Fsimantics%2Fdb%2Findexing%2FDatabaseIndexing.java;h=b429eb49a77d7d254be6599ced45bd39b68d3ef6;hp=f8a19504c8dc0165f38ddb34f27b7b31fe8a38ed;hb=1ead2fab0a23f75b540dc3f20e84e536f3aaa3ca;hpb=69d8f2b115a832560eca0d56903c8977178b71ab diff --git a/bundles/org.simantics.db.indexing/src/org/simantics/db/indexing/DatabaseIndexing.java b/bundles/org.simantics.db.indexing/src/org/simantics/db/indexing/DatabaseIndexing.java index f8a19504c..b429eb49a 100644 --- a/bundles/org.simantics.db.indexing/src/org/simantics/db/indexing/DatabaseIndexing.java +++ b/bundles/org.simantics.db.indexing/src/org/simantics/db/indexing/DatabaseIndexing.java @@ -12,6 +12,7 @@ package org.simantics.db.indexing; import java.io.IOException; +import java.nio.file.FileAlreadyExistsException; import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; @@ -117,8 +118,12 @@ public final class DatabaseIndexing { // Mark change only once per DB session. if (getIndexChangedWriter(session).markDirty(changedFile)) { Files.createDirectories(indexPath); - Files.createFile(changedFile); - FileUtils.sync(changedFile); + if (!Files.exists(changedFile)) { + Files.createFile(changedFile); + FileUtils.sync(changedFile); + } else if (!Files.isRegularFile(changedFile)) { + throw new FileAlreadyExistsException(changedFile.toString(), null, "index dirtyness indicator file already exists but it is not a regular file"); + } } } catch (IOException e) { LOGGER.error("Could not mark index changed for indexPath={} and changedFile={}", indexPath.toAbsolutePath(), changedFile.toAbsolutePath());