From 0935a6f961e7bc34bc59ce17b1e78ad3eedd7dd8 Mon Sep 17 00:00:00 2001 From: srosse <stephane.rosse@frentix.com> Date: Thu, 29 Aug 2019 19:10:01 +0200 Subject: [PATCH] no-jira: fix concurrent issue in VFS migration --- .../services/vfs/manager/VFSRepositoryServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/olat/core/commons/services/vfs/manager/VFSRepositoryServiceImpl.java b/src/main/java/org/olat/core/commons/services/vfs/manager/VFSRepositoryServiceImpl.java index 7de7e66dda1..9aeaca7b5af 100644 --- a/src/main/java/org/olat/core/commons/services/vfs/manager/VFSRepositoryServiceImpl.java +++ b/src/main/java/org/olat/core/commons/services/vfs/manager/VFSRepositoryServiceImpl.java @@ -1087,18 +1087,18 @@ public class VFSRepositoryServiceImpl implements VFSRepositoryService, GenericEv if(directory.isHidden() || VFSRepositoryModule.canMeta(directory) != VFSConstants.YES) { return FileVisitResult.SKIP_SUBTREE; } - if(dir.getNameCount() > 50) { + if(dir.getNameCount() > 50 || parentLine.size() > 50) { log.error("More than 50 directories deep. Stop migrating metadata: {}", directory); return FileVisitResult.SKIP_SUBTREE; } VFSMetadata parent = parentLine.peekLast(); VFSMetadata metadata = migrateMetadata(dir.toFile(), parent); - parentLine.add(metadata); if(metadata != null && "migrated".equals(metadata.getMigrated())) { dbInstance.commitAndCloseSession(); return FileVisitResult.SKIP_SUBTREE; } + parentLine.add(metadata); dbInstance.commit(); return FileVisitResult.CONTINUE; } -- GitLab