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 68a4b083ca72926916c7b8bd88c57aa9ad465a9c..f2b7c4bb02ae84fea5d6817cc3de50f055f60de5 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 @@ -1077,6 +1077,11 @@ public class VFSRepositoryServiceImpl implements VFSRepositoryService, GenericEv if(directory.isHidden() || VFSRepositoryModule.canMeta(directory) != VFSConstants.YES) { return FileVisitResult.SKIP_SUBTREE; } + if(dir.getNameCount() > 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); @@ -1084,6 +1089,7 @@ public class VFSRepositoryServiceImpl implements VFSRepositoryService, GenericEv dbInstance.commitAndCloseSession(); return FileVisitResult.SKIP_SUBTREE; } + dbInstance.commit(); return FileVisitResult.CONTINUE; } diff --git a/src/main/resources/database/mysql/alter_13_2_x_to_13_3_0.sql b/src/main/resources/database/mysql/alter_13_2_x_to_13_3_0.sql index a73f66da947240e185428b26cf21545a2fde95ff..981cacfa985524fc93a091e9b44b30166ef8dee3 100644 --- a/src/main/resources/database/mysql/alter_13_2_x_to_13_3_0.sql +++ b/src/main/resources/database/mysql/alter_13_2_x_to_13_3_0.sql @@ -22,7 +22,7 @@ create table o_vfs_metadata ( f_city varchar(256), f_pages varchar(16), f_language varchar(16), - f_url text(4000), + f_url text(2000), f_pub_month varchar(16), f_pub_year varchar(16), f_license_type_name varchar(256), @@ -91,7 +91,7 @@ create table o_vfs_revision ( f_city varchar(256), f_pages varchar(16), f_language varchar(16), - f_url text(1024), + f_url text(2048), f_pub_month varchar(16), f_pub_year varchar(16), f_license_type_name varchar(256), diff --git a/src/main/resources/database/mysql/setupDatabase.sql b/src/main/resources/database/mysql/setupDatabase.sql index 17a0aaadf33019aefebd4943088be9a69bd0163a..5b8049b64ff8a2b9c7c3acd3de368db800b8cd51 100644 --- a/src/main/resources/database/mysql/setupDatabase.sql +++ b/src/main/resources/database/mysql/setupDatabase.sql @@ -1732,7 +1732,7 @@ create table o_vfs_metadata ( f_city varchar(256), f_pages varchar(16), f_language varchar(16), - f_url text(1024), + f_url text(2000), f_pub_month varchar(16), f_pub_year varchar(16), f_license_type_name varchar(256), @@ -1783,7 +1783,7 @@ create table o_vfs_revision ( f_city varchar(256), f_pages varchar(16), f_language varchar(16), - f_url text(1024), + f_url text(2048), f_pub_month varchar(16), f_pub_year varchar(16), f_license_type_name varchar(256), diff --git a/src/main/resources/database/oracle/alter_13_2_x_to_13_3_0.sql b/src/main/resources/database/oracle/alter_13_2_x_to_13_3_0.sql index 9ad8fef8984c3115b7d09d18088b695635e47a72..143a62b3c33cda64e62c98fec80a5c54bc9b4014 100644 --- a/src/main/resources/database/oracle/alter_13_2_x_to_13_3_0.sql +++ b/src/main/resources/database/oracle/alter_13_2_x_to_13_3_0.sql @@ -21,7 +21,7 @@ create table o_vfs_metadata ( f_city varchar(256), f_pages varchar(2000), f_language varchar(16), - f_url varchar(1024), + f_url varchar(2000), f_pub_month varchar(16), f_pub_year varchar(16), f_license_type_name varchar(256), @@ -91,7 +91,7 @@ create table o_vfs_revision ( f_city varchar(256), f_pages varchar(2000), f_language varchar(16), - f_url varchar(1024), + f_url varchar(2048), f_pub_month varchar(16), f_pub_year varchar(16), f_license_type_name varchar(256), diff --git a/src/main/resources/database/oracle/setupDatabase.sql b/src/main/resources/database/oracle/setupDatabase.sql index 39822040f87dafcd8f432cf5946dbd17ab3830d5..b5ecbd9f754922eb3600c7fd74bf6e12fc575f70 100644 --- a/src/main/resources/database/oracle/setupDatabase.sql +++ b/src/main/resources/database/oracle/setupDatabase.sql @@ -1660,7 +1660,7 @@ create table o_vfs_metadata ( f_city varchar(256), f_pages varchar(2000), f_language varchar(16), - f_url varchar(1024), + f_url varchar(2000), f_pub_month varchar(16), f_pub_year varchar(16), f_license_type_name varchar(256), @@ -1709,7 +1709,7 @@ create table o_vfs_revision ( f_city varchar(256), f_pages varchar(2000), f_language varchar(16), - f_url varchar(1024), + f_url varchar(2048), f_pub_month varchar(16), f_pub_year varchar(16), f_license_type_name varchar(256), diff --git a/src/main/resources/database/postgresql/alter_13_2_x_to_13_3_0.sql b/src/main/resources/database/postgresql/alter_13_2_x_to_13_3_0.sql index d1f2eaf6f38682d50a79b250e32c00b364e7ec4e..9af68940ef9f69d573a38ec95b53f64af07e1f76 100644 --- a/src/main/resources/database/postgresql/alter_13_2_x_to_13_3_0.sql +++ b/src/main/resources/database/postgresql/alter_13_2_x_to_13_3_0.sql @@ -22,7 +22,7 @@ create table o_vfs_metadata ( f_city varchar(256), f_pages varchar(2000), f_language varchar(16), - f_url varchar(1024), + f_url varchar(2000), f_pub_month varchar(16), f_pub_year varchar(16), f_license_type_name varchar(256), @@ -91,7 +91,7 @@ create table o_vfs_revision ( f_city varchar(256), f_pages varchar(2000), f_language varchar(16), - f_url varchar(1024), + f_url varchar(2048), f_pub_month varchar(16), f_pub_year varchar(16), f_license_type_name varchar(256), diff --git a/src/main/resources/database/postgresql/setupDatabase.sql b/src/main/resources/database/postgresql/setupDatabase.sql index dff4ee28b113278c76c81a97957bec00e6109e68..3aa82040360ee70a94eb272951b8227ad3d49d01 100644 --- a/src/main/resources/database/postgresql/setupDatabase.sql +++ b/src/main/resources/database/postgresql/setupDatabase.sql @@ -1625,7 +1625,7 @@ create table o_vfs_metadata ( f_city varchar(256), f_pages varchar(2000), f_language varchar(16), - f_url varchar(1024), + f_url varchar(2000), f_pub_month varchar(16), f_pub_year varchar(16), f_license_type_name varchar(256), @@ -1676,7 +1676,7 @@ create table o_vfs_revision ( f_city varchar(256), f_pages varchar(2000), f_language varchar(16), - f_url varchar(1024), + f_url varchar(2048), f_pub_month varchar(16), f_pub_year varchar(16), f_license_type_name varchar(256),