From ffded1d1cf484337bf9f34d13849bccfa207680b Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Tue, 21 Oct 2014 10:22:18 +0200
Subject: [PATCH] OO-1267: remove the olat resource after the repository entry
 is removed

---
 .../java/org/olat/fileresource/FileResourceManager.java    | 6 ------
 .../org/olat/repository/manager/RepositoryServiceImpl.java | 7 ++++++-
 2 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/src/main/java/org/olat/fileresource/FileResourceManager.java b/src/main/java/org/olat/fileresource/FileResourceManager.java
index 184628703f2..7d4de122c2a 100644
--- a/src/main/java/org/olat/fileresource/FileResourceManager.java
+++ b/src/main/java/org/olat/fileresource/FileResourceManager.java
@@ -40,8 +40,6 @@ import org.olat.core.util.coordinate.SyncerCallback;
 import org.olat.core.util.vfs.VFSContainer;
 import org.olat.core.util.vfs.VFSItem;
 import org.olat.fileresource.types.FileResource;
-import org.olat.resource.OLATResource;
-import org.olat.resource.OLATResourceManager;
 
 /**
  * Initial Date: Apr 8, 2004
@@ -74,10 +72,6 @@ public class FileResourceManager extends BasicManager {
 		// delete resources
 		File fResourceFileroot = getFileResourceRoot(res);
 		FileUtils.deleteDirsAndFiles(fResourceFileroot, true, true);
-		// delete resourceable
-		OLATResourceManager rm = OLATResourceManager.getInstance();
-		OLATResource ores = rm.findResourceable(res);
-		if (ores != null) rm.deleteOLATResource(ores);
 	}
 
 	/**
diff --git a/src/main/java/org/olat/repository/manager/RepositoryServiceImpl.java b/src/main/java/org/olat/repository/manager/RepositoryServiceImpl.java
index 9a13d077a8d..ac23400c22e 100644
--- a/src/main/java/org/olat/repository/manager/RepositoryServiceImpl.java
+++ b/src/main/java/org/olat/repository/manager/RepositoryServiceImpl.java
@@ -254,6 +254,7 @@ public class RepositoryServiceImpl implements RepositoryService {
 		
 		//delete all policies
 		securityManager.deletePolicies(resource);
+		dbInstance.commit();
 		
 		// inform handler to do any cleanup work... handler must delete the
 		// referenced resourceable a swell.
@@ -276,7 +277,8 @@ public class RepositoryServiceImpl implements RepositoryService {
 	public void deleteRepositoryEntryAndBaseGroups(RepositoryEntry entry) {
 		RepositoryEntry reloadedEntry = dbInstance.getCurrentEntityManager()
 				.getReference(RepositoryEntry.class, entry.getKey());
-		
+		OLATResource resource = reloadedEntry.getOlatResource();
+
 		Group defaultGroup = reToGroupDao.getDefaultGroup(reloadedEntry);
 		groupDao.removeMemberships(defaultGroup);
 		reToGroupDao.removeRelations(reloadedEntry);
@@ -284,6 +286,9 @@ public class RepositoryServiceImpl implements RepositoryService {
 		dbInstance.getCurrentEntityManager().remove(reloadedEntry);
 		groupDao.removeGroup(defaultGroup);
 		dbInstance.commit();
+
+		dbInstance.getCurrentEntityManager().remove(resource);
+		dbInstance.commit();
 	}
 
 	@Override
-- 
GitLab