Hello Marco,
I have tested this code and can see the issue. This is a bug as there are modifications to the hashmap inside the loop which is iterating over the same map's keys (see TransactionVirtualView.java, for-loop in method updateDescendantVVDsWithPrefix, modification to virtualViewDirs map in call updateVVDWithPath).
I am creating a tracking bug for this:
https://java.net/jira/browse/XADISK-160You can create a local patch to fix this, just use an array to hold the keys of the virtualViewDirs and then iterate over the array, i.e.
replace:
for (File dirName : virtualViewDirs.keySet()) {
with:
File[] dirNames = virtualViewDirs.keySet().toArray(new File[0]);
for (File dirName : dirNames) {
Please note that, once you fix it you will see another issue saying "direction changes could not be forced to disk". I have created a tracking bug for this too:
https://java.net/jira/browse/XADISK-161. For the time being, you can use a work around by switching off directory synchronization through the method:
https://xadisk.java.net/javadoc/1.2.2/org/xadisk/filesystem/FileSystemConfiguration.html#setSynchronizeDirectoryChanges%28java.lang.Boolean%29Please let me know if you have any questions.
Thanks,
Nitin