Merge branch 'master' into uijobcollector
diff --git a/runtime/tesla/org.eclipse.rcptt.tesla.swt/src/org/eclipse/rcptt/tesla/internal/ui/player/UIJobCollector.java b/runtime/tesla/org.eclipse.rcptt.tesla.swt/src/org/eclipse/rcptt/tesla/internal/ui/player/UIJobCollector.java
index 9129def..3b5bab4 100644
--- a/runtime/tesla/org.eclipse.rcptt.tesla.swt/src/org/eclipse/rcptt/tesla/internal/ui/player/UIJobCollector.java
+++ b/runtime/tesla/org.eclipse.rcptt.tesla.swt/src/org/eclipse/rcptt/tesla/internal/ui/player/UIJobCollector.java
@@ -16,6 +16,7 @@
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashSet;
+import java.util.IdentityHashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -42,7 +43,6 @@
 import org.eclipse.rcptt.tesla.ui.IJobCollector;
 import org.eclipse.rcptt.tesla.ui.IJobCollector.JobStatus;
 import org.eclipse.rcptt.tesla.ui.SWTTeslaActivator;
-import org.eclipse.rcptt.util.WeakIdentityHashMap;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.PlatformUI;
@@ -132,7 +132,8 @@
 		
 		
     }
-    private final Map<Job, JobInfo> jobs = Collections.synchronizedMap(new WeakIdentityHashMap<Job, JobInfo>());
+
+	private final Map<Job, JobInfo> jobs = Collections.synchronizedMap(new IdentityHashMap<Job, JobInfo>());
 	private boolean state;
 	private boolean needDisable = false;
 	private long stepModeNext = 0;
@@ -166,13 +167,16 @@
 	}
 
 	public void done(IJobChangeEvent event) {
+		JobsManager.getInstance().removeCanceled(event.getJob());
 		synchronized (jobs) {
-			getOrCreateJobInfo(event.getJob()).done(TeslaSWTAccess.getJobEventReSchedule(event) && state);
+			boolean reschedule = TeslaSWTAccess.getJobEventReSchedule(event) && state;
+			getOrCreateJobInfo(event.getJob()).done(reschedule);
 			if (needDisable && isJoinEmpty()) {
 				disable();
 			}
+			if (!reschedule)
+				jobs.remove(event.getJob());
 		}
-		JobsManager.getInstance().removeCanceled(event.getJob());
 	}
 
 	public void running(IJobChangeEvent event) {
@@ -202,16 +206,15 @@
     private static final Set<String> IGNORED_BY_DEFAULT = Collections.unmodifiableSet(
             new HashSet<String> (
                 asList(
-							"org.eclipse.jdt.internal.core.search.processing.JobManager$1$ProgressJob",
-							"org.eclipse.ui.internal.progress.ProgressViewUpdater$1",
-							"org.eclipse.ui.internal.progress.WorkbenchSiteProgressService$SiteUpdateJob",
-							"org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.RefreshProgressMessageJob",
-							"org.eclipse.ui.dialogs.FilteredItemsSelectionDialog$RefreshProgressMessageJob",
-							"org.eclipse.ui.internal.progress.AnimationManager$1",
-							"org.eclipse.ui.internal.progress.ProgressManager$6",
-							"org.eclipse.ui.internal.progress.TaskBarProgressManager$2",
-							"org.eclipse.ui.internal.views.markers.CachedMarkerBuilder$1",
-							"org.eclipse.rcptt.ui.recording.RecordingSupport$10"
+                    "org.eclipse.jdt.internal.core.search.processing.JobManager$1$ProgressJob",
+                    "org.eclipse.ui.internal.progress.ProgressViewUpdater$1",
+                    "org.eclipse.ui.internal.progress.WorkbenchSiteProgressService$SiteUpdateJob",
+                    "org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.RefreshProgressMessageJob",
+                    "org.eclipse.ui.dialogs.FilteredItemsSelectionDialog$RefreshProgressMessageJob",
+                    "org.eclipse.ui.internal.progress.AnimationManager$1",
+                    "org.eclipse.ui.internal.progress.ProgressManager$6",
+                    "org.eclipse.ui.internal.progress.TaskBarProgressManager$2",
+                    "org.eclipse.ui.internal.views.markers.CachedMarkerBuilder$1"
                 )
             )
         ); 
@@ -487,7 +490,7 @@
 										if (!jobInfo.jobInStepMode) {
 											// Print step information
 											SWTTeslaActivator
-													.log("---->>> Begin step mode for Job: "
+													.logToReport("---->>> Begin step mode for Job: "
 															+ getCurrentReportNodeName()
 															+ " <<---\n(skipping)"
 															+ getJobMessage(jobInfo));