Index re-initialization can fail in Windows due to how the file system works
The crash may look e.g. like this:
org.simantics.db.layer0.genericrelation.IndexException: org.simantics.db.exception.DatabaseException: java.nio.file.AccessDeniedException: C:\Apros\Apros 6.08.03.07 Thermal 64\workspace\.metadata\.plugins\org.simantics.db.indexing\index\database.37053.761857
org.simantics.db.exception.DatabaseException: org.simantics.db.layer0.genericrelation.IndexException: org.simantics.db.exception.DatabaseException: java.nio.file.AccessDeniedException: C:\Apros\Apros 6.08.03.07 Thermal 64\workspace\.metadata\.plugins\org.simantics.db.indexing\index\database.37053.761857
at org.simantics.db.impl.query.CacheEntryBase.checkAndThrow(CacheEntryBase.java:123)
at org.simantics.db.impl.query.ReadEntry.get(ReadEntry.java:154)
at org.simantics.db.impl.query.QueryProcessor.performForEach(QueryProcessor.java:1068)
at org.simantics.db.impl.query.QueryProcessor.queryRead(QueryProcessor.java:858)
at org.simantics.db.impl.graph.ReadGraphImpl.syncRequest(ReadGraphImpl.java:2027)
at org.simantics.db.impl.graph.ReadGraphImpl.syncRequest(ReadGraphImpl.java:2014)
at org.simantics.db.layer0.adapter.impl.EntityInstances.findRec(EntityInstances.java:155)
at org.simantics.db.layer0.adapter.impl.EntityInstances.find(EntityInstances.java:184)
at org.simantics.db.layer0.adapter.impl.EntityInstances.find(EntityInstances.java:56)
at org.simantics.modeling.ModelingUtils.searchByType(ModelingUtils.java:761)
at org.simantics.modeling.ModelingUtils.createMissingGUIDs(ModelingUtils.java:2382)
at fi.vtt.apros.ui.wizard.Apros5ModelImport$2.perform(Apros5ModelImport.java:291)
at fi.vtt.simantics.procore.internal.SessionImplSocket$1.run(SessionImplSocket.java:455)
at fi.vtt.simantics.procore.internal.SessionRequestManager$3.run(SessionRequestManager.java:184)
at org.simantics.db.impl.query.QueryThread.run(QueryThread.java:251)
Caused by: org.simantics.db.layer0.genericrelation.IndexException: org.simantics.db.exception.DatabaseException: java.nio.file.AccessDeniedException: C:\Apros\Apros 6.08.03.07 Thermal 64\workspace\.metadata\.plugins\org.simantics.db.indexing\index\database.37053.761857
at org.simantics.db.indexing.IndexedRelationsImpl.waitLoaded(IndexedRelationsImpl.java:185)
at org.simantics.db.indexing.IndexedRelationsImpl.queryResources(IndexedRelationsImpl.java:308)
at org.simantics.db.layer0.genericrelation.DependenciesRelation.queryResources(DependenciesRelation.java:253)
at org.simantics.db.layer0.genericrelation.DependencyResources.apply(DependencyResources.java:70)
at org.simantics.db.layer0.genericrelation.DependencyResources.apply(DependencyResources.java:54)
at org.simantics.db.layer0.genericrelation.DependencyResources.apply(DependencyResources.java:1)
at org.simantics.db.layer0.adapter.impl.EntityInstances$QueryIndex.perform(EntityInstances.java:86)
at org.simantics.db.layer0.adapter.impl.EntityInstances$QueryIndex.perform(EntityInstances.java:1)
at org.simantics.db.impl.query.QueryProcessor.performForEach(QueryProcessor.java:1058)
... 12 more
Caused by: org.simantics.db.exception.DatabaseException: java.nio.file.AccessDeniedException: C:\Apros\Apros 6.08.03.07 Thermal 64\workspace\.metadata\.plugins\org.simantics.db.indexing\index\database.37053.761857
at org.simantics.db.indexing.IndexedRelationsSearcherBase.lambda$0(IndexedRelationsSearcherBase.java:599)
at org.simantics.db.indexing.internal.IndexingJob$1.run(IndexingJob.java:69)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
Caused by: java.nio.file.AccessDeniedException: C:\Apros\Apros 6.08.03.07 Thermal 64\workspace\.metadata\.plugins\org.simantics.db.indexing\index\database.37053.761857
at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:83)
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)
at sun.nio.fs.WindowsFileSystemProvider.createDirectory(WindowsFileSystemProvider.java:504)
at java.nio.file.Files.createDirectory(Files.java:674)
at java.nio.file.Files.createAndCheckIsDirectory(Files.java:781)
at java.nio.file.Files.createDirectories(Files.java:767)
at org.simantics.db.indexing.IndexedRelationsSearcherBase.initializeIndexImpl(IndexedRelationsSearcherBase.java:623)
at org.simantics.db.indexing.IndexedRelationsSearcherBase.lambda$0(IndexedRelationsSearcherBase.java:597)
... 2 more
The reasons behind this can be many, but the key points are iterated in the following links:
-
https://blogs.msdn.microsoft.com/oldnewthing/20120907-00/?p=6663/
-
▶ Anti-virus software can cause problems in Windows -
▶ DirectorySizeTracker in the platform could also cause problems by constantly tracking everything under the workspace directory, although it only reads file sizes.
The best solution for this is to prevent deleting the existing directory in the first place. All we need to do is empty the directory and keep it. That should work around these problems for good.
Edited by Tuukka Lehtonen