From 28e2c4151f5cbbb60330f7e9fa77277361dc6023 Mon Sep 17 00:00:00 2001
From: Simon Barner <barner@fortiss.org>
Date: Wed, 9 Mar 2016 12:40:40 +0000
Subject: [PATCH] - Handle cancellation requests in while() loop handling list
 of elements to be refreshed. - Avoids error "Job found still running after
 platform shutdown.  Jobs should be canceled by the plugin that scheduled them
 during shutdown" found when investigating #2511. More precisely, the error is
 triggered after open all 3 deployments, when AF3 is closed while the
 MarkerService has not finished yet. refs 2511

---
 .../fortiss/tooling/kernel/ui/internal/MarkerService.java    | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/MarkerService.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/MarkerService.java
index 4df97c778..5850a190e 100644
--- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/MarkerService.java
+++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/MarkerService.java
@@ -52,7 +52,7 @@ import org.fortiss.tooling.kernel.ui.service.IMarkerService;
  * @author hoelzl
  * @author $Author$
  * @version $Rev$
- * @ConQAT.Rating YELLOW Hash: C6F05FD1064BC3906A9B370FD7A86DA6
+ * @ConQAT.Rating YELLOW Hash: EA3CCA4A0C6BD17680255C1E8B2EF742
  */
 public class MarkerService implements IMarkerService, IPersistencyServiceListener {
 
@@ -97,6 +97,9 @@ public class MarkerService implements IMarkerService, IPersistencyServiceListene
 				toBeRefreshed = invalidElements.remove(0);
 			}
 			while(toBeRefreshed != null) {
+				if(monitor.isCanceled()) {
+					return Status.CANCEL_STATUS;
+				}
 				refreshMarkers(toBeRefreshed);
 				// get next element to be refreshed
 				synchronized(invalidElements) {
-- 
GitLab