Fixed memory leak in UIJObCollector
diff --git a/rcpttTests/ECL_IDE_module/editors/ScenarioEditor/Content assist/Procedure documentation/Comment javadoc.test b/rcpttTests/ECL_IDE_module/editors/ScenarioEditor/Content assist/Procedure documentation/Comment javadoc.test
index 4bf8ba4..f731da5 100644
--- a/rcpttTests/ECL_IDE_module/editors/ScenarioEditor/Content assist/Procedure documentation/Comment javadoc.test
+++ b/rcpttTests/ECL_IDE_module/editors/ScenarioEditor/Content assist/Procedure documentation/Comment javadoc.test
@@ -6,8 +6,8 @@
Element-Version: 3.0
External-Reference:
Id: _GG-CECaOEeS4ZoAAFrP9Rg
-Runtime-Version: 1.5.0.201406020630
-Save-Time: 8/18/14 7:24 PM
+Runtime-Version: 1.5.2.201408180747
+Save-Time: 8/25/14 12:07 PM
Testcase-Type: ecl
------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac
@@ -27,6 +27,10 @@
key-type Enter
}
get-editor "New Java Class Procs" | get-section Script | get-text-viewer | hover-text 36 9 -with Left
-get-window -from "Information Window" | get-control Browser | get-property text | contains "Procedure <B>open-new-class-dialog</B> <BR>Description of open-new-class-dialog" | verify-true
+get-window -from "Information Window" | get-control Browser | get-property text -raw | invoke toLowerCase |
+invoke contains ">procedure <b>open-new-class-dialog</b>\\n"
+ + "<br />\\n"
+ + " description of open-new-class-dialog\\n"| verify-true
+
------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac--
diff --git a/rcpttTests/ECL_IDE_module/editors/ScenarioEditor/Content assist/Procedure documentation/Context.test b/rcpttTests/ECL_IDE_module/editors/ScenarioEditor/Content assist/Procedure documentation/Context.test
index 828ad2c..68a2b6a 100644
--- a/rcpttTests/ECL_IDE_module/editors/ScenarioEditor/Content assist/Procedure documentation/Context.test
+++ b/rcpttTests/ECL_IDE_module/editors/ScenarioEditor/Content assist/Procedure documentation/Context.test
@@ -6,8 +6,8 @@
Element-Version: 3.0
External-Reference:
Id: _d1NdkCbREeSJvYFSUnsXEQ
-Runtime-Version: 1.5.0.201406020630
-Save-Time: 8/18/14 7:22 PM
+Runtime-Version: 1.5.2.201408180747
+Save-Time: 8/25/14 12:10 PM
Testcase-Type: ecl
------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac
@@ -23,6 +23,9 @@
}
get-view "Test Explorer" | get-tree | select "MyProject/Dummy" | double-click
get-editor Dummy | get-section Script | get-text-viewer | hover-text 1 9
-get-window -from "Information Window" | get-control Browser | get-property text | contains "Procedure <B>create-java-class</B> <BR>Description of create-java-class procedure" | verify-true
+get-window -from "Information Window" | get-control Browser | get-property text -raw | invoke toLowerCase | invoke contains
+"procedure <b>create-java-class</b>\\n"
+ + "<br /> description of create-java-class procedure\\n" | verify-true
+
------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac--
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..7451d38 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"
)
)
);