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));