ref #5691 Only have on update job at a time for ReferencingObjectsView
authorPatrick Plitzner <p.plitzner@bgbm.org>
Tue, 7 Mar 2017 09:59:29 +0000 (10:59 +0100)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Tue, 7 Mar 2017 09:59:29 +0000 (10:59 +0100)
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/referencingobjects/ReferencingObjectsView.java

index bc0e6929ff7f99f180ca9a678ba8a959d058f981..cced9c3b8a40a3c3465cd25c304c6a3d16098f26 100644 (file)
@@ -102,6 +102,7 @@ public class ReferencingObjectsView extends AbstractCdmViewPart {
        List<CdmBase> referencingObjects = null;
        Set<CdmBase> referencingObjectsSet = null;
        IProgressMonitor actualMonitor = null;
+       private Job currentJob = null;
 
        public ReferencingObjectsView() {
            cdmEntitySession = CdmStore.getCurrentSessionManager().bindNullSession();
@@ -190,7 +191,15 @@ public class ReferencingObjectsView extends AbstractCdmViewPart {
                return ;
            }
            showEmptyPage();
-               Job job = new Job("Update Referencing Objects " + entityUUID) {
+           if(currentJob!=null){
+               boolean success = false;
+               //wait for cancel to be done
+               while(!success){
+                   success = currentJob.cancel();
+               }
+               currentJob = null;
+           }
+               currentJob = new Job("Update Referencing Objects " + entityUUID) {
 
                        @Override
                        protected IStatus run(IProgressMonitor monitor) {
@@ -251,9 +260,9 @@ public class ReferencingObjectsView extends AbstractCdmViewPart {
 
                        }
                };
-               job.setUser(true);
+               currentJob.setUser(true);
 
-               job.schedule();
+               currentJob.schedule();
                final IJobChangeListener listener;
                listener =  new JobChangeAdapter() {
             @Override
@@ -263,7 +272,7 @@ public class ReferencingObjectsView extends AbstractCdmViewPart {
             }
 
         };
-        job.addJobChangeListener(listener);
+        currentJob.addJobChangeListener(listener);