From 331a4dbe743ff305491ee815b3d070991c1fcae5 Mon Sep 17 00:00:00 2001 From: gnaegi <none@none> Date: Tue, 17 Mar 2015 09:15:33 +0100 Subject: [PATCH] OO-1481 replace corrupt versions.xml file with new one to prevent RS --- .../core/util/vfs/version/VersionsFileManager.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/olat/core/util/vfs/version/VersionsFileManager.java b/src/main/java/org/olat/core/util/vfs/version/VersionsFileManager.java index 303733f3761..f8bb56bc030 100644 --- a/src/main/java/org/olat/core/util/vfs/version/VersionsFileManager.java +++ b/src/main/java/org/olat/core/util/vfs/version/VersionsFileManager.java @@ -214,7 +214,15 @@ public class VersionsFileManager extends VersionsManager implements Initializabl return versions; } catch (Exception e) { log.warn("This file is not a versions XML file: " + fVersions, e); - return null; + fVersions.delete(); + VersionsFileImpl versions = new VersionsFileImpl(); + versions.setCurrentVersion((Versionable) leaf); + versions.setVersioned(isVersioned(leaf)); + versions.setRevisionNr(getNextRevisionNr(versions)); + log.warn("Deleted corrupt version XML file and created new version XML file: " + versions); + // the old revisions can not be restored automatically. They are still on disk, you could recover them + // manually. This is not a perfect solution, but at least the user does not get an RS + return versions; } } -- GitLab