From f9facfaa7aae72a323f52286b6b2e717025f1481 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Mon, 12 Dec 2011 18:03:47 +0100
Subject: [PATCH] FXOLAT-397: make the catalog -> details more robust against
 concurrent changes

---
 .../olat/catalog/ui/CatalogController.java    | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/src/main/java/org/olat/catalog/ui/CatalogController.java b/src/main/java/org/olat/catalog/ui/CatalogController.java
index 3806134dc6b..4a28f8982e0 100644
--- a/src/main/java/org/olat/catalog/ui/CatalogController.java
+++ b/src/main/java/org/olat/catalog/ui/CatalogController.java
@@ -434,14 +434,17 @@ public class CatalogController extends BasicController implements Activateable,
 				if (s.startsWith(CATENTRY_LEAF)) {
 					int pos = Integer.parseInt(s.substring(CATENTRY_LEAF.length()));
 					CatalogEntry showDetailForLink = (CatalogEntry) childCe.get(pos);
-					RepositoryEntry repoEnt = showDetailForLink.getRepositoryEntry();					
-					fireEvent(ureq, new EntryChangedEvent(repoEnt, EntryChangedEvent.MODIFIED));
-					//fxdiff BAKS-7 Resume function
-					OLATResourceable ceRes = OresHelper.createOLATResourceableInstance(CatalogEntry.class.getSimpleName(), showDetailForLink.getKey());
-					WindowControl bwControl = addToHistory(ureq, ceRes, null);
-					OLATResourceable ores = OresHelper.createOLATResourceableInstance("details", 0l);
-					addToHistory(ureq, ores, null, bwControl, true);
-					return;
+					RepositoryEntry repoEnt = showDetailForLink.getRepositoryEntry();
+					if(repoEnt == null) {//concurrent edition, reload the current listing
+						updateContent(ureq, currentCatalogEntry, currentCatalogEntryLevel);
+					} else {
+						fireEvent(ureq, new EntryChangedEvent(repoEnt, EntryChangedEvent.MODIFIED));
+						//fxdiff BAKS-7 Resume function
+						OLATResourceable ceRes = OresHelper.createOLATResourceableInstance(CatalogEntry.class.getSimpleName(), showDetailForLink.getKey());
+						WindowControl bwControl = addToHistory(ureq, ceRes, null);
+						OLATResourceable ores = OresHelper.createOLATResourceableInstance("details", 0l);
+						addToHistory(ureq, ores, null, bwControl, true);
+					}
 				}
 			}
 		}
-- 
GitLab