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