Merge remote-tracking branch 'origin/master' into BETA_JAVA9

Conflicts:
	org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMType.java
	org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/ExecutionEnvironment.java
diff --git a/org.eclipse.jdt.debug.jdi.tests/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.jdt.debug.jdi.tests/.settings/org.eclipse.jdt.ui.prefs
index 69f7753..c9192ac 100644
--- a/org.eclipse.jdt.debug.jdi.tests/.settings/org.eclipse.jdt.ui.prefs
+++ b/org.eclipse.jdt.debug.jdi.tests/.settings/org.eclipse.jdt.ui.prefs
@@ -68,10 +68,12 @@
 sp_cleanup.always_use_parentheses_in_expressions=false

 sp_cleanup.always_use_this_for_non_static_field_access=false

 sp_cleanup.always_use_this_for_non_static_method_access=false

+sp_cleanup.convert_functional_interfaces=false

 sp_cleanup.convert_to_enhanced_for_loop=false

 sp_cleanup.correct_indentation=false

 sp_cleanup.format_source_code=true

 sp_cleanup.format_source_code_changes_only=true

+sp_cleanup.insert_inferred_type_arguments=false

 sp_cleanup.make_local_variable_final=false

 sp_cleanup.make_parameters_final=false

 sp_cleanup.make_private_fields_final=true

@@ -87,7 +89,8 @@
 sp_cleanup.qualify_static_member_accesses_with_declaring_class=false

 sp_cleanup.qualify_static_method_accesses_with_declaring_class=false

 sp_cleanup.remove_private_constructors=true

-sp_cleanup.remove_trailing_whitespaces=false

+sp_cleanup.remove_redundant_type_arguments=true

+sp_cleanup.remove_trailing_whitespaces=true

 sp_cleanup.remove_trailing_whitespaces_all=true

 sp_cleanup.remove_trailing_whitespaces_ignore_empty=false

 sp_cleanup.remove_unnecessary_casts=true

@@ -100,8 +103,10 @@
 sp_cleanup.remove_unused_private_types=true

 sp_cleanup.sort_members=false

 sp_cleanup.sort_members_all=false

+sp_cleanup.use_anonymous_class_creation=false

 sp_cleanup.use_blocks=true

 sp_cleanup.use_blocks_only_for_return_and_throw=false

+sp_cleanup.use_lambda=false

 sp_cleanup.use_parentheses_in_expressions=false

 sp_cleanup.use_this_for_non_static_field_access=false

 sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true

diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/AbstractJDITest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/AbstractJDITest.java
index ba97d95..e60580b 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/AbstractJDITest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/AbstractJDITest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -61,7 +61,7 @@
 
 /**
  * Tests for com.sun.jdi.* and JDWP commands.
- * These tests assume that the target program is 
+ * These tests assume that the target program is
  * "org.eclipse.debug.jdi.tests.program.MainClass".
  *
  * Examples of arguments:
@@ -116,7 +116,7 @@
 	}
 	/**
 	 * Creates and returns an access watchpoint request
-	 * for the field "fBool" in 
+	 * for the field "fBool" in
 	 * org.eclipse.debug.jdi.tests.program.MainClass
 	 * NOTE: This assumes that the VM can watch field access.
 	 */
@@ -148,7 +148,7 @@
 		}
 		return result;
 	}
-	
+
 	/**
 	 * Returns if the current VM version is greater than or equal to 1.6
 	 * @return <code>true</code> if a 1.6 or higher VM
@@ -158,7 +158,7 @@
 		String ver = fVM.version();
 		return ver.indexOf("1.6") > -1 || ver.indexOf("1.7") > -1;
 	}
-	
+
 	/**
 	 * Returns an array reference.
 	 */
@@ -169,7 +169,7 @@
 		// Get value of "fArray"
 		return (ArrayReference) getMainClass().getValue(field);
 	}
-	
+
 	/**
 	 * Returns another array reference.
 	 */
@@ -180,7 +180,7 @@
 		// Get value of "fDoubleArray"
 		return (ArrayReference) getMainClass().getValue(field);
 	}
-	
+
 	/**
 	 * One-dimensional empty array reference getters
 	 */
@@ -251,7 +251,7 @@
 		Field field = getField("booleanDoubleArray");
 		return (ArrayReference) getMainClass().getValue(field);
 	}
-	
+
 	/**
 	 * Returns the array type.
 	 */
@@ -332,16 +332,16 @@
 		ArrayReference value = getBooleanDoubleArrayReference();
 		return (ArrayType) value.referenceType();
 	}
-	
+
 	/**
-	 * Creates and returns a breakpoint request in the first 
+	 * Creates and returns a breakpoint request in the first
 	 * instruction of the MainClass.triggerBreakpointEvent() method.
 	 */
 	protected BreakpointRequest getBreakpointRequest() {
 		// Create a breakpoint request
 		return fVM.eventRequestManager().createBreakpointRequest(getLocation());
 	}
-	
+
 	/**
 	 * Creates a new breakpoint request for a user specified position
 	 * @param loc the location to set the breakpoint on
@@ -358,7 +358,7 @@
 		List<?> classes = fVM.classesByName(name);
 		if (classes.size() == 0)
 			return null;
-		
+
 		return (ClassType) classes.get(0);
 	}
 	/**
@@ -379,29 +379,29 @@
 		return fVM.eventRequestManager().createExceptionRequest(null, false, true);
 	}
 	/**
-	 * Returns the static field "fObject" in 
+	 * Returns the static field "fObject" in
 	 * org.eclipse.debug.jdi.tests.program.MainClass
 	 */
 	protected Field getField() {
 		return getField("fObject");
 	}
 	/**
-	 * Returns the field with the given name in 
+	 * Returns the field with the given name in
 	 * org.eclipse.debug.jdi.tests.program.MainClass.
 	 */
 	protected Field getField(String fieldName) {
 		// Get main class
 		ClassType type = getMainClass();
 
-		// Get field 
+		// Get field
 		Field result = type.fieldByName(fieldName);
 		if (result == null)
 			throw new Error("Unknown field: " + fieldName);
-		
+
 		return result;
 	}
 	/**
-	 * Returns the n frame (starting at the top of the stack) of the thread 
+	 * Returns the n frame (starting at the top of the stack) of the thread
 	 * contained in the static field "fThread" of org.eclipse.debug.jdi.tests.program.MainClass.
 	 */
 	protected StackFrame getFrame(int n) {
@@ -450,7 +450,7 @@
 		return getClass( getMainClassName() );
 	}
 	/**
-	 * Returns the method "print(Ljava/io/OutputStream;)V" 
+	 * Returns the method "print(Ljava/io/OutputStream;)V"
 	 * in org.eclipse.debug.jdi.tests.program.MainClass
 	 */
 	protected Method getMethod() {
@@ -487,7 +487,7 @@
 		}
 		if (method == null)
 			throw new Error("Unknown method: " + name + signature);
-		
+
 		return method;
 	}
 	/**
@@ -504,7 +504,7 @@
 		return fVM.eventRequestManager().createModificationWatchpointRequest(field);
 	}
 	/**
-	 * Returns the value of the static field "fObject" in 
+	 * Returns the value of the static field "fObject" in
 	 * org.eclipse.debug.jdi.tests.program.MainClass
 	 */
 	protected ObjectReference getObjectReference() {
@@ -519,7 +519,7 @@
 	}
 	/**
 	 * Creates and returns an access watchpoint request
-	 * for the static field "fString" in 
+	 * for the static field "fString" in
 	 * org.eclipse.debug.jdi.tests.program.MainClass
 	 * NOTE: This assumes that the VM can watch field access.
 	 */
@@ -544,7 +544,7 @@
 		return fVM.eventRequestManager().createModificationWatchpointRequest(field);
 	}
 	/**
-	 * Returns the value of the static field "fString" in 
+	 * Returns the value of the static field "fString" in
 	 * org.eclipse.debug.jdi.tests.program.MainClass
 	 */
 	protected StringReference getStringReference() {
@@ -561,11 +561,11 @@
 		List<ReferenceType> classes = fVM.classesByName("java.lang.Object");
 		if (classes.size() == 0)
 			return null;
-		
+
 		return (ClassType) classes.get(0);
 	}
 	/**
-	 * Returns the thread contained in the static field "fThread" in 
+	 * Returns the thread contained in the static field "fThread" in
 	 * org.eclipse.debug.jdi.tests.program.MainClass
 	 */
 	protected ThreadReference getThread() {
@@ -595,7 +595,7 @@
 		Value value = type.getValue(field);
 		if (value == null)
 			return null;
-		
+
 		return (ThreadReference) value;
 	}
 	/**
@@ -669,7 +669,7 @@
 	/**
 	 * Parse the command {@link String} to make sure we use
 	 * {@link Runtime#exec(String[])}.
-	 * 
+	 *
 	 * @param command
 	 * @return the array of items from the command {@link String}
 	 * @since 4.3
@@ -686,7 +686,7 @@
 		}
 		return commandArray;
 	}
-	
+
 	/**
 	 * Launches the target J9 VM.
 	 */
@@ -700,7 +700,7 @@
 					+ System.getProperty("file.separator")
 					+ "bin"
 					+ System.getProperty("file.separator");
-			
+
 			proxyString[index++] = binDirectory + "j9proxy";
 			proxyString[index++] = "localhost:" + (fBackEndPort - 1);
 			proxyString[index++] = "" + fBackEndPort;
@@ -708,14 +708,14 @@
 
 			// Launch target VM
 			Vector<String> commandLine = new Vector<>();
-			
+
 			String launcher = binDirectory + "j9w.exe";
 			File vm= new File(launcher);
 			if (!vm.exists()) {
 				launcher = binDirectory + "j9";
 			}
 			commandLine.add(launcher);
-			
+
 			if (fBootPath.length() > 0)
 				commandLine.add("-bp:" + fBootPath);
 			commandLine.add("-cp:" + fClassPath);
@@ -792,7 +792,7 @@
 				commandLine.add("-bootpath");
 				commandLine.add(fBootPath);
 			}
-			
+
 			commandLine.add("-classpath");
 			commandLine.add(fClassPath);
 			commandLine.add("-Xdebug");
@@ -812,7 +812,7 @@
 	protected String getMainClassName() {
 		return "org.eclipse.debug.jdi.tests.program.MainClass";
 	}
-	
+
 	protected String getTestPrefix() {
 		return "testJDI";
 	}
@@ -827,10 +827,10 @@
 			String[] args = fVmArgs.split(",");
 			for (int i=0; i < args.length; i++) {
 				commandLine.add(args[i]);
-			}				
-		}		
+			}
+		}
 	}
-	
+
 	/**
 	 * Flattens the variable size command line and calls Runtime.exec().
 	 * @param commandLine A vector of command line argument strings.
@@ -839,18 +839,18 @@
 	 */
 	private Process exec(Vector<String> commandLine) throws IOException {
 		String[] vmString = new String[commandLine.size()];
-		commandLine.toArray(vmString);			
-		return Runtime.getRuntime().exec(vmString);		
+		commandLine.toArray(vmString);
+		return Runtime.getRuntime().exec(vmString);
 	}
 
-	
+
 	/**
 	 * Connects to the target vm.
 	 */
 	protected void connectToVM() {
 		// Start the console reader if possible so that the VM doesn't block when the stdout is full
 		startConsoleReaders();
-		
+
 
 		// Contact the VM (try 10 times)
 		for (int i = 0; i < 10; i++) {
@@ -1271,7 +1271,7 @@
 		waitUntilReady();
 	}
 	/**
-	 * Returns all tests 
+	 * Returns all tests
 	 */
 	protected Test suite() {
 		JDITestSuite suite = new JDITestSuite(this);
@@ -1328,7 +1328,7 @@
 		if (event == null)
 			throw new Error(
 				"Event for " + request + " didn't come in after " + TIMEOUT + "ms");
-		
+
 		return event;
 	}
 	/**
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/AbstractReader.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/AbstractReader.java
index ac1d57b..5db32dd 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/AbstractReader.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/AbstractReader.java
Binary files differ
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/AccessibleTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/AccessibleTest.java
index bf7fb87..ac2a262 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/AccessibleTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/AccessibleTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -48,7 +48,7 @@
 	public static void main(java.lang.String[] args) {
 		new AccessibleTest().runSuite(args);
 	}
-	
+
 	/**
 	 * @see junit.framework.TestCase#getName()
 	 */
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ArrayReferenceTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ArrayReferenceTest.java
index 8f7cdb3..f8fb11a 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ArrayReferenceTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ArrayReferenceTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ArrayTypeTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ArrayTypeTest.java
index 76d2e4c..2e879cb 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ArrayTypeTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ArrayTypeTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/AutomatedSuite.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/AutomatedSuite.java
index e5b9063..6d8f7cb 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/AutomatedSuite.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/AutomatedSuite.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -15,7 +15,7 @@
 /**
  */
 public class AutomatedSuite extends TestSuite {
-	
+
 	/**
 	 * returns an instance of AutomatedSuite
 	 * @return a new test suite
@@ -23,7 +23,7 @@
 	public static TestSuite suite() {
 		return new AutomatedSuite();
 	}
-	
+
 	/**
 	 * runs the specified tests
 	 */
@@ -62,7 +62,7 @@
 		addTest(new TestSuite(MirrorTest.class));
 
 		addTest(new TestSuite(ModificationWatchpointEventTest.class));
-			
+
 		addTest(new TestSuite(ObjectReferenceTest.class));
 		addTest(new TestSuite(PrimitiveValueTest.class));
 		addTest(new TestSuite(ReferenceTypeTest.class));
@@ -84,7 +84,7 @@
 		addTest(new TestSuite(VirtualMachineExitTest.class));
 		addTest(new TestSuite(VMDisconnectEventTest.class));
 		addTest(new TestSuite(VMDisposeTest.class));
-		
+
 	//Java 1.6 capability tests
 		addTest(new TestSuite(HeapWalkingTests.class));
 		addTest(new TestSuite(ConstantPoolTests.class));
@@ -95,5 +95,5 @@
 		addTest(new TestSuite(ProvideArgumentsTests.class));
 		addTest(new TestSuite(ContendedMonitorTests.class));
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/BooleanValueTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/BooleanValueTest.java
index ace7d1b..1c36cc2 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/BooleanValueTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/BooleanValueTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/BreakpointRequestTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/BreakpointRequestTest.java
index 797a8b3..7afbe58 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/BreakpointRequestTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/BreakpointRequestTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ByteValueTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ByteValueTest.java
index 9eccfab..5aa051e 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ByteValueTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ByteValueTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/CharValueTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/CharValueTest.java
index 5811025..0294525 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/CharValueTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/CharValueTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ClassLoaderReferenceTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ClassLoaderReferenceTest.java
index e2481b1..11268af 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ClassLoaderReferenceTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ClassLoaderReferenceTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ClassPrepareEventTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ClassPrepareEventTest.java
index b730950..e42c711 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ClassPrepareEventTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ClassPrepareEventTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ClassPrepareEventWaiter.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ClassPrepareEventWaiter.java
index 4f53e6f..4ea5070 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ClassPrepareEventWaiter.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ClassPrepareEventWaiter.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -29,7 +29,7 @@
 		super(request, shouldGo);
 		fClassName = className;
 	}
-	
+
 	/**
 	 * @see org.eclipse.debug.jdi.tests.EventWaiter#classPrepare(com.sun.jdi.event.ClassPrepareEvent)
 	 */
@@ -38,7 +38,7 @@
 		if (event.referenceType().name().equals(fClassName)) {
 			notifyEvent(event);
 			return fShouldGo;
-		} 
+		}
 		return true;
 	}
 }
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ClassPrepareRequestTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ClassPrepareRequestTest.java
index 5df0f3f..2af5805 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ClassPrepareRequestTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ClassPrepareRequestTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ClassTypeTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ClassTypeTest.java
index 3888300..3ed6ec3 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ClassTypeTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ClassTypeTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ClassesByNameTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ClassesByNameTest.java
index 610d744..c1bd7be 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ClassesByNameTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ClassesByNameTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -68,9 +68,9 @@
 			classes.size() == 1
 				&& ((Type) classes.get(0)).signature().equals("[[I"));
 	}
-	
+
 	/**
-	 * tests signature for an array of long values 
+	 * tests signature for an array of long values
 	 */
 	public void testJDILongArray() {
 		List<?> classes = fVM.classesByName("long[]");
@@ -79,7 +79,7 @@
 			classes.size() == 1
 				&& ((Type) classes.get(0)).signature().equals("[J"));
 	}
-	
+
 	/**
 	 * tests signature of a two dimensional array of long values
 	 */
@@ -90,7 +90,7 @@
 			classes.size() == 1
 				&& ((Type) classes.get(0)).signature().equals("[[J"));
 	}
-	
+
 	/**
 	 * Test that there is a class object for 'java.lang.String[]'
 	 */
@@ -102,7 +102,7 @@
 				&& ((Type) classes.get(0)).signature().equals(
 					"[Ljava/lang/String;"));
 	}
-	
+
 	/**
 	 * Test that there is a class object for 'java.lang.String'
 	 */
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ConstantPoolTests.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ConstantPoolTests.java
index b301dc6..17bfa72 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ConstantPoolTests.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ConstantPoolTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -14,21 +14,21 @@
 import com.sun.jdi.ReferenceType;
 
 /**
- * Test cases for the implementation of providing argument information even if 
+ * Test cases for the implementation of providing argument information even if
  * no debugging information is present in the new java 1.6 VM
- * 
+ *
  * @since 3.3
  */
 public class ConstantPoolTests extends AbstractJDITest {
 
 	ReferenceType fClass;
-	
+
 	/** setup test info locally **/
 	@Override
 	public void localSetUp() {}
-	
+
 	/**
-	 * test to see if we can get class file version info from a 1.6 VM, and 
+	 * test to see if we can get class file version info from a 1.6 VM, and
 	 * that we cannot from a pre-1.6 VM
 	 */
 	public void testCanGetClassFileVersion() {
@@ -39,10 +39,10 @@
 			assertTrue("Should not have classfile version info", !fVM.canGetClassFileVersion());
 		}
 	}
-	
+
 	/**
 	 * test to make sure we can get constant pool information from a 1.6 VM, and
-	 * that we cannot get it from a pre-1.6 VM 
+	 * that we cannot get it from a pre-1.6 VM
 	 */
 	public void testCanGetConstantPool() {
 		if(is16OrGreater()) {
@@ -77,7 +77,7 @@
 			catch(UnsupportedOperationException uoe) {}
 		}
 	}
-	
+
 	/**
 	 * test to make sure that majorVersion returns 0 for an arrayType.
 	 * this test does not apply to non-16 VMs
@@ -91,10 +91,10 @@
 		int ver = type.majorVersion();
 		assertTrue("major verison should be 0", ver == 0);
 	}
-	
+
 	/**
 	 * test to make sure majorVerison works.
-	 * this test does not apply to non-1.6VMs 
+	 * this test does not apply to non-1.6VMs
 	 */
 	public void testMajorVersion() {
 		if(!fVM.canGetClassFileVersion()) {
@@ -106,9 +106,9 @@
 		int ver = fClass.majorVersion();
 		assertTrue("version cannot be equal to -1", ver != -1);
 	}
-	
+
 	/**
-	 * test to make sure that if minorVersion is unsupported an UnsupportedIOperationException 
+	 * test to make sure that if minorVersion is unsupported an UnsupportedIOperationException
 	 * is thrown
 	 */
 	public void testMinorVersionUnsupported() {
@@ -131,10 +131,10 @@
 			catch(UnsupportedOperationException uoe) {}
 		}
 	}
-	
+
 	/**
 	 * test to make sure minorVerison works.
-	 * this test does not apply to non-1.6VMs 
+	 * this test does not apply to non-1.6VMs
 	 */
 	public void testMinorVersion() {
 		if(!fVM.canGetClassFileVersion()) {
@@ -146,9 +146,9 @@
 		int ver = fClass.minorVersion();
 		assertTrue("version cannot be equal to -1", ver != -1);
 	}
-	
+
 	/**
-	 * test to make sure that if constantPoolCount is unsupported an UnsupportedIOperationException 
+	 * test to make sure that if constantPoolCount is unsupported an UnsupportedIOperationException
 	 * is thrown
 	 */
 	public void testConstantPoolCountSupported() {
@@ -171,7 +171,7 @@
 			catch(UnsupportedOperationException uoe) {}
 		}
 	}
-	
+
 	/**
 	 * test to ensure the constant pool count is working correctly
 	 * this test does not apply to non-1.6 VMs
@@ -187,9 +187,9 @@
 		//for now we don't care about constant pool counts, not likely to have a useful debug extension for this feature,
 		//but it is here for completeness
 	}
-	
+
 	/**
-	 * test to make sure that if constantPool is unsupported an UnsupportedIOperationException 
+	 * test to make sure that if constantPool is unsupported an UnsupportedIOperationException
 	 * is thrown
 	 */
 	public void testConstantPoolSupported() {
@@ -212,7 +212,7 @@
 			catch(UnsupportedOperationException uoe) {}
 		}
 	}
-	
+
 	/**
 	 * test to ensure the constant pool is working correctly
 	 * this test does not apply to non-1.6 VMs
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ContendedMonitorTests.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ContendedMonitorTests.java
index 8448eba..66e0d80 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ContendedMonitorTests.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ContendedMonitorTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -19,15 +19,15 @@
 import com.sun.jdi.request.MonitorWaitedRequest;
 
 /**
- * Test cases for the implementation of providing argument information even if 
+ * Test cases for the implementation of providing argument information even if
  * no debugging information is present in the new java 1.6 VM
- * 
+ *
  * @since 3.3
  */
 public class ContendedMonitorTests extends AbstractJDITest {
 
 	EventRequestManager erm = null;
-	
+
 	/** setup test info locally **/
 	@Override
 	public void localSetUp() {
@@ -35,7 +35,7 @@
 	}
 
 	/**
-	 * test to see if a the 1.6 VM can get monitor events info and that 
+	 * test to see if a the 1.6 VM can get monitor events info and that
 	 * a non-1.6VM cannot.
 	 */
 	public void testCanRequestMonitorEvents() {
@@ -46,7 +46,7 @@
 			assertTrue("Should not have ability to request monitor events info", !fVM.canRequestMonitorEvents());
 		}
 	}
-	
+
 	/**
 	 * test getting monitor contended enter requests from the event request manager
 	 * this test is not applicable to non 1.6 VMs
@@ -62,7 +62,7 @@
 		assertTrue("list should be of size 1", list.size() == 1);
 		assertTrue("req should be enabled", ((MonitorContendedEnterRequest)list.get(0)).isEnabled());
 	}
-	
+
 	/**
 	 * test getting monitor contended entered requests from the event request manager
 	 * this test is not applicable to non 1.6 VMs
@@ -78,7 +78,7 @@
 		assertTrue("list should be of size 1", list.size() == 1);
 		assertTrue("req should be enabled", ((MonitorContendedEnteredRequest)list.get(0)).isEnabled());
 	}
-	
+
 	/**
 	 * test getting monitor wait requests from the event request manager
 	 * this test is not applicable to non 1.6 VMs
@@ -86,7 +86,7 @@
 	public void testMonitorWaitRequest() {
 		if(!fVM.canRequestMonitorEvents()) {
 			return;
-		}	
+		}
 		MonitorWaitRequest req = erm.createMonitorWaitRequest();
 		req.enable();
 		List<?> list = erm.monitorWaitRequests();
@@ -94,7 +94,7 @@
 		assertTrue("list should be of size 1", list.size() == 1);
 		assertTrue("req should be enabled", ((MonitorWaitRequest)list.get(0)).isEnabled());
 	}
-	
+
 	/**
 	 * test getting monitor waited requests from the event request manager
 	 * this test is not applicable to non 1.6 VMs
@@ -110,5 +110,5 @@
 		assertTrue("list should be of size 1", list.size() == 1);
 		assertTrue("req should be enabled", ((MonitorWaitedRequest)list.get(0)).isEnabled());
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/DoubleValueTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/DoubleValueTest.java
index 2ce0262..48eb16e 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/DoubleValueTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/DoubleValueTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/EventListener.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/EventListener.java
index 794ec62..f500430 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/EventListener.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/EventListener.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/EventReader.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/EventReader.java
index 07bf849..358e641 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/EventReader.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/EventReader.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/EventRequestManagerTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/EventRequestManagerTest.java
index 79591e2..f13c2db 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/EventRequestManagerTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/EventRequestManagerTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -69,12 +69,12 @@
 	public void testJDIAccessWatchpointRequest() {
 		if (!fVM.canWatchFieldAccess())
 			return;
-		
+
 		// Create an access watchpoint request
 		Field field = getField();
 		AccessWatchpointRequest request = fManager.createAccessWatchpointRequest(field);
 		assertEquals("1", field, request.field());
-	
+
 		// Get all access watchpoint requests
 		List<?> requests = fManager.accessWatchpointRequests();
 		ListIterator<?> iterator = requests.listIterator();
@@ -82,13 +82,13 @@
 		while (iterator.hasNext()) {
 			assertTrue("2."+i++, iterator.next() instanceof AccessWatchpointRequest);
 		}
-		
+
 		// Delete an access watchpoint request
 		fManager.deleteEventRequest(request);
 		assertEquals("3", 0, fManager.accessWatchpointRequests().size());
 	}
 	/**
-	 * Test JDI createBreakpointRequest(Location), breakpointRequests(), 
+	 * Test JDI createBreakpointRequest(Location), breakpointRequests(),
 	 * deleteEventRequest(EventRequest) and deleteAllBreakpoints()
 	 */
 	public void testJDIBreakpointRequest() {
@@ -104,11 +104,11 @@
 			Object breakpoint = iterator.next();
 			assertTrue("3", breakpoint instanceof BreakpointRequest);
 		}
-		
+
 		// Delete a breakpoint
 		fManager.deleteEventRequest(bp);
 		assertEquals("4", 0, fManager.breakpointRequests().size());
-	
+
 		// Delete all breakpoints
 		fManager.createBreakpointRequest(location);
 		fManager.deleteAllBreakpoints();
@@ -121,7 +121,7 @@
 	public void testJDIClassPrepareRequest() {
 		// Create a class prepare request
 		ClassPrepareRequest request= fManager.createClassPrepareRequest();
-	
+
 		// Get all class prepare requests
 		List<?> requests = fManager.classPrepareRequests();
 		ListIterator<?> iterator = requests.listIterator();
@@ -129,7 +129,7 @@
 		while (iterator.hasNext()) {
 			assertTrue("1."+i++, iterator.next() instanceof ClassPrepareRequest);
 		}
-		
+
 		// Delete a class prepare request
 		fManager.deleteEventRequest(request);
 		assertEquals("2", 0, fManager.classPrepareRequests().size());
@@ -141,7 +141,7 @@
 	public void testJDIClassUnloadRequest() {
 		// Create a class unload request
 		ClassUnloadRequest request= fManager.createClassUnloadRequest();
-	
+
 		// Get all class unload requests
 		List<?> requests = fManager.classUnloadRequests();
 		ListIterator<?> iterator = requests.listIterator();
@@ -149,7 +149,7 @@
 		while (iterator.hasNext()) {
 			assertTrue("1."+i++, iterator.next() instanceof ClassUnloadRequest);
 		}
-		
+
 		// Delete a class unload request
 		fManager.deleteEventRequest(request);
 		assertEquals("2", 0, fManager.classUnloadRequests().size());
@@ -161,7 +161,7 @@
 	public void testJDIExceptionRequest() {
 		// Create a exception request
 		ExceptionRequest request= fManager.createExceptionRequest(null, true, true);
-	
+
 		// Get all exception requests
 		List<?> requests = fManager.exceptionRequests();
 		ListIterator<?> iterator = requests.listIterator();
@@ -169,24 +169,24 @@
 		while (iterator.hasNext()) {
 			assertTrue("1."+i++, iterator.next() instanceof ExceptionRequest);
 		}
-		
+
 		// Delete a exception request
 		fManager.deleteEventRequest(request);
 		assertEquals("2", i-1, fManager.exceptionRequests().size());
 	}
 	/**
-	 * Test JDI createModificationWatchpointRequest(Field), 
+	 * Test JDI createModificationWatchpointRequest(Field),
 	 * accessWatchpointRequests() and deleteEventRequest(EventRequest)
 	 */
 	public void testJDIModificationWatchpointRequest() {
 		if (!fVM.canWatchFieldAccess())
 			return;
-	
+
 		// Create a modification watchpoint
 		Field field = getField();
 		ModificationWatchpointRequest request = fManager.createModificationWatchpointRequest(field);
 		assertEquals("1", field, request.field());
-	
+
 		// Get all modification watchpoints
 		List<?> requests = fManager.modificationWatchpointRequests();
 		ListIterator<?> iterator = requests.listIterator();
@@ -194,7 +194,7 @@
 		while (iterator.hasNext()) {
 			assertTrue("2."+i++, iterator.next() instanceof ModificationWatchpointRequest);
 		}
-		
+
 		// Delete a modification watchpoint
 		fManager.deleteEventRequest(request);
 		assertEquals("3", 0, fManager.modificationWatchpointRequests().size());
@@ -206,7 +206,7 @@
 	public void testJDIStepRequest() {
 		// Create a step request
 		StepRequest request= fManager.createStepRequest(getThread(), StepRequest.STEP_LINE, StepRequest.STEP_OVER);
-	
+
 		// Get all step requests
 		List<?> requests = fManager.stepRequests();
 		ListIterator<?> iterator = requests.listIterator();
@@ -214,7 +214,7 @@
 		while (iterator.hasNext()) {
 			assertTrue("1."+i++, iterator.next() instanceof StepRequest);
 		}
-		
+
 		// Delete a step request
 		fManager.deleteEventRequest(request);
 		assertEquals("2", 0, fManager.stepRequests().size());
@@ -226,7 +226,7 @@
 	public void testJDIThreadDeathRequest() {
 		// Create a ThreadDeath request
 		ThreadDeathRequest request= fManager.createThreadDeathRequest();
-	
+
 		// Get all ThreadDeath requests
 		List<?> requests = fManager.threadDeathRequests();
 		ListIterator<?> iterator = requests.listIterator();
@@ -234,7 +234,7 @@
 		while (iterator.hasNext()) {
 			assertTrue("1."+i++, iterator.next() instanceof ThreadDeathRequest);
 		}
-		
+
 		// Delete a ThreadDeath request
 		fManager.deleteEventRequest(request);
 		assertEquals("2", 0, fManager.threadDeathRequests().size());
@@ -246,7 +246,7 @@
 	public void testJDIThreadStartRequest() {
 		// Create a ThreadStart request
 		ThreadStartRequest request= fManager.createThreadStartRequest();
-	
+
 		// Get all ThreadStart requests
 		List<?> requests = fManager.classUnloadRequests();
 		ListIterator<?> iterator = requests.listIterator();
@@ -254,7 +254,7 @@
 		while (iterator.hasNext()) {
 			assertTrue("1."+i++, iterator.next() instanceof ThreadStartRequest);
 		}
-		
+
 		// Delete a ThreadStart request
 		fManager.deleteEventRequest(request);
 		assertEquals("2", 0, fManager.classUnloadRequests().size());
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/EventRequestTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/EventRequestTest.java
index 4c82654..354d10f 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/EventRequestTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/EventRequestTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/EventTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/EventTest.java
index 6b3812c..7024db2 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/EventTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/EventTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/EventWaiter.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/EventWaiter.java
index a07ae86..6c37ef2 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/EventWaiter.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/EventWaiter.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -101,7 +101,7 @@
 		if ((event.request() != null) && (event.request().equals(fRequest))) {
 			notifyEvent(event);
 			return fShouldGo;
-		} 
+		}
 		return true;
 	}
 	/**
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ExceptionEventTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ExceptionEventTest.java
index 71118d2..7af03b8 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ExceptionEventTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ExceptionEventTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ExceptionRequestTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ExceptionRequestTest.java
index 3db8fc0..841cefd 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ExceptionRequestTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ExceptionRequestTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/FieldTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/FieldTest.java
index d8b1987..7557c26 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/FieldTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/FieldTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/FileConsoleReader.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/FileConsoleReader.java
index 86ae903..b7562c0 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/FileConsoleReader.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/FileConsoleReader.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/FloatValueTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/FloatValueTest.java
index c2cf25b..c14fb84 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/FloatValueTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/FloatValueTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ForceEarlyReturnTests.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ForceEarlyReturnTests.java
index 4880ca8..e96609c 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ForceEarlyReturnTests.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ForceEarlyReturnTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/package org.eclipse.debug.jdi.tests;
@@ -23,13 +23,13 @@
 import com.sun.jdi.request.EventRequest;
 
  /**
-  * Test cases for the implementation of providing argument information even if 
+  * Test cases for the implementation of providing argument information even if
   * no debugging information is present in the new java 1.6 VM
-  * 
+  *
   * @since 3.3
   */
 public class ForceEarlyReturnTests extends AbstractJDITest {
-	
+
 	/** setup test info locally **/
 	@Override
 	public void localSetUp() {}
@@ -45,7 +45,7 @@
 			assertFalse("Should not have force early return capabilities", fVM.canForceEarlyReturn());
 		}
 	}
-	
+
 	/**
 	 * test for the specifying the return type for a forced return to make sure the new return value works
 	 */
@@ -98,5 +98,5 @@
 			e.printStackTrace();
 		}
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/HeapWalkingTests.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/HeapWalkingTests.java
index 70a7f06..aac353b 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/HeapWalkingTests.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/HeapWalkingTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,18 +18,18 @@
 
 /**
  * Test cases for the implementation of heap walking in the new java 1.6 VM
- * 
+ *
  * @since 3.3
  */
 public class HeapWalkingTests extends AbstractJDITest {
 
 	private ReferenceType fClass, fClass1;
 	private ObjectReference fObject;
-	
+
 	/**	 setup our tests */
 	@Override
 	public void localSetUp() {}
-	
+
 	/** tear down our tests */
 	@Override
 	public void localTearDown() {
@@ -50,7 +50,7 @@
 			assertTrue("Should not have instance info", !fVM.canGetInstanceInfo());
 		}
 	}
-	
+
 	/**
 	 * tests the new method instanceCounts, to make sure it throws an NPE when required.
 	 * test is not applicable to non 1.6 VMs
@@ -65,7 +65,7 @@
 		}
 		catch (NullPointerException npe) {}
 	}
-	
+
 	/**
 	 * tests to make sure the instanceCounts method throws a not supported
 	 */
@@ -86,7 +86,7 @@
 			catch(UnsupportedOperationException uoe) {}
 		}
 	}
-	
+
 	/**
 	 * test to collect any referring instances can be collected for the specified class.
 	 * test is not applicable to non 1.6 VMs.
@@ -109,7 +109,7 @@
 		assertTrue("count for RefClass1 should be 2", counts[0] == 2);
 		assertTrue("count for RefClass2 should be 1", counts[1] == 1);
 	}
-	
+
 	/**
 	 * test to make sure instances throws an unsupported exception for non 1.6 VMs
 	 */
@@ -132,7 +132,7 @@
 			catch(UnsupportedOperationException uoe) {}
 		}
 	}
-	
+
 	/**
 	 * test to make sure instances throws and IllegalArgument exception for negative long arguments.
 	 * test is not applicable to non 1.6 VMs
@@ -149,10 +149,10 @@
 		}
 		catch (IllegalArgumentException iae) {}
 	}
-	
+
 	/**
 	 * test to collect a list of instances.
-	 * test is not applicable to non 1.6 VMs. 
+	 * test is not applicable to non 1.6 VMs.
 	 */
 	public void testGetInstances() {
 		if(!fVM.canGetInstanceInfo()) {
@@ -168,7 +168,7 @@
 		assertNotNull("list should not be null", list);
 		assertTrue("list should have two enrtries", list.size() == 2);
 	}
-	
+
 	/**
 	 * test to make sure referringObjects throws an unsupported exception for non-1.6 VMs
 	 */
@@ -193,7 +193,7 @@
 			catch(UnsupportedOperationException uoe) {}
 		}
 	}
-	
+
 	/**
 	 * test to make sure referringObjects throws an IllegalArgument exception for bad values of max
 	 */
@@ -213,7 +213,7 @@
 			assertTrue("Threw exception", true);
 		}
 	}
-	
+
 	/**
 	 * tests the method referring objects to ensure working to spec.
 	 * test is not applicable to non 1.6 VMs
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/HotCodeReplacementTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/HotCodeReplacementTest.java
index 76fdfad..50b239d 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/HotCodeReplacementTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/HotCodeReplacementTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -79,7 +79,7 @@
 		}
 		assertEquals("dropTopFrame.6", stackSize - 1, newStackSize);
 	}
-	
+
 	/**
 	 * Init the fields that are used by this test only.
 	 */
@@ -223,7 +223,7 @@
 		org.eclipse.jdi.hcr.VirtualMachine vm =
 			(org.eclipse.jdi.hcr.VirtualMachine) fVM;
 
-		
+
 		// Drop the top a frame
 		try {
 			if (vm.canDoReturn()) {
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/IntegerValueTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/IntegerValueTest.java
index fa7a617..3a249f0 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/IntegerValueTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/IntegerValueTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/InterfaceTypeTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/InterfaceTypeTest.java
index 4c3f37f..a5f062e 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/InterfaceTypeTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/InterfaceTypeTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/JDITestCase.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/JDITestCase.java
index 3dd5445..ff0cb10 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/JDITestCase.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/JDITestCase.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/JDITestSuite.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/JDITestSuite.java
index 13332de..6314d3f 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/JDITestSuite.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/JDITestSuite.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/LocalVariableTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/LocalVariableTest.java
index 3f8c834..45f29e6 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/LocalVariableTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/LocalVariableTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/LocatableTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/LocatableTest.java
index c33353b..f47891b 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/LocatableTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/LocatableTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/LocationTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/LocationTest.java
index 3c1b2b7..7f6befd 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/LocationTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/LocationTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/LongValueTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/LongValueTest.java
index d6aad8e..4194ca4 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/LongValueTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/LongValueTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/MethodEntryRequestTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/MethodEntryRequestTest.java
index 8bb7e7c..0a52b2a 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/MethodEntryRequestTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/MethodEntryRequestTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -64,7 +64,7 @@
 	}
 
 	/**
-	 * Tests a request without any filtering 
+	 * Tests a request without any filtering
 	 */
 	public void testJDIWithoutFilter() {
 		MethodEntryRequest request = getMethodEntryRequest();
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/MethodExitRequestTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/MethodExitRequestTest.java
index 8dbb691..4c39397 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/MethodExitRequestTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/MethodExitRequestTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -62,7 +62,7 @@
 		return fVM.eventRequestManager().createMethodExitRequest();
 	}
 	/**
-	 * Tests a method exit request without filtering 
+	 * Tests a method exit request without filtering
 	 */
 	public void testJDIWithoutFilter() {
 		MethodExitRequest request = getMethodExitRequest();
@@ -76,7 +76,7 @@
 	}
 
 	/**
-	 * Tests a method exit request with an exclusion filter  
+	 * Tests a method exit request with an exclusion filter
 	 */
 	public void testJDIWithClassExclusionFilter() {
 		MethodExitRequest request = getMethodExitRequest();
@@ -93,7 +93,7 @@
 	}
 
 	/**
-	 * Tests a method exit request with a specific class filter 
+	 * Tests a method exit request with a specific class filter
 	 */
 	public void testJDIWithClassFilter1() {
 		MethodExitRequest request = getMethodExitRequest();
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/MethodReturnValuesTests.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/MethodReturnValuesTests.java
index 21a5b15..cfa7bcb 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/MethodReturnValuesTests.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/MethodReturnValuesTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -24,11 +24,11 @@
 
 /**
  * Test cases for method exit event return values in java 1.6 VM
- * 
+ *
  * @since 3.3
  */
 public class MethodReturnValuesTests extends AbstractJDITest {
-	
+
 	MethodExitRequest req = null;
 	Value val = null;
 	MethodExitEvent event = null;
@@ -38,14 +38,14 @@
 	EventWaiter waiter = null;
 	BreakpointEvent bpe = null;
 	ThreadReference tref = null;
-	
-	
+
+
 	/** setup test info locally **/
 	@Override
 	public void localSetUp() {
 		erm = fVM.eventRequestManager();
 	}
-	
+
 	/** cleans up local tests **/
 	@Override
 	public void localTearDown() {
@@ -54,9 +54,9 @@
 			erm.deleteAllBreakpoints();
 		}
 	}
-	
+
 	/**
-	 * test to make sure 1.6 VM supports method return values 
+	 * test to make sure 1.6 VM supports method return values
 	 */
 	public void testCanGetMethodReturnValues() {
 		if(is16OrGreater()) {
@@ -66,7 +66,7 @@
 			assertFalse("Should not have method return values capabilities", fVM.canGetMethodReturnValues());
 		}
 	}
-	
+
 	/**
 	 * test getting a void return value.
 	 * not applicable to non 1.6 VMs
@@ -108,7 +108,7 @@
 			assertTrue("thrown exception mean failure", false);
 		}
 	}
-	
+
 	/**
 	 * test to make sure that returnValue is working to spec.
 	 * test is not applicable to non 1.6 VMs
@@ -145,12 +145,12 @@
 				assertTrue("return value must be StringReferenceImpl", val instanceof StringReferenceImpl);
 				erm.deleteEventRequest(req);
 			}
-		} 
+		}
 		catch (InterruptedException e) {
 			assertTrue("thrown exception mean failure", false);
 		}
 	}
-	
+
 	/**
 	 * test to make sure that returnValue is working to spec.
 	 * test is not applicable to non 1.6 VMs
@@ -187,12 +187,12 @@
 				assertEquals("return value must be 20", val.virtualMachine().mirrorOf(20), val);
 				erm.deleteEventRequest(req);
 			}
-		} 
+		}
 		catch (InterruptedException e) {
 			assertTrue("thrown exception mean failure", false);
 		}
-	}	
-	
+	}
+
 	/**
 	 * test to make sure that returnValue is working to spec.
 	 * test is not applicable to non 1.6 VMs
@@ -229,12 +229,12 @@
 				assertEquals("return value must be true", val.virtualMachine().mirrorOf(true), val);
 				erm.deleteEventRequest(req);
 			}
-		} 
+		}
 		catch (InterruptedException e) {
 			assertTrue("thrown exception mean failure", false);
 		}
-	}		
-	
+	}
+
 	/**
 	 * test to make sure that returnValue is working to spec.
 	 * test is not applicable to non 1.6 VMs
@@ -271,9 +271,9 @@
 				assertEquals("return value must be 123", val.virtualMachine().mirrorOf(123L), val);
 				erm.deleteEventRequest(req);
 			}
-		} 
+		}
 		catch (InterruptedException e) {
 			assertTrue("thrown exception mean failure", false);
 		}
-	}			
+	}
 }
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/MethodTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/MethodTest.java
index 963c4ce..828ba43 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/MethodTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/MethodTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/MirrorTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/MirrorTest.java
index f4940e9..456aa5f 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/MirrorTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/MirrorTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ModificationWatchpointEventTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ModificationWatchpointEventTest.java
index 72229fa..635cb75 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ModificationWatchpointEventTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ModificationWatchpointEventTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/MonitorFrameInfoTests.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/MonitorFrameInfoTests.java
index abe5002..a25295a 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/MonitorFrameInfoTests.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/MonitorFrameInfoTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -20,9 +20,9 @@
 import com.sun.jdi.request.EventRequest;
 
 /**
- * Test cases for the implementation of providing argument information even if 
+ * Test cases for the implementation of providing argument information even if
  * no debugging information is present in the new java 1.6 VM
- * 
+ *
  * @since 3.3
  */
 public class MonitorFrameInfoTests extends AbstractJDITest {
@@ -32,7 +32,7 @@
 	public void localSetUp() {}
 
 	/**
-	 * test to see if a the 1.6 VM can get monitor frame info and that 
+	 * test to see if a the 1.6 VM can get monitor frame info and that
 	 * a non-1.6VM cannot.
 	 */
 	public void testCanGetMonitorFrameInfo() {
@@ -43,7 +43,7 @@
 			assertTrue("Should not have monitor frame info", !fVM.canGetMonitorFrameInfo());
 		}
 	}
-	
+
 	/**
 	 * test to make sure the proper frames and monitors are collected for the corresponding thread ref.
 	 * this test has no effect in a non-1.6VM
@@ -73,5 +73,5 @@
 			e.printStackTrace();
 		}
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/NotYetImplementedException.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/NotYetImplementedException.java
index 0983757..cc399ef 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/NotYetImplementedException.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/NotYetImplementedException.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -15,7 +15,7 @@
  */
 public class NotYetImplementedException extends RuntimeException {
 	private static final long serialVersionUID = 1L;
-	
+
 	/**
 	 * NotYetImplemented constructor comment.
 	 */
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/NullConsoleReader.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/NullConsoleReader.java
index 7f26501..c085bf1 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/NullConsoleReader.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/NullConsoleReader.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ObjectReferenceTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ObjectReferenceTest.java
index 6a5d8ae..337e685 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ObjectReferenceTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ObjectReferenceTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -85,7 +85,7 @@
 		return "com.sun.jdi.ObjectReference";
 	}
 	/**
-	 * Returns all tests 
+	 * Returns all tests
 	 */
 	@Override
 	protected Test suite() {
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/PrimitiveValueTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/PrimitiveValueTest.java
index 2769693..afd1ff3 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/PrimitiveValueTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/PrimitiveValueTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ProvideArgumentsTests.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ProvideArgumentsTests.java
index a0e8cd6..982579b 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ProvideArgumentsTests.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ProvideArgumentsTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -24,9 +24,9 @@
 import com.sun.jdi.request.EventRequest;
 
 /**
- * Test cases for the implementation of providing argumebnt information even if 
+ * Test cases for the implementation of providing argumebnt information even if
  * no debugging information is present in the new java 1.6 VM
- * 
+ *
  * @since 3.3
  */
 public class ProvideArgumentsTests extends AbstractJDITest {
@@ -34,10 +34,10 @@
 	/** setup test info locally **/
 	@Override
 	public void localSetUp() {}
-	
+
 	/**
 	 * tests getting argument values from a stackframe when no debugging
-	 * info is available 
+	 * info is available
 	 */
 	public void testGetArgumentValues() {
 		try {
@@ -45,7 +45,7 @@
 			BreakpointRequest br = getBreakpointRequest(method.location());
 			br.setSuspendPolicy(EventRequest.SUSPEND_EVENT_THREAD);
 			br.enable();
-			
+
 			EventWaiter waiter = new EventWaiter(br, true);
 			fEventReader.addEventListener(waiter);
 			triggerEvent("argvalues");
@@ -67,6 +67,6 @@
 		} catch (IncompatibleThreadStateException e) {
 			e.printStackTrace();
 		}
-		
+
 	}
 }
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ReferenceTypeTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ReferenceTypeTest.java
index d6e8694..167c693 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ReferenceTypeTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ReferenceTypeTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -305,7 +305,7 @@
 		}
 	}
 	/**
-	 * Test JDI isAbstract(), isFinal() and isStatic() 
+	 * Test JDI isAbstract(), isFinal() and isStatic()
 	 * and JDWP 'Type - Get modifiers'.
 	 */
 	public void testJDIModifiers() {
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ShortValueTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ShortValueTest.java
index e2d8ccc..7053dbe 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ShortValueTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ShortValueTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/SourceNameFilterTests.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/SourceNameFilterTests.java
index 5f0afde..14743d9 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/SourceNameFilterTests.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/SourceNameFilterTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -15,9 +15,9 @@
 import com.sun.jdi.request.EventRequestManager;
 
 /**
- * Test cases for the implementation of providing argumebnt information even if 
+ * Test cases for the implementation of providing argumebnt information even if
  * no debugging information is present in the new java 1.6 VM
- * 
+ *
  * @since 3.3
  */
 public class SourceNameFilterTests extends AbstractJDITest {
@@ -25,11 +25,11 @@
 	/** setup test info locally **/
 	@Override
 	public void localSetUp() {}
-	
+
 	/**
-	 * test to see if we can use source name filters from a 1.6 VM, and 
+	 * test to see if we can use source name filters from a 1.6 VM, and
 	 * that we cannot from a pre 1.6 VM
-	 * 
+	 *
 	 */
 	public void testCanUseSourceNameFilters() {
 		if(fVM.version().indexOf("1.6") > -1) {
@@ -40,7 +40,7 @@
 			assertTrue("Should not have source name filter capabilities", !fVM.canUseSourceNameFilters());
 		}
 	}
-	
+
 	/**
 	 * test to make sure the source name filter capability is working to spec.
 	 * this test does not apply to non-1.6 VMs
@@ -57,7 +57,7 @@
 		assertNotNull("event should not be null", event);
 		assertEquals(event.referenceType().name(), "org.eclipse.debug.jdi.tests.program.TestClass1");
 		rm.deleteEventRequest(request);
-		
+
 		//filter is *Test3.java
 		request = rm.createClassPrepareRequest();
 		request.addSourceNameFilter("*TestClass3.java");
@@ -65,7 +65,7 @@
 		assertNotNull("event should not be null", event);
 		assertEquals(event.referenceType().name(), "org.eclipse.debug.jdi.tests.program.TestClass3");
 		rm.deleteEventRequest(request);
-		
+
 		//filter is *TestClazz6.java
 		request = rm.createClassPrepareRequest();
 		request.addSourceNameFilter("*TestClazz6.java");
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/StackFrameTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/StackFrameTest.java
index c2ab6b5..b947f6a 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/StackFrameTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/StackFrameTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/StepEventTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/StepEventTest.java
index 4876e48..2c727cb 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/StepEventTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/StepEventTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/StringReferenceTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/StringReferenceTest.java
index 5876905..58fd8ec 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/StringReferenceTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/StringReferenceTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/TestAll.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/TestAll.java
index 5e1c71c..6488c06 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/TestAll.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/TestAll.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -23,7 +23,7 @@
 	 * Returns all the test case classes (a Vector of Class) that are
 	 * relevant for the given VM information.
 	 * NB1: This doesn't include the VirtualMachineTest class.
-	 * NB2: The last element must be the VMDeathEventTest class since 
+	 * NB2: The last element must be the VMDeathEventTest class since
 	 *      it shuts the VM down.
 	 */
 	protected static Vector<Class<?>> getAllTestCases(VMInformation info) {
@@ -58,10 +58,10 @@
 		classes.addElement(MethodEntryRequestTest.class);
 		classes.addElement(MethodExitRequestTest.class);
 		classes.addElement(MirrorTest.class);
-	
+
 		if (info.fVM.canWatchFieldModification())
 			classes.addElement(ModificationWatchpointEventTest.class);
-			
+
 		classes.addElement(ObjectReferenceTest.class);
 		classes.addElement(PrimitiveValueTest.class);
 		classes.addElement(ReferenceTypeTest.class);
@@ -76,12 +76,12 @@
 		classes.addElement(TypeComponentTest.class);
 		classes.addElement(TypeTest.class);
 		classes.addElement(ValueTest.class);
-	
+
 		if (info.fVM.canWatchFieldAccess() && info.fVM.canWatchFieldModification()) {
 			classes.addElement(WatchpointEventTest.class);
 			classes.addElement(WatchpointRequestTest.class);
 		}
-	
+
 		classes.addElement(VirtualMachineExitTest.class);
 		classes.addElement(VMDisconnectEventTest.class);
 		classes.addElement(VMDisposeTest.class);	// note that this test does not restore the state properly.
@@ -96,20 +96,20 @@
 	public static void main(String[] arguments) throws Throwable {
 		// Create test result
 		TextTestResult result= new TextTestResult();
-	
+
 		// Run the VirtualMachineTest
 		AbstractJDITest test= run(result, VirtualMachineTest.class, arguments, null);
-	
+
 		// Was it possible to run the first test?
 		if (test == null)
 			return;
-		
+
 		// Get the VM info
 		VMInformation info = test.getVMInfo();
-	
+
 		// Get all test cases
 		Vector<Class<?>> classes= getAllTestCases(info);
-	
+
 		// Run the other tests
 		Enumeration<Class<?>> enumeration= classes.elements();
 		while (enumeration.hasMoreElements()) {
@@ -117,10 +117,10 @@
 			test= run(result, testClass, arguments, info);
 			info= test.getVMInfo(); // In case the test has changed this info
 		}
-	
-		// Shut down the VM 
+
+		// Shut down the VM
 		test.shutDownTarget();
-	
+
 		// Show the result
 		result.print();
 	}
@@ -150,7 +150,7 @@
 			return null;
 		test.setVMInfo(info);
 		test.setInControl(false);
-	
+
 		// Run test
 		System.out.println("\n" + new java.util.Date());
 		System.out.println("Begin testing " + test.getName() + "...");
@@ -160,7 +160,7 @@
 		long runTime= endTime-startTime;
 		System.out.println("\nTime: "+runTime/1000+"."+runTime%1000);
 		System.out.println("Done testing " + test.getName() + ".");
-		
+
 		return test;
 	}
 }
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/TextTestResult.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/TextTestResult.java
index 78bf225..11da194 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/TextTestResult.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/TextTestResult.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ThreadDeathEventTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ThreadDeathEventTest.java
index c0a8541..aa38dc0 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ThreadDeathEventTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ThreadDeathEventTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ThreadGroupReferenceTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ThreadGroupReferenceTest.java
index 1b26ea4..fb490e8 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ThreadGroupReferenceTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ThreadGroupReferenceTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ThreadReferenceTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ThreadReferenceTest.java
index 8e2053b..09edf43 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ThreadReferenceTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ThreadReferenceTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -175,7 +175,7 @@
 				false);
 		ThreadReference thread = event.thread();
 
-		// Create a java.lang.Throwable instance in 
+		// Create a java.lang.Throwable instance in
 		List<ReferenceType> classes = fVM.classesByName("java.lang.Throwable");
 		assertTrue("1", classes.size() != 0);
 		ClassType threadDeathClass = (ClassType) classes.get(0);
@@ -212,7 +212,7 @@
 
 	}
 	/**
-	 * Test JDI suspend() and resume() 
+	 * Test JDI suspend() and resume()
 	 * and JDWP 'Thread - Suspend' and 'Thread - Resume'.
 	 */
 	public void testJDISuspendResume() {
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ThreadStartEventTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ThreadStartEventTest.java
index fbf79aa..006e3bd 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ThreadStartEventTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ThreadStartEventTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/TypeComponentTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/TypeComponentTest.java
index 257e29b..1f4ef79 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/TypeComponentTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/TypeComponentTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/TypeTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/TypeTest.java
index ae4d70f..6a00f52 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/TypeTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/TypeTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -16,7 +16,7 @@
  * Tests for JDI com.sun.jdi.Type.
  */
 public class TypeTest extends AbstractJDITest {
-	private Type 		
+	private Type
 		fArrayType,
 		fClassType,
 		fInterfaceType,
@@ -47,7 +47,7 @@
 		fDoubleDoubleArrayType,
 		fCharDoubleArrayType,
 		fBooleanDoubleArrayType;
-		
+
 	/**
 	 * Creates a new test.
 	 */
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/VMDisconnectEventTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/VMDisconnectEventTest.java
index ba6bebe..4360b9b 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/VMDisconnectEventTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/VMDisconnectEventTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/VMDisconnectEventWaiter.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/VMDisconnectEventWaiter.java
index 77aa749..cf52201 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/VMDisconnectEventWaiter.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/VMDisconnectEventWaiter.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -15,7 +15,7 @@
  * Listen for VMDisconnectEvent.
  */
 public class VMDisconnectEventWaiter extends EventWaiter {
-	
+
 	/**
 	 * Constructor
 	 * @param request
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/VMDisposeTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/VMDisposeTest.java
index fc3e528..0ebc157 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/VMDisposeTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/VMDisposeTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/VMInformation.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/VMInformation.java
index ae8e313..fde5969 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/VMInformation.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/VMInformation.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -23,7 +23,7 @@
 	AbstractReader fConsoleReader;
 	String fVMType;
 
-	/** 
+	/**
 	 * Creates a new VMInformation for the given vm, vm type, launched vm, event reader and console reader.
 	 */
 	VMInformation(VirtualMachine vm, String vmType, Process launchedVM, EventReader eventReader, AbstractReader consoleReader) {
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ValueTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ValueTest.java
index b9d49f9..c22f942 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ValueTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/ValueTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/VirtualMachineExitTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/VirtualMachineExitTest.java
index f4895b0..cfa20c1 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/VirtualMachineExitTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/VirtualMachineExitTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/VirtualMachineTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/VirtualMachineTest.java
index aa30db3..3316884 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/VirtualMachineTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/VirtualMachineTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -33,7 +33,7 @@
 /**
  * Tests for JDI com.sun.jdi.VirtualMachine
  * and JDWP VM command set.
- * 
+ *
  * Example of arguments:
  *   -launcher SunVMLauncher -address c:\jdk1.2.2\ -classpath d:\target
  */
@@ -83,7 +83,7 @@
 		super.startProgram();
 	}
 	/**
-	 * Returns all tests 
+	 * Returns all tests
 	 */
 	@Override
 	protected Test suite() {
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/WatchpointEventTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/WatchpointEventTest.java
index 4642556..1c8b70e 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/WatchpointEventTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/WatchpointEventTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/WatchpointRequestTest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/WatchpointRequestTest.java
index 9a24bba..088619a 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/WatchpointRequestTest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/WatchpointRequestTest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/MainClass.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/MainClass.java
index b5f6e8c..f601178 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/MainClass.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/MainClass.java
@@ -4,12 +4,12 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.debug.jdi.tests.program;
- 
+
 
 import java.io.OutputStream;
 import java.io.PrintWriter;
@@ -19,12 +19,12 @@
 
 /**
  * Main class for target VM tests.
- * This class is intended to be run by the target VM. 
+ * This class is intended to be run by the target VM.
  * It will use other classes in this package, and it will create and terminate
  * threads as a regular program would do.
  *
  * WARNING, WARNING:
- * Tests in org.eclipse.debug.jdi.tests assume the content of this class, 
+ * Tests in org.eclipse.debug.jdi.tests assume the content of this class,
  * as well as its behavior. So if this class or one of the types in this
  * package is changed, the corresponding tests must also be changed.
  */
@@ -117,7 +117,7 @@
 	public MainClass(int i, Object o1, Object o2) {
 	}
 
-	/** 
+	/**
 	 * For invocation tests
 	 * @param x the integer
 	 * @param o
@@ -130,13 +130,13 @@
 			return "";
 		}
 	}
-	/** 
+	/**
 	 * For invocation tests
 	 */
 	private static void invoke2() {
 		throw new IndexOutOfBoundsException();
 	}
-	
+
 	/**
 	 * For invocation tests
 	 * @param str
@@ -159,9 +159,9 @@
 	 * @param l
 	 */
 	private void variablesTest(long l) {}
-	
+
 	/**
-	 * Runs the test program 
+	 * Runs the test program
 	 * @param args
 	 */
 	public static void main(java.lang.String[] args) {
@@ -190,7 +190,7 @@
 		writer.println(string);
 		writer.flush();
 	}
-	
+
 	/**
 	 * Prints out a specified integer. This method is used in the force early return tests to ensure we
 	 * can specify a different, type compatible return value
@@ -206,37 +206,37 @@
 		writer.flush();
 		return num;
 	}
-	
+
 	/**
 	 * Returns 20
-	 * 
+	 *
 	 * @return 20
 	 */
 	public int getInt() {
 		int x = Math.max(20, 10);
 		return x;
 	}
-	
+
 	/**
 	 * Returns true.
-	 * 
+	 *
 	 * @return true
 	 */
 	public boolean getBoolean() {
 		boolean bool = Boolean.valueOf("true").booleanValue();
 		return bool;
 	}
-	
+
 	/**
 	 * Returns 123L.
-	 * 
+	 *
 	 * @return 123
 	 */
 	public long getLong() {
 		long l = Long.valueOf("123").longValue();
 		return l;
 	}
-	
+
 	/**
 	 * dump out a string
 	 * @return a String
@@ -246,7 +246,7 @@
 		System.out.println("foobar");
 		return "man";
 	}
-	
+
 	/**
 	 * make a sync'd method so we can stop in it to gather monitor information
 	 * @since 3.3
@@ -254,7 +254,7 @@
 	synchronized public void sync() {
 		System.out.println("sync'd to the moon");
 	}
-	
+
 	/**
 	 * suspend on the first line of the method to get the argument values from the stackframe.
 	 * used in testing the new 1.6VM capability to get argument values when no debugging info is available.
@@ -266,7 +266,7 @@
 	public void argValues(String str, int num, Object obj) {
 		System.out.println("get the arg values");
 	}
-	
+
 	/**
 	 * Prints to System.out and throws an exception to indicate readiness
 	 */
@@ -278,7 +278,7 @@
 		} catch (NegativeArraySizeException exc) {
 		}
 	}
-	
+
 	/**
 	 * @see java.lang.Runnable#run()
 	 */
@@ -460,7 +460,7 @@
 			System.out.println("Unknown event type: " + eventType);
 		}
 	}
-	
+
 	/**
 	 *	Trigger an exception event for the front-end.
 	 */
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/OtherClass.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/OtherClass.java
index a269800..25afc20 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/OtherClass.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/OtherClass.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/Printable.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/Printable.java
index 5c6c88b..8a341ff 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/Printable.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/Printable.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -12,7 +12,7 @@
 
 /**
  * Interface type for target VM tests.
- * This interface is intended to be loaded by the target VM. 
+ * This interface is intended to be loaded by the target VM.
  *
  * WARNING, WARNING:
  * Tests in org.eclipse.debug.jdi.tests assume the content of this interface.
@@ -27,7 +27,7 @@
  */
 public interface Printable extends Cloneable {
 	/**
-	 * the number 1 
+	 * the number 1
 	 */
 	int CONSTANT = 1;
 	/**
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/RefClass.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/RefClass.java
index 55cd1d4..98a31e7 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/RefClass.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/RefClass.java
@@ -14,7 +14,7 @@
  * Test class with a static object array
  */
 public class RefClass {
-	
+
 	/**
 	 * Array of two other Ref classes
 	 */
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/RefClass2.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/RefClass2.java
index 6711704..03d4245 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/RefClass2.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/RefClass2.java
@@ -15,7 +15,7 @@
  */
 public class RefClass2 {
 	/**
-	 * A handle to the singleton <code>MainClass</code> 
+	 * A handle to the singleton <code>MainClass</code>
 	 */
 	public Object temp2 = MainClass.fObject;
 
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClass.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClass.java
index 1f3e06d..b6ebce6 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClass.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClass.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClass1.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClass1.java
index 3c73718..8b8a0db 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClass1.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClass1.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClass2.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClass2.java
index 592fcc0..cbfc3b4 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClass2.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClass2.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClass3.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClass3.java
index 23aa1f1..8284552 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClass3.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClass3.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClass4.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClass4.java
index 2099db6..aae2626 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClass4.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClass4.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClass5.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClass5.java
index b4c6d47..17ee641 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClass5.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClass5.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClass6.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClass6.java
index f48e2fd..5bba8ca 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClass6.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClass6.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClass7.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClass7.java
index 2fbed87..2f8f975 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClass7.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClass7.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClazz10.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClazz10.java
index 204da91..84a25b1 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClazz10.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClazz10.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClazz8.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClazz8.java
index 502ee93..0851b10 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClazz8.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClazz8.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClazz9.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClazz9.java
index 175f9e0..1af5d6d 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClazz9.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/program/TestClazz9.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.jdt.debug.tests/.settings/org.eclipse.jdt.ui.prefs
index 69f7753..c9192ac 100644
--- a/org.eclipse.jdt.debug.tests/.settings/org.eclipse.jdt.ui.prefs
+++ b/org.eclipse.jdt.debug.tests/.settings/org.eclipse.jdt.ui.prefs
@@ -68,10 +68,12 @@
 sp_cleanup.always_use_parentheses_in_expressions=false

 sp_cleanup.always_use_this_for_non_static_field_access=false

 sp_cleanup.always_use_this_for_non_static_method_access=false

+sp_cleanup.convert_functional_interfaces=false

 sp_cleanup.convert_to_enhanced_for_loop=false

 sp_cleanup.correct_indentation=false

 sp_cleanup.format_source_code=true

 sp_cleanup.format_source_code_changes_only=true

+sp_cleanup.insert_inferred_type_arguments=false

 sp_cleanup.make_local_variable_final=false

 sp_cleanup.make_parameters_final=false

 sp_cleanup.make_private_fields_final=true

@@ -87,7 +89,8 @@
 sp_cleanup.qualify_static_member_accesses_with_declaring_class=false

 sp_cleanup.qualify_static_method_accesses_with_declaring_class=false

 sp_cleanup.remove_private_constructors=true

-sp_cleanup.remove_trailing_whitespaces=false

+sp_cleanup.remove_redundant_type_arguments=true

+sp_cleanup.remove_trailing_whitespaces=true

 sp_cleanup.remove_trailing_whitespaces_all=true

 sp_cleanup.remove_trailing_whitespaces_ignore_empty=false

 sp_cleanup.remove_unnecessary_casts=true

@@ -100,8 +103,10 @@
 sp_cleanup.remove_unused_private_types=true

 sp_cleanup.sort_members=false

 sp_cleanup.sort_members_all=false

+sp_cleanup.use_anonymous_class_creation=false

 sp_cleanup.use_blocks=true

 sp_cleanup.use_blocks_only_for_return_and_throw=false

+sp_cleanup.use_lambda=false

 sp_cleanup.use_parentheses_in_expressions=false

 sp_cleanup.use_this_for_non_static_field_access=false

 sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true

diff --git a/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/ConsoleTerminateAllActionTests.java b/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/ConsoleTerminateAllActionTests.java
index c2c0be1..0485e47 100644
--- a/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/ConsoleTerminateAllActionTests.java
+++ b/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/ConsoleTerminateAllActionTests.java
@@ -84,6 +84,6 @@
 				removeAllBreakpoints();
 			}
 		}
-			
+
 	}
 }
diff --git a/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/IOConsoleEchoActionDelegate.java b/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/IOConsoleEchoActionDelegate.java
index 410fb00..3d8bc20 100644
--- a/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/IOConsoleEchoActionDelegate.java
+++ b/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/IOConsoleEchoActionDelegate.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -70,33 +70,33 @@
             }
         }, "IOConsole Test Thread").start(); //$NON-NLS-1$
     }
-    
+
     /**
      * Actually runs the test
      * @param console
      */
     public void runTest(IOConsole console) {
         final Display display = Display.getDefault();
-        
+
         final IOConsoleInputStream in = console.getInputStream();
         display.asyncExec(new Runnable() {
             @Override
-			public void run() {        
+			public void run() {
                 in.setColor(display.getSystemColor(SWT.COLOR_BLUE));
             }
         });
         IConsoleManager manager = ConsolePlugin.getDefault().getConsoleManager();
         manager.addConsoles(new IConsole[] { console });
-        
-        final IOConsoleOutputStream out = console.newOutputStream(); 
+
+        final IOConsoleOutputStream out = console.newOutputStream();
         Display.getDefault().asyncExec(new Runnable() {
             @Override
 			public void run() {
-                out.setColor(Display.getDefault().getSystemColor(SWT.COLOR_GREEN));     
+                out.setColor(Display.getDefault().getSystemColor(SWT.COLOR_GREEN));
                 out.setFontStyle(SWT.ITALIC);
             }
         });
-        
+
         PrintStream ps = new PrintStream(out);
         ps.println("Any text entered should be echoed back"); //$NON-NLS-1$
         for(;;) {
@@ -107,7 +107,7 @@
             } catch (IOException io) {
                 io.printStackTrace();
             }
-            
+
             try {
                 out.write(b, 0, bRead);
                 ps.println();
diff --git a/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/IOConsoleHyperlinkActionDelegate.java b/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/IOConsoleHyperlinkActionDelegate.java
index a99e248..6c3178e 100644
--- a/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/IOConsoleHyperlinkActionDelegate.java
+++ b/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/IOConsoleHyperlinkActionDelegate.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -36,7 +36,7 @@
  * Test the hyperlink action delegate for the console
  */
 public class IOConsoleHyperlinkActionDelegate implements IActionDelegate2, IWorkbenchWindowActionDelegate {
- 
+
     /**
      * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
      */
@@ -52,7 +52,7 @@
 			public String getPattern() {
                 return "1234567890"; //$NON-NLS-1$
             }
-            
+
             @Override
 			public String getLineQualifier() {
             	return "1234567890"; //$NON-NLS-1$
@@ -80,7 +80,7 @@
 			public void disconnect() {
             }
         };
-        
+
         backingconsole.addPatternMatchListener(listener);
         IOConsoleOutputStream stream = backingconsole.newOutputStream();
         stream.setFontStyle(SWT.ITALIC | SWT.BOLD);
@@ -92,7 +92,7 @@
             }
         }).start();
     }
-    
+
     private class MyHyperlink implements IHyperlink {
         /**
          * @see org.eclipse.ui.console.IHyperlink#linkEntered()
@@ -118,19 +118,19 @@
             System.out.println("link activated");
         }
     }
-    
+
     /**
      * @see org.eclipse.ui.IActionDelegate2#init(org.eclipse.jface.action.IAction)
      */
     @Override
-	public void init(IAction action) {        
+	public void init(IAction action) {
     }
 
     /**
      * @see org.eclipse.ui.IActionDelegate2#dispose()
      */
     @Override
-	public void dispose() {        
+	public void dispose() {
     }
 
     /**
@@ -152,7 +152,7 @@
      * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#init(org.eclipse.ui.IWorkbenchWindow)
      */
     @Override
-	public void init(IWorkbenchWindow window) {       
+	public void init(IWorkbenchWindow window) {
     }
 
 }
diff --git a/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/IOConsoleMultipleStreamActionDelegate.java b/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/IOConsoleMultipleStreamActionDelegate.java
index c0f3a33..9daea85 100644
--- a/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/IOConsoleMultipleStreamActionDelegate.java
+++ b/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/IOConsoleMultipleStreamActionDelegate.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -65,23 +65,23 @@
 	public void run(IAction action) {
         runTest();
     }
-    
+
     /**
-     * Actually runs the test 
+     * Actually runs the test
      */
     public void runTest() {
         ended = false;
-        
+
         final IOConsole console = new IOConsole("IO Test Console", null, DebugUITools.getImageDescriptor(IDebugUIConstants.IMG_ACT_RUN)); //$NON-NLS-1$
 
 //        console.setWaterMarks(5, 10);
 
         IConsoleManager manager = ConsolePlugin.getDefault().getConsoleManager();
         manager.addConsoles(new IConsole[] { console });
-        
+
         final Display display = Display.getDefault();
         final IOConsoleInputStream in = console.getInputStream();
-        final IOConsoleOutputStream echo = console.newOutputStream(); 
+        final IOConsoleOutputStream echo = console.newOutputStream();
         display.asyncExec(new Runnable() {
             @Override
 			public void run() {
@@ -90,12 +90,12 @@
             }
         });
         startInputReadThread(in, echo);
-        
-        IOConsoleOutputStream out = console.newOutputStream(); 
+
+        IOConsoleOutputStream out = console.newOutputStream();
         startOutputThread(out);
     }
-        
-    private void startOutputThread(final IOConsoleOutputStream out) {   
+
+    private void startOutputThread(final IOConsoleOutputStream out) {
         new Thread(new Runnable() {
             @Override
 			public void run() {
@@ -110,11 +110,11 @@
                     } catch (Exception e) {
                         e.printStackTrace();
                     }
-                }                
+                }
             }
         }, "OUTPUT").start(); //$NON-NLS-1$
     }
-    
+
     private void startInputReadThread(final InputStream in, final OutputStream out) {
        new Thread(new Runnable() {
            @Override
diff --git a/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/IOConsoleOutputActionDelegate.java b/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/IOConsoleOutputActionDelegate.java
index 0f40223..243ee85 100644
--- a/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/IOConsoleOutputActionDelegate.java
+++ b/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/IOConsoleOutputActionDelegate.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -59,7 +59,7 @@
         IOConsole console = new IOConsole("Test IOConsole", null, DebugUITools.getImageDescriptor(IDebugUIConstants.IMG_ACT_RUN)); //$NON-NLS-1$
 		IConsoleManager manager = ConsolePlugin.getDefault().getConsoleManager();
 		manager.addConsoles(new IConsole[]{console});
-		OutputStream out = console.newOutputStream(); 
+		OutputStream out = console.newOutputStream();
 		final PrintStream stream = new PrintStream(out);
 		Runnable r = new Runnable() {
 			@Override
diff --git a/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/IOConsoleTests.java b/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/IOConsoleTests.java
index 449ec6d..e251239 100644
--- a/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/IOConsoleTests.java
+++ b/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/IOConsoleTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -24,7 +24,7 @@
  * IOConsoleTests for the Automated suite
  */
 public class IOConsoleTests extends AbstractDebugTest implements IPatternMatchListener {
-    
+
     private int fMatchCount;
     private boolean fDisconnected = false;
 
@@ -35,7 +35,7 @@
     public IOConsoleTests(String name) {
         super(name);
     }
-    
+
     /**
      * Tests that the pattern matcher will find a specific pattern
      * @throws Exception
@@ -51,14 +51,14 @@
             stream.print("one foo bar");
             stream.println();
             stream.print("two foo bar");
-            
+
             long endTime = System.currentTimeMillis() + 1500;
             while (!fDisconnected && System.currentTimeMillis() < endTime) {
                 synchronized(this) {
                     wait(500);
                 }
             }
-            
+
             assertEquals("Should be two foo's", 2, fMatchCount);
         } finally {
             consoleManager.removeConsoles(new IConsole[]{console});
@@ -72,7 +72,7 @@
 	public String getPattern() {
         return "foo";
     }
-    
+
     /**
      * @see org.eclipse.ui.console.IPatternMatchListener#getLineQualifier()
      */
@@ -96,7 +96,7 @@
 	public int getCompilerFlags() {
 		return 0;
 	}
-	
+
     /**
      * @see org.eclipse.ui.console.IPatternMatchListenerDelegate#connect(org.eclipse.ui.console.TextConsole)
      */
@@ -112,4 +112,4 @@
         notifyAll();
     }
 }
-    
+
diff --git a/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/TestBufferredOutputActionDelegate.java b/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/TestBufferredOutputActionDelegate.java
index 0dac974..f967b31 100644
--- a/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/TestBufferredOutputActionDelegate.java
+++ b/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/TestBufferredOutputActionDelegate.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/TestMessageConsoleActionDelegate.java b/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/TestMessageConsoleActionDelegate.java
index 5cdfa83..b48a90a 100644
--- a/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/TestMessageConsoleActionDelegate.java
+++ b/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/TestMessageConsoleActionDelegate.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/TestShowConsoleActionDelegate.java b/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/TestShowConsoleActionDelegate.java
index 60514fc..5812a07 100644
--- a/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/TestShowConsoleActionDelegate.java
+++ b/org.eclipse.jdt.debug.tests/console tests/org/eclipse/jdt/debug/tests/console/TestShowConsoleActionDelegate.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -31,11 +31,11 @@
  * Tests the show console drop down action delegate for the console view
  */
 public class TestShowConsoleActionDelegate implements IActionDelegate2, IWorkbenchWindowActionDelegate {
-	
+
 	MessageConsole console1;
 	MessageConsole console2;
 	IConsoleManager consoleManager;
-	
+
 	/**
 	 * @see org.eclipse.ui.IActionDelegate2#init(org.eclipse.jface.action.IAction)
 	 */
@@ -46,13 +46,13 @@
 		consoleManager = ConsolePlugin.getDefault().getConsoleManager();
 		consoleManager.addConsoles(new IConsole[]{console1, console2});
 	}
-	
+
 	/**
 	 * @see org.eclipse.ui.IActionDelegate2#dispose()
 	 */
 	@Override
 	public void dispose() {}
-	
+
 	/**
 	 * @see org.eclipse.ui.IActionDelegate2#runWithEvent(org.eclipse.jface.action.IAction, org.eclipse.swt.widgets.Event)
 	 */
@@ -60,7 +60,7 @@
 	public void runWithEvent(IAction action, Event event) {
 		run(action);
 	}
-	
+
 	/**
 	 * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
 	 */
@@ -68,23 +68,23 @@
 	public void run(IAction action) {
 		final MessageConsoleStream stream1 = console1.newMessageStream();
 		final MessageConsoleStream stream2 = console2.newMessageStream();
-		
+
 		stream2.setColor(Display.getDefault().getSystemColor(SWT.COLOR_RED));
-		
+
 		new Thread(new Runnable() {
 			@Override
 			public void run() {
-				
+
 				//write to console #1, show it, write again
 				stream1.print("Testing... Testing... Testing... "); //$NON-NLS-1$
 				consoleManager.showConsoleView(console1);
 				stream1.print("More Testing"); //$NON-NLS-1$
-				
-				//write to console #2, show it, write again		
+
+				//write to console #2, show it, write again
 				stream2.print("Testing... Testing... Testing... "); //$NON-NLS-1$
 				consoleManager.showConsoleView(console2);
 				stream2.print("More Testing"); //$NON-NLS-1$
-				
+
 				try {
 					for (int i=0; i<4; i++) {
 						consoleManager.showConsoleView(console1);
@@ -95,24 +95,24 @@
 				} catch (InterruptedException e) {
 					e.printStackTrace();
 				}
-				
+
 				writeToStream(stream1, "\n\nDone"); //$NON-NLS-1$
 				writeToStream(stream2, "\n\nDone"); //$NON-NLS-1$
 			}
-			
+
 		}).start();
 	}
-	
+
 	private void writeToStream(final MessageConsoleStream stream, final String str) {
-		stream.print(str); 
+		stream.print(str);
 	}
-	
+
 	/**
 	 * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection)
 	 */
 	@Override
 	public void selectionChanged(IAction action, ISelection selection) {}
-	
+
 	/**
 	 * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#init(org.eclipse.ui.IWorkbenchWindow)
 	 */
diff --git a/org.eclipse.jdt.debug.tests/plugin.properties b/org.eclipse.jdt.debug.tests/plugin.properties
index 96faec0..576ac5c 100644
--- a/org.eclipse.jdt.debug.tests/plugin.properties
+++ b/org.eclipse.jdt.debug.tests/plugin.properties
@@ -53,4 +53,6 @@
 contextLabel.label = Run FOOX file
 contextLabel.label.0 = Debug FOOX file
 contextLabel.label.1 = Profile FOOX file
-launchConfigurationTabGroup.description = Test Tab Group
\ No newline at end of file
+launchConfigurationTabGroup.description = Test Tab Group
+DebugViewPerspective=DebugView
+DebugViewPerspectiveDescription=DebugView perspective description
\ No newline at end of file
diff --git a/org.eclipse.jdt.debug.tests/plugin.xml b/org.eclipse.jdt.debug.tests/plugin.xml
index bb85d96..bc649d7 100644
--- a/org.eclipse.jdt.debug.tests/plugin.xml
+++ b/org.eclipse.jdt.debug.tests/plugin.xml
@@ -476,5 +476,15 @@
            modelIdentifier="org.eclipse.jdt.debug">
      </stepFilter>
   </extension>
-
+   <extension
+         point="org.eclipse.ui.perspectives">
+      <perspective
+            name="%DebugViewPerspective"
+            class="org.eclipse.jdt.debug.tests.ui.DebugViewPerspectiveFactory"
+            id="org.eclipse.jdt.debug.tests.ui.DebugViewPerspectiveFactory">
+         <description>
+            %DebugViewPerspectiveDescription
+         </description>
+      </perspective>
+   </extension>
 </plugin>
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/AccessRuleParticipant.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/AccessRuleParticipant.java
index c280b59..8a8ad8c 100644
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/AccessRuleParticipant.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/AccessRuleParticipant.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -21,11 +21,11 @@
 
 /**
  * Sample access rule participant.
- * 
+ *
  * @since 3.3
  */
 public class AccessRuleParticipant implements IAccessRuleParticipant {
-	
+
 	IAccessRule[] fRules = new IAccessRule[] {
 			JavaCore.newAccessRule(new Path("discouraged"), IAccessRule.K_DISCOURAGED),
 			JavaCore.newAccessRule(new Path("accessible"), IAccessRule.K_ACCESSIBLE),
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/AlternateDelegate.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/AlternateDelegate.java
index 5083f64..b342092 100644
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/AlternateDelegate.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/AlternateDelegate.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -14,7 +14,7 @@
 
 /**
  * Tests an alternate launch mode that can be combined with debug mode for Java apps.
- * 
+ *
  * @since 3.3
  */
 public class AlternateDelegate extends JavaLaunchDelegate {
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/ConsoleLineTracker.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/ConsoleLineTracker.java
index 3728003..8a67966 100644
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/ConsoleLineTracker.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/ConsoleLineTracker.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -16,19 +16,19 @@
 import org.eclipse.jface.text.IRegion;
 
 /**
- * Simple console line tracker extension point that delegates messages 
+ * Simple console line tracker extension point that delegates messages
  */
 public class ConsoleLineTracker implements IConsoleLineTrackerExtension {
-	
+
 	/**
-	 * Forwards messages to the delegate when not <code>null</code> 
+	 * Forwards messages to the delegate when not <code>null</code>
 	 */
 	private static IConsoleLineTrackerExtension fDelegate;
 	private static IConsole fConsole;
-	
+
 	/**
 	 * Sets the delegate, possibly <code>null</code>
-	 *  
+	 *
 	 * @param tracker
 	 */
 	public static void setDelegate(IConsoleLineTrackerExtension tracker) {
@@ -57,7 +57,7 @@
 			fDelegate.init(console);
 		}
 	}
-	
+
 	/**
 	 * Returns the document backing this console
 	 * @return the document backingthis console
@@ -75,7 +75,7 @@
 			fDelegate.lineAppended(line);
 		}
 	}
-	
+
 	/**
 	 * @see org.eclipse.debug.ui.console.IConsoleLineTrackerExtension#consoleClosed()
 	 */
@@ -83,7 +83,7 @@
 	public void consoleClosed() {
 		if (fDelegate != null && fConsole != null) {
 			fDelegate.consoleClosed();
-		}		
+		}
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/ContextView.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/ContextView.java
index a241d33..5d06073 100644
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/ContextView.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/ContextView.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -17,11 +17,11 @@
 
 /**
  * Test view for debug model context view bindings.
- * 
+ *
  * @since 3.2
  */
 public class ContextView extends ViewPart {
-	
+
 	private TableViewer viewer;
 
 	/**
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/DebugElementEventWaiter.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/DebugElementEventWaiter.java
index b588933..56ee778 100644
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/DebugElementEventWaiter.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/DebugElementEventWaiter.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -16,9 +16,9 @@
  * Waits for an event on a specific element
  */
 public class DebugElementEventWaiter extends DebugEventWaiter {
-	
+
 	protected Object fElement;
-	
+
 	/**
 	 * Constructor
 	 * @param kind
@@ -28,7 +28,7 @@
 		super(kind);
 		fElement = element;
 	}
-	
+
 	/**
 	 * @see org.eclipse.jdt.debug.testplugin.DebugEventWaiter#accept(org.eclipse.debug.core.DebugEvent)
 	 */
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/DebugElementKindEventDetailWaiter.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/DebugElementKindEventDetailWaiter.java
index 7f85de0..6e7abc3 100644
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/DebugElementKindEventDetailWaiter.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/DebugElementKindEventDetailWaiter.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -29,7 +29,7 @@
 		super(eventKind, elementClass);
 		fDetail = detail;
 	}
-	
+
 	/**
 	 * @see org.eclipse.jdt.debug.testplugin.DebugElementKindEventWaiter#accept(org.eclipse.debug.core.DebugEvent)
 	 */
@@ -37,5 +37,5 @@
 	public boolean accept(DebugEvent event) {
 		return super.accept(event) && fDetail == event.getDetail();
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/DebugElementKindEventWaiter.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/DebugElementKindEventWaiter.java
index aa905a1..396af4b 100644
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/DebugElementKindEventWaiter.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/DebugElementKindEventWaiter.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,9 +18,9 @@
  */
 
 public class DebugElementKindEventWaiter extends DebugEventWaiter {
-	
+
 	protected Class<?> fElementClass;
-	
+
 	/**
 	 * Constructor
 	 * @param eventKind
@@ -30,7 +30,7 @@
 		super(eventKind);
 		fElementClass = elementClass;
 	}
-	
+
 	/**
 	 * @see org.eclipse.jdt.debug.testplugin.DebugEventWaiter#accept(org.eclipse.debug.core.DebugEvent)
 	 */
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/DebugEventWaiter.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/DebugEventWaiter.java
index 39755cd..9317680 100644
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/DebugEventWaiter.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/DebugEventWaiter.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -45,7 +45,7 @@
 	 * The <code>DebugEvent</code> received.
 	 */
 	protected DebugEvent fEvent;
-	
+
 	/**
 	 * The event set that was accepted
 	 */
@@ -166,13 +166,13 @@
 	public DebugEvent getEvent() {
 		return fEvent;
 	}
-	
+
 	/**
 	 * Returns the accepted event set, if any.
 	 * @return the even if any
 	 */
 	public DebugEvent[] getEventSet() {
 		return fEventSet;
-	}	
+	}
 }
 
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/EmptyClasspathProvider.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/EmptyClasspathProvider.java
index e97b676..3ca91ce 100644
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/EmptyClasspathProvider.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/EmptyClasspathProvider.java
@@ -4,12 +4,12 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jdt.debug.testplugin;
- 
+
 import org.eclipse.debug.core.ILaunchConfiguration;
 import org.eclipse.jdt.launching.IRuntimeClasspathEntry;
 import org.eclipse.jdt.launching.IRuntimeClasspathProvider;
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/EvalualtionBreakpointListener.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/EvalualtionBreakpointListener.java
index 9ea7ebb..1eefbec 100644
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/EvalualtionBreakpointListener.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/EvalualtionBreakpointListener.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -37,52 +37,52 @@
  * whether to resume a thread.
  */
 public class EvalualtionBreakpointListener implements IJavaBreakpointListener {
-	
+
 	/**
 	 * How to vote when hit
 	 */
 	public static int VOTE = IJavaBreakpointListener.DONT_CARE;
-	
+
 	/**
 	 * Whether hit
 	 */
 	public static boolean HIT = false;
-	
+
 	/**
 	 * Whether removed
 	 */
 	public static boolean REMOVED = false;
-	
+
 	/**
 	 * Expression to evaluate when hit
 	 */
 	public static String EXPRESSION;
-	
+
 	/**
 	 * Project to compile expression in
 	 */
 	public static IJavaProject PROJECT;
-	
+
 	/**
 	 * Evaluation result
 	 */
 	public static IEvaluationResult RESULT;
-	
+
 	/**
 	 * List of breakpoints with compilation errors
 	 */
 	public static List<IJavaLineBreakpoint> COMPILATION_ERRORS = new ArrayList<IJavaLineBreakpoint>();
-	
+
 	/**
 	 * Lock used to notify when a notification is received.
 	 */
 	public static Object REMOVE_LOCK = new Object();
-	
+
 	/**
 	 * List of breakpoints with runtime errors
 	 */
 	public static List<IJavaLineBreakpoint> RUNTIME_ERRORS = new ArrayList<IJavaLineBreakpoint>();
-	
+
 	public static void reset() {
 		VOTE = IJavaBreakpointListener.DONT_CARE;
 		EXPRESSION = null;
@@ -181,5 +181,5 @@
 	public int installingBreakpoint(IJavaDebugTarget target, IJavaBreakpoint breakpoint, IJavaType type) {
 		return IJavaBreakpointListener.DONT_CARE;
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/ExpressionWaiter.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/ExpressionWaiter.java
index 353e52b..7d6cf59 100644
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/ExpressionWaiter.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/ExpressionWaiter.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -27,7 +27,7 @@
 	public ExpressionWaiter(int kind, Object element) {
 		super(kind, element);
 	}
-	
+
 	/**
 	 * @see org.eclipse.jdt.debug.testplugin.DebugElementEventWaiter#accept(org.eclipse.debug.core.DebugEvent)
 	 */
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/GlobalBreakpointListener.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/GlobalBreakpointListener.java
index 3ddfac2..1d03e79 100644
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/GlobalBreakpointListener.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/GlobalBreakpointListener.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -23,13 +23,13 @@
  * Listens to all breakpoint notifications.
  */
 public class GlobalBreakpointListener implements IJavaBreakpointListener {
-	
+
 	public static IJavaBreakpoint ADDED;
 	public static IJavaBreakpoint HIT;
 	public static IJavaBreakpoint INSTALLED;
 	public static IJavaBreakpoint REMOVED;
 	public static IJavaBreakpoint INSTALLING;
-	
+
 	public static void clear() {
 		ADDED = null;
 		HIT = null;
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/JavaAlernateModeTab.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/JavaAlernateModeTab.java
index 4710fb6..49a4b93 100644
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/JavaAlernateModeTab.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/JavaAlernateModeTab.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -28,11 +28,11 @@
 
 /**
  * Test tab contribution to an existing tab group.
- * 
+ *
  * @since 3.3
  */
 public class JavaAlernateModeTab extends AbstractLaunchConfigurationTab implements ILaunchConfigurationListener {
-	
+
 	private Button fAlternateModeCheckBox;
 
 	/** Returns the set of modes this tab supports
@@ -51,7 +51,7 @@
 	public String getName() {
 		return "Alternate";
 	}
-	
+
 	/**
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#dispose()
 	 */
@@ -71,7 +71,7 @@
 	 * @see org.eclipse.debug.core.ILaunchConfigurationListener#launchConfigurationRemoved(org.eclipse.debug.core.ILaunchConfiguration)
 	 */
 	@Override
-	public void launchConfigurationRemoved(ILaunchConfiguration configuration) {}	
+	public void launchConfigurationRemoved(ILaunchConfiguration configuration) {}
 
 	/**
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#initializeFrom(org.eclipse.debug.core.ILaunchConfiguration)
@@ -116,7 +116,7 @@
 		setControl(fAlternateModeCheckBox);
 		DebugPlugin.getDefault().getLaunchManager().addLaunchConfigurationListener(this);
 	}
-	
+
 	/**
 	 * @see org.eclipse.debug.ui.AbstractLaunchConfigurationTab#getId()
 	 */
@@ -142,10 +142,10 @@
 			});
 		}
 	}
-	
+
 	/**
 	 * handles setting the checked state of the widget
-	 * must check if we are in the UI thread before calling this method, as the launch ocnfiguration 
+	 * must check if we are in the UI thread before calling this method, as the launch ocnfiguration
 	 * notification can come from the non-UI tread.
 	 * @param configuration
 	 */
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/JavaProjectHelper.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/JavaProjectHelper.java
index 2209400..6ca7e42 100644
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/JavaProjectHelper.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/JavaProjectHelper.java
@@ -8,7 +8,7 @@
  * This is an implementation of an early-draft specification developed under the Java
  * Community Process (JCP) and is made available for testing and evaluation purposes
  * only. The code is not compatible with any specification of the JCP.
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jesper S. Møller - bug 422029: [1.8] Enable debug evaluation support for default methods
@@ -55,7 +55,7 @@
  * Helper methods to set up a IJavaProject.
  */
 public class JavaProjectHelper {
-	
+
 	public static final String SRC_DIR = "src";
 	public static final String BIN_DIR = "bin";
 	public static final String J2SE_1_4_EE_NAME = "J2SE-1.4";
@@ -63,12 +63,12 @@
 	public static final String JAVA_SE_1_6_EE_NAME = "JavaSE-1.6";
 	public static final String JAVA_SE_1_7_EE_NAME = "JavaSE-1.7";
 	public static final String JAVA_SE_1_8_EE_NAME = "JavaSE-1.8";
-	
+
 	/**
 	 * path to the test src for 'testprograms'
 	 */
 	public static final IPath TEST_SRC_DIR= new Path("testprograms");
-	
+
 	/**
 	 * path to the 1.5 test source
 	 */
@@ -81,18 +81,18 @@
 	 * path to the 1.8 test source
 	 */
 	public static final IPath TEST_1_8_SRC_DIR= new Path("java8");
-	
+
 	/**
 	 * path to the compiler error java file
 	 */
-	public static final IPath TEST_COMPILE_ERROR = new Path("testresources/CompilationError.java");	
-	
+	public static final IPath TEST_COMPILE_ERROR = new Path("testresources/CompilationError.java");
+
 	public static final String JRE_CONTAINER_NAME = "org.eclipse.jdt.launching.JRE_CONTAINER";
 
-	
+
 	/**
 	 * Returns if the currently running VM is version compatible with Java 8
-	 * 
+	 *
 	 * @return <code>true</code> if a Java 8 (or greater) VM is running <code>false</code> otherwise
 	 */
 	public static boolean isJava8Compatible() {
@@ -100,34 +100,34 @@
 	}
 	/**
 	 * Returns if the currently running VM is version compatible with Java 7
-	 * 
+	 *
 	 * @return <code>true</code> if a Java 7 (or greater) VM is running <code>false</code> otherwise
 	 */
 	public static boolean isJava7Compatible() {
 		return isCompatible(7);
 	}
-	
+
 	/**
 	 * Returns if the currently running VM is version compatible with Java 6
-	 * 
+	 *
 	 * @return <code>true</code> if a Java 6 (or greater) VM is running <code>false</code> otherwise
 	 */
 	public static boolean isJava6Compatible() {
 		return isCompatible(6);
 	}
-	
+
 	/**
 	 * Returns if the currently running VM is version compatible with Java 5
-	 * 
+	 *
 	 * @return <code>true</code> if a Java 5 (or greater) VM is running <code>false</code> otherwise
 	 */
 	public static boolean isJava5Compatible() {
 		return isCompatible(5);
 	}
-	
+
 	/**
 	 * Returns if the current running system is compatible with the given Java minor version
-	 * 
+	 *
 	 * @param ver the version to test - either 4, 5, 6, 7 or 8
 	 * @return <code>true</code> if compatible <code>false</code> otherwise
 	 */
@@ -150,11 +150,11 @@
 		}
 		return false;
 	}
-	
+
 	/**
 	 * Creates a new {@link IProject} with the given name unless the project already exists. If it already exists
 	 * the project is refreshed and opened (if closed)
-	 * 
+	 *
 	 * @param pname the desired name for the project
 	 * @return the new {@link IProject} handle
 	 * @throws CoreException
@@ -172,7 +172,7 @@
 		}
 		return project;
 	}
-	
+
 	/**
 	 * creates a java project with the specified name and output folder
 	 * @param projectName
@@ -198,9 +198,9 @@
 		IJavaProject jproject= JavaCore.create(project);
 		jproject.setOutputLocation(outputLocation, null);
 		jproject.setRawClasspath(new IClasspathEntry[0], null);
-		return jproject;	
+		return jproject;
 	}
-		
+
 	/**
 	 * Creates a new Java project with the specified name
 	 * @param projectName
@@ -214,9 +214,9 @@
 		}
 		IJavaProject jproject= JavaCore.create(project);
 		jproject.setRawClasspath(new IClasspathEntry[0], null);
-		return jproject;	
-	}	
-			
+		return jproject;
+	}
+
 	/**
 	 * deletes a java project
 	 * @param jproject
@@ -226,7 +226,7 @@
 		jproject.setRawClasspath(new ClasspathEntry[0], jproject.getProject().getFullPath(), null);
 		jproject.getProject().delete(true, true, null);
 	}
-		
+
 	/**
 	 * Adds a new source container specified by the container name to the source path of the specified project
 	 * @param jproject
@@ -247,12 +247,12 @@
 			container= folder;
 		}
 		IPackageFragmentRoot root= jproject.getPackageFragmentRoot(container);
-		
+
 		IClasspathEntry cpe= JavaCore.newSourceEntry(root.getPath());
-		addToClasspath(jproject, cpe);		
+		addToClasspath(jproject, cpe);
 		return root;
 	}
-	
+
 	/**
 	 * Adds a source container to a IJavaProject.
 	 * @param jproject
@@ -282,12 +282,12 @@
 				output.create(false, true, null);
 			}
 		}
-				
+
 		IClasspathEntry cpe= JavaCore.newSourceEntry(root.getPath(), new IPath[0], output.getFullPath());
-		
-		addToClasspath(jproject, cpe);		
+
+		addToClasspath(jproject, cpe);
 		return root;
-	}	
+	}
 
 	/**
 	 * Adds a source container to a IJavaProject and imports all files contained
@@ -358,11 +358,11 @@
 		IFile newFile= project.getFile(jarPath.lastSegment());
 		try (InputStream inputStream = new FileInputStream(jarPath.toFile())) {
 			newFile.create(inputStream, true, null);
-		}				
+		}
 		return addLibrary(jproject, newFile.getFullPath(), sourceAttachPath, sourceAttachRoot);
-	}	
+	}
 
-		
+
 	/**
 	 * Adds a variable entry with source attachment to a IJavaProject.
 	 * Can return null if variable can not be resolved.
@@ -382,7 +382,7 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Adds a container entry to the specified java project
 	 * @param project
@@ -393,13 +393,13 @@
 		IClasspathEntry cpe = JavaCore.newContainerEntry(container, false);
 		addToClasspath(project, cpe);
 	}
-	
+
 	/**
 	 * Sets the given compiler compliance on the given {@link IJavaProject}
 	 * <br><br>
-	 * See {@link JavaCore#VERSION_1_4}, {@link JavaCore#VERSION_1_5}, {@link JavaCore#VERSION_1_6}, 
+	 * See {@link JavaCore#VERSION_1_4}, {@link JavaCore#VERSION_1_5}, {@link JavaCore#VERSION_1_6},
 	 * {@link JavaCore#VERSION_1_7} and {@link JavaCore#VERSION_1_8} for more information on accepted compliances
-	 * 
+	 *
 	 * @param project
 	 * @param compliance
 	 */
@@ -410,9 +410,9 @@
 		map.put(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, compliance);
 		project.setOptions(map);
 	}
-	
+
 	/**
-	 * Updates the compiler compliance project setting for the given project to match the given EE. 
+	 * Updates the compiler compliance project setting for the given project to match the given EE.
 	 * I.e. J2SE-1.5 will set a 1.5 compliance for the compiler and the source level.
 	 * @param project
 	 * @param ee
@@ -431,7 +431,7 @@
 			setCompliance(project, JavaCore.VERSION_1_8);
 		}
 	}
-	
+
 	/**
 	 * Adds a required project entry.
 	 * @param jproject
@@ -441,8 +441,8 @@
 	public static void addRequiredProject(IJavaProject jproject, IJavaProject required) throws JavaModelException {
 		IClasspathEntry cpe= JavaCore.newProjectEntry(required.getProject().getFullPath());
 		addToClasspath(jproject, cpe);
-	}	
-	
+	}
+
 	/**
 	 * Removes a specified path form the specified java project
 	 * @param jproject
@@ -456,12 +456,12 @@
 		for (int i= 0 ; i < nEntries ; i++) {
 			IClasspathEntry curr= oldEntries[i];
 			if (!path.equals(curr.getPath())) {
-				list.add(curr);			
+				list.add(curr);
 			}
 		}
 		IClasspathEntry[] newEntries= list.toArray(new IClasspathEntry[list.size()]);
 		jproject.setRawClasspath(newEntries, null);
-	}	
+	}
 
 	/**
 	 * Adds the specified classpath entry to the specified java project
@@ -485,8 +485,8 @@
 		entries.add(cpe);
 		jproject.setRawClasspath(entries.toArray(new IClasspathEntry[entries.size()]), null);
 	}
-	
-			
+
+
 	/**
 	 * Adds the specified nature to the specified project
 	 * @param proj
@@ -503,7 +503,7 @@
 		description.setNatureIds(newNatures);
 		proj.setDescription(description, monitor);
 	}
-	
+
 	/**
 	 * Imports files from the specified zip to the specified destination
 	 * @param srcZipFile
@@ -511,7 +511,7 @@
 	 * @param monitor
 	 * @throws InvocationTargetException
 	 */
-	private static void importFilesFromZip(ZipFile srcZipFile, IPath destPath, IProgressMonitor monitor) throws InvocationTargetException {		
+	private static void importFilesFromZip(ZipFile srcZipFile, IPath destPath, IProgressMonitor monitor) throws InvocationTargetException {
 		ZipFileStructureProvider structureProvider=	new ZipFileStructureProvider(srcZipFile);
 		try {
 			ImportOperation op= new ImportOperation(destPath, structureProvider.getRoot(), structureProvider, new ImportOverwriteQuery());
@@ -520,7 +520,7 @@
 			// should not happen
 		}
 	}
-	
+
 	/**
 	 * Imports files from the specified root dir into the specified path
 	 * @param rootDir
@@ -529,7 +529,7 @@
 	 * @throws InvocationTargetException
 	 * @throws IOException
 	 */
-	public static void importFilesFromDirectory(File rootDir, IPath destPath, IProgressMonitor monitor) throws InvocationTargetException, IOException {		
+	public static void importFilesFromDirectory(File rootDir, IPath destPath, IProgressMonitor monitor) throws InvocationTargetException, IOException {
 		IImportStructureProvider structureProvider = FileSystemStructureProvider.INSTANCE;
 		List<File> files = new ArrayList<>(100);
 		addJavaFiles(rootDir, files);
@@ -545,8 +545,8 @@
 		} catch (InterruptedException e) {
 			throw new InvocationTargetException(e, "Interrupted during files import");
 		}
-	}	
-	
+	}
+
 	/**
 	 * Imports the specified file into the specified path
 	 * @param file
@@ -554,7 +554,7 @@
 	 * @param monitor
 	 * @throws InvocationTargetException
 	 */
-	public static void importFile(File file, IPath destPath, IProgressMonitor monitor) throws InvocationTargetException {		
+	public static void importFile(File file, IPath destPath, IProgressMonitor monitor) throws InvocationTargetException {
 		IImportStructureProvider structureProvider = FileSystemStructureProvider.INSTANCE;
 		List<File> files = new ArrayList<File>(1);
 		files.add(file);
@@ -566,7 +566,7 @@
 			// should not happen
 		}
 	}
-	
+
 	/**
 	 * Recursively adds files from the specified dir to the provided list
 	 * @param dir
@@ -591,7 +591,7 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Static class for an <code>IOverwriteQuery</code> implementation
 	 */
@@ -602,6 +602,6 @@
 		@Override
 		public String queryOverwrite(String file) {
 			return ALL;
-		}	
-	}	
+		}
+	}
 }
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/JavaTestPlugin.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/JavaTestPlugin.java
index 8e4fee3..886edee 100644
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/JavaTestPlugin.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/JavaTestPlugin.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -28,9 +28,9 @@
  * Implementation of the Test plugin
  */
 public class JavaTestPlugin extends AbstractUIPlugin {
-	
+
 	private static JavaTestPlugin fgDefault;
-	
+
 	/**
 	 * Constructor
 	 */
@@ -38,7 +38,7 @@
 		super();
 		fgDefault= this;
 	}
-	
+
 	/**
 	 * Returns the singleton instance of the plugin
 	 * @return the singleton instance of the plugin
@@ -46,7 +46,7 @@
 	public static JavaTestPlugin getDefault() {
 		return fgDefault;
 	}
-	
+
 	/**
 	 * Returns a handle to the current workspace
 	 * @return a handle to the current workspace
@@ -54,7 +54,7 @@
 	public static IWorkspace getWorkspace() {
 		return ResourcesPlugin.getWorkspace();
 	}
-	
+
 	/**
 	 * Sets autobuild to the specified boolean value
 	 * @param enable
@@ -67,7 +67,7 @@
 		desc.setAutoBuilding(enable);
 		workspace.setDescription(desc);
 	}
-	
+
 	/**
 	 * Returns the file corresponding to the specified path from within this bundle
 	 * @param path
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/NullVariableInitializer.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/NullVariableInitializer.java
index 7d53d70..2088384 100644
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/NullVariableInitializer.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/NullVariableInitializer.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -26,7 +26,7 @@
 
 	/**
 	 * Performs no initialization.
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.ClasspathVariableInitializer#initialize(java.lang.String)
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/ResumeBreakpointListener.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/ResumeBreakpointListener.java
index 80753c9..5f1a369 100644
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/ResumeBreakpointListener.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/ResumeBreakpointListener.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -20,8 +20,8 @@
 import org.eclipse.jdt.debug.core.IJavaType;
 
 public class ResumeBreakpointListener implements IJavaBreakpointListener {
-	
-	public static boolean WAS_HIT = false; 
+
+	public static boolean WAS_HIT = false;
 
 	public ResumeBreakpointListener() {
 	}
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/SampleDynamicVariableResolver.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/SampleDynamicVariableResolver.java
index 4c67301..4f00f69 100644
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/SampleDynamicVariableResolver.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/SampleDynamicVariableResolver.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -25,7 +25,7 @@
 	public String resolveValue(IDynamicVariable variable, String argument) {
 		if (argument == null) {
 			return "no arg";
-		} 
+		}
 		return "the arg is " + argument;
 	}
 }
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/SecondaryAccessRuleParticipant.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/SecondaryAccessRuleParticipant.java
index bdc1d65..acb9b07 100644
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/SecondaryAccessRuleParticipant.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/SecondaryAccessRuleParticipant.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -21,11 +21,11 @@
 
 /**
  * Sample access rule participant.
- * 
+ *
  * @since 3.3
  */
 public class SecondaryAccessRuleParticipant implements IAccessRuleParticipant {
-	
+
 	IAccessRule[] fRules = new IAccessRule[] {
 			JavaCore.newAccessRule(new Path("secondary"), IAccessRule.K_DISCOURAGED)
 	};
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/SpecificDebugElementEventWaiter.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/SpecificDebugElementEventWaiter.java
index 931f66a..f039036 100644
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/SpecificDebugElementEventWaiter.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/SpecificDebugElementEventWaiter.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -14,14 +14,14 @@
 import org.eclipse.debug.core.model.IDebugElement;
 
 /**
- * This event waiter is used to wait for a certain type of event (create, terminate, suspend, etc.) 
- * on a *specific* debug element.  Contrast this with DebugElementKindEventWaiter which is similar, 
+ * This event waiter is used to wait for a certain type of event (create, terminate, suspend, etc.)
+ * on a *specific* debug element.  Contrast this with DebugElementKindEventWaiter which is similar,
  * but is used to wait for a certain type of event on a *kind* of debug element (thread, debug target, etc.)
  */
 public class SpecificDebugElementEventWaiter extends DebugEventWaiter {
 
 	protected IDebugElement fDebugElement;
-	
+
 	/**
 	 * Constructor
 	 * @param eventKind
@@ -31,7 +31,7 @@
 		super(eventKind);
 		fDebugElement = element;
 	}
-	
+
 	/**
 	 * @see org.eclipse.jdt.debug.testplugin.DebugEventWaiter#accept(org.eclipse.debug.core.DebugEvent)
 	 */
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/TestClasspathContainerInitializer.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/TestClasspathContainerInitializer.java
index 178a006..db2e9ad 100644
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/TestClasspathContainerInitializer.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/TestClasspathContainerInitializer.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -15,7 +15,7 @@
 import org.eclipse.jdt.core.ClasspathContainerInitializer;
 import org.eclipse.jdt.core.IJavaProject;
 
-/** 
+/**
  * A classpath initializer that performs equality based on the project, not the container id
  */
 public class TestClasspathContainerInitializer extends ClasspathContainerInitializer {
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/TestSourceLocator.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/TestSourceLocator.java
index db40424..8bec8ce 100644
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/TestSourceLocator.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/TestSourceLocator.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/TestSourcePathComputer.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/TestSourcePathComputer.java
index e54dafc..279797a 100644
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/TestSourcePathComputer.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/TestSourcePathComputer.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/ValueVariableInitializer.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/ValueVariableInitializer.java
index d772100..ff119cc 100644
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/ValueVariableInitializer.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/ValueVariableInitializer.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/detailpane/SimpleDetailPane.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/detailpane/SimpleDetailPane.java
index 440bd77..b59d713 100644
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/detailpane/SimpleDetailPane.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/detailpane/SimpleDetailPane.java
@@ -28,7 +28,7 @@
  * test the detail pane functionality.  Displays a colored label depending on
  * if the selected element is public/private/protected/other.  This detail
  * pane is intended to only be used for selections containing only java variables.
- * 
+ *
  * @since 3.3
  * @see DetailPaneManagerTests
  * @see TestDetailPaneFactory
@@ -38,22 +38,22 @@
 public class SimpleDetailPane implements IDetailPane {
 
 	private Label theLabel;
-	
+
 	private Color colorPrivate;
 	private Color colorProtected;
 	private Color colorPublic;
 	private Color colorOther;
-	
+
 	private static final int TYPE_PRIVATE = 1;
 	private static final int TYPE_PROTECTED = 2;
 	private static final int TYPE_PUBLIC = 3;
 	private static final int TYPE_OTHER = 4;
-	
+
 	// Do not change these constants, they are compared against strings in DetailPaneManagerTests
 	public static final String ID = "SimpleDetailPane";
 	public static final String NAME = "Example Pane: Colorful Detail Pane";
 	public static final String DESCRIPTION = "Example pane that displays a color for variables depending on their access level.";
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.IDetailPane#createControl(org.eclipse.swt.widgets.Composite)
 	 */
@@ -64,10 +64,10 @@
 		theLabel.setLayoutData(gd);
 		return theLabel;
 	}
-	
+
 	/**
 	 * Returns the color to be used with the given type
-	 * 
+	 *
 	 * @param typeId type of variable
 	 * @return the color to use
 	 */
@@ -121,14 +121,14 @@
 					}
 					theLabel.setBackground(getColor(TYPE_OTHER));
 					return;
-					
+
 				} catch (DebugException e){
 					theLabel.setBackground(theLabel.getParent().getBackground());
 					theLabel.setText(e.getMessage());
 				}
 			}
 		}
-		
+
 	}
 
 	/* (non-Javadoc)
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/detailpane/TableDetailPane.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/detailpane/TableDetailPane.java
index 63d2f8c..f0a18a8 100644
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/detailpane/TableDetailPane.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/detailpane/TableDetailPane.java
@@ -41,7 +41,7 @@
 /**
  * An example detail pane that creates a composite containing several controls, all of which
  * will be displayed in the detail pane.
- * 
+ *
  * @since 3.3
  * @see TestDetailPaneFactory
  * @see IDetailPane
@@ -51,22 +51,22 @@
 	public static final String ID = "org.eclipse.jdt.debug.testplugin.detailpane.TableDetailPane";
 	public static final String NAME = "Example Pane: Table Detail Pane";
 	public static final String DESCRIPTION = "Example detail pane that displays details as a composite containing several controls";
-	
+
 	IWorkbenchPartSite fWorkbenchPartSite;
 	private Table fTable;
 	private TextViewer fText;
 	private Composite fComposite;
 	private Button fWordWrapButton;
 	private IDebugModelPresentation fModelPresentation;
-	
+
 	/**
 	 * Job to calculate detail string
 	 */
 	class DetailJob implements Runnable{
-		
+
 		private IValue fValue;
 		private IValueDetailListener fListener;
-		
+
 		public DetailJob(IValue value, IValueDetailListener listener){
 			fValue = value;
 			fListener = listener;
@@ -74,21 +74,21 @@
 
 		@Override
 		public void run() {
-			fModelPresentation.computeDetail(fValue, fListener);		
+			fModelPresentation.computeDetail(fValue, fListener);
 		}
-			
+
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.IDetailPane#init(org.eclipse.ui.IWorkbenchPartSite)
 	 */
 	@Override
 	public void init(IWorkbenchPartSite workbenchPartSite) {
 		fWorkbenchPartSite = workbenchPartSite;
-		
+
 		fModelPresentation = new VariablesViewModelPresentation();
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.IDetailPane#createControl(org.eclipse.swt.widgets.Composite)
 	 */
@@ -112,21 +112,21 @@
 					TableItem item = fTable.getItem(index);
 					if (item != null){
 						Thread detailJob = new Thread(new DetailJob((IValue)item.getData(),getValueDetailListener()));
-						detailJob.start();						
+						detailJob.start();
 					}
 					else{
 						fText.setDocument(null);
 					}
 				}
 			}
-			
-			
+
+
 		});
-		
+
 		Composite composite = new Composite(fComposite,SWT.NONE);
 		composite.setLayout(new FillLayout(SWT.VERTICAL));
 		fText = new TextViewer(composite,SWT.READ_ONLY);
-		
+
 		fWordWrapButton = new Button(composite,SWT.CHECK);
 		fWordWrapButton.setText("Word Wrap");
 		fWordWrapButton.setSelection(false);
@@ -149,28 +149,28 @@
 	 */
 	@Override
 	public void display(IStructuredSelection element) {
-		
+
 		if (element != null){
-			
+
 			fTable.removeAll();
 			fText.setDocument(null);
-			
+
 			Iterator<?> iterator = element.iterator();
 			while (iterator.hasNext()){
-				
+
 				Object selection = iterator.next();
 				if (selection != null && selection instanceof IVariable){
-				
+
 					IValue val = null;
 					try {
-						
+
 						val = ((IVariable)selection).getValue();
 						TableItem newItem = new TableItem(fTable,SWT.NONE);
 						newItem.setText(val.getValueString());
 						newItem.setData(val);
-					
+
 					} catch (DebugException e) {
-						
+
 					}
 				}
 			}
@@ -180,7 +180,7 @@
 		}
 
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.IDetailPane#setFocus()
 	 */
@@ -233,7 +233,7 @@
 	protected IValueDetailListener getValueDetailListener(){
 		return this;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.IValueDetailListener#detailComputed(org.eclipse.debug.core.model.IValue, java.lang.String)
 	 */
@@ -244,7 +244,7 @@
 			public IStatus runInUIThread(IProgressMonitor monitor) {
 				fText.setDocument(new Document(result));
 				return Status.OK_STATUS;
-				
+
 			}
 		};
 		append.setSystem(true);
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/detailpane/TestDetailPaneFactory.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/detailpane/TestDetailPaneFactory.java
index 872c650..3aadb80 100644
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/detailpane/TestDetailPaneFactory.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/detailpane/TestDetailPaneFactory.java
@@ -22,7 +22,7 @@
 
 /**
  * Test detail pane factory, used by the test suite to test custom detail pane functionality.
- * 
+ *
  * @since 3.3
  * @see DetailPaneManagerTests
  * @see SimpleDetailPane
@@ -61,7 +61,7 @@
 		}
 		return possibleIDs;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.IDetailPaneFactory#getDefaultDetailPane(org.eclipse.jface.viewers.IStructuredSelection)
 	 */
@@ -90,7 +90,7 @@
 		}
 		return null;
 	}
-	
+
 
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.internal.ui.views.variables.IDetailsFactory#getDescription(java.lang.String)
@@ -103,6 +103,6 @@
 		if (id.equals(SimpleDetailPane.ID)){
 			return SimpleDetailPane.DESCRIPTION;
 		}
-		return null;		
+		return null;
 	}
 }
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/ContributedTestTab1.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/ContributedTestTab1.java
index d77cd77..b39a73f 100755
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/ContributedTestTab1.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/ContributedTestTab1.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/ContributedTestTab2.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/ContributedTestTab2.java
index 90c1973..dd449b8 100755
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/ContributedTestTab2.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/ContributedTestTab2.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -30,7 +30,7 @@
 	public void createControl(Composite parent) {
 		Label label = new Label(parent, SWT.NONE);
 		label.setText("Just testing...");
-		setControl(label);		
+		setControl(label);
 	}
 
 	/**
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/ContributedTestTab3.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/ContributedTestTab3.java
index a1365ab..a1d19d9 100755
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/ContributedTestTab3.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/ContributedTestTab3.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/ParticipantLaunchShortcut.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/ParticipantLaunchShortcut.java
index 1f9975d..7ed2cb1 100644
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/ParticipantLaunchShortcut.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/ParticipantLaunchShortcut.java
@@ -59,7 +59,7 @@
 		catch(CoreException ce) {DebugUIPlugin.log(ce);}
 		return null;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.ILaunchShortcut2#getLaunchableResource(org.eclipse.jface.viewers.ISelection)
 	 */
@@ -115,6 +115,6 @@
 			}
 		}
 		catch(CoreException ce) {DebugPlugin.log(ce);}
-		
+
 	}
 }
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/TestJavaApplicationTabGroup.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/TestJavaApplicationTabGroup.java
index f493298..64006fa 100755
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/TestJavaApplicationTabGroup.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/TestJavaApplicationTabGroup.java
@@ -4,13 +4,13 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jdt.debug.testplugin.launching;
 
- 
+
 import org.eclipse.debug.ui.AbstractLaunchConfigurationTabGroup;
 import org.eclipse.debug.ui.ILaunchConfigurationDialog;
 import org.eclipse.debug.ui.ILaunchConfigurationTab;
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/TestLaunchDelegate.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/TestLaunchDelegate.java
index 6accbd0..97c0793 100755
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/TestLaunchDelegate.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/TestLaunchDelegate.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -26,13 +26,13 @@
 
 /**
  * Tests delegation to create a launch object.
- * 
+ *
  * @since 3.0
  */
 public class TestLaunchDelegate implements ILaunchConfigurationDelegate2 {
-	
+
 	private ILaunch fLaunch = null;
-	
+
 	/**
 	 * @see org.eclipse.debug.core.model.ILaunchConfigurationDelegate2#getLaunch(org.eclipse.debug.core.ILaunchConfiguration, java.lang.String)
 	 */
@@ -41,7 +41,7 @@
 		fLaunch = new Launch(configuration, mode, null);
 		return fLaunch;
 	}
-	
+
 	/**
 	 * @see org.eclipse.debug.core.model.ILaunchConfigurationDelegate#launch(org.eclipse.debug.core.ILaunchConfiguration, java.lang.String, org.eclipse.debug.core.ILaunch, org.eclipse.core.runtime.IProgressMonitor)
 	 */
@@ -67,7 +67,7 @@
 	public boolean buildForLaunch(ILaunchConfiguration configuration, String mode, IProgressMonitor monitor) throws CoreException {
 		return true;
 	}
-	
+
 	/**
 	 * @see org.eclipse.debug.core.model.ILaunchConfigurationDelegate2#finalLaunchCheck(org.eclipse.debug.core.ILaunchConfiguration, java.lang.String, org.eclipse.core.runtime.IProgressMonitor)
 	 */
@@ -75,7 +75,7 @@
 	public boolean finalLaunchCheck(ILaunchConfiguration configuration, String mode, IProgressMonitor monitor) {
 		return true;
 	}
-	
+
 	/**
 	 * @see org.eclipse.debug.core.model.ILaunchConfigurationDelegate2#preLaunchCheck(org.eclipse.debug.core.ILaunchConfiguration, java.lang.String, org.eclipse.core.runtime.IProgressMonitor)
 	 */
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/TestLaunchDelegate1.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/TestLaunchDelegate1.java
index 9e9383c..b2f7206 100755
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/TestLaunchDelegate1.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/TestLaunchDelegate1.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,7 +18,7 @@
 
 /**
  * Dummy launch delegate class that applies to mode 'alternate2' and the local java launch config type
- * 
+ *
  * @since 3.3
  */
 public class TestLaunchDelegate1 implements ILaunchConfigurationDelegate {
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/TestLaunchDelegate2.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/TestLaunchDelegate2.java
index 808cf11..5872bb7 100755
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/TestLaunchDelegate2.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/TestLaunchDelegate2.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,7 +18,7 @@
 
 /**
  * Dummy launch delegate class that applies to mode 'alternate2' and the local java launch config type
- * 
+ *
  * @since 3.3
  */
 public class TestLaunchDelegate2 implements ILaunchConfigurationDelegate {
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/TestLaunchShortcut.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/TestLaunchShortcut.java
index f691249..7766ad1 100755
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/TestLaunchShortcut.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/TestLaunchShortcut.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/TestModeLaunchDelegate.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/TestModeLaunchDelegate.java
index d87eff5..441202c 100755
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/TestModeLaunchDelegate.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/TestModeLaunchDelegate.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -24,7 +24,7 @@
  * Contributed for local java application launch configs.
  */
 public class TestModeLaunchDelegate implements ILaunchConfigurationDelegate {
-	
+
 	// the test case to call back when launch is invoked
 	private static LaunchModeTests fgTestCase;
 
@@ -36,10 +36,10 @@
 			if (fgTestCase == null) {
 				throw new CoreException(new Status(IStatus.ERROR, "org.eclipse.jdt.debug.tests",
 				 0, "No test case registered.", null));
-			} 
+			}
 			fgTestCase.launch(configuration, mode);
 	}
-	
+
 	/**
 	 * @param testCase
 	 */
diff --git a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/TestTabGroup.java b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/TestTabGroup.java
index 968986b..62b788a 100644
--- a/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/TestTabGroup.java
+++ b/org.eclipse.jdt.debug.tests/test plugin/org/eclipse/jdt/debug/testplugin/launching/TestTabGroup.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/test/stepping/ForceReturnTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/test/stepping/ForceReturnTests.java
index 35cd42d..839e737 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/test/stepping/ForceReturnTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/test/stepping/ForceReturnTests.java
@@ -25,30 +25,30 @@
 
 /**
  * Tests forcing return from method.
- * 
+ *
  * @since 3.3
  */
 public class ForceReturnTests extends AbstractDebugTest {
 
 	/**
 	 * Creates test case.
-	 * 
+	 *
 	 * @param name test name
 	 */
 	public ForceReturnTests(String name) {
 		super(name);
 	}
-	
+
 	/**
 	 * Tests forcing the return of an integer from top stack frame
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testForceIntReturnTopFrame() throws Exception {
 		String typeName = "ForceReturnTests";
 		ILineBreakpoint bp2 = createLineBreakpoint(22, typeName);
 		ILineBreakpoint bp = createLineBreakpoint(31, typeName);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp, false);
@@ -75,19 +75,19 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * Tests forcing the return of an integer from non-top stack frame
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testForceIntReturn() throws Exception {
 		String typeName = "ForceReturnTestsTwo";
 		ILineBreakpoint bp2 = createLineBreakpoint(23, typeName);
 		ILineBreakpoint bp = createLineBreakpoint(37, typeName);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp, false);
@@ -116,19 +116,19 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}	
-	
+		}
+	}
+
 	/**
 	 * Tests forcing the return of a string from top frame
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testForceStringReturnTopFrame() throws Exception {
 		String typeName = "ForceReturnTests";
 		ILineBreakpoint bp2 = createLineBreakpoint(24, typeName);
 		ILineBreakpoint bp = createLineBreakpoint(36, typeName);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp, false);
@@ -156,19 +156,19 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}	
-	
+		}
+	}
+
 	/**
 	 * Tests forcing the return of a string from a non top frame
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testForceStringReturn() throws Exception {
 		String typeName = "ForceReturnTestsTwo";
 		ILineBreakpoint bp2 = createLineBreakpoint(25, typeName);
 		ILineBreakpoint bp = createLineBreakpoint(46, typeName);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp, false);
@@ -197,19 +197,19 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}		
+		}
+	}
 
 	/**
 	 * Tests forcing the return of an object from top frame.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testForceObjectReturnTopFrame() throws Exception {
 		String typeName = "ForceReturnTests";
 		ILineBreakpoint bp2 = createLineBreakpoint(26, typeName);
 		ILineBreakpoint bp = createLineBreakpoint(43, typeName);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp, false);
@@ -237,19 +237,19 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * Tests forcing the return of an object from non-top frame.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testForceObjectReturn() throws Exception {
 		String typeName = "ForceReturnTestsTwo";
 		ILineBreakpoint bp2 = createLineBreakpoint(27, typeName);
 		ILineBreakpoint bp = createLineBreakpoint(56, typeName);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp, false);
@@ -278,18 +278,18 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}	
-	
+		}
+	}
+
 	/**
 	 * Tests that an incompatible type causes an exception in top frame
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testIncompatibleReturnTypeTopFrame() throws Exception {
 		String typeName = "ForceReturnTests";
 		ILineBreakpoint bp = createLineBreakpoint(43, typeName);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp, false);
@@ -309,18 +309,18 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}	
-	
+		}
+	}
+
 	/**
 	 * Tests that an incompatible type causes an exception in non top frame
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testIncompatibleReturnType() throws Exception {
 		String typeName = "ForceReturnTestsTwo";
 		ILineBreakpoint bp = createLineBreakpoint(46, typeName);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp, false);
@@ -341,6 +341,6 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}		
+		}
+	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/test/stepping/StepFilterTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/test/stepping/StepFilterTests.java
index 12a6ec5..ea0b6b8 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/test/stepping/StepFilterTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/test/stepping/StepFilterTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jesper Steen Moller - Enhancement 254677 - filter getters/setters
@@ -36,7 +36,7 @@
 	public StepFilterTests(String name) {
 		super(name);
 		fOriginalActiveFilters = getPrefStore().getString(IJDIPreferencesConstants.PREF_ACTIVE_FILTERS_LIST);
-		fOriginalInactiveFilters = getPrefStore().getString(IJDIPreferencesConstants.PREF_INACTIVE_FILTERS_LIST);		
+		fOriginalInactiveFilters = getPrefStore().getString(IJDIPreferencesConstants.PREF_INACTIVE_FILTERS_LIST);
 	}
 
 	/**
@@ -48,7 +48,7 @@
 		String typeName = "StepFilterOne";
 		ILineBreakpoint bp = createLineBreakpoint(23, typeName);
 		bp.setEnabled(true);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp, true);
@@ -61,14 +61,14 @@
 			}
 			assertEquals("Wrong receiving type", "StepFilterOne", recTypeName);
 			int lineNumber = stackFrame.getLineNumber();
-			assertEquals("Wrong line number", 24, lineNumber);			
+			assertEquals("Wrong line number", 24, lineNumber);
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 			resetStepFilters();
-		}				
+		}
 	}
-	
+
 	/**
 	 * Tests a simple step filter
 	 * @throws Exception
@@ -78,7 +78,7 @@
 		String typeName = "StepFilterOne";
 		ILineBreakpoint bp = createLineBreakpoint(24, typeName);
 		bp.setEnabled(true);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp, true);
@@ -91,14 +91,14 @@
 			}
 			assertEquals("Wrong receiving type", "StepFilterOne", recTypeName);
 			int lineNumber = stackFrame.getLineNumber();
-			assertEquals("Wrong line number", 25, lineNumber);			
+			assertEquals("Wrong line number", 25, lineNumber);
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 			resetStepFilters();
-		}				
-	}	
-	
+		}
+	}
+
 	/**
 	 * Tests a step filter that is not active
 	 * @throws Exception
@@ -108,7 +108,7 @@
 		String typeName = "StepFilterOne";
 		ILineBreakpoint bp = createLineBreakpoint(23, typeName);
 		bp.setEnabled(true);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp, false);
@@ -121,14 +121,14 @@
 			}
 			assertEquals("Wrong receiving type", "StepFilterTwo", recTypeName);
 			int lineNumber = stackFrame.getLineNumber();
-			assertEquals("Wrong line number", 25, lineNumber);			
+			assertEquals("Wrong line number", 25, lineNumber);
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 			resetStepFilters();
-		}						
+		}
 	}
-	
+
 	/**
 	 * Tests a deep step filter, i.e. a step filter that is more than one stack frame deep on the current
 	 * suspended thread
@@ -139,7 +139,7 @@
 		String typeName = "StepFilterOne";
 		ILineBreakpoint bp = createLineBreakpoint(24, typeName);
 		bp.setEnabled(true);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp, false);
@@ -152,13 +152,13 @@
 			}
 			assertEquals("Wrong receiving type", "StepFilterThree", recTypeName);
 			int lineNumber = stackFrame.getLineNumber();
-			assertEquals("Wrong line number", 19, lineNumber);			
+			assertEquals("Wrong line number", 19, lineNumber);
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 			resetStepFilters();
-		}				
-	}	
+		}
+	}
 
 	/**
 	 * Tests a simple step return filter
@@ -169,7 +169,7 @@
 		String typeName = "StepFilterOne";
 		ILineBreakpoint bp = createLineBreakpoint(19, "StepFilterThree");
 		bp.setEnabled(true);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp, false);
@@ -182,14 +182,14 @@
 			}
 			assertEquals("Wrong receiving type", "StepFilterOne", recTypeName);
 			int lineNumber = stackFrame.getLineNumber();
-			assertEquals("Wrong line number", 23, lineNumber);			
+			assertEquals("Wrong line number", 23, lineNumber);
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 			resetStepFilters();
-		}				
+		}
 	}
-	
+
 	/**
 	 * Tests a simple step over filter
 	 * @throws Exception
@@ -199,7 +199,7 @@
 		String typeName = "StepFilterOne";
 		ILineBreakpoint bp = createLineBreakpoint(19, "StepFilterThree");
 		bp.setEnabled(true);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp, false);
@@ -212,13 +212,13 @@
 			}
 			assertEquals("Wrong receiving type", "StepFilterOne", recTypeName);
 			int lineNumber = stackFrame.getLineNumber();
-			assertEquals("Wrong line number", 23, lineNumber);			
+			assertEquals("Wrong line number", 23, lineNumber);
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 			resetStepFilters();
-		}				
-	}	
+		}
+	}
 
 	/**
 	 * Tests filtering of getter methods
@@ -230,7 +230,7 @@
 		String typeName = "StepFilterFour";
 		ILineBreakpoint bp = createLineBreakpoint(91, typeName);
 		bp.setEnabled(true);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp, false);
@@ -238,22 +238,22 @@
 			stackFrame = (IJavaStackFrame)stepIntoWithFilters(stackFrame).getTopStackFrame();
 			String recTypeName = stackFrame.getReceivingTypeName();
 			assertEquals("Wrong receiving type", "StepFilterFour", recTypeName);
-			assertEquals("Wrong line number", 92, stackFrame.getLineNumber());			
+			assertEquals("Wrong line number", 92, stackFrame.getLineNumber());
 			stackFrame = (IJavaStackFrame)stepIntoWithFilters(stackFrame).getTopStackFrame();
 			stackFrame = (IJavaStackFrame)stepIntoWithFilters(stackFrame).getTopStackFrame();
 			stackFrame = (IJavaStackFrame)stepIntoWithFilters(stackFrame).getTopStackFrame();
 			stackFrame = (IJavaStackFrame)stepIntoWithFilters(stackFrame).getTopStackFrame();
-			assertEquals("Wrong line number", 96, stackFrame.getLineNumber());			
+			assertEquals("Wrong line number", 96, stackFrame.getLineNumber());
 			// now step into the line with the call to sum() which is not a simple getter
 			stackFrame = (IJavaStackFrame)stepIntoWithFilters(stackFrame).getTopStackFrame();
-			assertEquals("Wrong line number", 71, stackFrame.getLineNumber());			
-			assertEquals("Should be in sum()", "sum", stackFrame.getMethodName());			
+			assertEquals("Wrong line number", 71, stackFrame.getLineNumber());
+			assertEquals("Should be in sum()", "sum", stackFrame.getMethodName());
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 			resetStepFilters();
-		}				
-	}	
+		}
+	}
 
 	/**
 	 * Tests filtering of setter methods
@@ -265,7 +265,7 @@
 		String typeName = "StepFilterFour";
 		ILineBreakpoint bp = createLineBreakpoint(84, typeName);
 		bp.setEnabled(true);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp, false);
@@ -277,22 +277,22 @@
 			stackFrame = (IJavaStackFrame)stepIntoWithFilters(stackFrame).getTopStackFrame();
 			stackFrame = (IJavaStackFrame)stepIntoWithFilters(stackFrame).getTopStackFrame();
 			stackFrame = (IJavaStackFrame)stepIntoWithFilters(stackFrame).getTopStackFrame();
-			assertEquals("Wrong line number", 91, stackFrame.getLineNumber());			
+			assertEquals("Wrong line number", 91, stackFrame.getLineNumber());
 			// now step into the line with the call to getI() which is a simple getter
 			// since we're not filtering getters, we should end up in getI
 			stackFrame = (IJavaStackFrame)stepIntoWithFilters(stackFrame).getTopStackFrame();
-			assertEquals("Wrong line number", 34, stackFrame.getLineNumber());			
-			assertEquals("Should be in getI()", "getI", stackFrame.getMethodName());			
+			assertEquals("Wrong line number", 34, stackFrame.getLineNumber());
+			assertEquals("Should be in getI()", "getI", stackFrame.getMethodName());
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 			resetStepFilters();
-		}				
-	}	
+		}
+	}
 
 	/**
 	 * Tests filtering from a contributed filter
-	 * 
+	 *
 	 * @throws Exception
 	 * @since 3.8.300
 	 */
@@ -334,7 +334,7 @@
 	 * @return
 	 */
 	protected IPreferenceStore getPrefStore() {
-		return JDIDebugUIPlugin.getDefault().getPreferenceStore();		
+		return JDIDebugUIPlugin.getDefault().getPreferenceStore();
 	}
 }
 
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/test/stepping/StepIntoSelectionTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/test/stepping/StepIntoSelectionTests.java
index b8af4da..15f509d 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/test/stepping/StepIntoSelectionTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/test/stepping/StepIntoSelectionTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Ivan Popov - [Bug 193488] org.eclipse.jdt.debug.test.stepping.StepIntoSelectionTests
@@ -26,136 +26,136 @@
  * Tests 'step into selection'
  */
 public class StepIntoSelectionTests extends AbstractDebugTest {
-	
+
 	/**
-	 * Constructor 
+	 * Constructor
 	 */
 	public StepIntoSelectionTests(String name) {
 		super(name);
-	}	
-	
+	}
+
 	/**
 	 * Step into 'new StepIntoSelectionClass()'
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testStepIntoSourceConstructor() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.StepIntoSelectionClass";
-		createLineBreakpoint(21, typeName);		
-		
+		createLineBreakpoint(21, typeName);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			ICompilationUnit cu = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "StepIntoSelectionClass.java");
 			IType type = cu.getType("StepIntoSelectionClass");
 			IMethod method = type.getMethod("StepIntoSelectionClass", new String[0]);
 			assertTrue("Could not find constructor", method.exists());
-			
+
 			StepIntoSelectionHandler handler = new StepIntoSelectionHandler(thread, (IJavaStackFrame)thread.getTopStackFrame(), method);
 			DebugElementEventWaiter waiter = new DebugElementEventWaiter(DebugEvent.SUSPEND, thread);
 			handler.step();
 			Object source = waiter.waitForEvent();
 			assertEquals("Step did not complete", thread, source);
 			thread = (IJavaThread)source;
-			
+
 			IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
 			assertEquals("Should be in constructor", "<init>", frame.getMethodName());
-			
-						
+
+
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * Step into 'step()'
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testStepIntoSourceMethod() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.StepIntoSelectionClass";
-		createLineBreakpoint(23, typeName);		
-		
+		createLineBreakpoint(23, typeName);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			ICompilationUnit cu = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "StepIntoSelectionClass.java");
 			IType type = cu.getType("StepIntoSelectionClass");
 			IMethod method = type.getMethod("step", new String[0]);
 			assertTrue("Could not find method 'step'", method.exists());
-			
+
 			StepIntoSelectionHandler handler = new StepIntoSelectionHandler(thread, (IJavaStackFrame)thread.getTopStackFrame(), method);
 			DebugElementEventWaiter waiter = new DebugElementEventWaiter(DebugEvent.SUSPEND, thread);
 			handler.step();
 			Object source = waiter.waitForEvent();
 			assertEquals("Step did not complete", thread, source);
 			thread = (IJavaThread)source;
-			
+
 			IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
 			assertEquals("Should be in method 'step'", "step", frame.getMethodName());
-			
-						
+
+
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * Step into 'method1(int[], String[])'
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testStepIntoSourceMethodWithParameters() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.StepIntoSelectionClass";
-		createLineBreakpoint(36, typeName);		
-		
+		createLineBreakpoint(36, typeName);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			ICompilationUnit cu = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "StepIntoSelectionClass.java");
 			IType type = cu.getType("StepIntoSelectionClass");
 			IMethod method = type.getMethod("method1", new String[] {"[I", "[QString;"});
 			assertTrue("Could not find method 'method1'", method.exists());
-			
+
 			StepIntoSelectionHandler handler = new StepIntoSelectionHandler(thread, (IJavaStackFrame)thread.getTopStackFrame(), method);
 			DebugElementEventWaiter waiter = new DebugElementEventWaiter(DebugEvent.SUSPEND, thread);
 			handler.step();
 			Object source = waiter.waitForEvent();
 			assertEquals("Step did not complete", thread, source);
 			thread = (IJavaThread)source;
-			
+
 			IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
 			assertEquals("Should be in method 'step'", "method1", frame.getMethodName());
-			
-						
+
+
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * Step into 'Vector.addElement(Object)'
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testStepIntoBinaryMethod() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.StepIntoSelectionClass";
-		createLineBreakpoint(34, typeName);		
-		
+		createLineBreakpoint(34, typeName);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			IType type = get14Project().findType("java.util.Vector");
 			IMethod method = type.getMethod("addElement", new String[]{"Ljava.lang.Object;"});
 			//for 1.5 compliance, addElement has a type 'E' not an object as the param type
@@ -163,56 +163,56 @@
 				method = type.getMethod("addElement", new String[] {"TE;"});
 			}
 			assertTrue("Could not find method 'addElement'", method.exists());
-			
+
 			StepIntoSelectionHandler handler = new StepIntoSelectionHandler(thread, (IJavaStackFrame)thread.getTopStackFrame(), method);
 			DebugElementEventWaiter waiter = new DebugElementEventWaiter(DebugEvent.SUSPEND, thread);
 			handler.step();
 			Object source = waiter.waitForEvent();
 			assertEquals("Step did not complete", thread, source);
 			thread = (IJavaThread)source;
-			
+
 			IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
 			assertEquals("Should be in method 'addElement'", "addElement", frame.getMethodName());
-			
-						
+
+
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}	
+		}
+	}
 
 	/**
 	 * Step into 'new Integer(i)'
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testStepIntoBinaryConstructor() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.StepIntoSelectionClass";
-		createLineBreakpoint(34, typeName);		
-		
+		createLineBreakpoint(34, typeName);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			IType type = get14Project().findType("java.lang.Integer");
 			IMethod method = type.getMethod("Integer", new String[]{"I"});
 			assertTrue("Could not find method constructor", method.exists());
-			
+
 			StepIntoSelectionHandler handler = new StepIntoSelectionHandler(thread, (IJavaStackFrame)thread.getTopStackFrame(), method);
 			DebugElementEventWaiter waiter = new DebugElementEventWaiter(DebugEvent.SUSPEND, thread);
 			handler.step();
 			Object source = waiter.waitForEvent();
 			assertEquals("Step did not complete", thread, source);
 			thread = (IJavaThread)source;
-			
+
 			IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
 			assertEquals("Should be in constructor", "<init>", frame.getMethodName());
-			
-						
+
+
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}	
+		}
+	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/test/stepping/StepIntoSelectionWithGenerics.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/test/stepping/StepIntoSelectionWithGenerics.java
index b8e0fa0..e060991 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/test/stepping/StepIntoSelectionWithGenerics.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/test/stepping/StepIntoSelectionWithGenerics.java
@@ -32,7 +32,7 @@
 	private String pname = "a.b.c";
 	private String jname = "StepIntoSelectionWithGenerics.java";
 	private String mname = "hello";
-	
+
 	/**
 	 * Constructor
 	 */
@@ -47,19 +47,19 @@
 	protected IJavaProject getProjectContext() {
 		return get15Project();
 	}
-	
+
 	/**
 	 * Tests stepping into a method of a top-level class that is generified
 	 * @throws Exception
 	 */
 	public void testStepIntoSelection1() throws Exception {
-		createLineBreakpoint(30, qtypename);		
-		
+		createLineBreakpoint(30, qtypename);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(qtypename);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			ICompilationUnit cu = getCompilationUnit(get15Project(), "src", pname, jname);
 			IJavaProject jp = cu.getJavaProject();
 			NullProgressMonitor monitor = new NullProgressMonitor();
@@ -67,37 +67,37 @@
 			assertTrue("The top-level type"+qtypename+" must exist", type.exists());
 			IMethod method = type.getMethod(mname, new String[0]);
 			assertTrue("Could not find method "+mname+" in type "+qtypename, method.exists());
-			
+
 			StepIntoSelectionHandler handler = new StepIntoSelectionHandler(thread, (IJavaStackFrame)thread.getTopStackFrame(), method);
 			DebugElementEventWaiter waiter = new DebugElementEventWaiter(DebugEvent.SUSPEND, thread);
 			handler.step();
 			Object source = waiter.waitForEvent();
 			assertEquals("Step did not complete", thread, source);
 			thread = (IJavaThread)source;
-			
+
 			IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
 			assertEquals("Should be in StepIntoSelectionWithGenerics."+mname, mname, frame.getMethodName());
 			assertEquals("Should be stopped on line", 26, frame.getLineNumber());
-						
+
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * Tests stepping into a method of an inner class that is generified
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testStepIntoSelection2() throws Exception {
-		createLineBreakpoint(31, qtypename);		
-		
+		createLineBreakpoint(31, qtypename);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(qtypename);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			ICompilationUnit cu = getCompilationUnit(get15Project(), "src", pname, jname);
 			IJavaProject jp = cu.getJavaProject();
 			NullProgressMonitor monitor = new NullProgressMonitor();
@@ -107,18 +107,18 @@
 			assertNotNull("The iner type InnerClazz must not be null", type);
 			IMethod method = type.getMethod(mname, new String[0]);
 			assertTrue("Could not find method "+mname+" in type InnerClazz", method.exists());
-			
+
 			StepIntoSelectionHandler handler = new StepIntoSelectionHandler(thread, (IJavaStackFrame)thread.getTopStackFrame(), method);
 			DebugElementEventWaiter waiter = new DebugElementEventWaiter(DebugEvent.SUSPEND, thread);
 			handler.step();
 			Object source = waiter.waitForEvent();
 			assertEquals("Step did not complete", thread, source);
 			thread = (IJavaThread)source;
-			
+
 			IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
 			assertEquals("Should be in InnerClazz."+mname, mname, frame.getMethodName());
 			assertEquals("Should be stopped on line", 21, frame.getLineNumber());
-						
+
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
@@ -127,17 +127,17 @@
 
 	/**
 	 * Tests stepping into a method of an inner-inner class that is generified
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testStepIntoSelection3() throws Exception {
-		createLineBreakpoint(32, qtypename);		
-		
+		createLineBreakpoint(32, qtypename);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(qtypename);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			ICompilationUnit cu = getCompilationUnit(get15Project(), "src", pname, jname);
 			IJavaProject jp = cu.getJavaProject();
 			NullProgressMonitor monitor = new NullProgressMonitor();
@@ -147,18 +147,18 @@
 			assertNotNull("The inner type InnerClazz2 must not be null", type);
 			IMethod method = type.getMethod(mname, new String[0]);
 			assertTrue("Could not find method "+mname+" in type InnerClazz2", method.exists());
-			
+
 			StepIntoSelectionHandler handler = new StepIntoSelectionHandler(thread, (IJavaStackFrame)thread.getTopStackFrame(), method);
 			DebugElementEventWaiter waiter = new DebugElementEventWaiter(DebugEvent.SUSPEND, thread);
 			handler.step();
 			Object source = waiter.waitForEvent();
 			assertEquals("Step did not complete", thread, source);
 			thread = (IJavaThread)source;
-			
+
 			IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
 			assertEquals("Should be in InnerClazz2."+mname, mname, frame.getMethodName());
 			assertEquals("Should be stopped on line", 17, frame.getLineNumber());
-						
+
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/test/stepping/StepResultTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/test/stepping/StepResultTests.java
index 1c0fb56..82df334 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/test/stepping/StepResultTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/test/stepping/StepResultTests.java
@@ -85,7 +85,7 @@
 
 	/**
 	 * test that if the step return is aborted by some other break point, no return value of a recursive invocation is shown
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testNoReturnValueAfterAbortedStepReturn() throws Exception {
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/test/stepping/TestContributedStepFilter.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/test/stepping/TestContributedStepFilter.java
index c3d855b..9bf2848 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/test/stepping/TestContributedStepFilter.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/test/stepping/TestContributedStepFilter.java
@@ -20,7 +20,7 @@
 public class TestContributedStepFilter implements IStepFilter {
 
 	/**
-	 * 
+	 *
 	 */
 	public TestContributedStepFilter() {
 	}
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AbstractDebugPerformanceTest.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AbstractDebugPerformanceTest.java
index 48de2f9..a60561e 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AbstractDebugPerformanceTest.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AbstractDebugPerformanceTest.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -28,7 +28,7 @@
 	public AbstractDebugPerformanceTest(String name) {
 		super(name);
 	}
-	
+
 	/**
 	 * Overridden to create a default performance meter for this test case.
 	 * @throws Exception
@@ -54,7 +54,7 @@
 	 * Mark the scenario of this test case
 	 * to be included into the global performance summary. The summary shows
 	 * the given dimension of the scenario and labels the scenario with the short name.
-	 * 
+	 *
 	 * @param shortName a short (shorter than 40 characters) descriptive name of the scenario
 	 * @param dimension the dimension to show in the summary
 	 */
@@ -62,10 +62,10 @@
 		Performance performance= Performance.getDefault();
 		performance.tagAsGlobalSummary(fPerformanceMeter, shortName, new Dimension[] { dimension } );
 	}
-	
+
 	/**
 	 * Sets a degradation comment on this test.
-	 * 
+	 *
 	 * @param comment the reason for degradation.
 	 */
 	public void setDegradationComment(String comment) {
@@ -77,7 +77,7 @@
 	 * Mark the scenario represented by the given PerformanceMeter
 	 * to be included into the global performance summary. The summary shows
 	 * the given dimensions of the scenario and labels the scenario with the short name.
-	 * 
+	 *
 	 * @param shortName a short (shorter than 40 characters) descritive name of the scenario
 	 * @param dimensions an array of dimensions to show in the summary
 	 */
@@ -85,24 +85,24 @@
 		Performance performance= Performance.getDefault();
 		performance.tagAsGlobalSummary(fPerformanceMeter, shortName, dimensions );
 	}
-	
+
 	/**
 	 * Mark the scenario of this test case
 	 * to be included into the component performance summary. The summary shows
 	 * the given dimension of the scenario and labels the scenario with the short name.
-	 * 
+	 *
 	 * @param shortName a short (shorter than 40 characters) descritive name of the scenario
 	 * @param dimension the dimension to show in the summary
 	 */
 	public void tagAsSummary(String shortName, Dimension dimension) {
 		tagAsSummary(shortName, new Dimension[]{dimension});
 	}
-	
+
 	/**
 	 * Mark the scenario of this test case
 	 * to be included into the component performance summary. The summary shows
 	 * the given dimension of the scenario and labels the scenario with the short name.
-	 * 
+	 *
 	 * @param shortName a short (shorter than 40 characters) descritive name of the scenario
 	 * @param dimensions an array of dimensions to show in the summary
 	 */
@@ -110,7 +110,7 @@
 		Performance performance= Performance.getDefault();
 		performance.tagAsSummary(fPerformanceMeter, shortName, dimensions);
 	}
-	
+
 	/**
 	 * Called from within a test case immediately before the code to measure is run.
 	 * It starts capturing of performance data.
@@ -120,18 +120,18 @@
 	protected void startMeasuring() {
 		fPerformanceMeter.start();
 	}
-	
+
 	protected void stopMeasuring() {
 		fPerformanceMeter.stop();
 	}
-	
+
 	protected void commitMeasurements() {
-		fPerformanceMeter.commit(); 
+		fPerformanceMeter.commit();
 	}
 
 	/**
 	 * Asserts default properties of the measurements captured for this test case.
-	 * 
+	 *
 	 * @throws RuntimeException if the properties do not hold
 	 */
 	protected void assertPerformance() {
@@ -142,7 +142,7 @@
 	 * Asserts that the measurement specified by the given dimension
 	 * is within a certain range with respect to some reference value.
 	 * If the specified dimension isn't available, the call has no effect.
-	 * 
+	 *
 	 * @param dim the Dimension to check
 	 * @param lowerPercentage a negative number indicating the percentage the measured value is allowed to be smaller than some reference value
 	 * @param upperPercentage a positive number indicating the percentage the measured value is allowed to be greater than some reference value
@@ -151,7 +151,7 @@
 	protected void assertPerformanceInRelativeBand(Dimension dim, int lowerPercentage, int upperPercentage) {
 		Performance.getDefault().assertPerformanceInRelativeBand(fPerformanceMeter, dim, lowerPercentage, upperPercentage);
 	}
-    
+
     /**
      * Sets a comment to explain performance degradation.
      * @param comment the explanation for a performance degradation.
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AbstractDebugTest.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AbstractDebugTest.java
index c8335ed..6f52d2b 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AbstractDebugTest.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AbstractDebugTest.java
@@ -26,7 +26,6 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import java.util.concurrent.TimeUnit;
 
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IFolder;
@@ -58,6 +57,7 @@
 import org.eclipse.debug.core.ILaunchDelegate;
 import org.eclipse.debug.core.ILaunchManager;
 import org.eclipse.debug.core.model.IBreakpoint;
+import org.eclipse.debug.core.model.IDebugTarget;
 import org.eclipse.debug.core.model.ILineBreakpoint;
 import org.eclipse.debug.core.model.IProcess;
 import org.eclipse.debug.core.model.IThread;
@@ -126,6 +126,7 @@
 import org.eclipse.jdt.debug.tests.core.LiteralTests17;
 import org.eclipse.jdt.debug.tests.refactoring.MemberParser;
 import org.eclipse.jdt.debug.ui.IJavaDebugUIConstants;
+import org.eclipse.jdt.internal.debug.core.model.JDIDebugTarget;
 import org.eclipse.jdt.internal.debug.eval.ast.engine.ASTEvaluationEngine;
 import org.eclipse.jdt.internal.debug.ui.BreakpointUtils;
 import org.eclipse.jdt.internal.debug.ui.IJDIPreferencesConstants;
@@ -174,7 +175,7 @@
  */
 @SuppressWarnings("deprecation")
 public abstract class AbstractDebugTest extends TestCase implements  IEvaluationListener {
-	
+
 	public static final String MULTI_OUTPUT_PROJECT_NAME = "MultiOutput";
 	public static final String BOUND_EE_PROJECT_NAME = "BoundEE";
 	public static final String ONE_FOUR_PROJECT_NAME = "DebugTests";
@@ -190,10 +191,10 @@
 			"HitCountLooper", "CompileError", "MultiThreadedLoop", "HitCountException", "MultiThreadedException", "MultiThreadedList", "MethodLoop", "StepFilterOne",
 			"StepFilterFour", "EvalArrayTests", "EvalSimpleTests", "EvalTypeTests", "EvalNestedTypeTests", "EvalTypeHierarchyTests",
 			"EvalAnonymousClassVariableTests", "WorkingDirectoryTest",
-			"OneToTen", "OneToTenPrint", "FloodConsole", "ConditionalStepReturn", "VariableChanges", "DefPkgReturnType", "InstanceFilterObject", "org.eclipse.debug.tests.targets.CallStack", 
-			"org.eclipse.debug.tests.targets.ThreadStack", "org.eclipse.debug.tests.targets.HcrClass", "org.eclipse.debug.tests.targets.StepIntoSelectionClass", 
-			"WatchItemTests", "ArrayTests", "ByteArrayTests", "PerfLoop", "Console80Chars", "ConsoleStackTrace", "ConsoleVariableLineLength", "StackTraces", 
-			"ConsoleInput", "PrintConcatenation", "VariableDetails", "org.eclipse.debug.tests.targets.ArrayDetailTests", "ArrayDetailTestsDef", "ForceReturnTests", 
+			"OneToTen", "OneToTenPrint", "FloodConsole", "ConditionalStepReturn", "VariableChanges", "DefPkgReturnType", "InstanceFilterObject", "org.eclipse.debug.tests.targets.CallStack",
+			"org.eclipse.debug.tests.targets.ThreadStack", "org.eclipse.debug.tests.targets.HcrClass", "org.eclipse.debug.tests.targets.StepIntoSelectionClass",
+			"WatchItemTests", "ArrayTests", "ByteArrayTests", "PerfLoop", "Console80Chars", "ConsoleStackTrace", "ConsoleVariableLineLength", "StackTraces",
+			"ConsoleInput", "PrintConcatenation", "VariableDetails", "org.eclipse.debug.tests.targets.ArrayDetailTests", "ArrayDetailTestsDef", "ForceReturnTests",
 			"ForceReturnTestsTwo", "LogicalStructures", "BreakpointListenerTest", "LaunchHistoryTest", "LaunchHistoryTest2", "RunnableAppletImpl", "java6.AllInstancesTests",
 			"bug329294", "bug401270", "org.eclipse.debug.tests.targets.HcrClass2", "org.eclipse.debug.tests.targets.HcrClass3", "org.eclipse.debug.tests.targets.HcrClass4",
 			"org.eclipse.debug.tests.targets.HcrClass5", "org.eclipse.debug.tests.targets.HcrClass6", "org.eclipse.debug.tests.targets.HcrClass7", "org.eclipse.debug.tests.targets.HcrClass8",
@@ -206,7 +207,7 @@
 	 * the default timeout
 	 */
 	public static final int DEFAULT_TIMEOUT = 30000;
-	
+
 	//constants
 	protected static final String JAVA = "java"; //$NON-NLS-1$
 	protected static final String JAVA_EXTENSION = ".java"; //$NON-NLS-1$
@@ -215,12 +216,12 @@
 	protected static final String LOCAL_JAVA_APPLICATION_TYPE_ID = "org.eclipse.jdt.launching.localJavaApplication"; //$NON-NLS-1$
 	protected static final String JAVA_LAUNCH_SHORTCUT_ID = "org.eclipse.jdt.debug.ui.localJavaShortcut"; //$NON-NLS-1$
 	protected static final String TEST_LAUNCH_SHORTCUT = "org.eclipse.jdt.debug.tests.testShortCut";
-	
+
 	/**
 	 * an evaluation result
 	 */
 	public IEvaluationResult fEvaluationResult;
-	
+
 	/**
 	 * The last relevant event set - for example, that caused
 	 * a thread to suspend
@@ -236,7 +237,7 @@
 	private static boolean loadedJRE = false;
 	private static boolean loadedMulti = false;
 	private static boolean welcomeClosed = false;
-	
+
 	/**
 	 * Constructor
 	 * @param name
@@ -247,13 +248,10 @@
 		ErrorDialog.AUTOMATED_MODE = true;
 		SafeRunnable.setIgnoreErrors(true);
 	}
-	
-	
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
+
 	@Override
 	protected void setUp() throws Exception {
+		TestUtil.log(IStatus.INFO, getName(), "setUp");
 		super.setUp();
 		setPreferences();
 		IProject pro = ResourcesPlugin.getWorkspace().getRoot().getProject(ONE_FOUR_PROJECT_NAME);
@@ -283,14 +281,14 @@
 	        debugUIPreferences.setValue(IInternalDebugUIConstants.PREF_WAIT_FOR_BUILD, MessageDialogWithToggle.ALWAYS);
 	        debugUIPreferences.setValue(IInternalDebugUIConstants.PREF_CONTINUE_WITH_COMPILE_ERROR, MessageDialogWithToggle.ALWAYS);
 	        debugUIPreferences.setValue(IInternalDebugUIConstants.PREF_SAVE_DIRTY_EDITORS_BEFORE_LAUNCH, MessageDialogWithToggle.NEVER);
-	        
+
 	        String property = System.getProperty("debug.workbenchActivation");
-	        boolean activate = property != null && property.equals("on"); 
+	        boolean activate = property != null && property.equals("on");
 	        debugUIPreferences.setValue(IDebugPreferenceConstants.CONSOLE_OPEN_ON_ERR, activate);
 	        debugUIPreferences.setValue(IDebugPreferenceConstants.CONSOLE_OPEN_ON_OUT, activate);
 	        debugUIPreferences.setValue(IInternalDebugUIConstants.PREF_ACTIVATE_DEBUG_VIEW, activate);
 	        debugUIPreferences.setValue(IDebugUIConstants.PREF_ACTIVATE_WORKBENCH, activate);
-	
+
 	        IPreferenceStore jdiUIPreferences = JDIDebugUIPlugin.getDefault().getPreferenceStore();
 	        // Turn off suspend on uncaught exceptions
 	        jdiUIPreferences.setValue(IJDIPreferencesConstants.PREF_SUSPEND_ON_UNCAUGHT_EXCEPTIONS, false);
@@ -304,7 +302,7 @@
 	        JDIDebugModel.getPreferences().setDefault(JDIDebugModel.PREF_REQUEST_TIMEOUT, 10000);
 	        // turn off monitor information
 	        jdiUIPreferences.setValue(IJavaDebugUIConstants.PREF_SHOW_MONITOR_THREAD_INFO, false);
-	        
+
 	        // turn off workbench heap monitor
 	        PrefUtil.getAPIPreferenceStore().setValue(IWorkbenchPreferenceConstants.SHOW_MEMORY_MONITOR, false);
 	        IWorkbenchWindow[] windows = PlatformUI.getWorkbench().getWorkbenchWindows();
@@ -314,7 +312,7 @@
 	                ((WorkbenchWindow) window).showHeapStatus(false);
 	            }
 	        }
-	        
+
 	        //make sure we are auto-refreshing external workspace changes
 	        IEclipsePreferences node = InstanceScope.INSTANCE.getNode(ResourcesPlugin.PI_RESOURCES);
 	        if(node != null) {
@@ -325,7 +323,7 @@
 	        loadedPrefs = true;
 		}
     }
-	
+
 	/**
 	 * Creates the Java 1.4 compliant project
 	 */
@@ -348,17 +346,17 @@
 		        JavaProjectHelper.importFilesFromDirectory(root, src.getPath(), null);
 		        IPath path = src.getPath().append("A.jar");
 		        JavaProjectHelper.addLibrary(jp, path);
-		        
+
 		        //add a closed project optional classpath entry
 		        //see https://bugs.eclipse.org/bugs/show_bug.cgi?id=380918
 		        IClasspathEntry entry = JavaCore.newProjectEntry(
-		        		new Path(ONE_FOUR_PROJECT_CLOSED_NAME).makeAbsolute(), 
-		        		new IAccessRule[0], 
-		        		false, 
-		        		new IClasspathAttribute[] {JavaCore.newClasspathAttribute(IClasspathAttribute.OPTIONAL, Boolean.TRUE.toString())}, 
+		        		new Path(ONE_FOUR_PROJECT_CLOSED_NAME).makeAbsolute(),
+		        		new IAccessRule[0],
+		        		false,
+		        		new IClasspathAttribute[] {JavaCore.newClasspathAttribute(IClasspathAttribute.OPTIONAL, Boolean.TRUE.toString())},
 		        		false);
 		        JavaProjectHelper.addToClasspath(jp, entry);
-		        
+
 		        // create launch configurations
 		        for (int i = 0; i < LAUNCH_CONFIG_NAMES_1_4.length; i++) {
 		        	cfgs.add(createLaunchConfiguration(jp, LAUNCH_CONFIG_NAMES_1_4[i]));
@@ -382,12 +380,12 @@
 			handleProjectCreationException(e, ONE_FOUR_PROJECT_NAME, jp);
         }
     }
-	
+
 	/**
 	 * Creates the Java 1.5 compliant project
 	 */
 	void assert15Project() {
-		IJavaProject jp = null; 
+		IJavaProject jp = null;
 		ArrayList<ILaunchConfiguration> cfgs = new ArrayList<ILaunchConfiguration>(1);
         try {
 	        if (!loaded15) {
@@ -419,7 +417,7 @@
 			handleProjectCreationException(e, ONE_FIVE_PROJECT_NAME, jp);
         }
 	}
-	
+
 	/**
 	 * Creates the Java 1.7 compliant project
 	 */
@@ -449,7 +447,7 @@
 			handleProjectCreationException(e, ONE_SEVEN_PROJECT_NAME, jp);
         }
 	}
-	
+
 	/**
 	 * Creates the Java 1.8 compliant project
 	 */
@@ -481,12 +479,12 @@
 			handleProjectCreationException(e, ONE_SEVEN_PROJECT_NAME, jp);
         }
 	}
-	
+
 	/**
 	 * Creates the 'BoundJRE' project used for the JRE testing
 	 */
 	synchronized void assertBoundJreProject() {
-		IJavaProject jp = null; 
+		IJavaProject jp = null;
 		try {
 	        if (!loadedJRE) {
 		        jp =JavaProjectHelper.createJavaProject(BOUND_JRE_PROJECT_NAME);
@@ -510,7 +508,7 @@
 			handleProjectCreationException(e, BOUND_JRE_PROJECT_NAME, jp);
         }
 	}
-	
+
 	/**
 	 * Creates the 'BoundEE' project for EE testing
 	 */
@@ -521,7 +519,7 @@
 		        // create project with two src folders and output locations
 		        jp = JavaProjectHelper.createJavaProject(BOUND_EE_PROJECT_NAME);
 		        JavaProjectHelper.addSourceContainer(jp, JavaProjectHelper.SRC_DIR, JavaProjectHelper.BIN_DIR);
-	
+
 		        // add VM specific JRE container
 		        IExecutionEnvironment j2se14 = JavaRuntime.getExecutionEnvironmentsManager().getEnvironment(JavaProjectHelper.J2SE_1_4_EE_NAME);
 		        assertNotNull("Missing J2SE-1.4 environment", j2se14);
@@ -543,7 +541,7 @@
 			handleProjectCreationException(e, BOUND_EE_PROJECT_NAME, jp);
         }
 	}
-	
+
 	/**
 	 * Creates the 'MultiOutput' project for source / binary output testing
 	 */
@@ -555,7 +553,7 @@
 		        jp = JavaProjectHelper.createJavaProject(MULTI_OUTPUT_PROJECT_NAME);
 		        JavaProjectHelper.addSourceContainer(jp, "src1", "bin1");
 		        JavaProjectHelper.addSourceContainer(jp, "src2", "bin2");
-	
+
 		        // add rt.jar
 		        IVMInstall vm = JavaRuntime.getDefaultVMInstall();
 		        assertNotNull("No default JRE", vm);
@@ -576,38 +574,50 @@
 			handleProjectCreationException(e, MULTI_OUTPUT_PROJECT_NAME, jp);
         }
 	}
-	
+
 	/**
 	 * Ensure the welcome screen is closed because in 4.x the debug perspective opens a giant fast-view causing issues
-	 *  
+	 *
 	 * @throws Exception
 	 * @since 3.8
 	 */
 	protected final void assertWelcomeScreenClosed() throws Exception {
 		if(!welcomeClosed && PlatformUI.isWorkbenchRunning()) {
 			final IWorkbench wb = PlatformUI.getWorkbench();
-			if(wb != null) {
-				UIJob job = new UIJob("close welcome screen for debug test suite") {
-					@Override
-					public IStatus runInUIThread(IProgressMonitor monitor) {
-						IWorkbenchWindow window = wb.getActiveWorkbenchWindow();
-						if(window != null) {
-							IIntroManager im = wb.getIntroManager();
-							IIntroPart intro = im.getIntro();
-							if(intro != null) {
-								welcomeClosed = im.closeIntro(intro);
-							}
-						}
-						return Status.OK_STATUS;
-					}
-				};
-				job.setPriority(Job.INTERACTIVE);
-				job.setSystem(true);
-				job.schedule();
+			if (wb == null) {
+				return;
+			}
+			// In UI thread we don't need to run a job
+			if (Display.getCurrent() != null) {
+				closeIntro(wb);
+				return;
+			}
+
+			UIJob job = new UIJob("close welcome screen for debug test suite") {
+				@Override
+				public IStatus runInUIThread(IProgressMonitor monitor) {
+					closeIntro(wb);
+					return Status.OK_STATUS;
+				}
+
+			};
+			job.setPriority(Job.INTERACTIVE);
+			job.setSystem(true);
+			job.schedule();
+		}
+	}
+
+	private static void closeIntro(final IWorkbench wb) {
+		IWorkbenchWindow window = wb.getActiveWorkbenchWindow();
+		if (window != null) {
+			IIntroManager im = wb.getIntroManager();
+			IIntroPart intro = im.getIntro();
+			if (intro != null) {
+				welcomeClosed = im.closeIntro(intro);
 			}
 		}
 	}
-	
+
 	void handleProjectCreationException(Exception e, String pname, IJavaProject jp) {
 		StringWriter buf = new StringWriter();
 		String msg = e.getMessage();
@@ -620,7 +630,7 @@
 		e.printStackTrace(new PrintWriter(buf));
 		fail(buf.toString());
 	}
-	
+
 	/**
 	 * Sets the contents of the given {@link ICompilationUnit} to be the new contents provided
 	 * @param unit
@@ -634,7 +644,7 @@
 		unit.save(null, true);
 		waitForBuild();
 	}
-	
+
 	/**
 	 * Sets the last relevant event set
 	 *
@@ -643,44 +653,44 @@
 	protected void setEventSet(DebugEvent[] set) {
 		fEventSet = set;
 	}
-	
+
 	/**
 	 * Returns the last relevant event set
-	 * 
+	 *
 	 * @return event set
 	 */
 	protected DebugEvent[] getEventSet() {
 		return fEventSet;
 	}
-	
+
 	/**
 	 * Returns the launch manager
-	 * 
+	 *
 	 * @return launch manager
 	 */
 	protected ILaunchManager getLaunchManager() {
 		return DebugPlugin.getDefault().getLaunchManager();
 	}
-	
+
 	/**
 	 * Returns the singleton instance of the <code>LaunchConfigurationManager</code>
-	 * 
+	 *
 	 * @return the singleton instance of the <code>LaunchConfigurationManager</code>
 	 * @since 3.3
 	 */
 	protected LaunchConfigurationManager getLaunchConfigurationManager() {
 		return DebugUIPlugin.getDefault().getLaunchConfigurationManager();
 	}
-	
+
 	/**
 	 * Returns the breakpoint manager
-	 * 
+	 *
 	 * @return breakpoint manager
 	 */
 	protected IBreakpointManager getBreakpointManager() {
 		return DebugPlugin.getDefault().getBreakpointManager();
-	}	
-	
+	}
+
 	/**
 	 * Returns the project context for the current test - each
 	 * test must implement this method
@@ -688,17 +698,17 @@
 	protected IJavaProject getProjectContext() {
 		return get14Project();
 	}
-	
+
 	/**
 	 * Returns the 'DebugTests' project.
-	 * 
+	 *
 	 * @return the test project
 	 */
 	protected IJavaProject get14Project() {
 		assert14Project();
 		return getJavaProject(ONE_FOUR_PROJECT_NAME);
 	}
-	
+
 	/**
 	 * Returns the {@link IBreakpointOrganizer} with the given id or <code>null</code>
 	 * if no such organizer exists
@@ -709,20 +719,20 @@
 	protected IBreakpointOrganizer getOrganizer(String id) {
 		return BreakpointOrganizerManager.getDefault().getOrganizer(id);
 	}
-	
+
 	/**
 	 * Returns the 'OneFive' project.
-	 * 
+	 *
 	 * @return the test project
 	 */
 	protected IJavaProject get15Project() {
 		assert15Project();
 		return getJavaProject(ONE_FIVE_PROJECT_NAME);
 	}
-	
+
 	/**
 	 * Returns the 'OneSeven' project.
-	 * 
+	 *
 	 * @return the test project
 	 */
 	protected IJavaProject get17Project() {
@@ -732,47 +742,47 @@
 
 	/**
 	 * Returns the 'OneSeven' project.
-	 * 
+	 *
 	 * @return the test project
 	 */
 	protected IJavaProject get18Project() {
 		assert18Project();
 		return getJavaProject(ONE_EIGHT_PROJECT_NAME);
 	}
-	
+
 	/**
 	 * Returns the 'BoundJRE' project
-	 * 
+	 *
 	 * @return the test project
 	 */
 	protected IJavaProject getBoundJreProject() {
 		assertBoundJreProject();
 		return getJavaProject(BOUND_JRE_PROJECT_NAME);
 	}
-	
+
 	/**
 	 * Returns the 'BoundEE' project
-	 * 
+	 *
 	 * @return the test project
 	 */
 	protected IJavaProject getBoundEeProject() {
 		assertBoundeEeProject();
 		return getJavaProject(BOUND_EE_PROJECT_NAME);
 	}
-	
+
 	/**
 	 * Returns the 'MultiOutput' project
-	 * 
+	 *
 	 * @return the test project
 	 */
 	protected IJavaProject getMultiOutputProject() {
 		assertMultioutputProject();
 		return getJavaProject(MULTI_OUTPUT_PROJECT_NAME);
 	}
-	
+
 	/**
 	 * Returns the Java project with the given name.
-	 * 
+	 *
 	 * @param name project name
 	 * @return the Java project with the given name
 	 */
@@ -780,14 +790,14 @@
 		IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(name);
 		return JavaCore.create(project);
 	}
-	
+
 	/**
-	 * Creates a new {@link IJavaProject} with the given name and optionally initializing it from the given 
+	 * Creates a new {@link IJavaProject} with the given name and optionally initializing it from the given
 	 * resource path from the testing bundle.
 	 * <br><br>
 	 * The project has the default <code>src</code> and <code>bin</code> folders. It is also created with a default
 	 * <code>launchConfigurations</code> folder.
-	 * 
+	 *
 	 * @param name the name for the project
 	 * @param contentpath the path within the jdt.debug test bundle to initialize the source from
 	 * @param ee the level of execution environment to use
@@ -816,10 +826,10 @@
         assertNotNull("The EE ["+ee+"] does not exist", environment);
 		IPath containerPath = JavaRuntime.newJREContainerPath(environment);
         JavaProjectHelper.addContainerEntry(jp, containerPath);
-        pro = jp.getProject();  
-        
+        pro = jp.getProject();
+
         JavaProjectHelper.updateCompliance(jp, ee);
-        
+
         // create launch configuration folder
         IFolder folder = pro.getFolder("launchConfigurations");
         if (!folder.exists()) {
@@ -827,14 +837,14 @@
         }
         return jp;
 	}
-	
+
 	/**
-	 * Creates a new {@link IJavaProject} with the given name and initializes the contents from the given 
+	 * Creates a new {@link IJavaProject} with the given name and initializes the contents from the given
 	 * resource path from the testing bundle.
 	 * <br><br>
 	 * The project has the default <code>src</code> and <code>bin</code> folders. It is also created with a default
 	 * <code>launchConfigurations</code> folder.
-	 * 
+	 *
 	 * @param name the name for the project
 	 * @param contentpath the path within the jdt.debug test bundle to initialize the source from
 	 * @param ee the level of execution environment to use
@@ -844,24 +854,25 @@
 	 */
 	protected IJavaProject createJavaProjectClone(String name, String contentpath, String ee, boolean delete) throws Exception {
 		IProject pro = ResourcesPlugin.getWorkspace().getRoot().getProject(name);
+		String owner = "Creating project: " + name;
         if (pro.exists() && delete) {
 			pro.delete(true, true, null);
-			TestUtil.waitForJobs(300, TimeUnit.MINUTES.toMillis(3));
+			TestUtil.waitForJobs(owner, 100, 10000);
 			TestUtil.runEventLoop();
         }
         // create project and import source
         IJavaProject jp = JavaProjectHelper.createJavaProject(name, JavaProjectHelper.BIN_DIR);
-		TestUtil.waitForJobs(100, TimeUnit.MINUTES.toMillis(3));
+		TestUtil.waitForJobs(owner, 100, 10000);
 		TestUtil.runEventLoop();
 
         JavaProjectHelper.addSourceContainer(jp, JavaProjectHelper.SRC_DIR);
-		TestUtil.waitForJobs(100, TimeUnit.MINUTES.toMillis(3));
+		TestUtil.waitForJobs(owner, 100, 10000);
 		TestUtil.runEventLoop();
 
         File root = JavaTestPlugin.getDefault().getFileInPlugin(new Path(contentpath));
         JavaProjectHelper.importFilesFromDirectory(root, jp.getPath(), null);
 
-		TestUtil.waitForJobs(100, TimeUnit.MINUTES.toMillis(3));
+		TestUtil.waitForJobs(owner, 100, 10000);
 		TestUtil.runEventLoop();
 
         // add the EE library
@@ -871,22 +882,22 @@
         assertNotNull("The EE ["+ee+"] does not exist", environment);
 		IPath containerPath = JavaRuntime.newJREContainerPath(environment);
         JavaProjectHelper.addContainerEntry(jp, containerPath);
-        pro = jp.getProject();  
-        
+        pro = jp.getProject();
+
         // create launch configuration folder
         IFolder folder = pro.getFolder("launchConfigurations");
         if (!folder.exists()) {
         	folder.create(true, true, null);
         }
-		TestUtil.waitForJobs(300, TimeUnit.MINUTES.toMillis(3));
+		TestUtil.waitForJobs(owner, 100, 10000);
 		TestUtil.runEventLoop();
         return jp;
 	}
-	
+
 	/**
-	 * Creates a new {@link IProject} with the given name and initializes the contents from the given 
+	 * Creates a new {@link IProject} with the given name and initializes the contents from the given
 	 * resource path from the testing bundle.
-	 * 
+	 *
 	 * @param name the name for the project
 	 * @param contentpath the path within the jdt.debug test bundle to initialize the source from
 	 * @param if an existing project should be deleted
@@ -895,29 +906,30 @@
 	 */
 	protected IProject createProjectClone(String name, String contentpath, boolean delete) throws Exception {
 		IProject pro = ResourcesPlugin.getWorkspace().getRoot().getProject(name);
+		String owner = "Creating project: " + name;
         if (pro.exists() && delete) {
 			pro.delete(true, true, null);
-			TestUtil.waitForJobs(100, TimeUnit.MINUTES.toMillis(3));
+			TestUtil.waitForJobs(owner, 100, 10000);
 			TestUtil.runEventLoop();
         }
         // create project and import source
         IProject pj = JavaProjectHelper.createProject(name);
-		TestUtil.waitForJobs(100, TimeUnit.MINUTES.toMillis(3));
+		TestUtil.waitForJobs(owner, 100, 10000);
 		TestUtil.runEventLoop();
 
         File root = JavaTestPlugin.getDefault().getFileInPlugin(new Path(contentpath));
         JavaProjectHelper.importFilesFromDirectory(root, pj.getFullPath(), null);
-		TestUtil.waitForJobs(100, TimeUnit.MINUTES.toMillis(3));
+		TestUtil.waitForJobs(owner, 100, 10000);
 		TestUtil.runEventLoop();
         return pj;
 	}
-	
+
 	/**
 	 * Returns the launch shortcut with the given id
 	 * @param id
-	 * @return the <code>LaunchShortcutExtension</code> with the given id, 
+	 * @return the <code>LaunchShortcutExtension</code> with the given id,
 	 * or <code>null</code> if none
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	protected LaunchShortcutExtension getLaunchShortcutExtension(String id) {
@@ -931,16 +943,16 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * New to 3.3 is the ability to have multiple delegates for a variety of overlapping mode combinations.
-	 * As such, for tests that launch specific configurations, must be check to ensure that there is a preferred 
+	 * As such, for tests that launch specific configurations, must be check to ensure that there is a preferred
 	 * launch delegate available for the launch in the event there are duplicates. Otherwise the tests
 	 * will hang waiting for a user to select a resolution action.
 	 * @param configuration
 	 * @param modes
 	 * @throws CoreException
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	protected void ensurePreferredDelegate(ILaunchConfiguration configuration, Set<String> modes) throws CoreException {
@@ -950,7 +962,7 @@
 			type.setPreferredDelegate(modes, getDelegateById(type.getIdentifier(), LOCAL_JAVA_APPLICATION_TYPE_ID));
 		}
 	}
-	
+
 	/**
 	 * Returns the LaunchDelegate for the specified ID
 	 * @param delegateId the id of the delegate to search for
@@ -967,10 +979,10 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Returns the source folder with the given name in the given project.
-	 * 
+	 *
 	 * @param project
 	 * @param name source folder name
 	 * @return package fragment root
@@ -979,7 +991,7 @@
 		IProject p = project.getProject();
 		return project.getPackageFragmentRoot(p.getFolder(name));
 	}
-	
+
 	/**
 	 * Returns the <code>IHyperLink</code> at the given offset in the specified document
 	 * or <code>null</code> if the offset does not point to an <code>IHyperLink</code>
@@ -1005,12 +1017,12 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Launches the given configuration and waits for an event. Returns the
 	 * source of the event. If the event is not received, the launch is
 	 * terminated and an exception is thrown.
-	 * 
+	 *
 	 * @param configuration the configuration to launch
 	 * @param waiter the event waiter to use
 	 * @return Object the source of the event
@@ -1019,12 +1031,12 @@
 	protected Object launchAndWait(ILaunchConfiguration configuration, DebugEventWaiter waiter) throws CoreException {
 	    return launchAndWait(configuration, waiter, true);
 	}
-	
+
 	/**
-	 * Launches the given configuration in debug mode and waits for an event. 
-	 * Returns the source of the event. If the event is not received, the 
+	 * Launches the given configuration in debug mode and waits for an event.
+	 * Returns the source of the event. If the event is not received, the
 	 * launch is terminated and an exception is thrown.
-	 * 
+	 *
 	 * @param configuration the configuration to launch
 	 * @param waiter the event waiter to use
 	 * @param register whether to register the launch
@@ -1034,12 +1046,12 @@
 	protected Object launchAndWait(ILaunchConfiguration configuration, DebugEventWaiter waiter, boolean register) throws CoreException {
 		return launchAndWait(configuration, ILaunchManager.DEBUG_MODE, waiter, register);
 	}
-	
+
 	/**
 	 * Launches the given configuration and waits for an event. Returns the
 	 * source of the event. If the event is not received, the launch is
 	 * terminated and an exception is thrown.
-	 * 
+	 *
 	 * @param configuration the configuration to launch
 	 * @param mode the mode to launch the configuration in
 	 * @param waiter the event waiter to use
@@ -1082,16 +1094,16 @@
 		}
 		setEventSet(waiter.getEventSet());
 		assertNotNull("Program did not suspend, launch terminated.", suspendee); //$NON-NLS-1$
-		return suspendee;		
+		return suspendee;
 	}
-	
-	
-	
+
+
+
 	/**
 	 * Launches the type with the given name, and waits for a
 	 * suspend event in that program. Returns the thread in which the suspend
 	 * event occurred.
-	 * 
+	 *
 	 * @param mainTypeName the program to launch
 	 * @return thread in which the first suspend event occurred
 	 */
@@ -1102,50 +1114,50 @@
 	}
 
 	/**
-	 * Launches the given configuration in debug mode, and waits for a 
+	 * Launches the given configuration in debug mode, and waits for a
 	 * suspend event in that program. Returns the thread in which the suspend
 	 * event occurred.
-	 * 
+	 *
 	 * @param config the configuration to launch
 	 * @return thread in which the first suspend event occurred
-	 */	
+	 */
 	protected IJavaThread launchAndSuspend(ILaunchConfiguration config) throws Exception {
 		DebugEventWaiter waiter= new DebugElementKindEventWaiter(DebugEvent.SUSPEND, IJavaThread.class);
 		waiter.setTimeout(DEFAULT_TIMEOUT);
 		Object suspendee = launchAndWait(config, waiter);
-		return (IJavaThread)suspendee;		
+		return (IJavaThread)suspendee;
 	}
-	
+
 	/**
-	 * Launches the type with the given name, and waits for a breakpoint-caused 
+	 * Launches the type with the given name, and waits for a breakpoint-caused
 	 * suspend event in that program. Returns the thread in which the suspend
 	 * event occurred.
-	 * 
+	 *
 	 * @param mainTypeName the program to launch
 	 * @return thread in which the first suspend event occurred
 	 */
 	protected IJavaThread launchToBreakpoint(String mainTypeName) throws Exception {
 		return launchToBreakpoint(getProjectContext(), mainTypeName);
 	}
-	
+
 	/**
-	 * Launches the type with the given name, and waits for a breakpoint-caused 
+	 * Launches the type with the given name, and waits for a breakpoint-caused
 	 * suspend event in that program. Returns the thread in which the suspend
 	 * event occurred.
-	 * 
+	 *
 	 * @param project the project the type is in
 	 * @param mainTypeName the program to launch
 	 * @return thread in which the first suspend event occurred
 	 */
 	protected IJavaThread launchToBreakpoint(IJavaProject project, String mainTypeName) throws Exception {
 		return launchToBreakpoint(project, mainTypeName, true);
-	}	
-	
+	}
+
 	/**
-	 * Launches the type with the given name, and waits for a breakpoint-caused 
+	 * Launches the type with the given name, and waits for a breakpoint-caused
 	 * suspend event in that program. Returns the thread in which the suspend
 	 * event occurred.
-	 * 
+	 *
 	 * @param mainTypeName the program to launch
 	 * @param register whether to register the launch
 	 * @return thread in which the first suspend event occurred
@@ -1153,12 +1165,12 @@
 	protected IJavaThread launchToBreakpoint(String mainTypeName, boolean register) throws Exception {
 		return launchToBreakpoint(getProjectContext(), mainTypeName, register);
 	}
-	
+
 	/**
-	 * Launches the type with the given name, and waits for a breakpoint-caused 
+	 * Launches the type with the given name, and waits for a breakpoint-caused
 	 * suspend event in that program. Returns the thread in which the suspend
 	 * event occurred.
-	 * 
+	 *
 	 * @param mainTypeName the program to launch
 	 * @param register whether to register the launch
 	 * @return thread in which the first suspend event occurred
@@ -1167,43 +1179,43 @@
 		ILaunchConfiguration config = getLaunchConfiguration(project, mainTypeName);
 		assertNotNull("Could not locate launch configuration for " + mainTypeName, config); //$NON-NLS-1$
 		return launchToBreakpoint(config, register);
-	}	
+	}
 
 	/**
-	 * Launches the given configuration in debug mode, and waits for a breakpoint-caused 
+	 * Launches the given configuration in debug mode, and waits for a breakpoint-caused
 	 * suspend event in that program. Returns the thread in which the suspend
 	 * event occurred.
-	 * 
+	 *
 	 * @param config the configuration to launch
 	 * @return thread in which the first suspend event occurred
-	 */	
+	 */
 	protected IJavaThread launchToBreakpoint(ILaunchConfiguration config) throws CoreException {
 	    return launchToBreakpoint(config, true);
 	}
-	
+
 	/**
-	 * Launches the given configuration in debug mode, and waits for a breakpoint-caused 
+	 * Launches the given configuration in debug mode, and waits for a breakpoint-caused
 	 * suspend event in that program. Returns the thread in which the suspend
 	 * event occurred.
-	 * 
+	 *
 	 * @param config the configuration to launch
 	 * @param whether to register the launch
 	 * @return thread in which the first suspend event occurred
-	 */	
+	 */
 	protected IJavaThread launchToBreakpoint(ILaunchConfiguration config, boolean register) throws CoreException {
 		DebugEventWaiter waiter= new DebugElementKindEventDetailWaiter(DebugEvent.SUSPEND, IJavaThread.class, DebugEvent.BREAKPOINT);
 		waiter.setTimeout(DEFAULT_TIMEOUT);
 
 		Object suspendee= launchAndWait(config, waiter, register);
 		assertTrue("suspendee was not an IJavaThread", suspendee instanceof IJavaThread); //$NON-NLS-1$
-		return (IJavaThread)suspendee;		
-	}	
-	
+		return (IJavaThread)suspendee;
+	}
+
 	/**
 	 * Launches the type with the given name, and waits for a terminate
 	 * event in that program. Returns the debug target in which the suspend
 	 * event occurred.
-	 * 
+	 *
 	 * @param mainTypeName the program to launch
 	 * @param timeout the number of milliseconds to wait for a terminate event
 	 * @return debug target in which the terminate event occurred
@@ -1218,42 +1230,42 @@
 	 * Launches the given configuration in debug mode, and waits for a terminate
 	 * event in that program. Returns the debug target in which the terminate
 	 * event occurred.
-	 * 
+	 *
 	 * @param config the configuration to launch
 	 * @param timeout the number of milliseconds to wait for a terminate event
 	 * @return thread in which the first suspend event occurred
-	 */	
+	 */
 	protected IJavaDebugTarget launchAndTerminate(ILaunchConfiguration config, int timeout) throws Exception {
-		return launchAndTerminate(config, timeout, true);	
+		return launchAndTerminate(config, timeout, true);
 	}
-	
+
 	/**
 	 * Launches the given configuration in debug mode, and waits for a terminate
 	 * event in that program. Returns the debug target in which the terminate
 	 * event occurred.
-	 * 
+	 *
 	 * @param config the configuration to launch
 	 * @param timeout the number of milliseconds to wait for a terminate event
 	 * @param register whether to register the launch
 	 * @return thread in which the first suspend event occurred
-	 */	
+	 */
 	protected IJavaDebugTarget launchAndTerminate(ILaunchConfiguration config, int timeout, boolean register) throws Exception {
 		DebugEventWaiter waiter= new DebugElementKindEventWaiter(DebugEvent.TERMINATE, IJavaDebugTarget.class);
 		waiter.setTimeout(timeout);
 
-		Object terminatee = launchAndWait(config, waiter, register);		
+		Object terminatee = launchAndWait(config, waiter, register);
 		assertNotNull("Program did not terminate.", terminatee); //$NON-NLS-1$
 		assertTrue("terminatee is not an IJavaDebugTarget", terminatee instanceof IJavaDebugTarget); //$NON-NLS-1$
 		IJavaDebugTarget debugTarget = (IJavaDebugTarget) terminatee;
 		assertTrue("debug target is not terminated", debugTarget.isTerminated() || debugTarget.isDisconnected()); //$NON-NLS-1$
-		return debugTarget;		
-	}	
-	
+		return debugTarget;
+	}
+
 	/**
 	 * Launches the type with the given name, and waits for a line breakpoint suspend
 	 * event in that program. Returns the thread in which the suspend
 	 * event occurred.
-	 * 
+	 *
 	 * @param mainTypeName the program to launch
 	 * @param bp the breakpoint that should cause a suspend event
 	 * @return thread in which the first suspend event occurred
@@ -1266,7 +1278,7 @@
 	 * Launches the type with the given name, and waits for a line breakpoint suspend
 	 * event in that program. Returns the thread in which the suspend
 	 * event occurred.
-	 * 
+	 *
 	 * @param mainTypeName the program to launch
 	 * @param bp the breakpoint that should cause a suspend event
 	 * @param register whether to register the launch
@@ -1277,16 +1289,16 @@
 		assertNotNull("Could not locate launch configuration for " + mainTypeName, config); //$NON-NLS-1$
 		return launchToLineBreakpoint(config, bp, register);
 	}
-	
+
 	/**
-	 * Launches the given configuration in debug mode, and waits for a line breakpoint 
+	 * Launches the given configuration in debug mode, and waits for a line breakpoint
 	 * suspend event in that program. Returns the thread in which the suspend
 	 * event occurred.
-	 * 
+	 *
 	 * @param config the configuration to launch
 	 * @param bp the breakpoint that should cause a suspend event
 	 * @return thread in which the first suspend event occurred
-	 */	
+	 */
 	protected IJavaThread launchToLineBreakpoint(ILaunchConfiguration config, ILineBreakpoint bp, boolean register) throws Exception {
 		DebugEventWaiter waiter= new DebugElementKindEventDetailWaiter(DebugEvent.SUSPEND, IJavaThread.class, DebugEvent.BREAKPOINT);
 		waiter.setTimeout(DEFAULT_TIMEOUT);
@@ -1302,49 +1314,49 @@
 		int lineNumber = breakpoint.getLineNumber();
 		int stackLine = thread.getTopStackFrame().getLineNumber();
 		assertTrue("line numbers of breakpoint and stack frame do not match", lineNumber == stackLine); //$NON-NLS-1$
-		
-		return thread;		
+
+		return thread;
 	}
-	
+
 	/**
 	 * Returns the standard java launch tab group
 	 * @return the standard java launch tab group
 	 * @throws CoreException
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	protected ILaunchConfigurationTabGroup getJavaLaunchGroup() throws CoreException {
-		ILaunchConfigurationType javaType = getLaunchManager().getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_JAVA_APPLICATION); 
+		ILaunchConfigurationType javaType = getLaunchManager().getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_JAVA_APPLICATION);
 		ILaunchConfigurationTabGroup standardGroup = LaunchConfigurationPresentationManager.getDefault().getTabGroup(javaType, ILaunchManager.DEBUG_MODE);
 		return standardGroup;
 	}
-	
+
 	/**
 	 * Returns an instance of the launch configuration dialog on the the specified launch mode
 	 * @param modeid the id of the mode to open the launch dialog on
 	 * @return an new instance of <code>IlaunchConfigurationDialog</code>
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	protected ILaunchConfigurationDialog getLaunchConfigurationDialog(String modeid) {
 		return new LaunchConfigurationsDialog(null, DebugUIPlugin.getDefault().getLaunchConfigurationManager().getLaunchGroup(modeid));
 	}
-	
+
 	/**
 	 * Resumes the given thread, and waits for another breakpoint-caused suspend event.
 	 * Returns the thread in which the suspend event occurs.
-	 * 
+	 *
 	 * @param thread thread to resume
 	 * @return thread in which the first suspend event occurs
 	 */
 	protected IJavaThread resume(IJavaThread thread) throws Exception {
 	    return resume(thread, DEFAULT_TIMEOUT);
-	}	
-	
+	}
+
 	/**
 	 * Resumes the given thread, and waits for another breakpoint-caused suspend event.
 	 * Returns the thread in which the suspend event occurs.
-	 * 
+	 *
 	 * @param thread thread to resume
 	 * @param timeout timeout in milliseconds
 	 * @return thread in which the first suspend event occurs
@@ -1352,26 +1364,26 @@
 	protected IJavaThread resume(IJavaThread thread, int timeout) throws Exception {
 		DebugEventWaiter waiter= new DebugElementKindEventDetailWaiter(DebugEvent.SUSPEND, IJavaThread.class, DebugEvent.BREAKPOINT);
 		waiter.setTimeout(timeout);
-		
+
 		thread.resume();
 
 		Object suspendee= waiter.waitForEvent();
 		setEventSet(waiter.getEventSet());
 		assertNotNull("Program did not suspend.", suspendee); //$NON-NLS-1$
 		return (IJavaThread)suspendee;
-	}	
-	
+	}
+
 	/**
 	 * Resumes the given thread, and waits for a suspend event caused by the specified
 	 * line breakpoint.  Returns the thread in which the suspend event occurs.
-	 * 
+	 *
 	 * @param thread thread to resume
 	 * @return thread in which the first suspend event occurs
 	 */
 	protected IJavaThread resumeToLineBreakpoint(IJavaThread resumeThread, ILineBreakpoint bp) throws Exception {
 		DebugEventWaiter waiter= new DebugElementKindEventDetailWaiter(DebugEvent.SUSPEND, IJavaThread.class, DebugEvent.BREAKPOINT);
 		waiter.setTimeout(DEFAULT_TIMEOUT);
-		
+
 		resumeThread.resume();
 
 		Object suspendee= waiter.waitForEvent();
@@ -1387,38 +1399,38 @@
 		int lineNumber = breakpoint.getLineNumber();
 		int stackLine = thread.getTopStackFrame().getLineNumber();
 		assertTrue("line numbers of breakpoint and stack frame do not match", lineNumber == stackLine); //$NON-NLS-1$
-		
+
 		return (IJavaThread)suspendee;
-	}	
-	
+	}
+
 	/**
 	 * Resumes the given thread, and waits for the debug target
 	 * to terminate (i.e. finish/exit the program).
-	 * 
+	 *
 	 * @param thread thread to resume
 	 */
 	protected void exit(IJavaThread thread) throws Exception {
 		DebugEventWaiter waiter= new DebugElementKindEventWaiter(DebugEvent.TERMINATE, IProcess.class);
 		waiter.setTimeout(DEFAULT_TIMEOUT);
-		
+
 		thread.resume();
 
 		Object suspendee= waiter.waitForEvent();
 		setEventSet(waiter.getEventSet());
 		assertNotNull("Program did not terminate.", suspendee); //$NON-NLS-1$
-	}	
-		
+	}
+
 	/**
 	 * Resumes the given thread, and waits the associated debug
 	 * target to terminate.
-	 * 
+	 *
 	 * @param thread thread to resume
 	 * @return the terminated debug target
 	 */
 	protected IJavaDebugTarget resumeAndExit(IJavaThread thread) throws Exception {
 		DebugEventWaiter waiter= new DebugElementEventWaiter(DebugEvent.TERMINATE, thread.getDebugTarget());
 		waiter.setTimeout(DEFAULT_TIMEOUT);
-		
+
 		thread.resume();
 
 		Object suspendee= waiter.waitForEvent();
@@ -1427,21 +1439,21 @@
 		IJavaDebugTarget target = (IJavaDebugTarget)suspendee;
 		assertTrue("program should have exited", target.isTerminated() || target.isDisconnected()); //$NON-NLS-1$
 		return target;
-	}	
-		
+	}
+
 	/**
 	 * Returns the launch configuration for the given main type
-	 * 
+	 *
 	 * @param mainTypeName program to launch
 	 * @see ProjectCreationDecorator
 	 */
 	protected ILaunchConfiguration getLaunchConfiguration(String mainTypeName) {
 		return getLaunchConfiguration(getProjectContext(), mainTypeName);
 	}
-	
+
 	/**
 	 * Returns the launch configuration for the given main type
-	 * 
+	 *
 	 * @param mainTypeName program to launch
 	 * @see ProjectCreationDecorator
 	 */
@@ -1451,11 +1463,11 @@
 		assertNotNull("the configuration cannot be null", config);
 		assertTrue("Could not find launch configuration for " + mainTypeName, config.exists()); //$NON-NLS-1$
 		return config;
-	}	
-	
+	}
+
 	/**
 	 * Returns the launch configuration in the specified folder in the given project, for the given main type
-	 * 
+	 *
 	 * @param project the project to look in
 	 * @param containername the name of the container in the specified project to look for the config
 	 * @param mainTypeName program to launch
@@ -1468,7 +1480,7 @@
 		assertTrue("Could not find launch configuration for " + mainTypeName, config.exists()); //$NON-NLS-1$
 		return config;
 	}
-	
+
 	/**
 	 * Returns the corresponding <code>IResource</code> from the <code>IJavaElement</code> with the
 	 * specified name
@@ -1482,12 +1494,12 @@
 		IResource resource = element.getCorrespondingResource();
 		if (resource == null) {
 			resource = getProjectContext().getProject();
-		}		
+		}
 		return resource;
 	}
-	
+
 	/**
-	 * Returns the resource from the specified type or the project from the testing java project in the 
+	 * Returns the resource from the specified type or the project from the testing java project in the
 	 * event there is no resource from the specified type
 	 * @param type
 	 * @return
@@ -1500,14 +1512,14 @@
 		IResource resource = type.getResource();
 		if (resource == null) {
 			resource = type.getJavaProject().getProject();
-		}		
+		}
 		return resource;
-	}	
-	
+	}
+
 	/**
 	 * Creates and returns a line breakpoint at the given line number in the type with the
 	 * given name.
-	 * 
+	 *
 	 * @param lineNumber line number
 	 * @param typeName type name
 	 */
@@ -1516,7 +1528,7 @@
 		assertNotNull("Could not find the requested IType: "+typeName, type);
 		return createLineBreakpoint(type, lineNumber);
 	}
-	
+
 	/**
 	 * Creates am  new java line breakpoint
 	 * @param lineNumber
@@ -1526,7 +1538,7 @@
 	 * @param fullTargetName
 	 * @return a new line breakpoint
 	 */
-	protected IJavaLineBreakpoint createLineBreakpoint(int lineNumber, String root, String packageName, String cuName, 
+	protected IJavaLineBreakpoint createLineBreakpoint(int lineNumber, String root, String packageName, String cuName,
 			String fullTargetName) throws Exception{
 		IJavaProject javaProject = getProjectContext();
 		ICompilationUnit cunit = getCompilationUnit(javaProject, root, packageName, cuName);
@@ -1534,14 +1546,14 @@
 		IType targetType = (IType)(new MemberParser()).getDeepest(cunit,fullTargetName);
 		assertNotNull("did not find requested type", targetType); //$NON-NLS-1$
 		assertTrue("did not find type to install breakpoint in", targetType.exists()); //$NON-NLS-1$
-		
+
 		return createLineBreakpoint(targetType, lineNumber);
 	}
 
-	
+
 	/**
 	 * Creates a line breakpoint in the given type (may be a top level non public type)
-	 * 
+	 *
 	 * @param lineNumber line number to create the breakpoint at
 	 * @param packageName fully qualified package name containing the type, example "a.b.c"
 	 * @param cuName simple name of compilation unit containing the type, example "Something.java"
@@ -1554,10 +1566,10 @@
 		assertNotNull("Could not find the requested IType: "+typeName, type);
 		return createLineBreakpoint(type, lineNumber);
 	}
-	
+
 	/**
 	 * Creates a line breakpoint in the given type at the given line number.
-	 * 
+	 *
 	 * @param type type in which to install the breakpoint
 	 * @param lineNumber line number to install the breakpoint at
 	 * @return line breakpoint
@@ -1592,10 +1604,10 @@
 		forceDeltas(bp);
 		return bp;
 	}
-	
+
 	/**
 	 * Forces marker deltas to be sent based on breakpoint creation.
-	 * 
+	 *
 	 * @param breakpoint
 	 */
 	private void forceDeltas(IBreakpoint breakpoint) throws CoreException {
@@ -1604,11 +1616,11 @@
 			project.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, null);
 		}
 	}
-	
+
 	/**
-	 * Returns the type in the test project based on the given name. The type name may refer to a 
+	 * Returns the type in the test project based on the given name. The type name may refer to a
 	 * top level non public type.
-	 * 
+	 *
 	 * @param packageName package name, example "a.b.c"
 	 * @param cuName simple compilation unit name within the package, example "Something.java"
 	 * @param typeName simple dot qualified type name, example "Something" or "NonPublic" or "Something.Inner"
@@ -1633,11 +1645,11 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Creates and returns a map of java element breakpoint attributes for a breakpoint on the
 	 * given java element, or <code>null</code> if none
-	 * 
+	 *
 	 * @param element java element the breakpoint is associated with
 	 * @return map of breakpoint attributes or <code>null</code>
 	 * @throws Exception
@@ -1658,12 +1670,12 @@
 			return map;
 		}
 		return null;
-	}	
-	
+	}
+
 	/**
 	 * Creates and returns a line breakpoint at the given line number in the type with the
 	 * given name and sets the specified condition on the breakpoint.
-	 * 
+	 *
 	 * @param lineNumber line number
 	 * @param typeName type name
 	 * @param condition condition
@@ -1675,11 +1687,11 @@
 		bp.setConditionSuspendOnTrue(suspendOnTrue);
 		return bp;
 	}
-	
+
 	/**
 	 * Creates and returns a pattern breakpoint at the given line number in the
 	 * source file with the given name.
-	 * 
+	 *
 	 * @param lineNumber line number
 	 * @param sourceName name of source file
 	 * @param pattern the pattern of the class file name
@@ -1687,22 +1699,22 @@
 	protected IJavaPatternBreakpoint createPatternBreakpoint(int lineNumber, String sourceName, String pattern) throws Exception {
 		return JDIDebugModel.createPatternBreakpoint(getProjectContext().getProject(), sourceName, pattern, lineNumber, -1, -1, 0, true, null);
 	}
-	
+
 	/**
 	 * Creates and returns a target pattern breakpoint at the given line number in the
 	 * source file with the given name.
-	 * 
+	 *
 	 * @param lineNumber line number
 	 * @param sourceName name of source file
 	 */
 	protected IJavaTargetPatternBreakpoint createTargetPatternBreakpoint(int lineNumber, String sourceName) throws Exception {
 		return JDIDebugModel.createTargetPatternBreakpoint(getProjectContext().getProject(), sourceName, lineNumber, -1, -1, 0, true, null);
-	}	
-	
+	}
+
 	/**
 	 * Creates and returns a stratum breakpoint at the given line number in the
 	 * source file with the given name.
-	 * 
+	 *
 	 * @param lineNumber line number
 	 * @param sourceName name of source file
 	 * @param stratum the stratum of the source file
@@ -1710,10 +1722,10 @@
 	protected IJavaStratumLineBreakpoint createStratumBreakpoint(int lineNumber, String sourceName, String stratum) throws Exception {
 		return JDIDebugModel.createStratumBreakpoint(getProjectContext().getProject(), stratum, sourceName, null, null, lineNumber, -1, -1, 0, true, null);
 	}
-	
+
 	/**
 	 * Creates and returns a method breakpoint
-	 * 
+	 *
 	 * @param typeNamePattern type name pattern
 	 * @param methodName method name
 	 * @param methodSignature method signature or <code>null</code>
@@ -1722,11 +1734,11 @@
 	 */
 	protected IJavaMethodBreakpoint createMethodBreakpoint(String typeNamePattern, String methodName, String methodSignature, boolean entry, boolean exit) throws Exception {
 		return createMethodBreakpoint(getProjectContext(), typeNamePattern, methodName, methodSignature, entry, exit);
-	}	
-	
+	}
+
 	/**
 	 * Creates and returns a method breakpoint
-	 * 
+	 *
 	 * @param project java project
 	 * @param typeNamePattern type name pattern
 	 * @param methodName method name
@@ -1748,11 +1760,11 @@
 		IJavaMethodBreakpoint bp = JDIDebugModel.createMethodBreakpoint(resource, typeNamePattern, methodName, methodSignature, entry, exit,false, -1, -1, -1, 0, true, map);
 		forceDeltas(bp);
 		return bp;
-	}	
-	
+	}
+
 	/**
 	 * Creates a method breakpoint in a fully specified type (potentially non public).
-	 * 
+	 *
 	 * @param packageName package name containing type to install breakpoint in, example "a.b.c"
 	 * @param cuName simple compilation unit name within package, example "Something.java"
 	 * @param typeName $ qualified type name within compilation unit, example "Something" or
@@ -1778,10 +1790,10 @@
 		forceDeltas(bp);
 		return bp;
 	}
-		
+
 
 	/**
-	 * Creates a MethodBreakPoint on the method specified at the given path. 
+	 * Creates a MethodBreakPoint on the method specified at the given path.
 	 * Syntax:
 	 * Type$InnerType$MethodNameAndSignature$AnonymousTypeDeclarationNumber$FieldName
 	 * eg:<code>
@@ -1792,7 +1804,7 @@
 	 * 			{
 	 * 				Object anon = new Object(){
 	 * 					int anIntField;
-	 * 					String anonTypeMethod() {return "an Example";}				
+	 * 					String anonTypeMethod() {return "an Example";}
 	 * 				}
 	 * 			}
 	 * 		}
@@ -1800,9 +1812,9 @@
 	 * Syntax to get the anonymous toString would be: Foo$Inner$aMethod()V$1$anonTypeMethod()QString
 	 * so, createMethodBreakpoint(packageName, cuName, "Foo$Inner$aMethod()V$1$anonTypeMethod()QString",true,false);
 	 */
-	protected IJavaMethodBreakpoint createMethodBreakpoint(String root, String packageName, String cuName, 
+	protected IJavaMethodBreakpoint createMethodBreakpoint(String root, String packageName, String cuName,
 									String fullTargetName, boolean entry, boolean exit) throws Exception {
-		
+
 		IJavaProject javaProject = getProjectContext();
 		ICompilationUnit cunit = getCompilationUnit(javaProject, root, packageName, cuName);
 		assertNotNull("did not find requested Compilation Unit", cunit); //$NON-NLS-1$
@@ -1811,13 +1823,13 @@
 		assertTrue("Given method does not exist", targetMethod.exists()); //$NON-NLS-1$
 		IType methodParent = (IType)targetMethod.getParent();//safe - method's only parent = Type
 		assertNotNull("did not find type to install breakpoint in", methodParent); //$NON-NLS-1$
-				
+
 		Map<String, Object> map = getExtraBreakpointAttributes(targetMethod);
 		IJavaMethodBreakpoint bp = JDIDebugModel.createMethodBreakpoint(getBreakpointResource(methodParent), methodParent.getFullyQualifiedName(),targetMethod.getElementName(), targetMethod.getSignature(), entry, exit,false, -1, -1, -1, 0, true, map);
 		forceDeltas(bp);
 		return bp;
-	}		
-	
+	}
+
 	/**
 	 * @param cu the Compilation where the target resides
 	 * @param target the full name of the target, as per MemberParser syntax
@@ -1827,21 +1839,21 @@
 		IMember toReturn = (new MemberParser()).getDeepest(cu,target);
 		return toReturn;
 	}
-	
+
 	/**
 	 * Delegate method to get a resource with a specific name from the testing workspace 'src' folder
 	 * @param name the name of the <code>IResource</code> to get
 	 * @return the specified <code>IResource</code> or <code>null</code> if it does not exist
-	 * 
+	 *
 	 * @since 3.4
 	 */
 	protected IResource getResource(String name) {
 		return ResourcesPlugin.getWorkspace().getRoot().findMember(new Path("/DebugTests/src/"+name));
 	}
-	
+
 	/**
 	 * Creates and returns a class prepare breakpoint on the type with the given fully qualified name.
-	 * 
+	 *
 	 * @param typeName type on which to create the breakpoint
 	 * @return breakpoint
 	 * @throws Exception
@@ -1849,10 +1861,10 @@
 	protected IJavaClassPrepareBreakpoint createClassPrepareBreakpoint(String typeName) throws Exception {
 		return createClassPrepareBreakpoint(getType(typeName));
 	}
-	
+
 	/**
 	 * Creates and returns a class prepare breakpoint on the type with the given fully qualified name.
-	 * 
+	 *
 	 * @param typeName type on which to create the breakpoint
 	 * @return breakpoint
 	 * @throws Exception
@@ -1863,23 +1875,23 @@
 		IType type = (IType)getMember(cunit,fullTargetName);
 		assertTrue("Target type not found", type.exists()); //$NON-NLS-1$
 		return createClassPrepareBreakpoint(type);
-	}	
-	
+	}
+
 	/**
 	 * Creates a class prepare breakpoint in a fully specified type (potentially non public).
-	 * 
+	 *
 	 * @param packageName package name containing type to install breakpoint in, example "a.b.c"
 	 * @param cuName simple compilation unit name within package, example "Something.java"
 	 * @param typeName $ qualified type name within compilation unit, example "Something" or
 	 *  "NonPublic" or "Something$Inner"
-	 */	
+	 */
 	protected IJavaClassPrepareBreakpoint createClassPrepareBreakpoint(String packageName, String cuName, String typeName) throws Exception {
 		return createClassPrepareBreakpoint(getType(packageName, cuName, typeName));
 	}
-	
+
 	/**
 	 * Creates a class prepare breakpoint for the given type
-	 * 
+	 *
 	 * @param type type
 	 * @return class prepare breakpoint
 	 * @throws Exception
@@ -1895,11 +1907,11 @@
 		forceDeltas(bp);
 		return bp;
 	}
-	
+
 	/**
 	 * Returns the Java model type from the test project with the given name or <code>null</code>
 	 * if none.
-	 * 
+	 *
 	 * @param typeName
 	 * @return type or <code>null</code>
 	 * @throws Exception
@@ -1907,27 +1919,27 @@
 	protected IType getType(String typeName) throws Exception {
 		return getProjectContext().findType(typeName);
 	}
-	
+
 	/**
 	 * Creates and returns a watchpoint
-	 * 
+	 *
 	 * @param typeNmae type name
 	 * @param fieldName field name
 	 * @param access whether to suspend on field access
 	 * @param modification whether to suspend on field modification
-	 */	
+	 */
 	protected IJavaWatchpoint createWatchpoint(String typeName, String fieldName, boolean access, boolean modification) throws Exception {
 		IType type = getType(typeName);
 		return createWatchpoint(type, fieldName, access, modification);
 	}
-	
+
 	/**
 	 * Creates and returns an exception breakpoint
-	 * 
+	 *
 	 * @param exName exception name
 	 * @param caught whether to suspend in caught locations
 	 * @param uncaught whether to suspend in uncaught locations
-	 */	
+	 */
 	protected IJavaExceptionBreakpoint createExceptionBreakpoint(String exName, boolean caught, boolean uncaught) throws Exception {
 		IType type = getType(exName);
 		Map<String, Object> map = getExtraBreakpointAttributes(type);
@@ -1935,15 +1947,15 @@
 		forceDeltas(bp);
 		return bp;
 	}
-	
+
 	/**
 	 * Creates and returns a watchpoint
-	 * 
+	 *
 	 * @param typeNmae type name
 	 * @param fieldName field name
 	 * @param access whether to suspend on field access
 	 * @param modification whether to suspend on field modification
-	 */	
+	 */
 /*	protected IJavaWatchpoint createWatchpoint(String typeName, String fieldName, boolean access, boolean modification) throws Exception {
 		IType type = getType(typeName);
 		return createWatchpoint(type, fieldName, access, modification);
@@ -1953,17 +1965,17 @@
 	/**
 	 * Creates a WatchPoint on the field specified at the given path.
 	 * Will create watchpoints on fields within anonymous types, inner types,
-	 * local (non-public) types, and public types.  
+	 * local (non-public) types, and public types.
 	 * @param root
 	 * @param packageName package name containing type to install breakpoint in, example "a.b.c"
 	 * @param cuName simple compilation unit name within package, example "Something.java"
 	 * @param fullTargetName - see below
-	 * @param access whether to suspend on access 
+	 * @param access whether to suspend on access
 	 * @param modification whether to suspend on modification
 	 * @return a watchpoint
 	 * @throws Exception
 	 * @throws CoreException
-	 * 
+	 *
 	 * <p>
 	 * <pre>
 	 * Syntax example:
@@ -1976,17 +1988,17 @@
 	 * 			{
 	 * 				Object anon = new Object(){
 	 * 					int anIntField;
-	 * 					String anonTypeMethod() {return "an Example";}				
+	 * 					String anonTypeMethod() {return "an Example";}
 	 * 				}
 	 * 			}
 	 * 		}
 	 * }</pre>
 	 * </p>
-	 * To get the anonymous toString, syntax of fullTargetName would be: <code>Foo$Inner$aMethod()V$1$anIntField</code> 
+	 * To get the anonymous toString, syntax of fullTargetName would be: <code>Foo$Inner$aMethod()V$1$anIntField</code>
 	 */
-	protected IJavaWatchpoint createNestedTypeWatchPoint(String root, String packageName, String cuName, 
+	protected IJavaWatchpoint createNestedTypeWatchPoint(String root, String packageName, String cuName,
 			String fullTargetName, boolean access, boolean modification) throws Exception, CoreException {
-		
+
 		ICompilationUnit cunit = getCompilationUnit(getProjectContext(), root, packageName, cuName);
 		IField field = (IField)getMember(cunit,fullTargetName);
 		assertNotNull("Path to field is not valid", field); //$NON-NLS-1$
@@ -1994,27 +2006,27 @@
 		IType type = (IType)field.getParent();
 		return createWatchpoint(type, field.getElementName(), access, modification);
 	}
-	
+
 
 	/**
 	 * Creates a watchpoint in a fully specified type (potentially non public).
-	 * 
+	 *
 	 * @param packageName package name containing type to install breakpoint in, example "a.b.c"
 	 * @param cuName simple compilation unit name within package, example "Something.java"
 	 * @param typeName $ qualified type name within compilation unit, example "Something" or
 	 *  "NonPublic" or "Something$Inner"
 	 * @param fieldName name of the field
-	 * @param access whether to suspend on access 
+	 * @param access whether to suspend on access
 	 * @param modification whether to suspend on modification
-	 */		
+	 */
 	protected IJavaWatchpoint createWatchpoint(String packageName, String cuName, String typeName, String fieldName, boolean access, boolean modification) throws Exception {
 		IType type = getType(packageName, cuName, typeName);
 		return createWatchpoint(type, fieldName, access, modification);
 	}
-	
+
 	/**
 	 * Creates a watchpoint on the specified field.
-	 * 
+	 *
 	 * @param type type containing the field
 	 * @param fieldName name of the field
 	 * @param access whether to suspend on access
@@ -2031,8 +2043,8 @@
 		wp.setModification(modification);
 		forceDeltas(wp);
 		return wp;
-	}	
-		
+	}
+
 	/**
 	 * Terminates the given thread and removes its launch
 	 */
@@ -2041,10 +2053,10 @@
 			terminateAndRemove((IJavaDebugTarget)thread.getDebugTarget());
 		}
 	}
-	
+
 	/**
 	 * Terminates the given debug target and removes its launch.
-	 * 
+	 *
 	 * NOTE: all breakpoints are removed, all threads are resumed, and then
 	 * the target is terminated. This avoids defunct processes on Linux.
 	 */
@@ -2054,7 +2066,7 @@
 		if (!(debugTarget.isTerminated() || debugTarget.isDisconnected())) {
 			IPreferenceStore jdiUIPreferences = JDIDebugUIPlugin.getDefault().getPreferenceStore();
 			jdiUIPreferences.setValue(IJDIPreferencesConstants.PREF_SUSPEND_ON_UNCAUGHT_EXCEPTIONS, false);
-			
+
 			DebugEventWaiter waiter = new DebugElementEventWaiter(DebugEvent.TERMINATE, debugTarget);
 			try {
 				removeAllBreakpoints();
@@ -2079,7 +2091,7 @@
         DebugPlugin.getDefault().fireDebugEventSet(new DebugEvent[]{new DebugEvent(this, DebugEvent.MODEL_SPECIFIC)});
         waiter.waitForEvent();
 	}
-	
+
 	/**
 	 * Deletes all existing breakpoints
 	 */
@@ -2090,11 +2102,11 @@
 		} catch (CoreException e) {
 		}
 	}
-	
+
 	/**
 	 * Returns the first breakpoint the given thread is suspended
 	 * at, or <code>null</code> if none.
-	 * 
+	 *
 	 * @return the first breakpoint the given thread is suspended
 	 * at, or <code>null</code> if none
 	 */
@@ -2105,11 +2117,11 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Evaluates the given snippet in the context of the given stack frame and returns
 	 * the result.
-	 * 
+	 *
 	 * @param snippet code snippet
 	 * @param frame stack frame context
 	 * @return evaluation result
@@ -2117,11 +2129,11 @@
 	protected IEvaluationResult evaluate(String snippet, IJavaStackFrame frame) throws Exception {
 		DebugEventWaiter waiter= new DebugElementKindEventWaiter(DebugEvent.SUSPEND, IJavaThread.class);
 		waiter.setTimeout(DEFAULT_TIMEOUT);
-		
+
 		IAstEvaluationEngine engine = EvaluationManager.newAstEvaluationEngine(getProjectContext(), (IJavaDebugTarget)frame.getDebugTarget());
 		try {
 			engine.evaluate(snippet, frame, this, DebugEvent.EVALUATION, true);
-	
+
 			Object suspendee= waiter.waitForEvent();
 			setEventSet(waiter.getEventSet());
 			if(suspendee == null) {
@@ -2133,8 +2145,8 @@
 		finally {
 			engine.dispose();
 		}
-	}		
-	
+	}
+
 	/**
 	 * Runs an evaluation using an embedded listener and the {@link #DEFAULT_TIMEOUT} for the operation
 	 * @param snippet the snippet to evaluate
@@ -2167,7 +2179,7 @@
 			engine.dispose();
 		}
 	}
-	
+
 	/**
 	 * @see IEvaluationListener#evaluationComplete(IEvaluationResult)
 	 */
@@ -2175,96 +2187,96 @@
 	public void evaluationComplete(IEvaluationResult result) {
 		fEvaluationResult = result;
 	}
-	
+
 	/**
 	 * Performs a step over in the given stack frame and returns when complete.
-	 * 
+	 *
 	 * @param frame stack frame to step in
 	 */
 	protected IJavaThread stepOver(IJavaStackFrame frame) throws Exception {
 		DebugEventWaiter waiter= new DebugElementKindEventDetailWaiter(DebugEvent.SUSPEND, IJavaThread.class, DebugEvent.STEP_END);
 		waiter.setTimeout(DEFAULT_TIMEOUT);
-		
+
 		frame.stepOver();
-		
+
 		Object suspendee= waiter.waitForEvent();
 		setEventSet(waiter.getEventSet());
 		assertNotNull("Program did not suspend.", suspendee); //$NON-NLS-1$
 		return (IJavaThread) suspendee;
 	}
-	
+
 	/**
 	 * Performs a step over in the given stack frame and returns when a breakpoint is hit.
-	 * 
+	 *
 	 * @param frame stack frame to step in
 	 */
 	protected IJavaThread stepOverToBreakpoint(IJavaStackFrame frame) throws Exception {
 		DebugEventWaiter waiter= new DebugElementKindEventDetailWaiter(DebugEvent.SUSPEND, IJavaThread.class, DebugEvent.BREAKPOINT);
 		waiter.setTimeout(DEFAULT_TIMEOUT);
-		
+
 		frame.stepOver();
-		
+
 		Object suspendee= waiter.waitForEvent();
 		setEventSet(waiter.getEventSet());
 		assertNotNull("Program did not suspend.", suspendee); //$NON-NLS-1$
 		return (IJavaThread) suspendee;
-	}	
+	}
 
 	/**
 	 * Performs a step into in the given stack frame and returns when complete.
-	 * 
+	 *
 	 * @param frame stack frame to step in
 	 */
 	protected IJavaThread stepInto(IJavaStackFrame frame) throws Exception {
 		DebugEventWaiter waiter= new DebugElementKindEventDetailWaiter(DebugEvent.SUSPEND, IJavaThread.class, DebugEvent.STEP_END);
 		waiter.setTimeout(DEFAULT_TIMEOUT);
-		
+
 		frame.stepInto();
-		
+
 		Object suspendee= waiter.waitForEvent();
 		setEventSet(waiter.getEventSet());
 		assertNotNull("Program did not suspend.", suspendee); //$NON-NLS-1$
-		return (IJavaThread) suspendee;		
+		return (IJavaThread) suspendee;
 	}
-	
+
 	/**
 	 * Performs a step return in the given stack frame and returns when complete.
-	 * 
+	 *
 	 * @param frame stack frame to step return from
 	 */
 	protected IJavaThread stepReturn(IJavaStackFrame frame) throws Exception {
 		DebugEventWaiter waiter= new DebugElementKindEventDetailWaiter(DebugEvent.SUSPEND, IJavaThread.class, DebugEvent.STEP_END);
 		waiter.setTimeout(DEFAULT_TIMEOUT);
-		
+
 		frame.stepReturn();
-		
+
 		Object suspendee= waiter.waitForEvent();
 		setEventSet(waiter.getEventSet());
 		assertNotNull("Program did not suspend.", suspendee); //$NON-NLS-1$
 		return (IJavaThread) suspendee;
-	}	
-	
+	}
+
 	/**
 	 * Performs a step into with filters in the given stack frame and returns when
 	 * complete.
-	 * 
+	 *
 	 * @param frame stack frame to step in
 	 */
 	protected IJavaThread stepIntoWithFilters(IJavaStackFrame frame) throws Exception {
 		return stepIntoWithFilters(frame, true);
 	}
-	
+
 	/**
 	 * Performs a step into with filters in the given stack frame and returns when
 	 * complete.
-	 * 
+	 *
 	 * @param whether to step thru or step return from a filtered location
 	 * @param frame stack frame to step in
 	 */
 	protected IJavaThread stepIntoWithFilters(IJavaStackFrame frame, boolean stepThru) throws Exception {
 		DebugEventWaiter waiter= new DebugElementKindEventWaiter(DebugEvent.SUSPEND, IJavaThread.class);
 		waiter.setTimeout(DEFAULT_TIMEOUT);
-		
+
 		// turn filters on
 		IJavaDebugTarget target = (IJavaDebugTarget) frame.getDebugTarget();
 		try {
@@ -2283,18 +2295,18 @@
 			target.setStepThruFilters(true);
 		}
 		return null;
-	}	
+	}
 
 	/**
 	 * Performs a step return with filters in the given stack frame and returns when
 	 * complete.
-	 * 
+	 *
 	 * @param frame stack frame to step in
 	 */
 	protected IJavaThread stepReturnWithFilters(IJavaStackFrame frame) throws Exception {
 		DebugEventWaiter waiter= new DebugElementKindEventWaiter(DebugEvent.SUSPEND, IJavaThread.class);
 		waiter.setTimeout(DEFAULT_TIMEOUT);
-		
+
 		// turn filters on
 		IJavaDebugTarget target = (IJavaDebugTarget) frame.getDebugTarget();
 		try {
@@ -2306,24 +2318,24 @@
 			// turn filters off
 			target.setStepFiltersEnabled(false);
 		}
-		
-		
+
+
 		Object suspendee= waiter.waitForEvent();
 		setEventSet(waiter.getEventSet());
 		assertNotNull("Program did not suspend.", suspendee); //$NON-NLS-1$
-		return (IJavaThread) suspendee;		
-	}	
-	
+		return (IJavaThread) suspendee;
+	}
+
 	/**
 	 * Performs a step over with filters in the given stack frame and returns when
 	 * complete.
-	 * 
+	 *
 	 * @param frame stack frame to step in
 	 */
 	protected IJavaThread stepOverWithFilters(IJavaStackFrame frame) throws Exception {
 		DebugEventWaiter waiter= new DebugElementKindEventWaiter(DebugEvent.SUSPEND, IJavaThread.class);
 		waiter.setTimeout(DEFAULT_TIMEOUT);
-		
+
 		// turn filters on
 		IJavaDebugTarget target = (IJavaDebugTarget) frame.getDebugTarget();
 		try {
@@ -2335,17 +2347,17 @@
 			// turn filters off
 			target.setStepFiltersEnabled(false);
 		}
-		
-		
+
+
 		Object suspendee= waiter.waitForEvent();
 		setEventSet(waiter.getEventSet());
 		assertNotNull("Program did not suspend.", suspendee); //$NON-NLS-1$
-		return (IJavaThread) suspendee;		
+		return (IJavaThread) suspendee;
 	}
 
 	/**
 	 * Returns the compilation unit with the given name.
-	 * 
+	 *
 	 * @param project the project containing the CU
 	 * @param root the name of the source folder in the project
 	 * @param pkg the name of the package (empty string for default package)
@@ -2357,7 +2369,7 @@
 		IResource r = p.getFolder(root);
 		return project.getPackageFragmentRoot(r).getPackageFragment(pkg).getCompilationUnit(name);
 	}
-	
+
     /**
      * Wait for builds to complete
      */
@@ -2374,9 +2386,9 @@
                 wasInterrupted = true;
             }
         } while (wasInterrupted);
-    }	
-    
-    
+    }
+
+
     /**
      * Finds the specified variable within the context of the specified stackframe. Returns null if a variable with
      * the given name does not exist
@@ -2411,7 +2423,7 @@
         }
         return variable;
     }
-	
+
 	/**
 	 * Returns if the local filesystem is case-sensitive or not
 	 * @return true if the local filesystem is case-sensitive, false otherwise
@@ -2419,14 +2431,14 @@
 	protected boolean isFileSystemCaseSensitive() {
 		return Platform.OS_MACOSX.equals(Platform.getOS()) ? false : new File("a").compareTo(new File("A")) != 0; //$NON-NLS-1$ //$NON-NLS-2$
 	}
-	
+
     /**
      * Creates a shared launch configuration for the type with the given name.
      */
     protected ILaunchConfiguration createLaunchConfiguration(String mainTypeName) throws Exception {
         return createLaunchConfiguration(getProjectContext(), mainTypeName);
     }
-    
+
     /**
      * Creates a shared launch configuration for the type with the given name.
      */
@@ -2447,7 +2459,7 @@
         map.put(IJavaLaunchConfigurationConstants.ATTR_JAVA_COMMAND, JAVA);
         config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_INSTALL_TYPE_SPECIFIC_ATTRS_MAP, map);
         return config.doSave();
-    }    
+    }
 
     /**
      * Creates a shared launch configuration for the type with the given name.
@@ -2470,7 +2482,7 @@
         config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_INSTALL_TYPE_SPECIFIC_ATTRS_MAP, map);
         return config.doSave();
     }
-    
+
 	/**
 	 * When a test throws the 'try again' exception, try it again.
 	 * @see junit.framework.TestCase#runBare()
@@ -2485,20 +2497,37 @@
 				super.runBare();
 				tryAgain = false;
 			} catch (TestAgainException e) {
-				Status status = new Status(IStatus.ERROR, "org.eclipse.jdt.debug.tests", "Test failed attempt " + attempts + ". Re-testing: " + this.getName(), e); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				TestUtil.cleanUp();
-				DebugPlugin.log(status);
+				TestUtil.log(IStatus.ERROR, getName(), "Test failed attempt " + attempts + ". Re-testing.", e);
+				TestUtil.cleanUp(getName());
 				if (attempts > 5) {
 					tryAgain = false;
 				}
 			}
 		}
 	}
-    
+
+	@Override
+	protected void tearDown() throws Exception {
+		TestUtil.log(IStatus.INFO, getName(), "tearDown");
+		shutdownDebugTargets();
+		TestUtil.cleanUp(getName());
+		super.tearDown();
+	}
+
+	protected void shutdownDebugTargets() {
+		ILaunchManager launchManager = DebugPlugin.getDefault().getLaunchManager();
+		IDebugTarget[] targets = launchManager.getDebugTargets();
+		for (IDebugTarget target : targets) {
+			if (target instanceof JDIDebugTarget) {
+				((JDIDebugTarget) target).shutdown();
+			}
+		}
+	}
+
 	/**
 	 * Opens and returns an editor on the given file or <code>null</code>
 	 * if none. The editor will be activated.
-	 * 
+	 *
 	 * @param file
 	 * @return editor or <code>null</code>
 	 */
@@ -2525,14 +2554,14 @@
 		job.join();
 		return parts[0];
 	}
-	
+
 	/**
 	 * Opens the {@link IDebugView} with the given id, does nothing if no such view exists.
 	 * This method can return <code>null</code>
-	 * 
+	 *
 	 * @param viewId
 	 * @return the handle to the {@link IDebugView} with the given id
-	 * @throws PartInitException 
+	 * @throws PartInitException
 	 * @throws InterruptedException
 	 * @since 3.8.100
 	 */
@@ -2561,7 +2590,7 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Opens a debug view
 	 * @param viewId
@@ -2578,11 +2607,11 @@
 		}
 		return null;
 	}
- 	
+
 	/**
 	 * Toggles a breakpoint in the editor at the given line number returning the breakpoint
 	 * or <code>null</code> if none.
-	 * 
+	 *
 	 * @param editor
 	 * @param lineNumber
 	 * @return returns the created breakpoint or <code>null</code> if none.
@@ -2624,7 +2653,7 @@
 		manager.removeBreakpointListener(listener);
 		return breakpoints[0];
 	}
-	
+
 	/**
 	 * Closes all editors in the active workbench page.
 	 */
@@ -2639,11 +2668,11 @@
         Display display = DebugUIPlugin.getStandardDisplay();
         display.syncExec(closeAll);
 	}
-    
+
 	/**
 	 * Returns the version level of the class files being run, based on the system property <code>java.class.version</code>
 	 * @return the version level of the class files being run in the current VM
-	 *  
+	 *
 	 *  @since 3.6
 	 */
 	protected String getClassFileVersion() {
@@ -2656,11 +2685,11 @@
 		}
 		return JavaCore.VERSION_1_6;
 	}
-	
+
 	/**
 	 * Determines if the test should be attempted again based on the error code.
 	 * See bug 297071.
-	 * 
+	 *
 	 * @param e Debug Exception
 	 * @throws TestAgainException
 	 * @throws DebugException
@@ -2675,7 +2704,7 @@
 		}
 		throw e;
 	}
-	
+
 	/**
 	 * Perform the actual evaluation (inspect)
 	 * @param thread
@@ -2685,12 +2714,12 @@
 	protected IValue doEval(IJavaThread thread, String snippet) throws Exception{
 		class Listener implements IEvaluationListener {
 			IEvaluationResult fResult;
-			
+
 			@Override
 			public void evaluationComplete(IEvaluationResult result) {
 				fResult= result;
 			}
-			
+
 			public IEvaluationResult getResult() {
 				return fResult;
 			}
@@ -2717,6 +2746,6 @@
 			engine.dispose();
 		}
 	}
-	
+
 }
 
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AutomatedSuite.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AutomatedSuite.java
index 294d34d..be248dc 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AutomatedSuite.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AutomatedSuite.java
@@ -133,7 +133,7 @@
  * Tests for integration and nightly builds.
  */
 public class AutomatedSuite extends DebugSuite {
-	
+
 	/**
 	 * Returns the suite.  This is required to
 	 * use the JUnit Launcher.
@@ -148,9 +148,9 @@
 	 */
 	public AutomatedSuite() {
 		addTest(new TestSuite(ProjectCreationDecorator.class));
-			
+
 	//Launching tests
-		
+
 		addTest(new TestSuite(LaunchModeTests.class));
 		addTest(new TestSuite(LaunchDelegateTests.class));
 		addTest(new TestSuite(LaunchShortcutTests.class));
@@ -164,12 +164,12 @@
 		addTest(new TestSuite(LaunchConfigurationManagerTests.class));
 		addTest(new TestSuite(LaunchConfigurationTests.class));
 		addTest(new TestSuite(ProjectClasspathVariableTests.class));
-		
+
 	//mac specific tests
 		if(Platform.OS_MACOSX.equals(Platform.getOS())) {
 			addTest(new TestSuite(PListParserTests.class));
 		}
-		
+
 	//Breakpoints tests
 		addTest(new TestSuite(TypeNameBreakpointTests.class));
 		addTest(new TestSuite(DeferredBreakpointTests.class));
@@ -205,7 +205,7 @@
 			addTest(new TestSuite(DetailFormatterTests.class));
 			addTest(new TestSuite(AlternateStratumTests.class));
 		}
-		
+
 	//Sourcelookup tests
 		addTest(new TestSuite(SourceLookupTests.class));
 		addTest(new TestSuite(FolderSourceContainerTests.class));
@@ -220,7 +220,7 @@
 		addTest(new TestSuite(SourceLocationTests.class));
 		addTest(new TestSuite(TypeResolutionTests.class));
 		addTest(new TestSuite(JarSourceLookupTests.class));
-		
+
 	// Variable tests
 		addTest(new TestSuite(InstanceVariableTests.class));
 		addTest(new TestSuite(LocalVariableTests.class));
@@ -232,7 +232,7 @@
 		if(JavaProjectHelper.isJava7Compatible()) {
 			addTest(new TestSuite(LiteralTests17.class));
 		}
-		
+
 	//Stepping tests
 		addTest(new TestSuite(StepFilterTests.class));
 		addTest(new TestSuite(StepIntoSelectionTests.class));
@@ -240,7 +240,7 @@
 		if (JavaProjectHelper.isJava6Compatible()) {
 			addTest(new TestSuite(ForceReturnTests.class));
 		}
-		
+
 	//Classpath tests
 		addTest(new TestSuite(JavaLibraryPathTests.class));
 		addTest(new TestSuite(ClasspathVariableTests.class));
@@ -249,7 +249,7 @@
 		addTest(new TestSuite(ClasspathProviderTests.class));
 		addTest(new TestSuite(BootpathTests.class));
 		addTest(new TestSuite(EEDefinitionTests.class));
-		
+
 	//VM Install/Environment tests
 		addTest(new TestSuite(VMInstallTests.class));
 		addTest(new TestSuite(StringSubstitutionTests.class));
@@ -274,7 +274,7 @@
 		addTest(new TestSuite(StratumTests.class));
 		addTest(new TestSuite(JavaDebugTargetTests.class));
 		addTest(new TestSuite(WorkingDirectoryTests.class));
-		
+
 	// Refactoring tests
 		//TODO: project rename
 		//TODO: package move
@@ -302,29 +302,29 @@
 		//addTest(new TestSuite(ConvertPublicAnonymousTypeToNestedUnitTests.class));
 		//addTest(new TestSuite(ConvertInnerAnonymousTypeToNestedUnitTests.class));
 		//addTest(new TestSuite(ConvertNonPublicAnonymousTypeToNestedUnitTests.class));
-		
+
 	// JDWP tests
 		addTest(new TestSuite(JDWPTests.class));
 		addTest(new TestSuite(MultipleConnectionsTest.class));
 	// Refresh state tests
 		addTest(new TestSuite(RefreshStateTests.class));
-		
+
 	// HCR tests are last - they modify resources
 		addTest(new TestSuite(HcrTests.class));
-		
+
 	// Layout tests
 		addTest(new TestSuite(ViewManagementTests.class));
-		
+
 	// Leak tests
 		addTest(new TestSuite(InstructionPointerTests.class));
-		
+
 	// Variables View Detail Pane tests
 		addTest(DetailPaneManagerTests.suite());
 		addTest(new TestSuite(ModelPresentationTests.class));
 
 	// Open from Clipboard action tests - Need to use #suite() because the test has a custom setup
 		addTest(OpenFromClipboardTests.suite());
-	
+
 	//add the complete eval suite
 		addTest(new TestSuite(GeneralEvalTests.class));
 		//addTest(EvalTestSuite.suite());
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/DebugSuite.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/DebugSuite.java
index 3ca96e3..7c4345a 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/DebugSuite.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/DebugSuite.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -22,7 +22,7 @@
  * Debug test suite framework that runs test in a non UI thread.
  */
 public abstract class DebugSuite extends TestSuite {
-	
+
 	/**
 	 * Flag that indicates test are in progress
 	 */
@@ -34,7 +34,7 @@
 	 */
 	public DebugSuite() {
 	}
-	
+
 	/**
 	 * Runs the tests and collects their result in a TestResult.
 	 * The debug tests cannot be run in the UI thread or the event
@@ -55,7 +55,7 @@
 						}
 						Test test= e.nextElement();
 						runTest(test, result);
-					}					
+					}
 					fTesting = false;
 					display.wake();
 				}
@@ -65,7 +65,7 @@
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
-				
+
 		while (fTesting) {
 			try {
 				if (!display.readAndDispatch()) {
@@ -73,8 +73,8 @@
 				}
 			} catch (Throwable e) {
 				e.printStackTrace();
-			}			
-		}		
+			}
+		}
 	}
 
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/EvalTestSuite.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/EvalTestSuite.java
index 414aeac..7cd7ae8 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/EvalTestSuite.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/EvalTestSuite.java
@@ -4,11 +4,11 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- *  
+ *
  * This is an implementation of an early-draft specification developed under the Java
  * Community Process (JCP) and is made available for testing and evaluation purposes
  * only. The code is not compatible with any specification of the JCP.
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jesper S. Møller - bug 422029: [1.8] Enable debug evaluation support for default methods
@@ -141,7 +141,7 @@
 		addTest(new TestSuite(TestsNestedTypes2.class));
 		addTest(new TestSuite(TestsTypeHierarchy1.class));
 		addTest(new TestSuite(TestsTypeHierarchy2.class));
-		
+
 		// Extended evaluation tests
 		addTest(new TestSuite(BooleanOperatorsTests.class));
 		addTest(new TestSuite(ByteOperatorsTests.class));
@@ -224,18 +224,18 @@
 		addTest(new TestSuite(TypeHierarchy_68_3.class));
 		addTest(new TestSuite(TypeHierarchy_119_1.class));
 		addTest(new TestSuite(TypeHierarchy_146_1.class));
-		
+
 		addTest(new TestSuite(TestsNumberLiteral.class));
 
 		addTest(new TestSuite(VariableDeclarationTests.class));
 		addTest(new TestSuite(LoopTests.class));
 		addTest(new TestSuite(LabelTests.class));
 		addTest(new TestSuite(TestsAnonymousClassVariable.class));
-		
+
 		addTest(new TestSuite(TestsBreakpointConditions.class));
 
 	}
-	
+
 	/**
 	 * Runs the tests and collects their result in a TestResult.
 	 * The debug tests cannot be run in the UI thread or the event
@@ -255,7 +255,7 @@
 							break;
 						}
 						runTest(e.nextElement(), result);
-					}					
+					}
 					fTesting = false;
 					display.wake();
 				}
@@ -265,7 +265,7 @@
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
-				
+
 		while (fTesting) {
 			try {
 				if (!display.readAndDispatch()) {
@@ -273,8 +273,8 @@
 				}
 			} catch (Throwable e) {
 				e.printStackTrace();
-			}			
-		}		
+			}
+		}
 	}
 
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ManualSuite.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ManualSuite.java
index d9a35fb..6b51e91 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ManualSuite.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ManualSuite.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -24,7 +24,7 @@
  * automated tests.
  */
 public class ManualSuite extends TestSuite {
-	
+
 	/**
 	 * Flag that indicates test are in progress
 	 */
@@ -44,7 +44,7 @@
 	 */
 	public ManualSuite() {
 		addTest(new TestSuite(ProjectCreationDecorator.class));
-		
+
 		/**
 		 * This test appears in the manual suite as wee need to be able to specify ports
 		 * and security settings to make sure the client can connect
@@ -52,7 +52,7 @@
 		addTest(new TestSuite(RemoteJavaApplicationTests.class));
 
 	}
-	
+
 	/**
 	 * Runs the tests and collects their result in a TestResult.
 	 * The debug tests cannot be run in the UI thread or the event
@@ -73,7 +73,7 @@
 						}
 						Test test= e.nextElement();
 						runTest(test, result);
-					}					
+					}
 					fTesting = false;
 					display.wake();
 				}
@@ -83,7 +83,7 @@
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
-				
+
 		while (fTesting) {
 			try {
 				if (!display.readAndDispatch()) {
@@ -91,8 +91,8 @@
 				}
 			} catch (Throwable e) {
 				e.printStackTrace();
-			}			
-		}		
+			}
+		}
 	}
 
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/PerformanceSuite.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/PerformanceSuite.java
index 91c4ddd..d37c7d3 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/PerformanceSuite.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/PerformanceSuite.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ProjectCreationDecorator.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ProjectCreationDecorator.java
index 08d07c2..ed12c13 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ProjectCreationDecorator.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ProjectCreationDecorator.java
@@ -40,17 +40,17 @@
     public ProjectCreationDecorator() {
         super("Project creation decorator tests");
     }
-    
+
     /* (non-Javadoc)
 	 * @see org.eclipse.jdt.debug.tests.AbstractDebugTest#getProjectContext()
 	 */
 	@Override
 	protected IJavaProject getProjectContext() {
 		return get14Project();
-	}	
-    
+	}
+
     /**
-     * 
+     *
      */
     public void testPerspectiveSwtich() {
         DebugUIPlugin.getStandardDisplay().syncExec(new Runnable() {
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/TestAgainException.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/TestAgainException.java
index b8767df..25125bf 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/TestAgainException.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/TestAgainException.java
@@ -12,7 +12,7 @@
 
 /**
  * Exception to indicate a test should be run again when it fails.
- * 
+ *
  * @since 3.3
  */
 public class TestAgainException extends RuntimeException {
@@ -26,7 +26,7 @@
 	}
 
 	/**
-	 * Generated serial version id 
+	 * Generated serial version id
 	 */
 	private static final long serialVersionUID = 1848804390493463729L;
 
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/TestUtil.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/TestUtil.java
index 7b3b088..c9417c4 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/TestUtil.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/TestUtil.java
@@ -10,30 +10,53 @@
  *******************************************************************************/
 package org.eclipse.jdt.debug.tests;
 
-import java.util.concurrent.TimeUnit;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Set;
 
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.jdt.debug.testplugin.JavaTestPlugin;
 import org.eclipse.swt.widgets.Display;
 import org.junit.Assert;
 
 public class TestUtil {
+
 	/**
 	 * Call this in the tearDown method of every test to clean up state that can
 	 * otherwise leak through SWT between tests.
 	 */
-	public static void cleanUp() {
+	public static void cleanUp(String owner) {
 		// Ensure that the Thread.interrupted() flag didn't leak.
 		Assert.assertFalse("The main thread should not be interrupted at the end of a test", Thread.interrupted());
+
 		// Wait for any outstanding jobs to finish. Protect against deadlock by
 		// terminating the wait after a timeout.
-		boolean timedOut = waitForJobs(0, TimeUnit.MINUTES.toMillis(3));
-		Assert.assertFalse("Some Job did not terminate at the end of the test", timedOut);
-		// Wait for any pending *syncExec calls to finish
-		runEventLoop();
+		boolean timedOut = waitForJobs(owner, 5, 5000);
+		if (timedOut) {
+			// We don't expect any extra jobs run during the test: try to cancel them
+			log(IStatus.INFO, owner, "Trying to cancel running jobs: " + getRunningOrWaitingJobs(null));
+			getRunningOrWaitingJobs(null).forEach(job -> job.cancel());
+			waitForJobs(owner, 5, 1000);
+		}
+
 		// Ensure that the Thread.interrupted() flag didn't leak.
 		Assert.assertFalse("The main thread should not be interrupted at the end of a test", Thread.interrupted());
 	}
 
+	public static void log(int severity, String owner, String message, Throwable... optionalError) {
+		message = "[" + owner + "] " + message;
+		Throwable error = null;
+		if (optionalError != null && optionalError.length > 0) {
+			error = optionalError[0];
+		}
+		Status status = new Status(severity, JavaTestPlugin.getDefault().getBundle().getSymbolicName(), message, error);
+		JavaTestPlugin.getDefault().getLog().log(status);
+	}
+
 	/**
 	 * Process all queued UI events. If called from background thread, does
 	 * nothing.
@@ -48,19 +71,37 @@
 	}
 
 	/**
-	 * Utility for waiting until the execution of jobs of any family has
-	 * finished or timeout is reached. If no jobs are running, the method waits
-	 * given minimum wait time. While this method is waiting for jobs, UI events
-	 * are processed.
+	 * Utility for waiting until the execution of jobs of any family has finished or timeout is reached. If no jobs are running, the method waits
+	 * given minimum wait time. While this method is waiting for jobs, UI events are processed.
 	 *
+	 * @param owner
+	 *            name of the caller which will be logged as prefix if the wait times out
 	 * @param minTimeMs
 	 *            minimum wait time in milliseconds
 	 * @param maxTimeMs
 	 *            maximum wait time in milliseconds
-	 * @return true if the method timed out, false if all the jobs terminated
-	 *         before the timeout
+	 * @return true if the method timed out, false if all the jobs terminated before the timeout
 	 */
-	public static boolean waitForJobs(long minTimeMs, long maxTimeMs) {
+	public static boolean waitForJobs(String owner, long minTimeMs, long maxTimeMs) {
+		return waitForJobs(owner, minTimeMs, maxTimeMs, (Object[]) null);
+	}
+
+	/**
+	 * Utility for waiting until the execution of jobs of any family has finished or timeout is reached. If no jobs are running, the method waits
+	 * given minimum wait time. While this method is waiting for jobs, UI events are processed.
+	 *
+	 * @param owner
+	 *            name of the caller which will be logged as prefix if the wait times out
+	 * @param minTimeMs
+	 *            minimum wait time in milliseconds
+	 * @param maxTimeMs
+	 *            maximum wait time in milliseconds
+	 * @param excludedFamilies
+	 *            optional list of job families to NOT wait for
+	 *
+	 * @return true if the method timed out, false if all the jobs terminated before the timeout
+	 */
+	public static boolean waitForJobs(String owner, long minTimeMs, long maxTimeMs, Object... excludedFamilies) {
 		if (maxTimeMs < minTimeMs) {
 			throw new IllegalArgumentException("Max time is smaller as min time!");
 		}
@@ -68,22 +109,89 @@
 		while (System.currentTimeMillis() - start < minTimeMs) {
 			runEventLoop();
 			try {
-				Thread.sleep(100);
+				Thread.sleep(Math.min(10, minTimeMs));
 			} catch (InterruptedException e) {
 				// Uninterruptable
 			}
 		}
 		while (!Job.getJobManager().isIdle()) {
+			List<Job> jobs = getRunningOrWaitingJobs(null, excludedFamilies);
+			if (jobs.isEmpty()) {
+				// only uninteresting jobs running
+				break;
+			}
+
+			if (!Collections.disjoint(runningJobs, jobs)) {
+				// There is a job which runs already quite some time, don't wait for it to avoid test timeouts
+				dumpRunningOrWaitingJobs(owner, jobs);
+				return true;
+			}
+
 			if (System.currentTimeMillis() - start >= maxTimeMs) {
+				dumpRunningOrWaitingJobs(owner, jobs);
 				return true;
 			}
 			runEventLoop();
 			try {
-				Thread.sleep(100);
+				Thread.sleep(10);
 			} catch (InterruptedException e) {
 				// Uninterruptable
 			}
 		}
+		runningJobs.clear();
 		return false;
 	}
+
+	static Set<Job> runningJobs = new LinkedHashSet<>();
+
+	private static void dumpRunningOrWaitingJobs(String owner, List<Job> jobs) {
+		String message = "Some job is still running or waiting to run: " + dumpRunningOrWaitingJobs(jobs);
+		log(IStatus.ERROR, owner, message);
+	}
+
+	private static String dumpRunningOrWaitingJobs(List<Job> jobs) {
+		if (jobs.isEmpty()) {
+			return "";
+		}
+		// clear "old" running jobs, we only remember most recent
+		runningJobs.clear();
+		StringBuilder sb = new StringBuilder();
+		for (Job job : jobs) {
+			runningJobs.add(job);
+			sb.append("'").append(job.getName()).append("'/");
+			sb.append(job.getClass().getName());
+			sb.append(", ");
+		}
+		sb.setLength(sb.length() - 2);
+		return sb.toString();
+	}
+
+	private static List<Job> getRunningOrWaitingJobs(Object jobFamily, Object... excludedFamilies) {
+		List<Job> running = new ArrayList<>();
+		Job[] jobs = Job.getJobManager().find(jobFamily);
+		for (Job job : jobs) {
+			if (isRunningOrWaitingJob(job) && !belongsToFamilies(job, excludedFamilies)) {
+				running.add(job);
+			}
+		}
+		return running;
+	}
+
+	private static boolean isRunningOrWaitingJob(Job job) {
+		int state = job.getState();
+		return (state == Job.RUNNING || state == Job.WAITING);
+	}
+
+	private static boolean belongsToFamilies(Job job, Object... excludedFamilies) {
+		if (excludedFamilies == null || excludedFamilies.length == 0) {
+			return false;
+		}
+		for (Object family : excludedFamilies) {
+			if (job.belongsTo(family)) {
+				return true;
+			}
+		}
+		return false;
+	}
+
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/VerticalRulerInfoStub.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/VerticalRulerInfoStub.java
index 57b62e2..758e4d9 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/VerticalRulerInfoStub.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/VerticalRulerInfoStub.java
@@ -14,12 +14,12 @@
 import org.eclipse.swt.widgets.Control;
 
 /**
- * 
+ *
  */
 public class VerticalRulerInfoStub implements IVerticalRulerInfo {
-	
+
 	private int fLineNumber = -1;
-	
+
 	public VerticalRulerInfoStub(int line) {
 		fLineNumber = line;
 	}
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/AbstractBreakpointWorkingSetTest.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/AbstractBreakpointWorkingSetTest.java
index 3453a03..51f2f01 100755
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/AbstractBreakpointWorkingSetTest.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/AbstractBreakpointWorkingSetTest.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -19,7 +19,7 @@
 
 /**
  * Common code for breakpoint working set tests.
- *  
+ *
  * @since 3.2
  */
 public abstract class AbstractBreakpointWorkingSetTest extends AbstractDebugTest {
@@ -31,11 +31,11 @@
 	public AbstractBreakpointWorkingSetTest(String name) {
 		super(name);
 	}
-	
+
 	/**
 	 * Creates and returns a breakpoint working set with the given name if not
 	 * already in existence.
-	 * 
+	 *
 	 * @param name working set name
 	 */
 	protected IWorkingSet createSet(String name) {
@@ -51,7 +51,7 @@
 
 	/**
 	 * Retruns the working set manager.
-	 * 
+	 *
 	 * @return working set manager
 	 */
 	protected IWorkingSetManager getWorkingSetManager() {
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/AbstractToggleBreakpointsTarget.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/AbstractToggleBreakpointsTarget.java
index fa67722..9a07b6f 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/AbstractToggleBreakpointsTarget.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/AbstractToggleBreakpointsTarget.java
@@ -37,9 +37,9 @@
  * Tests the Java debugger's 'toggle breakpoints target'.

  */

 public abstract class AbstractToggleBreakpointsTarget extends AbstractDebugTest {

-	

+

 	class Listener implements IBreakpointListener {

-		

+

 		List<IBreakpoint> added = new ArrayList<IBreakpoint>();

 		List<IBreakpoint> removed = new ArrayList<IBreakpoint>();

 

@@ -62,7 +62,7 @@
 		@Override

 		public void breakpointChanged(IBreakpoint breakpoint, IMarkerDelta delta) {

 		}

-		

+

 		public IBreakpoint getAdded() throws Exception {

 			synchronized (added) {

 				if (added.isEmpty()) {

@@ -72,7 +72,7 @@
 			assertFalse("Breakpoint not added", added.isEmpty());

 			return added.get(0);

 		}

-		

+

 		public boolean isEmpty() throws Exception{

 			synchronized (added) {

 				if (added.isEmpty()) {

@@ -83,7 +83,7 @@
 			return false;

 

 		}

-		

+

 		public IBreakpoint getRemoved() throws Exception {

 			synchronized (removed) {

 				if (removed.isEmpty()) {

@@ -93,18 +93,18 @@
 			assertFalse("Breakpoint not removed", removed.isEmpty());

 			return removed.get(0);

 		}

-		

-		

+

+

 	}

 

 	public AbstractToggleBreakpointsTarget(String name) {

 		super(name);

 	}

-	

-		

+

+

 	/**

 	 * Opens an editor on the given external file and toggles a breakpoint.

-	 * 

+	 *

 	 * @param externalFile path to external file in the test plug-in

 	 * @param line line number (1 based)

 	 * @throws Exception on failure

diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/BreakpointFieldLocator.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/BreakpointFieldLocator.java
index 4ab5c19..9242b10 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/BreakpointFieldLocator.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/BreakpointFieldLocator.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -29,11 +29,11 @@
  * Compute the name of field declared at a given position from an JDOM CompilationUnit.
  */
 public class BreakpointFieldLocator extends ASTVisitor {
-	
+
 	private int fPosition;
-	
+
 	private String fTypeName;
-	
+
 	private String fFieldName;
 
 	private boolean fFound;
@@ -62,7 +62,7 @@
 	public String getTypeName() {
 		return fTypeName;
 	}
-	
+
 	private boolean containsPosition(ASTNode node) {
 		int startPosition= node.getStartPosition();
 		int endPosition = startPosition + node.getLength();
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/BreakpointListenerTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/BreakpointListenerTests.java
index 08eedd5..fc33a1f 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/BreakpointListenerTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/BreakpointListenerTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -28,9 +28,9 @@
  * Tests breakpoint creation/deletion and listener interfaces.
  */
 public class BreakpointListenerTests extends AbstractDebugTest implements IBreakpointListener, IBreakpointsListener {
-	
+
 	/**
-	 * the number of add callbacks 
+	 * the number of add callbacks
 	 */
 	public int fAddCallbacks = 0;
 	/**
@@ -53,7 +53,7 @@
 	 * the total changed
 	 */
 	public int fTotalChanged = 0;
-		
+
 	/**
 	 * Constructor
 	 * @param name
@@ -66,16 +66,16 @@
 		waitForBuild();
 		fAddCallbacks = 0;
 		fTotalAdded = 0;
-	
+
 		fRemoveCallbacks = 0;
 		fTotalRemoved = 0;
-	
+
 		fChangeCallabcks = 0;
-		fTotalChanged = 0;		
+		fTotalChanged = 0;
 	}
 	/**
 	 * Creates sample breakpoints
-	 * 
+	 *
 	 * @return List
 	 */
 	protected List<IJavaLineBreakpoint> createBreakpoints(String typeName) throws Exception {
@@ -104,7 +104,7 @@
 		bps.add(createUnregisteredLineBreakpoint(72, typeName));
 		// instance method
 		bps.add(createUnregisteredLineBreakpoint(107, typeName));
-		// static method 
+		// static method
 		bps.add(createUnregisteredLineBreakpoint(53, typeName));
 		// case statement
 		bps.add(createUnregisteredLineBreakpoint(133, typeName));
@@ -118,7 +118,7 @@
 		bps.add(createUnregisteredLineBreakpoint(118, typeName));
 		// while
 		bps.add(createUnregisteredLineBreakpoint(97, typeName));
-		
+
 		return bps;
 	}
 
@@ -126,84 +126,84 @@
 	 * Tests a single breakpoint listener
 	 * @throws Exception
 	 */
-	public void testSingleListener() throws Exception {		
+	public void testSingleListener() throws Exception {
 		List<IJavaLineBreakpoint> bps = createBreakpoints("Breakpoints");
-		
+
 		try {
-			getBreakpointManager().addBreakpointListener((IBreakpointListener)this);		
-			
+			getBreakpointManager().addBreakpointListener((IBreakpointListener)this);
+
 			resetCallbacks();
 			getBreakpointManager().addBreakpoints(bps.toArray(new IBreakpoint[bps.size()]));
 			assertEquals("Should have received individual add notifications", bps.size(), fAddCallbacks);
 			assertEquals("Number of breakpoints added incorrect", bps.size(), fTotalAdded);
 			//assertEquals("Should be change callbacks for IMarker.MESSAGE updates", bps.size(), fChangeCallabcks);
 			assertEquals("Should be no removes", 0, fRemoveCallbacks);
-			
+
 			resetCallbacks();
 			getBreakpointManager().removeBreakpoints(bps.toArray(new IBreakpoint[bps.size()]), true);
 			assertEquals("Should have received individual remove notifications", bps.size(), fRemoveCallbacks);
 			assertEquals("Should of breakpoints removed incorrect", bps.size(), fTotalRemoved);
 			assertEquals("Should be no changes", 0, fChangeCallabcks);
 			assertEquals("Should be no additions", 0, fAddCallbacks);
-			
+
 		} finally {
 			getBreakpointManager().removeBreakpointListener((IBreakpointListener)this);
 			removeAllBreakpoints();
 		}
-		
+
 	}
-	
+
 	/**
 	 * Tests more than one simultaneous breakpoint listener
 	 * @throws Exception
 	 */
-	public void testMultiListener() throws Exception {		
+	public void testMultiListener() throws Exception {
 		List<IJavaLineBreakpoint> bps = createBreakpoints("Breakpoints");
-		
+
 		try {
-			getBreakpointManager().addBreakpointListener((IBreakpointsListener)this);		
-			
+			getBreakpointManager().addBreakpointListener((IBreakpointsListener)this);
+
 			resetCallbacks();
 			getBreakpointManager().addBreakpoints(bps.toArray(new IBreakpoint[bps.size()]));
 			assertEquals("Should have received one add notification", 1, fAddCallbacks);
 			assertEquals("Number of breakpoints added incorrect", bps.size(), fTotalAdded);
 			//assertEquals("Should be 1 change for IMarker.MESSAGE update", 1, fChangeCallabcks);
 			assertEquals("Should be no removes", 0, fRemoveCallbacks);
-			
+
 			resetCallbacks();
 			getBreakpointManager().removeBreakpoints(bps.toArray(new IBreakpoint[bps.size()]), true);
 			assertEquals("Should have received one remove notification", 1, fRemoveCallbacks);
 			assertEquals("Should of breakpoints removed incorrect", bps.size(), fTotalRemoved);
 			assertEquals("Should be no changes", 0, fChangeCallabcks);
 			assertEquals("Should be no additions", 0, fAddCallbacks);
-			
+
 		} finally {
 			getBreakpointManager().removeBreakpointListener((IBreakpointsListener)this);
 			removeAllBreakpoints();
 		}
-		
-	}	
-	
+
+	}
+
 	/**
 	 * Test multiple breakpoint listeners over a project open and close
 	 * @throws Exception
 	 */
-	public void testMultiListenerProjectCloseOpen() throws Exception {		
+	public void testMultiListenerProjectCloseOpen() throws Exception {
 		List<IJavaLineBreakpoint> bps = createBreakpoints("Breakpoints");
-		
+
 		try {
 			// close all editors before closing project: @see bug 204023
 			closeAllEditors();
-			
-			getBreakpointManager().addBreakpointListener((IBreakpointsListener)this);		
-			
+
+			getBreakpointManager().addBreakpointListener((IBreakpointsListener)this);
+
 			resetCallbacks();
 			getBreakpointManager().addBreakpoints(bps.toArray(new IBreakpoint[bps.size()]));
 			assertEquals("Should have received one add notification", 1, fAddCallbacks);
 			assertEquals("Number of breakpoints added incorrect", bps.size(), fTotalAdded);
 			//assertEquals("Should be 1 change for IMarker.MESSAGE update", 1, fChangeCallabcks);
 			assertEquals("Should be no removes", 0, fRemoveCallbacks);
-			
+
 			resetCallbacks();
 			get14Project().getProject().close(null);
 			waitForBuild();
@@ -211,28 +211,28 @@
 			assertEquals("Should of breakpoints removed incorrect", bps.size(), fTotalRemoved);
 			assertEquals("Should be no changes", 0, fChangeCallabcks);
 			assertEquals("Should be no additions", 0, fAddCallbacks);
-			
+
 			resetCallbacks();
 			get14Project().getProject().open(null);
 			waitForBuild();
 			assertEquals("Should have received one add notification", 1, fAddCallbacks);
 			assertEquals("Number of breakpoints added incorrect", bps.size(), fTotalAdded);
 			assertEquals("Should be no changes", 0, fChangeCallabcks);
-			assertEquals("Should be no removes", 0, fRemoveCallbacks);			
-			
+			assertEquals("Should be no removes", 0, fRemoveCallbacks);
+
 		} finally {
 			get14Project().getProject().open(null);
 			getBreakpointManager().removeBreakpointListener((IBreakpointsListener)this);
 			removeAllBreakpoints();
 		}
-		
-	}		
+
+	}
 
 	/**
 	 * Tests multiple breakpoint listeners over a compilation move operation
 	 * @throws Exception
 	 */
-	public void testMultiListenerMoveCompilationUnit() throws Exception {	
+	public void testMultiListenerMoveCompilationUnit() throws Exception {
 		IJavaProject project = get14Project();
 		ICompilationUnit cu = (ICompilationUnit)project.findElement(new Path("Breakpoints.java"));
 		assertNotNull("Did not find compilation unit", cu);
@@ -241,10 +241,10 @@
 		List<IJavaLineBreakpoint> bps = createBreakpoints("BreakpointsCopyA");
 		cu = (ICompilationUnit)project.findElement(new Path("BreakpointsCopyA.java"));
 		assertNotNull("Did not find compilation unit copy", cu);
-		
+
 		try {
-			getBreakpointManager().addBreakpointListener((IBreakpointsListener)this);		
-			
+			getBreakpointManager().addBreakpointListener((IBreakpointsListener)this);
+
 			resetCallbacks();
 			getBreakpointManager().addBreakpoints(bps.toArray(new IBreakpoint[bps.size()]));
 			waitForBuild();
@@ -252,7 +252,7 @@
 			assertEquals("Number of breakpoints added incorrect", bps.size(), fTotalAdded);
 			//assertEquals("Should be 1 change callback for IMarker.MESSAGE update", 1, fChangeCallabcks);
 			assertEquals("Should be no removes", 0, fRemoveCallbacks);
-			
+
 			resetCallbacks();
 			cu.rename("BreakpointsCopyTwoA.java", false, null);
 			waitForBuild();
@@ -260,24 +260,24 @@
 			assertEquals("Number of breakpoints removed incorrect", bps.size(), fTotalRemoved);
 			assertEquals("Should be no changes", 0, fChangeCallabcks);
 			assertEquals("Should be no additions", 0, fAddCallbacks);
-			
+
 			cu = (ICompilationUnit)project.findElement(new Path("BreakpointsCopyTwoA.java"));
 			assertNotNull("Did not find CU", cu);
 			cu.delete(false, null);
 			waitForBuild();
-			
+
 		} finally {
 			getBreakpointManager().removeBreakpointListener((IBreakpointsListener)this);
 			removeAllBreakpoints();
 		}
-		
-	}		
-	
+
+	}
+
 	/**
 	 * Tests a single breakpoint listener over the move of a compilation unit
 	 * @throws Exception
 	 */
-	public void testSingleListenerMoveCompilationUnit() throws Exception {	
+	public void testSingleListenerMoveCompilationUnit() throws Exception {
 		IJavaProject project = get14Project();
 		ICompilationUnit cu = (ICompilationUnit)project.findElement(new Path("Breakpoints.java"));
 		assertNotNull("Did not find compilation unit", cu);
@@ -286,10 +286,10 @@
 		List<IJavaLineBreakpoint> bps = createBreakpoints("BreakpointsCopy");
 		cu = (ICompilationUnit)project.findElement(new Path("BreakpointsCopy.java"));
 		assertNotNull("Did not find compilation unit copy", cu);
-		
+
 		try {
-			getBreakpointManager().addBreakpointListener((IBreakpointListener)this);		
-			
+			getBreakpointManager().addBreakpointListener((IBreakpointListener)this);
+
 			resetCallbacks();
 			getBreakpointManager().addBreakpoints(bps.toArray(new IBreakpoint[bps.size()]));
 			waitForBuild();
@@ -297,7 +297,7 @@
 			assertEquals("Number of breakpoints added incorrect", bps.size(), fTotalAdded);
 			//assertEquals("Should be no changes", 0, fChangeCallabcks);
 			assertEquals("Should be no removes", 0, fRemoveCallbacks);
-			
+
 			resetCallbacks();
 			cu.rename("BreakpointsCopyTwo.java", false, null);
 			waitForBuild();
@@ -305,23 +305,23 @@
 			assertEquals("Incorrect number of breakpoints removed", bps.size(), fTotalRemoved);
 			assertEquals("Should be no changes", 0, fChangeCallabcks);
 			assertEquals("Should be no additions", 0, fAddCallbacks);
-			
+
 			cu = (ICompilationUnit)project.findElement(new Path("BreakpointsCopyTwo.java"));
-			assertNotNull("Did not find CU", cu);			
+			assertNotNull("Did not find CU", cu);
 			cu.delete(false, null);
 			waitForBuild();
-			
+
 		} finally {
 			getBreakpointManager().removeBreakpointListener((IBreakpointListener)this);
 			removeAllBreakpoints();
 		}
-		
-	}			
+
+	}
 
 	/**
 	 * Creates and returns a line breakpoint at the given line number in the type with the
 	 * given name, that is <b>not</b> registered with the breakpoint manager.
-	 * 
+	 *
 	 * @param lineNumber line number
 	 * @param typeName type name
 	 */
@@ -362,7 +362,7 @@
 	@Override
 	public void breakpointsAdded(IBreakpoint[] breakpoints) {
 		fAddCallbacks++;
-		fTotalAdded += breakpoints.length;		
+		fTotalAdded += breakpoints.length;
 	}
 
 	/**
@@ -380,6 +380,6 @@
 	@Override
 	public void breakpointsRemoved(IBreakpoint[] breakpoints, IMarkerDelta[] deltas) {
 		fRemoveCallbacks++;
-		fTotalRemoved += breakpoints.length;			
+		fTotalRemoved += breakpoints.length;
 	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/BreakpointLocationVerificationTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/BreakpointLocationVerificationTests.java
index 6aa2be2..a3f9983 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/BreakpointLocationVerificationTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/BreakpointLocationVerificationTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -25,7 +25,7 @@
  * Tests breakpoint location locator.
  */
 public class BreakpointLocationVerificationTests extends AbstractDebugTest {
-	
+
 	/**
 	 * Constructor
 	 * @param name
@@ -47,7 +47,7 @@
 		parser.setResolveBindings(true);
 		return (CompilationUnit) parser.createAST(null);
 	}
-	
+
 	/**
 	 * Tests that the predefined location is locatable in the specified type
 	 * @param lineToTry
@@ -58,7 +58,7 @@
 	private void testLocation(int lineToTry, int expectedLineNumber, String expectedTypeName) throws JavaModelException {
 		testLocation(lineToTry, expectedLineNumber, expectedTypeName, expectedTypeName, false);
 	}
-	
+
 	/**
 	 * Tests that the predefined location is locatable in the specified type
 	 * @param lineToTry
@@ -74,7 +74,7 @@
 		CompilationUnit compilationUnit= parseCompilationUnit(type.getCompilationUnit());
 		ValidBreakpointLocationLocator locator= new ValidBreakpointLocationLocator(compilationUnit, lineToTry, true, bestmatch);
 		compilationUnit.accept(locator);
-		int lineNumber= locator.getLineLocation();		
+		int lineNumber= locator.getLineLocation();
 		assertEquals("Wrong line number", expectedLineNumber, lineNumber);
 		String typeName= locator.getFullyQualifiedTypeName();
 		if (typeName != null) {
@@ -89,101 +89,101 @@
 
 	/**
 	 * Tests setting a line breakpoint on a final field that is initialized
-	 * 
+	 *
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=376354
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testFinalFieldWithTypeDecl() throws Exception {
 		testLocation(14, 14, "FinalBreakpointLocations");
 	}
-	
+
 	/**
 	 * Tests setting a line breakpoint on a final field that is initialized looking for best match
-	 * 
+	 *
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=376354
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testFinalFieldWithTypeDecla() throws Exception {
 		testLocation(14, 14, "FinalBreakpointLocations", "FinalBreakpointLocations", true);
 	}
-	
+
 	/**
-	 * Tests setting a line breakpoint on an inner type member for the initializer of 
+	 * Tests setting a line breakpoint on an inner type member for the initializer of
 	 * a final local field variable
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=376354
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testFinalFieldWithTypeDecl3() throws Exception {
 		testLocation(17, 17, "FinalBreakpointLocations");
 	}
-	
+
 	/**
 	 * Tests setting a line breakpoint on an inner type member for the initializer of looking
-	 * for best match 
+	 * for best match
 	 * a final local field variable
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=376354
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testFinalFieldWithTypeDecl3a() throws Exception {
 		testLocation(17, 17, "FinalBreakpointLocations", "FinalBreakpointLocations", true);
 	}
-	
+
 	/**
-	 * Tests setting a line breakpoint on an inner-inner type member for the initializer of 
+	 * Tests setting a line breakpoint on an inner-inner type member for the initializer of
 	 * a final local field variable
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=376354
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testFinalFieldWithTypeDecl4() throws Exception {
 		testLocation(20, 20, "FinalBreakpointLocations");
 	}
-	
+
 	/**
-	 * Tests setting a line breakpoint on an inner-inner type member for the initializer of 
+	 * Tests setting a line breakpoint on an inner-inner type member for the initializer of
 	 * a final local field variable looking for best match
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=376354
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testFinalFieldWithTypeDecl4a() throws Exception {
 		testLocation(20, 20, "FinalBreakpointLocations", "FinalBreakpointLocations", true);
 	}
-	
+
 	/**
 	 * Tests setting a line breakpoint on a final field that has not been initialized
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=376354
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testFinalFieldWithTypeDecl5() throws Exception {
 		testLocation(27, 30, "FinalBreakpointLocations");
 	}
-	
+
 	/**
 	 * Tests setting a line breakpoint on a final field that has not been initialized looking
 	 * for best match
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=376354
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testFinalFieldWithTypeDecl5a() throws Exception {
 		testLocation(27, 30, "FinalBreakpointLocations", "FinalBreakpointLocations", true);
 	}
-	
+
 	/**
 	 * Test line before type declaration
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testLineBeforeTypeDeclaration() throws Exception {
 		testLocation(9, 18, "BreakpointsLocation");
 	}
-	
+
 	/**
 	 * Tests a specific breakpoint location
 	 * @throws Exception
@@ -191,7 +191,7 @@
 	public void testLineMethodSignature() throws Exception {
 		testLocation(32, 33, "BreakpointsLocation");
 	}
-	
+
 	/**
 	 * Tests a specific breakpoint location
 	 * @throws Exception
@@ -199,7 +199,7 @@
 	public void testLineInInnerType() throws Exception {
 		testLocation(25, 25, "BreakpointsLocation.InnerClass");
 	}
-	
+
 	/**
 	 * Tests a specific breakpoint location
 	 * @throws Exception
@@ -207,7 +207,7 @@
 	public void testLineInAnnonymousType() throws Exception {
 		testLocation(39, 39, "BreakpointsLocation");
 	}
-	
+
 	/**
 	 * Tests a specific breakpoint location
 	 * @throws Exception
@@ -217,7 +217,7 @@
 		testLocation(82, -1, "BreakpointsLocation");
 		// ******************************
 	}
-	
+
 	/**
 	 * Tests a specific breakpoint location
 	 * @throws Exception
@@ -225,7 +225,7 @@
 	public void testLineVariableDeclarationWithAssigment() throws Exception {
 		testLocation(43, 46, "BreakpointsLocation");
 	}
-    
+
 	/**
 	 * Tests that a breakpoint is not set on a final field
 	 * @throws Exception
@@ -233,16 +233,16 @@
 	public void testFieldLocationOnFinalField() throws Exception {
 		testLocation(13, 13, "org.eclipse.debug.tests.targets.BreakpointsLocationBug344984");
 	}
-	
+
 	/**
-	 * Tests that a breakpoint is not set on a final field looking 
+	 * Tests that a breakpoint is not set on a final field looking
 	 * for best match
 	 * @throws Exception
 	 */
 	public void testFieldLocationOnFinalFielda() throws Exception {
 		testLocation(13, 13, "org.eclipse.debug.tests.targets.BreakpointsLocationBug344984", "org.eclipse.debug.tests.targets.BreakpointsLocationBug344984", true);
 	}
-	
+
 	/**
 	 * Tests a specific breakpoint location
 	 * @throws Exception
@@ -250,7 +250,7 @@
     public void testEmptyLabel() throws Exception {
         testLocation(15, 16, "LabelTest");
     }
-	
+
     /**
 	 * Tests a specific breakpoint location
 	 * @throws Exception
@@ -258,7 +258,7 @@
     public void testNestedEmptyLabels() throws Exception {
         testLocation(19, 21, "LabelTest");
     }
-    
+
     /**
 	 * Tests a specific breakpoint location
 	 * @throws Exception
@@ -266,7 +266,7 @@
     public void testLabelWithCode() throws Exception {
         testLocation(21, 21, "LabelTest");
     }
-    
+
     /**
 	 * Tests a specific breakpoint location
 	 * @throws Exception
@@ -274,7 +274,7 @@
 	public void testLineFieldDeclarationWithAssigment() throws Exception {
 		testLocation(51, 55, "BreakpointsLocation");
 	}
-	
+
 	/**
 	 * Tests a specific breakpoint location
 	 * @throws Exception
@@ -282,7 +282,7 @@
 	public void testLineExpressionReplacedByConstant1() throws Exception {
 		testLocation(62, 62, "BreakpointsLocation");
 	}
-	
+
 	/**
 	 * Tests a specific breakpoint location
 	 * @throws Exception
@@ -290,7 +290,7 @@
 	public void testLineExpressionReplacedByConstant2() throws Exception {
 		testLocation(64, 62, "BreakpointsLocation");
 	}
-	
+
 	/**
 	 * Tests a specific breakpoint location
 	 * @throws Exception
@@ -298,7 +298,7 @@
 	public void testLineExpressionNotReplacedByConstant1() throws Exception {
 		testLocation(70, 70, "BreakpointsLocation");
 	}
-	
+
 	/**
 	 * Tests a specific breakpoint location
 	 * @throws Exception
@@ -306,7 +306,7 @@
 	public void testLineExpressionNotReplacedByConstant2() throws Exception {
 		testLocation(72, 72, "BreakpointsLocation");
 	}
-	
+
 	/**
 	 * Tests a specific breakpoint location
 	 * @throws Exception
@@ -314,7 +314,7 @@
 	public void testLineLitteral1() throws Exception {
 		testLocation(46, 46, "BreakpointsLocation");
 	}
-	
+
 	/**
 	 * Tests a specific breakpoint location
 	 * @throws Exception
@@ -322,7 +322,7 @@
 	public void testLineLitteral2() throws Exception {
 		testLocation(55, 55, "BreakpointsLocation");
 	}
-	
+
 	/**
 	 * Tests a specific breakpoint location
 	 * @throws Exception
@@ -358,7 +358,7 @@
 		String typeName= locator.getTypeName();
 		assertEquals("Wrong Type Name", expectedTypeName, typeName);
 	}
-	
+
 	/**
 	 * Tests that a specific filed is at the correct location
 	 * @throws Exception
@@ -366,7 +366,7 @@
 	public void testFieldLocationOnField() throws Exception {
 		testField(30, 20, "fList", "BreakpointsLocation");
 	}
-	
+
 	/**
 	 * Tests that a specific filed is at the correct location
 	 * @throws Exception
@@ -374,7 +374,7 @@
 	public void testFieldLocationNotOnField() throws Exception {
 		testField(33, 18, null, null);
 	}
-	
+
 	/**
 	 * Tests that a specific method is locatable in the specified type at the given offset and line
 	 * @param line
@@ -399,7 +399,7 @@
 		String methodSignature= locator.getMethodSignature();
 		assertEquals("Wrong method signature", expectedMethodSignature, methodSignature);
 	}
-	
+
 	/**
 	 * Tests that a specific method is locatable in a specific location
 	 * @throws Exception
@@ -407,7 +407,7 @@
 	public void testMethodOnSignature() throws Exception {
 		testMethod(17, 20, "test1", "BreakpointsLocation", "()V");
 	}
-	
+
 	/**
 	 * Tests that a specific method is locatable in a specific location
 	 * @throws Exception
@@ -415,7 +415,7 @@
 	public void testMethodOnCode() throws Exception {
 		testMethod(19, 17, "test1", "BreakpointsLocation", "()V");
 	}
-	
+
 	/**
 	 * Tests that a specific method is locatable in a specific location
 	 * @throws Exception
@@ -423,7 +423,7 @@
 	public void testMethodNotOnMethod() throws Exception {
 		testMethod(30, 1, null, null, null);
 	}
-	
+
 	/**
 	 * Tests that a specific method is locatable in a specific location
 	 * @throws Exception
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/BreakpointMethodLocator.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/BreakpointMethodLocator.java
index 05b4251..c77c93a 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/BreakpointMethodLocator.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/BreakpointMethodLocator.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -32,13 +32,13 @@
  * Compute the name of field declared at a given position from an JDOM CompilationUnit.
  */
 public class BreakpointMethodLocator extends ASTVisitor {
-	
+
 	private int fPosition;
-	
+
 	private String fTypeName;
-	
+
 	private String fMethodName;
-	
+
 	private String fMethodSignature;
 
 	private boolean fFound;
@@ -80,13 +80,13 @@
 	public String getTypeName() {
 		return fTypeName;
 	}
-	
+
 	private boolean containsPosition(ASTNode node) {
 		int startPosition= node.getStartPosition();
 		int endPosition = startPosition + node.getLength();
 		return startPosition <= fPosition && fPosition <= endPosition;
 	}
-	
+
 	private String computeMethodSignature(MethodDeclaration node) {
 		if (node.getExtraDimensions() != 0 || Modifier.isAbstract(node.getModifiers())) {
 			return null;
@@ -112,7 +112,7 @@
 		}
 		return signature.toString();
 	}
-	
+
 	private void appendTypeLetter(StringBuffer signature, PrimitiveType type) {
 		PrimitiveType.Code code= type.getPrimitiveTypeCode();
 		if (code == PrimitiveType.BYTE) {
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/BreakpointWorkingSetTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/BreakpointWorkingSetTests.java
index 5e5e517..02f2d5a 100755
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/BreakpointWorkingSetTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/BreakpointWorkingSetTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -26,7 +26,7 @@
 
 /**
  * Tests adding breakpoints and automatic addition to working sets.
- * 
+ *
  * @since 3.2
  */
 public class BreakpointWorkingSetTests extends AbstractBreakpointWorkingSetTest {
@@ -57,7 +57,7 @@
 			getWorkingSetManager().removeWorkingSet(set);
 		}
 	}
-	
+
 	/**
 	 * Tests adding a breakpoint with no default working set
 	 * @throws Exception
@@ -74,14 +74,14 @@
 			removeAllBreakpoints();
 			getWorkingSetManager().removeWorkingSet(set);
 		}
-	}	
-	
+	}
+
 	/**
 	 * Tests that we can have N working set shown in the view and add additional breakpoints
 	 * to the default ones without causing exceptions
-	 * 
+	 *
 	 * In this test we have to open / show the view to cause the insert update to occur
-	 * 
+	 *
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=380614
 	 * @throws Exception
 	 * @since 3.8.100
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/ConditionalBreakpointsTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/ConditionalBreakpointsTests.java
index 17209a9..581cde2 100755
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/ConditionalBreakpointsTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/ConditionalBreakpointsTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -23,7 +23,7 @@
  * Tests conditional breakpoints.
  */
 public class ConditionalBreakpointsTests extends AbstractDebugTest {
-	
+
 	/**
 	 * Constructor
 	 * @param name
@@ -39,7 +39,7 @@
 	public void testSimpleConditionalBreakpoint() throws Exception {
 		String typeName = "HitCountLooper";
 		IJavaLineBreakpoint bp = createConditionalLineBreakpoint(16, typeName, "i == 3", true);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -47,17 +47,17 @@
 			IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
 			IVariable var = findVariable(frame, "i");
 			assertNotNull("Could not find variable 'i'", var);
-			
+
 			IJavaPrimitiveValue value = (IJavaPrimitiveValue)var.getValue();
 			assertNotNull("variable 'i' has no value", value);
 			int iValue = value.getIntValue();
 			assertTrue("value of 'i' should be '3', but was " + iValue, iValue == 3);
-			
+
 			bp.delete();
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
 
 	/**
@@ -67,7 +67,7 @@
 	public void testStaticMethodCallConditionalBreakpoint() throws Exception {
 		String typeName = "HitCountLooper";
 		IJavaLineBreakpoint bp = createConditionalLineBreakpoint(16, typeName, "ArgumentsTests.fact(i) == 24", true);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -75,17 +75,17 @@
 			IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
 			IVariable var = findVariable(frame, "i");
 			assertNotNull("Could not find variable 'i'", var);
-			
+
 			IJavaPrimitiveValue value = (IJavaPrimitiveValue)var.getValue();
 			assertNotNull("variable 'i' has no value", value);
 			int iValue = value.getIntValue();
 			assertTrue("value of 'i' should be '4', but was " + iValue, iValue == 4);
-			
+
 			bp.delete();
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
 
 	/**
@@ -95,7 +95,7 @@
 	public void testSimpleConditionalBreakpointSuspendOnChange() throws Exception {
 		String typeName = "HitCountLooper";
 		IJavaLineBreakpoint bp = createConditionalLineBreakpoint(16, typeName, "i != 9", false);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -103,28 +103,28 @@
 			IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
 			IVariable var = findVariable(frame, "i");
 			assertNotNull("Could not find variable 'i'", var);
-			
+
 			IJavaPrimitiveValue value = (IJavaPrimitiveValue)var.getValue();
 			assertNotNull("variable 'i' has no value", value);
 			int iValue = value.getIntValue();
 			assertEquals(0, iValue);
-			
+
 			resumeToLineBreakpoint(thread, bp);
-			
+
 			frame = (IJavaStackFrame)thread.getTopStackFrame();
 			var = findVariable(frame, "i");
 			assertNotNull("Could not find variable 'i'", var);
-			
+
 			value = (IJavaPrimitiveValue)var.getValue();
 			assertNotNull("variable 'i' has no value", value);
 			iValue = value.getIntValue();
 			assertEquals(9, iValue);
-			
+
 			bp.delete();
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
 
 	/**
@@ -135,7 +135,7 @@
 		String typeName = "ConditionalStepReturn";
 		IJavaLineBreakpoint lineBreakpoint = createLineBreakpoint(17, typeName);
 		createConditionalLineBreakpoint(18, typeName, "!bool", true);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, lineBreakpoint);
@@ -146,20 +146,20 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
 
 	/**
 	 * Tests a breakpoint condition *is* evaluated when it coincides with a step end.
 	 * See bug 265714.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testEvalConditionOnStep() throws Exception {
 		String typeName = "HitCountLooper";
 		IJavaLineBreakpoint bp = createLineBreakpoint(16, typeName);
 		IJavaLineBreakpoint bp2 = createConditionalLineBreakpoint(17, typeName, "i = 3; return true;", true);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -168,35 +168,35 @@
 			IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
 			IVariable var = findVariable(frame, "i");
 			assertNotNull("Could not find variable 'i'", var);
-			
+
 			IJavaPrimitiveValue value = (IJavaPrimitiveValue)var.getValue();
 			assertNotNull("variable 'i' has no value", value);
 			int iValue = value.getIntValue();
 			assertEquals("'i' has wrong value", 3, iValue);
-			
+
 			// breakpoint should still be available from thread, even though not eval'd
 			IBreakpoint[] breakpoints = thread.getBreakpoints();
 			assertEquals("Wrong number of breakpoints", 1, breakpoints.length);
 			assertEquals("Wrong breakpoint", bp2, breakpoints[0]);
-			
+
 			bp.delete();
 			bp2.delete();
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}	
-	
+		}
+	}
+
 	/**
 	 * Tests that a thread can be suspended when executing a long-running condition.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testSuspendLongRunningCondition() throws Exception {
 		String typeName = "MethodLoop";
 		IJavaLineBreakpoint first = createLineBreakpoint(19, typeName);
 		createConditionalLineBreakpoint(29, typeName, "for (int x = 0; x < 1000; x++) { System.out.println(x);} Thread.sleep(200); return true;", true);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, first);
@@ -212,13 +212,13 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
+		}
 	}
-	
+
 	/**
 	 * Tests that a conditional breakpoint with an expression that will hit a breakpoint
 	 * will complete the conditional expression evaluation (bug 269231).
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testConditionalExpressionIgnoresBreakpoint() throws Exception {
@@ -235,9 +235,9 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
+		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=401270
 	 * @throws Exception
@@ -245,7 +245,7 @@
 	public void testConditionalMultiInfix1() throws Exception {
 		String typeName = "ConditionalStepReturn";
 		createConditionalLineBreakpoint(17, typeName, "(true==true==true==true==true)", true);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread = launchToBreakpoint(typeName);
@@ -253,9 +253,9 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
+		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=401270
 	 * @throws Exception
@@ -263,7 +263,7 @@
 	public void testConditionalMultiInfix2() throws Exception {
 		String typeName = "ConditionalStepReturn";
 		createConditionalLineBreakpoint(17, typeName, "!(true==true==true==true==true)", false);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread = launchToBreakpoint(typeName);
@@ -271,9 +271,9 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
+		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=401270
 	 * @throws Exception
@@ -281,7 +281,7 @@
 	public void testConditionalMultiInfix3() throws Exception {
 		String typeName = "ConditionalStepReturn";
 		createConditionalLineBreakpoint(17, typeName, "(true&&true&&true&&true&&true)", true);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread = launchToBreakpoint(typeName);
@@ -289,9 +289,9 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
+		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=401270
 	 * @throws Exception
@@ -299,7 +299,7 @@
 	public void testConditionalMultiInfix4() throws Exception {
 		String typeName = "ConditionalStepReturn";
 		createConditionalLineBreakpoint(17, typeName, "!(true&&true&&true&&true&&true)", false);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread = launchToBreakpoint(typeName);
@@ -307,9 +307,9 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
+		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=401270
 	 * @throws Exception
@@ -317,7 +317,7 @@
 	public void testConditionalMultiInfix5() throws Exception {
 		String typeName = "ConditionalStepReturn";
 		createConditionalLineBreakpoint(17, typeName, "true&&true||false", true);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread = launchToBreakpoint(typeName);
@@ -325,9 +325,9 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
+		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=401270
 	 * @throws Exception
@@ -335,7 +335,7 @@
 	public void testConditionalMultiInfix6() throws Exception {
 		String typeName = "ConditionalStepReturn";
 		createConditionalLineBreakpoint(17, typeName, "(1<=2==true||false)", true);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread = launchToBreakpoint(typeName);
@@ -343,9 +343,9 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
+		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=401270
 	 * @throws Exception
@@ -353,7 +353,7 @@
 	public void testConditionalMultiInfix7() throws Exception {
 		String typeName = "ConditionalStepReturn";
 		createConditionalLineBreakpoint(17, typeName, "!(1<=2==true||false)", false);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread = launchToBreakpoint(typeName);
@@ -361,9 +361,9 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
+		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=401270
 	 * @throws Exception
@@ -371,7 +371,7 @@
 	public void testConditionalMultiInfix8() throws Exception {
 		String typeName = "ConditionalStepReturn";
 		createConditionalLineBreakpoint(17, typeName, "(true != false && false)", false);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread = launchToBreakpoint(typeName);
@@ -379,9 +379,9 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
+		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=401270
 	 * @throws Exception
@@ -389,7 +389,7 @@
 	public void testConditionalMultiInfix9() throws Exception {
 		String typeName = "ConditionalStepReturn";
 		createConditionalLineBreakpoint(17, typeName, "!(true != false && false)", true);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread = launchToBreakpoint(typeName);
@@ -397,9 +397,9 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
+		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=401270
 	 * @throws Exception
@@ -407,7 +407,7 @@
 	public void testConditionalMultiInfix10() throws Exception {
 		String typeName = "ConditionalStepReturn";
 		createConditionalLineBreakpoint(17, typeName, "(true||true||true||true||true)", true);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread = launchToBreakpoint(typeName);
@@ -415,9 +415,9 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
+		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=401270
 	 * @throws Exception
@@ -425,7 +425,7 @@
 	public void testConditionalMultiInfix11() throws Exception {
 		String typeName = "ConditionalStepReturn";
 		createConditionalLineBreakpoint(17, typeName, "!(true||true||true||true||true)", false);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread = launchToBreakpoint(typeName);
@@ -433,9 +433,9 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
+		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=401270
 	 * @throws Exception
@@ -443,7 +443,7 @@
 	public void testConditionalMultiInfix12() throws Exception {
 		String typeName = "ConditionalStepReturn";
 		createConditionalLineBreakpoint(17, typeName, "(true==true||true!=true&&true)", true);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread = launchToBreakpoint(typeName);
@@ -451,9 +451,9 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
+		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=401270
 	 * @throws Exception
@@ -461,7 +461,7 @@
 	public void testConditionalMultiInfix13() throws Exception {
 		String typeName = "ConditionalStepReturn";
 		createConditionalLineBreakpoint(17, typeName, "!(true==true||true!=true&&true)", false);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread = launchToBreakpoint(typeName);
@@ -469,12 +469,12 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
+		}
 	}
 
 	/**
 	 * Tests a breakpoint with a simple systrace Launch should don't suspend for simple systrace
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testSystracelBreakpoint() throws Exception {
@@ -496,7 +496,7 @@
 
 	/**
 	 * Tests a breakpoint with a simple code which returns Integer Object, Launch should don't suspend for non true boolean returns
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testConditionBreakpointReturnNonBooleanObject() throws Exception {
@@ -518,7 +518,7 @@
 
 	/**
 	 * Tests a breakpoint with a simple code which returns Boolean Object with true, Launch should suspend for true Boolean returns
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testConditionBreakpointReturnBooleanObjectTrue() throws Exception {
@@ -539,7 +539,7 @@
 
 	/**
 	 * Tests a breakpoint with a simple code which returns Boolean Object with false, Launch should not suspend for false Boolean returns
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testConditionBreakpointReturnBooleanObjectFalse() throws Exception {
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/ConditionalBreakpointsWithGenerics.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/ConditionalBreakpointsWithGenerics.java
index d3872e1..68d4138 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/ConditionalBreakpointsWithGenerics.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/ConditionalBreakpointsWithGenerics.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     Jesper Steen Moller - initial API and implementation, adapted from
  *     Stefan Mandels contribution in bug 341232, and existing debug tests
@@ -21,7 +21,7 @@
  * Tests conditional breakpoints.
  */
 public class ConditionalBreakpointsWithGenerics extends AbstractDebugTest {
-	
+
 	/**
 	 * Constructor
 	 * @param name
@@ -41,7 +41,7 @@
 	/**
 	 * Tests a breakpoint with a simple condition does not cause errors
 	 * multiple use of the same generic type 'T'
-	 * 
+	 *
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=341232
 	 * @throws Exception
 	 */
@@ -51,20 +51,20 @@
 		createConditionalLineBreakpoint(33, typeName, "false", true);
 		createConditionalLineBreakpoint(44, typeName, "false", true);
 		ILineBreakpoint bp = createConditionalLineBreakpoint(56, innerTypeName, "true", true);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp); // If compiled correctly, this will jump over bp1-bp3 !!
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * Tests a breakpoint with a simple condition does not cause errors
 	 * with many inner types with generics
-	 * 
+	 *
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=341232
 	 * @throws Exception
 	 */
@@ -81,11 +81,11 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * Tests a breakpoint with a simple condition does not cause errors
 	 * with many inner types with generics
-	 * 
+	 *
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=341232
 	 * @throws Exception
 	 */
@@ -102,11 +102,11 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * Tests a breakpoint with a simple condition does not cause errors
 	 * with many inner types with generics
-	 * 
+	 *
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=341232
 	 * @throws Exception
 	 */
@@ -123,11 +123,11 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * Tests a breakpoint with a simple condition does not cause errors
 	 * with multiple generic types 'T', 'E', 'K'
-	 * 
+	 *
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=341232
 	 * @throws Exception
 	 */
@@ -144,11 +144,11 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * Tests a breakpoint with a simple condition does not cause errors
 	 * with multiple generic types 'T', 'E', 'K'
-	 * 
+	 *
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=341232
 	 * @throws Exception
 	 */
@@ -165,10 +165,10 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * Tests a breakpoint with a condition that includes generics
-	 * 
+	 *
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=341232
 	 * @throws Exception
 	 */
@@ -188,11 +188,11 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * Tests a breakpoint with a generified condition in a type that includes
 	 * duplicate generic declarations
-	 * 
+	 *
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=341232
 	 * @throws Exception
 	 */
@@ -211,10 +211,10 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * Tests a breakpoint with a condition that includes generics from nested classes
-	 * 
+	 *
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=341232
 	 * @throws Exception
 	 */
@@ -236,10 +236,10 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * Tests a breakpoint with a condition that includes generics from nested classes
-	 * 
+	 *
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=403028
 	 * @throws Exception
 	 */
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/DeferredBreakpointTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/DeferredBreakpointTests.java
index 90b3f63..d65f6ca 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/DeferredBreakpointTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/DeferredBreakpointTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -28,7 +28,7 @@
  * Tests deferred breakpoints.
  */
 public class DeferredBreakpointTests extends AbstractDebugTest {
-	
+
 	/**
 	 * Constructor
 	 * @param name
@@ -57,7 +57,7 @@
 				22,		// inner class
 				72,		// return true
 				107,	// instance method
-				53,		// static method 
+				53,		// static method
 				133,	// case statement
 				140,	// default statement
 				146,	// synchronized blocks
@@ -66,7 +66,7 @@
 				97		// while
 		};
 		createBreakpoints(typeName, bps, lines);
-		
+
 		IJavaThread thread= null;
 		try {
 			// do not register launch - see bug 130911
@@ -90,9 +90,9 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	private void createBreakpoints(String typeName, List<IBreakpoint> breakpoints, int[] lineNumbers) throws Exception {
 		IType type = get14Project().findType(typeName);
 		assertNotNull(type);
@@ -114,14 +114,14 @@
 		String typeName = "Breakpoints";
 		ILineBreakpoint bp = createLineBreakpoint(52, typeName);
 		bp.setEnabled(false);
-		
+
 		IJavaDebugTarget debugTarget = null;
 		try {
 			debugTarget= launchAndTerminate(typeName);
 		} finally {
 			terminateAndRemove(debugTarget);
 			removeAllBreakpoints();
-		}				
+		}
 	}
 
 	/**
@@ -132,7 +132,7 @@
 		String typeName = "HitCountLooper";
 		ILineBreakpoint bp = createLineBreakpoint(16, typeName);
 		bp.setEnabled(true);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -141,9 +141,9 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}				
+		}
 	}
-	
+
 	/**
 	 * Tests skipping a single line breakpoint
 	 * @throws Exception
@@ -152,7 +152,7 @@
 		String typeName = "Breakpoints";
 		ILineBreakpoint bp = createLineBreakpoint(52, typeName);
 		createLineBreakpoint(54, typeName);
-		
+
 		IJavaThread thread = null;
 		try {
 		    thread= launchToLineBreakpoint(typeName, bp);
@@ -162,6 +162,6 @@
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 			getBreakpointManager().setEnabled(true);
-		}			    
+		}
 	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/ExceptionBreakpointTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/ExceptionBreakpointTests.java
index d06926f..0a9aa61 100755
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/ExceptionBreakpointTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/ExceptionBreakpointTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -23,7 +23,7 @@
  */
 
 public class ExceptionBreakpointTests extends AbstractDebugTest {
-	
+
 	/**
 	 * Constructor
 	 * @param name the name of the test
@@ -38,13 +38,13 @@
 	 */
 	public void testCaughtException() throws Exception {
 		String typeName = "ThrowsException";
-		IJavaExceptionBreakpoint ex = createExceptionBreakpoint("TestException", true, false);		
-		
+		IJavaExceptionBreakpoint ex = createExceptionBreakpoint("TestException", true, false);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			IBreakpoint hit = getBreakpoint(thread);
 			assertNotNull("suspended, but not by breakpoint", hit);
 			assertEquals("suspended, but not by exception breakpoint", ex ,hit);
@@ -52,22 +52,22 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * tests that breakpoint suspends on uncaught exceptions
 	 * @throws Exception
 	 */
 	public void testUncaughtException() throws Exception {
 		String typeName = "HitCountException";
-		IJavaExceptionBreakpoint ex = createExceptionBreakpoint("java.lang.NullPointerException", false, true);		
-		
+		IJavaExceptionBreakpoint ex = createExceptionBreakpoint("java.lang.NullPointerException", false, true);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			IBreakpoint hit = getBreakpoint(thread);
 			assertNotNull("suspended, but not by breakpoint", hit);
 			assertEquals("suspended, but not by exception breakpoint", ex ,hit);
@@ -77,18 +77,18 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testDisabledCaughtException() throws Exception {
 		String typeName = "ThrowsNPE";
-		IJavaExceptionBreakpoint ex = createExceptionBreakpoint("java.lang.NullPointerException", true, false);		
+		IJavaExceptionBreakpoint ex = createExceptionBreakpoint("java.lang.NullPointerException", true, false);
 		ex.setEnabled(false);
-		
+
 		IJavaDebugTarget debugTarget= null;
 		try {
 			debugTarget= launchAndTerminate(typeName);
@@ -96,18 +96,18 @@
 		} finally {
 			terminateAndRemove(debugTarget);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
-	 * tests that the breakpoint does not suspend for disabled breakpoint set for uncaught exceptions 
+	 * tests that the breakpoint does not suspend for disabled breakpoint set for uncaught exceptions
 	 * @throws Exception
 	 */
 	public void testDisabledUncaughtNPE() throws Exception {
 		String typeName = "MultiThreadedException";
-		IJavaExceptionBreakpoint ex = createExceptionBreakpoint("java.lang.NullPointerException", false, true);		
+		IJavaExceptionBreakpoint ex = createExceptionBreakpoint("java.lang.NullPointerException", false, true);
 		ex.setEnabled(false);
-		
+
 		IJavaDebugTarget debugTarget= null;
 		try {
 			debugTarget= launchAndTerminate(typeName);
@@ -115,23 +115,23 @@
 		} finally {
 			terminateAndRemove(debugTarget);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * tests that the breakpoint will only suspend on a breakpoint in the inclusion filters
 	 * @throws Exception
 	 */
 	public void testInclusiveScopedException() throws Exception {
 		String typeName = "ThrowsException";
-		IJavaExceptionBreakpoint ex = createExceptionBreakpoint("TestException", true, false);		
+		IJavaExceptionBreakpoint ex = createExceptionBreakpoint("TestException", true, false);
 		ex.setInclusionFilters(new String[] {"ThrowsException"});
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			IBreakpoint hit = getBreakpoint(thread);
 			assertNotNull("suspended, but not by breakpoint", hit);
 			assertEquals("suspended, but not by exception breakpoint", ex ,hit);
@@ -139,7 +139,7 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
 
 	/**
@@ -148,9 +148,9 @@
 	 */
 	public void testExclusiveScopedException() throws Exception {
 		String typeName = "ThrowsException";
-		IJavaExceptionBreakpoint ex = createExceptionBreakpoint("TestException", true, false);		
+		IJavaExceptionBreakpoint ex = createExceptionBreakpoint("TestException", true, false);
 		ex.setExclusionFilters(new String[] {"ThrowsException"});
-		
+
 		IJavaDebugTarget debugTarget = null;
 		try {
 			debugTarget = launchAndTerminate(typeName);
@@ -158,7 +158,7 @@
 		} finally {
 			terminateAndRemove(debugTarget);
 			removeAllBreakpoints();
-		}		
+		}
 	}
 
 	/**
@@ -167,22 +167,22 @@
 	 */
 	public void testHitCountException() throws Exception {
 		String typeName = "HitCountException";
-		IJavaExceptionBreakpoint ex = createExceptionBreakpoint("java.lang.NullPointerException", true, true);		
+		IJavaExceptionBreakpoint ex = createExceptionBreakpoint("java.lang.NullPointerException", true, true);
 		ex.setHitCount(2);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
 			IJavaStackFrame frame= (IJavaStackFrame)thread.getTopStackFrame();
 			assertEquals("Should have been suspended at linenumber", 35, frame.getLineNumber());
-			
+
 			ex.delete();
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * tests that the breakpoint will suspend at an NPE with more than one exclusion filter, just not suspend in either
 	 * of the classes for the exclusion filter
@@ -190,9 +190,9 @@
 	 */
 	public void testMultiExclusiveScopedExceptionHit() throws Exception {
 		String typeName = "ThrowsNPE";
-		IJavaExceptionBreakpoint ex = createExceptionBreakpoint("java.lang.NullPointerException", true, false);		
+		IJavaExceptionBreakpoint ex = createExceptionBreakpoint("java.lang.NullPointerException", true, false);
 		ex.setExclusionFilters(new String[] {"TestIO", "Breakpoints"});
-		
+
 		IJavaThread thread = null;
 		try {
 			thread = launchToBreakpoint(typeName);
@@ -202,18 +202,18 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}	
-	
+		}
+	}
+
 	/**
 	 * tests that the breakpoint does not suspend for multiple exclusion filters
 	 * @throws Exception
 	 */
 	public void testMultiExclusiveScopedExceptionMissed() throws Exception {
 		String typeName = "ThrowsException";
-		IJavaExceptionBreakpoint ex = createExceptionBreakpoint("TestException", true, false);		
+		IJavaExceptionBreakpoint ex = createExceptionBreakpoint("TestException", true, false);
 		ex.setExclusionFilters(new String[] {"ThrowsException2", "ThrowsException"});
-		
+
 		IJavaDebugTarget target= null;
 		try {
 			target = launchAndTerminate(typeName);
@@ -221,18 +221,18 @@
 		} finally {
 			terminateAndRemove(target);
 			removeAllBreakpoints();
-		}		
-	}			
-	
+		}
+	}
+
 	/**
 	 * tests that a breakpoint is hit with multiple inclusion filters set
 	 * @throws Exception
 	 */
 	public void testMultiInclusiveScopedExceptionHit() throws Exception {
 		String typeName = "ThrowsNPE";
-		IJavaExceptionBreakpoint ex = createExceptionBreakpoint("java.lang.NullPointerException", true, false);		
+		IJavaExceptionBreakpoint ex = createExceptionBreakpoint("java.lang.NullPointerException", true, false);
 		ex.setInclusionFilters(new String[] {"ThrowsNPE", "Breakpoints"});
-		
+
 		IJavaThread thread = null;
 		try {
 			thread = launchToBreakpoint(typeName);
@@ -242,18 +242,18 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}	
-	
+		}
+	}
+
 	/**
 	 * tests that the breakpoint does not suspend with multiple inclusion filters
 	 * @throws Exception
 	 */
 	public void testMultiInclusiveScopedExceptionMissed() throws Exception {
 		String typeName = "ThrowsNPE";
-		IJavaExceptionBreakpoint ex = createExceptionBreakpoint("java.lang.NullPointerException", true, false);		
+		IJavaExceptionBreakpoint ex = createExceptionBreakpoint("java.lang.NullPointerException", true, false);
 		ex.setInclusionFilters(new String[] {"TestIO", "Breakpoints"});
-		
+
 		IJavaDebugTarget target= null;
 		try {
 			target = launchAndTerminate(typeName);
@@ -261,19 +261,19 @@
 		} finally {
 			terminateAndRemove(target);
 			removeAllBreakpoints();
-		}		
-	}	
-	
+		}
+	}
+
 	/**
 	 * test that breakpoint suspends with multi inclusion and exclusion filters
 	 * @throws Exception
 	 */
 	public void testMultiInclusiveExclusiveScopedExceptionHit() throws Exception {
 		String typeName = "ThrowsNPE";
-		IJavaExceptionBreakpoint ex = createExceptionBreakpoint("java.lang.NullPointerException", true, false);		
+		IJavaExceptionBreakpoint ex = createExceptionBreakpoint("java.lang.NullPointerException", true, false);
 		ex.setInclusionFilters(new String[] {"ThrowsNPE", "Breakpoints"});
 		ex.setExclusionFilters(new String[] {"HitCountException", "MethodLoop"});
-		
+
 		IJavaThread thread = null;
 		try {
 			thread = launchToBreakpoint(typeName);
@@ -283,19 +283,19 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}	
-	
+		}
+	}
+
 	/**
 	 * tests that breakpoint does not suspend with multi inclusion and exclusion filters
 	 * @throws Exception
 	 */
 	public void testMultiInclusiveExclusiveScopedExceptionMissed() throws Exception {
 		String typeName = "ThrowsNPE";
-		IJavaExceptionBreakpoint ex = createExceptionBreakpoint("java.lang.NullPointerException", true, false);		
+		IJavaExceptionBreakpoint ex = createExceptionBreakpoint("java.lang.NullPointerException", true, false);
 		ex.setInclusionFilters(new String[] {"TestIO", "Breakpoints"});
 		ex.setExclusionFilters(new String[] {"ThrowsNPE", "MethodLoop"});
-		
+
 		IJavaDebugTarget target= null;
 		try {
 			target = launchAndTerminate(typeName);
@@ -303,29 +303,29 @@
 		} finally {
 			terminateAndRemove(target);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * tests that breakpoint is skipped when told to do so
 	 * @throws Exception
 	 */
 	public void testSkipExceptionBreakpoint() throws Exception {
 		String typeName = "ThrowsNPE";
-		createExceptionBreakpoint("java.lang.NullPointerException", true, false);	
+		createExceptionBreakpoint("java.lang.NullPointerException", true, false);
 		IJavaLineBreakpoint lineBreakpoint = createLineBreakpoint(15, typeName);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, lineBreakpoint);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			getBreakpointManager().setEnabled(false);
 			resumeAndExit(thread);
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 			getBreakpointManager().setEnabled(true);
-		}		
-	}	
+		}
+	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/HitCountBreakpointsTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/HitCountBreakpointsTests.java
index b625ea0..399f54b 100755
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/HitCountBreakpointsTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/HitCountBreakpointsTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -38,7 +38,7 @@
 		String typeName = "HitCountLooper";
 		IJavaLineBreakpoint bp = createLineBreakpoint(16, typeName);
 		bp.setHitCount(3);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -46,30 +46,30 @@
 			IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
 			IVariable var = findVariable(frame, "i");
 			assertNotNull("Could not find variable 'i'", var);
-			
+
 			IJavaPrimitiveValue value = (IJavaPrimitiveValue)var.getValue();
 			assertNotNull("variable 'i' has no value", value);
 			int iValue = value.getIntValue();
 			assertTrue("value of 'i' should be '2', but was " + iValue, iValue == 2);
-			
+
 			bp.setHitCount(2);
 			IJavaThread thread2 = resumeToLineBreakpoint(thread, bp);
-			assertTrue("second suspended thread not the same as first", thread == thread2);			
-			
+			assertTrue("second suspended thread not the same as first", thread == thread2);
+
 			frame = (IJavaStackFrame)thread2.getTopStackFrame();
 			var = findVariable(frame, "i");
 			value = (IJavaPrimitiveValue)var.getValue();
 			assertNotNull("variable 'i' has no value", value);
 			iValue = value.getIntValue();
 			assertTrue("value of 'i' should be '4', but was " + iValue, iValue == 4);
-			
+
 			resumeAndExit(thread2);
-			
+
 			bp.delete();
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
 
 	/**
@@ -81,7 +81,7 @@
 		String typeName = "HitCountLooper";
 		IJavaLineBreakpoint bp = createLineBreakpoint(16, typeName);
 		bp.setHitCount(3);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -89,18 +89,18 @@
 			IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
 			IVariable var = findVariable(frame, "i");
 			assertNotNull("Could not find variable 'i'", var);
-			
+
 			IJavaPrimitiveValue value = (IJavaPrimitiveValue)var.getValue();
 			assertNotNull("variable 'i' has no value", value);
 			int iValue = value.getIntValue();
 			assertTrue("value of 'i' should be '2', but was " + iValue, iValue == 2);
-			
+
 			resumeAndExit(thread);
-			
+
 			bp.delete();
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/ImportBreakpointsTest.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/ImportBreakpointsTest.java
index 3f5885d..0ff0a73 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/ImportBreakpointsTest.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/ImportBreakpointsTest.java
@@ -31,7 +31,7 @@
 
 /**
  * Tests the import operations of the breakpoint import export feature
- * 
+ *
  * @since 3.2
  */
 public class ImportBreakpointsTest extends AbstractBreakpointWorkingSetTest {
@@ -43,7 +43,7 @@
 	public ImportBreakpointsTest(String name) {super(name);}
 
 	/**
-	 * Tests import operation from a file. 
+	 * Tests import operation from a file.
 	 * @throws Exception catch all passed to framework
 	 */
 	public void testBreakpointImportFile() throws Exception {
@@ -75,15 +75,15 @@
 				assertEquals("Missing imported breakpoint", breakpoint, getBreakpointManager().getBreakpoint(breakpoint.getMarker()));
 			}
 			file.delete();
-		} 
+		}
 		finally {
 			removeAllBreakpoints();
-		}	
+		}
 	}
-	
+
 	/**
 	 * Tests import operation from a string buffer.
-	 *  
+	 *
 	 * @throws Exception catch all passed to framework
 	 */
 	public void testBreakpointImportBuffer() throws Exception {
@@ -105,12 +105,12 @@
 			ImportBreakpointsOperation op2 = new ImportBreakpointsOperation(buffer, true, true);
 			op2.run(new NullProgressMonitor());
 			assertEquals("manager does not contain 6 breakpoints", 6, getBreakpointManager().getBreakpoints().length);
-		} 
+		}
 		finally {
 			removeAllBreakpoints();
-		}	
-	}	
-	
+		}
+	}
+
 	/**
 	 * tests and overwrote without remove all
 	 * @throws Exception catch all to pass back to framework
@@ -137,15 +137,15 @@
 			op2.run(new NullProgressMonitor());
 			assertEquals("manager does not contain 6 breakpoints", 6, getBreakpointManager().getBreakpoints().length);
 			file.delete();
-		} 
+		}
 		finally {
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * Tests a bad filename passed to the import operation
-	 * 
+	 *
 	 * @throws Exception catch all to pass back to framework
 	 */
 	public void testBreakpointImportBadFilename() throws Exception {
@@ -163,10 +163,10 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * tests importing breakpoints with working sets
-	 * 
+	 *
 	 * @throws Exception catch all to be passed back to the framework
 	 */
 	public void testBreakpointImportWithWorkingsets() throws Exception {
@@ -179,7 +179,7 @@
 			IWorkingSet set = createSet(setName);
 			assertNotNull("workingset does not exist", wsmanager.getWorkingSet(setName));
 			WorkingSetCategory category = new WorkingSetCategory(set);
-			
+
 			bporg.addBreakpoint(createClassPrepareBreakpoint(typeName), category);
 			bporg.addBreakpoint(createLineBreakpoint(32, typeName), category);
 			bporg.addBreakpoint(createLineBreakpoint(28, typeName), category);
@@ -192,7 +192,7 @@
 			assertNotNull("Invalid path", path);
 			ExportBreakpointsOperation op = new ExportBreakpointsOperation(getBreakpointManager().getBreakpoints(), path.toOSString());
 			op.run(new NullProgressMonitor());
-		
+
 			//remove bps and working set and do the import
 			removeAllBreakpoints();
 			set.setElements(new IAdaptable[] {});
@@ -215,7 +215,7 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * Tests importing breakpoints to resources that do not exist
 	 * @throws Exception catch all passed to framework
@@ -228,16 +228,16 @@
 			ImportBreakpointsOperation op = new ImportBreakpointsOperation(file.getCanonicalPath(), true, true);
 			op.run(new NullProgressMonitor());
 			assertEquals("should be no breakpoints imported", 0, getBreakpointManager().getBreakpoints().length);
-		} 
+		}
 		finally {
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
-	 * tests importing breakpoints with working sets where the breakpoints are restored to 
+	 * tests importing breakpoints with working sets where the breakpoints are restored to
 	 * another working set and removed from the current one
-	 * 
+	 *
 	 * @throws Exception catch all to be passed back to the framework
 	 */
 	public void testImportWithWorkingsets() throws Exception {
@@ -251,7 +251,7 @@
 			IWorkingSet set = createSet(setname1);
 			assertNotNull("workingset does not exist", wsmanager.getWorkingSet(setname1));
 			WorkingSetCategory category = new WorkingSetCategory(set);
-			
+
 			bporg.addBreakpoint(createClassPrepareBreakpoint(typeName), category);
 			bporg.addBreakpoint(createLineBreakpoint(32, typeName), category);
 			bporg.addBreakpoint(createLineBreakpoint(28, typeName), category);
@@ -264,12 +264,12 @@
 			assertNotNull("Invalid path", path);
 			ExportBreakpointsOperation op = new ExportBreakpointsOperation(getBreakpointManager().getBreakpoints(), path.toOSString());
 			op.run(new NullProgressMonitor());
-		
+
 			//copy items to the alternate working set
 			IWorkingSet set2 = createSet(setname2);
 			set2.setElements(set.getElements());
 			assertNotNull("workingset does not exist", wsmanager.getWorkingSet(setname2));
-			
+
 			//remove bps and working set and do the import
 			removeAllBreakpoints();
 			set.setElements(new IAdaptable[] {});
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/JavaBreakpointListenerTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/JavaBreakpointListenerTests.java
index 78a57c7..4fdc793 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/JavaBreakpointListenerTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/JavaBreakpointListenerTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -45,35 +45,35 @@
  * Tests breakpoint creation/deletion and listener interfaces.
  */
 public class JavaBreakpointListenerTests extends AbstractDebugTest implements IJavaBreakpointListener {
-	
+
 	/**
 	 * count of add callbacks
 	 */
 	public int fAddCallbacks = 0;
-	
+
 	/**
 	 * count of remove callbacks
 	 */
 	public int fRemoveCallbacks = 0;
-	
+
 	/**
 	 * count of installed callbacks
 	 */
 	public int fInstalledCallbacks = 0;
-	
-	/** 
+
+	/**
 	 * a java breakpoint
 	 */
 	public IJavaBreakpoint fBreakpoint;
-	
+
 	/**
 	 * Used to test breakpoint install/suspend voting.
 	 */
 	class SuspendVoter implements IJavaBreakpointListener {
-		
+
 		int fVote;
 		IJavaBreakpoint fTheBreakpoint;
-		
+
 		/**
 		 * Constructor
 		 * @param suspendVote
@@ -83,7 +83,7 @@
 			fVote = suspendVote;
 			fTheBreakpoint = breakpoint;
 		}
-		
+
 		/**
 		 * @see org.eclipse.jdt.debug.core.IJavaBreakpointListener#addingBreakpoint(org.eclipse.jdt.debug.core.IJavaDebugTarget, org.eclipse.jdt.debug.core.IJavaBreakpoint)
 		 */
@@ -139,12 +139,12 @@
 		}
 
 	}
-	
+
 	/**
 	 * Aids in the voting for a breakpoint to be installed
 	 */
 	class InstallVoter extends SuspendVoter {
-		
+
 		/**
 		 * Constructor
 		 * @param installVote
@@ -153,7 +153,7 @@
 		public InstallVoter(int installVote, IJavaBreakpoint breakpoint) {
 			super(installVote, breakpoint);
 		}
-		
+
 		/**
 		 * @see org.eclipse.jdt.debug.tests.breakpoints.JavaBreakpointListenerTests.SuspendVoter#installingBreakpoint(org.eclipse.jdt.debug.core.IJavaDebugTarget, org.eclipse.jdt.debug.core.IJavaBreakpoint, org.eclipse.jdt.debug.core.IJavaType)
 		 */
@@ -165,12 +165,12 @@
 			return DONT_CARE;
 		}
 	}
-	
+
 	/**
 	 * Collects hit breakpoints.
 	 */
 	class Collector implements IJavaBreakpointListener {
-		
+
 		public List<IJavaBreakpoint> HIT = new ArrayList<IJavaBreakpoint>();
 		public List<IJavaLineBreakpoint> COMPILATION_ERRORS = new ArrayList<IJavaLineBreakpoint>();
 		public List<IJavaLineBreakpoint> RUNTIME_ERRORS = new ArrayList<IJavaLineBreakpoint>();
@@ -196,7 +196,7 @@
 		}
 
 		@Override
-		public void breakpointInstalled(IJavaDebugTarget target, IJavaBreakpoint breakpoint) {			
+		public void breakpointInstalled(IJavaDebugTarget target, IJavaBreakpoint breakpoint) {
 		}
 
 		@Override
@@ -207,9 +207,9 @@
 		public int installingBreakpoint(IJavaDebugTarget target, IJavaBreakpoint breakpoint, IJavaType type) {
 			return DONT_CARE;
 		}
-		
+
 	}
-			
+
 	/**
 	 * Constructor
 	 * @param name
@@ -223,195 +223,195 @@
 	 */
 	protected void resetCallbacks() {
 		fAddCallbacks = 0;
-	
+
 		fRemoveCallbacks = 0;
-	
-		fInstalledCallbacks = 0;	
+
+		fInstalledCallbacks = 0;
 	}
-	
+
 	/**
 	 * Tests the functionality of a single line breakpoint
 	 * @throws Exception
 	 */
-	public void testLineBreakpoint() throws Exception {		
+	public void testLineBreakpoint() throws Exception {
 		IJavaLineBreakpoint breakpoint = createLineBreakpoint(54, "Breakpoints");
 		fBreakpoint = breakpoint;
 		resetCallbacks();
-		
+
 		IJavaThread thread = null;
 		try {
-			JDIDebugModel.addJavaBreakpointListener(this);		
+			JDIDebugModel.addJavaBreakpointListener(this);
 			thread = launchToBreakpoint("Breakpoints");
 			assertNotNull(thread);
 			// breakpoint should be added & installed
 			assertEquals("Breakpoint should be added", 1, fAddCallbacks);
 			assertEquals("Breakpoint should be installed", 1, fInstalledCallbacks);
-			assertEquals("Breakpoint should not be removed", 0, fRemoveCallbacks);	
+			assertEquals("Breakpoint should not be removed", 0, fRemoveCallbacks);
 
 			// disable and re-enable the breakpoint
 			breakpoint.setEnabled(false);
 			breakpoint.setEnabled(true);
-			
+
 			// should still be installed/added once
 			assertEquals("Breakpoint should be added", 1, fAddCallbacks);
 			assertEquals("Breakpoint should be installed", 1, fInstalledCallbacks);
 			assertEquals("Breakpoint should not be removed", 0, fRemoveCallbacks);
-			
+
 			// change the hit count
 			breakpoint.setHitCount(34);
-			
+
 			// should still be installed/added once
 			assertEquals("Breakpoint should be added", 1, fAddCallbacks);
 			assertEquals("Breakpoint should be installed", 1, fInstalledCallbacks);
 			assertEquals("Breakpoint should not be removed", 0, fRemoveCallbacks);
-			
+
 			// delete the breakpoint
 			breakpoint.delete();
-			
+
 			// should still be installed/added once
 			assertEquals("Breakpoint should be added", 1, fAddCallbacks);
 			assertEquals("Breakpoint should be installed", 1, fInstalledCallbacks);
-			
+
 			// and removed
-			assertEquals("Breakpoint should be removed", 1, fRemoveCallbacks);								
-			
+			assertEquals("Breakpoint should be removed", 1, fRemoveCallbacks);
+
 		} finally {
 			JDIDebugModel.removeJavaBreakpointListener(this);
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 		}
-		
-	}	
-	
+
+	}
+
 	/**
 	 * Tests the functionality of an exception breakpoint
 	 * @throws Exception
 	 */
-	public void testExceptionBreakpoint() throws Exception {		
+	public void testExceptionBreakpoint() throws Exception {
 		IJavaExceptionBreakpoint breakpoint = createExceptionBreakpoint("java.lang.NullPointerException", true, true);
 		fBreakpoint = breakpoint;
 		resetCallbacks();
-		
+
 		IJavaThread thread = null;
 		try {
-			JDIDebugModel.addJavaBreakpointListener(this);		
+			JDIDebugModel.addJavaBreakpointListener(this);
 			thread = launchToBreakpoint("ThrowsNPE");
 			assertNotNull(thread);
 			// breakpoint should be added & installed
 			assertEquals("Breakpoint should be added", 1, fAddCallbacks);
 			assertEquals("Breakpoint should be installed", 1, fInstalledCallbacks);
-			assertEquals("Breakpoint should not be removed", 0, fRemoveCallbacks);	
+			assertEquals("Breakpoint should not be removed", 0, fRemoveCallbacks);
 
 			// disable and re-enable the breakpoint
 			breakpoint.setEnabled(false);
 			breakpoint.setEnabled(true);
-			
+
 			// should still be installed/added once
 			assertEquals("Breakpoint should be added", 1, fAddCallbacks);
 			assertEquals("Breakpoint should be installed", 1, fInstalledCallbacks);
 			assertEquals("Breakpoint should not be removed", 0, fRemoveCallbacks);
-			
+
 			// change the hit count
 			breakpoint.setHitCount(34);
-			
+
 			// should still be installed/added once
 			assertEquals("Breakpoint should be added", 1, fAddCallbacks);
 			assertEquals("Breakpoint should be installed", 1, fInstalledCallbacks);
 			assertEquals("Breakpoint should not be removed", 0, fRemoveCallbacks);
-			
+
 			// toggle caught/uncaught
 			breakpoint.setCaught(false);
 			breakpoint.setUncaught(false);
 			breakpoint.setCaught(true);
 			breakpoint.setUncaught(true);
-			
+
 			// should still be installed/added once
 			assertEquals("Breakpoint should be added", 1, fAddCallbacks);
 			assertEquals("Breakpoint should be installed", 1, fInstalledCallbacks);
-			assertEquals("Breakpoint should not be removed", 0, fRemoveCallbacks);			
-			
+			assertEquals("Breakpoint should not be removed", 0, fRemoveCallbacks);
+
 			// delete the breakpoint
 			breakpoint.delete();
-			
+
 			// should still be installed/added once
 			assertEquals("Breakpoint should be added", 1, fAddCallbacks);
 			assertEquals("Breakpoint should be installed", 1, fInstalledCallbacks);
-			
+
 			// and removed
-			assertEquals("Breakpoint should be removed", 1, fRemoveCallbacks);								
-			
+			assertEquals("Breakpoint should be removed", 1, fRemoveCallbacks);
+
 		} finally {
 			JDIDebugModel.removeJavaBreakpointListener(this);
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 		}
-		
-	}	
-	
+
+	}
+
 	/**
 	 * Tests the functionality of a method breakpoint
 	 * @throws Exception
 	 */
-	public void testMethodBreakpoint() throws Exception {		
+	public void testMethodBreakpoint() throws Exception {
 		IJavaMethodBreakpoint breakpoint = createMethodBreakpoint("DropTests", "method4", "()V", true, false);
 		fBreakpoint = breakpoint;
 		resetCallbacks();
-		
+
 		IJavaThread thread = null;
 		try {
-			JDIDebugModel.addJavaBreakpointListener(this);		
+			JDIDebugModel.addJavaBreakpointListener(this);
 			thread = launchToBreakpoint("DropTests");
 			assertNotNull(thread);
 			// breakpoint should be added & installed
 			assertEquals("Breakpoint should be added", 1, fAddCallbacks);
 			assertEquals("Breakpoint should be installed", 1, fInstalledCallbacks);
-			assertEquals("Breakpoint should not be removed", 0, fRemoveCallbacks);	
+			assertEquals("Breakpoint should not be removed", 0, fRemoveCallbacks);
 
 			// disable and re-enable the breakpoint
 			breakpoint.setEnabled(false);
 			breakpoint.setEnabled(true);
-			
+
 			// should still be installed/added once
 			assertEquals("Breakpoint should be added", 1, fAddCallbacks);
 			assertEquals("Breakpoint should be installed", 1, fInstalledCallbacks);
 			assertEquals("Breakpoint should not be removed", 0, fRemoveCallbacks);
-			
+
 			// change the hit count
 			breakpoint.setHitCount(34);
-			
+
 			// should still be installed/added once
 			assertEquals("Breakpoint should be added", 1, fAddCallbacks);
 			assertEquals("Breakpoint should be installed", 1, fInstalledCallbacks);
 			assertEquals("Breakpoint should not be removed", 0, fRemoveCallbacks);
-			
+
 			// toggle entry/exit
 			breakpoint.setExit(true);
 			breakpoint.setEntry(false);
 			breakpoint.setExit(false);
 			breakpoint.setEnabled(true);
-			
+
 			// should still be installed/added once
 			assertEquals("Breakpoint should be added", 1, fAddCallbacks);
 			assertEquals("Breakpoint should be installed", 1, fInstalledCallbacks);
-			assertEquals("Breakpoint should not be removed", 0, fRemoveCallbacks);			
-			
+			assertEquals("Breakpoint should not be removed", 0, fRemoveCallbacks);
+
 			// delete the breakpoint
 			breakpoint.delete();
-			
+
 			// should still be installed/added once
 			assertEquals("Breakpoint should be added", 1, fAddCallbacks);
 			assertEquals("Breakpoint should be installed", 1, fInstalledCallbacks);
-			
+
 			// and removed
-			assertEquals("Breakpoint should be removed", 1, fRemoveCallbacks);								
-			
+			assertEquals("Breakpoint should be removed", 1, fRemoveCallbacks);
+
 		} finally {
 			JDIDebugModel.removeJavaBreakpointListener(this);
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
+		}
 	}
-	
+
 	/**
 	 * Vote: Install 3, Don't Care 0, Don't Install 0 == INSTALL
 	 * @throws Exception
@@ -425,7 +425,7 @@
 		JDIDebugModel.addJavaBreakpointListener(v2);
 		JDIDebugModel.addJavaBreakpointListener(v3);
 		IJavaThread thread = null;
-		try {		
+		try {
 			thread = launchToBreakpoint("Breakpoints");
 			assertNotNull(thread);
 			assertEquals(breakpoint, thread.getBreakpoints()[0]);
@@ -435,9 +435,9 @@
 			JDIDebugModel.removeJavaBreakpointListener(v3);
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * Vote: Install 0, Don't Care 3, Don't Install 0 == INSTALL
 	 * @throws Exception
@@ -451,7 +451,7 @@
 		JDIDebugModel.addJavaBreakpointListener(v2);
 		JDIDebugModel.addJavaBreakpointListener(v3);
 		IJavaThread thread = null;
-		try {		
+		try {
 			thread = launchToBreakpoint("Breakpoints");
 			assertNotNull(thread);
 			assertEquals(breakpoint, thread.getBreakpoints()[0]);
@@ -461,9 +461,9 @@
 			JDIDebugModel.removeJavaBreakpointListener(v3);
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}	
-	
+		}
+	}
+
 	/**
 	 * Vote: Install 1, Don't Care 2, Don't Install 0 == INSTALL
 	 * @throws Exception
@@ -477,7 +477,7 @@
 		JDIDebugModel.addJavaBreakpointListener(v2);
 		JDIDebugModel.addJavaBreakpointListener(v3);
 		IJavaThread thread = null;
-		try {		
+		try {
 			thread = launchToBreakpoint("Breakpoints");
 			assertNotNull(thread);
 			assertEquals(breakpoint, thread.getBreakpoints()[0]);
@@ -487,9 +487,9 @@
 			JDIDebugModel.removeJavaBreakpointListener(v3);
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}		
-		
+		}
+	}
+
 	/**
 	 * Vote: Install 1, Don't Care 0, Don't Install 2 == INSTALL
 	 * @throws Exception
@@ -503,7 +503,7 @@
 		JDIDebugModel.addJavaBreakpointListener(v2);
 		JDIDebugModel.addJavaBreakpointListener(v3);
 		IJavaThread thread = null;
-		try {		
+		try {
 			thread = launchToBreakpoint("Breakpoints");
 			assertNotNull(thread);
 			assertEquals(breakpoint, thread.getBreakpoints()[0]);
@@ -513,9 +513,9 @@
 			JDIDebugModel.removeJavaBreakpointListener(v3);
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}	
-	
+		}
+	}
+
 	/**
 	 * Vote: Install 0, Don't Care 1, Don't Install 2 = RESUME
 	 * @throws Exception
@@ -530,7 +530,7 @@
 		JDIDebugModel.addJavaBreakpointListener(v2);
 		JDIDebugModel.addJavaBreakpointListener(v3);
 		IJavaThread thread = null;
-		try {		
+		try {
 			thread = launchToBreakpoint("Breakpoints");
 			assertNotNull(thread);
 			assertEquals(breakpoint2, thread.getBreakpoints()[0]);
@@ -540,9 +540,9 @@
 			JDIDebugModel.removeJavaBreakpointListener(v3);
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * Vote: Suspend 3, Don't Care 0, Don't Suspend 0 == SUSPEND
 	 * @throws Exception
@@ -556,7 +556,7 @@
 		JDIDebugModel.addJavaBreakpointListener(v2);
 		JDIDebugModel.addJavaBreakpointListener(v3);
 		IJavaThread thread = null;
-		try {		
+		try {
 			thread = launchToBreakpoint("Breakpoints");
 			assertNotNull(thread);
 			assertEquals(breakpoint, thread.getBreakpoints()[0]);
@@ -566,9 +566,9 @@
 			JDIDebugModel.removeJavaBreakpointListener(v3);
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * Vote: Suspend 0, Don't Care 3, Don't Suspend 0 == SUSPEND
 	 * @throws Exception
@@ -582,7 +582,7 @@
 		JDIDebugModel.addJavaBreakpointListener(v2);
 		JDIDebugModel.addJavaBreakpointListener(v3);
 		IJavaThread thread = null;
-		try {		
+		try {
 			thread = launchToBreakpoint("Breakpoints");
 			assertNotNull(thread);
 			assertEquals(breakpoint, thread.getBreakpoints()[0]);
@@ -592,9 +592,9 @@
 			JDIDebugModel.removeJavaBreakpointListener(v3);
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}	
-	
+		}
+	}
+
 	/**
 	 * Vote: Suspend 1, Don't Care 2, Don't Suspend 0 == SUSPEND
 	 * @throws Exception
@@ -608,7 +608,7 @@
 		JDIDebugModel.addJavaBreakpointListener(v2);
 		JDIDebugModel.addJavaBreakpointListener(v3);
 		IJavaThread thread = null;
-		try {		
+		try {
 			thread = launchToBreakpoint("Breakpoints");
 			assertNotNull(thread);
 			assertEquals(breakpoint, thread.getBreakpoints()[0]);
@@ -618,9 +618,9 @@
 			JDIDebugModel.removeJavaBreakpointListener(v3);
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}		
-		
+		}
+	}
+
 	/**
 	 * Vote: Suspend 1, Don't Care 0, Don't Suspend 2 == SUSPEND
 	 * @throws Exception
@@ -634,7 +634,7 @@
 		JDIDebugModel.addJavaBreakpointListener(v2);
 		JDIDebugModel.addJavaBreakpointListener(v3);
 		IJavaThread thread = null;
-		try {		
+		try {
 			thread = launchToBreakpoint("Breakpoints");
 			assertNotNull(thread);
 			assertEquals(breakpoint, thread.getBreakpoints()[0]);
@@ -644,9 +644,9 @@
 			JDIDebugModel.removeJavaBreakpointListener(v3);
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}	
-	
+		}
+	}
+
 	/**
 	 * Vote: Suspend 0, Don't Care 1, Don't Suspend 2 = RESUME
 	 * @throws Exception
@@ -661,7 +661,7 @@
 		JDIDebugModel.addJavaBreakpointListener(v2);
 		JDIDebugModel.addJavaBreakpointListener(v3);
 		IJavaThread thread = null;
-		try {		
+		try {
 			thread = launchToBreakpoint("Breakpoints");
 			assertNotNull(thread);
 			assertEquals(breakpoint2, thread.getBreakpoints()[0]);
@@ -671,9 +671,9 @@
 			JDIDebugModel.removeJavaBreakpointListener(v3);
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}	
-	
+		}
+	}
+
 	/**
 	 * Vote: Suspend 0, Don't Care 1 (java debug options manager), Don't Suspend 1 = RESUME
 	 * @throws Exception
@@ -684,7 +684,7 @@
 		SuspendVoter v1 = new SuspendVoter(DONT_SUSPEND, breakpoint1);
 		JDIDebugModel.addJavaBreakpointListener(v1);
 		IJavaThread thread = null;
-		try {		
+		try {
 			thread = launchToBreakpoint("DropTests");
 			assertNotNull(thread);
 			assertEquals(breakpoint2, thread.getBreakpoints()[0]);
@@ -692,9 +692,9 @@
 			JDIDebugModel.removeJavaBreakpointListener(v1);
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}		
-	
+		}
+	}
+
 	/**
 	 * @see org.eclipse.jdt.debug.core.IJavaBreakpointListener#breakpointHasCompilationErrors(org.eclipse.jdt.debug.core.IJavaLineBreakpoint, org.eclipse.jdt.core.dom.Message[])
 	 */
@@ -743,7 +743,7 @@
 		IJavaDebugTarget target,
 		IJavaBreakpoint breakpoint) {
 			if (breakpoint == fBreakpoint) {
-				fRemoveCallbacks++;				
+				fRemoveCallbacks++;
 			}
 	}
 
@@ -781,7 +781,7 @@
 		EvalualtionBreakpointListener.PROJECT = get14Project();
 		EvalualtionBreakpointListener.EXPRESSION = "return new Integer(i);";
 		EvalualtionBreakpointListener.VOTE = IJavaBreakpointListener.SUSPEND;
-			
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -805,13 +805,13 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}			
+		}
 	}
-	
+
 	/**
 	 * Tests that a step end that lands on a breakpoint listener that votes to resume
 	 * results in the step completing and suspending.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testStepEndResumeVote() throws Exception {
@@ -819,7 +819,7 @@
 		IJavaLineBreakpoint first = createLineBreakpoint(16, typeName);
 		IJavaLineBreakpoint second = createLineBreakpoint(17, typeName);
 		second.addBreakpointListener("org.eclipse.jdt.debug.tests.resumeListener");
-			
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, first);
@@ -830,13 +830,13 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}					
+		}
 	}
-	
+
 	/**
 	 * Test that a step over hitting a breakpoint deeper up the stack with a listener
 	 * can perform an evaluation and resume to complete the step.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testStepOverHitsNestedEvaluationHandlerResume() throws Exception {
@@ -851,7 +851,7 @@
 		EvalualtionBreakpointListener.EXPRESSION = "return new Integer(sum);";
 		EvalualtionBreakpointListener.VOTE = IJavaBreakpointListener.DONT_SUSPEND;
 		EvalualtionBreakpointListener.RESULT = null;
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, first);
@@ -885,11 +885,11 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * Test that a step over hitting a breakpoint deeper up the stack with a listener
 	 * can perform an evaluation and suspend to abort the step.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testStepOverHitsNestedEvaluationHandlerSuspend() throws Exception {
@@ -904,7 +904,7 @@
 		EvalualtionBreakpointListener.EXPRESSION = "return new Integer(sum);";
 		EvalualtionBreakpointListener.VOTE = IJavaBreakpointListener.SUSPEND;
 		EvalualtionBreakpointListener.RESULT = null;
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, first);
@@ -938,12 +938,12 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}	
-	
+		}
+	}
+
 	/**
 	 * Suspends an evaluation. Ensures we're returned to the proper top frame.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testSuspendEvaluation() throws Exception {
@@ -956,7 +956,7 @@
 		EvalualtionBreakpointListener.EXPRESSION = "for (int x = 0; x < 1000; x++) { System.out.println(x);} Thread.sleep(200);";
 		EvalualtionBreakpointListener.VOTE = IJavaBreakpointListener.DONT_SUSPEND;
 		EvalualtionBreakpointListener.RESULT = null;
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, first);
@@ -972,19 +972,19 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}				
+		}
 	}
-	
+
 	/**
 	 * Test that a global listener gets notifications.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testGlobalListener() throws Exception {
 		GlobalBreakpointListener.clear();
 		String typeName = "HitCountLooper";
 		IJavaLineBreakpoint bp = createLineBreakpoint(16, typeName);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -994,18 +994,18 @@
 			assertEquals("Should be INSTALLED", bp, GlobalBreakpointListener.INSTALLED);
 			assertEquals("Should be HIT", bp, GlobalBreakpointListener.HIT);
 			assertNull("Should not be REMOVED", GlobalBreakpointListener.REMOVED);
-						
+
 			bp.delete();
 			assertEquals("Should be REMOVED", bp, GlobalBreakpointListener.REMOVED);
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}				
+		}
 	}
-	
+
 	/**
 	 * Tests that breakpoint listeners are only notified when condition is true.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testListenersOnConditionalBreakpoint() throws Exception {
@@ -1014,7 +1014,7 @@
 		JDIDebugModel.addJavaBreakpointListener(collector);
 		IJavaLineBreakpoint bp = createConditionalLineBreakpoint(16, typeName, "return false;", true);
 		IJavaLineBreakpoint second = createConditionalLineBreakpoint(17, typeName, "i == 3", true);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, second);
@@ -1027,11 +1027,11 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * Tests that breakpoint listeners are only notified when condition is true
 	 * while stepping to a breakpoint.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testListenersOnConditionalBreakpointStepping() throws Exception {
@@ -1040,7 +1040,7 @@
 		JDIDebugModel.addJavaBreakpointListener(collector);
 		IJavaLineBreakpoint bp = createLineBreakpoint(16, typeName);
 		IJavaLineBreakpoint second = createConditionalLineBreakpoint(17, typeName, "i == 1", true);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -1050,7 +1050,7 @@
 			assertTrue("Wrong breakpoint hit", collector.HIT.contains(bp));
 			assertFalse("Wrong breakpoint hit", collector.HIT.contains(second));
 			collector.HIT.clear();
-			
+
 			// resume to line breakpoint again
 			thread = resumeToLineBreakpoint(thread, bp);
 			// step over to next line with conditional (should be true && hit)
@@ -1058,18 +1058,18 @@
 			assertEquals("Wrong number of breakpoints hit", 2, collector.HIT.size());
 			assertTrue("Wrong breakpoint hit", collector.HIT.contains(bp));
 			assertTrue("Wrong breakpoint hit", collector.HIT.contains(second));
-			
+
 		} finally {
 			JDIDebugModel.removeJavaBreakpointListener(collector);
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 		}
-	}	
-	
+	}
+
 	/**
 	 * Tests that breakpoint listeners are not notified of "hit" when condition has compilation
 	 * errors. Also they should be notified of the compilation errors.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testListenersOnCompilationError() throws Exception {
@@ -1077,7 +1077,7 @@
 		IJavaLineBreakpoint bp = createConditionalLineBreakpoint(17, typeName, "x == 1", true);
 		bp.addBreakpointListener("org.eclipse.jdt.debug.tests.evalListener");
 		EvalualtionBreakpointListener.reset();
-			
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -1088,13 +1088,13 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}	
-	
+		}
+	}
+
 	/**
 	 * Tests that breakpoint listeners are not notified of "hit" when condition has compilation
 	 * errors. Also they should be notified of the compilation errors.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testListenersOnRuntimeError() throws Exception {
@@ -1102,7 +1102,7 @@
 		IJavaLineBreakpoint bp = createConditionalLineBreakpoint(17, typeName, "(new String()).charAt(34) == 'c'", true);
 		bp.addBreakpointListener("org.eclipse.jdt.debug.tests.evalListener");
 		EvalualtionBreakpointListener.reset();
-			
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -1113,51 +1113,51 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}	
+		}
+	}
 
 	/**
 	 * Tests addition and removal of breakpoint listeners to a breakpoint.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testAddRemoveListeners() throws Exception {
 		try {
 			String typeName = "HitCountLooper";
 			IJavaLineBreakpoint bp = createLineBreakpoint(16, typeName);
-			
+
 			String[] listeners = bp.getBreakpointListeners();
 			assertEquals(0, listeners.length);
-			
+
 			bp.addBreakpointListener("a");
 			listeners = bp.getBreakpointListeners();
 			assertEquals(1, listeners.length);
 			assertEquals("a", listeners[0]);
-			
+
 			bp.addBreakpointListener("b");
 			listeners = bp.getBreakpointListeners();
 			assertEquals(2, listeners.length);
 			assertEquals("a", listeners[0]);
 			assertEquals("b", listeners[1]);
-			
+
 			bp.addBreakpointListener("c");
 			listeners = bp.getBreakpointListeners();
 			assertEquals(3, listeners.length);
 			assertEquals("a", listeners[0]);
 			assertEquals("b", listeners[1]);
 			assertEquals("c", listeners[2]);
-			
+
 			bp.removeBreakpointListener("a");
 			listeners = bp.getBreakpointListeners();
 			assertEquals(2, listeners.length);
 			assertEquals("b", listeners[0]);
 			assertEquals("c", listeners[1]);
-			
+
 			bp.removeBreakpointListener("c");
 			listeners = bp.getBreakpointListeners();
 			assertEquals(1, listeners.length);
 			assertEquals("b", listeners[0]);
-			
+
 			bp.removeBreakpointListener("b");
 			listeners = bp.getBreakpointListeners();
 			assertEquals(0, listeners.length);
@@ -1165,30 +1165,30 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * Tests addition of duplicate breakpoint listeners to a breakpoint.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testAddDuplicateListeners() throws Exception {
 		try {
 			String typeName = "HitCountLooper";
 			IJavaLineBreakpoint bp = createLineBreakpoint(16, typeName);
-			
+
 			String[] listeners = bp.getBreakpointListeners();
 			assertEquals(0, listeners.length);
-			
+
 			bp.addBreakpointListener("a");
 			listeners = bp.getBreakpointListeners();
 			assertEquals(1, listeners.length);
 			assertEquals("a", listeners[0]);
-			
+
 			bp.addBreakpointListener("a");
 			listeners = bp.getBreakpointListeners();
 			assertEquals(1, listeners.length);
-			assertEquals("a", listeners[0]);		
-			
+			assertEquals("a", listeners[0]);
+
 			bp.addBreakpointListener("b");
 			listeners = bp.getBreakpointListeners();
 			assertEquals(2, listeners.length);
@@ -1197,40 +1197,40 @@
 		} finally {
 			removeAllBreakpoints();
 		}
-	}	
-	
+	}
+
 	/**
 	 * Tests that listeners can be retrieved after breakpoint deletion.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testGetListenersAfterDelete() throws Exception {
 		try {
 			String typeName = "HitCountLooper";
 			IJavaLineBreakpoint bp = createLineBreakpoint(16, typeName);
-			
+
 			String[] listeners = bp.getBreakpointListeners();
 			assertEquals(0, listeners.length);
-			
+
 			bp.addBreakpointListener("a");
 			bp.addBreakpointListener("b");
-			
+
 			listeners = bp.getBreakpointListeners();
 			assertEquals(2, listeners.length);
 			assertEquals("a", listeners[0]);
 			assertEquals("b", listeners[1]);
-			
+
 			bp.delete();
 			listeners = bp.getBreakpointListeners();
 			assertEquals(2, listeners.length);
 			assertEquals("a", listeners[0]);
 			assertEquals("b", listeners[1]);
-			
+
 		} finally {
 			removeAllBreakpoints();
 		}
-	}		
-	
+	}
+
 	/**
 	 * Tests a breakpoint listener extension gets removal notification when the underlying
 	 * marker is deleted.
@@ -1241,11 +1241,11 @@
 		bp.addBreakpointListener("org.eclipse.jdt.debug.tests.evalListener");
 		EvalualtionBreakpointListener.reset();
 		EvalualtionBreakpointListener.VOTE = SUSPEND;
-			
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
-			assertTrue(EvalualtionBreakpointListener.HIT);			
+			assertTrue(EvalualtionBreakpointListener.HIT);
 			IWorkspaceRunnable runnable = new IWorkspaceRunnable() {
 				@Override
 				public void run(IProgressMonitor monitor) throws CoreException {
@@ -1266,7 +1266,7 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}					
-	}	
-	
+		}
+	}
+
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/MethodBreakpointTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/MethodBreakpointTests.java
index e8bb51a..bbcca75 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/MethodBreakpointTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/MethodBreakpointTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -32,7 +32,7 @@
  * Tests method breakpoints.
  */
 public class MethodBreakpointTests extends AbstractDebugTest {
-	
+
 	/**
 	 * Constructor
 	 * @param name
@@ -51,30 +51,30 @@
 		bps.add(createMethodBreakpoint(typeName, "method4", "()V", true, false));
 		// method 1 - exit
 		bps.add(createMethodBreakpoint(typeName, "method1", "()V", false, true));
-		
-		
+
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			IBreakpoint hit = getBreakpoint(thread);
 			assertNotNull("suspended, but not by breakpoint", hit);
 			assertEquals("should hit entry breakpoint first", bps.get(0),hit);
 
-			// onto the next breakpoint			
+			// onto the next breakpoint
 			thread = resume(thread);
-			
+
 			hit = getBreakpoint(thread);
 			assertNotNull("suspended, but not by breakpoint", hit);
-			assertEquals("should hit exit breakpoint second", bps.get(1), hit);			
+			assertEquals("should hit exit breakpoint second", bps.get(1), hit);
 
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * Tests the 'stop in main' launching preference
 	 * {@link IJavaLaunchConfigurationConstants#ATTR_STOP_IN_MAIN}
@@ -86,27 +86,27 @@
 		assertNotNull("Could not find launch config", config);
 		ILaunchConfigurationWorkingCopy wc = config.copy("DropTests - Stop in main");
 		wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_STOP_IN_MAIN, true);
-		config = wc.doSave();		
-		
+		config = wc.doSave();
+
 		IJavaThread thread= null;
 		try {
 			thread= launchAndSuspend(config);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			IBreakpoint hit = getBreakpoint(thread);
 			assertNotNull("suspended, but not by breakpoint", hit);
-			
+
 			IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
 			assertTrue("Should be in 'main'", frame.getMethodName().equals("main") && frame.isStatic());
 
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}	
-	
+		}
+	}
+
 	/**
-	 * Tests disabled method entry and exit breakpoints 
+	 * Tests disabled method entry and exit breakpoints
 	 * @throws Exception
 	 */
 	public void testDisabledEntryAndExitBreakpoints() throws Exception {
@@ -116,17 +116,17 @@
 		bp1.setEnabled(false);
 		// method 1 - exit
 		IBreakpoint bp2 = createMethodBreakpoint(typeName, "method1", "()V", false, true);
-		bp2.setEnabled(false);		
-		
+		bp2.setEnabled(false);
+
 		IJavaDebugTarget debugTarget= null;
 		try {
 			debugTarget= launchAndTerminate(typeName);
 		} finally {
 			terminateAndRemove(debugTarget);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * Tests that a method is NOT hit in an inner class
 	 * @throws Exception
@@ -136,26 +136,26 @@
 		List<IJavaMethodBreakpoint> bps = new ArrayList<IJavaMethodBreakpoint>();
 		// method b - entry
 		bps.add(createMethodBreakpoint(typeNamePattern, "b", "()V", true, false));
-		
-		
+
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeNamePattern);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			IBreakpoint hit = getBreakpoint(thread);
 			assertNotNull("suspended, but not by breakpoint", hit);
 			assertEquals("should hit entry breakpoint first", bps.get(0),hit);
 
-		
+
 			resumeAndExit(thread);
 
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * Tests that a given method IS hit in an inner class
 	 * @throws Exception
@@ -165,13 +165,13 @@
 		List<IJavaMethodBreakpoint> bps = new ArrayList<IJavaMethodBreakpoint>();
 		// method b - entry
 		bps.add(createMethodBreakpoint(typeNamePattern, "b", "()V", true, false));
-		
-		
+
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint("A");
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			IBreakpoint hit = getBreakpoint(thread);
 			assertNotNull("suspended, but not by breakpoint", hit);
 			assertEquals("should hit entry breakpoint first", bps.get(0),hit);
@@ -185,17 +185,17 @@
 			hit = getBreakpoint(thread);
 			assertNotNull("suspended, but not by breakpoint", hit);
 			assertEquals("should hit entry breakpoint first", bps.get(0),hit);
-			
+
 			thread= resume(thread);
 			hit = getBreakpoint(thread);
 			assertNotNull("suspended, but not by breakpoint", hit);
 			assertEquals("should hit entry breakpoint first", bps.get(0),hit);
-			
+
 			resumeAndExit(thread);
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
 
 	/**
@@ -206,26 +206,26 @@
 		String typeName = "MethodLoop";
 		IJavaMethodBreakpoint bp = createMethodBreakpoint(typeName, "calculateSum", "()V", true, false);
 		bp.setHitCount(3);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Method entry breakpoint not hit within timeout period", thread);
-			
+
 			IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
 			IVariable var = findVariable(frame, "sum");
 			assertNotNull("Could not find variable 'sum'", var);
-			
+
 			IJavaPrimitiveValue value = (IJavaPrimitiveValue)var.getValue();
 			assertNotNull("variable 'sum' has no value", value);
 			int iValue = value.getIntValue();
-			assertTrue("value of 'sum' should be '3', but was " + iValue, iValue == 3);			
-			
+			assertTrue("value of 'sum' should be '3', but was " + iValue, iValue == 3);
+
 			bp.delete();
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
 
 	/**
@@ -236,28 +236,28 @@
 		String typeName = "MethodLoop";
 		IJavaMethodBreakpoint bp = createMethodBreakpoint(typeName, "calculateSum", "()V", false, true);
 		bp.setHitCount(3);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Method exit breakpoint not hit within timeout period", thread);
-			
+
 			IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
 			IVariable var = findVariable(frame, "sum");
 			assertNotNull("Could not find variable 'sum'", var);
-			
+
 			IJavaPrimitiveValue value = (IJavaPrimitiveValue)var.getValue();
 			assertNotNull("variable 'sum' has no value", value);
 			int iValue = value.getIntValue();
-			assertTrue("value of 'sum' should be '6', but was " + iValue, iValue == 6);			
-			
+			assertTrue("value of 'sum' should be '6', but was " + iValue, iValue == 6);
+
 			bp.delete();
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * Tests an inclusive thread filter on a method breakpoint
 	 * @throws Exception
@@ -266,29 +266,29 @@
 		String typeName = "MethodLoop";
 		IJavaMethodBreakpoint methodBp = createMethodBreakpoint(typeName, "calculateSum", "()V", true, false);
 		createLineBreakpoint(18, typeName);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName, false);
 			assertNotNull("breakpoint not hit within timeout period", thread);
-			
+
 			IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
-			
+
 			// set a thread filter (to the main thread)
 			methodBp.setThreadFilter(thread);
-			
+
 			thread = resume(thread);
 			assertNotNull("breakpoint not hit", thread);
-			
+
 			frame = (IJavaStackFrame)thread.getTopStackFrame();
 			assertEquals("should be in 'calucateSum'", "calculateSum", frame.getMethodName());
-			
+
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}	
-	
+		}
+	}
+
 	/**
 	 * Tests an exclusive thread filter on a method breakpoint
 	 * @throws Exception
@@ -297,14 +297,14 @@
 		String typeName = "MethodLoop";
 		IJavaMethodBreakpoint methodBp = createMethodBreakpoint(typeName, "calculateSum", "()V", true, false);
 		createLineBreakpoint(18, typeName);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName, false);
 			assertNotNull("breakpoint not hit within timeout period", thread);
-			
+
 			thread.getTopStackFrame();
-			
+
 			// set a thread filter (*not* the main thread)
 			IThread[] threads = thread.getDebugTarget().getThreads();
 			for (int i = 0; i < threads.length; i++) {
@@ -315,14 +315,14 @@
 				}
 			}
 			assertNotNull("Did not set thread filter",methodBp.getThreadFilter((IJavaDebugTarget)thread.getDebugTarget()));
-			
+
 			resumeAndExit(thread);
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}	
-	
+		}
+	}
+
 	/**
 	 * Test for bug 33551
 	 * Tests that a method breakpoint is hit properly in the default package
@@ -330,13 +330,13 @@
 	 */
 	public void testEntryDefaultPackageReturnType() throws Exception {
 		String typeName = "DefPkgReturnType";
-		IJavaMethodBreakpoint bp = createMethodBreakpoint(typeName, "self", "()LDefPkgReturnType;", true, false);		
-		
+		IJavaMethodBreakpoint bp = createMethodBreakpoint(typeName, "self", "()LDefPkgReturnType;", true, false);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			IBreakpoint hit = getBreakpoint(thread);
 			assertNotNull("suspended, but not by breakpoint", hit);
 			assertEquals("should hit entry breakpoint", bp,hit);
@@ -344,9 +344,9 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}	
-	
+		}
+	}
+
 	/**
 	 * Test for bug 43611
 	 * Tests that the debug model presentation is returning the correct signature for a specific method breakpoint
@@ -364,7 +364,7 @@
 			modelPresentation.dispose();
 		}
 	}
-	
+
 	/**
 	 * Test for bug 43611
 	 * Tests that the debug model presentation handles a label with no name for a specific method breakpoint
@@ -381,8 +381,8 @@
 			removeAllBreakpoints();
 			modelPresentation.dispose();
 		}
-	}	
-	
+	}
+
 	/**
 	 * Test for bug 43611
 	 * Tests that the debug model presentation handles no signature or method name for a specific
@@ -400,8 +400,8 @@
 			removeAllBreakpoints();
 			modelPresentation.dispose();
 		}
-	}		
-	
+	}
+
 	/**
 	 * Tests that a specific method breakpoint is skipped when set to do so
 	 * @throws Exception
@@ -413,23 +413,23 @@
 		bps.add(createMethodBreakpoint(typeName, "method4", "()V", true, false));
 		// method 1 - exit
 		bps.add(createMethodBreakpoint(typeName, "method1", "()V", false, true));
-		
-		
+
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			IBreakpoint hit = getBreakpoint(thread);
 			assertNotNull("suspended, but not by breakpoint", hit);
 			assertEquals("should hit entry breakpoint first", bps.get(0),hit);
 
-			getBreakpointManager().setEnabled(false);			
+			getBreakpointManager().setEnabled(false);
 			resumeAndExit(thread);
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 			getBreakpointManager().setEnabled(true);
-		}		
-	}	
+		}
+	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/MethodBreakpointTests15.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/MethodBreakpointTests15.java
index fcb5d4e..7d29f20 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/MethodBreakpointTests15.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/MethodBreakpointTests15.java
@@ -27,7 +27,7 @@
  * Tests method breakpoints for 1.5 source code.
  */
 public class MethodBreakpointTests15 extends AbstractDebugTest {
-	
+
 	public MethodBreakpointTests15(String name) {
 		super(name);
 	}
@@ -38,30 +38,30 @@
 	@Override
 	protected IJavaProject getProjectContext() {
 		return get15Project();
-	}	
-	
+	}
+
 	public void testStaticTypeParameter() throws Exception {
 		IJavaMethodBreakpoint breakpoint  = createBreakpoint(25);
 		assertEquals("Wrong method", "staticTypeParameter", breakpoint.getMethodName());
-		runToBreakpoint(getTypeName(), breakpoint);		
+		runToBreakpoint(getTypeName(), breakpoint);
 	}
-	
+
 	public void testTypeParameter() throws Exception {
 		IJavaMethodBreakpoint breakpoint  = createBreakpoint(29);
 		assertEquals("Wrong method", "typeParameter", breakpoint.getMethodName());
 		runToBreakpoint(getTypeName(), breakpoint);
 	}
-	
+
 	public void testMethodTypeParameter() throws Exception {
 		IJavaMethodBreakpoint breakpoint  = createBreakpoint(34);
 		assertEquals("Wrong method", "methodTypeParameter", breakpoint.getMethodName());
-		runToBreakpoint(getTypeName(), breakpoint);	
-	}	
-	
+		runToBreakpoint(getTypeName(), breakpoint);
+	}
+
 	private String getTypeName() {
 		return "a.b.c.MethodBreakpoints";
 	}
-	
+
 	private IJavaMethodBreakpoint createBreakpoint(int line) throws Exception {
 		IType type = get15Project().findType(getTypeName());
 		assertNotNull("Missing file", type);
@@ -78,7 +78,7 @@
 		try {
 			thread= launchToBreakpoint(get15Project(), typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			IBreakpoint hit = getBreakpoint(thread);
 			assertNotNull("suspended, but not by breakpoint", hit);
 			assertEquals("should hit entry breakpoint first", mbp,hit);
@@ -87,7 +87,7 @@
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 		}
-	}	
+	}
 
 	/**
 	 * @throws Exception
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/MiscBreakpointsTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/MiscBreakpointsTests.java
index e5cb2e7..ce57fc9 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/MiscBreakpointsTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/MiscBreakpointsTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -24,11 +24,11 @@
  */
 public class MiscBreakpointsTests extends AbstractDebugTest {
 
-	private static final String COMPILE_ERROR_CONTENTS = 
+	private static final String COMPILE_ERROR_CONTENTS =
 	 "public class CompileError {\npublic static void main(String[] args) {\nString foo = \"foo\" + bar;\n}	\n}";
 
 	private static final String ORIGINAL_CONTENTS = "public class CompileError {\npublic static void main(String[] args) {\n}\n}";
-	
+
 	/**
 	 * Constructor
 	 * @param name
@@ -45,19 +45,19 @@
 	public void testSuspendOnUncaughtExceptions() throws Exception {
 		String typeName = "ThrowsNPE";
 		getPrefStore().setValue(IJDIPreferencesConstants.PREF_SUSPEND_ON_UNCAUGHT_EXCEPTIONS, true);
-				
+
 		IJavaThread javaThread = null;
 		try {
 			javaThread= launchAndSuspend(typeName);
-			
+
 			int stackLine = javaThread.getTopStackFrame().getLineNumber();
 			assertTrue("line number should be '26', but was " + stackLine, stackLine == 26);
-		
+
 		} finally {
             getPrefStore().setValue(IJDIPreferencesConstants.PREF_SUSPEND_ON_UNCAUGHT_EXCEPTIONS, false);
 			terminateAndRemove(javaThread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
 
 	/**
@@ -68,19 +68,19 @@
 	public void testSuspendOnCompilationErrors() throws Exception {
 		String typeName = "CompileError";
 		getPrefStore().setValue(IJDIPreferencesConstants.PREF_SUSPEND_ON_UNCAUGHT_EXCEPTIONS, false);
-		getPrefStore().setValue(IJDIPreferencesConstants.PREF_SUSPEND_ON_COMPILATION_ERRORS, true);		
-		
+		getPrefStore().setValue(IJDIPreferencesConstants.PREF_SUSPEND_ON_COMPILATION_ERRORS, true);
+
 		IType type = get14Project().findType(typeName);
 		ICompilationUnit cu = type.getCompilationUnit();
 		setFileContents(cu, COMPILE_ERROR_CONTENTS);
-		
+
 		IJavaThread javaThread = null;
 		try {
 			javaThread= launchAndSuspend(typeName);
-			
+
 			int stackLine = javaThread.getTopStackFrame().getLineNumber();
 			assertTrue("line number should be '3', but was " + stackLine, stackLine == 3);
-		
+
 		} finally {
             getPrefStore().setValue(IJDIPreferencesConstants.PREF_SUSPEND_ON_UNCAUGHT_EXCEPTIONS, false);
             getPrefStore().setValue(IJDIPreferencesConstants.PREF_SUSPEND_ON_COMPILATION_ERRORS, false);
@@ -88,7 +88,7 @@
 			removeAllBreakpoints();
 			//restore the file to remove compile errors
 			setFileContents(cu, ORIGINAL_CONTENTS);
-		}		
+		}
 	}
 
 	/**
@@ -99,12 +99,12 @@
 	public void testDontSuspendOnCompilationErrors() throws Exception {
 		String typeName = "CompileError";
 		getPrefStore().setValue(IJDIPreferencesConstants.PREF_SUSPEND_ON_UNCAUGHT_EXCEPTIONS, false);
-		getPrefStore().setValue(IJDIPreferencesConstants.PREF_SUSPEND_ON_COMPILATION_ERRORS, false);		
-		
+		getPrefStore().setValue(IJDIPreferencesConstants.PREF_SUSPEND_ON_COMPILATION_ERRORS, false);
+
 		IType type = get14Project().findType(typeName);
 		ICompilationUnit cu = type.getCompilationUnit();
 		setFileContents(cu, COMPILE_ERROR_CONTENTS);
-		
+
 		IJavaDebugTarget debugTarget = null;
 		try {
 			debugTarget= launchAndTerminate(typeName);
@@ -112,7 +112,7 @@
 			terminateAndRemove(debugTarget);
 			removeAllBreakpoints();
 			setFileContents(cu, ORIGINAL_CONTENTS);
-		}		
+		}
 	}
 
 	/**
@@ -122,22 +122,22 @@
 	 */
 	public void testDontSuspendOnUncaughtExceptions() throws Exception {
 		String typeName = "ThrowsNPE";
-		getPrefStore().setValue(IJDIPreferencesConstants.PREF_SUSPEND_ON_UNCAUGHT_EXCEPTIONS, false);		
-		
+		getPrefStore().setValue(IJDIPreferencesConstants.PREF_SUSPEND_ON_UNCAUGHT_EXCEPTIONS, false);
+
 		IJavaDebugTarget debugTarget= null;
 		try {
 			debugTarget = launchAndTerminate(typeName);
 		} finally {
 			terminateAndRemove(debugTarget);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * Returns the <code>JDIDebugUIPlugin</code> preference store
 	 * @return
 	 */
 	protected IPreferenceStore getPrefStore() {
-		return JDIDebugUIPlugin.getDefault().getPreferenceStore();		
+		return JDIDebugUIPlugin.getDefault().getPreferenceStore();
 	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/PatternBreakpointTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/PatternBreakpointTests.java
index 95c8412..f9d3e87 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/PatternBreakpointTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/PatternBreakpointTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -25,7 +25,7 @@
  */
 @SuppressWarnings("deprecation")
 public class PatternBreakpointTests extends AbstractDebugTest {
-	
+
 	/**
 	 * Constructor
 	 * @param name
@@ -66,7 +66,7 @@
 		bps.add(createPatternBreakpoint(72, sourceName, pattern));
 		// instance method
 		bps.add(createPatternBreakpoint(107, sourceName, pattern));
-		// static method 
+		// static method
 		bps.add(createPatternBreakpoint(53, sourceName, pattern));
 		// case statement
 		bps.add(createPatternBreakpoint(133, sourceName, pattern));
@@ -80,8 +80,8 @@
 		bps.add(createPatternBreakpoint(118, sourceName, pattern));
 		// while
 		bps.add(createPatternBreakpoint(97, sourceName, pattern));
-		
-		
+
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint("Breakpoints", false);
@@ -104,9 +104,9 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * Bug 74108 - enable/disable a stratum breakpoint that is not yet installed
 	 * @throws Exception
@@ -135,9 +135,9 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}				
+		}
 	}
-	
+
 	/**
 	 * Bug 74108 - enable/disable a pattern breakpoint that is not yet installed
 	 * @throws Exception
@@ -166,9 +166,9 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}				
-	}	
-	
+		}
+	}
+
 	/**
 	 * Tests that a pattern breakpoint is skipped when set to do so
 	 * @throws Exception
@@ -201,7 +201,7 @@
 		bps.add(createPatternBreakpoint(72, sourceName, pattern));
 		// instance method
 		bps.add(createPatternBreakpoint(107, sourceName, pattern));
-		// static method 
+		// static method
 		bps.add(createPatternBreakpoint(53, sourceName, pattern));
 		// case statement
 		bps.add(createPatternBreakpoint(133, sourceName, pattern));
@@ -215,8 +215,8 @@
 		bps.add(createPatternBreakpoint(118, sourceName, pattern));
 		// while
 		bps.add(createPatternBreakpoint(97, sourceName, pattern));
-		
-		
+
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint("Breakpoints");
@@ -227,6 +227,6 @@
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 			getBreakpointManager().setEnabled(true);
-		}		
-	}	
+		}
+	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/PreLaunchBreakpointTest.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/PreLaunchBreakpointTest.java
index 8ab5b75..c7e35ea 100755
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/PreLaunchBreakpointTest.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/PreLaunchBreakpointTest.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -26,7 +26,7 @@
  * Tests launch notification.
  */
 public class PreLaunchBreakpointTest extends AbstractDebugTest {
-	
+
 	/**
 	 * Constructor
 	 * @param name
@@ -34,17 +34,17 @@
 	public PreLaunchBreakpointTest(String name) {
 		super(name);
 	}
-	
+
 	/**
 	 * Tests that the perspective will switch if breakpoints are detected and the program was launched in
 	 * 'run' mode
 	 * @throws Exception
 	 */
 	public void testRunModeLaunchWithBreakpoints() throws Exception {
-		String typeName = "Breakpoints";		
-		
+		String typeName = "Breakpoints";
+
 		ILaunchConfiguration configuration = getLaunchConfiguration(typeName);
-		
+
 		IPreferenceStore preferenceStore = DebugUIPlugin.getDefault().getPreferenceStore();
 		preferenceStore.setValue(IInternalDebugUIConstants.PREF_RELAUNCH_IN_DEBUG_MODE, MessageDialogWithToggle.ALWAYS);
 		IJavaThread thread = null;
@@ -56,7 +56,7 @@
 			Object suspendee= waiter.waitForEvent();
 			assertTrue("Program did not suspend", suspendee instanceof IJavaThread);
 			thread = (IJavaThread) suspendee;
-			
+
 		} catch (Exception e) {
 			e.printStackTrace();
 		} finally {
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/RunToLineTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/RunToLineTests.java
index a49961b..22da8a3 100755
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/RunToLineTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/RunToLineTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -38,7 +38,7 @@
  * Tests run to line debug functionality
  */
 public class RunToLineTests extends AbstractDebugTest {
-	
+
 	/**
 	 * Constructor
 	 * @param name
@@ -49,7 +49,7 @@
 
 	private Object fLock = new Object();
 	private IEditorPart fEditor = null;
-	
+
 	class MyListener implements IPerspectiveListener2 {
 
 		/**
@@ -76,43 +76,43 @@
 		 * @see org.eclipse.ui.IPerspectiveListener#perspectiveChanged(org.eclipse.ui.IWorkbenchPage, org.eclipse.ui.IPerspectiveDescriptor, java.lang.String)
 		 */
 		@Override
-		public void perspectiveChanged(IWorkbenchPage page, IPerspectiveDescriptor perspective, String changeId) {			
+		public void perspectiveChanged(IWorkbenchPage page, IPerspectiveDescriptor perspective, String changeId) {
 		}
 	}
 
 	/**
 	 * Test a run to line, with no extra breakpoints.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testRunToLine() throws Exception {
 	    runToLine(55, 55, true);
 	}
-	
+
 	/**
 	 * Test a run to line, with an extra breakpoint, and preference to skip
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testRunToLineSkipBreakpoint() throws Exception {
 	    createLineBreakpoint(53, "Breakpoints");
 	    runToLine(55, 55, true);
-	}	
-	
+	}
+
 	/**
 	 * Test a run to line, with an extra breakpoint, and preference to *not* skip
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testRunToLineHitBreakpoint() throws Exception {
 	    createLineBreakpoint(53, "Breakpoints");
 	    runToLine(55, 53, false);
-	}	
+	}
 
 	/**
 	 * Runs to the given line number in the 'Breakpoints' source file, after stopping at the
 	 * first line in the main method.
-	 * 
+	 *
 	 * @param lineNumber line number to run to, ONE BASED
 	 * @param expectedLineNumber the line number to be on after run-to-line (may differ from
 	 *  the target line number if the option to skip breakpoints is off).
@@ -122,7 +122,7 @@
 	public void runToLine(final int lineNumber, int expectedLineNumber, boolean skipBreakpoints) throws Exception {
 		String typeName = "Breakpoints";
 		IJavaLineBreakpoint breakpoint = createLineBreakpoint(52, typeName);
-		
+
 		boolean restore = DebugUITools.getPreferenceStore().getBoolean(IDebugUIConstants.PREF_SKIP_BREAKPOINTS_DURING_RUN_TO_LINE);
 		DebugUITools.getPreferenceStore().setValue(IDebugUIConstants.PREF_SKIP_BREAKPOINTS_DURING_RUN_TO_LINE, skipBreakpoints);
 		IJavaThread thread= null;
@@ -139,7 +139,7 @@
             };
             Display display = DebugUIPlugin.getStandardDisplay();
             display.syncExec(closeAll);
-            
+
 			thread= launchToLineBreakpoint(typeName, breakpoint);
 			// wait for editor to open
 			synchronized (fLock) {
@@ -148,20 +148,20 @@
 			    }
             }
 			if (fEditor == null) {
-				Runnable r = new Runnable() {				
+				Runnable r = new Runnable() {
 					@Override
 					public void run() {
 						IWorkbenchWindow activeWorkbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
 	                    IEditorPart activeEditor = activeWorkbenchWindow.getActivePage().getActiveEditor();
                         if (activeEditor != null) {
-                            System.out.println("ACTIVE: " + activeEditor.getTitle());    
+                            System.out.println("ACTIVE: " + activeEditor.getTitle());
                         }
 					}
 				};
 				display.syncExec(r);
 			}
 			assertNotNull("Editor did not open", fEditor);
-			
+
 			final Exception[] exs = new Exception[1];
 			final IJavaThread suspendee = thread;
 			Runnable r = new Runnable() {
@@ -204,7 +204,7 @@
                 }
             };
             Display display = DebugUIPlugin.getStandardDisplay();
-            display.syncExec(cleanup);			
-		}		
+            display.syncExec(cleanup);
+		}
 	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/SuspendVMBreakpointsTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/SuspendVMBreakpointsTests.java
index 3cdeebe..07ef5ec 100755
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/SuspendVMBreakpointsTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/SuspendVMBreakpointsTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -44,18 +44,18 @@
 		String typeName = "MultiThreadedLoop";
 		IJavaLineBreakpoint bp = createLineBreakpoint(40, typeName);
 		bp.setSuspendPolicy(IJavaBreakpoint.SUSPEND_VM);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
-			
+
 			verifyAllThreadsSuspended(thread);
-			
+
 			bp.delete();
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
 
 	/**
@@ -64,37 +64,37 @@
 	 */
 	public void testSuspendVmExceptionBreakpoint() throws Exception {
 		String typeName = "ThrowsNPE";
-		IJavaExceptionBreakpoint ex = createExceptionBreakpoint("java.lang.NullPointerException", true, false);		
+		IJavaExceptionBreakpoint ex = createExceptionBreakpoint("java.lang.NullPointerException", true, false);
 		ex.setSuspendPolicy(IJavaBreakpoint.SUSPEND_VM);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			IBreakpoint hit = getBreakpoint(thread);
 			assertNotNull("suspended, but not by breakpoint", hit);
 			assertEquals("suspended, but not by exception breakpoint", ex ,hit);
-			
+
 			verifyAllThreadsSuspended(thread);
-			
+
 			ex.delete();
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * Tests that the VM is suspended when a specific access watchpoint is hit
 	 * @throws Exception
 	 */
 	public void testSuspendVmAccessWatchpointBreakpoint() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.Watchpoint";
-		
+
 		IJavaWatchpoint wp = createWatchpoint(typeName, "list", true, false);
 		wp.setSuspendPolicy(IJavaBreakpoint.SUSPEND_VM);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
@@ -104,16 +104,16 @@
 			IStackFrame frame = thread.getTopStackFrame();
 			assertNotNull("No breakpoint", hit);
 			assertTrue("Should be an access", wp.isAccessSuspend(thread.getDebugTarget()));
-			assertEquals("Should be line 30", 30, frame.getLineNumber());			
-			
+			assertEquals("Should be line 30", 30, frame.getLineNumber());
+
 			verifyAllThreadsSuspended(thread);
-			
+
 			wp.delete();
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}	
+		}
+	}
 
 	/**
 	 * Tests that the VM is suspended when a specific modification watchpoint is hit
@@ -121,10 +121,10 @@
 	 */
 	public void testSuspendVmModificationWatchpointBreakpoint() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.Watchpoint";
-		
+
 		IJavaWatchpoint wp = createWatchpoint(typeName, "list", false, true);
 		wp.setSuspendPolicy(IJavaBreakpoint.SUSPEND_VM);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
@@ -133,21 +133,21 @@
 			IBreakpoint hit = getBreakpoint(thread);
 			IStackFrame frame = thread.getTopStackFrame();
 			assertNotNull("No breakpoint", hit);
-			
+
 			// should be modification
 			assertTrue("First hit should be modification", !wp.isAccessSuspend(thread.getDebugTarget()));
 			// line 27
 			assertEquals("Should be on line 27", 27, frame.getLineNumber());
-			
+
 			verifyAllThreadsSuspended(thread);
-			
+
 			wp.delete();
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}	
-	
+		}
+	}
+
 	/**
 	 * Tests that the VM is suspended when a specific method entry breakpoint is hit
 	 * @throws Exception
@@ -156,50 +156,50 @@
 		String typeName = "DropTests";
 		IJavaBreakpoint bp = createMethodBreakpoint(typeName, "method4", "()V", true, false);
 		bp.setSuspendPolicy(IJavaBreakpoint.SUSPEND_VM);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
-			
+
 			IBreakpoint hit = getBreakpoint(thread);
 			assertNotNull("suspended, but not by breakpoint", hit);
 			assertTrue("breakpoint was not a method breakpoint", hit instanceof IJavaMethodBreakpoint);
 
 			verifyAllThreadsSuspended(thread);
-			
+
 			bp.delete();
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * Tests that the VM is suspended when a specific method exit breakpoint is hit
 	 * @throws Exception
 	 */
 	public void testSuspendVmMethodExitBreakpoint() throws Exception {
 		String typeName = "DropTests";
-		IJavaBreakpoint bp = createMethodBreakpoint(typeName, "method1", "()V", false, true);		
+		IJavaBreakpoint bp = createMethodBreakpoint(typeName, "method1", "()V", false, true);
 		bp.setSuspendPolicy(IJavaBreakpoint.SUSPEND_VM);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
-			
+
 			IBreakpoint hit = getBreakpoint(thread);
 			assertNotNull("suspended, but not by breakpoint", hit);
 			assertTrue("breakpoint was not a method breakpoint", hit instanceof IJavaMethodBreakpoint);
 
 			verifyAllThreadsSuspended(thread);
-						
+
 			bp.delete();
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * Verifies that all of the threads of the related debug target are suspended
 	 * @param thread
@@ -210,9 +210,9 @@
 			IThread[] threads = debugTarget.getThreads();
 			for (int i = 0; i < threads.length; i++) {
 				assertTrue("Thread wasn't suspended when a SUSPEND_VM breakpoint was hit, thread=" + threads[i].getName(), threads[i].isSuspended());
-			}		
+			}
 		} catch (DebugException e) {
 			fail(e.getMessage());
 		}
-	}	
+	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/TargetPatternBreakpointTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/TargetPatternBreakpointTests.java
index c384f43..87d0a2f 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/TargetPatternBreakpointTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/TargetPatternBreakpointTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -32,7 +32,7 @@
  * Tests deferred target pattern breakpoints.
  */
 public class TargetPatternBreakpointTests extends AbstractDebugTest implements IJavaBreakpointListener {
-	
+
 	/**
 	 * Constructor
 	 * @param name
@@ -47,7 +47,7 @@
 	 */
 	public void testTargetPatternBreakpoints() throws Exception {
 		JDIDebugPlugin.getDefault().addJavaBreakpointListener(this);
-		
+
 		String sourceName = "Breakpoints.java";
 		List<IJavaTargetPatternBreakpoint> bps = new ArrayList<IJavaTargetPatternBreakpoint>();
 		// anonymous class
@@ -74,7 +74,7 @@
 		bps.add(createTargetPatternBreakpoint(72, sourceName));
 		// instance method
 		bps.add(createTargetPatternBreakpoint(107, sourceName));
-		// static method 
+		// static method
 		bps.add(createTargetPatternBreakpoint(53, sourceName));
 		// case statement
 		bps.add(createTargetPatternBreakpoint(133, sourceName));
@@ -88,8 +88,8 @@
 		bps.add(createTargetPatternBreakpoint(118, sourceName));
 		// while
 		bps.add(createTargetPatternBreakpoint(97, sourceName));
-		
-		
+
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint("Breakpoints", false);
@@ -113,7 +113,7 @@
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 			JDIDebugPlugin.getDefault().removeJavaBreakpointListener(this);
-		}		
+		}
 	}
 	/**
 	 * @see IJavaBreakpointListener#addingBreakpoint(IJavaDebugTarget, IJavaBreakpoint)
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/TestToggleBreakpointsTarget.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/TestToggleBreakpointsTarget.java
index 5099803..7da9341 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/TestToggleBreakpointsTarget.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/TestToggleBreakpointsTarget.java
@@ -25,11 +25,11 @@
 	public TestToggleBreakpointsTarget(String name) {
 		super(name);
 	}
-	
+
 	/**
 	 * Tests that qualified names get created for line breakpoints in external
 	 * files.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testExternalLineBreakpoint() throws Exception {
@@ -49,11 +49,11 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * Tests that qualified names get created for watchpoints in external
 	 * files.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testExternalWatchpoint() throws Exception {
@@ -72,12 +72,12 @@
 			manager.removeBreakpointListener(listener);
 			removeAllBreakpoints();
 		}
-	}	
-	
+	}
+
 	/**
 	 * Tests that qualified names get created for method breakpoints in external
 	 * files.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testExternalMethodBreakpoint() throws Exception {
@@ -99,6 +99,6 @@
 			manager.removeBreakpointListener(listener);
 			removeAllBreakpoints();
 		}
-	}	
-	
+	}
+
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/TestToggleBreakpointsTarget8.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/TestToggleBreakpointsTarget8.java
index 59394df..d864bac 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/TestToggleBreakpointsTarget8.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/TestToggleBreakpointsTarget8.java
@@ -20,10 +20,10 @@
  * Tests the Java debugger's 'toggle breakpoints target'.

  */

 public class TestToggleBreakpointsTarget8 extends AbstractToggleBreakpointsTarget {

-	

-	

-	

-	

+

+

+

+

 	public TestToggleBreakpointsTarget8(String name) {

 		super(name);

 		// TODO Auto-generated constructor stub

@@ -32,7 +32,7 @@
 	/**

 	 * Tests that qualified names get created for method breakpoints in default method of Java 8 interface

 	 * files.

-	 * 

+	 *

 	 * @throws Exception

 	 */

 	public void testInterfaceDefaultMethodBreakpoint() throws Exception {

@@ -53,11 +53,11 @@
 			removeAllBreakpoints();

 		}

 	}

-	

+

 	/**

 	 * Tests that qualified names get created for method breakpoints in Static method of Java 8 interface

 	 * files.

-	 * 

+	 *

 	 * @throws Exception

 	 */

 	public void testInterfaceStaticMethodBreakpoint() throws Exception {

@@ -78,12 +78,12 @@
 			removeAllBreakpoints();

 		}

 	}

-	

-		

+

+

 	/**

 	 * Tests that qualified names does get created for method breakpoints in unimplemented method of Java 8 interface

 	 * files.

-	 * 

+	 *

 	 * @throws Exception

 	 */

 	public void testInterfaceUnimplementedMethodBreakpoint() throws Exception {

@@ -99,11 +99,11 @@
 			removeAllBreakpoints();

 		}

 	}

-	

+

 	/**

 	 * Tests that qualified names get created for line breakpoints in Interface implemented method

 	 * files.

-	 * 

+	 *

 	 * @throws Exception

 	 */

 	public void testInterfaceLineBreakpoint() throws Exception {

@@ -123,5 +123,5 @@
 			removeAllBreakpoints();

 		}

 	}

-	

+

 }

diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/ThreadFilterBreakpointsTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/ThreadFilterBreakpointsTests.java
index 5bd71bd..dab9328 100755
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/ThreadFilterBreakpointsTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/ThreadFilterBreakpointsTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -36,19 +36,19 @@
 	public void testSimpleThreadFilterBreakpoint() throws Exception {
 		String typeName = "HitCountLooper";
 		IJavaLineBreakpoint bp = createLineBreakpoint(16, typeName);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
 
 			bp.setThreadFilter(thread);
 			resumeToLineBreakpoint(thread, bp);
-						
+
 			bp.delete();
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
 
 	/**
@@ -58,23 +58,23 @@
 	public void testMultiThreadFilterBreakpoint() throws Exception {
 		String typeName = "MultiThreadedLoop";
 		IJavaLineBreakpoint bp1 = createLineBreakpoint(17, typeName);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp1);
-			
+
 			IJavaLineBreakpoint bp2 = createLineBreakpoint(40, typeName);
 			bp2.setThreadFilter(thread);
-			
+
 			thread = resumeToLineBreakpoint(thread, bp2);
 			assertTrue("Suspended thread should have been '1stThread'", thread.getName().equals("1stThread"));
-						
+
 			bp1.delete();
 			bp2.delete();
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
 
 	/**
@@ -84,23 +84,23 @@
 	public void testExceptionThreadFilterBreakpoint() throws Exception {
 		String typeName = "MultiThreadedException";
 		IJavaLineBreakpoint bp1 = createLineBreakpoint(17, typeName);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp1);
 			IJavaExceptionBreakpoint ex1 = createExceptionBreakpoint("java.lang.NullPointerException", false, true);
 			ex1.setThreadFilter(thread);
-			
+
 			thread = resume(thread);
 			assertTrue("Suspended thread should have been '1stThread'", thread.getName().equals("1stThread"));
-			
+
 			bp1.delete();
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-			
+
 	/**
 	 * Tests that a thread filter works for a specific watchpoint
 	 * @throws Exception
@@ -108,24 +108,24 @@
 	public void testAccessWatchpointThreadFilterBreakpoint() throws Exception {
 		String typeName = "MultiThreadedList";
 		IJavaLineBreakpoint bp1 = createLineBreakpoint(21, typeName);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp1);
-			IJavaWatchpoint wp = createWatchpoint(typeName, "list", true, false);			
-			wp.setThreadFilter(thread);			
-			
+			IJavaWatchpoint wp = createWatchpoint(typeName, "list", true, false);
+			wp.setThreadFilter(thread);
+
 			thread = resume(thread);
 			assertTrue("Suspended thread should have been '1stThread'", thread.getName().equals("1stThread"));
-			
+
 			bp1.delete();
 			wp.delete();
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-			
+
 	/**
 	 * Tests that a thread filter is working for a specific modification watchpoint
 	 * @throws Exception
@@ -133,21 +133,21 @@
 	public void testModificationWatchpointThreadFilterBreakpoint() throws Exception {
 		String typeName = "MultiThreadedList";
 		IJavaLineBreakpoint bp1 = createLineBreakpoint(22, typeName);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp1);
-			IJavaWatchpoint wp = createWatchpoint(typeName, "i", false, true);			
-			wp.setThreadFilter(thread);			
-			
+			IJavaWatchpoint wp = createWatchpoint(typeName, "i", false, true);
+			wp.setThreadFilter(thread);
+
 			thread = resume(thread);
 			assertTrue("Suspended thread should have been '1stThread'", thread.getName().equals("1stThread"));
-			
+
 			bp1.delete();
 			wp.delete();
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/TriggerPointBreakpointsTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/TriggerPointBreakpointsTests.java
index 37cc3d7..91b519e 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/TriggerPointBreakpointsTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/TriggerPointBreakpointsTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -32,7 +32,7 @@
 
 	/**
 	 * Tests the trigger point
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testTriggerPointBreakpoint() throws Exception {
@@ -40,7 +40,7 @@
 		IJavaLineBreakpoint bp1 = createLineBreakpoint(25, typeName);
 		IJavaLineBreakpoint bp2 = createLineBreakpoint(30, typeName);
 		bp2.setTriggerPoint(true);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread = launchToLineBreakpoint(typeName, bp2);
@@ -48,7 +48,7 @@
 			IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
 			IVariable var = findVariable(frame, "i");
 			assertNotNull("Could not find variable 'i'", var);
-			
+
 			IJavaPrimitiveValue value = (IJavaPrimitiveValue)var.getValue();
 			assertNotNull("variable 'i' has no value", value);
 			int iValue = value.getIntValue();
@@ -56,7 +56,7 @@
 
 			var = findVariable(frame, "j");
 			assertNotNull("Could not find variable 'j'", var);
-			
+
 			value = (IJavaPrimitiveValue) var.getValue();
 			assertNotNull("variable 'j' has no value", value);
 			int jValue = value.getIntValue();
@@ -67,6 +67,6 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/TypeNameBreakpointTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/TypeNameBreakpointTests.java
index 212d404..e19efdb 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/TypeNameBreakpointTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/TypeNameBreakpointTests.java
@@ -34,7 +34,7 @@
 
 /**
  * Tests getting and setting the type name for Java breakpoints
- * 
+ *
  * @since 3.8.200
  */
 public class TypeNameBreakpointTests extends AbstractDebugTest {
@@ -72,7 +72,7 @@
 
 	/**
 	 * Tests the {@link JavaDebugUtils#typeNamesEqual(String, String)} method
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testTypeNamesEqual() throws Exception {
@@ -84,7 +84,7 @@
 
 	/**
 	 * Returns the {@link IResource} for the class HitCountLooper
-	 * 
+	 *
 	 * @return the {@link IResource} for HitCountLooper
 	 */
 	IResource getTestResource() throws Exception {
@@ -93,7 +93,7 @@
 
 	/**
 	 * Util to get a line breakpoint with a null type name
-	 * 
+	 *
 	 * @return
 	 * @throws Exception
 	 */
@@ -105,7 +105,7 @@
 
 	/**
 	 * Util to get an exception breakpoint with a null type
-	 * 
+	 *
 	 * @return
 	 * @throws Exception
 	 */
@@ -117,7 +117,7 @@
 
 	/**
 	 * Util to get a method entry breakpoint with a null type
-	 * 
+	 *
 	 * @return
 	 * @throws Exception
 	 */
@@ -129,7 +129,7 @@
 
 	/**
 	 * Util to get a stratum line breakpoint with no type
-	 * 
+	 *
 	 * @return
 	 * @throws Exception
 	 */
@@ -141,7 +141,7 @@
 
 	/**
 	 * Util to get a class prepare breakpoint with a null type
-	 * 
+	 *
 	 * @return
 	 * @throws Exception
 	 */
@@ -153,7 +153,7 @@
 
 	/**
 	 * Util to get a watchpoint with a null type
-	 * 
+	 *
 	 * @return
 	 * @throws Exception
 	 */
@@ -167,7 +167,7 @@
 
 	/**
 	 * Util to get a method breakpoint with a null type
-	 * 
+	 *
 	 * @return
 	 * @throws Exception
 	 */
@@ -180,7 +180,7 @@
 	/**
 	 * Tests {@link JDIDebugModel#createLineBreakpoint(org.eclipse.core.resources.IResource, String, int, int, int, int, boolean, java.util.Map)} with
 	 * a null type name
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testCreateLineBPNullTypeName() throws Exception {
@@ -197,7 +197,7 @@
 	 * Tests the
 	 * {@link JDIDebugModel#createMethodBreakpoint(IResource, String, String, String, boolean, boolean, boolean, int, int, int, int, boolean, java.util.Map)}
 	 * method with null type infos
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testCreateMethodBPNullTypeName() throws Exception {
@@ -213,7 +213,7 @@
 	/**
 	 * Tests the {@link JDIDebugModel#createExceptionBreakpoint(IResource, String, boolean, boolean, boolean, boolean, java.util.Map)} method with
 	 * null type infos
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testCreateExceptionBPNullTypeName() throws Exception {
@@ -229,7 +229,7 @@
 	/**
 	 * Tests the {@link JDIDebugModel#createClassPrepareBreakpoint(IResource, String, int, int, int, boolean, java.util.Map)} method with null type
 	 * infos
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testCreateClassPrepareBPNullTypeName() throws Exception {
@@ -245,7 +245,7 @@
 	/**
 	 * Tests the {@link JDIDebugModel#createWatchpoint(IResource, String, String, int, int, int, int, boolean, java.util.Map)} method with null type
 	 * infos
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testCreateWatchpointBPNullTypeName() throws Exception {
@@ -261,7 +261,7 @@
 	/**
 	 * Tests the {@link JDIDebugModel#createStratumBreakpoint(IResource, String, String, String, String, int, int, int, int, boolean, java.util.Map)}
 	 * method with null type infos
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testCreateStratumBPNullTypeName() throws Exception {
@@ -277,7 +277,7 @@
 	/**
 	 * Tests the {@link JDIDebugModel#createMethodEntryBreakpoint(IResource, String, String, String, int, int, int, int, boolean, java.util.Map)}
 	 * method with null type infos
-	 * 
+	 *
 	 * @throws Excpetion
 	 */
 	public void testCreateMethodEntryBPNullTypeName() throws Exception {
@@ -292,7 +292,7 @@
 
 	/**
 	 * Tests the {@link JDIModelPresentation#getMarkerTypeName}
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testGetPresentationNullTypeName() throws Exception {
@@ -308,7 +308,7 @@
 
 	/**
 	 * Tests the {@link JDIModelPresentation#getExceptionBreakpointText} with a null type name
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testGetPresentationTypeNameNull2() throws Exception {
@@ -324,7 +324,7 @@
 
 	/**
 	 * Tests the {@link JDIModelPresentation#getLineBreakpointText} with a null type name
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testGetPresentationTypeNameNull3() throws Exception {
@@ -340,7 +340,7 @@
 
 	/**
 	 * Tests the {@link JDIModelPresentation#getClassPrepareBreakpointText} with a null type name
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testGetPresentationTypeNameNull4() throws Exception {
@@ -356,7 +356,7 @@
 
 	/**
 	 * Tests the {@link JDIModelPresentation#getWatchpointText} with a null type name
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testGetPresentationTypeNameNull5() throws Exception {
@@ -372,7 +372,7 @@
 
 	/**
 	 * Tests the {@link JDIModelPresentation#getMethodBreakpointText} with a null type name
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testGetPresentationTypeNameNull6() throws Exception {
@@ -388,7 +388,7 @@
 
 	/**
 	 * Tests the {@link JDIModelPresentation#getStratumLineBreakpointText} with a null type name
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testGetPresentationTypeNameNull7() throws Exception {
@@ -404,7 +404,7 @@
 
 	/**
 	 * Tests the {@link JDIDebugModel#lineBreakpointExists(String, int)} method
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testJDIDebugModelTypeName2() throws Exception {
@@ -419,7 +419,7 @@
 
 	/**
 	 * Tests the {@link JDIDebugModel#lineBreakpointExists(String, int)} method with a null type name
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testJDIModelTypeNameNull1() throws Exception {
@@ -434,7 +434,7 @@
 
 	/**
 	 * Tests that launching with a null typed breakpoint does not suspend and does not cause a failure while trying to create requests
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testLaunchNullTypeLineBreakpoint() throws Exception {
@@ -452,7 +452,7 @@
 
 	/**
 	 * Tests launching with an exception breakpoint with a null type name
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testLaunchNullTypeExceptionBreakpoint() throws Exception {
@@ -470,7 +470,7 @@
 
 	/**
 	 * Tests launching with a watchpoint with a null type
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testLaunchNullTypeWatchpoint() throws Exception {
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/WatchpointTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/WatchpointTests.java
index abea61a..985f124 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/WatchpointTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/WatchpointTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -26,7 +26,7 @@
  * Tests watchpoint, both modification and access watchpoints
  */
 public class WatchpointTests extends AbstractDebugTest {
-	
+
 	/**
 	 * Constructor
 	 * @param name
@@ -41,9 +41,9 @@
 	 */
 	public void testAccessAndModification() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.Watchpoint";
-		
+
 		IJavaWatchpoint wp = createWatchpoint(typeName, "list", true, true);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
@@ -52,12 +52,12 @@
 			IBreakpoint hit = getBreakpoint(thread);
 			IStackFrame frame = thread.getTopStackFrame();
 			assertNotNull("No breakpoint", hit);
-			
+
 			// should be modification
 			assertTrue("First hit should be modification", !wp.isAccessSuspend(thread.getDebugTarget()));
 			// line 27
 			assertEquals("Should be on line 27", 27, frame.getLineNumber());
-			
+
 			// should hit access 10 times
 			int count = 10;
 			while (count > 0) {
@@ -73,24 +73,24 @@
 				assertEquals("Should be line 30", 30, frame.getLineNumber());
 				count--;
 			}
-			
+
 			resumeAndExit(thread);
 
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * Tests that a modification breakpoint suspends correctly
 	 * @throws Exception
 	 */
 	public void testModification() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.Watchpoint";
-		
+
 		IJavaWatchpoint wp = createWatchpoint(typeName, "list", false, true);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
@@ -99,48 +99,48 @@
 			IBreakpoint hit = getBreakpoint(thread);
 			IStackFrame frame = thread.getTopStackFrame();
 			assertNotNull("No breakpoint", hit);
-			
+
 			// should be modification
 			assertTrue("First hit should be modification", !wp.isAccessSuspend(thread.getDebugTarget()));
 			// line 27
 			assertEquals("Should be on line 27", 27, frame.getLineNumber());
-			
+
 			resumeAndExit(thread);
 
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}	
-	
+		}
+	}
+
 	/**
 	 * Tests that a disabled modification watchpoint is NOT hit
 	 * @throws Exception
 	 */
 	public void testDisabledModification() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.Watchpoint";
-		
+
 		IJavaWatchpoint wp = createWatchpoint(typeName, "list", false, true);
 		wp.setEnabled(false);
-		
+
 		IJavaDebugTarget debugTarget= null;
 		try {
 			debugTarget= launchAndTerminate(typeName);
 		} finally {
 			terminateAndRemove(debugTarget);
 			removeAllBreakpoints();
-		}		
-	}	
-	
+		}
+	}
+
 	/**
 	 * Tests that an access watchpoint is hit
 	 * @throws Exception
 	 */
 	public void testAccess() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.Watchpoint";
-		
+
 		IJavaWatchpoint wp = createWatchpoint(typeName, "list", true, false);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
@@ -150,8 +150,8 @@
 			IStackFrame frame = thread.getTopStackFrame();
 			assertNotNull("No breakpoint", wp);
 			assertTrue("Should be an access", wp.isAccessSuspend(thread.getDebugTarget()));
-			assertEquals("Should be line 30", 30, frame.getLineNumber());			
-			
+			assertEquals("Should be line 30", 30, frame.getLineNumber());
+
 			// should hit access 9 more times
 			int count = 9;
 			while (count > 0) {
@@ -167,14 +167,14 @@
 				assertEquals("Should be line 30", 30, frame.getLineNumber());
 				count--;
 			}
-			
+
 			resumeAndExit(thread);
 
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}	
+		}
+	}
 
 	/**
 	 * Tests that a disabled access watchpoint is not hit
@@ -182,9 +182,9 @@
 	 */
 	public void testDisabledAccess() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.Watchpoint";
-		
+
 		IJavaWatchpoint wp = createWatchpoint(typeName, "list", true, false);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
@@ -198,17 +198,17 @@
 				throw new TestAgainException("Retest - the debug target is terminated or disconnected");
 			}
 			assertTrue("Should be an access", wp.isAccessSuspend(thread.getDebugTarget()));
-			assertEquals("Should be line 30", 30, frame.getLineNumber());			
-			
+			assertEquals("Should be line 30", 30, frame.getLineNumber());
+
 			wp.setEnabled(false);
-						
+
 			resumeAndExit(thread);
 
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}	
+		}
+	}
 
 	/**
 	 * Tests that an access watchpoint suspends when it count is hit
@@ -216,10 +216,10 @@
 	 */
 	public void testHitCountAccess() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.Watchpoint";
-		
+
 		IJavaWatchpoint wp = createWatchpoint(typeName, "list", true, false);
 		wp.setHitCount(4);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
@@ -229,18 +229,18 @@
 			IJavaStackFrame frame = (IJavaStackFrame) thread.getTopStackFrame();
 			assertNotNull("No breakpoint", hit);
 			assertTrue("Should be an access", wp.isAccessSuspend(thread.getDebugTarget()));
-			assertEquals("Should be line 30", 30, frame.getLineNumber());			
+			assertEquals("Should be line 30", 30, frame.getLineNumber());
 			IVariable var = findVariable(frame, "value");
 			assertNotNull("Could not find variable 'value'", var);
-			
+
 			// retrieve an instance var
 			IJavaPrimitiveValue value = (IJavaPrimitiveValue)var.getValue();
 			assertNotNull(value);
 			int varValue = value.getIntValue();
-			assertTrue("'value' should be 7", varValue == 7);			
-			
+			assertTrue("'value' should be 7", varValue == 7);
+
 			wp.setHitCount(0);
-			
+
 			// should hit access 6 more times
 			int count = 6;
 			while (count > 0) {
@@ -256,24 +256,24 @@
 				assertEquals("Should be line 30", 30, frame.getLineNumber());
 				count--;
 			}
-			
+
 			resumeAndExit(thread);
 
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}	
-	
+		}
+	}
+
 	/**
 	 * Tests that a watchpoint set to be skipped is indeed skipped
 	 * @throws Exception
 	 */
 	public void testSkipWatchpoint() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.Watchpoint";
-		
+
 		IJavaWatchpoint wp = createWatchpoint(typeName, "list", true, true);
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
@@ -282,12 +282,12 @@
 			IBreakpoint hit = getBreakpoint(thread);
 			IStackFrame frame = thread.getTopStackFrame();
 			assertNotNull("No breakpoint", hit);
-			
+
 			// should be modification
 			assertTrue("First hit should be modification", !wp.isAccessSuspend(thread.getDebugTarget()));
 			// line 27
 			assertEquals("Should be on line 27", 27, frame.getLineNumber());
-			
+
 			getBreakpointManager().setEnabled(false);
 			resumeAndExit(thread);
 
@@ -295,12 +295,12 @@
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 			getBreakpointManager().setEnabled(true);
-		}		
-	}	
+		}
+	}
 
 	/**
 	 * Tests that a watchpoint set to be skipped is indeed skipped
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testFinalWatchpoint() throws Exception {
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/connectors/MultipleConnectionsTest.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/connectors/MultipleConnectionsTest.java
index caf70b7..4735c7d 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/connectors/MultipleConnectionsTest.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/connectors/MultipleConnectionsTest.java
@@ -63,7 +63,7 @@
 	/**
 	 * Ensure out-of-the-box settings mimics previous behaviour of accepting a
 	 * single connection
-	 * 
+	 *
 	 * @throws IOException
 	 */
 	@Test
@@ -80,7 +80,7 @@
 
 	/**
 	 * Ensure connector accepts a single connection
-	 * 
+	 *
 	 * @throws InterruptedException
 	 */
 	@Test
@@ -99,7 +99,7 @@
 	/**
 	 * Ensure out-of-the-box settings mimics previous behaviour of accepting a
 	 * single connection
-	 * 
+	 *
 	 * @throws InterruptedException
 	 */
 	@Test
@@ -118,7 +118,7 @@
 	/**
 	 * Ensure out-of-the-box settings mimics previous behaviour of accepting a
 	 * single connection
-	 * 
+	 *
 	 * @throws InterruptedException
 	 */
 	@Test
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/AlternateStratumTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/AlternateStratumTests.java
index af118f9..dbdce7f 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/AlternateStratumTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/AlternateStratumTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -39,7 +39,7 @@
 
 	/**
 	 * Test available strata on a type with alternate strata
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testAvailableStrata() throws Exception {
@@ -64,7 +64,7 @@
 
 	/**
 	 * Test default stratum on a type with alternate strata.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testDefaultStratum() throws Exception {
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ArgumentTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ArgumentTests.java
index 56689e1..286cf49 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ArgumentTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ArgumentTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -36,7 +36,7 @@
  * Tests for program and VM arguments
  */
 public class ArgumentTests extends AbstractDebugTest {
-    
+
     private Object fLock = new Object();
 
 	private class ConsoleArgumentOutputRetriever implements IConsoleLineTrackerExtension {
@@ -44,7 +44,7 @@
 		StringBuffer buffer;
 		IDocument document;
 		boolean closed = false;
-		
+
 		/**
 		 * @see org.eclipse.debug.ui.console.IConsoleLineTracker#dispose()
 		 */
@@ -67,13 +67,13 @@
 		public void lineAppended(IRegion line) {
 			try {
                 assertNotNull("received notification of invalid line", line);
-                assertNotNull("buffer is null", buffer); 
+                assertNotNull("buffer is null", buffer);
                 buffer.append(document.get(line.getOffset(), line.getLength()));
 			} catch (BadLocationException e) {
 				e.printStackTrace();
 			}
 		}
-		
+
 		/**
 		 * @see org.eclipse.debug.ui.console.IConsoleLineTrackerExtension#consoleClosed()
 		 */
@@ -99,11 +99,11 @@
 		    	}
 		    }
 		    if (!closed) {
-				// output contents to console in case of error 
+				// output contents to console in case of error
 				if (buffer != null) {
 				    System.out.println();
 				    System.out.println(ArgumentTests.this.getName());
-				    System.out.println("\treceived " + buffer.length() + " chars: " + buffer.toString()); 
+				    System.out.println("\treceived " + buffer.length() + " chars: " + buffer.toString());
 				}
 		    }
 		    assertNotNull("Line tracker did not receive init notification", buffer);
@@ -121,7 +121,7 @@
 		super(name);
 	}
 
-	/** 
+	/**
 	 * Creates and returns a new launch config the given name
 	 */
 	protected ILaunchConfigurationWorkingCopy newConfiguration(IContainer container, String name) throws CoreException {
@@ -167,7 +167,7 @@
 	}
 	/**
 	 * Test a VM argument with the quoting style we recommended as a workaround
-	 * to a bug (now fixed) that we suggested in the past. 
+	 * to a bug (now fixed) that we suggested in the past.
 	 * Program output should be: foo bar
 	 * @throws CoreException
 	 */
@@ -200,7 +200,7 @@
 	public void testVMArgEmbeddedCreativeQuotes() throws CoreException {
 		testWithVMArg("-Dfoo=fo\"\\\"o b\\\"\"ar", "fo\"o b\"ar");
 	}
-	
+
 	/*
 	 * Program argument tests
 	 */
@@ -262,7 +262,7 @@
 	public void testProgramArgCreativeEmbeddedQuotes() throws CoreException {
 		testWithProgramArg("f\\\"o\\\"o", "f\"o\"o");
 	}
-	
+
 	/**
 	 * Test a program argument with one empty string
      *
@@ -274,28 +274,28 @@
 		// assert that it's really the empty string:
 		testWithProgramArg("\"\"", "");
 	}
-	
+
 	/**
 	 * Test a program with an empty string among other args.
-	 * 
+	 *
 	 * Program output should be: 4
 	 * @throws CoreException
 	 */
 	public void testProgramArgEmptyStringWithOthers() throws CoreException {
 		testProgramArgCount("word1 \"\" \"part1 part2\" word2", "4");
 	}
-	
+
 	/**
 	 * Test a program argument with one double quote. We should pass in the
 	 * empty string to match Java console behavior.
-	 * 
+	 *
 	 * Program output should be: 1
 	 * @throws CoreException
 	 */
 	public void testProgramArgOneQuote() throws CoreException {
 		testProgramArgCount("\"", "1");
 	}
-	
+
 	/**
 	 * Runs the FooPropertyPrinter with the given VM arguments and checks for
 	 * the given output.
@@ -305,7 +305,7 @@
 	private void testWithVMArg(String argString, String outputValue) throws CoreException {
 		testOutput("FooPropertyPrinter", argString, null, outputValue);
 	}
-	
+
 	/**
 	 * Runs the ArgumentPrinter with the given program arguments
 	 * @param argString
@@ -315,7 +315,7 @@
 	private void testWithProgramArg(String argString, String outputValue) throws CoreException {
 		testOutput("ArgumentPrinter", null, argString, outputValue);
 	}
-	
+
 	/**
 	 * Runs the ArgumentCounter with the given program arguments
 	 * @param argString
@@ -324,8 +324,8 @@
 	 */
 	private void testProgramArgCount(String argString, String outputValue) throws CoreException {
 		testOutput("ArgumentCounter", null, argString, outputValue);
-	}	
-	
+	}
+
 	/**
 	 * Runs the given program with the given VM arguments and the given program arguments and
 	 * asserts that the output matches the given output.
@@ -349,7 +349,7 @@
 		Map<String, String> map = new HashMap<String, String>(1);
 		map.put(IJavaLaunchConfigurationConstants.ATTR_JAVA_COMMAND, "java");
 		workingCopy.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_INSTALL_TYPE_SPECIFIC_ATTRS_MAP, map);
-		
+
 		ConsoleArgumentOutputRetriever retriever = new ConsoleArgumentOutputRetriever();
 		ConsoleLineTracker.setDelegate(retriever);
 		IProcess process = null;
@@ -383,7 +383,7 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Tests the default VM args
 	 * @throws CoreException
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ArrayTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ArrayTests.java
index 98bb1ff..3a03a7c 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ArrayTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ArrayTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -34,7 +34,7 @@
 	public void testGetSize() throws Exception {
 		String typeName = "ArrayTests";
 		ILineBreakpoint bp = createLineBreakpoint(19, typeName);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -47,14 +47,14 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}				
+		}
 	}
-	
-	
+
+
 	public void testGetVariable() throws Exception {
 		String typeName = "ArrayTests";
 		ILineBreakpoint bp = createLineBreakpoint(19, typeName);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -70,13 +70,13 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}				
-	}	
-	
+		}
+	}
+
 	public void testGetVariableRange() throws Exception {
 		String typeName = "ArrayTests";
 		ILineBreakpoint bp = createLineBreakpoint(19, typeName);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -91,17 +91,17 @@
 			for (int i = 0; i < 15; i++) {
 				assertEquals("Wrong value", ((IJavaDebugTarget)frame.getDebugTarget()).newValue(50 + i), variables[i].getValue());
 			}
-			
+
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}				
-	}	
-	
+		}
+	}
+
 	public void testSetValueRange() throws Exception {
 		String typeName = "ByteArrayTests";
 		ILineBreakpoint bp = createLineBreakpoint(27, typeName);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -132,13 +132,13 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
+		}
 	}
-	
+
 	public void testCreateArray() throws Exception {
 		String typeName = "ByteArrayTests";
 		ILineBreakpoint bp = createLineBreakpoint(32, typeName);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -157,7 +157,7 @@
 			IJavaArray javaArray = type.newInstance(6000);
 			v.setValue(javaArray);
 			IJavaArray  array = (IJavaArray) v.getValue();
-			
+
 			IJavaValue[] replacements = new IJavaValue[6000];
 			for (int i = 0; i < replacements.length; i++) {
 				replacements[i] = target.newValue((byte)23);
@@ -173,9 +173,9 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
-	}	
-	
+		}
+	}
+
 	/**
 	 * Sets a zero-length array as the new values
 	 * @throws Exception
@@ -184,7 +184,7 @@
 	public void testSetZeroLengthArray() throws Exception {
 		String typeName = "ByteArrayTests";
 		ILineBreakpoint bp = createLineBreakpoint(32, typeName);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -198,7 +198,7 @@
 			IJavaArray javaArray = type.newInstance(1);
 			v.setValue(javaArray);
 			IJavaArray  array = (IJavaArray) v.getValue();
-			
+
 			IJavaValue[] replacements = new IJavaValue[0];
 			array.setValues(replacements);
 			// the overall size of the array will never change size, and trying to set no values has not effect
@@ -206,19 +206,19 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
-	}	
-	
+		}
+	}
+
 	/**
 	 * Tries to set a new array with a starting index of -1
-	 * 
+	 *
 	 * @throws Exception
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=359450
 	 */
 	public void testSetBadLowerIndexArray() throws Exception {
 		String typeName = "ByteArrayTests";
 		ILineBreakpoint bp = createLineBreakpoint(32, typeName);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -233,7 +233,7 @@
 			IJavaArray javaArray = type.newInstance(1);
 			v.setValue(javaArray);
 			IJavaArray  array = (IJavaArray) v.getValue();
-			
+
 			IJavaValue[] replacements = {target.nullValue()};
 			try {
 				array.setValues(-1, 0, replacements, 0);
@@ -246,9 +246,9 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
+		}
 	}
-	
+
 	/**
 	 * Tries to set an array with an index greater than the total length of the source array
 	 * @throws Exception
@@ -257,7 +257,7 @@
 	public void testSetBadUpperIndexArray() throws Exception {
 		String typeName = "ByteArrayTests";
 		ILineBreakpoint bp = createLineBreakpoint(32, typeName);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -271,7 +271,7 @@
 			IJavaArray javaArray = type.newInstance(1);
 			v.setValue(javaArray);
 			IJavaArray  array = (IJavaArray) v.getValue();
-			
+
 			IJavaDebugTarget target = (IJavaDebugTarget) frame.getDebugTarget();
 			IJavaValue bite = target.newValue((byte)-1);
 			IJavaValue[] replacements = {bite};
@@ -286,9 +286,9 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
+		}
 	}
-	
+
 	/**
 	 * Tries to set an array with an index greater than the total length of the soure array
 	 * @throws Exception
@@ -297,7 +297,7 @@
 	public void testSetExactUpperIndexArray() throws Exception {
 		String typeName = "ByteArrayTests";
 		ILineBreakpoint bp = createLineBreakpoint(32, typeName);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -326,9 +326,9 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
+		}
 	}
-	
+
 	/**
 	 * Tries to set an array with a source index greater than the total length of the new values array
 	 * @throws Exception
@@ -337,7 +337,7 @@
 	public void testSetBadLowerSrcIndexArray() throws Exception {
 		String typeName = "ByteArrayTests";
 		ILineBreakpoint bp = createLineBreakpoint(32, typeName);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -366,9 +366,9 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
+		}
 	}
-	
+
 	/**
 	 * Tries to set an array with a source index greater than the total length of the new values array
 	 * @throws Exception
@@ -377,7 +377,7 @@
 	public void testSetBadUpperSrcIndexArray() throws Exception {
 		String typeName = "ByteArrayTests";
 		ILineBreakpoint bp = createLineBreakpoint(32, typeName);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -406,9 +406,9 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
+		}
 	}
-	
+
 	/**
 	 * Tries to set an array with a source index greater than the total length of the new values array
 	 * @throws Exception
@@ -417,7 +417,7 @@
 	public void testSetExactSrcIndexArray() throws Exception {
 		String typeName = "ByteArrayTests";
 		ILineBreakpoint bp = createLineBreakpoint(32, typeName);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -446,9 +446,9 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
+		}
 	}
-	
+
 	/**
 	 * Tries to set an array with a length less than -1
 	 * @throws Exception
@@ -457,7 +457,7 @@
 	public void testSetBadLowerLengthArray() throws Exception {
 		String typeName = "ByteArrayTests";
 		ILineBreakpoint bp = createLineBreakpoint(32, typeName);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -486,9 +486,9 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
+		}
 	}
-	
+
 	/**
 	 * Tries to set an array with a length equal to -1
 	 * @throws Exception
@@ -497,7 +497,7 @@
 	public void testSetMinus1LengthArray() throws Exception {
 		String typeName = "ByteArrayTests";
 		ILineBreakpoint bp = createLineBreakpoint(32, typeName);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -524,18 +524,18 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
+		}
 	}
-	
+
 	/**
-	 * Tries to set an array where the given length and index combined exceed the length of the array 
+	 * Tries to set an array where the given length and index combined exceed the length of the array
 	 * @throws Exception
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=359450
 	 */
 	public void testSetBadLengthPlusIndexArray() throws Exception {
 		String typeName = "ByteArrayTests";
 		ILineBreakpoint bp = createLineBreakpoint(32, typeName);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -564,18 +564,18 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
+		}
 	}
-	
+
 	/**
-	 * Tries to set an array where the given length and source index combined exceed the length of the array 
+	 * Tries to set an array where the given length and source index combined exceed the length of the array
 	 * @throws Exception
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=359450
 	 */
 	public void testSetBadLengthPlusSrcIndexArray() throws Exception {
 		String typeName = "ByteArrayTests";
 		ILineBreakpoint bp = createLineBreakpoint(32, typeName);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -603,9 +603,9 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
+		}
 	}
-	
+
 	/**
 	 * Tries to set an array where the source array is longer than the array to set the values into
 	 * @throws Exception
@@ -614,7 +614,7 @@
 	public void testSetLongerSrcArray() throws Exception {
 		String typeName = "ByteArrayTests";
 		ILineBreakpoint bp = createLineBreakpoint(32, typeName);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -640,6 +640,6 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
+		}
 	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/BootpathTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/BootpathTests.java
index c1f1218..fc822d6 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/BootpathTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/BootpathTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -28,14 +28,14 @@
  * Tests bootpath settings
  */
 public class BootpathTests extends AbstractDebugTest {
-	
+
 	public BootpathTests(String name) {
 		super(name);
 	}
 
 	public void testDefaultBootpath() throws Exception {
 		ILaunchConfiguration config = getLaunchConfiguration("Breakpoints");
-		
+
 		JavaLaunchDelegate delegate = new JavaLaunchDelegate();
 		String[] path = delegate.getBootpath(config);
 		assertNull("Default bootpath should be null", path);
@@ -46,13 +46,13 @@
 		assertNull("Main bootpath should be null", pathInfo[1]);
 		assertNull("Append bootpath should be null", pathInfo[2]);
 	}
-	
+
 	public void testEmptyBootpath() throws Exception {
 		ILaunchConfiguration config = getLaunchConfiguration("Breakpoints");
 		ILaunchConfigurationWorkingCopy wc = config.getWorkingCopy();
-		
+
 		wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_DEFAULT_CLASSPATH, false);
-		
+
 		JavaLaunchDelegate delegate = new JavaLaunchDelegate();
 		String[] path = delegate.getBootpath(wc);
 		assertNotNull("Empty bootpath should be empty array", path);
@@ -64,7 +64,7 @@
 		assertNull("Main bootpath should be empty array", pathInfo[1]);
 		assertNull("Append bootpath should be null", pathInfo[2]);
 	}
-	
+
 	public void testPrependBootpath() throws Exception {
 		ILaunchConfiguration config = getLaunchConfiguration("Breakpoints");
 		ILaunchConfigurationWorkingCopy wc = config.getWorkingCopy();
@@ -80,10 +80,10 @@
 			IRuntimeClasspathEntry entry = newpath[i];
 			mementos.add(entry.getMemento());
 		}
-		
+
 		wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_DEFAULT_CLASSPATH, false);
 		wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_CLASSPATH, mementos);
-		
+
 		JavaLaunchDelegate delegate = new JavaLaunchDelegate();
 		Map<String, Object> map = delegate.getVMSpecificAttributesMap(wc);
 		assertNotNull("Missing VM specific attributes map", map);
@@ -91,6 +91,6 @@
 		assertNotNull("Missing bootpath prepend", pre);
 		assertEquals("Incorrect number of prepends", 1, prepath.length);
 		assertEquals("wrong prepended path", jar.getLocation().toOSString(), prepath[0]);
-	}	
-		
+	}
+
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ClasspathContainerTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ClasspathContainerTests.java
index 70a4014..250f578 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ClasspathContainerTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ClasspathContainerTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -37,9 +37,9 @@
  * Tests JRE classpath container
  */
 public class ClasspathContainerTests extends AbstractDebugTest {
-	
+
 	class FakeContainer implements IClasspathContainer {
-		
+
 		IClasspathEntry[] entries = new IClasspathEntry[0];
 		/**
 		 * @see org.eclipse.jdt.core.IClasspathContainer#getClasspathEntries()
@@ -72,7 +72,7 @@
 		public IPath getPath() {
 			return new Path(JavaRuntime.JRE_CONTAINER);
 		}
-		
+
 		/**
 		 * @param cpe
 		 */
@@ -81,7 +81,7 @@
 		}
 
 	}
-	
+
 	/**
 	 * @param name
 	 */
@@ -107,11 +107,11 @@
 		standin.setJavadocLocation(def.getJavadocLocation());
 		standin.setLibraryLocations(JavaRuntime.getLibraryLocations(def));
 		standin.convertToRealVM();
-		
+
 		// ensure the new VM exists
 		IVMInstall newVM = def.getVMInstallType().findVMInstall(vmId);
 		assertNotNull("Failed to create new VM", newVM);
-		
+
 		JREContainer container = new JREContainer(newVM, containerPath, get14Project());
 		JREContainerInitializer initializer = new JREContainerInitializer();
 		// store the current library settings
@@ -119,22 +119,22 @@
 		assertTrue("Libraries should not be empty", originalLibs.length > 0);
 		IClasspathEntry[] originalEntries = container.getClasspathEntries();
 		assertEquals("Libraries should be same size as classpath entries", originalLibs.length, originalEntries.length);
-		
+
 		// ensure we can update
 		assertTrue("Initializer will not accept update", initializer.canUpdateClasspathContainer(containerPath, get14Project()));
-		
+
 		// update to an empty set of libraries
 		FakeContainer fakeContainer = new FakeContainer();
 		initializer.requestClasspathContainerUpdate(containerPath, get14Project(), fakeContainer);
-		
+
 		// ensure the library locations are now empty on the new VM
 		LibraryLocation[] newLibs = JavaRuntime.getLibraryLocations(newVM);
 		assertEquals("Libraries should be empty", 0, newLibs.length);
-		
+
 		// re-set to original libraries
 		fakeContainer.setEntries(originalEntries);
 		initializer.requestClasspathContainerUpdate(containerPath, get14Project(), fakeContainer);
-		
+
 		// ensure libraries are restored
 		newLibs = JavaRuntime.getLibraryLocations(newVM);
 		assertEquals("Libraries should be restored", originalLibs.length, newLibs.length);
@@ -142,13 +142,13 @@
 			LibraryLocation location = newLibs[i];
 			LibraryLocation origi = originalLibs[i];
 			assertEquals("Library should be the equal", origi.getSystemLibraryPath().toFile(), location.getSystemLibraryPath().toFile());
-		} 
+		}
 	}
-	
-	
+
+
 	/**
 	 * Tests library comparison case sensitivity.
-	 * 
+	 *
 	 * @throws CoreException
 	 */
 	public void testLibraryCaseSensitivity() {
@@ -166,17 +166,17 @@
 			set1[i] = new LibraryLocation(p1, null, null);
 			set2[i] = new LibraryLocation(p2, null, null);
 		}
-		boolean equal = JRERuntimeClasspathEntryResolver.isSameArchives(set1, set2); 
+		boolean equal = JRERuntimeClasspathEntryResolver.isSameArchives(set1, set2);
 		if (caseSensitive) {
 			assertFalse("Libraries should *not* be equal on case sensitive platform", equal);
 		} else {
 			assertTrue("Libraries *should* be equal on case sensitive platform", equal);
 		}
-	}	
-	
+	}
+
 	/**
 	 * Tests that an index can be added to a {@link LibraryLocation}
-	 * 
+	 *
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=399098
 	 * @since 3.8.100
 	 */
@@ -214,11 +214,11 @@
 		// and it should have a value of the original indexURL in its string form.
 		assertEquals(indexURL.toString(), indexloc);
 	}
-	
+
 	/**
 	 * Tests that an index can be added to a {@link LibraryLocation} and that successive calls to
 	 * {@link JavaRuntime#getLibraryLocations(IVMInstall)} does not erase the index infos
-	 * 
+	 *
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=399098
 	 * @since 3.8.100
 	 */
@@ -254,5 +254,5 @@
 		// return the index URL
 		URL indexURL = indexPath.toFile().toURI().toURL();
 		return indexURL;
-	} 
+	}
 }
\ No newline at end of file
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ClasspathProviderTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ClasspathProviderTests.java
index 3538ae5..f6c5e0c 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ClasspathProviderTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ClasspathProviderTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -35,7 +35,7 @@
  * Tests runtime classpath provider extension point
  */
 public class ClasspathProviderTests extends AbstractDebugTest {
-	
+
 	public ClasspathProviderTests(String name) {
 		super(name);
 	}
@@ -43,20 +43,20 @@
 	public void testEmptyProvider() throws Exception {
 		ILaunchConfiguration config = getLaunchConfiguration("Breakpoints");
 		ILaunchConfigurationWorkingCopy wc = config.getWorkingCopy();
-		
+
 		wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_CLASSPATH_PROVIDER, "org.eclipse.jdt.debug.tests.EmptyClasspathProvider");
 		wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_SOURCE_PATH_PROVIDER, "org.eclipse.jdt.debug.tests.EmptyClasspathProvider");
-		
+
 		IRuntimeClasspathProvider cpProvider = JavaRuntime.getClasspathProvider(wc);
 		IRuntimeClasspathProvider spProvider = JavaRuntime.getSourceLookupPathProvider(wc);
-		
+
 		assertNotNull("Did not retrieve classpath provider", cpProvider);
 		assertNotNull("Did not retrieve source path provider", spProvider);
-		
+
 		assertEquals("Classpath should be empty", 0, cpProvider.computeUnresolvedClasspath(config).length);
 		assertEquals("Source path should be empty", 0, spProvider.computeUnresolvedClasspath(config).length);
 	}
-	
+
 	/**
 	 * Test that a variable set to the location of an archive resolves properly.
 	 */
@@ -72,7 +72,7 @@
 		assertEquals("Resolved path not correct", archive.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", archive.getLocation(), new Path(resolved[0].getLocation()));
 	}
-	
+
 	/**
 	 * Test that a variable set to the location of an archive via variable
 	 * extension resolves properly.
@@ -91,7 +91,7 @@
 	}
 
 	// BOOTPATH TESTS
-		
+
 	/**
 	 * Test that a variable added to the bootpath is resolved to be on the bootpath.
 	 */
@@ -107,12 +107,12 @@
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", archive.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", archive.getLocation(), new Path(resolved[0].getLocation()));
-		assertEquals("Resolved entry should be on bootpath", IRuntimeClasspathEntry.BOOTSTRAP_CLASSES, resolved[0].getClasspathProperty());			
+		assertEquals("Resolved entry should be on bootpath", IRuntimeClasspathEntry.BOOTSTRAP_CLASSES, resolved[0].getClasspathProperty());
 	}
-	
+
 	/**
 	 * Test that an extended variable added to the bootpath is resolved to be on the bootpath.
-	 */	
+	 */
 	public void testBootpathVariableExtensionResolution() throws Exception {
 		IResource archive = get14Project().getProject().getFolder("src").getFile("A.jar");
 		IProject root = get14Project().getProject();
@@ -125,9 +125,9 @@
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", archive.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", archive.getLocation(), new Path(resolved[0].getLocation()));
-		assertEquals("Resolved entry should be on bootpath", IRuntimeClasspathEntry.BOOTSTRAP_CLASSES, resolved[0].getClasspathProperty());			
+		assertEquals("Resolved entry should be on bootpath", IRuntimeClasspathEntry.BOOTSTRAP_CLASSES, resolved[0].getClasspathProperty());
 	}
-	
+
 	/**
 	 * Test that a project added to the bootpath is resolved to be on the bootpath.
 	 */
@@ -140,9 +140,9 @@
 		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, get14Project());
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", outputFolder.getLocation().toOSString(), resolved[0].getLocation());
-		assertEquals("Resolved entry should be on bootpath", IRuntimeClasspathEntry.BOOTSTRAP_CLASSES, resolved[0].getClasspathProperty());		
+		assertEquals("Resolved entry should be on bootpath", IRuntimeClasspathEntry.BOOTSTRAP_CLASSES, resolved[0].getClasspathProperty());
 	}
-	
+
 	/**
 	 * Test that a container added to the bootpath is resolved to have all entries on
 	 * the boothpath.
@@ -155,7 +155,7 @@
 			assertEquals("Entry should be on bootpath", IRuntimeClasspathEntry.BOOTSTRAP_CLASSES, resolved[i].getClasspathProperty());
 		}
 	}
-	
+
 	/**
 	 * Test that a jar added to the bootpath is resolved to be on the bootpath.
 	 */
@@ -169,12 +169,12 @@
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", archive.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", archive.getLocation(), new Path(resolved[0].getLocation()));
-		assertEquals("Resolved entry should be on bootpath", IRuntimeClasspathEntry.BOOTSTRAP_CLASSES, resolved[0].getClasspathProperty());		
+		assertEquals("Resolved entry should be on bootpath", IRuntimeClasspathEntry.BOOTSTRAP_CLASSES, resolved[0].getClasspathProperty());
 	}
-	
+
 	/**
 	 * Test that a folder added to the bootpath is resolved to be on the bootpath.
-	 */	
+	 */
 	public void testBootpathFolderResolution() throws Exception {
 		IResource folder = get14Project().getProject().getFolder("src");
 		assertTrue("Folder does not exist", folder.exists());
@@ -185,9 +185,9 @@
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", folder.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", folder.getLocation(), new Path(resolved[0].getLocation()));
-		assertEquals("Resolved entry should be on bootpath", IRuntimeClasspathEntry.BOOTSTRAP_CLASSES, resolved[0].getClasspathProperty());		
+		assertEquals("Resolved entry should be on bootpath", IRuntimeClasspathEntry.BOOTSTRAP_CLASSES, resolved[0].getClasspathProperty());
 	}
-	
+
 	/**
 	 * Test that a project with non-default output locations placed on the bootpath
 	 * resolves to entries on the bootpath.
@@ -203,11 +203,11 @@
 			IRuntimeClasspathEntry entry = resolved[i];
 			assertEquals("Resolved entry should be on bootpath", IRuntimeClasspathEntry.BOOTSTRAP_CLASSES, entry.getClasspathProperty());
 		}
-				
+
 	}
-	
+
 	// USER CLASSES TESTS
-		
+
 	/**
 	 * Test that a variable added to the user application classpath is resolved to be on
 	 * the user application classpath.
@@ -224,13 +224,13 @@
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", archive.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", archive.getLocation(), new Path(resolved[0].getLocation()));
-		assertEquals("Resolved entry should be on user classpath", IRuntimeClasspathEntry.USER_CLASSES, resolved[0].getClasspathProperty());			
+		assertEquals("Resolved entry should be on user classpath", IRuntimeClasspathEntry.USER_CLASSES, resolved[0].getClasspathProperty());
 	}
-	
+
 	/**
 	 * Test that an extended variable added to the user classpath is resolved to be
 	 * on the user classpath.
-	 */	
+	 */
 	public void testUserClassesVariableExtensionResolution() throws Exception {
 		IResource archive = get14Project().getProject().getFolder("src").getFile("A.jar");
 		IProject root = get14Project().getProject();
@@ -243,9 +243,9 @@
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", archive.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", archive.getLocation(), new Path(resolved[0].getLocation()));
-		assertEquals("Resolved entry should be on user classpath", IRuntimeClasspathEntry.USER_CLASSES, resolved[0].getClasspathProperty());			
+		assertEquals("Resolved entry should be on user classpath", IRuntimeClasspathEntry.USER_CLASSES, resolved[0].getClasspathProperty());
 	}
-	
+
 	/**
 	 * Test that a project added to the user classpath is resolved to be on the
 	 * user classpath.
@@ -259,9 +259,9 @@
 		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, get14Project());
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", outputFolder.getLocation().toOSString(), resolved[0].getLocation());
-		assertEquals("Resolved entry should be on user classpath", IRuntimeClasspathEntry.USER_CLASSES, resolved[0].getClasspathProperty());		
+		assertEquals("Resolved entry should be on user classpath", IRuntimeClasspathEntry.USER_CLASSES, resolved[0].getClasspathProperty());
 	}
-	
+
 	/**
 	 * Test that a container added to the user classpath is resolved to have all
 	 * entries on the user classpath.
@@ -274,7 +274,7 @@
 			assertEquals("Entry should be on user classpath", IRuntimeClasspathEntry.USER_CLASSES, resolved[i].getClasspathProperty());
 		}
 	}
-	
+
 	/**
 	 * Test that a jar added to the user classpath is resolved to be on the user classpath.
 	 */
@@ -288,13 +288,13 @@
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", archive.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", archive.getLocation(), new Path(resolved[0].getLocation()));
-		assertEquals("Resolved entry should be on user classpath", IRuntimeClasspathEntry.USER_CLASSES, resolved[0].getClasspathProperty());		
+		assertEquals("Resolved entry should be on user classpath", IRuntimeClasspathEntry.USER_CLASSES, resolved[0].getClasspathProperty());
 	}
-	
+
 	/**
 	 * Test that a folder added to the user classpath is resolved to be on the
 	 * user classpath.
-	 */	
+	 */
 	public void testUserClassesFolderResolution() throws Exception {
 		IResource folder = get14Project().getProject().getFolder("src");
 		assertTrue("Folder does not exist", folder.exists());
@@ -305,9 +305,9 @@
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", folder.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", folder.getLocation(), new Path(resolved[0].getLocation()));
-		assertEquals("Resolved entry should be on user classpath", IRuntimeClasspathEntry.USER_CLASSES, resolved[0].getClasspathProperty());		
+		assertEquals("Resolved entry should be on user classpath", IRuntimeClasspathEntry.USER_CLASSES, resolved[0].getClasspathProperty());
 	}
-	
+
 	/**
 	 * Test that a project with non-default output locations placed on the user classpath
 	 * resolves to entries on the user classpath.
@@ -323,11 +323,11 @@
 			IRuntimeClasspathEntry entry = resolved[i];
 			assertEquals("Resolved entry should be on user classpath", IRuntimeClasspathEntry.USER_CLASSES, entry.getClasspathProperty());
 		}
-				
+
 	}
-	
+
 	// STANDARD CLASSES TESTS
-		
+
 	/**
 	 * Test that a variable added to the default bootpath is resolved to be on
 	 * the default bootpath.
@@ -344,13 +344,13 @@
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", archive.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", archive.getLocation(), new Path(resolved[0].getLocation()));
-		assertEquals("Resolved entry should be on default bootpath", IRuntimeClasspathEntry.STANDARD_CLASSES, resolved[0].getClasspathProperty());			
+		assertEquals("Resolved entry should be on default bootpath", IRuntimeClasspathEntry.STANDARD_CLASSES, resolved[0].getClasspathProperty());
 	}
-	
+
 	/**
 	 * Test that an extended variable added to the default bootpath is resolved to be
 	 * on the default bootpath.
-	 */	
+	 */
 	public void testStandardClassesVariableExtensionResolution() throws Exception {
 		IResource archive = get14Project().getProject().getFolder("src").getFile("A.jar");
 		IProject root = get14Project().getProject();
@@ -363,9 +363,9 @@
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", archive.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", archive.getLocation(), new Path(resolved[0].getLocation()));
-		assertEquals("Resolved entry should be on default bootpath", IRuntimeClasspathEntry.STANDARD_CLASSES, resolved[0].getClasspathProperty());			
+		assertEquals("Resolved entry should be on default bootpath", IRuntimeClasspathEntry.STANDARD_CLASSES, resolved[0].getClasspathProperty());
 	}
-	
+
 	/**
 	 * Test that a project added to the default bootpath is resolved to be on the
 	 * default bootpath.
@@ -379,9 +379,9 @@
 		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, get14Project());
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", outputFolder.getLocation().toOSString(), resolved[0].getLocation());
-		assertEquals("Resolved entry should be on default bootpath", IRuntimeClasspathEntry.STANDARD_CLASSES, resolved[0].getClasspathProperty());		
+		assertEquals("Resolved entry should be on default bootpath", IRuntimeClasspathEntry.STANDARD_CLASSES, resolved[0].getClasspathProperty());
 	}
-	
+
 	/**
 	 * Test that a container added to the default bootpath is resolved to have all
 	 * entries on the default bootpath.
@@ -394,7 +394,7 @@
 			assertEquals("Entry should be on default bootpath", IRuntimeClasspathEntry.STANDARD_CLASSES, resolved[i].getClasspathProperty());
 		}
 	}
-	
+
 	/**
 	 * Test that a jar added to the default bootpath is resolved to be on the
 	 * default bootpath.
@@ -409,13 +409,13 @@
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", archive.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", archive.getLocation(), new Path(resolved[0].getLocation()));
-		assertEquals("Resolved entry should be on default bootpath", IRuntimeClasspathEntry.STANDARD_CLASSES, resolved[0].getClasspathProperty());		
+		assertEquals("Resolved entry should be on default bootpath", IRuntimeClasspathEntry.STANDARD_CLASSES, resolved[0].getClasspathProperty());
 	}
-	
+
 	/**
 	 * Test that a folder added to the default bootpath is resolved to be on the
 	 * default bootpath.
-	 */	
+	 */
 	public void testStandardClassesFolderResolution() throws Exception {
 		IResource folder = get14Project().getProject().getFolder("src");
 		assertTrue("Folder does not exist", folder.exists());
@@ -426,9 +426,9 @@
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", folder.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", folder.getLocation(), new Path(resolved[0].getLocation()));
-		assertEquals("Resolved entry should be on default bootpath", IRuntimeClasspathEntry.STANDARD_CLASSES, resolved[0].getClasspathProperty());		
+		assertEquals("Resolved entry should be on default bootpath", IRuntimeClasspathEntry.STANDARD_CLASSES, resolved[0].getClasspathProperty());
 	}
-	
+
 	/**
 	 * Test that a project with non-default output locations placed on the default bootpath
 	 * resolves to entries on the default bootpath.
@@ -444,13 +444,13 @@
 			IRuntimeClasspathEntry entry = resolved[i];
 			assertEquals("Resolved entry should be on default bootpath", IRuntimeClasspathEntry.STANDARD_CLASSES, entry.getClasspathProperty());
 		}
-				
-	}	
-	
+
+	}
+
 	/**
 	 * Tests that default classpath computation works for a project with mulitple
 	 * output locations.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testMultiOutputDefaultClasspath() throws Exception {
@@ -461,42 +461,42 @@
 		IFolder bin2 = p.getFolder("bin2");
 		String location1 = bin1.getLocation().toOSString();
 		String location2 = bin2.getLocation().toOSString();
-		
+
 		List<String> list = new ArrayList<String>();
 		for (int i = 0; i < entries.length; i++) {
 			list.add(entries[i]);
 		}
-		
+
 		assertTrue("Classpath is missing " + location1, list.contains(location1));
 		assertTrue("Classpath is missing " + location2, list.contains(location2));
-				
+
 	}
-	
+
 	/**
 	 * Tests that default classpath computation works for a project with a default
 	 * output location.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testSingleOutputDefaultClasspath() throws Exception {
 		IJavaProject project = get14Project();
 		String[] entries = JavaRuntime.computeDefaultRuntimeClassPath(project);
-		
+
 		IFolder bin = ResourcesPlugin.getWorkspace().getRoot().getFolder(project.getOutputLocation());
 		String location = bin.getLocation().toOSString();
-		
+
 		List<String> list = new ArrayList<String>();
 		for (int i = 0; i < entries.length; i++) {
 			list.add(entries[i]);
 		}
-		
+
 		assertTrue("Classpath is missing " + location, list.contains(location));
-				
-	}	
-	
+
+	}
+
 	/**
 	 * Tests that a buildpath with a relative (../..) classpath entry will resolve properly.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testRelativeClasspathEntry() throws Exception {
@@ -513,7 +513,7 @@
         JavaProjectHelper.addContainerEntry(project, path);
         // add relative entry - point to A.jar in DebugTests/src
         JavaProjectHelper.addLibrary(project, new Path("../DebugTests/src/A.jar"));
-     
+
         // test runtime class path resolution
         String[] entries = JavaRuntime.computeDefaultRuntimeClassPath(project);
         String jarPath = get14Project().getProject().getLocation().append("src").append("A.jar").toOSString();
@@ -521,16 +521,16 @@
 		for (int i = 0; i < entries.length; i++) {
 			list.add(entries[i]);
 		}
-        
+
         // delete the project
         pro.delete(false, null);
-        
+
         assertTrue("Classpath is missing " + jarPath, list.contains(jarPath));
 	}
-	
+
 	/**
 	 * Tests that a variable with a relative (../..) path will resolve properly.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testVariableWithRelativePath() throws Exception {
@@ -547,9 +547,9 @@
         JavaProjectHelper.addContainerEntry(project, path);
         // add relative entry - point to A.jar in DebugTests/src
         String varName = "RELATIVE_DEBUG_TESTS";
-		JavaCore.setClasspathVariable(varName, new Path("../DebugTests"), null);        
+		JavaCore.setClasspathVariable(varName, new Path("../DebugTests"), null);
 		JavaProjectHelper.addVariableEntry(project, new Path("RELATIVE_DEBUG_TESTS/src/A.jar"), null, null);
-     
+
         // test runtime class path resolution
         String[] entries = JavaRuntime.computeDefaultRuntimeClassPath(project);
         String jarPath = get14Project().getProject().getLocation().append("src").append("A.jar").toOSString();
@@ -557,10 +557,10 @@
 		for (int i = 0; i < entries.length; i++) {
 			list.add(entries[i]);
 		}
-        
+
         // delete the project
         pro.delete(false, null);
-        
+
         assertTrue("Classpath is missing " + jarPath, list.contains(jarPath));
-	}	
+	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ClasspathVariableTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ClasspathVariableTests.java
index 2f98533..a0129d3 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ClasspathVariableTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ClasspathVariableTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -27,7 +27,7 @@
  * Tests for classpath variables
  */
 public class ClasspathVariableTests extends AbstractDebugTest {
-		
+
 	/**
 	 * Constructor
 	 * @param name the name of the test
@@ -48,7 +48,7 @@
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Entries should be equal", entry, resolved[0]);
 	}
-	
+
 	/**
 	 * test JRE resolution
 	 * @throws CoreException
@@ -64,7 +64,7 @@
 		assertTrue("no default libs", libs.length > 0);
 		assertEquals("Should resolve to location of local JRE", libs[0].getSystemLibraryPath().toOSString().toLowerCase(), resolved[0].getPath().toOSString().toLowerCase());
 	}
-	
+
 	/**
 	 * Test that a variable set to the location of an archive via variable
 	 * extension resolves properly, with a null source attachment.
@@ -83,8 +83,8 @@
 		assertEquals("Resolved path not correct", archive.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", archive.getLocation(), new Path(resolved[0].getLocation()));
 		assertNull("Should be null source attachment", resolved[0].getSourceAttachmentPath());
-	}	
-	
+	}
+
 	/**
 	 * Test that a variable set to the location of an archive via variable
 	 * extension resolves properly, with a source attachment rooted with a null
@@ -104,11 +104,11 @@
 		assertEquals("Resolved path not correct", archive.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", archive.getLocation(), new Path(resolved[0].getLocation()));
 		assertNull("Should be null source attachment", resolved[0].getSourceAttachmentPath());
-	}	
-	
+	}
+
 	/**
 	 * Test a class path entry with variable extensions for archive and source attachment.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testVariableArchiveAndSourceAttachmentWithExtension() throws Exception {
@@ -124,11 +124,11 @@
 		assertEquals("Resolved path not correct", archive.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", archive.getLocation(), new Path(resolved[0].getLocation()));
 		assertEquals("Resolved source attachment not correct", archive.getLocation(), new Path(resolved[0].getSourceAttachmentLocation()));
-	}	
-	
+	}
+
 	/**
 	 * Test a class path entry with variable extensions for archive and source attachment.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testProjectResolutionWithVariableArchiveAndSourceAttachmentWithExtension() throws Exception {
@@ -145,5 +145,5 @@
 		assertEquals("Resolved path not correct", archive.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", archive.getLocation(), new Path(resolved[0].getLocation()));
 		assertEquals("Resolved source attachment not correct", archive.getLocation(), new Path(resolved[0].getSourceAttachmentLocation()));
-	}	
+	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ConsoleInputTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ConsoleInputTests.java
index 263ba0f..f147e17 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ConsoleInputTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ConsoleInputTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -36,38 +36,38 @@
  * Tests console input.
  */
 public class ConsoleInputTests extends AbstractDebugTest implements IConsoleLineTrackerExtension {
-	
+
 	protected List<String> fLinesRead = new ArrayList<String>();
-	
+
 	protected boolean fStarted = false;
-	
+
 	protected boolean fStopped = false;
-	
+
 	protected IConsole fConsole = null;
-	
+
 	protected Object fConsoleLock = new Object();
 	protected Object fLock = new Object();
-	
-	
+
+
 	public static TestSuite suite() {
 		return new OrderedTestSuite(ConsoleInputTests.class, new String[] {
-				"testMultiLineInput",	
+				"testMultiLineInput",
 				"testEOF",
 				"testDeleteAllEnteredText"
 		});
 	}
-	
+
 	public ConsoleInputTests(String name) {
 		super(name);
 	}
-	
+
     @Override
 	protected void setUp() throws Exception {
         super.setUp();
         fStarted = false;
         fStopped = false;
     }
-    
+
     /**
      * Writes text to the console with line feeds (like pasting multiple lines).
      * The lines with line delimiters should be echoed back. The text remaining
@@ -88,7 +88,7 @@
 			assertNotNull("Console is null", fConsole);
 			String[] list = appendAndGet(fConsole, "one\ntwo\nexit", 4);
 			verifyOutput(new String[]{"one", "two", "exitone", "two"}, list);
-			
+
 			// end the program
 			list = appendAndGet(fConsole, "three\n", 3);
 			verifyOutput(new String[]{"three", "exitthree", IInternalDebugCoreConstants.EMPTY_STRING}, list);
@@ -97,8 +97,8 @@
 			ConsoleLineTracker.setDelegate(null);
 			launch.getProcesses()[0].terminate();
 		}
-	} 
-	
+	}
+
     /**
      * Tests closing standard in
      */
@@ -116,7 +116,7 @@
 			assertNotNull("Console is null", fConsole);
 			String[] list = appendAndGet(fConsole, "one\ntwo\n", 4);
 			verifyOutput(new String[]{"one", "two", "one", "two"}, list);
-			
+
 			// send EOF
 			IStreamsProxy streamsProxy = launch.getProcesses()[0].getStreamsProxy();
 			assertTrue("should be an IStreamsProxy2", streamsProxy instanceof IStreamsProxy2);
@@ -143,19 +143,19 @@
 			ConsoleLineTracker.setDelegate(null);
 			launch.getProcesses()[0].terminate();
 		}
-	} 	
-	
+	}
+
 	private void verifyOutput(String[] expected, String[] actual) {
 		for (int i = 0; i < actual.length; i++) {
 			assertEquals("Wrong message", expected[i], actual[i]);
 		}
 	}
-	
+
 	/**
 	 * Appends the given text to the given console and waits for the number
 	 * of lines to be written to the console. Returns the lines written to
 	 * the console.
-	 * 
+	 *
 	 * @param console
 	 * @param text
 	 * @param linesExpected
@@ -175,7 +175,7 @@
                 }
             }
         });
-		
+
 		int attempts = 0;
 		while (fLinesRead.size() < linesExpected) {
 			spinEventLoop();
@@ -192,10 +192,10 @@
 		assertEquals("Wrong number of lines", linesExpected, fLinesRead.size());
 		return fLinesRead.toArray(new String[0]);
 	}
-	
+
 	/**
 	 * Appends the given text to the given console. Text should not have new lines.
-	 * 
+	 *
 	 * @param console
 	 * @param text
 	 * @throws Exception
@@ -213,11 +213,11 @@
             }
         });
 		spinEventLoop();
-	}	
-		
+	}
+
 	/**
 	 * Deletes all text in the given console.
-	 * 
+	 *
 	 * @param console
 	 * @throws Exception
 	 */
@@ -235,7 +235,7 @@
         });
 		spinEventLoop();
 	}
-	
+
 	/**
 	 * @see org.eclipse.debug.ui.console.IConsoleLineTracker#dispose()
 	 */
@@ -283,11 +283,11 @@
 			fLock.notifyAll();
         }
 	}
-	
+
 	/**
 	 * Tests the scenario reported in bug 241394 - 'a', backspace, 'b', backspace, 'c', Enter.
 	 * Result should be 'c'.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testDeleteAllEnteredText() throws Exception {
@@ -308,11 +308,11 @@
 			deleteAll(fConsole);
 			String[] list = appendAndGet(fConsole, "c\n", 2);
 			verifyOutput(new String[]{"c", "c"}, list);
-			
+
 		} finally {
 			ConsoleLineTracker.setDelegate(null);
 			launch.getProcesses()[0].terminate();
-		}		
+		}
 	}
 
 	private void spinEventLoop() {
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ConsoleTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ConsoleTests.java
index 8190f1f..2af5a90 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ConsoleTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ConsoleTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -25,38 +25,38 @@
  * Tests console line tracker.
  */
 public class ConsoleTests extends AbstractDebugTest {
-	
+
 	public ConsoleTests(String name) {
 		super(name);
 	}
-	
+
 	class TestConsole extends MessageConsole {
-	    
+
 	    public boolean fInit = false;
 	    public boolean fDispose = false;
 
         public TestConsole(boolean autoLifecycle) {
             super("Life's like that", null, autoLifecycle);
         }
-        
+
         @Override
 		protected void init() {
             super.init();
             fInit = true;
         }
-        
+
         @Override
 		protected void dispose() {
             super.dispose();
             fDispose = true;
         }
-	    
+
 	}
-	
-	/** 
+
+	/**
 	 * Test that when a process is removed from a launch, the associated
 	 * console is closed.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testRemoveProcess() throws Exception {
@@ -84,12 +84,12 @@
 					IConsole console = DebugUITools.getConsole(otherTarget);
 					assertNull("Console should no longer exist", console);
 				}
-			});			
+			});
 		} finally {
 			terminateAndRemove(target);
-		}				
-	} 
-	
+		}
+	}
+
 	public void testAutoLifecycle() {
 	    TestConsole console = new TestConsole(true);
 	    IConsoleManager consoleManager = ConsolePlugin.getDefault().getConsoleManager();
@@ -98,7 +98,7 @@
 	    assertTrue("Console was not initialized", console.fInit);
 	    assertTrue("Console was not disposed", console.fDispose);
 	}
-	
+
 	public void testManualLifecycle() {
 	    TestConsole console = new TestConsole(false);
 	    IConsoleManager consoleManager = ConsolePlugin.getDefault().getConsoleManager();
@@ -107,6 +107,6 @@
 	    assertTrue("Console was initialized", !console.fInit);
 	    assertTrue("Console was disposed", !console.fDispose);
 	    console.dispose();
-	}	
+	}
 
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/DebugEventTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/DebugEventTests.java
index e52119d..524771b 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/DebugEventTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/DebugEventTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -27,19 +27,19 @@
 	public DebugEventTests(String name) {
 		super(name);
 	}
-	
+
 	/**
-	 * Ensure that a model specific event can be dispatched 
+	 * Ensure that a model specific event can be dispatched
 	 */
 	public void testModelSpecificEvent() {
 		DebugEvent event = new DebugEvent(this, DebugEvent.MODEL_SPECIFIC, 5000);
 		event.setData("TEST");
-		
+
 		DebugEventWaiter waiter = new DebugEventWaiter(DebugEvent.MODEL_SPECIFIC);
 		DebugPlugin.getDefault().fireDebugEventSet(new DebugEvent[] {event});
 		waiter.waitForEvent();
 		DebugEvent received = waiter.getEvent();
-		
+
 		assertEquals("Incorrect detail", 5000, received.getDetail());
 		assertEquals("incorrect user data", "TEST", received.getData());
 		assertEquals("incorrect source", this, received.getSource());
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/EEDefinitionTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/EEDefinitionTests.java
index 0503e6d..3b5b0b1 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/EEDefinitionTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/EEDefinitionTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jesper S Moller - Bug 421938: [1.8] ExecutionEnvironmentDescription#getVMArguments does not preserve VM arguments
@@ -37,20 +37,20 @@
  * Tests for ".ee" files - installed JRE definition files
  */
 public class EEDefinitionTests extends AbstractDebugTest {
-	
+
 	public static IPath TEST_EE_FILE = null;
 	{
 		if (Platform.OS_WIN32.equals(Platform.getOS())) {
-			TEST_EE_FILE = new Path("testfiles/test-jre/bin/test-foundation11-win32.ee"); 
+			TEST_EE_FILE = new Path("testfiles/test-jre/bin/test-foundation11-win32.ee");
 		} else {
 			TEST_EE_FILE = new Path("testfiles/test-jre/bin/test-foundation11.ee");
 		}
 	}
-		
+
 	public EEDefinitionTests(String name) {
 		super(name);
 	}
-	
+
 	/**
 	 * Tests that the EE file is a valid file
 	 */
@@ -61,7 +61,7 @@
 		IStatus status = EEVMType.validateDefinitionFile(description);
 		assertTrue("Invalid install location", status.isOK());
 	}
-	
+
 	/**
 	 * Tests that the EE install location validation returns an INFO status.
 	 */
@@ -72,8 +72,8 @@
 		assertNotNull("Missing EE VM type", vmType);
 		IStatus status = vmType.validateInstallLocation(file);
 		assertTrue("Invalid install location", status.getSeverity() == IStatus.INFO);
-	}	
-	
+	}
+
 	/**
 	 * Tests libraries for the EE file
 	 */
@@ -87,11 +87,11 @@
 		for (int i = 0; i < expected.length; i++) {
 			if (i == 4) {
 				// ext1 and ext2 can be in either order due to file system ordering
-				assertTrue("Wrong library", expected[i].equals(libs[i].getSystemLibraryPath().lastSegment()) || 
+				assertTrue("Wrong library", expected[i].equals(libs[i].getSystemLibraryPath().lastSegment()) ||
 						expected[i].equals(libs[i+1].getSystemLibraryPath().lastSegment()));
 			} else if (i == 5) {
 				// ext1 and ext2 can be in either order due to file system ordering
-				assertTrue("Wrong library", expected[i].equals(libs[i].getSystemLibraryPath().lastSegment()) || 
+				assertTrue("Wrong library", expected[i].equals(libs[i].getSystemLibraryPath().lastSegment()) ||
 						expected[i].equals(libs[i-1].getSystemLibraryPath().lastSegment()));
 			} else {
 				assertEquals("Wrong library", expected[i], libs[i].getSystemLibraryPath().lastSegment());
@@ -101,7 +101,7 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Tests source attachments
 	 */
@@ -115,11 +115,11 @@
 		for (int i = 0; i < expected.length; i++) {
 			if (i == 4) {
 				// ext1 and ext2 can be in either order due to file system ordering
-				assertTrue("Wrong attachment", expected[i].equals(libs[i].getSystemLibrarySourcePath().lastSegment()) || 
+				assertTrue("Wrong attachment", expected[i].equals(libs[i].getSystemLibrarySourcePath().lastSegment()) ||
 						expected[i].equals(libs[i+1].getSystemLibrarySourcePath().lastSegment()));
 			} else if (i == 5) {
 				// ext1 and ext2 can be in either order due to file system ordering
-				assertTrue("Wrong attachment", expected[i].equals(libs[i].getSystemLibrarySourcePath().lastSegment()) || 
+				assertTrue("Wrong attachment", expected[i].equals(libs[i].getSystemLibrarySourcePath().lastSegment()) ||
 						expected[i].equals(libs[i-1].getSystemLibrarySourcePath().lastSegment()));
 			} else if (i == 6){
 				assertEquals("Wrong attachment", Path.EMPTY, libs[i].getSystemLibrarySourcePath());
@@ -127,8 +127,8 @@
 				assertEquals("Wrong attachment", expected[i], libs[i].getSystemLibrarySourcePath().lastSegment());
 			}
 		}
-	}	
-	
+	}
+
 	/**
 	 * Tests default libraries for an EE VM type are empty.
 	 */
@@ -140,7 +140,7 @@
 		LibraryLocation[] libs = vmType.getDefaultLibraryLocations(file);
 		assertEquals("Wrong number of libraries", 0, libs.length);
 	}
-	
+
 	/**
 	 * Tests that a javadoc location can be specified.
 	 */
@@ -157,10 +157,10 @@
 		}
 		assertEquals("Incorrect javadoc location", expectedLocation, location);
 	}
-	
+
 	/**
 	 * Tests asking for the index from the EE file
-	 * 
+	 *
 	 * @throws Exception
 	 * @since 3.9.0
 	 */
@@ -177,7 +177,7 @@
 		}
 		assertEquals("Incorrect index location", expectedLocation, location);
 	}
-	
+
 	/**
 	 * Tests that a name with spaces can be specified.
 	 */
@@ -187,8 +187,8 @@
 		ExecutionEnvironmentDescription ee = new ExecutionEnvironmentDescription(file);
 		String name = ee.getProperty(ExecutionEnvironmentDescription.EE_NAME);
 		assertEquals("Incorrect vm name", "Eclipse JDT Test JRE Definition", name);
-	}	
-	
+	}
+
 	/**
 	 * Tests default VM arguments. All arguments from the EE file should get passed through in the
 	 * same order to the command line.
@@ -211,7 +211,7 @@
 			prev = next;
 		}
 	}
-	
+
 	/**
 	 * Test compatible environments
 	 */
@@ -224,7 +224,7 @@
 			assertNotNull("Missing EE VM type", vmType);
 			VMStandin standin = JavaRuntime.createVMFromDefinitionFile(file, "test-ee-file", "test-ee-file-id");
 			install = standin.convertToRealVM();
-			
+
 			IExecutionEnvironmentsManager manager = JavaRuntime.getExecutionEnvironmentsManager();
 			IExecutionEnvironment[] envs = manager.getExecutionEnvironments();
 			boolean found11 = false;
@@ -244,18 +244,18 @@
 			}
 		}
 	}
-		
+
 	protected File getEEFile() {
 		return JavaTestPlugin.getDefault().getFileInPlugin(TEST_EE_FILE);
 	}
-	
+
 	protected IVMInstallType getVMInstallType() {
 		return JavaRuntime.getVMInstallType(EEVMType.ID_EE_VM_TYPE);
 	}
-	
+
 	/**
 	 * Tests raw EE properties map.
-	 * 
+	 *
 	 * @throws CoreException
 	 */
 	public void testParseProperties() throws CoreException {
@@ -263,19 +263,19 @@
 		assertNotNull("Missing EE file", file);
 		ExecutionEnvironmentDescription desc = new ExecutionEnvironmentDescription(file);
 		Map<String, String> map = desc.getProperties();
-		
+
 		// validate expected properties
 		validateProperty(ExecutionEnvironmentDescription.EXECUTABLE, "jrew.txt" , map);
 		validateProperty(ExecutionEnvironmentDescription.EXECUTABLE_CONSOLE, "jre.txt", map);
 		validateProperty("-XspecialArg:123", "", map);
 		validateProperty("-XspecialArg2", "456", map);
-		
+
 	}
-	
+
 	protected void validateProperty(String key, String value, Map<String, String> properties) {
 		assertEquals("Unexpeted value for: " + key, value, properties.get(key));
 	}
-	
+
 	/**
 	 * Tests that a name with spaces can be specified.
 	 */
@@ -284,5 +284,5 @@
 		assertNotNull("Missing EE file", file);
 		ExecutionEnvironmentDescription ee = new ExecutionEnvironmentDescription(file);
 		validateProperty("-Dee.empty", "", ee.getProperties());
-	}	
+	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/EnvironmentTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/EnvironmentTests.java
index b4bcbc8..0b0ad85 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/EnvironmentTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/EnvironmentTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -24,7 +24,7 @@
 import org.eclipse.osgi.service.environment.Constants;
 
 public class EnvironmentTests extends AbstractDebugTest {
-	
+
 	public EnvironmentTests(String name) {
 		super(name);
 	}
@@ -41,7 +41,7 @@
 			assertEquals("env vars should be case insensitive", path1, path2);
 		}
 	}
-	
+
 	/**
 	 * Test that we can override a variable in a case insensitive way on Windows
 	 */
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/EventSetTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/EventSetTests.java
index ab340f9..294fdd1 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/EventSetTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/EventSetTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -23,7 +23,7 @@
  * Tests event sets.
  */
 public class EventSetTests extends AbstractDebugTest {
-	
+
 	public EventSetTests(String name) {
 		super(name);
 	}
@@ -34,7 +34,7 @@
 		// add two breakpoints at the same location
 		bps.add(createLineBreakpoint(88, typeName));
 		bps.add(createLineBreakpoint(88, typeName));
-		
+
 
 		IJavaThread thread= null;
 		try {
@@ -52,11 +52,11 @@
 					bps.remove(hits[i]);
 				}
 				assertTrue("breakpoint collection should now be empty", bps.isEmpty());
-				
+
 			}
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ExecutionEnvironmentTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ExecutionEnvironmentTests.java
index 0edd82b..354c32a 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ExecutionEnvironmentTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ExecutionEnvironmentTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -30,11 +30,11 @@
  * Tests for execution environments
  */
 public class ExecutionEnvironmentTests extends AbstractDebugTest {
-		
+
 	public ExecutionEnvironmentTests(String name) {
 		super(name);
 	}
-	
+
 	public void testGetEnvironments() throws Exception {
 		IExecutionEnvironment[] executionEnvironments = JavaRuntime.getExecutionEnvironmentsManager().getExecutionEnvironments();
 		assertTrue("Should be at least one environment", executionEnvironments.length > 0);
@@ -46,11 +46,11 @@
 		}
 		assertTrue("Did not find environment J2SE-1.4", false);
 	}
-	
+
 	public void testAnalyze() throws Exception {
 		IVMInstall vm = JavaRuntime.getDefaultVMInstall();
 		IExecutionEnvironmentsManager manager = JavaRuntime.getExecutionEnvironmentsManager();
-				
+
 		IExecutionEnvironment environment = manager.getEnvironment(JavaProjectHelper.J2SE_1_4_EE_NAME);
 		assertNotNull("Missing environment J2SE-1.4", environment);
 		IVMInstall[] installs = environment.getCompatibleVMs();
@@ -63,7 +63,7 @@
 		}
 		assertTrue("vm should be J2SE-1.4 compliant", false);
 	}
-	
+
 	public void testAccessRuleParticipants() throws Exception {
 		IExecutionEnvironmentsManager manager = JavaRuntime.getExecutionEnvironmentsManager();
 		IExecutionEnvironment environment = manager.getEnvironment("org.eclipse.jdt.debug.tests.environment.j2se14x");
@@ -82,7 +82,7 @@
 			assertEquals("Wrong rule", "non_accessible", rules[3].getPattern().toString());
 		}
 	}
-	
+
 	public void testNoAccessRuleParticipants() throws Exception {
 		IExecutionEnvironmentsManager manager = JavaRuntime.getExecutionEnvironmentsManager();
 		IExecutionEnvironment environment = manager.getEnvironment("org.eclipse.jdt.debug.tests.environment.j2se13x");
@@ -96,8 +96,8 @@
 			IAccessRule[] rules = accessRules[i];
 			assertEquals("wrong number of rules for lib", 0, rules.length);
 		}
-	}	
-	
+	}
+
 	public void testAccessRuleParticipantsWithShortCircut() throws Exception {
 		IExecutionEnvironmentsManager manager = JavaRuntime.getExecutionEnvironmentsManager();
 		IExecutionEnvironment environment = manager.getEnvironment("org.eclipse.jdt.debug.tests.environment.j2se15x");
@@ -113,7 +113,7 @@
 			assertEquals("Wrong rule", "**/*", rules[0].getPattern().toString());
 		}
 	}
-	
+
 	/**
 	 * Tests that a project bound to an EE has access rules.
 	 */
@@ -140,7 +140,7 @@
 		}
 		assertTrue("did not find JRE libs on classpath", foundLib);
 	}
-	
+
 	/**
 	 * Tests that a project bound to a specific JRE has no access rules.
 	 */
@@ -165,12 +165,12 @@
 				}
 			}
 		}
-		assertTrue("did not find JRE library on classpath", foundLib);		
-	}	
-	
+		assertTrue("did not find JRE library on classpath", foundLib);
+	}
+
 	/**
 	 * Tests that default access rules appear for system packages when a profile file is specified.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testDefaultSystemPackageAccessRules() throws Exception {
@@ -189,12 +189,12 @@
 			assertEquals("Wrong rule", "one/two/*", rules[1].getPattern().toString());
 			assertEquals("Wrong rule", "three/four/*", rules[2].getPattern().toString());
 			assertEquals("Wrong rule", "**/*", rules[3].getPattern().toString());
-		}		
+		}
 	}
-	
+
 	/**
 	 * Tests that a location can be resolved for ${ee_home:J2SE-1.4}
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testEEHomeVariable() throws Exception {
@@ -205,10 +205,10 @@
 		IVMInstall install = JavaRuntime.getVMInstall(JavaRuntime.newJREContainerPath(ee));
 		assertEquals(install.getInstallLocation().getAbsolutePath(), result);
 	}
-	
+
 	/**
 	 * Tests that a location cannot be resolved for ${ee_home}
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testEEHomeVariableMissingArgument() throws Exception {
@@ -220,10 +220,10 @@
 		}
 		assertNotNull("Test should have thrown an exception", null);
 	}
-	
+
 	/**
 	 * Tests that a location cannot be resolved for ${ee_home:bogus}
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testEEHomeVariableInvalidArgument() throws Exception {
@@ -234,5 +234,5 @@
 			return; // expected
 		}
 		assertNotNull("Test should have thrown an exception", null);
-	}	
+	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/HcrTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/HcrTests.java
index 82c4ecd..70a3a7d 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/HcrTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/HcrTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -29,9 +29,9 @@
  * Tests hot code replace
  */
 public class HcrTests extends AbstractDebugTest {
-	
+
 	class HCRListener implements IJavaHotCodeReplaceListener {
-		
+
 		boolean notified = false;
 		IJavaDebugTarget target = null;
 
@@ -62,19 +62,19 @@
 			notified = true;
 			notifyAll();
 		}
-		
+
 		/**
 		 * Returns whether notified (yet).
-		 * 
+		 *
 		 * @return whether notified
 		 */
 		public synchronized boolean wasNotified() {
 			return notified;
 		}
-		
+
 		/**
 		 * Waits for notification and returns whether notified.
-		 * 
+		 *
 		 * @return
 		 */
 		public synchronized boolean waitNotification() {
@@ -86,17 +86,17 @@
 			}
 			return notified;
 		}
-		
+
 	}
-	
+
 	public HcrTests(String name) {
 		super(name);
 	}
-	
+
 	/* (non-Javadoc)
-	 * 
+	 *
 	 * Revert the source file after the test.
-	 * 
+	 *
 	 * @see junit.framework.TestCase#tearDown()
 	 */
 	@Override
@@ -116,17 +116,18 @@
 			cu.commitWorkingCopy(true, null);
 			waitForBuild();
 		}
-	}	
+		super.tearDown();
+	}
 
 	public void testSimpleHcr() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.HcrClass";
-		createLineBreakpoint(39, typeName);		
-		
+		createLineBreakpoint(39, typeName);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			IJavaDebugTarget target = (IJavaDebugTarget)thread.getDebugTarget();
 			if (target.supportsHotCodeReplace()) {
 
@@ -150,13 +151,13 @@
 				assertTrue("Could not find code to replace", index > 0);
 				String newCode = contents.substring(0, index) + "\"Two\"" + contents.substring(index + 5);
 				buffer.setContents(newCode);
-				
+
 				// save contents
 				DebugElementEventWaiter waiter = new DebugElementEventWaiter(DebugEvent.SUSPEND, thread);
 				cu.commitWorkingCopy(true, null);
 				waitForBuild();
 				waiter.waitForEvent();
-	
+
 				// should have dropped to frame 'one'
 				frame = (IJavaStackFrame)thread.getTopStackFrame();
 				assertNotNull("No top stack frame", frame);
@@ -168,11 +169,11 @@
 					throw new TestAgainException("Retest - the correct method name was not present after HCR");
 				}
 				assertEquals("Should have dropped to method 'one'", "one", frame.getMethodName());
-				
+
 				// resume to breakpoint
 				createLineBreakpoint(39, typeName);
 				thread = resume(thread);
-				
+
 				// value of 'x' should now be "Two"
 				frame = (IJavaStackFrame)thread.getTopStackFrame();
 				variable = findVariable(frame, "x");
@@ -184,24 +185,24 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
 
 	/**
 	 * Tests a general (plug-in) listener.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testGeneralHcrListener() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.HcrClass";
-		createLineBreakpoint(39, typeName);		
+		createLineBreakpoint(39, typeName);
 		HCRListener listener = new HCRListener();
 		JDIDebugModel.addHotCodeReplaceListener(listener);
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			IJavaDebugTarget target = (IJavaDebugTarget)thread.getDebugTarget();
 			if (target.supportsHotCodeReplace()) {
 				// look at the value of 'x' - it should be "One"
@@ -223,7 +224,7 @@
 				assertTrue("Could not find code to replace", index > 0);
 				String newCode = contents.substring(0, index) + "\"Two\"" + contents.substring(index + 5);
 				buffer.setContents(newCode);
-				
+
 				// save contents
 				cu.commitWorkingCopy(true, null);
 				waitForBuild();
@@ -235,17 +236,17 @@
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 			JDIDebugModel.removeHotCodeReplaceListener(listener);
-		}		
+		}
 	}
-	
+
 	/**
 	 * Tests that a target specific listener overrides a generic listener.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testSpecificHcrListener() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.HcrClass";
-		createLineBreakpoint(39, typeName);		
+		createLineBreakpoint(39, typeName);
 		HCRListener listener = new HCRListener();
 		HCRListener listener2 = new HCRListener();
 		JDIDebugModel.addHotCodeReplaceListener(listener);
@@ -253,7 +254,7 @@
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			IJavaDebugTarget target = (IJavaDebugTarget)thread.getDebugTarget();
 			if (target.supportsHotCodeReplace()) {
 				target.addHotCodeReplaceListener(listener2);
@@ -276,7 +277,7 @@
 				assertTrue("Could not find code to replace", index > 0);
 				String newCode = contents.substring(0, index) + "\"Two\"" + contents.substring(index + 5);
 				buffer.setContents(newCode);
-				
+
 				// save contents
 				cu.commitWorkingCopy(true, null);
 				waitForBuild();
@@ -289,18 +290,18 @@
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 			JDIDebugModel.removeHotCodeReplaceListener(listener);
-		}		
-	}	
-	
+		}
+	}
+
 	/**
-	 * Tests HCR in a local type with the same name as the enclosing 
+	 * Tests HCR in a local type with the same name as the enclosing
 	 * method
 	 * @throws Exception
 	 * @since 3.8.100
 	 */
 	public void testHCRLocalType() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.HcrClass2";
-		createLineBreakpoint(33, typeName);		
+		createLineBreakpoint(33, typeName);
 		HCRListener listener = new HCRListener();
 		JDIDebugModel.addHotCodeReplaceListener(listener);
 		IJavaThread thread= null;
@@ -324,7 +325,7 @@
 				assertTrue("Could not find code to replace", index > 0);
 				String newCode = contents.substring(0, index) + "\"Local#run\"" + contents.substring(index + 13);
 				buffer.setContents(newCode);
-				
+
 				DebugEventWaiter waiter = new DebugEventWaiter(DebugEvent.SUSPEND);
 				cu.commitWorkingCopy(true, null);
 				waitForBuild();
@@ -344,16 +345,16 @@
 			JDIDebugModel.removeHotCodeReplaceListener(listener);
 		}
 	}
-	
+
 	/**
 	 * Tests HCR in a local type
 	 * @throws Exception
-	 * 
+	 *
 	 * @since 3.8.100
 	 */
 	public void testHCRLocalType2() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.HcrClass2";
-		createLineBreakpoint(37, typeName);		
+		createLineBreakpoint(37, typeName);
 		HCRListener listener = new HCRListener();
 		JDIDebugModel.addHotCodeReplaceListener(listener);
 		IJavaThread thread= null;
@@ -377,7 +378,7 @@
 				assertTrue("Could not find code to replace", index > 0);
 				String newCode = contents.substring(0, index) + "\"Local#run2\"" + contents.substring(index + 14);
 				buffer.setContents(newCode);
-				
+
 				DebugEventWaiter waiter = new DebugEventWaiter(DebugEvent.SUSPEND);
 				cu.commitWorkingCopy(true, null);
 				waitForBuild();
@@ -397,16 +398,16 @@
 			JDIDebugModel.removeHotCodeReplaceListener(listener);
 		}
 	}
-	
+
 	/**
 	 * Tests HCR in a local type defined in a constructor
 	 * @throws Exception
-	 * 
+	 *
 	 * @since 3.8.100
 	 */
 	public void testHCRLocalType3() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.HcrClass2";
-		createLineBreakpoint(19, typeName);		
+		createLineBreakpoint(19, typeName);
 		HCRListener listener = new HCRListener();
 		JDIDebugModel.addHotCodeReplaceListener(listener);
 		IJavaThread thread= null;
@@ -430,7 +431,7 @@
 				assertTrue("Could not find code to replace", index > 0);
 				String newCode = contents.substring(0, index) + "\"CLocal#run\"" + contents.substring(index + 14);
 				buffer.setContents(newCode);
-				
+
 				DebugEventWaiter waiter = new DebugEventWaiter(DebugEvent.SUSPEND);
 				cu.commitWorkingCopy(true, null);
 				waitForBuild();
@@ -450,17 +451,17 @@
 			JDIDebugModel.removeHotCodeReplaceListener(listener);
 		}
 	}
-	
+
 	/**
-	 * Tests HCR in an anonymous type with the same name as the method 
+	 * Tests HCR in an anonymous type with the same name as the method
 	 * where the anonymous type was defined
-	 * 
+	 *
 	 * @throws Exception
 	 * @since 3.8.100
 	 */
 	public void testHCRAnonymousType() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.HcrClass3";
-		createLineBreakpoint(34, typeName);		
+		createLineBreakpoint(34, typeName);
 		HCRListener listener = new HCRListener();
 		JDIDebugModel.addHotCodeReplaceListener(listener);
 		IJavaThread thread= null;
@@ -484,7 +485,7 @@
 				assertTrue("Could not find code to replace", index > 0);
 				String newCode = contents.substring(0, index) + "\"NEW_CODE\"" + contents.substring(index + 11);
 				buffer.setContents(newCode);
-				
+
 				DebugEventWaiter waiter = new DebugEventWaiter(DebugEvent.SUSPEND);
 				cu.commitWorkingCopy(true, null);
 				waitForBuild();
@@ -505,7 +506,7 @@
 			JDIDebugModel.removeHotCodeReplaceListener(listener);
 		}
 	}
-	
+
 	/**
 	 * Tests HCR in an anonymous type defined in a method
 	 * @throws Exception
@@ -513,7 +514,7 @@
 	 */
 	public void testHCRAnonymousType2() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.HcrClass3";
-		createLineBreakpoint(44, typeName);		
+		createLineBreakpoint(44, typeName);
 		HCRListener listener = new HCRListener();
 		JDIDebugModel.addHotCodeReplaceListener(listener);
 		IJavaThread thread= null;
@@ -537,7 +538,7 @@
 				assertTrue("Could not find code to replace", index > 0);
 				String newCode = contents.substring(0, index) + "\"NEW_CODE\"" + contents.substring(index + 11);
 				buffer.setContents(newCode);
-				
+
 				DebugEventWaiter waiter = new DebugEventWaiter(DebugEvent.SUSPEND);
 				cu.commitWorkingCopy(true, null);
 				waitForBuild();
@@ -557,7 +558,7 @@
 			JDIDebugModel.removeHotCodeReplaceListener(listener);
 		}
 	}
-	
+
 	/**
 	 * Tests HCR in an anonymous type defined in a constructor
 	 * @throws Exception
@@ -565,7 +566,7 @@
 	 */
 	public void testHCRAnonymousType3() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.HcrClass3";
-		createLineBreakpoint(24, typeName);		
+		createLineBreakpoint(24, typeName);
 		HCRListener listener = new HCRListener();
 		JDIDebugModel.addHotCodeReplaceListener(listener);
 		IJavaThread thread= null;
@@ -589,7 +590,7 @@
 				assertTrue("Could not find code to replace", index > 0);
 				String newCode = contents.substring(0, index) + "\"NEW_CODE\"" + contents.substring(index + 11);
 				buffer.setContents(newCode);
-				
+
 				DebugEventWaiter waiter = new DebugEventWaiter(DebugEvent.SUSPEND);
 				cu.commitWorkingCopy(true, null);
 				waitForBuild();
@@ -609,7 +610,7 @@
 			JDIDebugModel.removeHotCodeReplaceListener(listener);
 		}
 	}
-	
+
 	/**
 	 * Tests HCR on a method called from a constructor
 	 * @throws Exception
@@ -617,7 +618,7 @@
 	 */
 	public void testHCRConstructor() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.HcrClass4";
-		createLineBreakpoint(21, typeName);		
+		createLineBreakpoint(21, typeName);
 		HCRListener listener = new HCRListener();
 		JDIDebugModel.addHotCodeReplaceListener(listener);
 		IJavaThread thread= null;
@@ -641,7 +642,7 @@
 				assertTrue("Could not find code to replace", index > 0);
 				String newCode = contents.substring(0, index) + "\"HcrClass4#run\"" + contents.substring(index + 17);
 				buffer.setContents(newCode);
-				
+
 				DebugEventWaiter waiter = new DebugEventWaiter(DebugEvent.SUSPEND);
 				cu.commitWorkingCopy(true, null);
 				waitForBuild();
@@ -661,7 +662,7 @@
 			JDIDebugModel.removeHotCodeReplaceListener(listener);
 		}
 	}
-	
+
 	/**
 	 * Tests HCR within a constructor
 	 * @throws Exception
@@ -669,7 +670,7 @@
 	 */
 	public void testHCRConstructor2() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.HcrClass4";
-		createLineBreakpoint(16, typeName);		
+		createLineBreakpoint(16, typeName);
 		HCRListener listener = new HCRListener();
 		JDIDebugModel.addHotCodeReplaceListener(listener);
 		IJavaThread thread= null;
@@ -693,7 +694,7 @@
 				assertTrue("Could not find code to replace", index > 0);
 				String newCode = contents.substring(0, index) + "\"Construct\"" + contents.substring(index + 13);
 				buffer.setContents(newCode);
-				
+
 				DebugEventWaiter waiter = new DebugEventWaiter(DebugEvent.SUSPEND);
 				cu.commitWorkingCopy(true, null);
 				waitForBuild();
@@ -714,7 +715,7 @@
 			JDIDebugModel.removeHotCodeReplaceListener(listener);
 		}
 	}
-	
+
 	/**
 	 * Tests HCR on an inner type method with the same name as the enclosing type
 	 * method it was called from
@@ -723,14 +724,14 @@
 	 */
 	public void testHCRInnerType() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.HcrClass5";
-		createLineBreakpoint(23, typeName);		
+		createLineBreakpoint(23, typeName);
 		HCRListener listener = new HCRListener();
 		JDIDebugModel.addHotCodeReplaceListener(listener);
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			IJavaDebugTarget target = (IJavaDebugTarget)thread.getDebugTarget();
 			if (target.supportsHotCodeReplace()) {
 				IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
@@ -749,7 +750,7 @@
 				assertTrue("Could not find code to replace", index > 0);
 				String newCode = contents.substring(0, index) + "\"InnerClass#run\"" + contents.substring(index + 18);
 				buffer.setContents(newCode);
-				
+
 				DebugEventWaiter waiter = new DebugEventWaiter(DebugEvent.SUSPEND);
 				cu.commitWorkingCopy(true, null);
 				waitForBuild();
@@ -770,7 +771,7 @@
 			JDIDebugModel.removeHotCodeReplaceListener(listener);
 		}
 	}
-	
+
 	/**
 	 * Tests HCR on an inner type method
 	 * @throws Exception
@@ -778,14 +779,14 @@
 	 */
 	public void testHCRInnerType2() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.HcrClass5";
-		createLineBreakpoint(27, typeName);		
+		createLineBreakpoint(27, typeName);
 		HCRListener listener = new HCRListener();
 		JDIDebugModel.addHotCodeReplaceListener(listener);
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			IJavaDebugTarget target = (IJavaDebugTarget)thread.getDebugTarget();
 			if (target.supportsHotCodeReplace()) {
 				IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
@@ -804,7 +805,7 @@
 				assertTrue("Could not find code to replace", index > 0);
 				String newCode = contents.substring(0, index) + "\"InnerClass#run2\"" + contents.substring(index + 19);
 				buffer.setContents(newCode);
-				
+
 				DebugEventWaiter waiter = new DebugEventWaiter(DebugEvent.SUSPEND);
 				cu.commitWorkingCopy(true, null);
 				waitForBuild();
@@ -825,7 +826,7 @@
 			JDIDebugModel.removeHotCodeReplaceListener(listener);
 		}
 	}
-	
+
 	/**
 	 * Tests HCR on a constructor in an inner type
 	 * @throws Exception
@@ -833,14 +834,14 @@
 	 */
 	public void testHCRInnerType3() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.HcrClass5";
-		createLineBreakpoint(18, typeName);		
+		createLineBreakpoint(18, typeName);
 		HCRListener listener = new HCRListener();
 		JDIDebugModel.addHotCodeReplaceListener(listener);
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			IJavaDebugTarget target = (IJavaDebugTarget)thread.getDebugTarget();
 			if (target.supportsHotCodeReplace()) {
 				IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
@@ -859,7 +860,7 @@
 				assertTrue("Could not find code to replace", index > 0);
 				String newCode = contents.substring(0, index) + "\"Construct\"" + contents.substring(index + 13);
 				buffer.setContents(newCode);
-				
+
 				DebugEventWaiter waiter = new DebugEventWaiter(DebugEvent.SUSPEND);
 				cu.commitWorkingCopy(true, null);
 				waitForBuild();
@@ -881,7 +882,7 @@
 			JDIDebugModel.removeHotCodeReplaceListener(listener);
 		}
 	}
-	
+
 	/**
 	 * Tests HCR on an enclosing method called from an inner type
 	 * method with the same name
@@ -890,14 +891,14 @@
 	 */
 	public void testHCRInnerType4() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.HcrClass5";
-		createLineBreakpoint(33, typeName);		
+		createLineBreakpoint(33, typeName);
 		HCRListener listener = new HCRListener();
 		JDIDebugModel.addHotCodeReplaceListener(listener);
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			IJavaDebugTarget target = (IJavaDebugTarget)thread.getDebugTarget();
 			if (target.supportsHotCodeReplace()) {
 				IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
@@ -916,7 +917,7 @@
 				assertTrue("Could not find code to replace", index > 0);
 				String newCode = contents.substring(0, index) + "\"LocalHCR#run\"" + contents.substring(index + 16);
 				buffer.setContents(newCode);
-				
+
 				DebugEventWaiter waiter = new DebugEventWaiter(DebugEvent.SUSPEND);
 				cu.commitWorkingCopy(true, null);
 				waitForBuild();
@@ -937,7 +938,7 @@
 			JDIDebugModel.removeHotCodeReplaceListener(listener);
 		}
 	}
-	
+
 	/**
 	 * Tests HCR on an enclosing method called from an inner type
 	 * method
@@ -946,14 +947,14 @@
 	 */
 	public void testHCRInnerType5() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.HcrClass5";
-		createLineBreakpoint(37, typeName);		
+		createLineBreakpoint(37, typeName);
 		HCRListener listener = new HCRListener();
 		JDIDebugModel.addHotCodeReplaceListener(listener);
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			IJavaDebugTarget target = (IJavaDebugTarget)thread.getDebugTarget();
 			if (target.supportsHotCodeReplace()) {
 				IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
@@ -972,7 +973,7 @@
 				assertTrue("Could not find code to replace", index > 0);
 				String newCode = contents.substring(0, index) + "\"LocalHCR#outerrun\"" + contents.substring(index +21);
 				buffer.setContents(newCode);
-				
+
 				DebugEventWaiter waiter = new DebugEventWaiter(DebugEvent.SUSPEND);
 				cu.commitWorkingCopy(true, null);
 				waitForBuild();
@@ -993,7 +994,7 @@
 			JDIDebugModel.removeHotCodeReplaceListener(listener);
 		}
 	}
-	
+
 	/**
 	 * Tests HCR on a local type defined in an inner type
 	 * @throws Exception
@@ -1001,14 +1002,14 @@
 	 */
 	public void testHCRLocalInner() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.HcrClass9";
-		createLineBreakpoint(19, typeName);		
+		createLineBreakpoint(19, typeName);
 		HCRListener listener = new HCRListener();
 		JDIDebugModel.addHotCodeReplaceListener(listener);
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			IJavaDebugTarget target = (IJavaDebugTarget)thread.getDebugTarget();
 			if (target.supportsHotCodeReplace()) {
 				IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
@@ -1027,7 +1028,7 @@
 				assertTrue("Could not find code to replace", index > 0);
 				String newCode = contents.substring(0, index) + "\"Inner$Local#run\"" + contents.substring(index +19);
 				buffer.setContents(newCode);
-				
+
 				DebugEventWaiter waiter = new DebugEventWaiter(DebugEvent.SUSPEND);
 				cu.commitWorkingCopy(true, null);
 				waitForBuild();
@@ -1048,7 +1049,7 @@
 			JDIDebugModel.removeHotCodeReplaceListener(listener);
 		}
 	}
-	
+
 	/**
 	 * Tests HCR on a local type defined in an anonymous type
 	 * @throws Exception
@@ -1056,14 +1057,14 @@
 	 */
 	public void testHCRLocalAnonymous() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.HcrClass8";
-		createLineBreakpoint(24, typeName);		
+		createLineBreakpoint(24, typeName);
 		HCRListener listener = new HCRListener();
 		JDIDebugModel.addHotCodeReplaceListener(listener);
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			IJavaDebugTarget target = (IJavaDebugTarget)thread.getDebugTarget();
 			if (target.supportsHotCodeReplace()) {
 				IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
@@ -1082,7 +1083,7 @@
 				assertTrue("Could not find code to replace", index > 0);
 				String newCode = contents.substring(0, index) + "\"Inner$Local#run\"" + contents.substring(index +19);
 				buffer.setContents(newCode);
-				
+
 				DebugEventWaiter waiter = new DebugEventWaiter(DebugEvent.SUSPEND);
 				cu.commitWorkingCopy(true, null);
 				waitForBuild();
@@ -1103,7 +1104,7 @@
 			JDIDebugModel.removeHotCodeReplaceListener(listener);
 		}
 	}
-	
+
 	/**
 	 * Tests HCR on an inner type defined in a local type
 	 * @throws Exception
@@ -1111,14 +1112,14 @@
 	 */
 	public void testHCRInnerLocal() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.HcrClass7";
-		createLineBreakpoint(19, typeName);		
+		createLineBreakpoint(19, typeName);
 		HCRListener listener = new HCRListener();
 		JDIDebugModel.addHotCodeReplaceListener(listener);
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			IJavaDebugTarget target = (IJavaDebugTarget)thread.getDebugTarget();
 			if (target.supportsHotCodeReplace()) {
 				IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
@@ -1137,7 +1138,7 @@
 				assertTrue("Could not find code to replace", index > 0);
 				String newCode = contents.substring(0, index) + "\"Local$Inner#run\"" + contents.substring(index +19);
 				buffer.setContents(newCode);
-				
+
 				DebugEventWaiter waiter = new DebugEventWaiter(DebugEvent.SUSPEND);
 				cu.commitWorkingCopy(true, null);
 				waitForBuild();
@@ -1158,7 +1159,7 @@
 			JDIDebugModel.removeHotCodeReplaceListener(listener);
 		}
 	}
-	
+
 	/**
 	 * Tests HCR on an anonymous type defined in a local type
 	 * @throws Exception
@@ -1166,14 +1167,14 @@
 	 */
 	public void testHCRAnnonymousLocal() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.HcrClass6";
-		createLineBreakpoint(23, typeName);		
+		createLineBreakpoint(23, typeName);
 		HCRListener listener = new HCRListener();
 		JDIDebugModel.addHotCodeReplaceListener(listener);
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			IJavaDebugTarget target = (IJavaDebugTarget)thread.getDebugTarget();
 			if (target.supportsHotCodeReplace()) {
 				IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
@@ -1192,7 +1193,7 @@
 				assertTrue("Could not find code to replace", index > 0);
 				String newCode = contents.substring(0, index) + "\"Local$Inner#run\"" + contents.substring(index +19);
 				buffer.setContents(newCode);
-				
+
 				DebugEventWaiter waiter = new DebugEventWaiter(DebugEvent.SUSPEND);
 				cu.commitWorkingCopy(true, null);
 				waitForBuild();
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/InstanceFilterTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/InstanceFilterTests.java
index fc7a221..9d3f330 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/InstanceFilterTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/InstanceFilterTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -26,19 +26,19 @@
 
 /**
  * Tests instance filters on breakpoints.
- * 
+ *
  * These tests only "run" on VMs that support instance breakpoints,
  * such as JDK 1.4.1.
  */
 public class InstanceFilterTests extends AbstractDebugTest {
-	
+
 	public InstanceFilterTests(String name) {
 		super(name);
 	}
 
 	/**
 	 * Instance filter on a line breakpoint
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testLineBreakpoint() throws Exception {
@@ -46,8 +46,8 @@
 		// main
 		IJavaLineBreakpoint mainBreakpoint = createLineBreakpoint(39, typeName);
 		// simpleMethod
-		IJavaLineBreakpoint simpleMethod = createLineBreakpoint(19, typeName);		
-		
+		IJavaLineBreakpoint simpleMethod = createLineBreakpoint(19, typeName);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
@@ -55,7 +55,7 @@
 			IBreakpoint hit = getBreakpoint(thread);
 			assertNotNull("suspended, but not by breakpoint", hit);
 			assertEquals("hit wrong breakpoint", mainBreakpoint, hit);
-			
+
 			// can only do test if the VM supports instance filters
 			if (supportsInstanceBreakpoints(thread)) {
 				// restrict breakpoint in simpleMethod to object 1
@@ -69,15 +69,15 @@
 				IJavaObject object2 = (IJavaObject)var2.getValue();
 				assertNotNull(object1);
 				assertNotNull(object2);
-				
+
 				simpleMethod.addInstanceFilter(object1);
-				
+
 				// resume the thread
 				thread= resume(thread);
 				IBreakpoint[] breakpoints = thread.getBreakpoints();
 				assertEquals("should be a breakpoint", 1, breakpoints.length);
 				assertEquals("should be in simpleMethod", simpleMethod, breakpoints[0]);
-				
+
 				// receiver should be object1
 				frame = (IJavaStackFrame)thread.getTopStackFrame();
 				assertNotNull(frame);
@@ -87,12 +87,12 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * Instance filter on a method entry breakpoint
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testMethodEntryBreakpoint() throws Exception {
@@ -100,8 +100,8 @@
 		// main
 		IJavaLineBreakpoint mainBreakpoint = createLineBreakpoint(39, typeName);
 		// simpleMethod
-		IJavaMethodBreakpoint simpleMethod = createMethodBreakpoint(typeName, "simpleMethod", "()V", true, false);		
-		
+		IJavaMethodBreakpoint simpleMethod = createMethodBreakpoint(typeName, "simpleMethod", "()V", true, false);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
@@ -109,7 +109,7 @@
 			IBreakpoint hit = getBreakpoint(thread);
 			assertNotNull("suspended, but not by breakpoint", hit);
 			assertEquals("hit wrong breakpoint", mainBreakpoint, hit);
-			
+
 			// can only do test if the VM supports instance filters
 			if (supportsInstanceBreakpoints(thread)) {
 				// restrict breakpoint in simpleMethod to object 1
@@ -123,15 +123,15 @@
 				IJavaObject object2 = (IJavaObject)var2.getValue();
 				assertNotNull(object1);
 				assertNotNull(object2);
-				
+
 				simpleMethod.addInstanceFilter(object1);
-				
+
 				// resume the thread
 				thread= resume(thread);
 				IBreakpoint[] breakpoints = thread.getBreakpoints();
 				assertEquals("should be a breakpoint", 1, breakpoints.length);
 				assertEquals("should be in simpleMethod", simpleMethod, breakpoints[0]);
-				
+
 				// receiver should be object1
 				frame = (IJavaStackFrame)thread.getTopStackFrame();
 				assertNotNull(frame);
@@ -146,12 +146,12 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}	
-	
+		}
+	}
+
 	/**
 	 * Instance filter on a method exit breakpoint
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testMethodExitBreakpoint() throws Exception {
@@ -159,8 +159,8 @@
 		// main
 		IJavaLineBreakpoint mainBreakpoint = createLineBreakpoint(39, typeName);
 		// simpleMethod
-		IJavaMethodBreakpoint simpleMethod = createMethodBreakpoint(typeName, "simpleMethod", "()V", false, true);		
-		
+		IJavaMethodBreakpoint simpleMethod = createMethodBreakpoint(typeName, "simpleMethod", "()V", false, true);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
@@ -168,7 +168,7 @@
 			IBreakpoint hit = getBreakpoint(thread);
 			assertNotNull("suspended, but not by breakpoint", hit);
 			assertEquals("hit wrong breakpoint", mainBreakpoint, hit);
-			
+
 			// can only do test if the VM supports instance filters
 			if (supportsInstanceBreakpoints(thread)) {
 				// restrict breakpoint in simpleMethod to object 1
@@ -182,15 +182,15 @@
 				IJavaObject object2 = (IJavaObject)var2.getValue();
 				assertNotNull(object1);
 				assertNotNull(object2);
-				
+
 				simpleMethod.addInstanceFilter(object1);
-				
+
 				// resume the thread
 				thread= resume(thread);
 				IBreakpoint[] breakpoints = thread.getBreakpoints();
 				assertEquals("should be a breakpoint", 1, breakpoints.length);
 				assertEquals("should be in simpleMethod", simpleMethod, breakpoints[0]);
-				
+
 				// receiver should be object1
 				frame = (IJavaStackFrame)thread.getTopStackFrame();
 				assertNotNull(frame);
@@ -205,12 +205,12 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}		
+		}
+	}
 
 	/**
 	 * Instance filter on an exception breakpoint
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testExceptionBreakpoint() throws Exception {
@@ -218,8 +218,8 @@
 		// main
 		IJavaLineBreakpoint mainBreakpoint = createLineBreakpoint(39, typeName);
 		// exception breakpoint
-		IJavaExceptionBreakpoint npe = createExceptionBreakpoint("java.lang.NullPointerException", true, true);		
-		
+		IJavaExceptionBreakpoint npe = createExceptionBreakpoint("java.lang.NullPointerException", true, true);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
@@ -227,7 +227,7 @@
 			IBreakpoint hit = getBreakpoint(thread);
 			assertNotNull("suspended, but not by breakpoint", hit);
 			assertEquals("hit wrong breakpoint", mainBreakpoint, hit);
-			
+
 			// can only do test if the VM supports instance filters
 			if (supportsInstanceBreakpoints(thread)) {
 				// restrict breakpoint in simpleMethod to object 1
@@ -241,15 +241,15 @@
 				IJavaObject object2 = (IJavaObject)var2.getValue();
 				assertNotNull(object1);
 				assertNotNull(object2);
-				
+
 				npe.addInstanceFilter(object1);
-				
+
 				// resume the thread
 				thread= resume(thread);
 				IBreakpoint[] breakpoints = thread.getBreakpoints();
 				assertEquals("should be a breakpoint", 1, breakpoints.length);
 				assertEquals("should be in throwNPE", npe, breakpoints[0]);
-				
+
 				// receiver should be object1
 				frame = (IJavaStackFrame)thread.getTopStackFrame();
 				assertNotNull(frame);
@@ -259,12 +259,12 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * Instance filter on an access watchpoint
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testAccessWatchpoint() throws Exception {
@@ -272,8 +272,8 @@
 		// main
 		IJavaLineBreakpoint mainBreakpoint = createLineBreakpoint(39, typeName);
 		// exception breakpoint
-		IJavaWatchpoint watchpoint = createWatchpoint(typeName, "field", true, false);		
-		
+		IJavaWatchpoint watchpoint = createWatchpoint(typeName, "field", true, false);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
@@ -281,7 +281,7 @@
 			IBreakpoint hit = getBreakpoint(thread);
 			assertNotNull("suspended, but not by breakpoint", hit);
 			assertEquals("hit wrong breakpoint", mainBreakpoint, hit);
-			
+
 			// can only do test if the VM supports instance filters
 			if (supportsInstanceBreakpoints(thread)) {
 				// restrict breakpoint in simpleMethod to object 1
@@ -295,20 +295,20 @@
 				IJavaObject object2 = (IJavaObject)var2.getValue();
 				assertNotNull(object1);
 				assertNotNull(object2);
-				
+
 				watchpoint.addInstanceFilter(object1);
-				
+
 				// resume the thread
 				thread= resume(thread);
 				IBreakpoint[] breakpoints = thread.getBreakpoints();
 				assertEquals("should be a breakpoint", 1, breakpoints.length);
 				assertEquals("should be in access method", watchpoint, breakpoints[0]);
-				
-				// in "accessField" 
+
+				// in "accessField"
 				frame = (IJavaStackFrame)thread.getTopStackFrame();
 				assertNotNull(frame);
 				assertEquals("should be in access method", "accessField", frame.getMethodName());
-				
+
 				// receiver should be object1
 				IJavaObject receiver = frame.getThis();
 				assertEquals("should be in object1 context", object1, receiver);
@@ -316,12 +316,12 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * Instance filter on an modification watchpoint
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testModificationWatchpoint() throws Exception {
@@ -331,8 +331,8 @@
 		// exception breakpoint
 		IJavaWatchpoint watchpoint = createWatchpoint(typeName, "field", false, true);
 		// disable to avoid variable initializer
-		watchpoint.setEnabled(false);		
-		
+		watchpoint.setEnabled(false);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
@@ -340,7 +340,7 @@
 			IBreakpoint hit = getBreakpoint(thread);
 			assertNotNull("suspended, but not by breakpoint", hit);
 			assertEquals("hit wrong breakpoint", mainBreakpoint, hit);
-			
+
 			// can only do test if the VM supports instance filters
 			if (supportsInstanceBreakpoints(thread)) {
 				// restrict breakpoint in simpleMethod to object 1
@@ -354,23 +354,23 @@
 				IJavaObject object2 = (IJavaObject)var2.getValue();
 				assertNotNull(object1);
 				assertNotNull(object2);
-				
+
 				watchpoint.addInstanceFilter(object1);
-				
+
 				// enable watchpoint
 				watchpoint.setEnabled(true);
-				
+
 				// resume the thread
 				thread= resume(thread);
 				IBreakpoint[] breakpoints = thread.getBreakpoints();
 				assertEquals("should be a breakpoint", 1, breakpoints.length);
 				assertEquals("should be in modification method", watchpoint, breakpoints[0]);
-				
-				// in "modifyField" 
+
+				// in "modifyField"
 				frame = (IJavaStackFrame)thread.getTopStackFrame();
 				assertNotNull(frame);
 				assertEquals("should be in modify method", "modifyField", frame.getMethodName());
-				
+
 				// receiver should be object1
 				IJavaObject receiver = frame.getThis();
 				assertEquals("should be in object1 context", object1, receiver);
@@ -378,17 +378,17 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}		
-	
+		}
+	}
+
 	/**
 	 * Returns whether the associated target supports instance breakpoints
-	 * 
+	 *
 	 * @param thread
 	 * @return boolean
 	 */
 	private boolean supportsInstanceBreakpoints(IJavaThread thread) {
 		IJavaDebugTarget target = (IJavaDebugTarget)thread.getDebugTarget();
 		return target.supportsInstanceBreakpoints();
-	}	
+	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/InstanceVariableTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/InstanceVariableTests.java
index f538fb1..b4bf175 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/InstanceVariableTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/InstanceVariableTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -25,16 +25,16 @@
 import org.eclipse.jdt.debug.tests.AbstractDebugTest;
 
 public class InstanceVariableTests extends AbstractDebugTest {
-	
+
 	public InstanceVariableTests(String name) {
 		super(name);
 	}
 
 	public void testGetField() throws Exception {
 		String typeName = "InstanceVariablesTests";
-		
-		ILineBreakpoint bp = createLineBreakpoint(30, typeName);		
-		
+
+		ILineBreakpoint bp = createLineBreakpoint(30, typeName);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -42,42 +42,42 @@
 			IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
 			IVariable ivt = findVariable(frame, "ivt");
 			assertNotNull("Could not find variable 'ivt'", ivt);
-			
+
 			// retrieve an instance var
 			IJavaObject value = (IJavaObject)ivt.getValue();
 			assertNotNull(value);
 			IJavaVariable pubStr = value.getField("pubStr", false);
 			assertNotNull(pubStr);
 			assertEquals("value should be 'redefined public'", pubStr.getValue().getValueString(), "redefined public");
-			
+
 			// retrieve an instance var in superclass
 			IJavaVariable privStr = value.getField("privStr", false);
 			assertNotNull(privStr);
-			assertEquals("value should be 'private'", privStr.getValue().getValueString(), "private");			
-			
+			assertEquals("value should be 'private'", privStr.getValue().getValueString(), "private");
+
 			// retrieve an instance var in super class with same name
 			pubStr = value.getField("pubStr", true);
 			assertNotNull(pubStr);
-			assertEquals("value should be 'public'", pubStr.getValue().getValueString(), "public");			
+			assertEquals("value should be 'public'", pubStr.getValue().getValueString(), "public");
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
 
 	public void testGetDeclaredFieldNames() throws Exception {
 		String typeName = "InstanceVariablesTests";
-		
-		ILineBreakpoint bp = createLineBreakpoint(28, typeName);		
-		
+
+		ILineBreakpoint bp = createLineBreakpoint(28, typeName);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
-	
+
 			IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
 			IJavaObject object = frame.getThis();
 			assertNotNull("'this' is null", object);
-			
+
 			String[] names = ((IJavaReferenceType)object.getJavaType()).getDeclaredFieldNames();
 			assertEquals("Should be 7 declared fields", 7, names.length);
 			List<String> fields = new ArrayList<String>();
@@ -95,14 +95,14 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	public void testGetDeclaredFieldNamesInSubclass() throws Exception {
 		String typeName = "InstanceVariablesTests";
-		
-		ILineBreakpoint bp = createLineBreakpoint(30, typeName);		
-		
+
+		ILineBreakpoint bp = createLineBreakpoint(30, typeName);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -111,7 +111,7 @@
 			IVariable ivt = findVariable(frame, "ivt");
 			assertNotNull("Could not find variable 'ivt'", ivt);
 			IJavaObject object = (IJavaObject)ivt.getValue();
-			
+
 			String[] names = ((IJavaReferenceType)object.getJavaType()).getDeclaredFieldNames();
 			assertEquals("Should be 3 declared fields", 3, names.length);
 			List<String> fields = new ArrayList<String>();
@@ -125,14 +125,14 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	public void testGetAllFieldNamesInSubclass() throws Exception {
 		String typeName = "InstanceVariablesTests";
-		
-		ILineBreakpoint bp = createLineBreakpoint(30, typeName);		
-		
+
+		ILineBreakpoint bp = createLineBreakpoint(30, typeName);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -141,21 +141,21 @@
 			IVariable ivt = findVariable(frame, "ivt");
 			assertNotNull("Could not find variable 'ivt'", ivt);
 			IJavaObject object = (IJavaObject)ivt.getValue();
-			
+
 			String[] names = ((IJavaReferenceType)object.getJavaType()).getAllFieldNames();
 			assertTrue("Should be at least 10 fields", names.length >= 10);
 			// note: can be > 10 if Object defines any inst vars (depends on class libs)
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}		
-	
+		}
+	}
+
 	public void testEvaluationAssignments() throws Exception {
 		String typeName = "InstanceVariablesTests";
-		
-		ILineBreakpoint bp = createLineBreakpoint(28, typeName);		
-		
+
+		ILineBreakpoint bp = createLineBreakpoint(28, typeName);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -164,11 +164,11 @@
 			IVariable pubStr = findVariable(frame, "pubStr");
 			assertNotNull("Could not find variable 'pubStr'", pubStr);
 			assertEquals("'pubStr' value should be 'public'", "public", pubStr.getValue().getValueString());
-			
-			evaluate("pubStr = \"hello\";", frame);			
+
+			evaluate("pubStr = \"hello\";", frame);
 			// the value should have changed
 			assertEquals("'pubStr' value should be 'hello'", "hello", pubStr.getValue().getValueString());
-			
+
 			evaluate("pubStr = null;", frame);
 			// the value should have changed
 			assertEquals("'pubStr' value should be 'null'", ((IJavaDebugTarget)frame.getDebugTarget()).nullValue(), pubStr.getValue());
@@ -176,14 +176,14 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	public void testValueHasChanged() throws Exception {
 		String typeName = "VariableChanges";
-		
-		ILineBreakpoint bp = createLineBreakpoint(21, typeName);		
-		
+
+		ILineBreakpoint bp = createLineBreakpoint(21, typeName);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -191,27 +191,27 @@
 			IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
 			IVariable count = findVariable(frame, "count");
 			IVariable i = findVariable(frame, "i");
-			
+
 			assertNotNull("could not find variable 'count'", count);
 			assertNotNull("could not find variable 'i'", i);
-			
+
 			// on first suspend, change should be false
 			count.getValue();
 			i.getValue();
 			assertFalse("count should not have changed", count.hasValueChanged());
 			assertFalse("i should not have changed", i.hasValueChanged());
-			
+
 			// after a step over "count++" it should have changed
 			stepOver(frame);
-			
+
 			// count should have changed, and i should not
 			count.getValue();
-			i.getValue();			
+			i.getValue();
 			assertTrue("count should have changed value", count.hasValueChanged());
 			assertFalse("i should still be the same", i.hasValueChanged());
-			
+
 			stepOver(frame);
-			
+
 			// now count should be the same, and i should have changed
 			count.getValue();
 			i.getValue();
@@ -221,6 +221,6 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}				
+		}
 	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/InstructionPointerTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/InstructionPointerTests.java
index 959194f..86fae60 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/InstructionPointerTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/InstructionPointerTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/JDWPTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/JDWPTests.java
index 0ac88e9..4f35bf7 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/JDWPTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/JDWPTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -26,7 +26,7 @@
 
 /**
  * Tests raw JDWP commands sent to a target.
- * 
+ *
  * @since 3.3
  */
 public class JDWPTests extends AbstractDebugTest {
@@ -41,13 +41,13 @@
 
 	/**
 	 * Sends a request to the VirtualMachine Command Set (byte 1) to ask for
-	 * the VM Capabilities (byte 12) 
+	 * the VM Capabilities (byte 12)
 	 * @throws Exception
 	 */
 	public void testCapabilities() throws Exception {
 		String typeName = "Breakpoints";
 		ILineBreakpoint bp = createLineBreakpoint(52, typeName);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -57,29 +57,29 @@
 			// VM capabilities
 			byte[] reply = jdiTarget.sendCommand((byte)1, (byte)12, null);
 			JdwpReplyPacket packet = (JdwpReplyPacket) JdwpPacket.build(reply);
-			
+
 			assertEquals("Unexpected error code in reply packet", 0, packet.errorCode());
 			DataInputStream replyData = packet.dataInStream();
 			// should be 7 booleans in reply
 			for (int i = 0; i < 7; i++) {
 				replyData.readBoolean();
 			}
-			assertEquals("Should be no available bytes", 0, replyData.available());			
+			assertEquals("Should be no available bytes", 0, replyData.available());
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}				
+		}
 	}
-	
+
 	/**
-	 * Sends a request to the VirtualMachine Command Set (byte 1) to ask 
+	 * Sends a request to the VirtualMachine Command Set (byte 1) to ask
 	 * for ClassesBySignature (byte 2)
 	 * @throws Exception
 	 */
 	public void testClassesBySingature() throws Exception {
 		String typeName = "Breakpoints";
 		ILineBreakpoint bp = createLineBreakpoint(52, typeName);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -95,11 +95,11 @@
 			assertEquals("Unexpected error code in reply packet", 0, packet.errorCode());
 			DataInputStream replyData = packet.dataInStream();
 			// should be 1 type in reply
-			assertEquals("Wrong number of types", 1, replyData.readInt());			
+			assertEquals("Wrong number of types", 1, replyData.readInt());
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}				
-	}	
-	
+		}
+	}
+
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/JavaDebugTargetTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/JavaDebugTargetTests.java
index 463f1ca..e45d6e0 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/JavaDebugTargetTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/JavaDebugTargetTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -16,7 +16,7 @@
 
 /**
  * Tests IJavaDebugTarget API
- * 
+ *
  * @since 3.4
  */
 public class JavaDebugTargetTests extends AbstractDebugTest {
@@ -28,7 +28,7 @@
 	public void testGetVMName() throws Exception {
 		String typeName = "Breakpoints";
 		createLineBreakpoint(52, typeName);
-		
+
 		IJavaThread thread= null;
 		try {
 			// do not register launch - see bug 130911
@@ -42,11 +42,11 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	public void testGetVersion() throws Exception {
 		String typeName = "Breakpoints";
 		createLineBreakpoint(52, typeName);
-		
+
 		IJavaThread thread= null;
 		try {
 			// do not register launch - see bug 130911
@@ -59,6 +59,6 @@
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 		}
-	}	
-	
+	}
+
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/JavaLibraryPathTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/JavaLibraryPathTests.java
index 3460a65..3a63a1c 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/JavaLibraryPathTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/JavaLibraryPathTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -41,15 +41,15 @@
 
 /**
  * Tests for native classpath entries.
- * 
+ *
  * @since 3.1
  */
 public class JavaLibraryPathTests extends AbstractDebugTest {
-	
+
 	public JavaLibraryPathTests(String name) {
 		super(name);
 	}
-	
+
 	/**
 	 * Create test projects "PathTests1/2/3"
 	 */
@@ -59,14 +59,14 @@
 		createProject("PathTests1");
 		createProject("PathTests2");
 	}
-	
+
 	@Override
 	protected void tearDown() throws Exception {
-		super.tearDown();
 		deleteProject("PathTests1");
 		deleteProject("PathTests2");
+		super.tearDown();
 	}
-	
+
 	private IJavaProject createProject(String name) throws Exception {
 		IProject pro = ResourcesPlugin.getWorkspace().getRoot().getProject(name);
 		if (pro.exists()) {
@@ -75,14 +75,14 @@
 		IJavaProject project = JavaProjectHelper.createJavaProject(name, "bin");
 		return project;
 	}
-	
+
 	private void deleteProject(String name) throws Exception {
 		IProject pro = ResourcesPlugin.getWorkspace().getRoot().getProject(name);
 		if (pro.exists()) {
 			pro.delete(true, true, null);
 		}
 	}
-	
+
 	private void addToClasspath(IJavaProject jproject, IClasspathEntry cpe) throws JavaModelException {
 		IClasspathEntry[] oldEntries= jproject.getRawClasspath();
 		for (int i= 0; i < oldEntries.length; i++) {
@@ -95,8 +95,8 @@
 		System.arraycopy(oldEntries, 0, newEntries, 0, nEntries);
 		newEntries[nEntries]= cpe;
 		jproject.setRawClasspath(newEntries, null);
-	}	
-	
+	}
+
 	public void testRequiredProjectExplicitPath() throws Exception {
 		// add required project with one java library path entry
 		IPath path = ResourcesPlugin.getWorkspace().getRoot().getLocation();
@@ -105,12 +105,12 @@
 		addToClasspath(getJavaProject("PathTests2"), entry);
 		entry = JavaCore.newProjectEntry(new Path("PathTests2").makeAbsolute());
 		addToClasspath(getJavaProject("PathTests1"), entry);
-		
+
 		String[] strings = JavaRuntime.computeJavaLibraryPath(getJavaProject("PathTests1"), true);
 		assertEquals("Wrong number of entries", 1, strings.length);
 		assertEquals("Wrong entry", path.toFile().getCanonicalPath(), new File(strings[0]).getCanonicalPath());
 	}
-	
+
 	public void testVMArgsForRequiredProjectExplicitPath() throws Exception {
 		// add required project with one java library path entry
 		IPath path = ResourcesPlugin.getWorkspace().getRoot().getLocation();
@@ -119,7 +119,7 @@
 		addToClasspath(getJavaProject("PathTests2"), entry);
 		entry = JavaCore.newProjectEntry(new Path("PathTests2").makeAbsolute());
 		addToClasspath(getJavaProject("PathTests1"), entry);
-		
+
 		ILaunchManager manager = DebugPlugin.getDefault().getLaunchManager();
 		ILaunchConfigurationType type = manager.getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_JAVA_APPLICATION);
 		ILaunchConfigurationWorkingCopy workingCopy = type.newInstance(null, "testVMArgsForRequiredProjectExplicitPath");
@@ -131,8 +131,8 @@
 		String arguments = launcher.getVMArguments(workingCopy);
 		String expect = "-Djava.library.path=\"" + path.toFile().getAbsolutePath() + "\"";
 		assertTrue("wrong VM args", arguments.indexOf(expect) >= 0);
-	}	
-	
+	}
+
 	public void testMultiVMArgsForRequiredProjectExplicitPath() throws Exception {
 		// add required project with one java library path entry
 		IPath path = ResourcesPlugin.getWorkspace().getRoot().getLocation();
@@ -142,7 +142,7 @@
 		addToClasspath(getJavaProject("PathTests2"), entry);
 		entry = JavaCore.newProjectEntry(new Path("PathTests2").makeAbsolute());
 		addToClasspath(getJavaProject("PathTests1"), entry);
-		
+
 		ILaunchManager manager = DebugPlugin.getDefault().getLaunchManager();
 		ILaunchConfigurationType type = manager.getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_JAVA_APPLICATION);
 		ILaunchConfigurationWorkingCopy workingCopy = type.newInstance(null, "testVMArgsForRequiredProjectExplicitPath");
@@ -154,7 +154,7 @@
 		String arguments = launcher.getVMArguments(workingCopy);
 		String expect = "-Djava.library.path=\"" + path.toFile().getAbsolutePath() + File.pathSeparator + path2.toFile().getAbsolutePath() + "\"";
 		assertTrue("wrong VM args", arguments.indexOf(expect) >= 0);
-	}		
+	}
 
 	public void testNoRequiredProjectExplicitPath() throws Exception {
 		// add required project with one java library path entry
@@ -164,11 +164,11 @@
 		addToClasspath(getJavaProject("PathTests2"), entry);
 		entry = JavaCore.newProjectEntry(new Path("PathTests2").makeAbsolute());
 		addToClasspath(getJavaProject("PathTests1"), entry);
-		
+
 		String[] strings = JavaRuntime.computeJavaLibraryPath(getJavaProject("PathTests1"), false);
 		assertEquals("Wrong number of entries", 0, strings.length);
 	}
-	
+
 	public void testStringVariablePath() throws Exception {
 		//add A.jar
 		File jar = JavaTestPlugin.getDefault().getFileInPlugin(new Path("testjars" + File.separator + "A.jar"));
@@ -182,7 +182,7 @@
 			IClasspathAttribute attribute = JavaRuntime.newLibraryPathsAttribute(new String[]{path});
 			IClasspathEntry entry = JavaCore.newLibraryEntry(new Path(jar.getAbsolutePath()), null, null, new IAccessRule[0], new IClasspathAttribute[]{attribute}, false);
 			addToClasspath(getJavaProject("PathTests1"), entry);
-		
+
 			String[] strings = JavaRuntime.computeJavaLibraryPath(getJavaProject("PathTests1"), false);
 			assertEquals("Wrong number of entries", 1, strings.length);
 			assertEquals("Wrong entry", jar.getCanonicalFile().getCanonicalPath(), new File(strings[0]).getCanonicalPath());
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/LineTrackerTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/LineTrackerTests.java
index d0f3693..bbffc19 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/LineTrackerTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/LineTrackerTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -38,47 +38,47 @@
  * Tests console line tracker.
  */
 public class LineTrackerTests extends AbstractDebugTest implements IConsoleLineTrackerExtension {
-	
+
 	protected String[] fLines = new String[] {
 		"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"
 	};
-	
+
 	protected IJavaDebugTarget fTarget;
-	
+
 	protected List<String> fLinesRead = new ArrayList<String>();
-	
+
 	protected boolean fStarted = false;
-	
+
 	protected boolean fStopped = false;
-	
+
 	protected IConsole fConsole = null;
-	
+
 	protected Object fLock = new Object();
-	
+
 	public LineTrackerTests(String name) {
 		super(name);
 	}
-	
+
     @Override
 	protected void setUp() throws Exception {
         super.setUp();
         fStarted = false;
         fStopped = false;
     }
-    
+
     @Override
 	protected void tearDown() throws Exception {
-        super.tearDown();
         // delete references and gc to free memory.
         fConsole = null;
         fLines = null;
         fLinesRead.clear();
         fLinesRead = null;
-        
+
         System.gc();
-    }   
-    
-    
+		super.tearDown();
+    }
+
+
 	public void testSimpleLineCounter() throws Exception {
 		ConsoleLineTracker.setDelegate(this);
 		fTarget = null;
@@ -95,15 +95,15 @@
 			// there are 10 lines and one "empty line" (i.e. the last "new line")
 			assertEquals("Wrong number of lines output", 11, fLinesRead.size());
 			for (int i = 0; i < 10; i++) {
-				assertEquals("Line " + i + " not equal", fLines[i], fLinesRead.get(i));			
+				assertEquals("Line " + i + " not equal", fLines[i], fLinesRead.get(i));
 			}
 			assertEquals("Should be an empty last line", IInternalDebugCoreConstants.EMPTY_STRING, fLinesRead.get(10));
 		} finally {
 			ConsoleLineTracker.setDelegate(null);
 			terminateAndRemove(fTarget);
 		}
-	} 
-	
+	}
+
 	/**
 	 * This program prints the final line without a new line
 	 * @throws Exception
@@ -123,17 +123,17 @@
 			assertTrue("Did not receive 'stopped' notification", fStopped);
 			assertEquals("Wrong number of lines", 10, fLinesRead.size());
 			for (int i = 0; i < 10; i++) {
-				assertEquals("Line " + i + " not equal", fLines[i], fLinesRead.get(i));			
+				assertEquals("Line " + i + " not equal", fLines[i], fLinesRead.get(i));
 			}
 		} finally {
 			ConsoleLineTracker.setDelegate(null);
 			terminateAndRemove(fTarget);
 		}
-	} 
-	
+	}
+
 	/**
 	 * Test 10,000 lines of output.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testFlood() throws Exception {
@@ -143,7 +143,7 @@
 			ILaunchConfiguration config = getLaunchConfiguration("FloodConsole");
 			assertNotNull("Could not locate launch configuration", config);
 			launch = config.launch(ILaunchManager.RUN_MODE, null);
-			
+
 			synchronized (fLock) {
 			    if (!fStopped) {
 			        fLock.wait(480000);
@@ -158,8 +158,8 @@
 			launch.getProcesses()[0].terminate();
 			DebugPlugin.getDefault().getLaunchManager().removeLaunch(launch);
 		}
-	} 	
-	
+	}
+
 	public void testHyperLink() throws Exception {
 	    try {
 			ConsoleLineTracker.setDelegate(this);
@@ -212,7 +212,7 @@
 			fLock.notifyAll();
         }
 	}
-	
+
 	/**
 	 * Tests that stack traces appear with hyperlinks
 	 */
@@ -249,9 +249,9 @@
 			ConsoleLineTracker.setDelegate(null);
 			jdiUIPreferences.setValue(IJDIPreferencesConstants.PREF_SUSPEND_ON_UNCAUGHT_EXCEPTIONS, suspendOnException);
 			terminateAndRemove(fTarget);
-		}	    
+		}
 	}
-	
+
 	public void testStringConcatenation() throws Exception {
 	    ConsoleLineTracker.setDelegate(this);
 	    String typeName = "PrintConcatenation";
@@ -275,7 +275,7 @@
 	        terminateAndRemove(fTarget);
 	    }
 	}
-	
+
 	public void testIntConcatenation() throws Exception {
 	    ConsoleLineTracker.setDelegate(this);
 	    String typeName = "PrintConcatenation";
@@ -299,7 +299,7 @@
 	        terminateAndRemove(fTarget);
 	    }
 	}
-	
+
 	private void dumpOnError(int expectedLines) {
         if (fLinesRead.size() != expectedLines) {
 	    	Iterator<String> lines = fLinesRead.iterator();
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/LiteralTests17.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/LiteralTests17.java
index 9aa129a..8501b07 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/LiteralTests17.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/LiteralTests17.java
@@ -20,13 +20,13 @@
 
 /**
  * Tests that the new forms allowed in literals in Java 7 work as expected
- * 
+ *
  * @since 3.1.200
  */
 public class LiteralTests17 extends AbstractDebugTest {
 
 	public static final String LITERAL_TYPE_NAME = "Literals17";
-	
+
 	/**
 	 * Constructor
 	 */
@@ -41,7 +41,7 @@
 	protected IJavaProject getProjectContext() {
 		return get17Project();
 	}
-	
+
 	/**
 	 * Perform the evaluation on the given snippet and return the value
 	 * @param snippet
@@ -56,19 +56,19 @@
 			IEvaluationResult result = evaluate(snippet, thread);
 			assertNotNull("There must be an evaluation result", result);
 			assertTrue("There must be no errors in the result", !result.hasErrors());
-			return result.getValue(); 
+			return result.getValue();
 		}
 		finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
-	 * Runs evaluations on the two given snippets returning the value from the second snippet. This method allows us to 
+	 * Runs evaluations on the two given snippets returning the value from the second snippet. This method allows us to
 	 * run two snippets on the same thread where the second snippet may or may not depend on the state change from the
 	 * first snippet
-	 * 
+	 *
 	 * @param snippet
 	 * @param snippet2
 	 * @return the {@link IEvaluationResult}
@@ -85,17 +85,17 @@
 			result = evaluate(snippet2, thread);
 			assertNotNull("There must be an evaluation result", result);
 			assertTrue("There must be no errors in the result", !result.hasErrors());
-			return result.getValue(); 
+			return result.getValue();
 		}
 		finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * Tests that an addition evaluation with an int with underscores in it works
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testUnderscoreIntEval() throws Exception {
@@ -105,10 +105,10 @@
 		JDIPrimitiveValue val = (JDIPrimitiveValue) value;
 		assertTrue("The new integer value should be 11", val.getIntValue() == 11);
 	}
-	
+
 	/**
 	 * Tests that we can assign a variable value to an int with underscores
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testUnderscoreIntVarAssignment() throws Exception {
@@ -118,10 +118,10 @@
 		JDIPrimitiveValue val = (JDIPrimitiveValue) value;
 		assertTrue("The new integer value should be 12", val.getIntValue() == 12);
 	}
-	
+
 	/**
 	 * Tests that an addition evaluation with a short with underscores in it works
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testUnderscoreShortEval() throws Exception {
@@ -131,10 +131,10 @@
 		JDIPrimitiveValue val = (JDIPrimitiveValue) value;
 		assertTrue("The new short value should be 11", val.getShortValue() == 11);
 	}
-	
+
 	/**
 	 * Tests that we can assign a variable value to a short with underscores
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testUnderscoreShortVarAssignment() throws Exception {
@@ -144,10 +144,10 @@
 		JDIPrimitiveValue val = (JDIPrimitiveValue) value;
 		assertTrue("The new short value should be 12", val.getShortValue() == 12);
 	}
-	
+
 	/**
 	 * Tests that an addition evaluation with a byte with underscores in it works
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testUnderscoreByteEval() throws Exception {
@@ -157,10 +157,10 @@
 		JDIPrimitiveValue val = (JDIPrimitiveValue) value;
 		assertTrue("The new byte value should be 9", val.getByteValue() == 9);
 	}
-	
+
 	/**
 	 * Tests that we can assign a variable value to a short with underscores
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testUnderscoreByteVarAssignment() throws Exception {
@@ -170,10 +170,10 @@
 		JDIPrimitiveValue val = (JDIPrimitiveValue) value;
 		assertTrue("The new byte value should be 12", val.getByteValue() == 12);
 	}
-	
+
 	/**
 	 * Tests that an addition evaluation with a long with underscores in it works
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testUnderscoreLongEval() throws Exception {
@@ -183,10 +183,10 @@
 		JDIPrimitiveValue val = (JDIPrimitiveValue) value;
 		assertTrue("The new long value should be 11", val.getLongValue() == 11);
 	}
-	
+
 	/**
 	 * Tests that we can assign a variable value to a long with underscores
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testUnderscoreLongVarAssignment() throws Exception {
@@ -196,10 +196,10 @@
 		JDIPrimitiveValue val = (JDIPrimitiveValue) value;
 		assertTrue("The new long value should be 12", val.getLongValue() == 12);
 	}
-	
+
 	/**
 	 * Tests that an addition evaluation with a float with underscores in it works
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testUnderscoreFloatEval() throws Exception {
@@ -209,10 +209,10 @@
 		JDIPrimitiveValue val = (JDIPrimitiveValue) value;
 		assertTrue("The new float value should be 4.1415", val.getFloatValue() == 4.1415F);
 	}
-	
+
 	/**
 	 * Tests that we can assign a variable value to a float with underscores
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testUnderscoreFloatVarAssignment() throws Exception {
@@ -222,10 +222,10 @@
 		JDIPrimitiveValue val = (JDIPrimitiveValue) value;
 		assertTrue("The new float value should be 7.1415", val.getFloatValue() == 7.1415F);
 	}
-	
+
 	/**
 	 * Tests that an addition evaluation with a double with underscores in it works
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testUnderscoreDoubleEval() throws Exception {
@@ -235,10 +235,10 @@
 		JDIPrimitiveValue val = (JDIPrimitiveValue) value;
 		assertTrue("The new double value should be 11.556", val.getDoubleValue() == 11.556D);
 	}
-	
+
 	/**
 	 * Tests that we can assign a variable value to a double with underscores
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testUnderscoreDoubleVarAssignment() throws Exception {
@@ -248,10 +248,10 @@
 		JDIPrimitiveValue val = (JDIPrimitiveValue) value;
 		assertTrue("The new double value should be 16.556", val.getDoubleValue() == 16.555999999999997D);
 	}
-	
+
 	/**
 	 * Tests that an addition evaluation with a binary literal with underscores in it works
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testUnderscoreBinaryEval() throws Exception {
@@ -261,10 +261,10 @@
 		JDIPrimitiveValue val = (JDIPrimitiveValue) value;
 		assertTrue("The new integer value should be 9", val.getIntValue() == 9);
 	}
-	
+
 	/**
 	 * Tests that we can assign a variable value to a binary literal with underscores
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testUnderscoreBinaryVarAssignment() throws Exception {
@@ -274,10 +274,10 @@
 		JDIPrimitiveValue val = (JDIPrimitiveValue) value;
 		assertTrue("The new integer value should be 17", val.getIntValue() == 17);
 	}
-	
+
 	/**
 	 * Tests that an addition evaluation with a hex with underscores in it works
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testUnderscoreHexEval() throws Exception {
@@ -287,10 +287,10 @@
 		JDIPrimitiveValue val = (JDIPrimitiveValue) value;
 		assertTrue("The new integer value should be 17", val.getIntValue() == 17);
 	}
-	
+
 	/**
 	 * Tests that we can assign a variable value to a hex with underscores
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testUnderscoreHexVarAssignment() throws Exception {
@@ -300,10 +300,10 @@
 		JDIPrimitiveValue val = (JDIPrimitiveValue) value;
 		assertTrue("The new integer value should be 257", val.getIntValue() == 257);
 	}
-	
+
 	/**
 	 * Tests that an addition evaluation with an octal with underscores in it works
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testUnderscoreOctEval() throws Exception {
@@ -313,10 +313,10 @@
 		JDIPrimitiveValue val = (JDIPrimitiveValue) value;
 		assertTrue("The new integer value should be 9", val.getIntValue() == 9);
 	}
-	
+
 	/**
 	 * Tests that we can assign a variable value to an octal with underscores
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testUnderscoreOctVarAssignment() throws Exception {
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/LocalVariableTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/LocalVariableTests.java
index c8a2477..952e9cc 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/LocalVariableTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/LocalVariableTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -26,9 +26,9 @@
 import org.eclipse.jdt.internal.debug.core.model.JDINullValue;
 
 public class LocalVariableTests extends AbstractDebugTest implements IValueDetailListener {
-	
+
 	String fDetail = null;
-	
+
 	public LocalVariableTests(String name) {
 		super(name);
 	}
@@ -40,8 +40,8 @@
 	 */
 	public void testFindConflicting1() throws Exception {
 		String typeName = "LocalVariableTests2";
-		ILineBreakpoint bp = createLineBreakpoint(21, typeName);		
-		
+		ILineBreakpoint bp = createLineBreakpoint(21, typeName);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -56,9 +56,9 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * Tests if the correct parameter variable is found when it shadows a field variable
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=384458
@@ -66,8 +66,8 @@
 	 */
 	public void testFindConflicting2() throws Exception {
 		String typeName = "LocalVariableTests2";
-		ILineBreakpoint bp = createLineBreakpoint(25, typeName);		
-		
+		ILineBreakpoint bp = createLineBreakpoint(25, typeName);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -79,14 +79,14 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	public void testSimpleVisibility() throws Exception {
 		String typeName = "LocalVariablesTests";
-		
-		ILineBreakpoint bp = createLineBreakpoint(18, typeName);		
-		
+
+		ILineBreakpoint bp = createLineBreakpoint(18, typeName);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -94,37 +94,37 @@
 			IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
 			IJavaVariable[] vars = frame.getLocalVariables();
 			assertEquals("Should be no visible locals", 0, vars.length);
-			
+
 			stepOver(frame);
 			frame = (IJavaStackFrame)thread.getTopStackFrame();
 			stepOver(frame);
 			frame = (IJavaStackFrame)thread.getTopStackFrame();
-			
+
 			vars = frame.getLocalVariables();
-			assertEquals("Should be one visible local", 1, vars.length);			
+			assertEquals("Should be one visible local", 1, vars.length);
 			assertEquals("Visible var should be 'i1'", "i1", vars[0].getName());
-			
+
 			stepOver(frame);
 			frame = (IJavaStackFrame)thread.getTopStackFrame();
 			stepOver(frame);
 			frame = (IJavaStackFrame)thread.getTopStackFrame();
-			
+
 			vars = frame.getLocalVariables();
-			assertEquals("Should be two visible locals", 2, vars.length);			
-			assertEquals("Visible var 1 should be 'i1'", "i1", vars[0].getName());			
+			assertEquals("Should be two visible locals", 2, vars.length);
+			assertEquals("Visible var 1 should be 'i1'", "i1", vars[0].getName());
 			assertEquals("Visible var 2 should be 'i2'", "i2", vars[1].getName());
 
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	public void testEvaluationAssignments() throws Exception {
 		String typeName = "LocalVariablesTests";
-		
-		ILineBreakpoint bp = createLineBreakpoint(22, typeName);		
-		
+
+		ILineBreakpoint bp = createLineBreakpoint(22, typeName);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -134,35 +134,35 @@
 			IVariable i1 = findVariable(frame, "i1");
 			assertNotNull("Could not find variable 'i1'", i1);
 			assertEquals("'i1' value should be '0'", target.newValue(0), i1.getValue());
-			
+
 			IVariable i2 = findVariable(frame, "i2");
 			assertNotNull("Could not find variable 'i2'", i2);
 			assertEquals("'i2' value should be '1'", target.newValue(1), i2.getValue());
-						
-			evaluate("i1 = 73;", frame);			
+
+			evaluate("i1 = 73;", frame);
 			// the value should have changed
 			assertEquals("'i1' value should be '73'", target.newValue(73), i1.getValue());
-			
+
 			evaluate("i2 = i1;", frame);
 			// the value should have changed
 			assertEquals("'i2' value should be '73'", target.newValue(73), i2.getValue());
-			
+
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}		
-	
+		}
+	}
+
 	protected void doArrayDetailTestNonDefPkg(String varName, String expectedDetails) throws Exception {
 		doArrayDetailTest(varName, expectedDetails, "org.eclipse.debug.tests.targets.ArrayDetailTests", 64);
 	}
-	
+
 	protected void doArrayDetailTestDefPkg(String varName, String expectedDetails) throws Exception {
 		doArrayDetailTest(varName, expectedDetails, "ArrayDetailTestsDef", 63);
-	}	
-	
+	}
+
 	protected void doArrayDetailTest(String varName, String expectedDetails, String mainName, int lineNumber) throws Exception {
-		ILineBreakpoint bp = createLineBreakpoint(lineNumber, mainName);		
+		ILineBreakpoint bp = createLineBreakpoint(lineNumber, mainName);
 		IDebugModelPresentation presentation = DebugUITools.newDebugModelPresentation();
 		IJavaThread thread= null;
 		try {
@@ -173,7 +173,7 @@
 			IVariable var = findVariable(frame, varName);
 			assertNotNull("Could not find variable " + varName, var);
 			IValue value = var.getValue();
-			
+
 			synchronized (this) {
 				fDetail = null;
 				presentation.computeDetail(value, this);
@@ -181,13 +181,13 @@
 			}
 			assertNotNull("Details not computed", fDetail);
 			assertEquals(expectedDetails, fDetail);
-			
+
 		} finally {
 			presentation.dispose();
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}	
+		}
+	}
 
 	@Override
 	public void detailComputed(IValue value, String result) {
@@ -195,54 +195,54 @@
 			fDetail = result;
 			notifyAll();
 		}
-		
+
 	}
-	
+
 	public void testStringArrayDetails() throws Exception {
 		doArrayDetailTestNonDefPkg("strings", "[0, 1, 10, 11, 100]");
 	}
-	
+
 	public void testIntArrayDetails() throws Exception {
 		doArrayDetailTestNonDefPkg("primitives", "[0, 1, 2, 3, 4]");
 	}
-	
+
 	public void testTopLevelTypeArrayDetails() throws Exception {
 		doArrayDetailTestNonDefPkg("outers", "[OutermostObject, OutermostObject, OutermostObject, OutermostObject, OutermostObject]");
 	}
-	
+
 	public void testInnerTypeDetails() throws Exception {
 		doArrayDetailTestNonDefPkg("middle", "[anInnerObject, anInnerObject, anInnerObject, anInnerObject, anInnerObject]");
 	}
-	
+
 	public void testNestedInnerTypeDetails() throws Exception {
 		doArrayDetailTestNonDefPkg("inners", "[aSecondInnerObject, aSecondInnerObject, aSecondInnerObject, aSecondInnerObject, aSecondInnerObject]");
 	}
-	
+
 	public void testInterfaceTypeDetails() throws Exception {
 		doArrayDetailTestNonDefPkg("runs", "[Runnable, Runnable, Runnable, Runnable, Runnable]");
 	}
-	
+
 	public void testStringArrayDetailsDefPkg() throws Exception {
 		doArrayDetailTestDefPkg("strings", "[0, 1, 10, 11, 100]");
 	}
-	
+
 	public void testIntArrayDetailsDefPkg() throws Exception {
 		doArrayDetailTestDefPkg("primitives", "[0, 1, 2, 3, 4]");
 	}
-	
+
 	public void testTopLevelTypeArrayDetailsDefPkg() throws Exception {
 		doArrayDetailTestDefPkg("outers", "[OutermostObject, OutermostObject, OutermostObject, OutermostObject, OutermostObject]");
 	}
-	
+
 	public void testInnerTypeDetailsDefPkg() throws Exception {
 		doArrayDetailTestDefPkg("middle", "[anInnerObject, anInnerObject, anInnerObject, anInnerObject, anInnerObject]");
 	}
-	
+
 	public void testNestedInnerTypeDetailsDefPkg() throws Exception {
 		doArrayDetailTestDefPkg("inners", "[aSecondInnerObject, aSecondInnerObject, aSecondInnerObject, aSecondInnerObject, aSecondInnerObject]");
 	}
-	
+
 	public void testInterfaceTypeDetailsDefPkg() throws Exception {
 		doArrayDetailTestDefPkg("runs", "[Runnable, Runnable, Runnable, Runnable, Runnable]");
-	}		
+	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ProcessTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ProcessTests.java
index ff4174e..c0d867e 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ProcessTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ProcessTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -23,7 +23,7 @@
  * Tests IProcess.
  */
 public class ProcessTests extends AbstractDebugTest {
-	
+
 	public ProcessTests(String name) {
 		super(name);
 	}
@@ -31,7 +31,7 @@
 	public void testExitValueNormal() throws Exception {
 		String typeName = "Breakpoints";
 		ILineBreakpoint bp = createLineBreakpoint(43, typeName);
-				
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -51,13 +51,13 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * Tests that an already terminated java.lang.Process behaves properly when
 	 * wrapped in an IProcess.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testAlreadyTerminatedProcess() throws Exception {
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/RemoteJavaApplicationTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/RemoteJavaApplicationTests.java
index c236a33..ed1a22b 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/RemoteJavaApplicationTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/RemoteJavaApplicationTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -39,7 +39,7 @@
  * Tests attaching to a remote java application
  */
 public class RemoteJavaApplicationTests extends AbstractDebugTest {
-	
+
 	public RemoteJavaApplicationTests(String name) {
 		super(name);
 	}
@@ -51,7 +51,7 @@
 	public void testAttach() throws Exception {
 		String typeName = "Breakpoints";
 		createLineBreakpoint(52, typeName);
-		
+
 		// create launch config to launch VM in debug mode waiting for attach
 		ILaunchConfigurationType type = getLaunchManager().getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_JAVA_APPLICATION);
 		ILaunchConfigurationWorkingCopy config = type.newInstance(null, "Launch Remote VM");
@@ -61,9 +61,9 @@
 		// use 'java' instead of 'javaw' to launch tests (javaw is problematic on JDK1.4.2)
 		Map<String, String> map = new HashMap<String, String>(1);
 		map.put(IJavaLaunchConfigurationConstants.ATTR_JAVA_COMMAND, "java");
-		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_INSTALL_TYPE_SPECIFIC_ATTRS_MAP, map);		
+		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_INSTALL_TYPE_SPECIFIC_ATTRS_MAP, map);
 		ILaunchConfiguration launchRemoteVMConfig = config.doSave();
-		
+
 		// create a launch config to do the attach
 		type = getLaunchManager().getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_REMOTE_JAVA_APPLICATION);
 		config = type.newInstance(null, "Remote Breakpoints");
@@ -77,15 +77,15 @@
 		while (iter.hasNext()) {
 			String key = iter.next();
 			Connector.Argument arg = def.get(key);
-			argMap.put(key, arg.toString()); 
+			argMap.put(key, arg.toString());
 		}
-		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_CONNECT_MAP, argMap);		
-		ILaunchConfiguration attachConfig = config.doSave();		
-			
+		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_CONNECT_MAP, argMap);
+		ILaunchConfiguration attachConfig = config.doSave();
+
 		// launch remote VM
 		ILaunch launch = launchRemoteVMConfig.launch(ILaunchManager.RUN_MODE, null);
-		
-		// attach	
+
+		// attach
 		IJavaThread thread= null;
 		try {
 			CoreException exception = null;
@@ -119,9 +119,9 @@
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 			DebugPlugin.getDefault().getLaunchManager().removeLaunch(launch);
-		}		
+		}
 	}
-	
+
 	/**
 	 * Tests a Standard (Socket Listen) VM connection.
 	 * @throws Exception
@@ -129,7 +129,7 @@
 	public void testListen() throws Exception {
 		String typeName = "Breakpoints";
 		createLineBreakpoint(52, typeName);
-		
+
 		// create a launch config to listen for the vm
 		ILaunchConfigurationType type = getLaunchManager().getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_REMOTE_JAVA_APPLICATION);
 		ILaunchConfigurationWorkingCopy config = type.newInstance(null, "Remote Breakpoints");
@@ -143,10 +143,10 @@
 		while (iter.hasNext()) {
 			String key = iter.next();
 			Connector.Argument arg = def.get(key);
-			argMap.put(key, arg.toString()); 
+			argMap.put(key, arg.toString());
 		}
-		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_CONNECT_MAP, argMap);		
-		ILaunchConfiguration listenConfig = config.doSave();		
+		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_CONNECT_MAP, argMap);
+		ILaunchConfiguration listenConfig = config.doSave();
 
 		// create launch config to launch VM that will connect to the waiting listener
 		type = getLaunchManager().getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_JAVA_APPLICATION);
@@ -157,18 +157,18 @@
 		// use 'java' instead of 'javaw' to launch tests (javaw is problematic on JDK1.4.2)
 		Map<String, String> map = new HashMap<String, String>(1);
 		map.put(IJavaLaunchConfigurationConstants.ATTR_JAVA_COMMAND, "java");
-		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_INSTALL_TYPE_SPECIFIC_ATTRS_MAP, map);		
+		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_INSTALL_TYPE_SPECIFIC_ATTRS_MAP, map);
 		ILaunchConfiguration launchRemoteVMConfig = config.doSave();
-				
+
 		ILaunch listenerLaunch = null;
 		IJavaThread thread = null;
-		
-		
+
+
 		try {
-			
+
 			DebugEventWaiter waiter= new DebugElementKindEventDetailWaiter(DebugEvent.MODEL_SPECIFIC, IProcess.class, IJavaLaunchConfigurationConstants.DETAIL_CONFIG_READY_TO_ACCEPT_REMOTE_VM_CONNECTION);
 			waiter.setTimeout(DEFAULT_TIMEOUT);
-			
+
 			IProcess process = null;
 			CoreException exception = null;
 			int attempts = 0;
@@ -188,14 +188,14 @@
 			if (exception != null) {
 				throw exception;
 			}
-			
+
 			assertNotNull("Launch of the not successful", process);
 			listenerLaunch = process.getLaunch();
-			
-			
+
+
 			waiter= new DebugElementKindEventDetailWaiter(DebugEvent.SUSPEND, IJavaThread.class, DebugEvent.BREAKPOINT);
 			waiter.setTimeout(DEFAULT_TIMEOUT);
-			
+
 			exception = null;
 			attempts = 0;
 			connected = false;
@@ -223,8 +223,8 @@
 			int stackLine = thread.getTopStackFrame().getLineNumber();
 			assertTrue("line numbers of breakpoint and stack frame do not match", lineNumber == stackLine);
 			breakpoint.delete();
-			
-			
+
+
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/RuntimeClasspathEntryTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/RuntimeClasspathEntryTests.java
index af0bc8e..7e09c26 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/RuntimeClasspathEntryTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/RuntimeClasspathEntryTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -24,7 +24,7 @@
  * Tests runtime classpath entry creation/restoration.
  */
 public class RuntimeClasspathEntryTests extends AbstractDebugTest {
-	
+
 	public RuntimeClasspathEntryTests(String name) {
 		super(name);
 	}
@@ -32,53 +32,53 @@
 	public void testProjectEntry() throws Exception {
 		IProject project = get14Project().getProject();
 		IRuntimeClasspathEntry entry = JavaRuntime.newProjectRuntimeClasspathEntry(get14Project());
-	
+
 		assertEquals("Paths should be equal", project.getFullPath(), entry.getPath());
 		assertEquals("Resources should be equal", project, entry.getResource());
 		assertEquals("Should be of type project", IRuntimeClasspathEntry.PROJECT, entry.getType());
 		assertEquals("Should be a user entry", IRuntimeClasspathEntry.USER_CLASSES, entry.getClasspathProperty());
-		
+
 		String memento = entry.getMemento();
 		IRuntimeClasspathEntry restored = JavaRuntime.newRuntimeClasspathEntry(memento);
 		assertEquals("Entries should be equal", entry, restored);
 	}
-	
+
 	public void testJRELIBVariableEntry() throws Exception {
 		IClasspathEntry cpe = JavaCore.newVariableEntry(new Path(JavaRuntime.JRELIB_VARIABLE), new Path(JavaRuntime.JRESRC_VARIABLE), new Path(JavaRuntime.JRESRCROOT_VARIABLE));
 
 		IRuntimeClasspathEntry entry = JavaRuntime.newVariableRuntimeClasspathEntry(new Path(JavaRuntime.JRELIB_VARIABLE));
 		entry.setSourceAttachmentPath(cpe.getSourceAttachmentPath());
 		entry.setSourceAttachmentRootPath(cpe.getSourceAttachmentRootPath());
-	
+
 		assertEquals("Paths should be equal", cpe.getPath(), entry.getPath());
 		assertNull("Resource should be null", entry.getResource());
 		assertEquals("Should be of type varirable", IRuntimeClasspathEntry.VARIABLE, entry.getType());
 		assertEquals("Should be a standard entry", IRuntimeClasspathEntry.STANDARD_CLASSES, entry.getClasspathProperty());
-		
+
 		String memento = entry.getMemento();
 		IRuntimeClasspathEntry restored = JavaRuntime.newRuntimeClasspathEntry(memento);
 		assertEquals("Entries should be equal", entry, restored);
-		
+
 		IVMInstall vm = JavaRuntime.getDefaultVMInstall();
 		LibraryLocation[] libs = vm.getLibraryLocations();
 		if (libs == null) {
 			libs = vm.getVMInstallType().getDefaultLibraryLocations(vm.getInstallLocation());
 		}
 		assertTrue("there is at least one system lib", libs.length >= 1);
-		
-	}	
-	
+
+	}
+
 	/**
 	 * Tests that a project can be launched if it contains the JRE_CONTAINER variable
 	 * instead of JRE_LIB
-	 * 
+	 *
 	 * XXX: test waiting for bug fix in JCORE - unable to bind container if there
 	 * is no corresponding classpath entry.
 	 *//*
 	public void testJREContainerEntry() throws Exception {
 		ILaunchConfiguration lc = getLaunchConfiguration("Breakpoints");
 		ILaunchConfigurationWorkingCopy wc = lc.copy("Breakpoints_JRE_CONTAINER");
-		
+
 		IRuntimeClasspathEntry[] cp = JavaRuntime.getClasspathProvider(lc).computeUnresolvedClasspath(lc);
 		IRuntimeClasspathEntry removed = null;
 		List entries = new ArrayList(cp.length);
@@ -86,16 +86,16 @@
 		for (int i = 0; i < cp.length; i++) {
 			if (cp[i].getType() == IRuntimeClasspathEntry.VARIABLE) {
 				removed = cp[i];
-				cp[i] = JavaRuntime.newRuntimeContainerClasspathEntry(new Path(JavaRuntime.JRE_CONTAINER), IRuntimeClasspathEntry.STANDARD_CLASSES);	
+				cp[i] = JavaRuntime.newRuntimeContainerClasspathEntry(new Path(JavaRuntime.JRE_CONTAINER), IRuntimeClasspathEntry.STANDARD_CLASSES);
 			}
 			entries.add(cp[i].getMemento());
 		}
-		
+
 		assertNotNull("Did not replace entry", removed);
 		wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_DEFAULT_CLASSPATH, false);
 		wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_CLASSPATH, entries);
 		lc = wc.doSave();
-		
+
 		createLineBreakpoint(52, "Breakpoints");
 		IJavaThread thread= null;
 		try {
@@ -106,22 +106,22 @@
 			removeAllBreakpoints();
 		}
 	}	*/
-	
+
 	public void testJREContainerEquality() throws Exception {
 		IRuntimeClasspathEntry entry1 = JavaRuntime.newRuntimeContainerClasspathEntry(new Path(JavaRuntime.JRE_CONTAINER), IRuntimeClasspathEntry.STANDARD_CLASSES, get14Project());
 		IRuntimeClasspathEntry entry2 = JavaRuntime.newRuntimeContainerClasspathEntry(new Path(JavaRuntime.JRE_CONTAINER), IRuntimeClasspathEntry.STANDARD_CLASSES, getMultiOutputProject());
 		assertEquals("JRE containers should be equal no matter which project", entry1, entry2);
 	}
-	
+
 	public void testExampleContainerEqualityNegative() throws Exception {
 		IRuntimeClasspathEntry entry1 = JavaRuntime.newRuntimeContainerClasspathEntry(new Path("org.eclipse.jdt.debug.tests.TestClasspathContainer"), IRuntimeClasspathEntry.USER_CLASSES, get14Project());
 		IRuntimeClasspathEntry entry2 = JavaRuntime.newRuntimeContainerClasspathEntry(new Path("org.eclipse.jdt.debug.tests.TestClasspathContainer"), IRuntimeClasspathEntry.USER_CLASSES, getMultiOutputProject());
 		assertFalse("Example containers should *not* be equal for different projects", entry1.equals(entry2));
 	}
-	
+
 	public void testExampleContainerEqualityPositive() throws Exception {
 		IRuntimeClasspathEntry entry1 = JavaRuntime.newRuntimeContainerClasspathEntry(new Path("org.eclipse.jdt.debug.tests.TestClasspathContainer"), IRuntimeClasspathEntry.USER_CLASSES, get14Project());
 		IRuntimeClasspathEntry entry2 = JavaRuntime.newRuntimeContainerClasspathEntry(new Path("org.eclipse.jdt.debug.tests.TestClasspathContainer"), IRuntimeClasspathEntry.USER_CLASSES, get14Project());
 		assertEquals("Example containers should be equal for same project", entry1, entry2);
-	}	
+	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/StaticVariableTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/StaticVariableTests.java
index c47128a..d8a8617 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/StaticVariableTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/StaticVariableTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,16 +18,16 @@
 import org.eclipse.jdt.debug.tests.AbstractDebugTest;
 
 public class StaticVariableTests extends AbstractDebugTest {
-	
+
 	public StaticVariableTests(String name) {
 		super(name);
 	}
 
 	public void testSetValue() throws Exception {
 		String typeName = "StaticVariablesTests";
-		
-		ILineBreakpoint bp = createLineBreakpoint(40, typeName);		
-		
+
+		ILineBreakpoint bp = createLineBreakpoint(40, typeName);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -35,14 +35,14 @@
 			IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
 			IVariable pubStr = findVariable(frame, "pubStr");
 			assertNotNull("Could not find variable 'pubStr'", pubStr);
-			
+
 			assertEquals("Value should be 'public'","public", pubStr.getValue().getValueString());
 			pubStr.setValue(((IJavaDebugTarget)frame.getDebugTarget()).newValue("test"));
 			assertEquals("Value should be 'test'","test", pubStr.getValue().getValueString());
-			
+
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/StratumTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/StratumTests.java
index 9a223bc..ffe9f36 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/StratumTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/StratumTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -20,20 +20,20 @@
  * Tests strata.
  */
 public class StratumTests extends AbstractDebugTest {
-	
+
 	public StratumTests(String name) {
 		super(name);
 	}
 
 	/**
 	 * Test available strata on a type.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testAvailableStrata() throws Exception {
 		String typeName = "Breakpoints";
-		createLineBreakpoint(81, typeName);		
-		
+		createLineBreakpoint(81, typeName);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
@@ -45,18 +45,18 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * Test default stratum on a type.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testDefaultStratum() throws Exception {
 		String typeName = "Breakpoints";
-		createLineBreakpoint(81, typeName);		
-		
+		createLineBreakpoint(81, typeName);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
@@ -67,18 +67,18 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
-	}	
+		}
+	}
 
 	/**
 	 * Test set / get default stratum on a java debug target.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testSetGetDefaultStratum() throws Exception {
 		String typeName = "Breakpoints";
-		createLineBreakpoint(81, typeName);		
-		
+		createLineBreakpoint(81, typeName);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
@@ -92,7 +92,7 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
 
 	public void testGetLineInStratum() throws Exception {
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/StringSubstitutionTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/StringSubstitutionTests.java
index e6be05d..f662d3e 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/StringSubstitutionTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/StringSubstitutionTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -43,12 +43,12 @@
  * Tests string substitutions
  */
 public class StringSubstitutionTests extends AbstractDebugTest implements IValueVariableListener {
-	
+
 	// change notification
 	public IValueVariable[] fAdded;
 	public IValueVariable[] fChanged;
 	public IValueVariable[] fRemoved;
-	
+
 	public StringSubstitutionTests(String name) {
 		super(name);
 	}
@@ -56,27 +56,27 @@
 	/**
 	 * Returns the value variable with the given name or <code>null</code>
 	 * if none.
-	 * 
-	 * @param name variable name 
+	 *
+	 * @param name variable name
 	 * @return value variable with the given name or <code>null</code>
 	 * if none
 	 */
 	protected IValueVariable getValueVariable(String name) {
 		return VariablesPlugin.getDefault().getStringVariableManager().getValueVariable(name);
 	}
-	
+
 	/**
 	 * Returns the context variable with the given name or <code>null</code>
 	 * if none.
-	 * 
-	 * @param name variable name 
+	 *
+	 * @param name variable name
 	 * @return context variable with the given name or <code>null</code>
 	 * if none
 	 */
 	protected IDynamicVariable getContextVariable(String name) {
 		return VariablesPlugin.getDefault().getStringVariableManager().getDynamicVariable(name);
-	}	
-	
+	}
+
 	/**
 	 * Tests value variable initializer
 	 */
@@ -84,8 +84,8 @@
 		IValueVariable variable = getValueVariable("VALUE_VAR_WITH_INITIALIZER");
 		checkValueVariableProperties(variable, "VALUE_VAR_WITH_INITIALIZER", "sample value variable", "initial-value", true, false);
 		assertEquals("Contributing plugin ID was incorrect.","org.eclipse.jdt.debug.tests",VariablesPlugin.getDefault().getStringVariableManager().getContributingPluginId(variable));
-	}	
-	
+	}
+
 	/**
 	 * Tests value variable with an initial value
 	 */
@@ -94,7 +94,7 @@
 		checkValueVariableProperties(variable, "VALUE_VAR_WITH_VALUE", "sample value variable", "initial-value", true, false);
 		assertEquals("Contributing plugin ID was incorrect.","org.eclipse.jdt.debug.tests",VariablesPlugin.getDefault().getStringVariableManager().getContributingPluginId(variable));
 	}
-	
+
 	/**
 	 * Tests value variable initializer set to read only
 	 */
@@ -102,8 +102,8 @@
 		IValueVariable variable = getValueVariable("VALUE_VAR_WITH_INITIALIZER_READ_ONLY");
 		checkValueVariableProperties(variable, "VALUE_VAR_WITH_INITIALIZER_READ_ONLY", "sample value variable", "initial-value", true, true);
 		assertEquals("Contributing plugin ID was incorrect.","org.eclipse.jdt.debug.tests",VariablesPlugin.getDefault().getStringVariableManager().getContributingPluginId(variable));
-	}	
-	
+	}
+
 	/**
 	 * Tests value variable with an initial value set to read only
 	 */
@@ -112,31 +112,31 @@
 		checkValueVariableProperties(variable, "VALUE_VAR_WITH_VALUE_READ_ONLY", "sample value variable", "initial-value", true, true);
 		assertEquals("Contributing plugin ID was incorrect.","org.eclipse.jdt.debug.tests",VariablesPlugin.getDefault().getStringVariableManager().getContributingPluginId(variable));
 	}
-	
+
 	/**
 	 * Tests value variables created using string variable manager API
 	 */
 	public void testCreatedValueVariables() throws Exception {
 		IValueVariable variable = VariablesPlugin.getDefault().getStringVariableManager().newValueVariable("createdVariable", "sample value variable");
 		checkValueVariableProperties(variable, "createdVariable", "sample value variable", null, false, false);
-		
+
 		variable = VariablesPlugin.getDefault().getStringVariableManager().newValueVariable("createdVariable", "sample value variable");
 		variable.setValue("initial-value");
 		checkValueVariableProperties(variable, "createdVariable", "sample value variable", "initial-value", false, false);
-				
+
 		variable = VariablesPlugin.getDefault().getStringVariableManager().newValueVariable("createdVariable2", "sample value variable",false,"initial-value");
 		checkValueVariableProperties(variable, "createdVariable2", "sample value variable", "initial-value", false, false);
-		
+
 		variable = VariablesPlugin.getDefault().getStringVariableManager().newValueVariable("createdVariable3", "sample value variable",true,"initial-value");
 		checkValueVariableProperties(variable, "createdVariable3", "sample value variable", "initial-value", false, true);
 	}
-	
+
 	protected IValueVariable copy(IValueVariable variable) {
 		IStringVariableManager manager = VariablesPlugin.getDefault().getStringVariableManager();
 		IValueVariable variable2 = manager.newValueVariable(variable.getName(), variable.getDescription(), variable.isReadOnly(), variable.getValue());
 		return variable2;
 	}
-		
+
 	/**
 	 * Tests the setValue and setDescription methods of value variables
 	 */
@@ -150,7 +150,7 @@
 		copy.setValue("new value");
 		assertEquals("new description", copy.getDescription());
 		assertEquals("new value", copy.getValue());
-		
+
 		variable = getValueVariable("VALUE_VAR_WITH_VALUE");
 		copy = copy(variable);
 		assertEquals(variable.getDescription(), copy.getDescription());
@@ -159,7 +159,7 @@
 		copy.setValue("new value");
 		assertEquals("new description", copy.getDescription());
 		assertEquals("new value", copy.getValue());
-		
+
 		variable = VariablesPlugin.getDefault().getStringVariableManager().newValueVariable("createdVariable", "A variable created in code");
 		copy = copy(variable);
 		assertEquals(variable.getDescription(), copy.getDescription());
@@ -168,7 +168,7 @@
 		copy.setValue("new value");
 		assertEquals("new description", copy.getDescription());
 		assertEquals("new value", copy.getValue());
-		
+
 		variable = VariablesPlugin.getDefault().getStringVariableManager().newValueVariable("createdVariable3", "A variable created in code",true,"initial-value");
 		copy = copy(variable);
 		assertEquals(variable.getDescription(), copy.getDescription());
@@ -176,9 +176,9 @@
 		copy.setDescription("new description");
 		copy.setValue("new value");  // Value shouldn't change because variable is read only.
 		assertEquals("new description", copy.getDescription());
-		assertEquals(variable.getValue(), copy.getValue());	
+		assertEquals(variable.getValue(), copy.getValue());
 	}
-		
+
 	/**
 	 * Tests that the properties of the passed variable match the expected values passed as parameters
 	 */
@@ -200,17 +200,17 @@
 		String value = variable.getValue("ONE");
 		assertEquals("the arg is ONE", value);
 	}
-	
+
 	/**
 	 * Tests a context variable with no argument
-	 */	
+	 */
 	public void testContextWithoutArg() throws CoreException {
 		IDynamicVariable variable = getContextVariable("SAMPLE_DYNAMIC_VAR");
 		assertNotNull("Missing SAMPLE_DYNAMIC_VAR", variable);
 		String value = variable.getValue(null);
-		assertEquals("no arg", value);		
+		assertEquals("no arg", value);
 	}
-	
+
 	/**
 	 * Test an expression with no variable references
 	 */
@@ -219,7 +219,7 @@
 		String result = doSubs(expression);
 		assertEquals(expression, result);
 	}
-	
+
 	/**
 	 * Test an expression with a value variable reference
 	 */
@@ -228,7 +228,7 @@
 		String result = doSubs(expression);
 		assertEquals("something initial-value else", result);
 	}
-	
+
 	/**
 	 * Test an expression with a context variable reference
 	 */
@@ -237,7 +237,7 @@
 		String result = doSubs(expression);
 		assertEquals("something no arg else", result);
 	}
-	
+
 	/**
 	 * Test an expression with a context variable reference and arg
 	 */
@@ -245,8 +245,8 @@
 		String expression = "something ${SAMPLE_DYNAMIC_VAR:TWO} else";
 		String result = doSubs(expression);
 		assertEquals("something the arg is TWO else", result);
-	}	
-	
+	}
+
 	/**
 	 * Test an expression with multiple references
 	 */
@@ -254,11 +254,11 @@
 		String expression = "${SAMPLE_DYNAMIC_VAR:TWO} ${VALUE_VAR_WITH_INITIALIZER} ${VALUE_VAR_WITH_VALUE}";
 		String result = doSubs(expression);
 		assertEquals("the arg is TWO initial-value initial-value", result);
-	}	
-		
+	}
+
 	/**
 	 * Perform substitutions on the given expression.
-	 * 
+	 *
 	 * @param expression source expression
 	 * @return the result after performing substitutions
 	 */
@@ -275,7 +275,7 @@
 		String result = doSubs(expression);
 		assertEquals("the arg is initial-value", result);
 	}
-	
+
 	/**
 	 * Test recursive resolution
 	 */
@@ -292,7 +292,7 @@
 			manager.removeVariables(new IValueVariable[]{variable});
 		}
 	}
-	
+
 	/**
 	 * Test for simple cycling references like ${A} -> ${B} -> ${A}
 	 */
@@ -312,13 +312,13 @@
 				IStatus status = ce.getStatus();
 				if (status.getSeverity() != IStatus.ERROR || status.getCode() != VariablesPlugin.REFERENCE_CYCLE_ERROR) {
 					throw ce;
-				}				
+				}
 			}
 		} finally {
 			manager.removeVariables(new IValueVariable[]{var1, var2});
 		}
 	}
-	
+
 	/**
 	 * Test for cycling references in cases where original expression is never duplicated
 	 * eg. ${A} -> ${B}z -> ${A}z -> ${B}zz
@@ -339,20 +339,20 @@
 				IStatus status = ce.getStatus();
 				if (status.getSeverity() != IStatus.ERROR || status.getCode() != VariablesPlugin.REFERENCE_CYCLE_ERROR) {
 					throw ce;
-				}				
+				}
 			}
 		} finally {
 			manager.removeVariables(new IValueVariable[]{var1, var2});
 		}
 	}
-	
+
 	/**
 	 * Test for proper handling of infinite variable reference cycles in cases where
 	 * resolving two variables results in a third
 	 * eg 	${A} = "${"
 	 * 		${B} = "C}
 	 * 		${C} = ${A}${B}
-	 * 		In this case any references to ${C} or ${A}${B} cannot be resolved 
+	 * 		In this case any references to ${C} or ${A}${B} cannot be resolved
 	 */
 	public void testDividedRecursiveReferenceCycles() throws CoreException {
 		IStringVariableManager manager = VariablesPlugin.getDefault().getStringVariableManager();
@@ -372,13 +372,13 @@
 				IStatus status = ce.getStatus();
 				if (status.getSeverity() != IStatus.ERROR || status.getCode() != VariablesPlugin.REFERENCE_CYCLE_ERROR) {
 					throw ce;
-				}				
+				}
 			}
 		} finally {
 			manager.removeVariables(new IValueVariable[]{var1, var2, var3});
-		}		
+		}
 	}
-	
+
 	/**
 	 * Test a string with an open ended reference. The open ended expression
 	 * will not be translated.
@@ -388,10 +388,10 @@
 		String result = doSubs(expression);
 		assertEquals("${SAMPLE_DYNAMIC_VAR:initial-value", result);
 	}
-	
+
 	/**
 	 * Test that we receive proper add notification.
-	 * 
+	 *
 	 * @throws CoreException
 	 */
 	public void testAddNotificaiton() throws CoreException {
@@ -412,10 +412,10 @@
 			manager.removeVariables(new IValueVariable[]{one, two});
 		}
 	}
-	
+
 	/**
 	 * Test that we receive proper change notification.
-	 * 
+	 *
 	 * @throws CoreException
 	 */
 	public void testChangeNotificaiton() throws CoreException {
@@ -431,15 +431,15 @@
 			two.setValue("2");
 			assertNotNull("no change notifications", fChanged);
 			assertEquals("should be 1 change notification", 1, fChanged.length);
-			assertEquals(two, fChanged[0]);			
+			assertEquals(two, fChanged[0]);
 		} finally {
 			manager.removeVariables(new IValueVariable[]{one, two});
 		}
-	}	
-	
+	}
+
 	/**
 	 * Test that we receive proper remove notification.
-	 * 
+	 *
 	 * @throws CoreException
 	 */
 	public void testRemoveNotificaiton() throws CoreException {
@@ -460,7 +460,7 @@
 		} finally {
 			manager.removeVariables(new IValueVariable[]{one, two});
 		}
-	}	
+	}
 	/* (non-Javadoc)
 	 * @see junit.framework.TestCase#setUp()
 	 */
@@ -479,12 +479,12 @@
 	 */
 	@Override
 	protected void tearDown() throws Exception {
-		super.tearDown();
 		IStringVariableManager manager = VariablesPlugin.getDefault().getStringVariableManager();
 		manager.removeValueVariableListener(this);
 		fAdded = null;
 		fChanged = null;
 		fRemoved = null;
+		super.tearDown();
 	}
 
 	/* (non-Javadoc)
@@ -510,7 +510,7 @@
 	public void variablesRemoved(IValueVariable[] variables) {
 		fRemoved = variables;
 	}
-	
+
 	/**
 	 * Test the <code>${workspace_loc}</code> variable.
 	 */
@@ -528,7 +528,7 @@
 		String result = doSubs(expression);
 		assertEquals(get14Project().getProject().getFolder("src").getLocation().toOSString(), result);
 	}
-	
+
 	/**
 	 * Test the <code>${project_loc}</code> variable with a project name argument
 	 */
@@ -537,7 +537,7 @@
 		String result = doSubs(expression);
 		assertEquals(get14Project().getProject().getLocation().toOSString(), result);
 	}
-	
+
 	/**
 	 * Test the <code>${project_loc}</code> variable with a folder path argument
 	 */
@@ -546,7 +546,7 @@
 		String result = doSubs(expression);
 		assertEquals(get14Project().getProject().getLocation().toOSString(), result);
 	}
-	
+
 	/**
 	 * Test the <code>${project_loc}</code> variable with a folder selected
 	 */
@@ -557,7 +557,7 @@
 		String result = doSubs(expression);
 		assertEquals(resource.getProject().getLocation().toOSString(), result);
 	}
-		
+
 	/**
 	 * Test the <code>${project_path}</code> variable with a project name argument
 	 */
@@ -566,7 +566,7 @@
 		String result = doSubs(expression);
 		assertEquals(get14Project().getProject().getFullPath().toOSString(), result);
 	}
-	
+
 	/**
 	 * Test the <code>${project_path}</code> variable with a file selected
 	 */
@@ -576,8 +576,8 @@
 		setSelection(resource);
 		String result = doSubs(expression);
 		assertEquals(resource.getProject().getFullPath().toOSString(), result);
-	}				
-	
+	}
+
 	/**
 	 * Test the <code>${project_path}</code> variable with a folder path argument
 	 */
@@ -586,7 +586,7 @@
 		String result = doSubs(expression);
 		assertEquals(get14Project().getProject().getFullPath().toOSString(), result);
 	}
-	
+
 	/**
 	 * Test the <code>${project_name}</code> variable with a project name argument
 	 */
@@ -595,7 +595,7 @@
 		String result = doSubs(expression);
 		assertEquals(get14Project().getProject().getName(), result);
 	}
-	
+
 	/**
 	 * Test the <code>${project_name}</code> variable with a project selected
 	 */
@@ -605,8 +605,8 @@
 		setSelection(resource);
 		String result = doSubs(expression);
 		assertEquals(resource.getProject().getName(), result);
-	}				
-	
+	}
+
 	/**
 	 * Test the <code>${project_name}</code> variable with a folder path argument
 	 */
@@ -615,7 +615,7 @@
 		String result = doSubs(expression);
 		assertEquals(get14Project().getProject().getName(), result);
 	}
-	
+
 	/**
 	 * Test the <code>${container_loc}</code> variable with a folder name argument.
 	 * Will resolve to the container of the specified folder.
@@ -625,7 +625,7 @@
 		String result = doSubs(expression);
 		assertEquals(get14Project().getProject().getLocation().toOSString(), result);
 	}
-	
+
 	/**
 	 * Test the <code>${container_loc}</code> variable with a folder selected.
 	 * Will resolve to the container of the specified folder.
@@ -637,7 +637,7 @@
 		String result = doSubs(expression);
 		assertEquals(resource.getParent().getLocation().toOSString(), result);
 	}
-	
+
 	/**
 	 * Test the <code>${container_path}</code> variable with a folder name argument.
 	 * Will resolve to the container of the specified folder.
@@ -647,19 +647,19 @@
 		String result = doSubs(expression);
 		assertEquals(get14Project().getProject().getFullPath().toOSString(), result);
 	}
-	
+
 	/**
 	 * Test the <code>${container_path}</code> variable with a folder selected.
 	 * Will resolve to the container of the specified folder.
 	 */
 	public void testContainerPathSelectFolder() throws CoreException {
 		String expression = "${container_path}";
-		IResource resource = get14Project().getProject().getFolder("src"); 
+		IResource resource = get14Project().getProject().getFolder("src");
 		setSelection(resource);
 		String result = doSubs(expression);
 		assertEquals(resource.getParent().getFullPath().toOSString(), result);
 	}
-	
+
 	/**
 	 * Test the <code>${container_name}</code> variable with a folder name argument.
 	 * Will resolve to the container of the specified folder.
@@ -669,19 +669,19 @@
 		String result = doSubs(expression);
 		assertEquals(get14Project().getProject().getName(), result);
 	}
-	
+
 	/**
 	 * Test the <code>${container_name}</code> variable with a folder selected.
 	 * Will resolve to the container of the specified folder.
 	 */
 	public void testContainerNameSelectFolder() throws CoreException {
 		String expression = "${container_name}";
-		IResource resource = get14Project().getProject().getFolder("src"); 
+		IResource resource = get14Project().getProject().getFolder("src");
 		setSelection(resource);
 		String result = doSubs(expression);
 		assertEquals(resource.getParent().getName(), result);
 	}
-	
+
 	/**
 	 * Test the <code>${resource_loc}</code> variable with a folder name argument.
 	 */
@@ -690,7 +690,7 @@
 		String result = doSubs(expression);
 		assertEquals(get14Project().getProject().getFolder("src").getLocation().toOSString(), result);
 	}
-	
+
 	/**
 	 * Test the <code>${resource_loc}</code> variable with a folder selected.
 	 */
@@ -700,8 +700,8 @@
 		setSelection(resource);
 		String result = doSubs(expression);
 		assertEquals(resource.getLocation().toOSString(), result);
-	}	
-		
+	}
+
 	/**
 	 * Test the <code>${resource_path}</code> variable with a folder name argument.
 	 */
@@ -716,12 +716,12 @@
 	 */
 	public void testResourcePathSelectFile() throws CoreException {
 		String expression = "${resource_path}";
-		IResource resource = get14Project().getProject().getFile(".classpath"); 
+		IResource resource = get14Project().getProject().getFile(".classpath");
 		setSelection(resource);
 		String result = doSubs(expression);
 		assertEquals(resource.getFullPath().toOSString(), result);
-	}	
-	
+	}
+
 	/**
 	 * Test the <code>${resource_name}</code> variable with a folder name argument.
 	 */
@@ -729,7 +729,7 @@
 		String expression = "${resource_name:DebugTests/src}";
 		String result = doSubs(expression);
 		assertEquals(get14Project().getProject().getFolder("src").getName(), result);
-	}	
+	}
 
 	/**
 	 * Test the <code>${resource_name}</code> variable with a file selected.
@@ -749,25 +749,25 @@
 	public void testLocalJavaApplicationParameters() throws CoreException {
 		IResource resource = get14Project().getProject().getFile(".classpath");
 		setSelection(resource);
-		
+
 		ILaunchConfiguration config = getLaunchConfiguration("Breakpoints");
 		ILaunchConfigurationWorkingCopy wc = config.getWorkingCopy();
 		wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROGRAM_ARGUMENTS, "${project_name}");
 		wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_ARGUMENTS, "${resource_name}");
 		wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_WORKING_DIRECTORY, "${project_loc}");
-		
+
 		JavaLaunchDelegate delegate = new JavaLaunchDelegate();
-		
+
 		assertEquals(resource.getProject().getName(), delegate.getProgramArguments(wc));
 		assertEquals(resource.getName(), delegate.getVMArguments(wc));
 		File workingDir = delegate.getWorkingDirectory(wc);
 		assertNotNull(workingDir);
 		assertEquals(resource.getProject().getLocation().toOSString(), workingDir.toString());
 	}
-	
+
 	/**
 	 * Sets the selected resource in the navigator view.
-	 * 
+	 *
 	 * @param resource resource to select or <code>null</code> if empty
 	 */
 	protected void setSelection(final IResource resource) {
@@ -794,23 +794,23 @@
 				} catch (PartInitException e) {
 					assertNotNull("Failed to open navigator view", null);
 				}
-				
+
 			}
 		};
 		DebugUIPlugin.getStandardDisplay().syncExec(r);
 	}
-	
+
 	/**
 	 * Test the <code>${selected_resource_path}</code> variable with a file selected.
 	 */
 	public void testSelectedResourcePathFile() throws CoreException {
 		String expression = "${selected_resource_path}";
-		IResource resource = get14Project().getProject().getFile(".classpath"); 
+		IResource resource = get14Project().getProject().getFile(".classpath");
 		setSelection(resource);
 		String result = doSubs(expression);
 		assertEquals(resource.getFullPath().toOSString(), result);
-	}		
-	
+	}
+
 	/**
 	 * Test the <code>${selected_resource_name}</code> variable with a file selected.
 	 */
@@ -821,7 +821,7 @@
 		String result = doSubs(expression);
 		assertEquals(resource.getName(), result);
 	}
-	
+
 	/**
 	 * Test the <code>${selected_resource_loc}</code> variable with a folder selected.
 	 */
@@ -831,8 +831,8 @@
 		setSelection(resource);
 		String result = doSubs(expression);
 		assertEquals(resource.getLocation().toOSString(), result);
-	}	
-	
+	}
+
 	/**
 	 * Test the <code>${selected_resource_loc}</code> variable an empty selection
 	 */
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/TypeTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/TypeTests.java
index 7f77e4e..afa2b26 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/TypeTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/TypeTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -26,7 +26,7 @@
  * Tests equality of Java types.
  */
 public class TypeTests extends AbstractDebugTest {
-	
+
 	public TypeTests(String name) {
 		super(name);
 	}
@@ -41,8 +41,8 @@
 		// threading
 		bps.add(createLineBreakpoint(66, typeName));
 		// InnerRunnable.run
-		bps.add(createLineBreakpoint(61, typeName));		
-		
+		bps.add(createLineBreakpoint(61, typeName));
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
@@ -56,15 +56,15 @@
 				int lineNumber = breakpoint.getLineNumber();
 				IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
 				types[index] = frame.getReferenceType();
-				
+
 				if (index == 1) {
 					assertEquals("First two types should be the same", types[0], types[1]);
 				}
-				
+
 				if (index == 2) {
 					assertTrue("Last two types should be different", !types[0].equals(types[2]));
 				}
-				
+
 				index++;
 				int stackLine = frame.getLineNumber();
 				assertTrue("line numbers of breakpoint and stack frame do not match", lineNumber == stackLine);
@@ -77,9 +77,9 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-    
+
     public void testClassLoader() throws Exception {
         String typeName = "Breakpoints";
         List<IJavaLineBreakpoint> bps = new ArrayList<IJavaLineBreakpoint>();
@@ -88,7 +88,7 @@
         bps.add(createLineBreakpoint(88, typeName));
         IJavaObject[] loaders = new IJavaObject[2];
         int index = 0;
-        
+
         IJavaThread thread= null;
         try {
             thread= launchToBreakpoint(typeName);
@@ -103,11 +103,11 @@
                 IJavaStackFrame frame = (IJavaStackFrame)thread.getTopStackFrame();
                 loaders[index] = frame.getReferenceType().getClassLoaderObject();
                 assertNotNull("class loader cannot be null", loaders[index]);
-                
+
                 if (index == 1) {
                     assertEquals("First two class loaders should be the same", loaders[0], loaders[1]);
                 }
-                                
+
                 index++;
                 int stackLine = frame.getLineNumber();
                 assertTrue("line numbers of breakpoint and stack frame do not match", lineNumber == stackLine);
@@ -120,7 +120,7 @@
         } finally {
             terminateAndRemove(thread);
             removeAllBreakpoints();
-        }               
+        }
     }
 
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/VMInstallTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/VMInstallTests.java
index bbbe697..f7a9b46 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/VMInstallTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/VMInstallTests.java
@@ -38,7 +38,7 @@
 	public VMInstallTests() {
 		super("VM Install tests");
 	}
-	
+
 	/**
 	 * Constructor
 	 * @param name the name of the test
@@ -57,7 +57,7 @@
         String javaVersion = vm2.getJavaVersion();
         assertNotNull("default VM is missing java.version", javaVersion);
 	}
-	
+
 	/**
 	 * Test acquiring the set of system properties
 	 * @throws CoreException
@@ -72,7 +72,7 @@
 		String value = map.get("user.home");
 		assertNotNull("missing user.home", value);
 	}
-	
+
 	/**
 	 * Test acquiring the set of system properties that have been asked for - they should be cached in JDT launching
 	 * @throws CoreException
@@ -89,17 +89,17 @@
 		//check the prefs
 		String key = getSystemPropertyKey(def, "user.home");
 		value = Platform.getPreferencesService().getString(
-				LaunchingPlugin.ID_PLUGIN, 
-				key, 
-				null, 
+				LaunchingPlugin.ID_PLUGIN,
+				key,
+				null,
 				null);
 		assertNotNull("'user.home' system property should be cached", value);
 	}
-	
+
 	/**
 	 * Tests the new support for {@link ILibraryLocationResolver}s asking for {@link LibraryLocation}s
 	 * using the {@link JavaRuntime#getLibraryLocations(IVMInstall)}s API
-	 * 
+	 *
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=399798
 	 * @throws Exception
 	 */
@@ -107,7 +107,7 @@
 		VMInstallTestsLibraryLocationResolver.isTesting = true;
 		IVMInstall vm = JavaRuntime.getDefaultVMInstall();
 		assertNotNull("There must be a default VM", vm);
-		
+
 		//invalidate it, causing a reset, then collect it again
 		vm.getVMInstallType().disposeVMInstall(vm.getId());
 		vm = JavaRuntime.getDefaultVMInstall();
@@ -123,10 +123,10 @@
 			vm.getVMInstallType().disposeVMInstall(vm.getId());
 		}
 	}
-	
+
 	/**
 	 * Tests the {@link ILibraryLocationResolver} asking for libs using an EE description file
-	 * 
+	 *
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=399798
 	 * @throws Exception
 	 */
@@ -146,10 +146,10 @@
 			VMInstallTestsLibraryLocationResolver.isTesting = false;
 		}
 	}
-	
+
 	/**
 	 * Tests the {@link ILibraryLocationResolver} asking for libs directly from the backing type of the {@link IVMInstall}
-	 * 
+	 *
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=399798
 	 * @throws Exception
 	 */
@@ -162,7 +162,7 @@
 			vm.getVMInstallType().disposeVMInstall(vm.getId());
 			vm = JavaRuntime.getDefaultVMInstall();
 			assertNotNull("There must be a default VM", vm);
-			
+
 			LibraryLocation[] locs = vm.getVMInstallType().getDefaultLibraryLocations(vm.getInstallLocation());
 			assertResolvedLibraryLocations(locs);
 		}
@@ -171,11 +171,11 @@
 			vm.getVMInstallType().disposeVMInstall(vm.getId());
 		}
 	}
-	
+
 	/**
 	 * Tests the {@link ILibraryLocationResolver} asking for libs using an EE description file that provides
 	 * a source path for the ext dirs does *not* get overridden by the resolver
-	 * 
+	 *
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=399798
 	 * @throws Exception
 	 */
@@ -203,10 +203,10 @@
 			VMInstallTestsLibraryLocationResolver.isTesting = false;
 		}
 	}
-	
+
 	/**
 	 * Checks the given {@link LibraryLocation}s to ensure they reference the testing resolver paths
-	 * 
+	 *
 	 * @param locs
 	 */
 	void assertResolvedLibraryLocations(LibraryLocation[] locs) {
@@ -221,16 +221,16 @@
 				assertTrue("The source root path should be 'src' for ext lib ["+locpath+"]", root.toString().equals("src"));
 				URL url = locs[i].getJavadocLocation();
 				assertNotNull("There should be a Javadoc URL set for ext lib ["+locpath+"]", url);
-				assertTrue("There should be a javadoc path of test_resolver_javadoc.zip on the ext lib ["+locpath+"]", 
+				assertTrue("There should be a javadoc path of test_resolver_javadoc.zip on the ext lib ["+locpath+"]",
 						url.getPath().indexOf("test_resolver_javadoc.zip") > -1);
 				url = locs[i].getIndexLocation();
 				assertNotNull("There should be an index path of test_resolver_index.index on the ext lib ["+locpath+"]", url);
-				assertTrue("There should be an index path of test_resolver_index.index on the ext lib ["+locpath+"]", 
+				assertTrue("There should be an index path of test_resolver_index.index on the ext lib ["+locpath+"]",
 						url.getPath().indexOf("test_resolver_index.index") > -1);
 			}
 		}
 	}
-	
+
 	/**
 	 * Creates a {@link VMStandin} for the given EE file. Does not return <code>null</code>
 	 * @param filename
@@ -244,11 +244,11 @@
 		assertNotNull("the VM standin should exist for "+filename, vm);
 		return vm;
 	}
-	
+
 	/**
 	 * Generates a key used to cache system property for this VM in this plug-ins
 	 * preference store.
-	 * 
+	 *
 	 * @param property system property name
 	 * @return preference store key
 	 */
@@ -263,5 +263,5 @@
 		buffer.append(property);
 		return buffer.toString();
 	}
-	
+
 }
\ No newline at end of file
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/VMInstallTestsLibraryLocationResolver.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/VMInstallTestsLibraryLocationResolver.java
index 08c779a..e4ec68e 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/VMInstallTestsLibraryLocationResolver.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/VMInstallTestsLibraryLocationResolver.java
@@ -32,7 +32,7 @@
 		if (!isTesting) {
 			return false;
 		}
-	
+
 		for (int i = 0; i < path.segmentCount(); i++) {
 			if ("ext".equals(path.segment(i))) {
 				return !JavaFxLibraryResolver.JFXRT_JAR.equals(path.lastSegment());
@@ -43,7 +43,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.launching.ILibraryLocationResolver#getPackageRoot(org.eclipse.core.runtime.IPath)
 	 */
 	@Override
@@ -56,7 +56,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.launching.ILibraryLocationResolver#getSourcePath(org.eclipse.core.runtime.IPath)
 	 */
 	@Override
@@ -72,7 +72,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.launching.ILibraryLocationResolver#getJavadocLocation(org.eclipse.core.runtime.IPath)
 	 */
 	@Override
@@ -93,7 +93,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.launching.ILibraryLocationResolver#getIndexLocation(org.eclipse.core.runtime.IPath)
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/WatchExpressionTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/WatchExpressionTests.java
index 3d1d081..96ea0ee 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/WatchExpressionTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/WatchExpressionTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -35,11 +35,11 @@
  * WatchExpressionTests
  */
 public class WatchExpressionTests extends AbstractDebugTest {
-	
+
 	public WatchExpressionTests(String name) {
 		super(name);
 	}
-	
+
 	/**
 	 * Test a watch expression that is created before a program is executed.
 	 */
@@ -53,7 +53,7 @@
 			DebugElementEventWaiter waiter = new ExpressionWaiter(DebugEvent.CHANGE, expression);
 			waiter.setTimeout(60000);
 			thread= launchToBreakpoint(typeName);
-			assertNotNull("Breakpoint not hit within timeout period", thread); 
+			assertNotNull("Breakpoint not hit within timeout period", thread);
 			Object source = waiter.waitForEvent();
 			assertNotNull("Watch expression did not change", source);
 			IValue value = expression.getValue();
@@ -65,16 +65,16 @@
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 			removeAllExpressions();
-		}				
+		}
 	}
-	
+
 	/**
 	 * Test a watch expression that is created while a program is suspended.
-     * 
+     *
      * see bug 81519. This test is flawed as expressions added to the manager
      * are note updated automatically. They are updated by the action that
      * creates the expression, or when a selection change occurrs in the debug view.
-     * This test can pass as the ordering of expression addition and selection 
+     * This test can pass as the ordering of expression addition and selection
      * change events can vary. However, it it attempting to test behavior that
      * does not exist, and is removed from the test suite.
 	 */
@@ -86,12 +86,12 @@
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			// create the expression, waiter, and then add it (to be evaluated)
 			expression = getExpressionManager().newWatchExpression("((Integer)fVector.get(3)).intValue()");
 			DebugElementEventWaiter waiter = new ExpressionWaiter(DebugEvent.CHANGE, expression);
 			getExpressionManager().addExpression(expression);
-			 
+
 			Object source = waiter.waitForEvent();
 			assertNotNull("Watch expression did not change", source);
 			IValue value = expression.getValue();
@@ -103,12 +103,12 @@
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 			removeAllExpressions();
-		}				
+		}
 	}
-	
+
 	/**
 	 * Test a watch expression updates while stepping.
-	 * 
+	 *
 	 * THIS TEST HAS BEEN DISABLED DUE TO BUG 228400
 	 */
 	public void DisabledtestStepping() throws Exception {
@@ -121,7 +121,7 @@
 			DebugElementEventWaiter waiter = new ExpressionWaiter(DebugEvent.CHANGE, expression);
 			waiter.setTimeout(60000);
 			thread= launchToBreakpoint(typeName);
-			assertNotNull("Breakpoint not hit within timeout period", thread); 
+			assertNotNull("Breakpoint not hit within timeout period", thread);
 			Object source = waiter.waitForEvent();
 			assertNotNull("Watch expression did not change", source);
 			IValue value = expression.getValue();
@@ -129,42 +129,42 @@
 			IJavaDebugTarget target = (IJavaDebugTarget)thread.getDebugTarget();
 			IJavaValue compare = target.newValue(0);
 			assertEquals("Watch expression should be 0", compare, value);
-			
+
 			// now step once - should still be 0
 			waiter = new ExpressionWaiter(DebugEvent.CHANGE, expression);
 			stepOver((IJavaStackFrame)thread.getTopStackFrame());
 			source = waiter.waitForEvent();
 			assertNotNull("Watch expression did not change", source);
-			
+
 			// check for errors
 			dumpErrors(expression);
 			assertFalse("Should not have errors in expression", expression.hasErrors());
-			
+
 			// now step again - should be 1
 			waiter = new ExpressionWaiter(DebugEvent.CHANGE, expression);
 			stepOver((IJavaStackFrame)thread.getTopStackFrame());
 			source = waiter.waitForEvent();
 			assertNotNull("Watch expression did not change", source);
-			
+
 			// check for errors
 			dumpErrors(expression);
 			assertFalse("Should not have errors in expression", expression.hasErrors());
-			
-			value = expression.getValue();			
+
+			value = expression.getValue();
 			// create comparison value
 			compare = target.newValue(1);
 			assertEquals("Watch expression should be 1", compare, value);
-						
+
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 			removeAllExpressions();
-		}				
+		}
 	}
-		
+
 	/**
 	 * Dumps any error messages to the console.
-	 * 
+	 *
      * @param expression
      */
     private void dumpErrors(IWatchExpression expression) {
@@ -179,13 +179,13 @@
 
     /**
 	 * Returns the expression manager
-	 * 
+	 *
 	 * @return expression manager
 	 */
 	protected IExpressionManager getExpressionManager() {
 		return DebugPlugin.getDefault().getExpressionManager();
 	}
-	
+
 	/**
 	 * Ensure the expression view is visible
 	 */
@@ -207,7 +207,7 @@
 			}
 		});
 	}
-	
+
 	/**
 	 * Removes all expressions from the manager
 	 */
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/WorkingDirectoryTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/WorkingDirectoryTests.java
index f1d6c16..d439db5 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/WorkingDirectoryTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/WorkingDirectoryTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -25,15 +25,15 @@
  * Tests working directories.
  */
 public class WorkingDirectoryTests extends AbstractDebugTest {
-	
+
 	public WorkingDirectoryTests(String name) {
 		super(name);
 	}
 
 	public void testDefaultWorkingDirectory() throws Exception {
 		String typeName = "WorkingDirectoryTest";
-		createLineBreakpoint(16, typeName);		
-		
+		createLineBreakpoint(16, typeName);
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
@@ -43,15 +43,15 @@
 			IVariable var = thread.findVariable("dir");
 			String dir = var.getValue().getValueString();
 			IPath path = new Path(dir);
-			assertEquals("default working dir should be the project directory.", get14Project().getProject().getLocation(), path); 
+			assertEquals("default working dir should be the project directory.", get14Project().getProject().getLocation(), path);
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
-	 * Sets the working directory attribute of the test launch config 
+	 * Sets the working directory attribute of the test launch config
 	 * @param path
 	 */
 	protected void setWorkingDirectory(IPath path) throws CoreException {
@@ -88,7 +88,7 @@
 			setWorkingDirectory(null);
 		}
 	}
-	
+
 	public void testAbsoluteWorkingDirectory() throws Exception {
 		String typeName = "WorkingDirectoryTest";
 		createLineBreakpoint(16, typeName);
@@ -110,5 +110,5 @@
 			removeAllBreakpoints();
 			setWorkingDirectory(null);
 		}
-	}	
+	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/WorkspaceSourceContainerTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/WorkspaceSourceContainerTests.java
index e64bfec..7d6e4f9 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/WorkspaceSourceContainerTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/WorkspaceSourceContainerTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -21,11 +21,11 @@
  * Tests source containers
  */
 public class WorkspaceSourceContainerTests extends AbstractDebugTest {
-	
+
 	public WorkspaceSourceContainerTests(String name) {
 		super(name);
 	}
-	
+
 	/**
 	 * Returns a workspace source container.
 	 */
@@ -36,10 +36,10 @@
 		WorkspaceSourceContainer container = new WorkspaceSourceContainer();
 		director.setSourceContainers(new ISourceContainer[]{container});
 		return container;
-	}	
+	}
 	/**
 	 * Tests creation and restoring from a memento.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testWorkspaceSourceContainerMemento() throws Exception {
@@ -47,7 +47,7 @@
 		String memento = container.getType().getMemento(container);
 		ISourceContainer restore = container.getType().createSourceContainer(memento);
 		assertEquals("Workspace source container memento failed", container, restore);
-	}		
+	}
 
 	public void testSimpleSourceLookupPositive() throws Exception {
 		IFolder folder = get14Project().getProject().getFolder("src");
@@ -56,13 +56,13 @@
 		assertEquals("Expected 1 result", 1, objects.length);
 		assertEquals("Wrong file", folder.getFile("Breakpoints.java"), objects[0]);
 	}
-	
+
 	public void testSimpleSourceLookupNegative() throws Exception {
 		WorkspaceSourceContainer container = getContainer(false);
 		Object[] objects = container.findSourceElements("FileNotFound.java");
 		assertEquals("Expected 0 files", 0, objects.length);
-	}	
-	
+	}
+
 	public void testQualifiedSourceLookupPositive() throws Exception {
 		IFolder folder = get14Project().getProject().getFolder("src");
 		WorkspaceSourceContainer container = getContainer(false);
@@ -70,13 +70,13 @@
 		assertEquals("Expected 1 result", 1, objects.length);
 		assertEquals("Wrong file", folder.getFile("org/eclipse/debug/tests/targets/InfiniteLoop.java"), objects[0]);
 	}
-	
+
 	public void testQualifiedSourceLookupNegative() throws Exception {
 		WorkspaceSourceContainer container = getContainer(false);
 		Object[] objects = container.findSourceElements("a/b/c/FileNotFound.java");
 		assertEquals("Expected 0 files", 0, objects.length);
-	}	
-	
+	}
+
 	public void testCaseSensitiveQualifiedSourceLookup() throws Exception {
 		IFolder folder = get14Project().getProject().getFolder("src");
 		WorkspaceSourceContainer container = getContainer(false);
@@ -89,5 +89,5 @@
 			assertEquals("Expected 1 result", 1, objects.length);
 			assertEquals("Wrong file", folder.getFile("org/eclipse/debug/tests/targets/InfiniteLoop.java"), objects[0]);
 		}
-	}		
+	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/ArrayAllocationTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/ArrayAllocationTests.java
index f7ca16e..8e77db0 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/ArrayAllocationTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/ArrayAllocationTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/ArrayAssignmentTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/ArrayAssignmentTests.java
index 08223e1..efafb75 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/ArrayAssignmentTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/ArrayAssignmentTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/ArrayInitializationTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/ArrayInitializationTests.java
index c96799f..20f9c2d 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/ArrayInitializationTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/ArrayInitializationTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/ArrayValueTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/ArrayValueTests.java
index 5b53ae3..8cf01cd 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/ArrayValueTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/ArrayValueTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/BooleanAssignmentOperatorsTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/BooleanAssignmentOperatorsTests.java
index a0c237a..8574f07 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/BooleanAssignmentOperatorsTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/BooleanAssignmentOperatorsTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/BooleanOperatorsTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/BooleanOperatorsTests.java
index e7190bc..a01bafa 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/BooleanOperatorsTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/BooleanOperatorsTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/ByteAssignmentOperatorsTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/ByteAssignmentOperatorsTests.java
index 9013e8a..627b695 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/ByteAssignmentOperatorsTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/ByteAssignmentOperatorsTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/ByteOperatorsTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/ByteOperatorsTests.java
index 83a7aed..219b96e 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/ByteOperatorsTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/ByteOperatorsTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/CharAssignmentOperatorsTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/CharAssignmentOperatorsTests.java
index 085d478..336829a 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/CharAssignmentOperatorsTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/CharAssignmentOperatorsTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/CharOperatorsTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/CharOperatorsTests.java
index 4ab00ef..28edace 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/CharOperatorsTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/CharOperatorsTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/DoubleAssignmentOperatorsTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/DoubleAssignmentOperatorsTests.java
index 9a1f714..5bd05cb 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/DoubleAssignmentOperatorsTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/DoubleAssignmentOperatorsTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/DoubleOperatorsTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/DoubleOperatorsTests.java
index 00e3142..9651386 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/DoubleOperatorsTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/DoubleOperatorsTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/FieldValueTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/FieldValueTests.java
index 58d2bf6..1d2827a 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/FieldValueTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/FieldValueTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/FloatAssignmentOperatorsTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/FloatAssignmentOperatorsTests.java
index aa38415..1f0ad83 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/FloatAssignmentOperatorsTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/FloatAssignmentOperatorsTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/FloatOperatorsTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/FloatOperatorsTests.java
index abc4f19..9ee50f5 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/FloatOperatorsTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/FloatOperatorsTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/GeneralEvalTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/GeneralEvalTests.java
index 4c15a2b..6dfdd34 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/GeneralEvalTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/GeneralEvalTests.java
@@ -16,12 +16,12 @@
 
 /**
  * Tests that evaluations in non-generified source
- * 
+ *
  * @since 3.8.100
  */
 public class GeneralEvalTests extends AbstractDebugTest {
 
-	
+
 	/**
 	 * @param name
 	 */
@@ -48,7 +48,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=329294
 	 * @throws Exception
@@ -68,7 +68,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=329294
 	 * @throws Exception
@@ -88,7 +88,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=329294
 	 * @throws Exception
@@ -108,7 +108,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=401270
 	 * @throws Exception
@@ -129,7 +129,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=401270
 	 * @throws Exception
@@ -150,7 +150,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=401270
 	 * @throws Exception
@@ -171,7 +171,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=401270
 	 * @throws Exception
@@ -192,7 +192,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=401270
 	 * @throws Exception
@@ -213,7 +213,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=401270
 	 * @throws Exception
@@ -234,7 +234,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=401270
 	 * @throws Exception
@@ -255,7 +255,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=401270
 	 * @throws Exception
@@ -276,7 +276,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=401270
 	 * @throws Exception
@@ -297,7 +297,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=401270
 	 * @throws Exception
@@ -318,7 +318,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=401270
 	 * @throws Exception
@@ -339,7 +339,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=401270
 	 * @throws Exception
@@ -360,7 +360,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=401270
 	 * @throws Exception
@@ -381,7 +381,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=401270
 	 * @throws Exception
@@ -402,7 +402,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=401270
 	 * @throws Exception
@@ -423,7 +423,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=401270
 	 * @throws Exception
@@ -444,7 +444,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=403028
 	 * @throws Exception
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/GenericsEvalTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/GenericsEvalTests.java
index f7c2c65..7d98177 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/GenericsEvalTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/GenericsEvalTests.java
@@ -17,7 +17,7 @@
 
 /**
  * Group of tests that evaluate operations involving generics
- * 
+ *
  * @since 3.8
  */
 public class GenericsEvalTests extends AbstractDebugTest {
@@ -33,11 +33,11 @@
 	protected IJavaProject getProjectContext() {
 		return get15Project();
 	}
-	
+
 	/**
-	 * Evaluates a generified snippet with a simple single 
+	 * Evaluates a generified snippet with a simple single
 	 * generic statement
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testEvalGenerics1() throws Exception {
@@ -55,11 +55,11 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
-	 * Evaluates a generified snippet with a simple single 
+	 * Evaluates a generified snippet with a simple single
 	 * generic statement
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testEvalGenerics2() throws Exception {
@@ -77,11 +77,11 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
-	 * Evaluates a generified snippet with a simple single 
+	 * Evaluates a generified snippet with a simple single
 	 * generic statement
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testEvalGenerics3() throws Exception {
@@ -99,7 +99,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	public void testEvalGenerics4() throws Exception {
 		IJavaThread thread = null;
 		try {
@@ -115,7 +115,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	public void testEvalGenerics5() throws Exception {
 		IJavaThread thread = null;
 		try {
@@ -131,7 +131,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	public void testEvalGenerics6() throws Exception {
 		IJavaThread thread = null;
 		try {
@@ -147,7 +147,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	public void testEvalGenerics7() throws Exception {
 		IJavaThread thread = null;
 		try {
@@ -163,7 +163,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	public void testEvalGenerics8() throws Exception {
 		IJavaThread thread = null;
 		try {
@@ -179,7 +179,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	public void testEvalGenerics9() throws Exception {
 		IJavaThread thread = null;
 		try {
@@ -195,7 +195,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	public void testEvalGeneric10() throws Exception {
 		IJavaThread thread = null;
 		try {
@@ -211,7 +211,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	public void testEvalGeneric11() throws Exception {
 		IJavaThread thread = null;
 		try {
@@ -227,7 +227,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	public void testEvalGeneric12() throws Exception {
 		IJavaThread thread = null;
 		try {
@@ -244,7 +244,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	public void testEvalGeneric13() throws Exception {
 		IJavaThread thread = null;
 		try {
@@ -261,7 +261,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=329294
 	 * @throws Exception
@@ -281,7 +281,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=329294
 	 * @throws Exception
@@ -301,7 +301,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=329294
 	 * @throws Exception
@@ -321,7 +321,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=329294
 	 * @throws Exception
@@ -341,7 +341,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=329294
 	 * @throws Exception
@@ -361,7 +361,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=329294
 	 * @throws Exception
@@ -381,7 +381,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=329294
 	 * @throws Exception
@@ -401,7 +401,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=329294
 	 * @throws Exception
@@ -421,7 +421,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=329294
 	 * @throws Exception
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/IntAssignmentOperatorsTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/IntAssignmentOperatorsTests.java
index 1330be1..52eb6e5 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/IntAssignmentOperatorsTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/IntAssignmentOperatorsTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/IntOperatorsTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/IntOperatorsTests.java
index e0f29c5..7d853e2 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/IntOperatorsTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/IntOperatorsTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/Java8Tests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/Java8Tests.java
index 1b04c09..9603f96 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/Java8Tests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/Java8Tests.java
@@ -8,7 +8,7 @@
  * This is an implementation of an early-draft specification developed under the Java
  * Community Process (JCP) and is made available for testing and evaluation purposes
  * only. The code is not compatible with any specification of the JCP.
- * 
+ *
  * Contributors:
  *     Jesper S. Møller - initial API and implementation
  *     Jesper Steen Møller - bug 426903: [1.8] Cannot evaluate super call to default method
@@ -25,7 +25,7 @@
 
 /**
  * Group of tests that evaluate operations involving generics
- * 
+ *
  * @since 3.8
  */
 public class Java8Tests extends AbstractDebugTest {
@@ -41,11 +41,11 @@
 	protected IJavaProject getProjectContext() {
 		return get18Project();
 	}
-	
+
 	/**
-	 * Evaluates a generified snippet with a simple single 
+	 * Evaluates a generified snippet with a simple single
 	 * generic statement
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testEvalDefaultMethod() throws Exception {
@@ -66,7 +66,7 @@
 
 	/**
 	 * Evaluates a snippet in the context of interface method generic statement
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testEvalInterfaceMethod() throws Exception {
@@ -85,10 +85,10 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
 	 * Evaluates a snippet in the context of interface method generic statement
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testBugEvalIntfSuperDefault() throws Exception {
@@ -111,7 +111,7 @@
 
 	/**
 	 * Evaluates a static method on an object generic statement
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testEvalStatictMethod() throws Exception {
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/LabelTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/LabelTests.java
index 3b9a98f..73e9c76 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/LabelTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/LabelTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -26,7 +26,7 @@
 	protected void end() throws Exception {
 		destroyFrame();
 	}
-	
+
 	// if break
 	public void testIfBreak() throws Throwable {
 		try {
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/LocalVarAssignmentTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/LocalVarAssignmentTests.java
index 5bfb4a0..14baacb 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/LocalVarAssignmentTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/LocalVarAssignmentTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -28,7 +28,7 @@
 		destroyFrame();
 	}
 
-	// 
+	//
 
 	public void testByte() throws Throwable {
 		try {
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/LocalVarValueTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/LocalVarValueTests.java
index 5024f73..ad9de1f 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/LocalVarValueTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/LocalVarValueTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -28,7 +28,7 @@
 		destroyFrame();
 	}
 
-	// 
+	//
 
 	public void testByte() throws Throwable {
 		try {
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/LongAssignmentOperatorsTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/LongAssignmentOperatorsTests.java
index bcd98de..418e6e7 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/LongAssignmentOperatorsTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/LongAssignmentOperatorsTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/LongOperatorsTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/LongOperatorsTests.java
index 78a7717..fc128ed 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/LongOperatorsTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/LongOperatorsTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/LoopTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/LoopTests.java
index 47484b2..cc08acb 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/LoopTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/LoopTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -68,7 +68,7 @@
 			end();
 		}
 	}
-	
+
 	// while break
 	public void testWhileBreak() throws Throwable {
 		try {
@@ -110,7 +110,7 @@
 			end();
 		}
 	}
-	
+
 	// while continue
 	public void testWhileContinue() throws Throwable {
 		try {
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_120.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_120.java
index 3c44d49..b528500 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_120.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_120.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_145.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_145.java
index 8cdf0f5..a222ebb 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_145.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_145.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_155.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_155.java
index 53dadfa..96d9200 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_155.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_155.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_179.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_179.java
index cd3efca..af76bbe 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_179.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_179.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_203.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_203.java
index abba283..a1b0993 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_203.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_203.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_214.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_214.java
index 5d08005..a19f2b6 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_214.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_214.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_252.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_252.java
index 0f52c4f..1830d00 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_252.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_252.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_279.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_279.java
index ed4df56..4f8b7b8 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_279.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_279.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_304.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_304.java
index df00470..37bcccc 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_304.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_304.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_315.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_315.java
index c5cd5d9..0ae9a66 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_315.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_315.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_354.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_354.java
index 8c3cc32..57ebb01 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_354.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_354.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_381.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_381.java
index c440ff0..aa19f60 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_381.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_381.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_406.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_406.java
index 3e3f6a2..75d9805 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_406.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_406.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_417.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_417.java
index 89ebabf..385c917 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_417.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_417.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_455.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_455.java
index 94de64e..25aa07a 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_455.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_455.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_481.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_481.java
index 1044c2e..0481dc9 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_481.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_481.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_506.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_506.java
index ef0b70d..6db2849 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_506.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_506.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_517.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_517.java
index d26d682..9a289ae 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_517.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_517.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_529.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_529.java
index 53ed194..482aca1 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_529.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_529.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_566.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_566.java
index a721dba..f4b8587 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_566.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_566.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_592.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_592.java
index ec2e2fc..28d5008 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_592.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_592.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_616.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_616.java
index e292b5d..bce39a5 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_616.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_616.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_626.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_626.java
index 01e82b2..63d7f3e 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_626.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_626.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_65.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_65.java
index d4979ad..511b17e 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_65.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_65.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_664.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_664.java
index 8d0f789..ca65243 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_664.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_664.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_69.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_69.java
index 453178f..fbd25a2 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_69.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_69.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_690.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_690.java
index 471fa99..c0b0308 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_690.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_690.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_714.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_714.java
index 33447ab..68198f3 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_714.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_714.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_724.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_724.java
index ff0cf21..a645556 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_724.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_724.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_739.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_739.java
index 7d8ee2a..697b256 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_739.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_739.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_94.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_94.java
index b46e9cb..f6b64c1 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_94.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NestedTypeFieldValue_94.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NumericTypesCastTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NumericTypesCastTests.java
index bd50c04..7db1324 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NumericTypesCastTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/NumericTypesCastTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/QualifiedFieldValueTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/QualifiedFieldValueTests.java
index 4c5e819..e029bc6 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/QualifiedFieldValueTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/QualifiedFieldValueTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/QualifiedStaticFieldValueTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/QualifiedStaticFieldValueTests.java
index c7a1d24..5bd79b6 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/QualifiedStaticFieldValueTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/QualifiedStaticFieldValueTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/QualifiedStaticFieldValueTests2.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/QualifiedStaticFieldValueTests2.java
index 8931f4c..086dfa1 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/QualifiedStaticFieldValueTests2.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/QualifiedStaticFieldValueTests2.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/ShortAssignmentOperatorsTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/ShortAssignmentOperatorsTests.java
index 161e8c5..561fca8 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/ShortAssignmentOperatorsTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/ShortAssignmentOperatorsTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/ShortOperatorsTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/ShortOperatorsTests.java
index eb3a262..72fc416 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/ShortOperatorsTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/ShortOperatorsTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/StaticFieldValueTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/StaticFieldValueTests.java
index defe22b..9321ef8 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/StaticFieldValueTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/StaticFieldValueTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/StaticFieldValueTests2.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/StaticFieldValueTests2.java
index 4075ff5..71c0002 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/StaticFieldValueTests2.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/StaticFieldValueTests2.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/StringPlusAssignmentOpTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/StringPlusAssignmentOpTests.java
index f5b4558..7260deb 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/StringPlusAssignmentOpTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/StringPlusAssignmentOpTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/StringPlusOpTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/StringPlusOpTests.java
index 311864a..e58613d 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/StringPlusOpTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/StringPlusOpTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/Tests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/Tests.java
index 2e455f6..1ae02ac 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/Tests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/Tests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -39,7 +39,7 @@
 	static final String xString = "\"minus three\"";
 	static final String xBoolean = "true";
 	static final String xNull = "null";
-	
+
 	static byte xByteValue = (byte)-3;
 	static char xCharValue = (char)-3;
 	static short xShortValue = (short)-3;
@@ -61,7 +61,7 @@
 	static final String xVarString = "xVarString";
 	static final String xVarBoolean = "xVarBoolean";
 //	static final String xVarNull = "xVarNull";
-	
+
 	static final byte xVarByteValue = (byte)-5;
 	static final char xVarCharValue = (char)-5;
 	static final short xVarShortValue = (short)-5;
@@ -94,7 +94,7 @@
 	static final String yStringValue = "eight";
 	static final boolean yBooleanValue = false;
 	static final Object yNullValue = null;
-	
+
 	static final String yVarByte = "yVarByte";
 	static final String yVarChar = "yVarChar";
 	static final String yVarShort = "yVarShort";
@@ -105,7 +105,7 @@
 	static final String yVarString = "yVarString";
 	static final String yVarBoolean = "yVarBoolean";
 //	static final String yVarNull = "yVarNull";
-	
+
 	static final byte yVarByteValue = (byte)7;
 	static final char yVarCharValue = (char)7;
 	static final short yVarShortValue = (short)7;
@@ -116,7 +116,7 @@
 	static final String yVarStringValue = "seven";
 	static final boolean yVarBooleanValue = false;
 //	static final Object yVarNullValue = null;
-	
+
 	static final String xFieldByte = "xFieldByte";
 	static final String xFieldChar = "xFieldChar";
 	static final String xFieldShort = "xFieldShort";
@@ -156,7 +156,7 @@
 	static final String yStaticFieldDouble = "yStaticFieldDouble";
 	static final String yStaticFieldString = "yStaticFieldString";
 	static final String yStaticFieldBoolean = "yStaticFieldBoolean";
-	
+
 	static final byte xFieldByteValue = -2;
 	static final char xFieldCharValue = (char)-2;
 	static final short xFieldShortValue = -2;
@@ -196,7 +196,7 @@
 	static final double yStaticFieldDoubleValue = 6.5;
 	static final String yStaticFieldStringValue = "six";
 	static final boolean yStaticFieldBooleanValue = false;
-	
+
 	static final String xArrayByte = "xArrayByte";
 	static final String xArrayChar = "xArrayChar";
 	static final String xArrayShort = "xArrayShort";
@@ -236,8 +236,8 @@
 	static final double[] yArrayDoubleValue = new double[]{7.6, 8.7, 9.8};
 	static final String[] yArrayStringValue = new String[]{"seven", "eight", "nine"};
 	static final boolean[] yArrayBooleanValue = new boolean[]{false, true, false};
-		
-	
+
+
 	static final String plusOp = "+";
 	static final String minusOp = "-";
 	static final String multiplyOp = "*";
@@ -273,8 +273,8 @@
 	static final String postfixPlusPlusOp = "++";
 	static final String prefixMinusMinusOp = "--";
 	static final String postfixMinusMinusOp = "--";
-	
-	
+
+
 	static final String aInt = "a";
 	static final String bInt = "b";
 	static final String cInt = "c";
@@ -347,7 +347,7 @@
 	static final String hStringValue_2 = "eight";
 	static final String iStringValue_2 = "nine";
 	static final String jStringValue_2 = "zero";
-	
+
 	static final String EMPTY= "";
 	static final String THIS= "this.";
 	static final String T_T= "EvalNestedTypeTests.";
@@ -401,7 +401,7 @@
 	static final String I_FB= "i_fb.";
 	static final String I_FC= "i_fc.";
 	static final String I_FD= "i_fd.";
-	
+
 
 	/**
 	 * Constructor for Tests.
@@ -412,24 +412,24 @@
 	}
 
 	static protected IJavaThread fSuspendeeThread;
-	
+
 	static protected IJavaStackFrame fFrame;
-	
+
 	static protected ICompilationUnit fCu;
-	
+
 	static protected IEvaluationEngine fEngine;
-	
+
 
 	static protected IValue eval(String command) {
-		
+
 		class Listener implements IEvaluationListener {
 			IEvaluationResult fResult;
-			
+
 			@Override
 			public void evaluationComplete(IEvaluationResult result) {
 				fResult= result;
 			}
-			
+
 			public IEvaluationResult getResult() {
 				return fResult;
 			}
@@ -463,19 +463,19 @@
 		}
 		return result.getValue();
 	}
-	
+
 	protected void initializeFrame(String testClass, int breakPointLine, int numberFrames) throws Exception {
 		fFrame = getStackFrame(breakPointLine, numberFrames, 0, 0, testClass);
 
 		fEngine = getEvaluationEngine((IJavaDebugTarget)fFrame.getDebugTarget(), get14Project());
 	}
-	
+
 	protected void initializeFrame(String testClass, int breakPointLine, int numberFrames, int hitCount) throws Exception {
 		fFrame = getStackFrame(breakPointLine, numberFrames, 0, hitCount, testClass);
 
 		fEngine = getEvaluationEngine((IJavaDebugTarget)fFrame.getDebugTarget(), get14Project());
 	}
-	
+
 	protected void destroyFrame() throws Exception {
 		try {
 			terminateAndRemove(fSuspendeeThread);
@@ -487,13 +487,13 @@
 		}
 		fFrame = null;
 	}
-	
-	
+
+
 	protected IEvaluationEngine getEvaluationEngine(IJavaDebugTarget vm, IJavaProject project) {
 		IEvaluationEngine engine = EvaluationManager.newAstEvaluationEngine(project, vm);
 		return engine;
-	}		
-	
+	}
+
 	protected IJavaStackFrame getStackFrame(int breakpointLine, int numberFrames, int frameNumber, int hitCount, String testClass) throws Exception {
 		IJavaLineBreakpoint breakpoint= createLineBreakpoint(breakpointLine, testClass);
 		breakpoint.setHitCount(hitCount);
@@ -503,5 +503,5 @@
 		IStackFrame stackFrame= stackFrames[frameNumber];
 		return (IJavaStackFrame)stackFrame;
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsAnonymousClassVariable.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsAnonymousClassVariable.java
index 53217e8..6e81696 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsAnonymousClassVariable.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsAnonymousClassVariable.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -16,7 +16,7 @@
 public class TestsAnonymousClassVariable extends Tests {
 	/**
 	 * Constructor for TestsAnonymousClassVariable.
-	 * 
+	 *
 	 * @param name
 	 */
 	public TestsAnonymousClassVariable(String name) {
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsArrays.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsArrays.java
index 93cbe54..d409581 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsArrays.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsArrays.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsBreakpointConditions.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsBreakpointConditions.java
index 55cb146..d00abe6 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsBreakpointConditions.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsBreakpointConditions.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0

  * which accompanies this distribution, and is available at

  * http://www.eclipse.org/legal/epl-v10.html

- * 

+ *

  * Contributors:

  *     IBM Corporation - initial API and implementation

  *******************************************************************************/

diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsNestedTypes1.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsNestedTypes1.java
index 7cc1b53..08808eb 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsNestedTypes1.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsNestedTypes1.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsNestedTypes2.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsNestedTypes2.java
index 68586c1..d0a1883 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsNestedTypes2.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsNestedTypes2.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsNumberLiteral.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsNumberLiteral.java
index c20b366..fe293f3 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsNumberLiteral.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsNumberLiteral.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsOperators1.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsOperators1.java
index 915500f..b3c918c 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsOperators1.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsOperators1.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsOperators2.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsOperators2.java
index 7395651..24e789f 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsOperators2.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsOperators2.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsTypeHierarchy1.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsTypeHierarchy1.java
index b3eaae6..550fb10 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsTypeHierarchy1.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsTypeHierarchy1.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsTypeHierarchy2.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsTypeHierarchy2.java
index 39468cb..a54b2d5 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsTypeHierarchy2.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TestsTypeHierarchy2.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_119_1.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_119_1.java
index fd21425..d840282 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_119_1.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_119_1.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_146_1.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_146_1.java
index 73891d1..c18101b 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_146_1.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_146_1.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_32_1.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_32_1.java
index 66fcdfb..fc31093 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_32_1.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_32_1.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_32_2.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_32_2.java
index a46a805..80b1029 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_32_2.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_32_2.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_32_3.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_32_3.java
index 6513de7..ed44acb 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_32_3.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_32_3.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_32_4.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_32_4.java
index 3954994..69055ed 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_32_4.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_32_4.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_32_5.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_32_5.java
index 70fddb1..b3dca8f 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_32_5.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_32_5.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_32_6.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_32_6.java
index 1df5827..f5b131c 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_32_6.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_32_6.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_68_1.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_68_1.java
index 3bc0d5b..f89c236 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_68_1.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_68_1.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_68_2.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_68_2.java
index 5cdad0e..76a9e3d 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_68_2.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_68_2.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_68_3.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_68_3.java
index 6a43401..8539848 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_68_3.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/TypeHierarchy_68_3.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/VariableDeclarationTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/VariableDeclarationTests.java
index 048b0de..cf0f5b8 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/VariableDeclarationTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/VariableDeclarationTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/XfixOperatorsTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/XfixOperatorsTests.java
index 800d623..2d14d0f 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/XfixOperatorsTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/XfixOperatorsTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/generator/NestedTypeTestGenerator.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/generator/NestedTypeTestGenerator.java
index e738261..63236e9 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/generator/NestedTypeTestGenerator.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/generator/NestedTypeTestGenerator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -70,13 +70,13 @@
 	static final int I_FC= 37;
 	static final int I_FD= 38;
 
-	static final String[] qualifiers= 
+	static final String[] qualifiers=
 		{"T_T",     "T_T_A",    "T_A",    "T_T_A_AA", "T_A_AA",   "T_AA",   "T_T_this", "T_T_Athis", "T_A_this", "T_B_this",
 		"T_C_this", "T_E_this", "I_A",    "I_AA",     "I_AB",     "I_AC",   "I_AD",     "I_AE",      "I_AF",     "I_B",
 		"I_BB",     "I_BC",     "I_BD",   "I_C",      "I_CB",     "I_CC",   "I_CD",     "I_D",       "I_DB",     "I_DC",
 		"I_DD",     "I_E",      "I_EB",   "I_EC",     "I_ED",     "I_F",    "I_FB",     "I_FC",      "I_FD",     "T_T_B",
 		"T_B",      "T_T_B_BB", "T_B_BB", "T_BB",     "T_T_A_AB", "T_A_AB", "T_AB"};
-	
+
 	static final int [] qualifiersLevel=
 		{0, 1, 1, 2, 2, 2, 0, 1, 1, 1,
 		 1, 1, 1, 2, 2, 2, 2, 2, 2, 1,
@@ -118,10 +118,10 @@
 		gen_evalNestedTypeTestStatic();
 		System.out.println("done");
 	}
-	
+
 	public static void gen_AA_aa() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		createTest('b', 2, code);
 		createTest('c', 2, code);
 		createTest('d', 2, code);
@@ -137,13 +137,13 @@
 		createTestThis('i', 2, code);
 		createTestThis('j', 2, code);
 		createTestsStaticFields_A(code);
-		
+
 		createJavaFile(code, 65, 4);
 	}
-	
+
 	public static void gen_AA_aaStatic() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		createTest('b', 2, code);
 		createTest('d', 2, code);
 		createTest('f', 2, code);
@@ -153,10 +153,10 @@
 
 		createJavaFile(code, 69, 4);
 	}
-	
+
 	public static void gen_AB_ab() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		createTest('b', 2, code);
 		createTest('c', 2, code);
 		createTest('d', 2, code);
@@ -177,13 +177,13 @@
 		createTestQualifier(T_A_this, 'd', code);
 		createTestQualifier(T_A_this, 'g', code);
 		createTestQualifier(T_A_this, 'h', code);
-		
+
 		createJavaFile(code, 94, 4);
 	}
 
 	public static void gen_AC_ac() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		createTest('b', 2, code);
 		createTest('g', 2, code);
 		createTest('h', 2, code);
@@ -192,13 +192,13 @@
 		createTestQualifier(T_A_this, 'd', code);
 		createTestQualifier(T_A_this, 'g', code);
 		createTestQualifier(T_A_this, 'h', code);
-		
+
 		createJavaFile(code, 120, 4);
 	}
-	
+
 	public static void gen_AD_ad() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		createTest('b', 2, code);
 		createTest('g', 2, code);
 		createTest('h', 2, code);
@@ -207,13 +207,13 @@
 		createTestQualifier(T_A_this, 'd', code);
 		createTestQualifier(T_A_this, 'g', code);
 		createTestQualifier(T_A_this, 'h', code);
-		
+
 		createJavaFile(code, 145, 4);
 	}
-	
+
 	public static void gen_A_a() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		createTest('b', 1, code);
 		createTest('c', 1, code);
 		createTest('d', 1, code);
@@ -231,33 +231,33 @@
 		createTestQualifier(I_AB, 'f', code);
 		createTestQualifier(I_AB, 'i', code);
 		createTestQualifier(I_AB, 'j', code);
-		
+
 		createJavaFile(code, 155, 3);
 	}
-	
+
 	public static void gen_AE_ae() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		createTest('b', 2, code);
 		createTest('h', 2, code);
 		createTestsStaticFields_A(code);
-		
+
 		createJavaFile(code, 179, 4);
 	}
-	
+
 	public static void gen_AF_af() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		createTest('b', 2, code);
 		createTest('h', 2, code);
 		createTestsStaticFields_A(code);
-		
+
 		createJavaFile(code, 203, 4);
 	}
-	
+
 	public static void gen_A_aStatic() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		createTest('b', 1, code);
 		createTest('d', 1, code);
 		createTest('f', 1, code);
@@ -269,13 +269,13 @@
 		createTestQualifier(I_AA, 'f', code);
 		createTestQualifier(I_AA, 'i', code);
 		createTestQualifier(I_AA, 'j', code);
-		
+
 		createJavaFile(code, 214, 3);
 	}
-	
+
 	public static void gen_BB_bb() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		createTest('a', 2, code);
 		createTest('b', 2, code);
 		createTest('c', 2, code);
@@ -303,13 +303,13 @@
 		createTestQualifier(T_T_this, 'd', code);
 		createTestQualifier(T_T_this, 'e', code);
 		createTestQualifier(T_T_this, 'f', code);
-		
+
 		createJavaFile(code, 252, 4);
 	}
 
 	public static void gen_BC_bc() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		createTest('a', 2, code);
 		createTest('b', 2, code);
 		createTest('g', 2, code);
@@ -325,13 +325,13 @@
 		createTestQualifier(T_T_this, 'd', code);
 		createTestQualifier(T_T_this, 'e', code);
 		createTestQualifier(T_T_this, 'f', code);
-		
+
 		createJavaFile(code, 279, 4);
 	}
 
 	public static void gen_BD_bd() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		createTest('a', 2, code);
 		createTest('b', 2, code);
 		createTest('g', 2, code);
@@ -347,13 +347,13 @@
 		createTestQualifier(T_T_this, 'd', code);
 		createTestQualifier(T_T_this, 'e', code);
 		createTestQualifier(T_T_this, 'f', code);
-		
+
 		createJavaFile(code, 304, 4);
 	}
 
 	public static void gen_B_b() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		createTest('a', 1, code);
 		createTest('b', 1, code);
 		createTest('c', 1, code);
@@ -379,13 +379,13 @@
 		createTestQualifier(I_BB, 'f', code);
 		createTestQualifier(I_BB, 'i', code);
 		createTestQualifier(I_BB, 'j', code);
-		
+
 		createJavaFile(code, 315, 3);
 	}
 
 	public static void gen_CB_cb() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		createTest('a', 2, code);
 		createTest('b', 2, code);
 		createTestsStaticFields(code);
@@ -395,13 +395,13 @@
 		createTestQualifier(T_T_this, 'd', code);
 		createTestQualifier(T_T_this, 'e', code);
 		createTestQualifier(T_T_this, 'f', code);
-		
+
 		createJavaFile(code, 354, 4);
 	}
 
 	public static void gen_CC_cc() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		createTest('a', 2, code);
 		createTest('b', 2, code);
 		createTestsStaticFields(code);
@@ -411,13 +411,13 @@
 		createTestQualifier(T_T_this, 'd', code);
 		createTestQualifier(T_T_this, 'e', code);
 		createTestQualifier(T_T_this, 'f', code);
-		
+
 		createJavaFile(code, 381, 4);
 	}
 
 	public static void gen_CD_cd() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		createTest('a', 2, code);
 		createTest('b', 2, code);
 		createTestsStaticFields(code);
@@ -427,13 +427,13 @@
 		createTestQualifier(T_T_this, 'd', code);
 		createTestQualifier(T_T_this, 'e', code);
 		createTestQualifier(T_T_this, 'f', code);
-		
+
 		createJavaFile(code, 406, 4);
 	}
 
 	public static void gen_C_c() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		createTest('a', 1, code);
 		createTest('b', 1, code);
 		createTest('e', 1, code);
@@ -445,13 +445,13 @@
 		createTestQualifier(T_T_this, 'd', code);
 		createTestQualifier(T_T_this, 'e', code);
 		createTestQualifier(T_T_this, 'f', code);
-		
+
 		createJavaFile(code, 417, 3);
 	}
 
 	public static void gen_DB_db() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		createTest('a', 2, code);
 		createTest('b', 2, code);
 		createTestsStaticFields(code);
@@ -461,13 +461,13 @@
 		createTestQualifier(T_T_this, 'd', code);
 		createTestQualifier(T_T_this, 'e', code);
 		createTestQualifier(T_T_this, 'f', code);
-		
+
 		createJavaFile(code, 455, 4);
 	}
 
 	public static void gen_DC_dc() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		createTest('a', 2, code);
 		createTest('b', 2, code);
 		createTestsStaticFields(code);
@@ -477,13 +477,13 @@
 		createTestQualifier(T_T_this, 'd', code);
 		createTestQualifier(T_T_this, 'e', code);
 		createTestQualifier(T_T_this, 'f', code);
-		
+
 		createJavaFile(code, 481, 4);
 	}
 
 	public static void gen_DD_dd() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		createTest('a', 2, code);
 		createTest('b', 2, code);
 		createTestsStaticFields(code);
@@ -493,13 +493,13 @@
 		createTestQualifier(T_T_this, 'd', code);
 		createTestQualifier(T_T_this, 'e', code);
 		createTestQualifier(T_T_this, 'f', code);
-		
+
 		createJavaFile(code, 506, 4);
 	}
 
 	public static void gen_D_d() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		createTest('a', 1, code);
 		createTest('b', 1, code);
 		createTest('e', 1, code);
@@ -511,14 +511,14 @@
 		createTestQualifier(T_T_this, 'd', code);
 		createTestQualifier(T_T_this, 'e', code);
 		createTestQualifier(T_T_this, 'f', code);
-		
+
 		createJavaFile(code, 517, 3);
 	}
-	
+
 	public static void gen_evalNestedTypeTest() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
-		
+
+
 		createTest('a', 0, code);
 		createTest('b', 0, code);
 		createTest('c', 0, code);
@@ -542,87 +542,87 @@
 		createTestQualifier(I_BB, 'f', code);
 		createTestQualifier(I_BB, 'i', code);
 		createTestQualifier(I_BB, 'j', code);
-		
+
 		createJavaFile(code, 529, 2);
 	}
 
 	public static void gen_EB_eb() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		createTest('b', 2, code);
 		createTestsStaticFields(code);
-		
+
 		createJavaFile(code, 566, 4);
 	}
 
 	public static void gen_EC_ec() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		createTest('b', 2, code);
 		createTestsStaticFields(code);
-		
+
 		createJavaFile(code, 592, 4);
 	}
 
 	public static void gen_ED_ed() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		createTest('b', 2, code);
 		createTestsStaticFields(code);
-		
+
 		createJavaFile(code, 616, 4);
 	}
 
 	public static void gen_E_e() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		createTest('b', 1, code);
 		createTest('f', 1, code);
 		createTestsStaticFields(code);
-		
+
 		createJavaFile(code, 626, 3);
 	}
-	
+
 	public static void gen_FB_fb() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		createTest('b', 2, code);
 		createTestsStaticFields(code);
-		
+
 		createJavaFile(code, 664, 4);
 	}
 
 	public static void gen_FC_fc() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		createTest('b', 2, code);
 		createTestsStaticFields(code);
-		
+
 		createJavaFile(code, 690, 4);
 	}
 
 	public static void gen_FD_fd() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		createTest('b', 2, code);
 		createTestsStaticFields(code);
-		
+
 		createJavaFile(code, 714, 4);
 	}
 
 	public static void gen_F_f() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		createTest('b', 1, code);
 		createTest('f', 1, code);
 		createTestsStaticFields(code);
-		
+
 		createJavaFile(code, 724, 3);
 	}
-	
+
 	public static void gen_evalNestedTypeTestStatic() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		createTest('b', 0, code);
 		createTest('d', 0, code);
 		createTest('f', 0, code);
@@ -643,20 +643,20 @@
 		createTestQualifier(I_AB, 'f', code);
 		createTestQualifier(I_AB, 'i', code);
 		createTestQualifier(I_AB, 'j', code);
-		
+
 		createJavaFile(code, 739, 2);
 	}
-	
+
 	public static void gen_main() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		createTestsStaticFields(code);
 
 		createJavaFile(code, 745, 1);
 	}
 
 	// ------------------------------
-	
+
 	public static void createTestsStaticFields(StringBuffer code) {
 		createTestQualifier(T_T, 'b', code);
 		createTestQualifier(T_T, 'd', code);
@@ -688,7 +688,7 @@
 		createTestQualifier(T_B_BB, 'f', code);
 		createTestQualifier(T_B_BB, 'j', code);
 	}
-	
+
 	public static void createTestsStaticFields_A(StringBuffer code) {
 		createTestsStaticFields(code);
 		createTestQualifier(T_AA, 'd', code);
@@ -698,76 +698,76 @@
 		createTestQualifier(T_AB, 'f', code);
 		createTestQualifier(T_AB, 'j', code);
 	}
-	
+
 	public static void createTestsStaticFields_B(StringBuffer code) {
 		createTestsStaticFields(code);
 		createTestQualifier(T_BB, 'd', code);
 		createTestQualifier(T_BB, 'f', code);
 		createTestQualifier(T_BB, 'j', code);
 	}
-	
+
 	// ------------------------------
-	
+
 	public static void createTest(char variable, int level, StringBuffer code) {
 		code.append("\tpublic void testEvalNestedTypeTest_" + variable + "() throws Throwable {\n");
 		tryBlockBegin(code);
-		
+
 		genCodeEval(IInternalDebugCoreConstants.EMPTY_STRING + variable + "Int", true, code);
 		genCodeReturnTypeCheck(IInternalDebugCoreConstants.EMPTY_STRING + variable, "int", true, code);
 		genCodeReturnValueCheckPrimitiveType(IInternalDebugCoreConstants.EMPTY_STRING + variable, "int", "Int", variable + "IntValue_" + level, true, code);
 		code.append("\n");
-		
+
 		genCodeEval(IInternalDebugCoreConstants.EMPTY_STRING + variable + "String", false, code);
 		genCodeReturnTypeCheck(IInternalDebugCoreConstants.EMPTY_STRING + variable, "java.lang.String", false, code);
 		genCodeReturnValueCheckStringType(IInternalDebugCoreConstants.EMPTY_STRING + variable, variable + "StringValue_" + level, true, code);
-		
+
 		tryBlockEnd(code);
 		code.append("\t}\n\n");
 	}
-	
+
 	public static void createTestThis(char variable, int level, StringBuffer code) {
 		code.append("\tpublic void testEvalNestedTypeTest_this_" + variable + "() throws Throwable {\n");
 		tryBlockBegin(code);
-		
+
 		genCodeEval("THIS + " + variable + "Int", true, code);
 		genCodeReturnTypeCheck(IInternalDebugCoreConstants.EMPTY_STRING + variable, "int", true, code);
 		genCodeReturnValueCheckPrimitiveType(IInternalDebugCoreConstants.EMPTY_STRING + variable, "int", "Int", variable + "IntValue_" + level, true, code);
 		code.append("\n");
-		
+
 		genCodeEval("THIS + " + variable + "String", false, code);
 		genCodeReturnTypeCheck(IInternalDebugCoreConstants.EMPTY_STRING + variable, "java.lang.String", false, code);
 		genCodeReturnValueCheckStringType(IInternalDebugCoreConstants.EMPTY_STRING + variable, variable + "StringValue_" + level, true, code);
-		
+
 		tryBlockEnd(code);
 		code.append("\t}\n\n");
 	}
-	
-	
-	
+
+
+
 	public static void createTestQualifier(int qualifier, char variable, StringBuffer code) {
 		String strQualifier= qualifiers[qualifier];
 		code.append("\tpublic void testEvalNestedTypeTest_" + strQualifier + "_" + variable + "() throws Throwable {\n");
 		tryBlockBegin(code);
-		
+
 		genCodeEval(strQualifier + " + " + variable + "Int", true, code);
 		genCodeReturnTypeCheck(IInternalDebugCoreConstants.EMPTY_STRING + strQualifier + "_" + variable, "int", true, code);
 		genCodeReturnValueCheckPrimitiveType(IInternalDebugCoreConstants.EMPTY_STRING + strQualifier + "_" + variable, "int", "Int", variable + "IntValue_" + qualifiersLevel[qualifier], true, code);
 		code.append("\n");
-		
+
 		genCodeEval(strQualifier + " + " + variable + "String", false, code);
 		genCodeReturnTypeCheck(IInternalDebugCoreConstants.EMPTY_STRING + strQualifier + "_" + variable, "java.lang.String", false, code);
 		genCodeReturnValueCheckStringType(IInternalDebugCoreConstants.EMPTY_STRING + strQualifier + "_" + variable, variable + "StringValue_" + qualifiersLevel[qualifier], true, code);
-		
+
 		tryBlockEnd(code);
 		code.append("\t}\n\n");
 	}
-	
+
 	//---------------------
-	
+
 	public static void createJavaFile(StringBuffer tests, int lineNumber, int numberFrames) throws Exception {
-		
+
 		StringBuffer code= new StringBuffer();
-		
+
 		code.append("/*******************************************************************************\n");
 		code.append(" * Copyright (c) 2002, 2003 IBM Corporation and others.\n");
 		code.append(" * All rights reserved. This program and the accompanying materials \n");
@@ -796,11 +796,11 @@
 		code.append("\tprotected void end() throws Exception {\n");
 		code.append("\t\tdestroyFrame();\n");
 		code.append("\t}\n\n");
-		
+
 		code.append(tests.toString());
-		
+
 		code.append("}\n");
-		
+
 		try (Writer file = new FileWriter(new File("NestedTypeFieldValue_" + lineNumber + ".java").getAbsoluteFile())) {
 			file.write(code.toString());
 		}
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/generator/OtherTestsGenerator.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/generator/OtherTestsGenerator.java
index d93e356..b34c075 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/generator/OtherTestsGenerator.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/generator/OtherTestsGenerator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -17,7 +17,7 @@
 public class OtherTestsGenerator extends TestGenerator {
 
 	public static void main(String[] args) throws Exception {
-		
+
 		genTestsOperators1();
 		genTestsOperators2();
 		genTestsArray();
@@ -26,7 +26,7 @@
 		genTestsTypeHierarchy1();
 		genTestsTypeHierarchy2();
 		genTestNumberLiteral();
-		
+
 		genInstanceOfTests();
 
 		System.out.println("done");
@@ -34,29 +34,29 @@
 
 	public static void genTestsOperators1() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		genTestTypeBinaryOpTypeBinaryPromotion(T_int, Op_plus, T_int, code);
 		genTestTypeBinaryOpTypeBinaryPromotion(T_String, Op_plus, T_String, code);
 		genTestLocalVarValue(T_int, code);
 		genTestLocalVarValue(T_String, code);
-		
+
 		createJavaFile(code, "TestsOperators1", "EvalSimpleTests", 37, 1, 1);
 	}
 
 	public static void genTestsOperators2() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		genTestLocalVarAssignment(T_int, code);
 		genTestLocalVarAssignment(T_String, code);
 		genTestTypeAssignmentOpType(T_int, Op_plusAss, T_int, code);
 		genTestTypeAssignmentOpType(T_String, Op_plusAss, T_String, code);
-		
+
 		createJavaFile(code, "TestsOperators2", "EvalSimpleTests", 37, 1, 1);
 	}
-	
+
 	public static void genTestsArray() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		genTestArrayValue(T_int, code);
 		genTestArrayLength(T_int, code);
 		genTestArrayAssignment(T_int, code);
@@ -66,13 +66,13 @@
 		genTestArrayLength(T_String, code);
 		genTestArrayAssignment(T_String, code);
 		genTestArrayInitialization(T_String, code);
-		
+
 		createJavaFile(code, "TestsArrays", "EvalArrayTests", 37, 1, 1);
 	}
 
 	public static void genTestsNestedTypes1() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		NestedTypeTestGenerator.createTest('a', 2, code);
 		NestedTypeTestGenerator.createTest('d', 2, code);
 		NestedTypeTestGenerator.createTest('e', 2, code);
@@ -104,7 +104,7 @@
 
 	public static void genTestsNestedTypes2() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		NestedTypeTestGenerator.createTest('f', 0, code);
 		NestedTypeTestGenerator.createTestQualifier(NestedTypeTestGenerator.T_T, 'b', code);
 		NestedTypeTestGenerator.createTestQualifier(NestedTypeTestGenerator.T_T_A, 'd', code);
@@ -131,7 +131,7 @@
 
 	public static void genTestsTypeHierarchy1() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		TypeHierarchyTestsGenerator.createTestQualifier(TypeHierarchyTestsGenerator.IAA, TypeHierarchyTestsGenerator.M1, code);
 		TypeHierarchyTestsGenerator.createTestQualifier(TypeHierarchyTestsGenerator.AA, TypeHierarchyTestsGenerator.M2, code);
 		TypeHierarchyTestsGenerator.createTestQualifier(TypeHierarchyTestsGenerator.AB, TypeHierarchyTestsGenerator.S2, code);
@@ -146,7 +146,7 @@
 		TypeHierarchyTestsGenerator.createTestQualifier(TypeHierarchyTestsGenerator.CC, TypeHierarchyTestsGenerator.M2, code);
 		TypeHierarchyTestsGenerator.createTestQualifier(TypeHierarchyTestsGenerator.CC, TypeHierarchyTestsGenerator.M4, code);
 		TypeHierarchyTestsGenerator.createTestQualifier(TypeHierarchyTestsGenerator.CC, TypeHierarchyTestsGenerator.M6, code);
-		
+
 		TypeHierarchyTestsGenerator.createTestQualifier(TypeHierarchyTestsGenerator.N_A, TypeHierarchyTestsGenerator.M1, code);
 		TypeHierarchyTestsGenerator.createTestQualifier(TypeHierarchyTestsGenerator.N_B, TypeHierarchyTestsGenerator.M1, code);
 		TypeHierarchyTestsGenerator.createTestQualifier(TypeHierarchyTestsGenerator.N_B, TypeHierarchyTestsGenerator.M2, code);
@@ -162,7 +162,7 @@
 		StringBuffer code= new StringBuffer();
 
 		TypeHierarchyTestsGenerator.createTest_TestC(code, TypeHierarchyTestsGenerator.CC);
-		
+
 		createJavaFile(code, "TestsTypeHierarchy2", "EvalTypeHierarchyTests",   119, 2, 1, false);
 	}
 
@@ -190,7 +190,7 @@
 		createTestNumberLiteral1("0xDadaCafe", T_int, code);
 		createTestNumberLiteral1("1996", T_int, code);
 		createTestNumberLiteral1("0x00FF00FF", T_int, code);
-		
+
 		createTestNumberLiteral1("0L", T_long, code);
 		createTestNumberLiteral1("00L", T_long, code);
 		createTestNumberLiteral1("0x0L", T_long, code);
@@ -208,7 +208,7 @@
 		createTestNumberLiteral1("0x100000000L", T_long, code);
 		createTestNumberLiteral1("2147483648L", T_long, code);
 		createTestNumberLiteral1("0xC0B0L", T_long, code);
-		
+
 		createTestNumberLiteral2("3.40282347e+38f", T_float, code);
 		createTestNumberLiteral2("1.40239846e-45f", T_float, code);
 		createTestNumberLiteral2("1e1f", T_float, code);
@@ -236,7 +236,7 @@
 	 */
 	private static void createTestNumberLiteral1(String literal, int type, StringBuffer code) {
 		String tName= fTypeName[type];
-		
+
 		code.append("\tpublic void test" + literal.replace('-', 'N').replace('.', '_').replace('+', 'P') + "() throws Throwable {\n");
 		tryBlockBegin(code);
 		genCodeEval("\"" + literal + '"', true, code);
@@ -251,7 +251,7 @@
 	 */
 	private static void createTestNumberLiteral2(String literal, int type, StringBuffer code) {
 		String tName= fTypeName[type];
-		
+
 		code.append("\tpublic void test" + literal.replace('-', 'N').replace('.', '_').replace('+', 'P') + "() throws Throwable {\n");
 		tryBlockBegin(code);
 		genCodeEval("\"" + literal + '"', true, code);
@@ -268,11 +268,11 @@
 	public static void createJavaFile(StringBuffer tests, String className, String testClass, int lineNumber, int numberFrames, int hitCount) throws Exception {
 		createJavaFile(tests, className, testClass, lineNumber, numberFrames, hitCount, true);
 	}
-		
+
 	public static void createJavaFile(StringBuffer tests, String className, String testClass, int lineNumber, int numberFrames, int hitCount, boolean importJDIObjectValue) throws Exception {
-		
+
 		StringBuffer code= new StringBuffer();
-		
+
 		code.append("/*******************************************************************************\n");
 		code.append(" * Copyright (c) 2002, 2003 IBM Corporation and others.\n");
 		code.append(" * All rights reserved. This program and the accompanying materials \n");
@@ -303,14 +303,14 @@
 		code.append("\tprotected void end() throws Exception {\n");
 		code.append("\t\tdestroyFrame();\n");
 		code.append("\t}\n\n");
-		
+
 		code.append(tests.toString());
-		
+
 		code.append("}\n");
-		
+
 		try (Writer file = new FileWriter(new File(className + ".java").getAbsoluteFile())) {
 			file.write(code.toString());
 		}
-		
+
 	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/generator/TestGenerator.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/generator/TestGenerator.java
index 749bd32..46622de 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/generator/TestGenerator.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/generator/TestGenerator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -17,15 +17,15 @@
 import org.eclipse.debug.internal.core.IInternalDebugCoreConstants;
 
 public class TestGenerator {
-	
+
 	static protected int getPromotionType(int left, int right) {
 		return fTypeTable[left][right];
 	}
-	
+
 	static protected int getUnaryPromotionType(int type) {
 		return fTypeTable[type][T_int];
 	}
-	
+
 	static protected boolean needCast(int type1, int type2) {
 		if (type1 == type2) {
 			return false;
@@ -62,7 +62,7 @@
 	static final int T_int = 10;
 	static final int T_String = 11;
 	static final int T_null = 12;
-	
+
 	private static final int[][] fTypeTable= {
 /* undefined */	{T_undefined, T_undefined, T_undefined, T_undefined, T_undefined, T_undefined, T_undefined, T_undefined, T_undefined, T_undefined, T_undefined, T_undefined, T_undefined},
 /* object */	{T_undefined, T_undefined, T_undefined, T_undefined, T_undefined, T_undefined, T_undefined, T_undefined, T_undefined, T_undefined, T_undefined, T_String, T_undefined},
@@ -78,11 +78,11 @@
 /* String */	{T_undefined, T_String, T_String, T_String, T_String, T_String, T_undefined, T_String, T_String, T_String, T_String, T_String, T_String},
 /* null */		{T_undefined, T_undefined, T_undefined, T_undefined, T_undefined, T_undefined, T_undefined, T_undefined, T_undefined, T_undefined, T_undefined, T_String, T_undefined},
 	};
-	
+
 	static final String[] fTypeName = new String[] {"undefined", "java.lang.Object", "char", "byte", "short", "boolean", "void", "long", "double", "float", "int", "java.lang.String", "null"};
 
 	static final String[] typeUpperName = new String[] {"Undefined", "Object", "Char", "Byte", "Short", "Boolean", "Void", "Long", "Double", "Float", "Int", "String", "Null"};
-	
+
 	static final int Op_plus = 0;
 	static final int Op_minus = 1;
 	static final int Op_multiply = 2;
@@ -118,17 +118,17 @@
 	static final int Op_postfixPlusPlus = 32;
 	static final int Op_prefixMinusMinus = 33;
 	static final int Op_postfixMinusMinus = 34;
-	
+
 	static final String[] opSymbol = new String[] {"+", "-", "*", "/", "%", ">", ">=", "<", "<=", "==", "!=", "<<", ">>", ">>>", "|", "&", "^", "~", "!", "=", "+=", "-=", "*=", "/=", "%=", "<<=", ">>=", ">>>=", "|=", "&=", "^=", "++", "++", "--", "--"};
-	
+
 	static final String[] opName = new String[] {"plus", "minus", "multiply", "divide", "remainder", "greater", "greaterEqual", "less", "lessEqual", "equalEqual", "notEqual", "leftShift", "rightShift", "unsignedRightShift", "or", "and", "xor", "twiddle", "not", "equal", "plusAssignment", "minusAssignment", "multiplyAssignment", "divideAssignment", "remainderAssignment", "leftShiftAssignment", "rightShiftAssignment", "unsignedRightShiftAssignment", "orAssignment", "andAssignment", "xorAssignment", "prefixPlusPlus", "postfixPlusPlus", "prefixMinusMinus", "postfixMinusMinus"};
-	
+
 	static final String[] opUpperName = new String[] {"Plus", "Minus", "Multiply", "Divide", "Remainder", "Greater", "GreaterEqual", "Less", "LessEqual", "EqualEqual", "NotEqual", "LeftShift", "RightShift", "UnsignedRightShift", "Or", "And", "Xor", "Twiddle", "Not", "Equal", "PlusAssignment", "MinusAssignment", "MultiplyAssignment", "DivideAssignment", "RemainderAssignment", "LeftShiftAssignment", "RightShiftAssignment", "UnsignedRightShiftAssignment", "OrAssignment", "AndAssignment", "XorAssignment", "PrefixPlusPlus", "PostfixPlusPlus", "PrefixMinusMinus", "PostfixMinusMinus"};
-	
+
 	static final String[] immediate = new String[] {"x", "y"};
-	
+
 	static final String[] fVariable = new String[] {"xVar", "yVar", "xArray", "yArray"};
-	
+
 	static final String[] field = new String[] {"xField", "yField", "xStaticField", "yStaticField"};
 
 	static final String[] prefixList = new String[] {"foo.", "EvalTypeTests.", IInternalDebugCoreConstants.EMPTY_STRING};
@@ -138,7 +138,7 @@
 	 * in the correct package location.
 	 */
 	static public void main(String[] args) throws Exception {
-		
+
 		genTestsNumericTypeAllOpsAllTypes(T_byte);
 		genTestsNumericTypeAllOpsAllTypes(T_char);
 		genTestsNumericTypeAllOpsAllTypes(T_short);
@@ -148,11 +148,11 @@
 		genTestsNumericTypeAllOpsAllTypes(T_double);
 		genTestsBooleanAllOpsBoolean();
 		genTestsStringPlusOpAllTypes();
-		
+
 		genTestsLocalVarValue();
-		
+
 		genTestsLocalVarAssignment();
-		
+
 		genTestsNumericTypeAllAssignmentOpsAllTypes(T_byte);
 		genTestsNumericTypeAllAssignmentOpsAllTypes(T_char);
 		genTestsNumericTypeAllAssignmentOpsAllTypes(T_short);
@@ -162,33 +162,33 @@
 		genTestsNumericTypeAllAssignmentOpsAllTypes(T_double);
 		genTestsBooleanAllAssignmentOpsBoolean();
 		genTestsStringPlusAssignmentOpAllTypes();
-		
+
 		genTestsNumericTypeCast();
-		
+
 		genTestsAllIntegerTypesAllXfixOps();
-		
+
 		genTestsQualifiedFieldValue();
 		genTestsQualifiedStaticFieldValue();
 		genTestsFieldValue();
 		genTestsStaticFieldValue();
-		
+
 		genTestsArrayValue();
 		genTestsArrayAssignment();
 		genTestsArrayAllocation();
 		genTestsArrayInitialization();
 
 		System.out.println("done");
-		
+
 	}
 
 	//-------------------------------
-	
+
 	public static void genTestsNumericTypeAllOpsAllTypes(int type) throws Exception {
-		
+
 		StringBuffer code = new StringBuffer();
-		
+
 		String className = typeUpperName[type] + "OperatorsTests";
-		
+
 		genTestsNumericTypeArithmeticOpNumericTypes(type, Op_plus, code);
 		genTestTypeBinaryOpTypeBinaryPromotion(type, Op_plus, T_String, code);
 		genTestsNumericTypeArithmeticOpNumericTypes(type, Op_minus, code);
@@ -209,36 +209,36 @@
 			genTestsIntegerTypeBooleanOpIntegerTypes(type, Op_and, code);
 			genTestsIntegerTypeBooleanOpIntegerTypes(type, Op_xor, code);
 		}
-		
+
 		genTestUnaryOpNumericType(type, Op_plus, code);
 		genTestUnaryOpNumericType(type, Op_minus, code);
 		if (type != T_float && type != T_double) {
 			genTestUnaryOpNumericType(type, Op_twiddle, code);
 		}
-		
+
 		createJavaFile(className, "EvalSimpleTests", 15, 1, true, code);
 
 	}
-	
+
 	public static void genTestsBooleanAllOpsBoolean() throws Exception {
 		StringBuffer code = new StringBuffer();
-		
+
 		String className = "BooleanOperatorsTests";
-		
+
 		genTestBooleanBinaryOpBoolean(Op_or, code);
 		genTestBooleanBinaryOpBoolean(Op_and, code);
 		genTestBooleanBinaryOpBoolean(Op_xor, code);
 		genTestUnaryOpBoolean(Op_not, code);
-		
+
 		createJavaFile(className, "EvalSimpleTests", 15, 1, false, code);
 	}
-	
+
 	public static void genTestsStringPlusOpAllTypes() throws Exception {
-		
+
 		StringBuffer code = new StringBuffer();
-		
+
 		String className = "StringPlusOpTests";
-		
+
 		code.append("\t// " + fTypeName[T_String] + " " + opSymbol[Op_plus] + " {" + fTypeName[T_byte] + ", " + fTypeName[T_char] + ", " + fTypeName[T_short] + ", " + fTypeName[T_int] + ", " + fTypeName[T_long] + ", " + fTypeName[T_String] + ", " + fTypeName[T_null] + "}\n" +
 					"\n");
 
@@ -251,18 +251,18 @@
 		genTestTypeBinaryOpTypeBinaryPromotion(T_String, Op_plus, T_boolean, code);
 		genTestTypeBinaryOpTypeBinaryPromotion(T_String, Op_plus, T_String, code);
 		genTestTypeBinaryOpTypeBinaryPromotion(T_String, Op_plus, T_null, code);
-		
+
 		createJavaFile(className, "EvalSimpleTests", 15, 1, true, false, code);
 	}
-	
+
 	public static void genTestsLocalVarValue() throws Exception {
 		StringBuffer code = new StringBuffer();
-		
+
 		String className = "LocalVarValueTests";
-		
+
 		code.append("\t// \n" +
 					"\n");
-					
+
 		genTestLocalVarValue(T_byte, code);
 		genTestLocalVarValue(T_char, code);
 		genTestLocalVarValue(T_short, code);
@@ -276,15 +276,15 @@
 
 		createJavaFile(className, "EvalSimpleTests", 37, 1, true, code);
 	}
-	
+
 	public static void genTestsLocalVarAssignment() throws Exception {
 		StringBuffer code = new StringBuffer();
-		
+
 		String className = "LocalVarAssignmentTests";
-		
+
 		code.append("\t// \n" +
 					"\n");
-					
+
 		genTestLocalVarAssignment(T_byte, code);
 		genTestLocalVarAssignment(T_char, code);
 		genTestLocalVarAssignment(T_short, code);
@@ -294,16 +294,16 @@
 		genTestLocalVarAssignment(T_double, code);
 		genTestLocalVarAssignment(T_String, code);
 		genTestLocalVarAssignment(T_boolean, code);
-					
+
 		createJavaFile(className, "EvalSimpleTests", 37, 1, true, code);
 	}
-	
+
 	public static void genTestsNumericTypeAllAssignmentOpsAllTypes(int type) throws Exception {
-		
+
 		StringBuffer code = new StringBuffer();
-		
+
 		String className = typeUpperName[type] + "AssignmentOperatorsTests";
-		
+
 		genTestsNumericTypeArithmeticAssignmentOpNumericTypes(type, Op_plusAss, code);
 		genTestsNumericTypeArithmeticAssignmentOpNumericTypes(type, Op_minusAss, code);
 		genTestsNumericTypeArithmeticAssignmentOpNumericTypes(type, Op_multiplyAss, code);
@@ -317,38 +317,38 @@
 			genTestsIntegerTypeArithmeticAssignmentOpIntegerTypes(type, Op_andAss, code);
 			genTestsIntegerTypeArithmeticAssignmentOpIntegerTypes(type, Op_xorAss, code);
 		}
-		
-		
+
+
 		createJavaFile(className, "EvalSimpleTests", 37, 1, false, code);
 
 	}
 
 	public static void genTestsBooleanAllAssignmentOpsBoolean() throws Exception {
 		StringBuffer code = new StringBuffer();
-		
+
 		String className = "BooleanAssignmentOperatorsTests";
-		
+
 		code.append("\t// " + fTypeName[T_boolean] + " " + opSymbol[Op_orAss] + " " + fTypeName[T_boolean] + "\n" +
 					"\n");
 		genTestTypeAssignmentOpType(T_boolean, Op_orAss, T_boolean, code);
-		
+
 		code.append("\t// " + fTypeName[T_boolean] + " " + opSymbol[Op_andAss] + " " + fTypeName[T_boolean] + "\n" +
 					"\n");
 		genTestTypeAssignmentOpType(T_boolean, Op_andAss, T_boolean, code);
-		
+
 		code.append("\t// " + fTypeName[T_boolean] + " " + opSymbol[Op_xorAss] + " " + fTypeName[T_boolean] + "\n" +
 					"\n");
 		genTestTypeAssignmentOpType(T_boolean, Op_xorAss, T_boolean, code);
-		
+
 		createJavaFile(className, "EvalSimpleTests", 37, 1, false, code);
 	}
-	
+
 	public static void genTestsStringPlusAssignmentOpAllTypes() throws Exception {
-		
+
 		StringBuffer code = new StringBuffer();
-		
+
 		String className = "StringPlusAssignmentOpTests";
-		
+
 		code.append("\t// " + fTypeName[T_String] + " " + opSymbol[Op_plusAss] + " {" + fTypeName[T_byte] + ", " + fTypeName[T_char] + ", " + fTypeName[T_short] + ", " + fTypeName[T_int] + ", " + fTypeName[T_long] + ", " + fTypeName[T_String] + ", " + fTypeName[T_null] + "}\n" +
 					"\n");
 
@@ -361,15 +361,15 @@
 		genTestTypeAssignmentOpType(T_String, Op_plusAss, T_double, code);
 		genTestTypeAssignmentOpType(T_String, Op_plusAss, T_String, code);
 		genTestTypeAssignmentOpType(T_String, Op_plusAss, T_null, code);
-		
+
 		createJavaFile(className, "EvalSimpleTests", 37, 1, true, false, code);
 	}
-	
+
 	public static void genTestsNumericTypeCast() throws Exception {
 		StringBuffer code = new StringBuffer();
-		
+
 		String className = "NumericTypesCastTests";
-		
+
 		genTestsNumericTypeCast(T_byte, code);
 		genTestsNumericTypeCast(T_char, code);
 		genTestsNumericTypeCast(T_short, code);
@@ -377,15 +377,15 @@
 		genTestsNumericTypeCast(T_long, code);
 		genTestsNumericTypeCast(T_float, code);
 		genTestsNumericTypeCast(T_double, code);
-					
+
 		createJavaFile(className, "EvalSimpleTests", 15, 1, false, code);
 	}
-	
+
 	public static void genTestsAllIntegerTypesAllXfixOps() throws Exception {
 		StringBuffer code = new StringBuffer();
-		
+
 		String className = "XfixOperatorsTests";
-		
+
 		genTestsNumericTypeAllXfixOps(T_byte, code);
 		genTestsNumericTypeAllXfixOps(T_char, code);
 		genTestsNumericTypeAllXfixOps(T_short, code);
@@ -393,15 +393,15 @@
 		genTestsNumericTypeAllXfixOps(T_long, code);
 		genTestsNumericTypeAllXfixOps(T_float, code);
 		genTestsNumericTypeAllXfixOps(T_double, code);
-		
+
 		createJavaFile(className, "EvalSimpleTests", 37, 1, false, code);
 	}
-	
+
 	public static void genTestsQualifiedFieldValue() throws Exception {
 		StringBuffer code = new StringBuffer();
-		
+
 		String className = "QualifiedFieldValueTests";
-		
+
 		genTestFieldValue(T_byte, 0, code);
 		genTestFieldValue(T_char, 0, code);
 		genTestFieldValue(T_short, 0, code);
@@ -414,12 +414,12 @@
 
 		createJavaFile(className, "EvalTypeTests", 73, 1, true, code);
 	}
-		
+
 	public static void genTestsQualifiedStaticFieldValue() throws Exception {
 		StringBuffer code = new StringBuffer();
-		
+
 		String className = "QualifiedStaticFieldValueTests";
-		
+
 		genTestStaticFieldValue(T_byte, 0, code);
 		genTestStaticFieldValue(T_char, 0, code);
 		genTestStaticFieldValue(T_short, 0, code);
@@ -433,9 +433,9 @@
 		createJavaFile(className, "EvalTypeTests", 73, 1, true, code);
 
 		code = new StringBuffer();
-		
+
 		className = "QualifiedStaticFieldValueTests2";
-		
+
 		genTestStaticFieldValue(T_byte, 1, code);
 		genTestStaticFieldValue(T_char, 1, code);
 		genTestStaticFieldValue(T_short, 1, code);
@@ -448,12 +448,12 @@
 
 		createJavaFile(className, "EvalTypeTests", 73, 1, true, code);
 	}
-		
+
 	public static void genTestsFieldValue() throws Exception {
 		StringBuffer code = new StringBuffer();
-		
+
 		String className = "FieldValueTests";
-		
+
 		genTestFieldValue(T_byte, 2, code);
 		genTestFieldValue(T_char, 2, code);
 		genTestFieldValue(T_short, 2, code);
@@ -466,12 +466,12 @@
 
 		createJavaFile(className, "EvalTypeTests", 63, 2, true, code);
 	}
-		
+
 	public static void genTestsStaticFieldValue() throws Exception {
 		StringBuffer code = new StringBuffer();
-		
+
 		String className = "StaticFieldValueTests";
-		
+
 		genTestStaticFieldValue(T_byte, 2, code);
 		genTestStaticFieldValue(T_char, 2, code);
 		genTestStaticFieldValue(T_short, 2, code);
@@ -485,15 +485,15 @@
 		createJavaFile(className, "EvalTypeTests", 63, 2, true, code);
 
 		className = "StaticFieldValueTests2";
-		
+
 		createJavaFile(className, "EvalTypeTests", 67, 2, true, code);
 	}
-		
+
 	public static void genTestsArrayValue() throws Exception {
 		StringBuffer code = new StringBuffer();
-		
+
 		String className = "ArrayValueTests";
-		
+
 		genTestArrayLength(T_byte, code);
 		genTestArrayLength(T_char, code);
 		genTestArrayLength(T_short, code);
@@ -516,12 +516,12 @@
 
 		createJavaFile(className, "EvalArrayTests", 37, 1, true, code);
 	}
-		
+
 	public static void genTestsArrayAssignment() throws Exception {
 		StringBuffer code = new StringBuffer();
-		
+
 		String className = "ArrayAssignmentTests";
-		
+
 		genTestArrayAssignment(T_byte, code);
 		genTestArrayAssignment(T_char, code);
 		genTestArrayAssignment(T_short, code);
@@ -534,12 +534,12 @@
 
 		createJavaFile(className, "EvalArrayTests", 37, 1, true, code);
 	}
-		
+
 	public static void genTestsArrayAllocation() throws Exception {
 		StringBuffer code = new StringBuffer();
-		
+
 		String className = "ArrayAllocationTests";
-		
+
 		genTestArrayAllocation(T_byte, code);
 		genTestArrayAllocation(T_char, code);
 		genTestArrayAllocation(T_short, code);
@@ -552,12 +552,12 @@
 
 		createJavaFile(className, "EvalArrayTests", 37, 1, false, code);
 	}
-		
+
 	public static void genTestsArrayInitialization() throws Exception {
 		StringBuffer code = new StringBuffer();
-		
+
 		String className = "ArrayInitializationTests";
-		
+
 		genTestArrayInitialization(T_byte, code);
 		genTestArrayInitialization(T_char, code);
 		genTestArrayInitialization(T_short, code);
@@ -571,12 +571,12 @@
 		createJavaFile(className, "EvalArrayTests", 37, 1, true, code);
 	}
 	//----------------------------
-	
+
 	public static void genTestsNumericTypeArithmeticOpNumericTypes(int type, int op, StringBuffer code) {
-		
+
 		code.append("\t// " + fTypeName[type] + " " + opSymbol[op] + " {" + fTypeName[T_byte] + ", " + fTypeName[T_char] + ", " + fTypeName[T_short] + ", " + fTypeName[T_int] + ", " + fTypeName[T_long] + ", " + fTypeName[T_float] + ", " + fTypeName[T_double] + "}\n" +
 					"\n");
-		
+
 		genTestTypeBinaryOpTypeBinaryPromotion(type, op, T_byte, code);
 		genTestTypeBinaryOpTypeBinaryPromotion(type, op, T_char, code);
 		genTestTypeBinaryOpTypeBinaryPromotion(type, op, T_short, code);
@@ -584,14 +584,14 @@
 		genTestTypeBinaryOpTypeBinaryPromotion(type, op, T_long, code);
 		genTestTypeBinaryOpTypeBinaryPromotion(type, op, T_float, code);
 		genTestTypeBinaryOpTypeBinaryPromotion(type, op, T_double, code);
-		
+
 	}
-	
+
 	public static void genTestsNumericTypeComparisonOpNumericTypes(int type, int op, StringBuffer code) {
-		
+
 		code.append("\t// " + fTypeName[type] + " " + opSymbol[op] + " {" + fTypeName[T_byte] + ", " + fTypeName[T_char] + ", " + fTypeName[T_short] + ", " + fTypeName[T_int] + ", " + fTypeName[T_long] + ", " + fTypeName[T_float] + ", " + fTypeName[T_double] + "}\n" +
 					"\n");
-		
+
 		genTestTypeBinaryOpTypeBooleanResult(type, op, T_byte, code);
 		genTestTypeBinaryOpTypeBooleanResult(type, op, T_char, code);
 		genTestTypeBinaryOpTypeBooleanResult(type, op, T_short, code);
@@ -599,35 +599,35 @@
 		genTestTypeBinaryOpTypeBooleanResult(type, op, T_long, code);
 		genTestTypeBinaryOpTypeBooleanResult(type, op, T_float, code);
 		genTestTypeBinaryOpTypeBooleanResult(type, op, T_double, code);
-		
+
 	}
-	
+
 	public static void genTestsIntegerTypeShiftOpIntegerTypes(int type, int op, StringBuffer code) {
-		
+
 		code.append("\t// " + fTypeName[type] + " " + opSymbol[op] + " {" + fTypeName[T_byte] + ", " + fTypeName[T_char] + ", " + fTypeName[T_short] + ", " + fTypeName[T_int] + ", " + fTypeName[T_long] + "}\n" +
 					"\n");
-		
+
 		genTestTypeBinaryOpTypeUnaryPromotion(type, op, T_byte, code);
 		genTestTypeBinaryOpTypeUnaryPromotion(type, op, T_char, code);
 		genTestTypeBinaryOpTypeUnaryPromotion(type, op, T_short, code);
 		genTestTypeBinaryOpTypeUnaryPromotion(type, op, T_int, code);
 		genTestTypeBinaryOpTypeUnaryPromotion(type, op, T_long, code);
-		
+
 	}
-	
+
 	public static void genTestsIntegerTypeBooleanOpIntegerTypes(int type, int op, StringBuffer code) {
-		
+
 		code.append("\t// " + fTypeName[type] + " " + opSymbol[op] + " {" + fTypeName[T_byte] + ", " + fTypeName[T_char] + ", " + fTypeName[T_short] + ", " + fTypeName[T_int] + ", " + fTypeName[T_long] + "}\n" +
 					"\n");
-		
+
 		genTestTypeBinaryOpTypeBinaryPromotion(type, op, T_byte, code);
 		genTestTypeBinaryOpTypeBinaryPromotion(type, op, T_char, code);
 		genTestTypeBinaryOpTypeBinaryPromotion(type, op, T_short, code);
 		genTestTypeBinaryOpTypeBinaryPromotion(type, op, T_int, code);
 		genTestTypeBinaryOpTypeBinaryPromotion(type, op, T_long, code);
-		
+
 	}
-	
+
 	public static void genTestsNumericTypeArithmeticAssignmentOpNumericTypes(int type, int op, StringBuffer code) {
 
 		code.append("\t// " + fTypeName[type] + " " + opSymbol[op] + " {" + fTypeName[T_byte] + ", " + fTypeName[T_char] + ", " + fTypeName[T_short] + ", " + fTypeName[T_int] + ", " + fTypeName[T_long] + ", " + fTypeName[T_float] + ", " + fTypeName[T_double] + "}\n" +
@@ -642,7 +642,7 @@
 		genTestTypeAssignmentOpType(type, op, T_double, code);
 
 	}
-	
+
 	public static void genTestsIntegerTypeArithmeticAssignmentOpIntegerTypes(int type, int op, StringBuffer code) {
 
 		code.append("\t// " + fTypeName[type] + " " + opSymbol[op] + " {" + fTypeName[T_byte] + ", " + fTypeName[T_char] + ", " + fTypeName[T_short] + ", " + fTypeName[T_int] + ", " + fTypeName[T_long] + ", " + fTypeName[T_float] + ", " + fTypeName[T_double] + "}\n" +
@@ -655,12 +655,12 @@
 		genTestTypeAssignmentOpType(type, op, T_long, code);
 
 	}
-	
+
 	public static void genTestsNumericTypeCast(int type, StringBuffer code) {
-		
+
 		code.append("\t// (" + fTypeName[type] + ") {" + fTypeName[T_byte] + ", " + fTypeName[T_char] + ", " + fTypeName[T_short] + ", " + fTypeName[T_int] + ", " + fTypeName[T_long] + ", " + fTypeName[T_float] + ", " + fTypeName[T_double] + "}\n" +
 					"\n");
-		
+
 		genTestNumericTypeCast(type, T_byte, code);
 		genTestNumericTypeCast(type, T_char, code);
 		genTestNumericTypeCast(type, T_short, code);
@@ -668,31 +668,31 @@
 		genTestNumericTypeCast(type, T_long, code);
 		genTestNumericTypeCast(type, T_float, code);
 		genTestNumericTypeCast(type, T_double, code);
-		
+
 	}
 
 	public static void genTestsNumericTypeAllXfixOps(int type, StringBuffer code) {
-		
+
 		code.append("\t// {" + opSymbol[Op_prefixPlusPlus] + ", " + opSymbol[Op_prefixMinusMinus] + "} " + fTypeName[type] + "\n" +
 					"\t// " + fTypeName[type] + " {" + opSymbol[Op_postfixPlusPlus] + ", " + opSymbol[Op_postfixMinusMinus] + "}\n" +
 					"\n");
-					
+
 		genTestNumericTypePrefixOp(type, Op_prefixPlusPlus, code);
 		genTestNumericTypePrefixOp(type, Op_prefixMinusMinus, code);
 		genTestNumericTypePostfixOp(type, Op_postfixPlusPlus, code);
 		genTestNumericTypePostfixOp(type, Op_postfixMinusMinus, code);
 	}
-		
+
 	//----------------------------
 
 	public static void genTestTypeBinaryOpTypeBinaryPromotion(int type1, int op, int type2, StringBuffer code) {
-		
+
 		int promotedType = getPromotionType(type1, type2);
-		
+
 		String t1UName = typeUpperName[type1];
 		String t2UName = typeUpperName[type2];
 		String oUName = opUpperName[op];
-		
+
 		code.append("\tpublic void test" + t1UName + oUName + t2UName + "() throws Throwable {\n");
 		tryBlockBegin(code);
 		genCodeBinaryOp(type1, op, type2, promotedType, 0, 1, true, code);
@@ -703,13 +703,13 @@
 	}
 
 	public static void genTestTypeBinaryOpTypeBooleanResult(int type1, int op, int type2, StringBuffer code) {
-		
+
 		int promotedType = T_boolean;
-		
+
 		String t1UName = typeUpperName[type1];
 		String t2UName = typeUpperName[type2];
 		String oUName = opUpperName[op];
-		
+
 		code.append("\tpublic void test" + t1UName + oUName + t2UName + "() throws Throwable {\n");
 		tryBlockBegin(code);
 		genCodeBinaryOp(type1, op, type2, promotedType, 0, 1, true, code);
@@ -723,13 +723,13 @@
 	}
 
 	public static void genTestTypeBinaryOpTypeUnaryPromotion(int type1, int op, int type2, StringBuffer code) {
-		
+
 		int promotedType = getUnaryPromotionType(type1);
-		
+
 		String t1UName = typeUpperName[type1];
 		String t2UName = typeUpperName[type2];
 		String oUName = opUpperName[op];
-		
+
 		code.append("\tpublic void test" + t1UName + oUName + t2UName + "() throws Throwable {\n");
 		tryBlockBegin(code);
 		genCodeBinaryOp(type1, op, type2, promotedType, 0, 1, true, code);
@@ -738,17 +738,17 @@
 		tryBlockEnd(code);
 		code.append("\t}\n\n");
 	}
-	
+
 	public static void genTestBooleanBinaryOpBoolean(int op, StringBuffer code) {
-		
+
 		int type = T_boolean;
-		
+
 		String uName = typeUpperName[type];
 		String oUName = opUpperName[op];
-		
+
 		code.append("\t// " + fTypeName[type] + " " + opSymbol[op] + " " + fTypeName[type] + "\n" +
 					"\n");
-		
+
 		code.append("\tpublic void test" + uName + oUName + uName + "() throws Throwable {\n");
 		tryBlockBegin(code);
 		genCodeBinaryOp(type, op, type, type, 0, 0, true, code);
@@ -764,17 +764,17 @@
 	}
 
 	public static void genTestUnaryOpNumericType(int type, int op, StringBuffer code) {
-		
+
 		int promotedType = getUnaryPromotionType(type);
-		
+
 		String tName = fTypeName[type];
 		String tUName = typeUpperName[type];
 		String oSymbol = opSymbol[op];
 		String oUName = opUpperName[op];
-		
+
 		code.append("\t// " + oSymbol + " " + tName + "\n" +
 					"\n");
-		
+
 		code.append("\tpublic void test" + oUName + tUName + "() throws Throwable {\n");
 		tryBlockBegin(code);
 		genCodeUnaryOp(type, op, promotedType, 0, true, code);
@@ -785,15 +785,15 @@
 	}
 
 	public static void genTestUnaryOpBoolean(int op, StringBuffer code) {
-		
+
 		int type = T_boolean;
-		
+
 		String uName = typeUpperName[type];
 		String oUName = opUpperName[op];
-		
+
 		code.append("\t// " + opSymbol[op] + " " + fTypeName[type] + "\n" +
 					"\n");
-		
+
 		code.append("\tpublic void test" + oUName + uName + "() throws Throwable {\n");
 		tryBlockBegin(code);
 		genCodeUnaryOp(type, op, type, 0, true, code);
@@ -806,7 +806,7 @@
 
 	public static void genTestLocalVarValue(int type, StringBuffer code ) {
 		String tUName = typeUpperName[type];
-		
+
 		code.append("\tpublic void test" + tUName + "() throws Throwable {\n");
 		tryBlockBegin(code);
 		genCodeLocalVarValue(type, 0, true, code);
@@ -815,10 +815,10 @@
 		tryBlockEnd(code);
 		code.append("\t}\n\n");
 	}
-	
+
 	public static void genTestLocalVarAssignment(int type, StringBuffer code) {
 		String tUName = typeUpperName[type];
-		
+
 		code.append("\tpublic void test" + tUName + "() throws Throwable {\n");
 		tryBlockBegin(code);
 		genCodeLocalVarAssignment(type, 0, 0, true, code);
@@ -831,13 +831,13 @@
 		tryBlockEnd(code);
 		code.append("\t}\n\n");
 	}
-	
+
 	public static void genTestTypeAssignmentOpType(int type1, int op, int type2, StringBuffer code) {
-		
+
 		String t1UName = typeUpperName[type1];
 		String t2UName = typeUpperName[type2];
 		String oUName = opUpperName[op];
-		
+
 		code.append("\tpublic void test" + t1UName + oUName + t2UName + "() throws Throwable {\n");
 		tryBlockBegin(code);
 		genCodeSetTmp("tmp" + fVariable[0], type1, Op_equal, fVariable[0] + t1UName + "Value", true, code);
@@ -856,12 +856,12 @@
 		tryBlockEnd(code);
 		code.append("\t}\n\n");
 	}
-	
+
 	public static void genTestNumericTypeCast(int type1, int type2, StringBuffer code) {
-		
+
 		String t1UName = typeUpperName[type1];
 		String t2UName = typeUpperName[type2];
-		
+
 		code.append("\tpublic void test" + t1UName + "Cast" + t2UName + "() throws Throwable {\n");
 		tryBlockBegin(code);
 		genCodeCast(type1, type2, 0, true, code);
@@ -869,9 +869,9 @@
 		genCodeCast(type1, type2, 1, false, code);
 		tryBlockEnd(code);
 		code.append("\t}\n\n");
-		
+
 	}
-		
+
 	public static void genTestNumericTypePrefixOp(int type, int op, StringBuffer code) {
 
 		String tUName = typeUpperName[type];
@@ -902,7 +902,7 @@
 
 	public static void genTestFieldValue(int type, int prefix, StringBuffer code ) {
 		String tUName = typeUpperName[type];
-		
+
 		code.append("\tpublic void test" + tUName + "FieldValue() throws Throwable {\n");
 		tryBlockBegin(code);
 		genCodeFieldValue(type, 0, prefix, true, code);
@@ -911,10 +911,10 @@
 		tryBlockEnd(code);
 		code.append("\t}\n\n");
 	}
-	
+
 	public static void genTestStaticFieldValue(int type, int prefix, StringBuffer code ) {
 		String tUName = typeUpperName[type];
-		
+
 		code.append("\tpublic void test" + tUName + "StaticFieldValue() throws Throwable {\n");
 		tryBlockBegin(code);
 		genCodeFieldValue(type, 2, prefix, true, code);
@@ -923,10 +923,10 @@
 		tryBlockEnd(code);
 		code.append("\t}\n\n");
 	}
-	
+
 	public static void genTestArrayValue(int type, StringBuffer code ) {
 		String tUName = typeUpperName[type];
-		
+
 		code.append("\tpublic void test" + tUName + "ArrayValue() throws Throwable {\n");
 		tryBlockBegin(code);
 		genCodeArrayValue(type, 2, 0, true, code);
@@ -943,10 +943,10 @@
 		tryBlockEnd(code);
 		code.append("\t}\n\n");
 	}
-	
+
 	public static void genTestArrayLength(int type, StringBuffer code ) {
 		String tUName = typeUpperName[type];
-		
+
 		code.append("\tpublic void test" + tUName + "ArrayLength() throws Throwable {\n");
 		tryBlockBegin(code);
 		genCodeArrayLength(type, 2, true, code);
@@ -955,10 +955,10 @@
 		tryBlockEnd(code);
 		code.append("\t}\n\n");
 	}
-	
+
 	public static void genTestArrayAssignment(int type, StringBuffer code ) {
 		String tUName = typeUpperName[type];
-		
+
 		code.append("\tpublic void test" + tUName + "ArrayAssignment() throws Throwable {\n");
 		tryBlockBegin(code);
 		genCodeArrayAssignment(type, 2, 0, 0, true, code);
@@ -975,10 +975,10 @@
 		tryBlockEnd(code);
 		code.append("\t}\n\n");
 	}
-	
+
 	public static void genTestArrayAllocation(int type, StringBuffer code) {
 		String tUName = typeUpperName[type];
-		
+
 		code.append("\tpublic void test" + tUName + "ArrayAllocation() throws Throwable {\n");
 		tryBlockBegin(code);
 		genCodeArrayAllocation(type, 2, 0, true, code);
@@ -990,7 +990,7 @@
 
 	public static void genTestArrayInitialization(int type, StringBuffer code) {
 		String tUName = typeUpperName[type];
-		
+
 		code.append("\tpublic void test" + tUName + "ArrayAllocation() throws Throwable {\n");
 		tryBlockBegin(code);
 		genCodeArrayInitialization(type, 2, true, code);
@@ -1003,7 +1003,7 @@
 	//-------------------------------
 
 	public static void genCodeBinaryOp(int type1, int op, int type2, int resultType, int var1, int var2, boolean first, StringBuffer code) {
-		
+
 		String t1Name = fTypeName[type1];
 		String t1UName = typeUpperName[type1];
 		String t2Name = fTypeName[type2];
@@ -1014,7 +1014,7 @@
 		String oSymbol = opSymbol[op];
 		String v1Name = immediate[var1];
 		String v2Name = immediate[var2];
-		
+
 		genCodeEval(v1Name + t1UName + " + " + oName + "Op + " + v2Name + t2UName, first, code);
 		genCodeReturnTypeCheck(t1Name + " " + oName + " " + t2Name, resName, first, code);
 		switch (resultType) {
@@ -1032,7 +1032,7 @@
 	}
 
 	public static void genCodeUnaryOp(int type, int op, int resultType, int var, boolean first, StringBuffer code) {
-		
+
 		String tName = fTypeName[type];
 		String tUName = typeUpperName[type];
 		String resName = fTypeName[resultType];
@@ -1049,7 +1049,7 @@
 			genCodeReturnValueCheckPrimitiveType(oName + " " + tName, resName, resUName, oSymbol + " " + vName + tUName + "Value", first, code);
 		}
 	}
-	
+
 	public static void genCodeLocalVarValue(int type, int var, boolean first, StringBuffer code) {
 		String tUName = typeUpperName[type];
 		String vName = fVariable[var];
@@ -1058,7 +1058,7 @@
 	}
 
 	public static void genCodeLocalVarValue(int type, int var, String referenceExpression, boolean first, StringBuffer code) {
-		
+
 		String tName = fTypeName[type];
 		String tUName = typeUpperName[type];
 		String vName = fVariable[var];
@@ -1078,9 +1078,9 @@
 				break;
 		}
 	}
-	
+
 	public static void genCodeLocalVarAssignment(int type, int var, int imm, boolean first, StringBuffer code) {
-		
+
 		String tName = fTypeName[type];
 		String tUName = typeUpperName[type];
 		String vName = fVariable[var];
@@ -1103,7 +1103,7 @@
 		}
 		genCodeLocalVarValue(type, var, iName + tUName + "Value", false, code);
 	}
-	
+
 	public static void genCodeAssignmentOp(int type1, int op, int type2, int var, int imm, boolean first, StringBuffer code) {
 		String t1Name = fTypeName[type1];
 		String t1UName = typeUpperName[type1];
@@ -1112,7 +1112,7 @@
 		String oName = opName[op];
 		String vName = fVariable[var];
 		String iName = immediate[imm];
-		
+
 		genCodeEval(vName + t1UName + " + " + oName + "Op + " + iName + t2UName, first, code);
 		genCodeReturnTypeCheck(t1Name + " " + oName + " " + t2Name, t1Name, first, code);
 		switch (type1) {
@@ -1129,7 +1129,7 @@
 		}
 		genCodeLocalVarValue(type1, var, "tmp" + vName, false, code);
 	}
-	
+
 	public static void genCodeCast(int type1, int type2, int imm, boolean first, StringBuffer code) {
 		String t1Name = fTypeName[type1];
 		String t1UName = typeUpperName[type1];
@@ -1145,14 +1145,14 @@
 			genCodeReturnValueCheckPrimitiveType("(" + t1Name + ") " + t2Name, t1Name, t1UName, (needCast(type1, type2) ? "( " + t1Name + ") " : IInternalDebugCoreConstants.EMPTY_STRING) + iName + t2UName + "Value", first, code);
 		}
 	}
-	
+
 	public static void genCodePrefixOp(int type, int op, int var, boolean first, StringBuffer code) {
 		String tName = fTypeName[type];
 		String tUName = typeUpperName[type];
 		String vName = fVariable[var];
 		String oName = opName[op];
 		String oSymbol = opSymbol[op];
-		
+
 		genCodeSetTmp("tmp" + vName, type, Op_equal, vName + tUName + "Value", true, code);
 		genCodeEval(oName + "Op + " + vName + tUName, first, code);
 		genCodeReturnTypeCheck(oName + " " + tName, tName, first, code);
@@ -1163,14 +1163,14 @@
 		}
 		genCodeLocalVarValue(type, var, "tmp" + vName, false, code);
 	}
-	
+
 	public static void genCodePostfixOp(int type, int op, int var, boolean first, StringBuffer code) {
 		String tName = fTypeName[type];
 		String tUName = typeUpperName[type];
 		String vName = fVariable[var];
 		String oName = opName[op];
 		String oSymbol = opSymbol[op];
-		
+
 		genCodeSetTmp("tmp" + vName, type, Op_equal, vName + tUName + "Value", true, code);
 		genCodeEval(vName + tUName + " + " + oName + "Op", first, code);
 		genCodeReturnTypeCheck(tName + " " + oName, tName, first, code);
@@ -1181,7 +1181,7 @@
 		}
 		genCodeLocalVarValue(type, var, "tmp" + vName, false, code);
 	}
-	
+
 	public static void genCodeFieldValue(int type, int var, int prefix, boolean first, StringBuffer code) {
 		String tUName = typeUpperName[type];
 		String fName = field[var];
@@ -1190,7 +1190,7 @@
 	}
 
 	public static void genCodeFieldValue(int type, int var, int prefix, String referenceExpression, boolean first, StringBuffer code) {
-		
+
 		String tName = fTypeName[type];
 		String tUName = typeUpperName[type];
 		String fName = field[var];
@@ -1211,18 +1211,18 @@
 				break;
 		}
 	}
-	
+
 	public static void genCodeArrayLength(int type, int var, boolean first, StringBuffer code) {
-		
+
 		String tUName = typeUpperName[type];
 		String vName = fVariable[var];
-		
+
 		genCodeArrayLength(type, var, vName + tUName + "Value.length", first, code);
-		
+
 	}
 
 	public static void genCodeArrayLength(int type, int var, String referenceExpression, boolean first, StringBuffer code) {
-		
+
 		String tName = fTypeName[type];
 		String tUName = typeUpperName[type];
 		String vName = fVariable[var];
@@ -1231,9 +1231,9 @@
 		genCodeReturnTypeCheck(tName + " array length", fTypeName[T_int], first,code);
 		genCodeReturnValueCheckPrimitiveType(tName + " array length", fTypeName[T_int], typeUpperName[T_int], referenceExpression, first, code);
 	}
-	
+
 	public static void genCodeArrayValue(int type, int var, int index, boolean first, StringBuffer code) {
-		
+
 		String tUName = typeUpperName[type];
 		String vName = fVariable[var];
 
@@ -1241,7 +1241,7 @@
 	}
 
 	public static void genCodeArrayValue(int type, int var, int index, String referenceExpression, boolean first, StringBuffer code) {
-		
+
 		String tName = fTypeName[type];
 		String tUName = typeUpperName[type];
 		String vName = fVariable[var];
@@ -1261,9 +1261,9 @@
 				break;
 		}
 	}
-	
+
 	public static void genCodeArrayAssignment(int type, int var, int index, int imm, boolean first, StringBuffer code) {
-		
+
 		String tName = fTypeName[type];
 		String tUName = typeUpperName[type];
 		String vName = fVariable[var];
@@ -1286,7 +1286,7 @@
 		}
 		genCodeArrayValue(type, var, index, iName + tUName + "Value", false, code);
 	}
-	
+
 	public static void genCodeArrayAllocation(int type, int var, int dim, boolean first, StringBuffer code) {
 		String tName = fTypeName[type];
 		String tUName = typeUpperName[type];
@@ -1309,7 +1309,7 @@
 		String vName = fVariable[var];
 		String oName = opName[Op_equal];
 		String i1Name = immediate[(var + 1) % 2];
-		
+
 		String value = IInternalDebugCoreConstants.EMPTY_STRING;
 		boolean f = true;
 		for (int i = 0; i < var; i ++) {
@@ -1334,18 +1334,18 @@
 			genCodeArrayValue(type, var, i, immediate[i % 2] + tUName + "Value", false, code);
 		}
 	}
-	
+
 	//----------------------------
-	
+
 	public static void genCodeEval(String expression, boolean first, StringBuffer code) {
 		code.append("\t\t" + ((first)? "IValue " : IInternalDebugCoreConstants.EMPTY_STRING) + "value = eval(" + expression + ");\n");
 	}
-	
+
 	public static void genCodeReturnTypeCheck(String test, String typeName, boolean first, StringBuffer code) {
 		code.append("\t\t" + ((first)? "String " : IInternalDebugCoreConstants.EMPTY_STRING) + "typeName = value.getReferenceTypeName();\n" +
 					"\t\tassertEquals(\"" + test + " : wrong type : \", \"" + typeName + "\", typeName);\n");
 	}
-	
+
 	public static void genCodeReturnValueCheckPrimitiveType(String test, String resType, String uResType, String referenceExpression, boolean first, StringBuffer code) {
 		code.append("\t\t" + ((first)? resType + " " : IInternalDebugCoreConstants.EMPTY_STRING) + resType + "Value = ((IJavaPrimitiveValue)value).get" + uResType + "Value();\n" +
 					"\t\tassertEquals(\"" + test + " : wrong result : \", " + referenceExpression + ", " + resType+ "Value);\n");
@@ -1369,8 +1369,8 @@
 	public static void genCodeSetTmp(String varName, int type, int op, String value, boolean init , StringBuffer code) {
 		code.append("\t\t" + ((init)? fTypeName[type] + " " : IInternalDebugCoreConstants.EMPTY_STRING) + varName + " " + opSymbol[op] + " " + value + ";\n");
 	}
-	
-	
+
+
 	public static void tryBlockBegin(StringBuffer code) {
 		code.append("\t\ttry {\n\t\tinit();\n");
 	}
@@ -1384,11 +1384,11 @@
 	public static void createJavaFile(String className, String testClass, int breakPointLine, int frameNumber, boolean importJDIObjectValue, StringBuffer tests) throws Exception {
 		createJavaFile(className, testClass, breakPointLine, frameNumber, importJDIObjectValue, true, tests);
 	}
-	
+
 	public static void createJavaFile(String className, String testClass, int breakPointLine, int frameNumber, boolean importJDIObjectValue, boolean importIJavaPrimitiveValue, StringBuffer tests) throws Exception {
-		
+
 		StringBuffer code = new StringBuffer();
-		
+
 		code.append("/*******************************************************************************\n");
 		code.append(" * Copyright (c) 2002, 2003 IBM Corporation and others.\n");
 		code.append(" * All rights reserved. This program and the accompanying materials \n");
@@ -1401,7 +1401,7 @@
 		code.append(" *******************************************************************************/\n");
 		code.append("package org.eclipse.jdt.debug.tests.eval;\n\n" +
 					"import org.eclipse.debug.core.model.IValue;\n");
-					
+
 		if (importIJavaPrimitiveValue) {
 			code.append("import org.eclipse.jdt.debug.core.IJavaPrimitiveValue;\n");
 		}
@@ -1422,14 +1422,14 @@
 					"\tprotected void end() throws Exception {\n" +
 					"\t\tdestroyFrame();\n" +
 					"\t}\n\n");
-					
+
 		code.append(tests);
-					
+
 		code.append("\n}\n");
-					
+
 		try (Writer file = new FileWriter(new File(className + ".java").getAbsoluteFile())) {
 			file.write(code.toString());
 		}
-		
+
 	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/generator/TypeHierarchyTestsGenerator.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/generator/TypeHierarchyTestsGenerator.java
index 8b00b30..aa38e5a 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/generator/TypeHierarchyTestsGenerator.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/generator/TypeHierarchyTestsGenerator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -33,10 +33,10 @@
 	static int N_A= 12;
 	static int N_B= 13;
 	static int N_C= 14;
-	
+
 	static int SUPER_A= 15;
 	static int SUPER_B= 16;
-	
+
 	static int M1= 0;
 	static int M2= 1;
 	static int S2= 2;
@@ -46,13 +46,13 @@
 	static int M5= 6;
 	static int M6= 7;
 	static int S6= 8;
-	
+
 	static String[] qualifiers= new String[] {
 		"iaa", "iab", "iac",     "aa",      "ab",      "ac", "ibb", "ibc", "bb", "bc",
 		"icc", "cc",  "new A()", "new B()", "new C()" ,"super" , "super"};
-		
+
 	static String[] methods= new String[] {"m1", "m2", "s2", "m3", "m4", "s4", "m5", "m6", "s6"};
-	
+
 	static int[] staticLevel= new int[] {
 		0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
 		2, 2, 0, 1, 2, 0, 1};
@@ -60,7 +60,7 @@
 	static int[] instanceLevel= new int[] {
 		0, 1, 2, 0, 1, 2, 1, 2, 1, 2,
 		2, 2, 0, 1, 2, 0, 1};
-		
+
 	static int[][] values= new int[][] {
 		{ 1, 2, 9},
 		{ 11, 22, 99, 33, 44, 88},
@@ -79,13 +79,13 @@
 		gen_cc_testA();
 		gen_cc_testB();
 		gen_cc_testC();
-		
+
 		System.out.println("done");
 	}
-	
+
 	public static void  gen_main() throws Exception {
 		StringBuffer code= new StringBuffer();
-		
+
 		createTestQualifier(IAA, M1, code);
 		createTestQualifier(IAB, M1, code);
 		createTestQualifier(IAC, M1, code);
@@ -126,7 +126,7 @@
 		createTestQualifier(CC, M5, code);
 		createTestQualifier(CC, M6, code);
 		createTestQualifier(CC, S6, code);
-		
+
 		createTestQualifier(N_A, M1, code);
 		createTestQualifier(N_A, M2, code);
 		createTestQualifier(N_A, S2, code);
@@ -148,12 +148,12 @@
 
 		createJavaFile(code, 146, 1, 1);
 	}
-	
+
 	public static void gen_aa_testA() throws Exception {
 		StringBuffer code= new StringBuffer();
 
 		createTest_TestA(code, AA);
-		
+
 		createJavaFile(code, 32, 2, 1);
 	}
 
@@ -161,7 +161,7 @@
 		StringBuffer code= new StringBuffer();
 
 		createTest_TestA(code, AB);
-		
+
 		createJavaFile(code, 32, 2, 2);
 	}
 
@@ -169,7 +169,7 @@
 		StringBuffer code= new StringBuffer();
 
 		createTest_TestA(code, AC);
-		
+
 		createJavaFile(code, 32, 2, 3);
 	}
 
@@ -177,7 +177,7 @@
 		StringBuffer code= new StringBuffer();
 
 		createTest_TestA(code, BB);
-		
+
 		createJavaFile(code, 32, 2, 4);
 	}
 
@@ -185,7 +185,7 @@
 		StringBuffer code= new StringBuffer();
 
 		createTest_TestA(code, BC);
-		
+
 		createJavaFile(code, 32, 2, 5);
 	}
 
@@ -193,7 +193,7 @@
 		StringBuffer code= new StringBuffer();
 
 		createTest_TestA(code, CC);
-		
+
 		createJavaFile(code, 32, 2, 6);
 	}
 
@@ -201,7 +201,7 @@
 		StringBuffer code= new StringBuffer();
 
 		createTest_TestB(code, BB);
-		
+
 		createJavaFile(code, 68, 2, 1);
 	}
 
@@ -209,7 +209,7 @@
 		StringBuffer code= new StringBuffer();
 
 		createTest_TestB(code, BC);
-		
+
 		createJavaFile(code, 68, 2, 2);
 	}
 
@@ -217,7 +217,7 @@
 		StringBuffer code= new StringBuffer();
 
 		createTest_TestB(code, CC);
-		
+
 		createJavaFile(code, 68, 2, 3);
 	}
 
@@ -225,11 +225,11 @@
 		StringBuffer code= new StringBuffer();
 
 		createTest_TestC(code, CC);
-		
+
 		createJavaFile(code, 119, 2, 1);
 	}
 
-	//-------------	
+	//-------------
 
 	public static void createTest_TestA(StringBuffer code, int qualifier) {
 		createTest(instanceLevel[qualifier], M1, code);
@@ -270,7 +270,7 @@
 		String strMethod= methods[method];
 		code.append("\tpublic void testEvalNestedTypeTest_" + strMethod + "() throws Throwable {\n");
 		tryBlockBegin(code);
-		
+
 		genCodeEval("\"" + strMethod + "()\"", true, code);
 		genCodeReturnTypeCheck(strMethod, "int", true, code);
 		genCodeReturnValueCheckPrimitiveType(strMethod, "int", "Int", IInternalDebugCoreConstants.EMPTY_STRING + values[level][method], true, code);
@@ -278,8 +278,8 @@
 		tryBlockEnd(code);
 		code.append("\t}\n\n");
 	}
-	
-	
+
+
 	public static void createTestQualifier(int qualifier, int method, StringBuffer code) {
 		String strQualifier= qualifiers[qualifier];
 		String nameQualifier= strQualifier.replace('(', '_').replace(')', '_').replace(' ', '_');
@@ -287,7 +287,7 @@
 		int[] level= ((method + 1) % 3 == 0) ? staticLevel : instanceLevel;
 		code.append("\tpublic void testEvalNestedTypeTest_" + nameQualifier + "_" + strMethod + "() throws Throwable {\n");
 		tryBlockBegin(code);
-		
+
 		genCodeEval("\"" + strQualifier + "." + strMethod + "()\"", true, code);
 		genCodeReturnTypeCheck(strQualifier + "." + strMethod, "int", true, code);
 		genCodeReturnValueCheckPrimitiveType(strQualifier + "." + strMethod, "int", "Int", IInternalDebugCoreConstants.EMPTY_STRING + values[level[qualifier]][method], true, code);
@@ -295,14 +295,14 @@
 		tryBlockEnd(code);
 		code.append("\t}\n\n");
 	}
-	
+
 	//------------
-	
-	
+
+
 	public static void createJavaFile(StringBuffer tests, int lineNumber, int numberFrames, int hitCount) throws Exception {
-		
+
 		StringBuffer code= new StringBuffer();
-		
+
 		code.append("/*******************************************************************************\n");
 		code.append(" * Copyright (c) 2002, 2003 IBM Corporation and others.\n");
 		code.append(" * All rights reserved. This program and the accompanying materials \n");
@@ -330,14 +330,14 @@
 		code.append("\tprotected void end() throws Exception {\n");
 		code.append("\t\tdestroyFrame();\n");
 		code.append("\t}\n\n");
-		
+
 		code.append(tests.toString());
-		
+
 		code.append("}\n");
-		
+
 		try (Writer file = new FileWriter(new File("TypeHierarchy_" + lineNumber + "_" + hitCount + ".java").getAbsoluteFile())) {
 			file.write(code.toString());
 		}
-		
+
 	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/ConfigurationEncodingTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/ConfigurationEncodingTests.java
index 5b18b41..7efa453 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/ConfigurationEncodingTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/ConfigurationEncodingTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -21,7 +21,7 @@
 import org.eclipse.jdt.debug.tests.AbstractDebugTest;
 
 /**
- * Tests for the new capability of getting the file encoding for a launch configuration given a variety of 
+ * Tests for the new capability of getting the file encoding for a launch configuration given a variety of
  * scenarios
  * @since 3.4
  */
@@ -42,7 +42,7 @@
 	protected Preferences getResourcesPreferences() {
 		return ResourcesPlugin.getPlugin().getPluginPreferences();
 	}
-	
+
 	/**
 	 * Returns the default workbench encoding
 	 * @return the default workbench encoding
@@ -50,7 +50,7 @@
 	protected String getDefaultEncoding() {
 		return getResourcesPreferences().getDefaultString(ResourcesPlugin.PREF_ENCODING);
 	}
-	
+
 	/**
 	 * Tests that if no encoding is set on the configuration and there is no encoding changes to the workspace pref
 	 * than the encoding retrieved for the configuration matches the system encoding
@@ -74,7 +74,7 @@
 			System.setProperty("file.encoding", oldsystemencoding);
 		}
 	}
-	
+
 	/**
 	 * Tests that if a specific encoding is set for the workspace and there is no encoding set on the configuration
 	 * than the returned encoding matches the workspace pref
@@ -95,7 +95,7 @@
 			getResourcesPreferences().setValue(ResourcesPlugin.PREF_ENCODING, (oldencoding == null ? getDefaultEncoding() : oldencoding));
 		}
 	}
-	
+
 	/**
 	 * Tests that if a specific encoding is set on the configuration itself that that is the encoding returned
 	 */
@@ -125,7 +125,7 @@
 			copy.doSave();
 		}
 	}
-	
+
 	/**
 	 * Tests that if there is no specified encoding for the config itself, and there is a mapped resource,
 	 * the encoding will come from the mapped resource (if a specific one is set)
@@ -156,9 +156,9 @@
 			copy.doSave();
 		}
 	}
-	
+
 	/**
-	 * Tests that if there is no specific encoding set on the config and there is more than one mapped resource, 
+	 * Tests that if there is no specific encoding set on the config and there is more than one mapped resource,
 	 * the first mapped resource is used to derive the encoding
 	 */
 	public void testGetSpecificResourcesEncoding() throws CoreException {
@@ -196,5 +196,5 @@
 			copy.doSave();
 		}
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/ConfigurationResourceMappingTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/ConfigurationResourceMappingTests.java
index 4d2265a..a819723 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/ConfigurationResourceMappingTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/ConfigurationResourceMappingTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -29,7 +29,7 @@
 	public ConfigurationResourceMappingTests(String name) {
 		super(name);
 	}
-	
+
 	/**
 	 * Tests that setting the mapped resources to <code>null</code> removes
 	 * the resource mapping
@@ -58,9 +58,9 @@
 			copy.doSave();
 		}
 	}
-	
+
 	/**
-	 * Tests that setting the resource mapping to an empty array of <code>IResource</code> removes 
+	 * Tests that setting the resource mapping to an empty array of <code>IResource</code> removes
 	 * the resource mapping
 	 */
 	public void testRemovingMappedResources2() throws CoreException {
@@ -87,7 +87,7 @@
 			copy.doSave();
 		}
 	}
-	
+
 	/**
 	 * Tests that a single element array can be set as a mapped resource
 	 */
@@ -139,5 +139,5 @@
 			copy.doSave();
 		}
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/ContributedTabTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/ContributedTabTests.java
index ddc551f..b85f4e5 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/ContributedTabTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/ContributedTabTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -27,7 +27,7 @@
 /**
  * This test class provides test methods for contributing tabs to a given (existing)
  * tab group and their relative placement (if applicable)
- * 
+ *
  * @since 3.3
  */
 public class ContributedTabTests extends AbstractDebugTest {
@@ -39,9 +39,9 @@
 	public ContributedTabTests(String name) {
 		super(name);
 	}
-	
+
 	/**
-	 * Checks to make sure that all of the contributed tabs to the java tab group are present 
+	 * Checks to make sure that all of the contributed tabs to the java tab group are present
 	 * @throws CoreException
 	 */
 	public void testContributedTab() throws CoreException {
@@ -59,7 +59,7 @@
 		contribs.add(JavaAlernateModeTab.class);
 		assertTrue("java tab group should contain all contributed tabs", tabset.containsAll(contribs)); //$NON-NLS-1$
 	}
-	
+
 	/**
 	 * Checks to make sure that a contributed tab with a relative placement to an existing tab is in the correct place
 	 * @throws CoreException
@@ -81,7 +81,7 @@
 		assertTrue("The TestTab1 must appear in the tab listing", found);
 		assertTrue("The TestTab1 must appear after the MainTab", idx > 0); //$NON-NLS-1$
 	}
-	
+
 	/**
 	 * Checks to see that if a contributor supplies a bad tab id as a placement id that the tab will be added
 	 * to the end of the group
@@ -94,9 +94,9 @@
 		ILaunchConfigurationTab[] tabs = javagroup.getTabs();
 		assertTrue("Alternate tab should be the last tab in the group", tabs[tabs.length-1].getClass().equals(JavaAlernateModeTab.class)); //$NON-NLS-1$
 	}
-	
+
 	/**
-	 * Checks to see that the two tabs following the arguments tab are TestTab2, and TestTab3. They can be in either order depending 
+	 * Checks to see that the two tabs following the arguments tab are TestTab2, and TestTab3. They can be in either order depending
 	 * on when they were loaded, so this test only checks that they are the next two following tabs not their order
 	 * @throws CoreException
 	 */
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/LaunchConfigurationManagerTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/LaunchConfigurationManagerTests.java
index bfb1e5f..df7eac9 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/LaunchConfigurationManagerTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/LaunchConfigurationManagerTests.java
@@ -27,19 +27,19 @@
 
 /**
  * This class tests all the public methods of the launch configuration manager
- * @since 3.4 
+ * @since 3.4
  */
 public class LaunchConfigurationManagerTests extends AbstractDebugTest {
 
 	private LaunchConfigurationManager fLCM = DebugUIPlugin.getDefault().getLaunchConfigurationManager();
-	
+
 	public LaunchConfigurationManagerTests(String name) {
 		super(name);
 	}
 
 	/**
 	 * Asserts that the given array of shortcut identifiers appear in the given list of {@link LaunchShortcutExtension}s
-	 * 
+	 *
 	 * @param ids the shortcut identifiers
 	 * @param shortcuts the complete list of shortcuts of type {@link LaunchShortcutExtension}
 	 */
@@ -56,7 +56,7 @@
 			assertTrue("the launch shortcut "+ids[i]+" was not found", found);
 		}
 	}
-	
+
 	/**
 	 * Asserts that the given list of {@link ILaunchConfigurationType} identifiers all appear in the given list of {@link ILaunchConfigurationType} identifiers
 	 * @param ids the list of {@link ILaunchConfigurationType} identifiers
@@ -74,7 +74,7 @@
 			assertTrue("the launch configuration type "+ids[i]+" was not found", found);
 		}
 	}
-	
+
 	/**
 	 * tests that the singleton object returned is always the same
 	 */
@@ -82,7 +82,7 @@
 		assertNotNull("The launch configuration manager cannot be null", fLCM);
 		assertEquals("The retruned instance of the manager should always be the same", fLCM, DebugUIPlugin.getDefault().getLaunchConfigurationManager());
 	}
-	
+
 	/**
 	 * tests that shortcut extensions are loaded properly by the manager
 	 */
@@ -91,7 +91,7 @@
 		List<LaunchShortcutExtension> list = fLCM.getLaunchShortcuts();
 		assertTrue("The listing of shortcuts cannot be empty", list.size() > 2);
 	}
-	
+
 	/**
 	 * tests that the java shortcut is found for a resource with a main method
 	 */
@@ -102,7 +102,7 @@
 		List<LaunchShortcutExtension> list = fLCM.getLaunchShortcuts(resource);
 		assertShortcuts(new String[] {"org.eclipse.jdt.debug.ui.localJavaShortcut"}, list);
 	}
-	
+
 	/**
 	 * tests that the applet shortcut is found for a resource that extends applet
 	 */
@@ -113,7 +113,7 @@
 		List<LaunchShortcutExtension> list = fLCM.getLaunchShortcuts(resource);
 		assertShortcuts(new String[] {"org.eclipse.jdt.debug.ui.javaAppletShortcut"}, list);
 	}
-	
+
 	/**
 	 * test that the correct shortcuts are returned for a resource which is an applet and has a main method
 	 */
@@ -124,7 +124,7 @@
 		List<LaunchShortcutExtension> list = fLCM.getLaunchShortcuts(resource);
 		assertShortcuts(new String[] {"org.eclipse.jdt.debug.ui.localJavaShortcut", "org.eclipse.jdt.debug.ui.javaAppletShortcut"}, list);
 	}
-	
+
 	/**
 	 * tests that shortcuts for given categories are returned, in this case the 'testing' category
 	 */
@@ -133,7 +133,7 @@
 		List<LaunchShortcutExtension> list = fLCM.getLaunchShortcuts("testing");
 		assertTrue("there should be the testing shortcut", list.size() == 1);
 	}
-	
+
 	/**
 	 * tests that a specific launch group can be found given its id
 	 */
@@ -142,7 +142,7 @@
 		LaunchGroupExtension ext = fLCM.getLaunchGroup("org.eclipse.debug.ui.launchGroup.run");
 		assertNotNull("the run launch group should exist", ext);
 	}
-	
+
 	/**
 	 * tests that a launch group exists for a given configuration and mode,
 	 * in this case we are testing that a group exists for a java application config
@@ -155,7 +155,7 @@
 		ILaunchGroup group = DebugUITools.getLaunchGroup(configuration, "debug");
 		assertNotNull("the launch group for a java app config in debug mode should exist", group);
 	}
-	
+
 	/**
 	 * tests that all of the launch groups can be acquired, there should be at least 3 of
 	 * them (run, debug, profile)
@@ -166,7 +166,7 @@
 		assertNotNull("the listing of launch groups cannot be null", groups);
 		assertTrue("there shoulod be at least 3 launch groups", groups.length > 2);
 	}
-	
+
 	/**
 	 * tests that the default launch group for run mode is the launch group
 	 * contributed by debug
@@ -177,7 +177,7 @@
 		assertNotNull("the default launch group cannot be null", group);
 		assertTrue("the default launch group for run mode should be the debug contribution", group.getIdentifier().equals("org.eclipse.debug.ui.launchGroup.run"));
 	}
-	
+
 	/**
 	 * tests that the default launch group for debug mode is the launch group
 	 * contributed by debug
@@ -188,7 +188,7 @@
 		assertNotNull("the default launch group cannot be null", group);
 		assertTrue("the default launch group for debug mode should be the debug contribution", group.getIdentifier().equals("org.eclipse.debug.ui.launchGroup.debug"));
 	}
-	
+
 	/**
 	 * tests that the correct corresponding launch config types are found for a given resource,
 	 * in this test the applet and local java types should be found
@@ -200,7 +200,7 @@
 		String[] types = fLCM.getApplicableConfigurationTypes(resource);
 		assertTypes(new String[] {"org.eclipse.jdt.launching.localJavaApplication", "org.eclipse.jdt.launching.javaApplet"}, types);
 	}
-	
+
 	/**
 	 * tests that configuration applicable to specific resources can be found
 	 */
@@ -212,7 +212,7 @@
 		assertNotNull("the listing cannot be null", list);
 		assertTrue("there should be at least one configuration for this resource", list.length > 0);
 	}
-	
+
 	/**
 	 * Tests that a launch group does not exist for a given configuration and mode that it does not support.
 	 * In this case we are testing that a group does not exist for a java application config
@@ -224,5 +224,5 @@
 		assertNotNull("the ThrowsNPE configuration should exist", configuration);
 		ILaunchGroup group = DebugUITools.getLaunchGroup(configuration, ILaunchManager.PROFILE_MODE);
 		assertNull("the launch group for a java app config in profile mode should *not* exist", group);
-	}	
+	}
 }
\ No newline at end of file
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/LaunchConfigurationTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/LaunchConfigurationTests.java
index 13f3ed4..1f66299 100755
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/LaunchConfigurationTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/LaunchConfigurationTests.java
@@ -33,22 +33,22 @@
 		protected TestConfiguration(String name, IContainer container) {
 			super(name, container);
 		}
-		
+
 		public String getSimpleNameProxy(String fileName) {
 			return getSimpleName(fileName);
 		}
-		
+
 		public void setNameProxy(String name) {
 			setName(name);
 		}
-		
+
 		public String getFileNameProxy() {
 			return getFileName();
 		}
 	}
-	
+
 	TestConfiguration config = new TestConfiguration("Test", null);
-	
+
 	/**
 	 * Constructor
 	 * @param name
@@ -59,7 +59,7 @@
 
 	/**
 	 * Tests the {@link LaunchConfiguration#getSimpleName} method
-	 * 
+	 *
 	 * @throws Exception
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=332410
 	 */
@@ -79,10 +79,10 @@
 		name = config.getSimpleNameProxy("launch.foo.bar");
 		assertEquals("Did not get expected name: 'launch.foo.bar'", "launch.foo.bar", name);
 	}
-	
+
 	/**
 	 * Tests the {@link LaunchConfiguration#setName} method
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testSetName() throws Exception {
@@ -92,10 +92,10 @@
 		//reset the name
 		config.setNameProxy("Test");
 	}
-	
+
 	/**
 	 * Tests the {@link LaunchConfiguration#getFileName} method
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testGetFileName() throws Exception {
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/LaunchDelegateTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/LaunchDelegateTests.java
index 1d6aea4..b7944b5 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/LaunchDelegateTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/LaunchDelegateTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -31,7 +31,7 @@
  * Tests for launch delegates
  */
 public class LaunchDelegateTests extends AbstractDebugTest {
-	
+
 	/**
 	 * Constructor
 	 * @param name
@@ -39,7 +39,7 @@
 	public LaunchDelegateTests(String name) {
 		super(name);
 	}
-	
+
 	/**
 	 * Ensures a launch delegate can provide a launch object for
 	 * a launch.
@@ -54,7 +54,7 @@
 		ILaunch launch = workingCopy.launch(ILaunchManager.DEBUG_MODE, null);
 		manager.removeLaunch(launch);
 	}
-	
+
 	/**
 	 * Tests that a delegate extension can provide the source path computer.
 	 */
@@ -65,7 +65,7 @@
 		ISourcePathComputer sourcePathComputer = configurationType.getSourcePathComputer();
 		assertEquals("Wrong source path computer", "org.eclipse.jdt.debug.tests.testSourcePathComputer", sourcePathComputer.getId()); //$NON-NLS-1$ //$NON-NLS-2$
 	}
-	
+
 	/**
 	 * Tests that a delegate extension can provide the source locator.
 	 */
@@ -76,10 +76,10 @@
 		String sourceLocatorId = configurationType.getSourceLocatorId();
 		assertEquals("Wrong source locater id", "org.eclipse.jdt.debug.tests.testSourceLocator", sourceLocatorId); //$NON-NLS-1$ //$NON-NLS-2$
 	}
-	
+
 	/**
 	 * Test launch delegate for mixed launch mode.
-	 * @throws CoreException 
+	 * @throws CoreException
 	 */
 	public void testMixedModeDelegate() throws CoreException {
 		ILaunchManager manager = getLaunchManager();
@@ -94,7 +94,7 @@
 		assertEquals("Wrong number of delegates", 1, delegates.length); //$NON-NLS-1$
 		assertTrue("Wrong delegate", delegates[0].getDelegate() instanceof AlternateDelegate); //$NON-NLS-1$
 	}
-	
+
 	/**
 	 * Tests if the java launch delegate was found as one of the delegates for debug mode.
 	 * @throws CoreException
@@ -117,7 +117,7 @@
 		}
 		assertTrue("The java launch delegate was not one of the returned delegates", found);		 //$NON-NLS-1$
 	}
-	
+
 	/**
 	 * Tests correct delegate is found for alternate mode.
 	 * @throws CoreException
@@ -133,8 +133,8 @@
 		assertTrue("missing delegate", delegates.length > 0); //$NON-NLS-1$
 		assertEquals("Wrong number of delegates", 1, delegates.length); //$NON-NLS-1$
 		assertTrue("Wrong delegate", delegates[0].getDelegate() instanceof AlternateDelegate);		 //$NON-NLS-1$
-	}	
-	
+	}
+
 	/**
 	 * Checks that the delegate definition is collecting and parsing mode combination information properly from both the delegate
 	 * contribution and from modeCombination child elements
@@ -155,7 +155,7 @@
 			assertTrue("Wrong delegate", delegates[0].getDelegate() instanceof AlternateDelegate);	 //$NON-NLS-1$
 		}
 	}
-	
+
 	/**
 	 * Checks that all applicable delegates are found for given types and mode combinations
 	 * @throws CoreException
@@ -177,7 +177,7 @@
 		HashSet<Object> ds = new HashSet<Object>(Arrays.asList(new Object[] {TestLaunchDelegate1.class, TestLaunchDelegate2.class}));
 		assertTrue("There must be only TestLaunchDelegate1 and TestLaunchDelegate2 as registered delegates for the mode alternate2 and the local java type", ds.containsAll(dels)); //$NON-NLS-1$
 	}
-	
+
 	/**
 	 * Checks to see the even with a partial match of a mode combination it will indicate that it does not support the specified modes
 	 */
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/LaunchModeTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/LaunchModeTests.java
index 0079725..460398c 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/LaunchModeTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/LaunchModeTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -47,7 +47,7 @@
  * LaunchModeTests
  */
 public class LaunchModeTests extends AbstractDebugTest {
-	
+
 	private ILaunchConfiguration fConfiguration;
 	private String fMode;
 
@@ -60,7 +60,7 @@
 
 	/**
 	 * Called by launch "TestModeLaunchDelegate" delegate when launch method invoked.
-	 * 
+	 *
 	 * @param configuration
 	 * @param mode
 	 */
@@ -73,7 +73,7 @@
 	/**
 	 * Tests that launch delegate for "TEST_MODE" and Java applications is invoked when
 	 * "TEST_MODE" is used.
-	 * 
+	 *
 	 * @throws CoreException
 	 * @see TestModeLaunchDelegate
 	 */
@@ -97,7 +97,7 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Returns the launch configuration set by the TestModeLaunchDelegate, or <code>null</code>
 	 * if no launch configuration was set (the correct delegate was not called).
@@ -111,10 +111,10 @@
 				System.err.println("Interrupted waiting for launch configuration"); //$NON-NLS-1$
 			}
 		}
-		
+
 		return fConfiguration;
 	}
-	
+
 	/**
 	 * Ensure our contributed launch mode exists.
 	 */
@@ -130,7 +130,7 @@
 		assertContains("Missing run mode", ids, ILaunchManager.RUN_MODE); //$NON-NLS-1$
 		assertContains("Missing TEST_MODE", ids, "alternate"); //$NON-NLS-1$ //$NON-NLS-2$
 	}
-	
+
 	/**
 	 * Asserts that the array contains the given object
 	 * @param message
@@ -141,10 +141,10 @@
 		for (int i = 0; i < array.length; i++) {
 			if (array[i].equals(object)) {
 				return;
-			}			
+			}
 		}
 		throw new AssertionFailedError(message);
-	}	
+	}
 
 	/**
 	 * Ensure our contributed mode is supported.
@@ -155,41 +155,41 @@
 		assertNotNull(configuration);
 		assertTrue("Java application configuration should support TEST_MODE", configuration.supportsMode("TEST_MODE")); //$NON-NLS-1$ //$NON-NLS-2$
 		assertTrue("Java application type should support TEST_MODE", configuration.getType().supportsMode("TEST_MODE")); //$NON-NLS-1$ //$NON-NLS-2$
-		
+
 		assertTrue("Java application configuration should support debug mode", configuration.supportsMode(ILaunchManager.DEBUG_MODE)); //$NON-NLS-1$
 		assertTrue("Java application type should support debug mode", configuration.getType().supportsMode(ILaunchManager.DEBUG_MODE)); //$NON-NLS-1$
-		
+
 		assertTrue("Java application configuration should support run mode", configuration.supportsMode(ILaunchManager.RUN_MODE)); //$NON-NLS-1$
 		assertTrue("Java application type should support run mode", configuration.getType().supportsMode(ILaunchManager.RUN_MODE));		 //$NON-NLS-1$
 	}
-	
+
 	/**
 	 * Tests that mode specific tab group contributions work.
 	 * @throws CoreException
 	 */
 	public void testModeSpecificTabGroups() throws CoreException {
-		ILaunchConfigurationType javaType = getLaunchManager().getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_JAVA_APPLICATION); 
+		ILaunchConfigurationType javaType = getLaunchManager().getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_JAVA_APPLICATION);
 		ILaunchConfigurationTabGroup standardGroup = LaunchConfigurationPresentationManager.getDefault().getTabGroup(javaType, ILaunchManager.DEBUG_MODE);
 		ILaunchConfigurationTabGroup testGroup = LaunchConfigurationPresentationManager.getDefault().getTabGroup(javaType, "TEST_MODE"); //$NON-NLS-1$
 		ILaunchConfigurationDialog dialog = new LaunchConfigurationsDialog(null, DebugUIPlugin.getDefault().getLaunchConfigurationManager().getLaunchGroup(IDebugUIConstants.ID_DEBUG_LAUNCH_GROUP));
 		standardGroup.createTabs(dialog, ILaunchManager.DEBUG_MODE);
 		testGroup.createTabs(dialog, "TEST_MODE"); //$NON-NLS-1$
-		
+
 		ILaunchConfigurationTab[] tabs = standardGroup.getTabs();
 		HashSet<Class<? extends ILaunchConfigurationTab>> tabset = new HashSet<Class<? extends ILaunchConfigurationTab>>();
 		for(int i = 0; i< tabs.length; i++) {
 			tabset.add(tabs[i].getClass());
 		}
 		Class<?>[] classes = new Class<?>[] {
-				JavaMainTab.class, 
-				JavaArgumentsTab.class, 
-				JavaJRETab.class, 
+				JavaMainTab.class,
+				JavaArgumentsTab.class,
+				JavaJRETab.class,
 				JavaClasspathTab.class,
-				SourceLookupTab.class, 
-				EnvironmentTab.class, 
+				SourceLookupTab.class,
+				EnvironmentTab.class,
 				CommonTab.class};
 		assertTrue("Tab set does not contain all default java tabs", tabset.containsAll(new HashSet<Class<?>>(Arrays.asList(classes)))); //$NON-NLS-1$
-		
+
 		tabs = testGroup.getTabs();
 		assertEquals("Wrong number of tabs in the test group", 4, tabs.length); //$NON-NLS-1$
 		tabset = new HashSet<Class<? extends ILaunchConfigurationTab>>();
@@ -197,15 +197,15 @@
 			tabset.add(tabs[i].getClass());
 		}
 		classes = new Class<?>[] {
-				JavaMainTab.class, 
-				JavaArgumentsTab.class, 
-				JavaJRETab.class, 
+				JavaMainTab.class,
+				JavaArgumentsTab.class,
+				JavaJRETab.class,
 				JavaClasspathTab.class};
 		assertTrue("Test tab set does not contain all default tabs", tabset.containsAll(new HashSet<Class<?>>(Arrays.asList(classes)))); //$NON-NLS-1$
 		standardGroup.dispose();
 		testGroup.dispose();
 	}
-	
+
 	/**
 	 * Tests that the default debug perspective for java applications is debug.
 	 */
@@ -213,12 +213,12 @@
 		ILaunchConfigurationType javaType = getLaunchManager().getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_JAVA_APPLICATION);
 		assertEquals("Java debug perspective should be debug", IDebugUIConstants.ID_DEBUG_PERSPECTIVE, DebugUITools.getLaunchPerspective(javaType, ILaunchManager.DEBUG_MODE)); //$NON-NLS-1$
 	}
-	
+
 	/**
 	 * Test that the default debug perspective for Java Application types is debug.
 	 * Same notion as <code>testDefaultDebugLaunchPerspective()</code>, but using the new API
 	 * for getting perspectives
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	public void testDefaultDebugLaunchPerspective2() {
@@ -227,20 +227,20 @@
 		modes.add(ILaunchManager.DEBUG_MODE);
 		assertEquals("Java debug perspective should be debug", IDebugUIConstants.ID_DEBUG_PERSPECTIVE, DebugUITools.getLaunchPerspective(javaType, null, modes)); //$NON-NLS-1$
 	}
-	
+
 	/**
 	 * Tests that the default run perspective for java applications is none (<code>null</code>).
 	 */
 	public void testDefaultRunLaunchPerspective() {
 		ILaunchConfigurationType javaType = getLaunchManager().getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_JAVA_APPLICATION);
 		assertNull("Java run perspective should be null", DebugUITools.getLaunchPerspective(javaType, ILaunchManager.RUN_MODE)); //$NON-NLS-1$
-	}	
-	
+	}
+
 	/**
 	 * Tests that the default run perspective for java applications is none (<code>null</code>).
 	 * Same notion as <code>testDefaultRunLaunchPerspective()</code>, but using the new API for getting
 	 * launch perspectives
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	public void testDefaultRunLaunchPerspective2() {
@@ -249,7 +249,7 @@
 		modes.add(ILaunchManager.RUN_MODE);
 		assertNull("Java run perspective should be null", DebugUITools.getLaunchPerspective(javaType, null, modes)); //$NON-NLS-1$
 	}
-	
+
 	/**
 	 * Tests that the default debug perspective can be over-ridden and reset
 	 */
@@ -265,14 +265,14 @@
 		DebugUITools.setLaunchPerspective(javaType, ILaunchManager.DEBUG_MODE, IDebugUIConstants.PERSPECTIVE_DEFAULT);
 		assertEquals("Java debug perspective should now be debug", IDebugUIConstants.ID_DEBUG_PERSPECTIVE, //$NON-NLS-1$
 			DebugUITools.getLaunchPerspective(javaType, ILaunchManager.DEBUG_MODE));
-				
-	}	
-	
+
+	}
+
 	/**
 	 * Tests that the default debug perspective can be over-ridden and reset.
 	 * Same notion as <code>testResetDebugLaunchPerspective()</code>, but using the new API
 	 * for setting an resetting perspectives.
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	public void testResetDebugLaunchPerspective2() {
@@ -286,14 +286,14 @@
 		// re-set to default
 		DebugUITools.setLaunchPerspective(javaType, null, modes, IDebugUIConstants.PERSPECTIVE_DEFAULT);
 		assertEquals("Java debug perspective should now be debug", IDebugUIConstants.ID_DEBUG_PERSPECTIVE, DebugUITools.getLaunchPerspective(javaType, null, modes)); //$NON-NLS-1$
-				
-	}	
-	
+
+	}
+
 	/**
 	 * Tests that the default debug perspective can be over-ridden and reset
-	 * Same notion as <code>testResetDebugLaunchPerspective2()</code>, but using the 
+	 * Same notion as <code>testResetDebugLaunchPerspective2()</code>, but using the
 	 * JDT Java launch delegate instead of <code>null</code>
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	public void testResetDebugPerspectiveJavaLaunchDelegate() {
@@ -310,7 +310,7 @@
 		DebugUITools.setLaunchPerspective(javaType, null, modes, IDebugUIConstants.PERSPECTIVE_DEFAULT);
 		assertEquals("Java debug perspective should now be debug", IDebugUIConstants.ID_DEBUG_PERSPECTIVE, DebugUITools.getLaunchPerspective(javaType, delegate, modes)); //$NON-NLS-1$
 	}
-	
+
 	/**
 	 * Tests that the default run perspective can be over-ridden and reset
 	 */
@@ -325,14 +325,14 @@
 		// re-set to default
 		DebugUITools.setLaunchPerspective(javaType, ILaunchManager.RUN_MODE, IDebugUIConstants.PERSPECTIVE_DEFAULT);
 		assertNull("Java run perspective should now be null",  //$NON-NLS-1$
-			DebugUITools.getLaunchPerspective(javaType, ILaunchManager.RUN_MODE));		
-	}	
-	
+			DebugUITools.getLaunchPerspective(javaType, ILaunchManager.RUN_MODE));
+	}
+
 	/**
 	 * Tests that the default run perspective can be over-ridden and reset.
 	 * Same notion as <code>testResetRunLaunchPerspective()</code>, but using the new API
 	 * for getting/setting/re-setting perspective settings.
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	public void testResetRunLaunchPerspective2() {
@@ -346,13 +346,13 @@
 		// re-set to default
 		DebugUITools.setLaunchPerspective(javaType, ILaunchManager.RUN_MODE, IDebugUIConstants.PERSPECTIVE_DEFAULT);
 		assertNull("Java run perspective should now be null", DebugUITools.getLaunchPerspective(javaType, null, modes));		 //$NON-NLS-1$
-	}	
-	
+	}
+
 	/**
 	 * Tests that the default debug perspective can be over-ridden and reset
-	 * Same notion as <code>testResetRunLaunchPerspective2()</code>, but using the 
+	 * Same notion as <code>testResetRunLaunchPerspective2()</code>, but using the
 	 * JDT Java launch delegate instead of <code>null</code>
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	public void testResetRunPerspectiveJavaLaunchDelegate() {
@@ -369,11 +369,11 @@
 		DebugUITools.setLaunchPerspective(javaType, null, modes, IDebugUIConstants.PERSPECTIVE_DEFAULT);
 		assertNull("Java run perspective should now be null", DebugUITools.getLaunchPerspective(javaType, delegate, modes)); //$NON-NLS-1$
 	}
-	
+
 	/**
-	 * Tests that the default launch perspective for the 'debug' modeset and java launch delegate is 
+	 * Tests that the default launch perspective for the 'debug' modeset and java launch delegate is
 	 * <code>ILaunchManager.DEBUG_MODE</code> using the new API.
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	public void testDefaultDebugPerspectiveJavaLaunchDelegate() {
@@ -385,11 +385,11 @@
 		String p = DebugUITools.getLaunchPerspective(javaType, delegate, modes);
 		assertEquals("Java debug perspective should be debug", IDebugUIConstants.ID_DEBUG_PERSPECTIVE, p); //$NON-NLS-1$
 	}
-	
+
 	/**
 	 * Tests that the default launch perspective for the 'run' modeset and java launch delegate
 	 * is <code>null/code> using the new API
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	public void testDefaultRunPerspectiveJavaLaunchDelegate() {
@@ -401,7 +401,7 @@
 		String p = DebugUITools.getLaunchPerspective(javaType, delegate, modes);
 		assertNull("Java run perspective should be null", p); //$NON-NLS-1$
 	}
-	
+
 	/**
 	 * Tests a perspective contributed with a launch tab group.
 	 */
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/LaunchShortcutTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/LaunchShortcutTests.java
index a364ed4..fabc034 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/LaunchShortcutTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/LaunchShortcutTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -20,14 +20,14 @@
 
 /**
  * Tests the capabilities of launch shortcuts from the <code>LaunchShortcuts</code> extension point
- * 
+ *
  * @since 3.3
  */
 @SuppressWarnings("deprecation")
 public class LaunchShortcutTests extends AbstractDebugTest {
 
 	private static String TESTING = "testing"; //$NON-NLS-1$
-	
+
 	/**
 	 * Constructor
 	 * @param name
@@ -35,7 +35,7 @@
 	public LaunchShortcutTests(String name) {
 		super(name);
 	}
-	
+
 	/**
 	 * Tests to see that the local java launch shortcut supports the java
 	 * application launch configuration type
@@ -56,7 +56,7 @@
 		String typeid = "org.eclipse.jdt.launching.foo"; //$NON-NLS-1$
 		assertTrue("local java app shortcut should not support foo", !ext.getAssociatedConfigurationTypes().contains(typeid)); //$NON-NLS-1$
 	}
-	
+
 	/**
 	 * Tests that the java app shortcut supports debug and java perspectives
 	 */
@@ -65,7 +65,7 @@
 		assertNotNull("java app shortcut not found", ext); //$NON-NLS-1$
 		assertTrue("java app shortcut should support debug perspective", ext.getPerspectives().contains("org.eclipse.debug.ui.DebugPerspective")); //$NON-NLS-1$ //$NON-NLS-2$
 	}
-	
+
 	/**
 	 * Tests that the local java app shortcut does not support some fake perspective foo
 	 */
@@ -74,7 +74,7 @@
 		assertNotNull("test shortcut not found", ext); //$NON-NLS-1$
 		assertTrue("java app shortcut should not support foo perspective", !ext.getPerspectives().contains("org.eclipse.debug.ui.FooPerspective")); //$NON-NLS-1$ //$NON-NLS-2$
 	}
-	
+
 	/**
 	 * Tests that the testing launch shortcut can be found based on specified perspective and category
 	 */
@@ -83,7 +83,7 @@
 		assertNotNull("launch configuration manager cannot be null", lcm); //$NON-NLS-1$
 		assertTrue("there should be one shortcut for the debug perspective and testing category", lcm.getLaunchShortcuts("org.eclipse.debug.ui.DebugPerspective", TESTING).size() == 1); //$NON-NLS-1$ //$NON-NLS-2$
 	}
-	
+
 	/**
 	 * Tests that the testing launch shortcut can be found based on the specified category
 	 */
@@ -92,7 +92,7 @@
 		assertNotNull("launch configuration manager cannot be null", lcm); //$NON-NLS-1$
 		assertTrue("there should be one shortcut for the testing category", lcm.getLaunchShortcuts(TESTING).size() == 1); //$NON-NLS-1$
 	}
-	
+
 	/**
 	 * Tests that shortcuts can be found based on the specified launch configuration type id.
 	 * For this test there should be a minimum of two shortcuts found.
@@ -100,7 +100,7 @@
 	public void testGetApplicableLaunchShortcuts() {
 		assertTrue("there should be 2 or more shortcuts", getApplicableLaunchShortcuts("org.eclipse.jdt.launching.localJavaApplication").size() >= 2); //$NON-NLS-1$ //$NON-NLS-2$
 	}
-	
+
 	/**
 	 * Tests that a description can be retrieved for a specified mode when it is the general description,
 	 * i.e. that the description has been provided in the shortcut definition and is NOT a description child element
@@ -116,10 +116,10 @@
 		assertNotNull("The description should not be null for debug mode", descr); //$NON-NLS-1$
 		assertTrue("The description should match the general one: General Description", descr.equals("General Description")); //$NON-NLS-1$ //$NON-NLS-2$
 	}
-	
+
 	/**
-	 * Test that the general shortcut description provided is over-loaded with the one 
-	 * specifically provided for the run mode. i.e. the run mode description is provided as a 
+	 * Test that the general shortcut description provided is over-loaded with the one
+	 * specifically provided for the run mode. i.e. the run mode description is provided as a
 	 * child element for the launch shortcut
 	 * @since 3.3
 	 */
@@ -133,14 +133,14 @@
 		assertNotNull("The description should not be null for run mode", descr); //$NON-NLS-1$
 		assertTrue("The description should match the specific run one: Run Description", descr.equals("Run Description")); //$NON-NLS-1$ //$NON-NLS-2$
 	}
-	
+
 	/**
 	 * Returns a listing of all applicable <code>LaunchShortcutExtension</code>s for the given
 	 * launch configuration type id.
 	 * @param typeid the id of the launch configuration
 	 * @return a listing of <code>LaunchShortcutExtension</code>s that are associated with the specified launch configuration
 	 * type id or an empty list, never <code>null</code>
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	public List<LaunchShortcutExtension> getApplicableLaunchShortcuts(String typeid) {
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/LaunchTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/LaunchTests.java
index 19c4f68..820d110 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/LaunchTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/LaunchTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -25,11 +25,11 @@
  * Tests launch notification.
  */
 public class LaunchTests extends AbstractDebugTest implements ILaunchListener {
-	
+
 	private boolean added = false;
 	private boolean removed = false;
-	private boolean terminated = false; 
-	
+	private boolean terminated = false;
+
 	/**
 	 * Constructor
 	 * @param name the name of the test
@@ -73,9 +73,9 @@
 			}
 		}
 		assertTrue("Launch should have been terminated", terminated); //$NON-NLS-1$
-		
+
 		getLaunchManager().removeLaunch(launch);
-		
+
 		synchronized (this) {
 			if (!removed) {
 				try {
@@ -86,10 +86,10 @@
 		}
 		assertTrue("Launch should have been removed", removed);		 //$NON-NLS-1$
 	}
-	
+
 	/**
 	 * Tests launching an unregistered launch.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testUnregisteredLaunch() throws Exception {
@@ -104,7 +104,7 @@
        } finally {
            terminateAndRemove(thread);
            removeAllBreakpoints();
-       }	   
+       }
 	}
 
 	/**
@@ -124,7 +124,7 @@
 		added = true;
 		notifyAll();
 	}
-	
+
 	/**
 	 * @see org.eclipse.debug.core.ILaunchListener#launchChanged(org.eclipse.debug.core.ILaunch)
 	 */
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/LaunchesTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/LaunchesTests.java
index 1076711..989b61e 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/LaunchesTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/LaunchesTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -21,11 +21,11 @@
  * Tests launch notification plural
  */
 public class LaunchesTests extends AbstractDebugTest implements ILaunchesListener2 {
-	
+
 	private boolean added = false;
 	private boolean removed = false;
-	private boolean terminated = false; 
-	
+	private boolean terminated = false;
+
 	/**
 	 * Constructor
 	 * @param name the name of the test
@@ -33,14 +33,14 @@
 	public LaunchesTests(String name) {
 		super(name);
 	}
-	
-	
+
+
 
 	@Override
 	protected void setUp() throws Exception {
 		added = false;
 		removed = false;
-		terminated = false; 
+		terminated = false;
 		super.setUp();
 	}
 
@@ -53,7 +53,7 @@
 	public void testDebugMode() throws CoreException {
 		doMode(ILaunchManager.DEBUG_MODE);
 	}
-	
+
 	/**
 	 * Tests launch notification in run mode.
 	 * @throws CoreException
@@ -61,7 +61,7 @@
 	public void testRunMode() throws CoreException {
 		doMode(ILaunchManager.RUN_MODE);
 	}
-	
+
 	protected void doMode(String mode) throws CoreException {
 		String typeName = "Breakpoints";		 //$NON-NLS-1$
 		ILaunchConfiguration configuration = getLaunchConfiguration(typeName);
@@ -86,9 +86,9 @@
 			}
 		}
 		assertTrue("Launch should have been terminated", terminated); //$NON-NLS-1$
-		
+
 		getLaunchManager().removeLaunch(launch);
-		
+
 		synchronized (this) {
 			if (!removed) {
 				try {
@@ -97,7 +97,7 @@
 				}
 			}
 		}
-		assertTrue("Launch should have been removed", removed);		 //$NON-NLS-1$		
+		assertTrue("Launch should have been removed", removed);		 //$NON-NLS-1$
 	}
 
 	/**
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/MigrationDelegateTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/MigrationDelegateTests.java
index ee74a68..68c94a8 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/MigrationDelegateTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/MigrationDelegateTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -16,13 +16,13 @@
 
 /**
  * Class to test the migration delegate for java type launch configuration migrations
- * Java types in this context only include Local Java Applications, Java Applets, and Remote Java Applications 
- * 
+ * Java types in this context only include Local Java Applications, Java Applets, and Remote Java Applications
+ *
  * @since 3.2
  *
  */
 public class MigrationDelegateTests extends AbstractDebugTest {
-	
+
 	/**
 	 * constructor
 	 * @param name the name of the test
@@ -30,7 +30,7 @@
 	public MigrationDelegateTests(String name) {
 		super(name);
 	}
-	
+
 	/**
 	 * Runs a normal migration with no problems
 	 * @throws Exception
@@ -38,7 +38,7 @@
 	public void testStandardMigration() throws Exception {
 		createLaunchConfiguration("MigrationTests"); //$NON-NLS-1$
 		ILaunchConfiguration config = getLaunchConfiguration("MigrationTests"); //$NON-NLS-1$
-		try{ 
+		try{
 			assertTrue("LC: "+config.getName()+" should be a candidate for migration", config.isMigrationCandidate()); //$NON-NLS-1$ //$NON-NLS-2$
 			config.migrate();
 			IResource[] mappedResources = config.getMappedResources();
@@ -49,7 +49,7 @@
 			config = null;
 		}
 	}
-	
+
 	/**
 	 * Tests to see if the previously migrated launch configurations are still considered candidates
 	 * @throws Exception
@@ -57,7 +57,7 @@
 	public void testMigrationAlreadyPerformed() throws Exception {
 		createLaunchConfiguration("MigrationTests2"); //$NON-NLS-1$
 		ILaunchConfiguration config = getLaunchConfiguration("MigrationTests2"); //$NON-NLS-1$
-		try{ 
+		try{
 			assertTrue("LC: "+config.getName()+" should be a candidate for migration", config.isMigrationCandidate()); //$NON-NLS-1$ //$NON-NLS-2$
 			config.migrate();
 			assertTrue("LC: "+config.getName()+" should not be a candidate for migration", !config.isMigrationCandidate()); //$NON-NLS-1$ //$NON-NLS-2$
@@ -66,5 +66,5 @@
 			config = null;
 		}
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/PListParserTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/PListParserTests.java
index a938b35..a583941 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/PListParserTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/PListParserTests.java
@@ -28,16 +28,16 @@
 
 	/**
 	 * Constructs a test
-	 * 
+	 *
 	 * @param name test name
 	 */
 	public PListParserTests(String name) {
 		super(name);
 	}
-	
+
 	/**
 	 * Tests parsing of a sample installed JREs plist from the Mac.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testParseJREs() throws Exception {
@@ -61,7 +61,7 @@
 			map.put("test", Boolean.FALSE);
 			map.put("testint", new Integer(42));
 			assertEquals("Incorrect values parsed", map, jres[0]);
-			
+
 			map = new HashMap<String, Comparable<?>>();
 			map.put("JVMArch", "x86_64");
 			map.put("JVMBundleID", "com.apple.javajdk16");
@@ -72,7 +72,7 @@
 			map.put("JVMPlatformVersion", "1.6");
 			map.put("JVMVersion", "1.6.0_20");
 			assertEquals("Incorrect values parsed", map, jres[1]);
-			
+
 			map = new HashMap<String, Comparable<?>>();
 			map.put("JVMArch", "x86_64");
 			map.put("JVMBundleID", "com.apple.javajdk15");
@@ -90,7 +90,7 @@
 
 	/**
 	 * Tests that we parse out the correct number of raw entries from the 'lion' plist output
-	 * 
+	 *
 	 * @throws Exception
 	 * @since 3.8
 	 */
@@ -102,15 +102,15 @@
 		if (obj instanceof Object[]) {
 			Object[] jres = (Object[]) obj;
 			assertEquals("Should be 8 entries in the array", 8, jres.length);
-			
+
 		} else {
 			assertTrue("Top level object should be an array", false);
 		}
 	}
-	
+
 	/**
 	 * Tests that we parse out the correct number of raw entries from the 'now leopard' plist output
-	 * 
+	 *
 	 * @throws Exception
 	 * @since 3.8
 	 */
@@ -122,16 +122,16 @@
 		if (obj instanceof Object[]) {
 			Object[] jres = (Object[]) obj;
 			assertEquals("Should be 2 entries in the array", 2, jres.length);
-			
+
 		} else {
 			assertTrue("Top level object should be an array", false);
 		}
 	}
-	
+
 	/**
 	 * Tests that we can parse out certain {@link VMStandin}s from the 'old' style
 	 * of plist output.
-	 * 
+	 *
 	 * @throws Exception
 	 * @since 3.8
 	 */
@@ -142,11 +142,11 @@
 		VMStandin[] desc = MacInstalledJREs.parseJREInfo(new FileInputStream(file), null);
 		assertEquals("There should be 2 JRE descriptions", 2, desc.length);
 	}
-	
+
 	/**
 	 * Tests that we can parse out certain {@link VMStandin}s from the 'snow leopard' style
 	 * of plist output.
-	 * 
+	 *
 	 * @throws Exception
 	 * @since 3.8
 	 */
@@ -157,11 +157,11 @@
 		VMStandin[] desc = MacInstalledJREs.parseJREInfo(new FileInputStream(file), null);
 		assertEquals("There should be 1 JRE description", 1, desc.length);
 	}
-	
+
 	/**
 	 * Tests that we can parse out certain {@link VMStandin}s from the 'lion' style
 	 * of plist output.
-	 * 
+	 *
 	 * @throws Exception
 	 * @since 3.8
 	 */
@@ -172,14 +172,14 @@
 		VMStandin[] desc = MacInstalledJREs.parseJREInfo(new FileInputStream(file), null);
 		assertEquals("There should be 4 JRE descriptions", 4, desc.length);
 	}
-	
+
 	/**
 	 * Tests that we can parse out certain {@link VMStandin}s from the plist
 	 * output known to be bad - wrong data types.
 	 * <br><br>
-	 * <code>plist-bad1.xml</code> has a boolean value in place of the VM name for the 1.6 VM, 
+	 * <code>plist-bad1.xml</code> has a boolean value in place of the VM name for the 1.6 VM,
 	 * but we should still recover the remainder of the VMs defined (3 of them)
-	 * 
+	 *
 	 * @throws Exception
 	 * @since 3.8
 	 */
@@ -191,13 +191,13 @@
 		VMStandin[] desc = MacInstalledJREs.parseJREInfo(new FileInputStream(file), null);
 		assertEquals("There should be 3 JRE descriptions", 3, desc.length);
 	}
-	
+
 	/**
 	 * Tests that we can parse out certain {@link VMStandin}s from the plist
 	 * output known to be bad - missing element.
 	 * <br><br>
 	 * <code>plist-bad2.xml</code> is missing a key element - but still has the value for the key.
-	 * 
+	 *
 	 * @throws Exception
 	 * @since 3.8
 	 */
@@ -209,13 +209,13 @@
 		VMStandin[] desc = MacInstalledJREs.parseJREInfo(new FileInputStream(file), null);
 		assertEquals("There should be 3 JRE descriptions", 3, desc.length);
 	}
-	
+
 	/**
 	 * Tests that we can parse out certain {@link VMStandin}s from the plist
 	 * output known to be bad - corrupt XML syntax.
 	 * <br><br>
 	 * <code>plist-bad3.xml</code> has corrupt XML syntax
-	 * 
+	 *
 	 * @throws Exception
 	 * @since 3.8
 	 */
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/ProjectClasspathVariableTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/ProjectClasspathVariableTests.java
index 83d7850..de033d5 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/ProjectClasspathVariableTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/ProjectClasspathVariableTests.java
@@ -29,17 +29,17 @@
 import org.eclipse.ui.PartInitException;
 
 /**
- * Tests for the ${project_classpath} variable 
+ * Tests for the ${project_classpath} variable
  */
 public class ProjectClasspathVariableTests extends AbstractDebugTest {
 
 	public ProjectClasspathVariableTests(String name) {
 		super(name);
 	}
-	
+
 	/**
 	 * Sets the selected resource in the navigator view.
-	 * 
+	 *
 	 * @param resource resource to select or <code>null</code> if empty
 	 */
 	protected void setSelection(final IResource resource) {
@@ -66,15 +66,15 @@
 				} catch (PartInitException e) {
 					assertNotNull("Failed to open navigator view", null);
 				}
-				
+
 			}
 		};
 		DebugUIPlugin.getStandardDisplay().syncExec(r);
 	}
-	
+
 	/**
 	 * Tests that a project name must be specified.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testMissingProjectName() throws Exception {
@@ -87,10 +87,10 @@
 		}
 		assertNotNull("Test should have thrown an exception due to missing project name", null);
 	}
-	
+
 	/**
 	 * Tests the selected project's classpath.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testSelectedProject() throws Exception {
@@ -105,10 +105,10 @@
 		buffer.append(get14Project().getProject().getFolder("src").getFile("A.jar").getLocation().toOSString());
 		assertEquals("Wrong classpath", buffer.toString(), cp);
 	}
-	
+
 	/**
 	 * Tests that a Java project must exist
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testProjectDoesNotExist() throws Exception {
@@ -120,7 +120,7 @@
 		}
 		assertNotNull("Test should have thrown an exception due to project does not exist", null);
 	}
-	
+
 	public void testProjectClasspath() throws Exception {
 		IStringVariableManager manager = VariablesPlugin.getDefault().getStringVariableManager();
 		String projectName = get14Project().getElementName();
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/TabGroupWrapperTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/TabGroupWrapperTests.java
index ab7ae88..3404c04 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/TabGroupWrapperTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/TabGroupWrapperTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -20,7 +20,7 @@
 /**
  * test class tests the returnable methods of the new <code>LaunchConfigurationTabGroupWrapper</code> to ensure that it returns existing tab group
  * elements and all contributions
- * 
+ *
  * @since 3.3
  */
 public class TabGroupWrapperTests extends AbstractDebugTest {
@@ -43,7 +43,7 @@
 		javagroup.createTabs(getLaunchConfigurationDialog(IDebugUIConstants.ID_RUN_LAUNCH_GROUP), ILaunchManager.RUN_MODE);
 		assertTrue("There must be at least 11 tabs", javagroup.getTabs().length >= 11); //$NON-NLS-1$
 	}
-	
+
 	/**
 	 * Checks to make sure that all of the controls of the tabs (including contributed ones) are disposed on a call to the tab group
 	 * wrapper class
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/BreakpointManagerPerfTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/BreakpointManagerPerfTests.java
index b08e4a2..72f1551 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/BreakpointManagerPerfTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/BreakpointManagerPerfTests.java
@@ -24,11 +24,11 @@
 
 /**
  * Tests the performance of various parts of the {@link BreakpointManager}
- * 
+ *
  * @since 3.8
  */
 public class BreakpointManagerPerfTests extends AbstractDebugPerformanceTest {
-	
+
 	/**
 	 * Constructor
 	 * @param name
@@ -39,10 +39,10 @@
 
 	static IBreakpoint[] NO_BREAKPOINTS = new IBreakpoint[0];
 	static String fgTypeName = "BPManagerPerf";
-	
+
 	/**
 	 * Create the given number of breakpoints in the given resource starting from the given line
-	 *  
+	 *
 	 * @param count
 	 * @throws Exception
 	 * @return the collection of breakpoints
@@ -72,7 +72,7 @@
 		assertEquals("the should have been "+count+" breakpoints created", count, bps.size());
 		return bps.toArray(new IBreakpoint[bps.size()]);
 	}
-	
+
 	/**
 	 * Tests the time required to start the {@link BreakpointManager}
 	 * @throws Exception
@@ -102,7 +102,7 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * Tests the time required to start the {@link BreakpointManager}
 	 * @throws Exception
@@ -132,7 +132,7 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * Tests the time required to start the {@link BreakpointManager}
 	 * @throws Exception
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfBreakpointTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfBreakpointTests.java
index b9a86c4..a700790 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfBreakpointTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfBreakpointTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -53,7 +53,7 @@
         IJavaLineBreakpoint bp = createLineBreakpoint(14, typeName);
         IJavaThread thread = launchToBreakpoint(typeName, false);
         bp.delete();
-        
+
         try {
             DebugPlugin.getDefault().getBreakpointManager().addBreakpointListener(this);
 
@@ -61,13 +61,13 @@
             for (int i = 0; i < lineNumbers.length; i++) {
                 lineNumbers[i] = 15 + i;
             }
-            
+
             for (int i = 0; i < 10; i++) {
                 createLineBreakpoints(resource, typeName, lineNumbers);
                 waitForBreakpointCount(lineNumbers.length);
                 removeAllBreakpoints();
                 waitForBreakpointCount(0);
-                breakpointCount = 0;  
+                breakpointCount = 0;
             }
 
             for (int i = 0; i < 100; i++) {
@@ -85,7 +85,7 @@
         } finally {
             DebugPlugin.getDefault().getBreakpointManager().removeBreakpointListener(this);
             removeAllBreakpoints();
-            
+
             terminateAndRemove(thread);
         }
     }
@@ -117,7 +117,7 @@
                 IBreakpoint[] breakpoints = manager.getBreakpoints();
                 manager.removeBreakpoints(breakpoints, true);
                 waitForBreakpointCount(0);
-                
+
             }
 
             lineNumbers = new int[250];
@@ -134,14 +134,14 @@
                 manager.removeBreakpoints(breakpoints, true);
                 waitForBreakpointCount(0);
                 stopMeasuring();
-                
+
             }
             commitMeasurements();
             assertPerformance();
         } finally {
             manager.removeBreakpointListener(this);
             removeAllBreakpoints();
-            
+
             terminateAndRemove(thread);
         }
     }
@@ -154,7 +154,7 @@
         tagAsSummary("Install Method Entry Breakpoints", Dimension.ELAPSED_PROCESS);
         String typeName = "LargeSourceFile";
         IProject project = get14Project().getProject();
-        
+
         IJavaLineBreakpoint bp = createLineBreakpoint(14, typeName);
         IJavaThread thread = launchToBreakpoint(typeName, false);
         bp.delete();
@@ -173,7 +173,7 @@
                 waitForBreakpointCount(methods.length);
                 removeAllBreakpoints();
                 waitForBreakpointCount(0);
-                
+
             }
 
             for (int i = 0; i < 100; i++) {
@@ -183,7 +183,7 @@
                 waitForBreakpointCount(methods.length);
                 stopMeasuring();
                 removeAllBreakpoints();
-                
+
                 breakpointCount = 0;
             }
             commitMeasurements();
@@ -191,9 +191,9 @@
         } finally {
             DebugPlugin.getDefault().getBreakpointManager().removeBreakpointListener(this);
             removeAllBreakpoints();
-            
+
             terminateAndRemove(thread);
-        }        
+        }
     }
 
     /**
@@ -204,7 +204,7 @@
         tagAsSummary("Install Watchpoints", Dimension.ELAPSED_PROCESS);
         String typeName = "LotsOfFields";
         IResource resource = getBreakpointResource(typeName);
-        
+
         IJavaLineBreakpoint bp = createLineBreakpoint(516, typeName);
         IJavaThread thread = launchToBreakpoint(typeName, false);
         bp.delete();
@@ -232,7 +232,7 @@
                 waitForBreakpointCount(fields.length);
                 stopMeasuring();
                 removeAllBreakpoints();
-                
+
                 breakpointCount = 0;
             }
             commitMeasurements();
@@ -240,11 +240,11 @@
         } finally {
             DebugPlugin.getDefault().getBreakpointManager().removeBreakpointListener(this);
             removeAllBreakpoints();
-            
+
             terminateAndRemove(thread);
-        }        
+        }
     }
-    
+
     /**
      * Waits for the specified breakpoint count to be hit
      * @param i
@@ -284,7 +284,7 @@
             JDIDebugModel.createMethodBreakpoint(project, typeName, methodName, "()V", true, false, false, -1, -1, -1, 0, true, null);
         }
     }
-    
+
     /**
      * Creates watchpoints on the specified fields of the specified resource with the given type name
      * @param resource
@@ -299,7 +299,7 @@
             wp.setModification(true);
         }
     }
-    
+
     /**
      * @see org.eclipse.debug.core.IBreakpointListener#breakpointAdded(org.eclipse.debug.core.model.IBreakpoint)
      */
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfConditionalBreakpointsTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfConditionalBreakpointsTests.java
index 94f3ddc..866a4ee 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfConditionalBreakpointsTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfConditionalBreakpointsTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfConsoleTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfConsoleTests.java
index 523ebf0..1684275 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfConsoleTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfConsoleTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -55,7 +55,7 @@
         tagAsSummary("Process Console 10,000 lines: plain output", Dimension.ELAPSED_PROCESS);
         runConsole80CharsTest(10000, 75);
     }
-    
+
     /**
      * Tests the performance of 10000 lines of stack trace output to the console
      * @throws Exception
@@ -66,7 +66,7 @@
     }
 
     /**
-     * Tests the performance of 10000 lines of wrapped process console output to the console 
+     * Tests the performance of 10000 lines of wrapped process console output to the console
      * @throws Exception
      */
     public void testProcessConsoleWrappedOutput10000Lines() throws Exception {
@@ -95,7 +95,7 @@
     }
 
     /**
-     * Runs the 
+     * Runs the
      * @param lines
      * @param repeatTest
      * @throws Exception
@@ -194,9 +194,9 @@
                 DebugUITools.launch(workingCopy, ILaunchManager.RUN_MODE);
             }
         };
-        
+
         DebugUIPlugin.getStandardDisplay().asyncExec(runnable);
-        
+
         synchronized (fLock) {
             if (!fStopped) {
                 fLock.wait(360000);
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfContextualLaunchMenu.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfContextualLaunchMenu.java
index f915848..669e850 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfContextualLaunchMenu.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfContextualLaunchMenu.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -21,10 +21,10 @@
 import org.eclipse.swt.widgets.Shell;
 
 /**
- * Tests the performance of the contextual launch menu population 
+ * Tests the performance of the contextual launch menu population
  */
 public class PerfContextualLaunchMenu extends AbstractDebugPerformanceTest {
-    
+
     /**
      * Constructor
      * @param name
@@ -40,18 +40,18 @@
     public void testContextualLaunchMenu() throws Exception {
     	setDegradationComment("This test is unreliable as it improved 10x during 3.3 (vs 3.2), and needs to be replaced.");
         final PerfTestContextualLaunchAction launchaction = new PerfTestContextualLaunchAction();
-        
-        ICompilationUnit cu = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "SourceLookup.java");        
+
+        ICompilationUnit cu = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "SourceLookup.java");
         StructuredSelection selection = new StructuredSelection(new Object[] {cu});
         launchaction.selectionChanged(new BogusAction(), selection);
-        
+
         DebugUIPlugin.getStandardDisplay().syncExec(new Runnable() {
             @Override
 			public void run() {
                 Shell shell = DebugUIPlugin.getStandardDisplay().getActiveShell();
                 Menu menu = launchaction.getMenu(new Menu(shell));
                 showMenu(launchaction, menu, 5);
-                
+
                 for(int i=0; i<10; i++) {
                     try {
                     System.gc();
@@ -77,10 +77,10 @@
         commitMeasurements();
         assertPerformance();
     }
-    
+
     private class BogusAction extends Action {
     }
-    
+
     private class PerfTestContextualLaunchAction extends ContextualLaunchAction {
         /**
          * Constructor
@@ -88,7 +88,7 @@
         public PerfTestContextualLaunchAction() {
             super(ILaunchManager.RUN_MODE);
         }
-        
+
         void showMenu(Menu menu) {
         	fillMenu(menu);
         }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfDebugBaselineTest.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfDebugBaselineTest.java
index bacc100..1d52314 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfDebugBaselineTest.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfDebugBaselineTest.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -33,12 +33,12 @@
             buffer.append("at org.eclipse.jdt.internal.debug.core.model.JDILocalVariable.retrieveValue(JDILocalVariable.java:56\n");
         }
         String text = buffer.toString();
-        
+
         //ensure class loading and JIT is done.
         for (int i= 0; i < 5; i++) {
             findMatches(text);
         }
-        
+
         try {
             for (int i= 0; i < 10; i++) {
                 fPerformanceMeter.start();
@@ -60,7 +60,7 @@
     private int findMatches(String text) {
         Pattern pattern = Pattern.compile("\\w\\S*\\(\\S*\\.java:\\S*\\)");
         Matcher matcher = pattern.matcher(text);
-        
+
         int count = 0;
         while (matcher.find()) {
             count++;
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfSteppingTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfSteppingTests.java
index adab869..ce6c674 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfSteppingTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfSteppingTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -21,7 +21,7 @@
  * Tests performance of stepping.
  */
 public class PerfSteppingTests extends AbstractDebugPerformanceTest {
-	
+
 	/**
 	 * Constructor
 	 * @param name
@@ -29,9 +29,9 @@
 	public PerfSteppingTests(String name) {
 		super(name);
 	}
-	
+
 	class MyFilter implements IDebugEventFilter {
-		
+
 		private IJavaThread fThread = null;
 		private Object fLock;
 		private DebugEvent[] EMPTY = new DebugEvent[0];
@@ -45,7 +45,7 @@
 			fThread = thread;
 			fLock = lock;
 		}
-		
+
 		/**
 		 * @see org.eclipse.debug.core.IDebugEventFilter#filterDebugEvents(org.eclipse.debug.core.DebugEvent[])
 		 */
@@ -64,7 +64,7 @@
 			}
 			return events;
 		}
-		
+
 		/**
 		 * performs a step operation
 		 */
@@ -81,24 +81,24 @@
 					assertTrue(e.getMessage(), false);
 				}
 			}
-			 
+
 		}
-		
+
 	}
 
 	/**
 	 * Tests stepping over without taking into account event processing in the UI.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testBareStepOver() throws Exception {
 		String typeName = "PerfLoop";
 		createLineBreakpoint(20, typeName);
-		
+
 		IJavaThread thread= null;
-		try {			
+		try {
 			thread= launchToBreakpoint(typeName, false);
-			
+
 			// warm up
 			Object lock = new Object();
 			MyFilter filter = new MyFilter(thread, lock);
@@ -108,14 +108,14 @@
 				for (int i = 0; i < 100; i++) {
 					filter.step();
 				}
-			}			
-			DebugPlugin.getDefault().removeDebugEventFilter(filter);			
-			
+			}
+			DebugPlugin.getDefault().removeDebugEventFilter(filter);
+
 			// real test
 			lock = new Object();
 			filter = new MyFilter(thread, lock);
 			DebugPlugin.getDefault().addDebugEventFilter(filter);
-			
+
 			thread.getTopStackFrame();
 			for (int n= 0; n < 150; n++) {
 				startMeasuring();
@@ -127,11 +127,11 @@
 			}
 			commitMeasurements();
 			assertPerformance();
-			
+
 			DebugPlugin.getDefault().removeDebugEventFilter(filter);
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfVariableDetailTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfVariableDetailTests.java
index e578db7..f303798 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfVariableDetailTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfVariableDetailTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -27,7 +27,7 @@
 public class PerfVariableDetailTests extends AbstractDebugPerformanceTest implements IValueDetailListener {
 
     private Object fLock = new Object();
-    
+
     /**
      * Constructor
      * @param name
@@ -45,9 +45,9 @@
     		fLock.notifyAll();
 		}
 	}
-    
+
     /**
-     * Tests the performance of calculating the 'toString' method 
+     * Tests the performance of calculating the 'toString' method
      * @throws Exception
      */
     public void testToStringDetails() throws Exception {
@@ -66,7 +66,7 @@
         	assertNotNull("Missing variable 'v'", variable);
         	IDebugModelPresentation presentation = DebugUITools.newDebugModelPresentation("org.eclipse.jdt.debug");
         	IValue value = variable.getValue();
-        	
+
         	// warm up
         	for (int i = 0; i < 100; i++) {
         		synchronized (fLock) {
@@ -74,7 +74,7 @@
         			fLock.wait(30000);
         		}
         	}
-        	
+
         	// test
         	for (int i = 0; i < 300; i++) {
         		startMeasuring();
@@ -86,10 +86,10 @@
         		}
         		stopMeasuring();
         	}
-        	
+
         	commitMeasurements();
         	assertPerformance();
-        	
+
         } finally {
         	removeAllBreakpoints();
         	terminateAndRemove(thread);
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/AbstractRefactoringDebugTest.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/AbstractRefactoringDebugTest.java
index 1f04ca3..4636962 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/AbstractRefactoringDebugTest.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/AbstractRefactoringDebugTest.java
@@ -34,7 +34,7 @@
 
 /**
  * Common refactoring utils.
- * 
+ *
  * @since 3.2
  */
 public class AbstractRefactoringDebugTest extends AbstractDebugTest {
@@ -42,7 +42,7 @@
 	public AbstractRefactoringDebugTest(String name) {
 		super(name);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.debug.tests.AbstractDebugTest#setUp()
 	 */
@@ -51,11 +51,11 @@
 		super.setUp();
 		cleanTestFiles();
 	}
-	
+
 	/**
 	 * Performs the given refactoring. If a {@link ResourceException} occurs during the refactoring,
 	 * we trap it and throw a {@link TestAgainException} to try the test again.
-	 * 
+	 *
 	 * @param refactoring
 	 * @throws Exception
 	 */
@@ -86,7 +86,7 @@
 			throw new TestAgainException(ce.getLocalizedMessage());
 		}
 	}
-	
+
 	/**
 	 * Clean up all the test files
 	 * @throws CoreException
@@ -116,7 +116,7 @@
 		if (!fragment.exists()) {
 			root.createPackageFragment("a.b.c", true, new NullProgressMonitor());
 		}
-		
+
 	// cleanup MoveeSource / Movee.java
 		IFile target = project.getFile("src/a/b/Movee.java");
 		if (target.exists()) {
@@ -144,7 +144,7 @@
 		if (target.exists()) {
 			target.delete(true, false, null);
 		}
-		
+
 	// cleanup MoveeChildSource / MoveeChild.java
 		target = project.getFile("src/a/b/MoveeChild.java");
 		if (target.exists()) {
@@ -166,14 +166,14 @@
 		SearchEngine engine = new SearchEngine();
 		IJavaSearchScope scope = SearchEngine.createWorkspaceScope();
 		try {
-			engine.searchAllTypeNames(null, 
-					SearchPattern.R_PATTERN_MATCH | SearchPattern.R_CASE_SENSITIVE, 
-					"!@$#!@".toCharArray(), 
-					SearchPattern.R_PATTERN_MATCH | SearchPattern.R_CASE_SENSITIVE, 
-					IJavaSearchConstants.CLASS, 
-					scope, 
-					new TypeNameRequestor() {}, 
-					IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH, 
+			engine.searchAllTypeNames(null,
+					SearchPattern.R_PATTERN_MATCH | SearchPattern.R_CASE_SENSITIVE,
+					"!@$#!@".toCharArray(),
+					SearchPattern.R_PATTERN_MATCH | SearchPattern.R_CASE_SENSITIVE,
+					IJavaSearchConstants.CLASS,
+					scope,
+					new TypeNameRequestor() {},
+					IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
 					null);
 		} catch (CoreException e) {
 		}
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ChangeAnonymousTypeMethodSignatureUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ChangeAnonymousTypeMethodSignatureUnitTests.java
index bd7b30e..c6ef6cf 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ChangeAnonymousTypeMethodSignatureUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ChangeAnonymousTypeMethodSignatureUnitTests.java
@@ -28,10 +28,10 @@
 		super(name);
 	}
 
-	
+
 	public void testAnonymousTypeMethodChange() throws Exception {
 		try {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$childsMethod()V$1$anonTypeMethod()QString",
@@ -55,16 +55,16 @@
 		} finally {
 			removeAllBreakpoints();
 		}
-	}//end testBreakPoint	
-		
+	}//end testBreakPoint
+
 	private Refactoring setupRefactor(String root, String packageName, String cuName, String fullTargetName) throws Exception {
 		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit = getCompilationUnit(javaProject, root, packageName, cuName);
 		IMethod method = (IMethod)(getMember(cunit,fullTargetName));
-		
+
         ChangeSignatureProcessor processor = new ChangeSignatureProcessor(method);
         ProcessorBasedRefactoring ref= new ProcessorBasedRefactoring(processor);
-        
+
         //configure the processor a little more here!
         processor.setNewMethodName("changedMethod");
         processor.setNewReturnTypeName("Object");
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ChangeMethodSignatureUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ChangeMethodSignatureUnitTests.java
index 849cdf4..e1497f3 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ChangeMethodSignatureUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ChangeMethodSignatureUnitTests.java
@@ -32,7 +32,7 @@
 
 	public void testPublicTypeMethodChange() throws Exception {
 		try {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "Movee.java",
 					type = "Movee",
@@ -60,7 +60,7 @@
 
 	public void testInnerTypeMethodChange() throws Exception {
 		try {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "Movee.java",
 					type = "Movee$InnerType",
@@ -85,10 +85,10 @@
 			removeAllBreakpoints();
 		}
 	}//end testBreakPoint
-	
+
 	public void testNonPublicTypeMethodChange() throws Exception {
 		try {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "Movee.java",
 					type = "NonPublicType",
@@ -96,7 +96,7 @@
 					methodSig = "()V";
 			//create breakpoint to test
 			createMethodBreakpoint(pack,cunit,type,methodName,methodSig,true, false);
-			
+
 			//refactor
 			Refactoring ref = setupRefactor(src, pack, cunit, type, methodName, methodSig);
 			performRefactor(ref);
@@ -113,18 +113,18 @@
 		} finally {
 			removeAllBreakpoints();
 		}
-	}//end testBreakPoint	
-	
-	
-//////////////////////////////////////////////////////////////////////////////////////	
+	}//end testBreakPoint
+
+
+//////////////////////////////////////////////////////////////////////////////////////
 	private Refactoring setupRefactor(String root, String targetPackageName, String cuName, String typeName, String methodName, String methodSig) throws Exception {
-		
+
 		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit = getCompilationUnit(javaProject, root, targetPackageName, cuName);
 		IType type = getLowestType(cunit, typeName);
-		
+
 		IMethod method = type.getMethod(methodName, Signature.getParameterTypes(methodSig));
-		
+
         ChangeSignatureProcessor processor = new ChangeSignatureProcessor(method);
         ProcessorBasedRefactoring ref= new ProcessorBasedRefactoring(processor);
 
@@ -143,10 +143,10 @@
 	}
 
 	/**
-	 * 
+	 *
 	 * @param cu the CompilationUnit containing the toplevel Type
-	 * @param input - the type, possibly including inner type, 
-	 * separated by $. 
+	 * @param input - the type, possibly including inner type,
+	 * separated by $.
 	 * eg: EnclosingType$InnerType
 	 * @return the Lowest level inner type specified in input
 	 */
@@ -163,14 +163,14 @@
 		}
 		//has no inner type
 		return cu.getType(input);
-		
+
 	}
-	
+
 	/**
 	 * Helper method for getLowestType (ICompilationUnit cu, String input)
 	 * @param enclosing name of enclosing Type
-	 * @param name the typename, possibly including inner type, 
-	 * separated by $. 
+	 * @param name the typename, possibly including inner type,
+	 * separated by $.
 	 * eg: EnclosingType$InnerType
 	 * @return
 	 */
@@ -184,7 +184,7 @@
 			}
 		}
 		//has no inner type
-		return enclosing.getType(name);		
-		
+		return enclosing.getType(name);
+
 	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ConvertInnerAnonymousTypeToNestedUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ConvertInnerAnonymousTypeToNestedUnitTests.java
index a319c4d..d8e7a2d 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ConvertInnerAnonymousTypeToNestedUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ConvertInnerAnonymousTypeToNestedUnitTests.java
@@ -30,10 +30,10 @@
 		super(name);
 	}
 
-	
+
 	public void testLineBreakpoint() throws Exception {
 		try {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$InnerChildType$innerChildsMethod()V$1",
@@ -41,7 +41,7 @@
 					newAnonTypeName = "a.b.c.MoveeChild$InnerChildType$NewAnonymousClass";
 			int lineNumber = 40,
 				newLineNumber = 44;
-			
+
 			//create breakpoint to test
 			IJavaLineBreakpoint breakpoint = createLineBreakpoint(lineNumber, src, pack, cunit, fullTargetName);
 			//refactor
@@ -59,16 +59,16 @@
 		} finally {
 			removeAllBreakpoints();
 		}
-	}//end testBreakPoint	
+	}//end testBreakPoint
 
 	public void testMethodBreakpoint() throws Exception {
 		try {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$InnerChildType$innerChildsMethod()V$1$anonTypeMethod()V",
 					targetParentType = "MoveeChild$InnerChildType$innerChildsMethod()V$1",
-					methodName = "anonTypeMethod",					
+					methodName = "anonTypeMethod",
 					newAnonTypeName = "a.b.c.MoveeChild$InnerChildType$NewAnonymousClass";
 			//create breakpoint to test
 			IJavaMethodBreakpoint breakpoint = createMethodBreakpoint(src, pack, cunit,fullTargetName, true, false);
@@ -88,17 +88,17 @@
 			removeAllBreakpoints();
 		}
 	}//end testBreakPoint
-	
+
 	public void testWatchpoint() throws Exception {
 		try {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$InnerChildType$innerChildsMethod()V$1$anAnonInt",
 					targetParentType = "MoveeChild$InnerChildType$innerChildsMethod()V$1",
-					fieldName = "anAnonInt",					
+					fieldName = "anAnonInt",
 					newAnonTypeName = "a.b.c.MoveeChild$InnerChildType$NewAnonymousClass";
-						
+
 			//create breakpoint to test
 			IJavaWatchpoint breakpoint = createNestedTypeWatchPoint(src, pack, cunit, fullTargetName, true, true);
 			//refactor
@@ -116,17 +116,17 @@
 		} finally {
 			removeAllBreakpoints();
 		}
-	}//end testBreakPoint	
-		
+	}//end testBreakPoint
+
 	public void testClassLoadpoint() throws Exception {
 		try {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$InnerChildType$innerChildsMethod()V$1",
 					targetParentType = "MoveeChild$InnerChildType$innerChildsMethod()V$1",
 					newAnonTypeName = "a.b.c.MoveeChild$InnerChildType$NewAnonymousClass";
-					
+
 			//create breakpoint to test
 			IJavaClassPrepareBreakpoint breakpoint = createClassPrepareBreakpoint(src, pack, cunit, fullTargetName);
 			//refactor
@@ -143,23 +143,23 @@
 		} finally {
 			removeAllBreakpoints();
 		}
-	}//end testBreakPoint	
-			
-//////////////////////////////////////////////////////////////////////////////////////	
+	}//end testBreakPoint
+
+//////////////////////////////////////////////////////////////////////////////////////
 	private Refactoring setupRefactor(String root, String packageName, String cuName, String targetName) throws Exception {
 		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit = getCompilationUnit(javaProject, root, packageName, cuName);
 		IType type = (IType)getMember(cunit,targetName);
-		
+
 		//IDocument compUnitSource = new Document(cunit.getSource());
-				
+
 		ISourceRange typeInfo = type.getSourceRange();
-		int target = typeInfo.getOffset(); 
-		
+		int target = typeInfo.getOffset();
+
 		ConvertAnonymousToNestedRefactoring ref= new ConvertAnonymousToNestedRefactoring(cunit, target, 0);
 		//configure the ref a little more here!
-		ref.setClassName("NewAnonymousClass");			
-		
+		ref.setClassName("NewAnonymousClass");
+
 		RefactoringStatus preconditionResult= ref.checkInitialConditions(new NullProgressMonitor());
 		if(!preconditionResult.isOK())
 		{
@@ -167,7 +167,7 @@
 			return null;
 		}
 		//configure the ref a little more here!
-		ref.setClassName("NewAnonymousClass");		
+		ref.setClassName("NewAnonymousClass");
 		return ref;
 	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ConvertNonPublicAnonymousTypeToNestedUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ConvertNonPublicAnonymousTypeToNestedUnitTests.java
index 44920ec..dd6e688 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ConvertNonPublicAnonymousTypeToNestedUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ConvertNonPublicAnonymousTypeToNestedUnitTests.java
@@ -29,10 +29,10 @@
 	public ConvertNonPublicAnonymousTypeToNestedUnitTests(String name) {
 		super(name);
 	}
-	
+
 	public void testLineBreakpoint() throws Exception {
 		try {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "NonPublicChildType$nonPublicChildsMethod()V$1",
@@ -40,7 +40,7 @@
 					newAnonTypeName = "a.b.c.NonPublicChildType$NewAnonymousClass";
 			int lineNumber = 56,
 				newLineNumber = 60;///////VERIFY NEW LINE NUMBER
-			
+
 			//create breakpoint to test
 			IJavaLineBreakpoint breakpoint = createLineBreakpoint(lineNumber, src, pack, cunit, fullTargetName);
 			//refactor
@@ -58,11 +58,11 @@
 		} finally {
 			removeAllBreakpoints();
 		}
-	}//end testBreakPoint	
+	}//end testBreakPoint
 
 	public void testMethodBreakpoint() throws Exception {
 		try {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "NonPublicChildType$nonPublicChildsMethod()V$1$anonTypeMethod()V",
@@ -87,17 +87,17 @@
 			removeAllBreakpoints();
 		}
 	}//end testBreakPoint
-	
+
 	public void testWatchpoint() throws Exception {
 		try {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "NonPublicChildType$nonPublicChildsMethod()V$1$anAnonInt",
 					targetParentType = "NonPublicChildType$nonPublicChildsMethod()V$1",
 					newAnonTypeName = "a.b.c.NonPublicChildType$NewAnonymousClass",
 					fieldName = "anAnonInt";
-						
+
 			//create breakpoint to test
 			IJavaWatchpoint breakpoint = createNestedTypeWatchPoint(src, pack, cunit, fullTargetName, true, true);
 			//refactor
@@ -115,17 +115,17 @@
 		} finally {
 			removeAllBreakpoints();
 		}
-	}//end testBreakPoint	
-		
+	}//end testBreakPoint
+
 	public void testClassLoadpoint() throws Exception {
 		try {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "NonPublicChildType$nonPublicChildsMethod()V$1",
 					targetParentType = "NonPublicChildType$nonPublicChildsMethod()V$1",
 					newAnonTypeName = "a.b.c.NonPublicChildType$NewAnonymousClass";
-					
+
 			//create breakpoint to test
 			IJavaClassPrepareBreakpoint breakpoint = createClassPrepareBreakpoint(src, pack, cunit, fullTargetName);
 			//refactor
@@ -142,23 +142,23 @@
 		} finally {
 			removeAllBreakpoints();
 		}
-	}//end testBreakPoint	
-			
-//////////////////////////////////////////////////////////////////////////////////////	
+	}//end testBreakPoint
+
+//////////////////////////////////////////////////////////////////////////////////////
 	private Refactoring setupRefactor(String root, String packageName, String cuName, String targetName) throws Exception {
 		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit = getCompilationUnit(javaProject, root, packageName, cuName);
 		IType type = (IType)getMember(cunit,targetName);
-		
+
 		//IDocument compUnitSource = new Document(cunit.getSource());
-				
+
 		ISourceRange typeInfo = type.getSourceRange();
-		int target = typeInfo.getOffset(); 
-		
+		int target = typeInfo.getOffset();
+
 		ConvertAnonymousToNestedRefactoring ref= new ConvertAnonymousToNestedRefactoring(cunit, target, 0);
 		//configure the ref a little more here!
-		ref.setClassName("ThisWillBeErased");//must have *A* name...			
-		
+		ref.setClassName("ThisWillBeErased");//must have *A* name...
+
 		//the below actually resets the refactoring fields to defaults.
 		RefactoringStatus preconditionResult= ref.checkInitialConditions(new NullProgressMonitor());
 		if(!preconditionResult.isOK())
@@ -167,7 +167,7 @@
 			return null;
 		}
 		//configure the actual new name
-		ref.setClassName("NewAnonymousClass");		
+		ref.setClassName("NewAnonymousClass");
 		return ref;
 	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ConvertPublicAnonymousTypeToNestedUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ConvertPublicAnonymousTypeToNestedUnitTests.java
index de761e5..c3b52eb 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ConvertPublicAnonymousTypeToNestedUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ConvertPublicAnonymousTypeToNestedUnitTests.java
@@ -32,7 +32,7 @@
 
 	public void testLineBreakpoint() throws Exception {
 		try {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$childsMethod()V$1",
@@ -40,7 +40,7 @@
 					newAnonTypeName = "a.b.c.MoveeChild$NewAnonymousClass";
 			int lineNumber = 26,
 				newLineNumber = 30;
-			
+
 			//create breakpoint to test
 			IJavaLineBreakpoint breakpoint = createLineBreakpoint(lineNumber, src, pack, cunit, fullTargetName);
 			//refactor
@@ -58,16 +58,16 @@
 		} finally {
 			removeAllBreakpoints();
 		}
-	}//end testBreakPoint	
+	}//end testBreakPoint
 
 	public void testMethodBreakpoint() throws Exception {
 		try {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$childsMethod()V$1$anonTypeMethod()QString",
 					targetParentType = "MoveeChild$childsMethod()V$1",
-					methodName = "anonTypeMethod",					
+					methodName = "anonTypeMethod",
 					newAnonTypeName = "a.b.c.MoveeChild$NewAnonymousClass";
 			//create breakpoint to test
 			IJavaMethodBreakpoint breakpoint = createMethodBreakpoint(src, pack, cunit,fullTargetName, true, false);
@@ -87,17 +87,17 @@
 			removeAllBreakpoints();
 		}
 	}//end testBreakPoint
-	
+
 	public void testWatchpoint() throws Exception {
 		try {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$childsMethod()V$1$anAnonInt",
 					targetParentType = "MoveeChild$childsMethod()V$1",
-					fieldName = "anAnonInt",					
+					fieldName = "anAnonInt",
 					newAnonTypeName = "a.b.c.MoveeChild$NewAnonymousClass";
-						
+
 			//create breakpoint to test
 			IJavaWatchpoint breakpoint = createNestedTypeWatchPoint(src, pack, cunit, fullTargetName, true, true);
 			//refactor
@@ -115,17 +115,17 @@
 		} finally {
 			removeAllBreakpoints();
 		}
-	}//end testBreakPoint	
-		
+	}//end testBreakPoint
+
 	public void testClassLoadpoint() throws Exception {
 		try {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$childsMethod()V$1",
 					targetParentType = "MoveeChild$childsMethod()V$1",
 					newAnonTypeName = "a.b.c.MoveeChild$NewAnonymousClass";
-			
+
 			//create breakpoint to test
 			IJavaClassPrepareBreakpoint breakpoint = createClassPrepareBreakpoint(src, pack, cunit, fullTargetName);
 			//refactor
@@ -142,20 +142,20 @@
 		} finally {
 			removeAllBreakpoints();
 		}
-	}//end testBreakPoint	
-			
+	}//end testBreakPoint
+
 	private Refactoring setupRefactor(String root, String packageName, String cuName, String targetName) throws Exception {
 		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit = getCompilationUnit(javaProject, root, packageName, cuName);
 		IType type = (IType)getMember(cunit,targetName);
-		
+
 		ISourceRange typeInfo = type.getSourceRange();
-		int target = typeInfo.getOffset(); 
-		
+		int target = typeInfo.getOffset();
+
 		ConvertAnonymousToNestedRefactoring ref= new ConvertAnonymousToNestedRefactoring(cunit, target, 0);
 		//configure the ref a little more here!
-		ref.setClassName("NewAnonymousClass");			
-		
+		ref.setClassName("NewAnonymousClass");
+
 		RefactoringStatus preconditionResult= ref.checkInitialConditions(new NullProgressMonitor());
 		if(!preconditionResult.isOK())
 		{
@@ -163,7 +163,7 @@
 			return null;
 		}
 		//configure the ref a little more here!
-		ref.setClassName("NewAnonymousClass");		
+		ref.setClassName("NewAnonymousClass");
 		return ref;
 	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ExtractMethodUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ExtractMethodUnitTests.java
index 195ff56..a99f719 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ExtractMethodUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ExtractMethodUnitTests.java
@@ -51,7 +51,7 @@
 			removeAllBreakpoints();
 		}
 	}//end testLineBreakPoint
-	
+
 	public void testExtractionFromNonPublicType() throws Exception {
 		try {
 			int lineNumber = 40;
@@ -75,7 +75,7 @@
 			removeAllBreakpoints();
 		}
 	}//end testLineBreakPoint
-	
+
 	public void testExtractionFromInternalType() throws Exception {
 		try {
 			int lineNumber = 29;
@@ -98,21 +98,21 @@
 		} finally {
 			removeAllBreakpoints();
 		}
-	}//end testLineBreakPoint	
-	
-	
+	}//end testLineBreakPoint
+
+
 /////////////////////////////////////////
-	
+
 	private Refactoring setupRefactor(int lineNumber, String root, String targetPackageName, String cuName) throws Exception {
-		
+
 		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit = getCompilationUnit(javaProject, root, targetPackageName, cuName);
-				
+
 		IDocument sourceCUnit = new Document(cunit.getSource());
-		IRegion lineInfo = sourceCUnit.getLineInformation(lineNumber-1);//-1 Document considers lineNumber different than createBreakpoint 
-						
+		IRegion lineInfo = sourceCUnit.getLineInformation(lineNumber-1);//-1 Document considers lineNumber different than createBreakpoint
+
 		ExtractMethodRefactoring ref= new ExtractMethodRefactoring(cunit,lineInfo.getOffset(), lineInfo.getLength());
-		
+
 		RefactoringStatus preconditionResult= ref.checkInitialConditions(new NullProgressMonitor());
 		if(!preconditionResult.isOK())
 		{
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/IntroduceParameterUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/IntroduceParameterUnitTests.java
index f2b26f7..0d05231 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/IntroduceParameterUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/IntroduceParameterUnitTests.java
@@ -73,7 +73,7 @@
 			removeAllBreakpoints();
 		}
 	}//end testLineBreakPoint
-	
+
 	public void testExtractionFromInternalType() throws Exception {
 		try {
 			int lineNumber = 29;
@@ -89,26 +89,26 @@
 			assertTrue("Breakpoint Marker has ceased existing",methodBreakpoint.getMarker().exists());
 			assertEquals("wrong method Signature", "(QString;)V", methodBreakpoint.getMethodSignature());
 			assertEquals("wrong type name", "a.b.c.Movee$InnerType", methodBreakpoint.getTypeName());
-			assertEquals("breakpoint attached to wrong method","innerTypeMethod",methodBreakpoint.getMethodName());		
+			assertEquals("breakpoint attached to wrong method","innerTypeMethod",methodBreakpoint.getMethodName());
 		} catch (Exception e) {
 			throw e;
 		} finally {
 			removeAllBreakpoints();
 		}
-	}//end testLineBreakPoint	
-	
-//////////////////////////////////////////////////////////////////////////////////////	
+	}//end testLineBreakPoint
+
+//////////////////////////////////////////////////////////////////////////////////////
 	private Refactoring setupRefactor(int lineNumber, String root, String targetPackageName, String cuName) throws Exception {
-		
+
 		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit = getCompilationUnit(javaProject, root, targetPackageName, cuName);
 		IDocument sourceCUnit = new Document(cunit.getSource());
 		IRegion lineInfo = sourceCUnit.getLineInformation(lineNumber-1);//-1 Document considers lineNumber different than createBreakpoint
 		int allowanceForBrackets = 4;
-		int itemOffset = lineInfo.getOffset() + lineInfo.getLength() - allowanceForBrackets; 
-						
+		int itemOffset = lineInfo.getOffset() + lineInfo.getLength() - allowanceForBrackets;
+
 		IntroduceParameterRefactoring ref= new IntroduceParameterRefactoring(cunit,itemOffset, 0);//0, no length
-		
+
 		RefactoringStatus preconditionResult= ref.checkInitialConditions(new NullProgressMonitor());
 		if(!preconditionResult.isOK())
 		{
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MemberParser.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MemberParser.java
index 66b1f0f..6d7badb 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MemberParser.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MemberParser.java
@@ -32,7 +32,7 @@
 import org.eclipse.jdt.internal.core.SourceType;
 
 /**
- * Contains methods to find an IMember within a given path subdivided by the '$' character. 
+ * Contains methods to find an IMember within a given path subdivided by the '$' character.
  * Syntax:
  * Type$InnerType$MethodNameAndSignature$AnonymousTypeDeclarationNumber$FieldName
  * eg:<code>
@@ -43,7 +43,7 @@
  * 			{
  * 				Object anon = new Object(){
  * 					int anIntField;
- * 					String anonTypeMethod() {return "an Example";}				
+ * 					String anonTypeMethod() {return "an Example";}
  * 				}
  * 			}
  * 		}
@@ -54,7 +54,7 @@
  * eg:<code>1MyType</code>
  */
 public class MemberParser{
-	
+
 	/**
 	 * @param typeQualifiedName
 	 * @return
@@ -83,7 +83,7 @@
 			if(fragments[fragmentNum].containsJavaResources()){
 				ICompilationUnit cunits[] = fragments[fragmentNum].getCompilationUnits();
 				for (int cunitNum = 0; cunitNum < cunits.length; cunitNum++) {
-					results.add(cunits[cunitNum]);								
+					results.add(cunits[cunitNum]);
 				}
 			}
 		}
@@ -91,7 +91,7 @@
 			return null;
 		return results.toArray(new ICompilationUnit[results.size()]);
 	}
-	
+
 	/**
 	 * @param projects the scope of which you wish to return compilation units
 	 * @return a handle to all compilation units contained by the given projects
@@ -99,12 +99,12 @@
 	 */
 	private static ICompilationUnit[] getAllCompilationUnits(IProject[] projects)  throws JavaModelException{
 		return getAllCompilationUnits(getAllPackageFragments(projects));
-	}	
-	
+	}
+
 	private static ICompilationUnit[] getAllCompilationUnits(String packageName, IProject[] projects)throws JavaModelException {
 		return getAllCompilationUnits(getAllPackageFragments(packageName, projects));
-	}	
-	
+	}
+
 	/**
 	 * @param types
 	 * @return an array of all declared methods for the given types
@@ -113,7 +113,7 @@
 	private static IMethod[] getAllMethods(IType[] types) throws JavaModelException{
 		if(types==null)
 			return null;
-		
+
 		final Set<IMethod> results = new HashSet<IMethod>();
 		for (int typeNum = 0; typeNum < types.length; typeNum++) {
 			IMethod[] methods = types[typeNum].getMethods();
@@ -125,7 +125,7 @@
 			return null;
 		return results.toArray(new SourceMethod[results.size()]);
 	}
-	
+
 	/**
 	 * @param projects the scope of the return
 	 * @return all package fragments in the scope
@@ -152,7 +152,7 @@
 	private static IProject[] getAllProjects(){
 		return ResourcesPlugin.getWorkspace().getRoot().getProjects();
 	}
-	
+
 	/**
 	 * @param cunits the scope of the search
 	 * @return all types within the scope
@@ -161,7 +161,7 @@
 	private static IType[] getAllTypes(ICompilationUnit[] cunits) throws JavaModelException {
 		if(cunits == null)
 			return null;
-		
+
 		final Set<IType> results = new HashSet<IType>();
 		for (int cunitNum = 0; cunitNum < cunits.length; cunitNum++) {
 			IType types[] = cunits[cunitNum].getTypes(); //get all topLevel types
@@ -170,10 +170,10 @@
 			}
 		}
 		if(results.isEmpty())
-			return null;	   
+			return null;
 		return results.toArray(new IType[results.size()]);
 	}
-	
+
 	/**
 	 * @param methods the scope of the search
 	 * @return an array of all types declared within the given methods.
@@ -194,8 +194,8 @@
 			return null;
 		return results.toArray(new SourceType[results.size()]);
 	}
-	
-	/**Will search within the given type and all of it's children - including methods 
+
+	/**Will search within the given type and all of it's children - including methods
 	 * and anonymous types for other types.
 	 * @param types the scope of the search
 	 * @return all types within the given scope
@@ -223,11 +223,11 @@
 		//else
 		return results.toArray(new SourceType[results.size()]);//possibly change to new IType
 	}
-	
-	
+
+
 	/**
 	 * Returns the Java project with the given name.
-	 * 
+	 *
 	 * @param name project name
 	 * @return the Java project with the given name
 	 */
@@ -235,7 +235,7 @@
 		IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject();
 		return JavaCore.create(project);
 	}
-	
+
 	/**
 	 * @param packageName name of the package
 	 * @param projects where to search
@@ -259,11 +259,11 @@
 		//else
 		return results.toArray(new IPackageFragment[results.size()]);
 	}
-	
+
 	private static IProject getProject(String projectName){
 		return ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
 	}
-	
+
 	private static IType getType(ArrayList<String> typeList, ICompilationUnit[] cunits) throws JavaModelException{
 		IType[] types = getAllTypes(cunits);
 		//if 1st letter is a number, it's anonymous
@@ -295,20 +295,20 @@
 				else
 					typeNum++;//check the next type
 			}
-			
+
 			//else, it is not in the top-level types - check in methods
 			types = getAllTypes(getAllMethods(types));
 			if(types==null)
 				return null;//couldn't find it.
-		}//end while		
+		}//end while
 	}
-	
+
 	/**
-	 * Will search the workspace and return the requested type. The more information given, 
+	 * Will search the workspace and return the requested type. The more information given,
 	 * the faster the search
 	 * @param typeName the name of the type, with or without qualifiers - it cannot be null
-	 * 		e.g. "aType.innerType.1.typeInAnonymousType" or even just "typeInAnonymousType" 
-	 * 		or "innerType.1.typeInAnonymousType". 
+	 * 		e.g. "aType.innerType.1.typeInAnonymousType" or even just "typeInAnonymousType"
+	 * 		or "innerType.1.typeInAnonymousType".
 	 * @param packageName the elemental name of the package containing the given type - may be null
 	 * @param projectName the elemental name of the project containing the given type - may be null
 	 * @return the IType handle to the requested type
@@ -327,7 +327,7 @@
 		else{
 			projects = getAllProjects();
 		}
-		
+
 		//get the Comp.units for those projects
 		ICompilationUnit cunits[] = null;
 		if(packageName!=null && packageName.length()>0){
@@ -336,14 +336,14 @@
 		else{
 			cunits = getAllCompilationUnits(projects);
 		}
-		
+
 		return getType(typeList, cunits);
 	}
-	
-	
+
+
 	/**
 	 * @param cu the CompilationUnit containing the toplevel Type
-	 * @param target - the IMember target, listed in full Syntax, as noted in MemberParser 
+	 * @param target - the IMember target, listed in full Syntax, as noted in MemberParser
 	 * eg: EnclosingType$InnerType
 	 * @return the Lowest level inner type specified in input
 	 */
@@ -361,14 +361,14 @@
 		}
 		//has no inner type
 		return cu.getType(target);
-		
+
 	}
-	
+
 	/**
 	 * Helper method for getLowestType (ICompilationUnit cu, String input)
 	 * @param top name of enclosing Type
-	 * @param tail the typename, possibly including inner type, 
-	 * separated by $. 
+	 * @param tail the typename, possibly including inner type,
+	 * separated by $.
 	 * eg: EnclosingType$InnerType
 	 * @return the designated type, or null if type not found.
 	 */
@@ -376,10 +376,10 @@
 		String newtail = tail;
 		if(newtail==null || newtail.length()==0 )
 			return top;
-		
+
 		if(!top.exists())
 			return null;
-		
+
 		//check if there are more nested elements
 		String head=null;
 		for(int i=0;i<newtail.length();i++)
@@ -387,7 +387,7 @@
 			if(newtail.charAt(i)=='$')//nested Item?
 			{//Enclosing$Inner$MoreInner
 				head = newtail.substring(0,i);
-				newtail = newtail.substring(i+1);	
+				newtail = newtail.substring(i+1);
 				break;//found next item
 			}
 		}
@@ -396,19 +396,19 @@
 			head = newtail;
 			newtail = null;
 		}
-		
+
 		if(top instanceof IType)
 			return getNextFromType(top, head, newtail);
-		else 
+		else
 			if(top instanceof IMethod)
 				return getNextFromMethod(top, head, newtail);
 			else
 				if(top instanceof IField)
 					return getNextFromField(top, head, newtail);
 		//else there is a problem!
-		return getDeepest(top,newtail);			
+		return getDeepest(top,newtail);
 	}
-	
+
 	/**
 	 * @param head the string to parse for a name
 	 * @return the name in the type, given in the format "Occurance#Type"
@@ -421,11 +421,11 @@
 			{
 				return head.substring(i);
 			}
-			
+
 		}
-		return IInternalDebugCoreConstants.EMPTY_STRING;//entire thing is a number 
+		return IInternalDebugCoreConstants.EMPTY_STRING;//entire thing is a number
 	}
-	
+
 	/**
 	 * @param head the string to parse for an occurrence
 	 * @return the name in the type, given in the format "Occurance#Type"
@@ -439,7 +439,7 @@
 		}
 		return Integer.parseInt(head);//entire thing is a number
 	}
-	
+
 	/**
 	 * @param head name of method w/ signature at the end
 	 * @return simply the name of the given method, using format:
@@ -454,7 +454,7 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * @param top the field in which to search
 	 * @param head the next member to find
@@ -463,14 +463,14 @@
 	 */
 	protected IMember getNextFromField(IMember top, String head, String tail) {
 		IField current = (IField)top;
-		
+
 		IType type = current.getType(getLocalTypeName(head),getLocalTypeOccurrence(head));
-		if(type.exists())	
+		if(type.exists())
 			return getDeepest(type,tail);
 		//else
-		return null;//something failed.								
+		return null;//something failed.
 	}
-	
+
 	/**
 	 * @param top the member in which to search
 	 * @param head the next member to find
@@ -480,15 +480,15 @@
 	protected IMember getNextFromMethod(IMember top, String head, String tail) {
 		//must be a local or anonymous type
 		IMethod current = (IMethod)top;
-		
+
 		//is next part a Type?
 		IType type = current.getType(getLocalTypeName(head), getLocalTypeOccurrence(head));
-		if(type.exists())	
+		if(type.exists())
 			return getDeepest(type,tail);
 		//else
 		return null;
 	}
-	
+
 	/**
 	 * @param top the member in which to search
 	 * @param head the next member to find
@@ -497,10 +497,10 @@
 	 */
 	protected IMember getNextFromType(IMember top, String head, String tail) {
 		IType current = (IType)top;
-		
+
 		//is next part a Type?
 		IMember next = current.getType(head);
-		if(next.exists())	
+		if(next.exists())
 			return getDeepest(next,tail);
 		//else, is next part a Field?
 		next = current.getField(head);
@@ -513,7 +513,7 @@
 		//else
 		return null;//something failed.
 	}
-	
+
 	/**
 	 * @param head name of method w/ signature at the end
 	 * @return simply the ParameterTypeSignature, using format:
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveCompilationUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveCompilationUnitTests.java
index 5acd60a..bd36ecf 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveCompilationUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveCompilationUnitTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -26,28 +26,28 @@
 import org.eclipse.jdt.internal.corext.refactoring.reorg.ReorgDestinationFactory;
 import org.eclipse.jdt.internal.corext.refactoring.reorg.ReorgPolicyFactory;
 import org.eclipse.ltk.core.refactoring.participants.MoveRefactoring;
-// 
+//
 //then check number of and location of created breakpoint
 /**
- * A set of tests which moves a CompilationUnit and verifies if 
- * various breakpoints associated with that C.U. were moved. 
+ * A set of tests which moves a CompilationUnit and verifies if
+ * various breakpoints associated with that C.U. were moved.
  */
 public class MoveCompilationUnitTests extends AbstractRefactoringDebugTest {
 
 	public MoveCompilationUnitTests(String name) {
 		super(name);
 	}
-	
+
 	/**
 	 * Performs a move refactoring.
-	 * 
+	 *
 	 * @param element element to move
 	 * @param destination destination of move
 	 * @throws Exception
 	 */
 	protected void move(IJavaElement element, IJavaElement destination) throws Exception {
 		IMovePolicy movePolicy= ReorgPolicyFactory.createMovePolicy(
-				new IResource[0], 
+				new IResource[0],
 				new IJavaElement[] {element});
 		JavaMoveProcessor processor= new JavaMoveProcessor(movePolicy);
 		processor.setDestination(ReorgDestinationFactory.createDestination(destination));
@@ -55,9 +55,9 @@
 		if(processor.canUpdateJavaReferences()) {
 			processor.setUpdateReferences(true);
 		}
-		performRefactor(new MoveRefactoring(processor));			
+		performRefactor(new MoveRefactoring(processor));
 	}
-	
+
 	/**
 	 * Tests if a LineBreakPoint was moved appropriately.
 	 * @throws Exception
@@ -82,19 +82,19 @@
 			removeAllBreakpoints();
 		}
 	}//end testLineBreakPoint
-	
+
 	/**
 	 * Tests if a MethodBreakPoint was moved appropriately.
 	 * @throws Exception
-	 */	
+	 */
 	public void testMethodBreakPoint() throws Exception {
 		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
-				
+
 		try {
 			//create an EntryMethod Breakpoint to test
 			createMethodBreakpoint("a.b.c.Movee", "testMethod1", "()V", true, false);
-			IPackageFragment destination= getPackageFragmentRoot(javaProject, "src").createPackageFragment("a.b", false, null); 
+			IPackageFragment destination= getPackageFragmentRoot(javaProject, "src").createPackageFragment("a.b", false, null);
 			move(cunit, destination);
 			IBreakpoint[] breakpoints = getBreakpointManager().getBreakpoints();
 			assertEquals("wrong number of breakpoints", 1, breakpoints.length);
@@ -105,22 +105,22 @@
 			throw e;
 		} finally {
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * Tests if a WatchPointBreakPoint was moved appropriately.
 	 * @throws Exception
-	 */		
+	 */
 	public void testWatchPointBreakPoint() throws Exception {
 		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
-				
+
 		try {
 			//create a watchPoint to test
 			createWatchpoint("a.b.c.Movee", "anInt", true, true);
-			IPackageFragment destination= getPackageFragmentRoot(javaProject, "src").createPackageFragment("a.b", false, null); 
-			move(cunit, destination);	
+			IPackageFragment destination= getPackageFragmentRoot(javaProject, "src").createPackageFragment("a.b", false, null);
+			move(cunit, destination);
 			IBreakpoint[] breakPoints = getBreakpointManager().getBreakpoints();
 			assertEquals("wrong number of watchpoints", 1, breakPoints .length);
 			IJavaWatchpoint watchPoint = (IJavaWatchpoint) breakPoints [0];
@@ -130,21 +130,21 @@
 			throw e;
 		} finally {
 			removeAllBreakpoints();
-		}			
+		}
 	}
-	
+
 	/**
 	 * Tests if a ClassLoadBreakPoint was moved appropriately.
 	 * @throws Exception
-	 */			
+	 */
 	public void testClassLoadBreakPoint() throws Exception {
 		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
-				
+
 		try {
 			//create a classLoad breakpoint to test
 			createClassPrepareBreakpoint("a.b.c.Movee");
-			IPackageFragment destination= getPackageFragmentRoot(javaProject, "src").createPackageFragment("a.b", false, null); 
+			IPackageFragment destination= getPackageFragmentRoot(javaProject, "src").createPackageFragment("a.b", false, null);
 			move(cunit, destination);
 			IBreakpoint[] breakpoints = getBreakpointManager().getBreakpoints();
 			assertEquals("wrong number of breakpoints", 1, breakpoints.length);
@@ -154,6 +154,6 @@
 			throw e;
 		} finally {
 			removeAllBreakpoints();
-		}				
+		}
 	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveFieldUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveFieldUnitTests.java
index c08ad8f..894665f 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveFieldUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveFieldUnitTests.java
@@ -16,33 +16,33 @@
 import org.eclipse.jdt.core.IJavaElement;
 import org.eclipse.jdt.core.IJavaProject;
 import org.eclipse.jdt.debug.core.IJavaWatchpoint;
-// 
+//
 //then check number of and location of created breakpoint
 /**
- * A set of tests which moves a CompilationUnit and verifies if 
- * various breakpoints associated with that C.U. were moved. 
+ * A set of tests which moves a CompilationUnit and verifies if
+ * various breakpoints associated with that C.U. were moved.
  */
 public class MoveFieldUnitTests extends MoveRefactoringTest {
 
 	public MoveFieldUnitTests(String name) {
 		super(name);
 	}
-		
+
 	/**
 	 * Tests if a WatchPointBreakPoint was moved appropriately.
 	 * @throws Exception
-	 */		
+	 */
 	public void testPublicTypeFieldMove() throws Exception {
 		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
 		IJavaElement type = cunit.getType("Movee").getField("anInt");
-			
+
 		try {
 			//create a watchPoint to test
 			createWatchpoint("a.b.c.Movee", "anInt", true, true);
-			
-			refactor(javaProject, type);		
-			
+
+			refactor(javaProject, type);
+
 			IBreakpoint[] breakPoints = getBreakpointManager().getBreakpoints();
 			assertEquals("wrong number of watchpoints", 1, breakPoints .length);
 			IJavaWatchpoint watchPoint = (IJavaWatchpoint) breakPoints [0];
@@ -52,24 +52,24 @@
 			throw e;
 		} finally {
 			removeAllBreakpoints();
-		}			
+		}
 	}
-	
+
 	/**
 	 * Tests if a WatchPointBreakPoint was moved appropriately.
 	 * @throws Exception
-	 */		
+	 */
 	public void testInnerTypeFieldMove() throws Exception {
 		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
 		IJavaElement type = cunit.getType("Movee").getType("InnerType").getField("innerTypeInt");
-			
+
 		try {
 			//create a watchPoint to test
 			createWatchpoint("a.b.c.Movee.InnerType", "innerTypeInt", true, true);
-			
-			refactor(javaProject, type);		
-			
+
+			refactor(javaProject, type);
+
 			IBreakpoint[] breakPoints = getBreakpointManager().getBreakpoints();
 			assertEquals("wrong number of watchpoints", 1, breakPoints .length);
 			IJavaWatchpoint watchPoint = (IJavaWatchpoint) breakPoints [0];
@@ -79,24 +79,24 @@
 			throw e;
 		} finally {
 			removeAllBreakpoints();
-		}			
+		}
 	}
-	
+
 	/**
 	 * Tests if a WatchPointBreakPoint was moved appropriately.
 	 * @throws Exception
-	 */		
+	 */
 	public void testNonPublicTypeFieldMove() throws Exception {
 		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
 		IJavaElement type = cunit.getType("NonPublicType").getField("differentInt");
-			
+
 		try {
 			//create a watchPoint to test
 			createWatchpoint("a.b.c","Movee.java", "NonPublicType", "differentInt", true, true);
-			
-			refactor(javaProject, type);		
-			
+
+			refactor(javaProject, type);
+
 			IBreakpoint[] breakPoints = getBreakpointManager().getBreakpoints();
 			assertEquals("wrong number of watchpoints", 1, breakPoints .length);
 			IJavaWatchpoint watchPoint = (IJavaWatchpoint) breakPoints [0];
@@ -106,6 +106,6 @@
 			throw e;
 		} finally {
 			removeAllBreakpoints();
-		}			
-	}	
+		}
+	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveInnerTypeMethodUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveInnerTypeMethodUnitTests.java
index 15c26f2..520175c 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveInnerTypeMethodUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveInnerTypeMethodUnitTests.java
@@ -18,11 +18,11 @@
 import org.eclipse.jdt.core.Signature;
 import org.eclipse.jdt.debug.core.IJavaLineBreakpoint;
 import org.eclipse.jdt.debug.core.IJavaMethodBreakpoint;
-// 
+//
 //then check number of and location of created breakpoint
 /**
- * A set of tests which moves a CompilationUnit and verifies if 
- * various breakpoints associated with that C.U. were moved. 
+ * A set of tests which moves a CompilationUnit and verifies if
+ * various breakpoints associated with that C.U. were moved.
  */
 public class MoveInnerTypeMethodUnitTests extends MoveRefactoringTest {
 
@@ -42,7 +42,7 @@
 			int newLineNumber = 20;
 			//create lineBreakpoint to test
 			createLineBreakpoint(lineNumber, "a.b.c.Movee$InnerType");
-			refactor(javaProject, type);		
+			refactor(javaProject, type);
 			IBreakpoint[] breakpoints = getBreakpointManager().getBreakpoints();
 			assertEquals("wrong number of breakpoints", 1, breakpoints.length);
 			IJavaLineBreakpoint lineBreakpoint = (IJavaLineBreakpoint) breakpoints[0];
@@ -55,20 +55,20 @@
 			removeAllBreakpoints();
 		}
 	}//end testLineBreakPoint
-	
+
 	/**
 	 * Tests if a MethodBreakPoint was moved appropriately.
 	 * @throws Exception
-	 */	
+	 */
 	public void testMethodBreakPoint() throws Exception {
 		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
 		IJavaElement type = cunit.getType("Movee").getType("InnerType").getMethods()[0];
-			
+
 		try {
 			//create an EntryMethod Breakpoint to test & do so
 			createMethodBreakpoint("a.b.c.Movee$InnerType", "innerTypeMethod", "()V", true, false);
-			refactor(javaProject, type);	
+			refactor(javaProject, type);
 			IBreakpoint[] breakpoints = getBreakpointManager().getBreakpoints();
 			assertEquals("wrong number of breakpoints", 1, breakpoints.length);
 			IJavaMethodBreakpoint methodBreakpoint = (IJavaMethodBreakpoint) breakpoints[0];
@@ -78,7 +78,7 @@
 			throw e;
 		} finally {
 			removeAllBreakpoints();
-		}		
+		}
 	}
 
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveInnerTypeToNewFileUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveInnerTypeToNewFileUnitTests.java
index 3c1ff7a..6932cb0 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveInnerTypeToNewFileUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveInnerTypeToNewFileUnitTests.java
@@ -49,8 +49,8 @@
 			removeAllBreakpoints();
 		}
 	}//end testBreakPoint
-	
-	
+
+
 	public void testMethodBreakPoint() throws Exception {
 		try {
 			//create Breakpoint to test
@@ -70,7 +70,7 @@
 			removeAllBreakpoints();
 		}
 	}//end testBreakPoint
-	
+
 	public void testWatchPoint() throws Exception {
 		try {
 			//create Breakpoint to test
@@ -90,7 +90,7 @@
 			removeAllBreakpoints();
 		}
 	}//end testBreakPoint
-	
+
 	public void testClassLoadBreakPoint() throws Exception {
 		try {
 			//create Breakpoint to test
@@ -109,12 +109,12 @@
 			removeAllBreakpoints();
 		}
 	}//end testBreakPoint
-	
+
 	private Refactoring setupRefactor(String parentClassName, String className, String root, String targetPackageName, String cuName) throws Exception {
 		IJavaProject javaProject = get14Project();
 		IType parentClas= getCompilationUnit(javaProject, root, targetPackageName, cuName).getType(parentClassName);
 		IType clas= parentClas.getType(className);
-		
+
 		MoveInnerToTopRefactoring ref= new MoveInnerToTopRefactoring(clas, JavaPreferencesSettings.getCodeGenerationSettings(clas.getJavaProject()));
 		ref.checkInitialConditions(new NullProgressMonitor());
 
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveInnerTypeUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveInnerTypeUnitTests.java
index 40f4e15..939946b 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveInnerTypeUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveInnerTypeUnitTests.java
@@ -19,11 +19,11 @@
 import org.eclipse.jdt.debug.core.IJavaLineBreakpoint;
 import org.eclipse.jdt.debug.core.IJavaMethodBreakpoint;
 import org.eclipse.jdt.debug.core.IJavaWatchpoint;
-// 
+//
 //then check number of and location of created breakpoint
 /**
- * A set of tests which moves a CompilationUnit and verifies if 
- * various breakpoints associated with that C.U. were moved. 
+ * A set of tests which moves a CompilationUnit and verifies if
+ * various breakpoints associated with that C.U. were moved.
  */
 public class MoveInnerTypeUnitTests extends MoveRefactoringTest {
 
@@ -42,7 +42,7 @@
 			int lineNumber = 38;
 			//create lineBreakpoint to test
 			createLineBreakpoint(lineNumber, "a.b.c.Movee$InnerType");
-			refactor(javaProject, type);		
+			refactor(javaProject, type);
 			IBreakpoint[] breakpoints = getBreakpointManager().getBreakpoints();
 			assertEquals("wrong number of breakpoints", 1, breakpoints.length);
 			IJavaLineBreakpoint lineBreakpoint = (IJavaLineBreakpoint) breakpoints[0];
@@ -55,20 +55,20 @@
 			removeAllBreakpoints();
 		}
 	}//end testLineBreakPoint
-	
+
 	/**
 	 * Tests if a MethodBreakPoint was moved appropriately.
 	 * @throws Exception
-	 */	
+	 */
 	public void testMethodBreakPoint() throws Exception {
 		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
 		IType type = cunit.getType("Movee").getType("InnerType");
-		
+
 		try {
 			//create an EntryMethod Breakpoint to test & do so
 			createMethodBreakpoint("a.b.c.Movee$InnerType", "innerTypeMethod", "()V", true, false);
-			refactor(javaProject, type);	
+			refactor(javaProject, type);
 			IBreakpoint[] breakpoints = getBreakpointManager().getBreakpoints();
 			assertEquals("wrong number of breakpoints", 1, breakpoints.length);
 			IJavaMethodBreakpoint methodBreakpoint = (IJavaMethodBreakpoint) breakpoints[0];
@@ -78,21 +78,21 @@
 			throw e;
 		} finally {
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * Tests if a WatchPointBreakPoint was moved appropriately.
 	 * @throws Exception
-	 */		
+	 */
 	public void testWatchPointBreakPoint() throws Exception {
 		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
-		IType type = cunit.getType("Movee").getType("InnerType");		
+		IType type = cunit.getType("Movee").getType("InnerType");
 		try {
 			//create a watchPoint to test
 			createWatchpoint("a.b.c.Movee$InnerType", "innerTypeInt", true, true);
-			refactor(javaProject, type);		
+			refactor(javaProject, type);
 			IBreakpoint[] breakPoints = getBreakpointManager().getBreakpoints();
 			assertEquals("wrong number of watchpoints", 1, breakPoints .length);
 			IJavaWatchpoint watchPoint = (IJavaWatchpoint) breakPoints [0];
@@ -102,24 +102,24 @@
 			throw e;
 		} finally {
 			removeAllBreakpoints();
-		}			
+		}
 	}
-	
+
 	/**
 	 * Tests if a ClassLoadBreakPoint was moved appropriately.
 	 * @throws Exception
-	 */			
+	 */
 	public void testClassLoadBreakPoint() throws Exception {
 		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
-		IType type = cunit.getType("Movee").getType("InnerType");		
-		
+		IType type = cunit.getType("Movee").getType("InnerType");
+
 		try {
 			//create a classLoad breakpoint to test
 			createClassPrepareBreakpoint("a.b.c.Movee$InnerType");
-			
-			refactor(javaProject, type);	
-			
+
+			refactor(javaProject, type);
+
 			IBreakpoint[] breakpoints = getBreakpointManager().getBreakpoints();
 			assertEquals("wrong number of breakpoints", 1, breakpoints.length);
 			IJavaClassPrepareBreakpoint classPrepareBreakpoint = (IJavaClassPrepareBreakpoint) breakpoints[0];
@@ -128,6 +128,6 @@
 			throw e;
 		} finally {
 			removeAllBreakpoints();
-		}				
+		}
 	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveNonPublicTypeMethodUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveNonPublicTypeMethodUnitTests.java
index b8a3f98..30bc260 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveNonPublicTypeMethodUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveNonPublicTypeMethodUnitTests.java
@@ -18,11 +18,11 @@
 import org.eclipse.jdt.core.Signature;
 import org.eclipse.jdt.debug.core.IJavaLineBreakpoint;
 import org.eclipse.jdt.debug.core.IJavaMethodBreakpoint;
-// 
+//
 //then check number of and location of created breakpoint
 /**
- * A set of tests which moves a CompilationUnit and verifies if 
- * various breakpoints associated with that C.U. were moved. 
+ * A set of tests which moves a CompilationUnit and verifies if
+ * various breakpoints associated with that C.U. were moved.
  */
 public class MoveNonPublicTypeMethodUnitTests extends MoveRefactoringTest {
 
@@ -42,7 +42,7 @@
 			int newLineNumber = 20;
 			//create lineBreakpoint to test
 			createLineBreakpoint(lineNumber,"a.b.c","Movee.java","NonPublicType");
-			refactor(javaProject, type);		
+			refactor(javaProject, type);
 			IBreakpoint[] breakpoints = getBreakpointManager().getBreakpoints();
 			assertEquals("wrong number of breakpoints", 1, breakpoints.length);
 			IJavaLineBreakpoint lineBreakpoint = (IJavaLineBreakpoint) breakpoints[0];
@@ -55,20 +55,20 @@
 			removeAllBreakpoints();
 		}
 	}//end testLineBreakPoint
-	
+
 	/**
 	 * Tests if a MethodBreakPoint was moved appropriately.
 	 * @throws Exception
-	 */	
+	 */
 	public void testMethodBreakPoint() throws Exception {
 		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
 		IJavaElement type = cunit.getType("NonPublicType").getMethods()[0];//1st method is nonPublicMethod
-		
+
 		try {
 			//create an EntryMethod Breakpoint to test & do so
 			createMethodBreakpoint("a.b.c","Movee.java","NonPublicType","nonPublicMethod","()V",true, false);
-			refactor(javaProject, type);	
+			refactor(javaProject, type);
 			IBreakpoint[] breakpoints = getBreakpointManager().getBreakpoints();
 			assertEquals("wrong number of breakpoints", 1, breakpoints.length);
 			IJavaMethodBreakpoint methodBreakpoint = (IJavaMethodBreakpoint) breakpoints[0];
@@ -78,7 +78,7 @@
 			throw e;
 		} finally {
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveNonPublicTypeUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveNonPublicTypeUnitTests.java
index 1f5133e..5c17e4d 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveNonPublicTypeUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveNonPublicTypeUnitTests.java
@@ -19,11 +19,11 @@
 import org.eclipse.jdt.debug.core.IJavaLineBreakpoint;
 import org.eclipse.jdt.debug.core.IJavaMethodBreakpoint;
 import org.eclipse.jdt.debug.core.IJavaWatchpoint;
-// 
+//
 //then check number of and location of created breakpoint
 /**
- * A set of tests which moves a CompilationUnit and verifies if 
- * various breakpoints associated with that C.U. were moved. 
+ * A set of tests which moves a CompilationUnit and verifies if
+ * various breakpoints associated with that C.U. were moved.
  */
 public class MoveNonPublicTypeUnitTests extends MoveRefactoringTest {
 
@@ -42,7 +42,7 @@
 			int lineNumber = 31;
 			//create lineBreakpoint to test
 			createLineBreakpoint(lineNumber,"a.b.c","Movee.java","NonPublicType");
-			refactor(javaProject, type);		
+			refactor(javaProject, type);
 			IBreakpoint[] breakpoints = getBreakpointManager().getBreakpoints();
 			assertEquals("wrong number of breakpoints", 1, breakpoints.length);
 			IJavaLineBreakpoint lineBreakpoint = (IJavaLineBreakpoint) breakpoints[0];
@@ -55,20 +55,20 @@
 			removeAllBreakpoints();
 		}
 	}//end testLineBreakPoint
-	
+
 	/**
 	 * Tests if a MethodBreakPoint was moved appropriately.
 	 * @throws Exception
-	 */	
+	 */
 	public void testMethodBreakPoint() throws Exception {
 		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
 		IType type = cunit.getType("NonPublicType");
-		
+
 		try {
 			//create an EntryMethod Breakpoint to test & do so
 			createMethodBreakpoint("a.b.c","Movee.java","NonPublicType","nonPublicMethod","()V",true, false);
-			refactor(javaProject, type);	
+			refactor(javaProject, type);
 			IBreakpoint[] breakpoints = getBreakpointManager().getBreakpoints();
 			assertEquals("wrong number of breakpoints", 1, breakpoints.length);
 			IJavaMethodBreakpoint methodBreakpoint = (IJavaMethodBreakpoint) breakpoints[0];
@@ -78,23 +78,23 @@
 			throw e;
 		} finally {
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * Tests if a WatchPointBreakPoint was moved appropriately.
 	 * @throws Exception
-	 */		
+	 */
 	public void testWatchPointBreakPoint() throws Exception {
 		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
-		IType type = cunit.getType("NonPublicType");		
+		IType type = cunit.getType("NonPublicType");
 		try {
 			//create a watchPoint to test
 			createNestedTypeWatchPoint("src", "a.b.c", "Movee.java", "NonPublicType$differentInt", true, true);
-			
-			refactor(javaProject, type);		
-			
+
+			refactor(javaProject, type);
+
 			IBreakpoint[] breakPoints = getBreakpointManager().getBreakpoints();
 			assertEquals("wrong number of watchpoints", 1, breakPoints .length);
 			IJavaWatchpoint watchPoint = (IJavaWatchpoint) breakPoints [0];
@@ -104,24 +104,24 @@
 			throw e;
 		} finally {
 			removeAllBreakpoints();
-		}			
+		}
 	}
-	
+
 	/**
 	 * Tests if a ClassLoadBreakPoint was moved appropriately.
 	 * @throws Exception
-	 */			
+	 */
 	public void testClassLoadBreakPoint() throws Exception {
 		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
-		IType type = cunit.getType("NonPublicType");		
-		
+		IType type = cunit.getType("NonPublicType");
+
 		try {
 			//create a classLoad breakpoint to test
 			createClassPrepareBreakpoint("a.b.c","Movee.java","NonPublicType");
-			
-			refactor(javaProject, type);	
-			
+
+			refactor(javaProject, type);
+
 			IBreakpoint[] breakpoints = getBreakpointManager().getBreakpoints();
 			assertEquals("wrong number of breakpoints", 1, breakpoints.length);
 			IJavaClassPrepareBreakpoint classPrepareBreakpoint = (IJavaClassPrepareBreakpoint) breakpoints[0];
@@ -130,6 +130,6 @@
 			throw e;
 		} finally {
 			removeAllBreakpoints();
-		}				
+		}
 	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MovePublicTypeMethodUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MovePublicTypeMethodUnitTests.java
index 54bdb68..16c84f0 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MovePublicTypeMethodUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MovePublicTypeMethodUnitTests.java
@@ -18,11 +18,11 @@
 import org.eclipse.jdt.core.Signature;
 import org.eclipse.jdt.debug.core.IJavaLineBreakpoint;
 import org.eclipse.jdt.debug.core.IJavaMethodBreakpoint;
-// 
+//
 //then check number of and location of created breakpoint
 /**
- * A set of tests which moves a CompilationUnit and verifies if 
- * various breakpoints associated with that C.U. were moved. 
+ * A set of tests which moves a CompilationUnit and verifies if
+ * various breakpoints associated with that C.U. were moved.
  */
 public class MovePublicTypeMethodUnitTests extends MoveRefactoringTest {
 
@@ -42,7 +42,7 @@
 			int newLineNumber = 19;
 			//create lineBreakpoint to test
 			createLineBreakpoint(lineNumber, "a.b.c.Movee");
-			refactor(javaProject, type);		
+			refactor(javaProject, type);
 			IBreakpoint[] breakpoints = getBreakpointManager().getBreakpoints();
 			assertEquals("wrong number of breakpoints", 1, breakpoints.length);
 			IJavaLineBreakpoint lineBreakpoint = (IJavaLineBreakpoint) breakpoints[0];
@@ -55,20 +55,20 @@
 			removeAllBreakpoints();
 		}
 	}//end testLineBreakPoint
-	
+
 	/**
 	 * Tests if a MethodBreakPoint was moved appropriately.
 	 * @throws Exception
-	 */	
+	 */
 	public void testMethodBreakPoint() throws Exception {
 		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
 		IJavaElement type = cunit.getType("Movee").getMethods()[0];
-		
+
 		try {
 			//create an EntryMethod Breakpoint to test & do so
 			createMethodBreakpoint("a.b.c.Movee", "testMethod1", "()V", true, false);
-			refactor(javaProject, type);	
+			refactor(javaProject, type);
 			IBreakpoint[] breakpoints = getBreakpointManager().getBreakpoints();
 			assertEquals("wrong number of breakpoints", 1, breakpoints.length);
 			IJavaMethodBreakpoint methodBreakpoint = (IJavaMethodBreakpoint) breakpoints[0];
@@ -78,6 +78,6 @@
 			throw e;
 		} finally {
 			removeAllBreakpoints();
-		}		
+		}
 	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveRefactoringTest.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveRefactoringTest.java
index e470673..5debf3d 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveRefactoringTest.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveRefactoringTest.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -22,7 +22,7 @@
 
 /**
  * Common code for setting up and performing a move refactoring.
- * 
+ *
  * @since 3.4
  */
 public class MoveRefactoringTest extends AbstractRefactoringDebugTest {
@@ -42,17 +42,17 @@
 	 */
 	protected JavaMoveProcessor setupRefactor(IJavaProject javaProject, IJavaElement type) throws JavaModelException {
 		IMovePolicy movePolicy= ReorgPolicyFactory.createMovePolicy(
-				new IResource[0], 
+				new IResource[0],
 				new IJavaElement[] {type});
 		JavaMoveProcessor processor= new JavaMoveProcessor(movePolicy);
-		IJavaElement destination= getPackageFragmentRoot(javaProject, "src").getPackageFragment("a.b").getCompilationUnit("MoveeRecipient.java"); 
+		IJavaElement destination= getPackageFragmentRoot(javaProject, "src").getPackageFragment("a.b").getCompilationUnit("MoveeRecipient.java");
 		processor.setDestination(ReorgDestinationFactory.createDestination(destination));
 		processor.setReorgQueries(new MockReorgQueries());
 		if(processor.canUpdateJavaReferences())
 			processor.setUpdateReferences(true);//assuming is properly set otherwise
 		return processor;
 	}
-	
+
 	/** Sets up a refactoring and executes it.
 	 * @param javaProject
 	 * @param cunit
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/PushDownFieldUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/PushDownFieldUnitTests.java
index 4cd97f9..d010b9d 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/PushDownFieldUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/PushDownFieldUnitTests.java
@@ -45,10 +45,10 @@
 			removeAllBreakpoints();
 		}
 	}
-		
-	
+
+
 /////////////////////////////////////////
-	
+
 	/**
 	 * @param parentClassName
 	 * @param className
@@ -59,11 +59,11 @@
 	 * @throws Exception
 	 */
 	private Refactoring setupRefactor(String parentClassName, String className, String root, String targetPackageName, String cuName) throws Exception {
-		
+
 		IJavaProject javaProject = get14Project();
 		IType parentClas= getCompilationUnit(javaProject, root, targetPackageName, cuName).getType(parentClassName);
 		IField clas= parentClas.getField("anInt");
-		
+
         PushDownRefactoringProcessor processor = new PushDownRefactoringProcessor(new IField[] {clas});
 		ProcessorBasedRefactoring ref= new ProcessorBasedRefactoring(processor);
 		ref.checkInitialConditions(new NullProgressMonitor());
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/PushDownMethodUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/PushDownMethodUnitTests.java
index 2916480..6e4db05 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/PushDownMethodUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/PushDownMethodUnitTests.java
@@ -49,8 +49,8 @@
 			removeAllBreakpoints();
 		}
 	}//end testLineBreakPoint
-	
-	
+
+
 	public void testMethodBreakPoint() throws Exception {
 		try {
 			//create Breakpoint to test
@@ -70,8 +70,8 @@
 			removeAllBreakpoints();
 		}
 	}//end testBreakPoint
-		
-	
+
+
 	private Refactoring setupRefactor(String parentClassName, String className, String root, String targetPackageName, String cuName) throws Exception {
 		IJavaProject javaProject = get14Project();
 		IType parentClas= getCompilationUnit(javaProject, root, targetPackageName, cuName).getType(parentClassName);
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameCompilationUnitUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameCompilationUnitUnitTests.java
index 442a245..d572b02 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameCompilationUnitUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameCompilationUnitUnitTests.java
@@ -57,7 +57,7 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * @param src
 	 * @param pack
@@ -87,7 +87,7 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * @param src
 	 * @param pack
@@ -147,47 +147,47 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	private Refactoring setupRefactor(String root, String packageName, String cuName) throws Exception {
 		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit = getCompilationUnit(javaProject, root, packageName, cuName);
 		JavaRenameProcessor proc = new RenameCompilationUnitProcessor(cunit);
 		proc.setNewElementName("RenamedCompilationUnit.java");
 		RenameRefactoring ref= new RenameRefactoring(proc);
-		
+
 		//setup final refactoring conditions
 		RefactoringStatus refactoringStatus= ref.checkAllConditions(new NullProgressMonitor());
 		if(!refactoringStatus.isOK())
 		{
 			System.out.println(refactoringStatus.getMessageMatchingSeverity(refactoringStatus.getSeverity()));
 			return null;
-		}		
-		
+		}
+
 		return ref;
 	}
-	
+
 	public void testInnerAnonmyousTypeClassLoadpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$InnerChildType$innerChildsMethod()V$1",
 					newTargetLineage = pack+"."+"RenamedCompilationUnit$InnerChildType$1";
 			runClassLoadBreakpointTest(src, pack, cunit, fullTargetName, newTargetLineage);
-	}//end testBreakPoint	
+	}//end testBreakPoint
 
 	public void testInnerAnonymousTypeLineBreakpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$InnerChildType$innerChildsMethod()V$1",
 					newTargetLineage = pack+"."+"RenamedCompilationUnit$InnerChildType$1";
 			int lineNumber = 40;
-			
+
 			runLineBreakpointTest(src, pack, cunit, fullTargetName, newTargetLineage, lineNumber);
-	}//end testBreakPoint	
-	
+	}//end testBreakPoint
+
 	public void testInnerAnonymousTypeMethodBreakpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$InnerChildType$innerChildsMethod()V$1$anonTypeMethod()V",
@@ -195,126 +195,126 @@
 					methodName = "anonTypeMethod";
 			runMethodBreakpointTest(src, pack, cunit, fullTargetName, newTargetLineage, methodName);
 	}//end testBreakPoint
-	
+
 	public void testInnerAnonymousTypeWatchpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$InnerChildType$innerChildsMethod()V$1$anAnonInt",
 					newTargetLineage = pack+"."+"RenamedCompilationUnit$InnerChildType$1",
 					fieldName = "anAnonInt";
-						
+
 			runWatchPointTest(src, pack, cunit, fullTargetName, newTargetLineage, fieldName);
-	}//end testBreakPoint	
-	
+	}//end testBreakPoint
+
 	public void testInnerClassLoadpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$InnerChildType",
 					newTargetLineage = pack+"."+"RenamedCompilationUnit$InnerChildType";
-	
+
 			runClassLoadBreakpointTest(src, pack, cunit, fullTargetName, newTargetLineage);
-	}//end testBreakPoint		
-	
+	}//end testBreakPoint
+
 	public void testInnerLineBreakpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$InnerChildType",
 					newTargetLineage = pack+"."+"RenamedCompilationUnit$InnerChildType";
 			int lineNumber = 35;
-			
+
 			runLineBreakpointTest(src, pack, cunit, fullTargetName, newTargetLineage, lineNumber);
-	}//end testBreakPoint	
-	
+	}//end testBreakPoint
+
 	public void testInnerMethodBreakpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$InnerChildType$innerChildsMethod()V",
 					newTargetLineage = pack+"."+"RenamedCompilationUnit$InnerChildType",
 					methodName = "innerChildsMethod";
 			runMethodBreakpointTest(src, pack, cunit, fullTargetName, newTargetLineage, methodName);
-	}//end testBreakPoint	
-	
+	}//end testBreakPoint
+
 	public void testInnerWatchpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$InnerChildType$innerChildInt",
 					newTargetLineage = pack+"."+"RenamedCompilationUnit$InnerChildType",
 					fieldName = "innerChildInt";
-						
+
 			runWatchPointTest(src, pack, cunit, fullTargetName, newTargetLineage, fieldName);
-	}//end testBreakPoint		
+	}//end testBreakPoint
 
 	public void testNonPublicAnonymousTypeClassLoadpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "NonPublicChildType$nonPublicChildsMethod()V$1",
 					newTargetLineage = pack+"."+"NonPublicChildType$1";
-	
+
 			runClassLoadBreakpointTest(src, pack, cunit, fullTargetName, newTargetLineage);
-	}//end testBreakPoint		
-	
+	}//end testBreakPoint
+
 	public void testNonPublicAnonymousTypeLineBreakpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "NonPublicChildType$nonPublicChildsMethod()V$1",
 					newTargetLineage = pack+"."+"NonPublicChildType$1";
 			int lineNumber = 56;
-			
+
 			runLineBreakpointTest(src, pack, cunit, fullTargetName, newTargetLineage, lineNumber);
-	}//end testBreakPoint	
-	
+	}//end testBreakPoint
+
 	public void testNonPublicAnonymousTypeMethodBreakpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "NonPublicChildType$nonPublicChildsMethod()V$1$anonTypeMethod()V",
 					newTargetLineage = pack+"."+"NonPublicChildType$1",
 					methodName = "anonTypeMethod";
 			runMethodBreakpointTest(src, pack, cunit, fullTargetName, newTargetLineage, methodName);
-	}//end testBreakPoint		
-	
+	}//end testBreakPoint
+
 	public void testNonPublicAnonymousTypeWatchpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "NonPublicChildType$nonPublicChildsMethod()V$1$anAnonInt",
 					newTargetLineage = pack+"."+"NonPublicChildType$1",
 					fieldName = "anAnonInt";
-						
+
 			runWatchPointTest(src, pack, cunit, fullTargetName, newTargetLineage, fieldName);
-	}//end testBreakPoint	
-		
+	}//end testBreakPoint
+
 	public void testNonPublicClassLoadpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "NonPublicChildType",
 					newTargetLineage = pack+"."+"NonPublicChildType";
-	
-					
+
+
 			runClassLoadBreakpointTest(src, pack, cunit, fullTargetName, newTargetLineage);
-	}//end testBreakPoint			
-	
+	}//end testBreakPoint
+
 	public void testNonPublicLineBreakpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "NonPublicChildType",
 					newTargetLineage = pack+"."+"NonPublicChildType";
 			int lineNumber = 51;
-			
+
 			runLineBreakpointTest(src, pack, cunit, fullTargetName, newTargetLineage, lineNumber);
-	}//end testBreakPoint		
-	
+	}//end testBreakPoint
+
 	public void testNonPublicMethodBreakpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "NonPublicChildType$nonPublicChildsMethod()V$",
@@ -324,100 +324,100 @@
 	}//end testBreakPoint
 
 	public void testNonPublicWatchpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "NonPublicChildType$nonPublicChildInt",
 					newTargetLineage = pack+"."+"NonPublicChildType",
 					fieldName = "nonPublicChildInt";
-						
+
 			runWatchPointTest(src, pack, cunit, fullTargetName, newTargetLineage, fieldName);
-	}//end testBreakPoint	
-	
+	}//end testBreakPoint
+
 	public void testPublicAnonymousTypeClassLoadpoint() throws Exception {
-		
-		String 	src = "src", 
+
+		String 	src = "src",
 		pack = "a.b.c",
 		cunit = "MoveeChild.java",
 		fullTargetName = "MoveeChild$childsMethod()V$1",
 		newTargetLineage = pack+"."+"RenamedCompilationUnit$1";
 
 		runClassLoadBreakpointTest(src, pack, cunit, fullTargetName, newTargetLineage);
-	}//end testBreakPoint		
-	
+	}//end testBreakPoint
+
 	public void testPublicAnonymousTypeLineBreakpoint() throws Exception {
-					
-		String 	src = "src", 
+
+		String 	src = "src",
 		pack = "a.b.c",
 		cunit = "MoveeChild.java",
 		fullTargetName = "MoveeChild$childsMethod()V$1",
 		newTargetLineage = pack+"."+"RenamedCompilationUnit$1";
 		int lineNumber = 26;
-		
+
 		runLineBreakpointTest(src, pack, cunit, fullTargetName, newTargetLineage, lineNumber);
-	}//end testBreakPoint		
-	
+	}//end testBreakPoint
+
 	public void testPublicAnonymousTypeMethodBreakpoint() throws Exception {
-		String 	src = "src", 
+		String 	src = "src",
 		pack = "a.b.c",
 		cunit = "MoveeChild.java",
 		fullTargetName = "MoveeChild$childsMethod()V$1$anonTypeMethod()V",
 		newTargetLineage = pack+"."+"RenamedCompilationUnit$1",
 		methodName = "anonTypeMethod";
-		
+
 		runMethodBreakpointTest(src, pack, cunit, fullTargetName, newTargetLineage, methodName);
 	}//end testBreakPoint
-			
+
 	public void testPublicAnonymousTypeWatchpoint() throws Exception {
-		String 	src = "src", 
+		String 	src = "src",
 		pack = "a.b.c",
 		cunit = "MoveeChild.java",
 		fullTargetName = "MoveeChild$childsMethod()V$1$anAnonInt",
 		newTargetLineage = pack+"."+"RenamedCompilationUnit$1",
 		fieldName = "anAnonInt";
-			
+
 		runWatchPointTest(src, pack, cunit, fullTargetName, newTargetLineage, fieldName);
-	}//end testBreakPoint		
-	
+	}//end testBreakPoint
+
 	public void testPublicClassLoadpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild",
 					newTargetLineage = pack+"."+"RenamedCompilationUnit";
 			runClassLoadBreakpointTest(src, pack, cunit, fullTargetName, newTargetLineage);
-	}//end testBreakPoint		
-	
+	}//end testBreakPoint
+
 public void testPublicLineBreakpoint() throws Exception {
 
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild",
 					newTargetLineage = pack+"."+"RenamedCompilationUnit";
 			int lineNumber = 21;
-			
+
 			runLineBreakpointTest(src, pack, cunit, fullTargetName, newTargetLineage, lineNumber);
-	}//end testBreakPoint			
-	
+	}//end testBreakPoint
+
 	public void testPublicMethodBreakpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$childsMethod()V",
 					newTargetLineage = pack+"."+"RenamedCompilationUnit",
 					methodName = "childsMethod";
 			runMethodBreakpointTest(src, pack, cunit, fullTargetName, newTargetLineage, methodName);
-	}//end testBreakPoint		
-	
+	}//end testBreakPoint
+
 	public void testPublicWatchpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$aChildInt",
 					newTargetLineage = pack+"."+"RenamedCompilationUnit",
 					fieldName = "aChildInt";
 			runWatchPointTest(src, pack, cunit, fullTargetName, newTargetLineage, fieldName);
-	}//end testBreakPoint			
-	
+	}//end testBreakPoint
+
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameFieldUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameFieldUnitTests.java
index 214a915..d70ff3b 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameFieldUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameFieldUnitTests.java
@@ -57,87 +57,87 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	protected Refactoring setupRefactor(String root, String packageName, String cuName, String fullTargetName) throws Exception {
-		
+
 		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit = getCompilationUnit(javaProject, root, packageName, cuName);
 		IField field = (IField)getMember(cunit, fullTargetName);
 		JavaRenameProcessor proc = new RenameFieldProcessor(field);
 		proc.setNewElementName("renamedField");
-		
+
 		RenameRefactoring ref= new RenameRefactoring(proc);
-		
+
 		//setup final refactoring conditions
 		RefactoringStatus refactoringStatus= ref.checkAllConditions(new NullProgressMonitor());
 		if(!refactoringStatus.isOK())
 		{
 			System.out.println(refactoringStatus.getMessageMatchingSeverity(refactoringStatus.getSeverity()));
 			return null;
-		}		
-		
+		}
+
 		return ref;
 	}
-	
-	//////////////////////////////////////////////////////////////////////////////////////	
-	
+
+	//////////////////////////////////////////////////////////////////////////////////////
+
 	public void testInnerAnonymousTypeWatchpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$InnerChildType$innerChildsMethod()V$1$anAnonInt",
 					targetLineage = pack+"."+"MoveeChild$InnerChildType$1";
-						
+
 			runWatchPointTest(src, pack, cunit, fullTargetName, targetLineage);
-	}//end testBreakPoint	
-	
+	}//end testBreakPoint
+
 	public void testInnerWatchpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$InnerChildType$innerChildInt",
 					targetLineage = pack+"."+"MoveeChild$InnerChildType";
-						
+
 			runWatchPointTest(src, pack, cunit, fullTargetName, targetLineage);
-	}//end testBreakPoint		
+	}//end testBreakPoint
 
 	public void testNonPublicAnonymousTypeWatchpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "NonPublicChildType$nonPublicChildsMethod()V$1$anAnonInt",
 					targetLineage = pack+"."+"NonPublicChildType$1";
-						
+
 			runWatchPointTest(src, pack, cunit, fullTargetName, targetLineage);
-	}//end testBreakPoint	
-		
+	}//end testBreakPoint
+
 	public void testNonPublicWatchpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "NonPublicChildType$nonPublicChildInt",
 					targetLineage = pack+"."+"NonPublicChildType";
-						
+
 			runWatchPointTest(src, pack, cunit, fullTargetName, targetLineage);
-	}//end testBreakPoint	
-	
+	}//end testBreakPoint
+
 	public void testPublicAnonymousTypeWatchpoint() throws Exception {
-		String 	src = "src", 
+		String 	src = "src",
 		pack = "a.b.c",
 		cunit = "MoveeChild.java",
 		fullTargetName = "MoveeChild$childsMethod()V$1$anAnonInt",
 		targetLineage = pack+"."+"MoveeChild$1";
-			
+
 		runWatchPointTest(src, pack, cunit, fullTargetName, targetLineage);
-	}//end testBreakPoint		
-	
+	}//end testBreakPoint
+
 	public void testPublicWatchpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$aChildInt",
 					targetLineage = pack+"."+"MoveeChild";
 			runWatchPointTest(src, pack, cunit, fullTargetName, targetLineage);
-	}//end testBreakPoint			
-	
+	}//end testBreakPoint
+
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameInnerTypeUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameInnerTypeUnitTests.java
index 451b133..15546e1 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameInnerTypeUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameInnerTypeUnitTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -60,7 +60,7 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * @param src
 	 * @param pack
@@ -90,7 +90,7 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * @param src
 	 * @param pack
@@ -150,9 +150,9 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
-	 * 
+	 *
 	 * @param root
 	 * @param packageName
 	 * @param cuName
@@ -167,7 +167,7 @@
 		//if this was a non-typed test, get's it's parent type
 		if(!(target instanceof IType))
 			target = (IMember)target.getParent();
-		
+
 		IType targetType = (IType)target;
 		JavaRenameProcessor proc = new RenameTypeProcessor(targetType);
 		proc.setNewElementName("RenamedType");
@@ -178,58 +178,58 @@
 		{
 			System.out.println(refactoringStatus.getMessageMatchingSeverity(refactoringStatus.getSeverity()));
 			return null;
-		}		
-		
+		}
+
 		return ref;
 	}
-	
+
 	//////////////////////////////////////////////////////////////////////////////////////
-	
+
 	public void testInnerClassLoadpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$InnerChildType",
 					targetLineage = "MoveeChild$RenamedType";
-	
+
 			runClassLoadBreakpointTest(src, pack, cunit, fullTargetName, targetLineage);
-	}//end testBreakPoint		
-	
+	}//end testBreakPoint
+
 	public void testInnerLineBreakpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$InnerChildType",
 					targetLineage = "MoveeChild$RenamedType";
 			int lineNumber = 35;
-			
+
 			runLineBreakpointTest(src, pack, cunit, fullTargetName, targetLineage, lineNumber);
-	}//end testBreakPoint	
-	
+	}//end testBreakPoint
+
 	public void testInnerMethodBreakpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$InnerChildType$innerChildsMethod()V",
 					targetLineage = "MoveeChild$RenamedType",
 					methodName = "innerChildsMethod";
 			runMethodBreakpointTest(src, pack, cunit, fullTargetName, targetLineage, methodName);
-	}//end testBreakPoint	
-	
+	}//end testBreakPoint
+
 	public void testInnerWatchpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$InnerChildType$innerChildInt",
 					targetLineage = "MoveeChild$RenamedType",
 					fieldName = "innerChildInt";
-						
+
 			runWatchPointTest(src, pack, cunit, fullTargetName, targetLineage, fieldName);
-	}//end testBreakPoint		
+	}//end testBreakPoint
 
 
 	/**
-	 * Creates an exception breakpoint and adds a filter. Refactors & checks 
+	 * Creates an exception breakpoint and adds a filter. Refactors & checks
 	 * if the filter changed appropriately w/ the refactor.
 	 * @param src
 	 * @param pack
@@ -259,11 +259,11 @@
 
 
 	public void testPublicExceptionBreakpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					refactoringTargetName = "MoveeChild$InnerChildType",
 					exceptionName = "java.lang.NullPointerException";
 			runExceptionBreakpointTest(src, pack, cunit, refactoringTargetName,exceptionName);
-	}//end testBreakPoint		
+	}//end testBreakPoint
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameMethodUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameMethodUnitTests.java
index d31210a..4d79a00 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameMethodUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameMethodUnitTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -28,7 +28,7 @@
 	public RenameMethodUnitTests(String name) {
 		super(name);
 	}
-	
+
 	/**
 	 * @param src
 	 * @param pack
@@ -60,7 +60,7 @@
 	}
 
 	/**
-	 * Will setup the refactoring for Methods and members declared within 
+	 * Will setup the refactoring for Methods and members declared within
 	 * members (i.e. members of anonymous classes)
 	 * @param root
 	 * @param packageName
@@ -70,30 +70,30 @@
 	 * @throws Exception
 	 */
 	protected Refactoring setupRefactor(String root, String packageName, String cuName, String fullName) throws Exception {
-		
+
 		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit = getCompilationUnit(javaProject, root, packageName, cuName);
 		IMember member = getMember(cunit, fullName);
 		IMethod method = (IMethod)member;
-		
+
 		JavaRenameProcessor proc = new RenameNonVirtualMethodProcessor(method);
 		proc.setNewElementName("renamedMethod");
-		
+
 		RenameRefactoring ref= new RenameRefactoring(proc);
-		
+
 		//setup final refactoring conditions
 		RefactoringStatus refactoringStatus= ref.checkAllConditions(new NullProgressMonitor());
 		if(!refactoringStatus.isOK())
 		{
 			System.out.println(refactoringStatus.getMessageMatchingSeverity(refactoringStatus.getSeverity()));
 			return null;
-		}		
-		
+		}
+
 		return ref;
 	}
 
 	public void testInnerAnonymousTypeMethodBreakpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$InnerChildType$innerChildsMethod()V$1$anonTypeMethod()V",
@@ -102,49 +102,49 @@
 	}//end testBreakPoint
 
 	public void testInnerMethodBreakpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$InnerChildType$innerChildsMethod()V",
 					targetLineage = pack+"."+"MoveeChild$InnerChildType";
 			runMethodBreakpointTest(src, pack, cunit, fullTargetName, targetLineage);
-	}//end testBreakPoint	
+	}//end testBreakPoint
 
 	public void testNonPublicAnonymousTypeMethodBreakpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "NonPublicChildType$nonPublicChildsMethod()V$1$anonTypeMethod()V",
 					targetLineage = pack+"."+"NonPublicChildType$1";
 			runMethodBreakpointTest(src, pack, cunit, fullTargetName, targetLineage);
-	}//end testBreakPoint		
+	}//end testBreakPoint
 
 	public void testNonPublicMethodBreakpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "NonPublicChildType$nonPublicChildsMethod()V$",
 					targetLineage = pack+"."+"NonPublicChildType";
 			runMethodBreakpointTest(src, pack, cunit, fullTargetName, targetLineage);
 	}//end testBreakPoint
-	
+
 	public void testPublicAnonymousTypeMethodBreakpoint() throws Exception {
-		String 	src = "src", 
+		String 	src = "src",
 		pack = "a.b.c",
 		cunit = "MoveeChild.java",
 		fullTargetName = "MoveeChild$childsMethod()V$1$anonTypeMethod()V",
 		targetLineage = pack+"."+"MoveeChild$1";
-		
+
 		runMethodBreakpointTest(src, pack, cunit, fullTargetName, targetLineage);
 	}//end testBreakPoint
 
 	public void testPublicMethodBreakpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$childsMethod()V",
 					targetLineage = pack+"."+"MoveeChild";
 			runMethodBreakpointTest(src, pack, cunit, fullTargetName, targetLineage);
-	}//end testBreakPoint		
-	
+	}//end testBreakPoint
+
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameNonPublicTypeUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameNonPublicTypeUnitTests.java
index 527d5ae..86e8c7b 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameNonPublicTypeUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameNonPublicTypeUnitTests.java
@@ -32,7 +32,7 @@
 	public RenameNonPublicTypeUnitTests(String name) {
 		super(name);
 	}
-	
+
 	/**
 	 * @param src
 	 * @param pack
@@ -61,7 +61,7 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * @param src
 	 * @param pack
@@ -92,7 +92,7 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * @param src
 	 * @param pack
@@ -154,9 +154,9 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
-	 * 
+	 *
 	 * @param root
 	 * @param packageName
 	 * @param cuName
@@ -166,75 +166,75 @@
 	 */
 	protected Refactoring setupRefactor(String root, String packageName, String cuName,
 			String type) throws Exception {
-		
+
 		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit = getCompilationUnit(javaProject, root, packageName, cuName);
 		IMember target = getMember(cunit, type);
 		//if this was a non-typed test, get's it's parent type
 		if(!(target instanceof IType))
 			target = (IMember)target.getParent();
-		
+
 		IType targetType = (IType)target;
-				
+
 		JavaRenameProcessor proc = new RenameTypeProcessor(targetType);
 		proc.setNewElementName("RenamedType");
-			
+
 		RenameRefactoring ref= new RenameRefactoring(proc);
-		
+
 		//setup final refactoring conditions
 		RefactoringStatus refactoringStatus= ref.checkAllConditions(new NullProgressMonitor());
 		if(!refactoringStatus.isOK())
 		{
 			System.out.println(refactoringStatus.getMessageMatchingSeverity(refactoringStatus.getSeverity()));
 			return null;
-		}		
-		
+		}
+
 		return ref;
 	}
-	
+
 	//////////////////////////////////////////////////////////////////////////////////////
-	
+
 	public void testNonPublicClassLoadpoint() throws Exception {
-		String 	src = "src", 
+		String 	src = "src",
 				pack = "a.b.c",
 				cunit = "MoveeChild.java",
 				fullTargetName = "NonPublicChildType";
 
 		runClassLoadBreakpointTest(src, pack, cunit, fullTargetName);
-	}//end testBreakPoint			
-	
+	}//end testBreakPoint
+
 	public void testNonPublicLineBreakpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "NonPublicChildType";
 			int lineNumber = 51;
-			
+
 			runLineBreakpointTest(src, pack, cunit, fullTargetName, lineNumber);
-	}//end testBreakPoint		
-	
+	}//end testBreakPoint
+
 	public void testNonPublicMethodBreakpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "NonPublicChildType$nonPublicChildsMethod()V",
 					methodName = "nonPublicChildsMethod";
 			runMethodBreakpointTest(src, pack, cunit, fullTargetName, methodName);
 	}//end testBreakPoint
-	
+
 	public void testNonPublicWatchpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "NonPublicChildType$nonPublicChildInt",
 					fieldName = "nonPublicChildInt";
-						
+
 			runWatchPointTest(src, pack, cunit, fullTargetName, fieldName);
-	}//end testBreakPoint	
+	}//end testBreakPoint
 
 
 	/**
-	 * Creates an exception breakpoint and adds a filter. Refactors & checks 
+	 * Creates an exception breakpoint and adds a filter. Refactors & checks
 	 * if the filter changed appropriately w/ the refactor.
 	 * @param src
 	 * @param pack
@@ -266,11 +266,11 @@
 
 
 	public void testPublicExceptionBreakpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					targetName = "MoveeChild";
 			runExceptionBreakpointTest(src, pack, cunit, targetName);
-	}//end testBreakPoint		
-		
+	}//end testBreakPoint
+
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenamePackageUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenamePackageUnitTests.java
index 9cc9b31..4b30f62 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenamePackageUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenamePackageUnitTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -32,7 +32,7 @@
 	public RenamePackageUnitTests(String name) {
 		super(name);
 	}
-	
+
 	/**
 	 * @param src
 	 * @param pack
@@ -60,7 +60,7 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * @param src
 	 * @param pack
@@ -90,7 +90,7 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * @param src
 	 * @param pack
@@ -150,7 +150,7 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	protected Refactoring setupRefactor(String root, String packageName, String cuName) throws Exception {
 		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit = getCompilationUnit(javaProject, root, packageName, cuName);
@@ -158,42 +158,42 @@
 		JavaRenameProcessor proc = new RenamePackageProcessor(packageFragment);
 		proc.setNewElementName("renamedPackage");
 		RenameRefactoring ref= new RenameRefactoring(proc);
-		
+
 		//setup final refactoring conditions
 		RefactoringStatus refactoringStatus= ref.checkAllConditions(new NullProgressMonitor());
 		if(!refactoringStatus.isOK())
 		{
 			System.out.println(refactoringStatus.getMessageMatchingSeverity(refactoringStatus.getSeverity()));
 			return null;
-		}		
-		
+		}
+
 		return ref;
 	}
-	
-	//////////////////////////////////////////////////////////////////////////////////////	
-	
+
+	//////////////////////////////////////////////////////////////////////////////////////
+
 	public void testInnerAnonmyousTypeClassLoadpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$InnerChildType$innerChildsMethod()V$1",
 					targetLineage = "renamedPackage"+"."+"MoveeChild$InnerChildType$1";
 			runClassLoadBreakpointTest(src, pack, cunit, fullTargetName, targetLineage);
-	}	
+	}
 
 	public void testInnerAnonymousTypeLineBreakpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$InnerChildType$innerChildsMethod()V$1",
 					targetLineage = "renamedPackage"+"."+"MoveeChild$InnerChildType$1";
 			int lineNumber = 40;
-			
+
 			runLineBreakpointTest(src, pack, cunit, fullTargetName, targetLineage, lineNumber);
-	}	
-	
+	}
+
 	public void testInnerAnonymousTypeMethodBreakpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$InnerChildType$innerChildsMethod()V$1$anonTypeMethod()V",
@@ -201,126 +201,126 @@
 					methodName = "anonTypeMethod";
 			runMethodBreakpointTest(src, pack, cunit, fullTargetName, targetLineage, methodName);
 	}
-	
+
 	public void testInnerAnonymousTypeWatchpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$InnerChildType$innerChildsMethod()V$1$anAnonInt",
 					targetLineage = "renamedPackage"+"."+"MoveeChild$InnerChildType$1",
 					fieldName = "anAnonInt";
-						
+
 			runWatchPointTest(src, pack, cunit, fullTargetName, targetLineage, fieldName);
-	}	
-	
+	}
+
 	public void testInnerClassLoadpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$InnerChildType",
 					targetLineage = "renamedPackage"+"."+"MoveeChild$InnerChildType";
-	
+
 			runClassLoadBreakpointTest(src, pack, cunit, fullTargetName, targetLineage);
-	}		
-	
+	}
+
 	public void testInnerLineBreakpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$InnerChildType",
 					targetLineage = "renamedPackage"+"."+"MoveeChild$InnerChildType";
 			int lineNumber = 35;
-			
+
 			runLineBreakpointTest(src, pack, cunit, fullTargetName, targetLineage, lineNumber);
-	}	
-	
+	}
+
 	public void testInnerMethodBreakpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$InnerChildType$innerChildsMethod()V",
 					targetLineage = "renamedPackage"+"."+"MoveeChild$InnerChildType",
 					methodName = "innerChildsMethod";
 			runMethodBreakpointTest(src, pack, cunit, fullTargetName, targetLineage, methodName);
-	}	
-	
+	}
+
 	public void testInnerWatchpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$InnerChildType$innerChildInt",
 					targetLineage = "renamedPackage"+"."+"MoveeChild$InnerChildType",
 					fieldName = "innerChildInt";
-						
+
 			runWatchPointTest(src, pack, cunit, fullTargetName, targetLineage, fieldName);
-	}		
+	}
 
 	public void testNonPublicAnonymousTypeClassLoadpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "NonPublicChildType$nonPublicChildsMethod()V$1",
 					targetLineage = "renamedPackage"+"."+"NonPublicChildType$1";
-			
+
 				runClassLoadBreakpointTest(src, pack, cunit, fullTargetName, targetLineage);
-	}		
-	
+	}
+
 	public void testNonPublicAnonymousTypeLineBreakpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "NonPublicChildType$nonPublicChildsMethod()V$1",
 					targetLineage = "renamedPackage"+"."+"NonPublicChildType$1";
 			int lineNumber = 56;
-			
+
 			runLineBreakpointTest(src, pack, cunit, fullTargetName, targetLineage, lineNumber);
-	}	
-	
+	}
+
 	public void testNonPublicAnonymousTypeMethodBreakpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "NonPublicChildType$nonPublicChildsMethod()V$1$anonTypeMethod()V",
 					targetLineage = "renamedPackage"+"."+"NonPublicChildType$1",
 					methodName = "anonTypeMethod";
 			runMethodBreakpointTest(src, pack, cunit, fullTargetName, targetLineage, methodName);
-	}		
-	
+	}
+
 	public void testNonPublicAnonymousTypeWatchpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "NonPublicChildType$nonPublicChildsMethod()V$1$anAnonInt",
 					targetLineage = "renamedPackage"+"."+"NonPublicChildType$1",
 					fieldName = "anAnonInt";
-						
+
 			runWatchPointTest(src, pack, cunit, fullTargetName, targetLineage, fieldName);
-	}	
-		
+	}
+
 	public void testNonPublicClassLoadpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "NonPublicChildType",
 					targetLineage = "renamedPackage"+"."+"NonPublicChildType";
-	
-					
+
+
 			runClassLoadBreakpointTest(src, pack, cunit, fullTargetName, targetLineage);
-	}			
-	
+	}
+
 	public void testNonPublicLineBreakpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "NonPublicChildType",
 					targetLineage = "renamedPackage"+"."+"NonPublicChildType";
 			int lineNumber = 51;
-			
+
 			runLineBreakpointTest(src, pack, cunit, fullTargetName, targetLineage, lineNumber);
-	}		
-	
+	}
+
 	public void testNonPublicMethodBreakpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "NonPublicChildType$nonPublicChildsMethod()V$",
@@ -330,100 +330,100 @@
 	}
 
 	public void testNonPublicWatchpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "NonPublicChildType$nonPublicChildInt",
 					targetLineage = "renamedPackage"+"."+"NonPublicChildType",
 					fieldName = "nonPublicChildInt";
-						
+
 			runWatchPointTest(src, pack, cunit, fullTargetName, targetLineage, fieldName);
-	}	
-	
+	}
+
 	public void testPublicAnonymousTypeClassLoadpoint() throws Exception {
-		
-		String 	src = "src", 
+
+		String 	src = "src",
 		pack = "a.b.c",
 		cunit = "MoveeChild.java",
 		fullTargetName = "MoveeChild$childsMethod()V$1",
 		targetLineage = "renamedPackage"+"."+"MoveeChild$1";
 
 		runClassLoadBreakpointTest(src, pack, cunit, fullTargetName, targetLineage);
-	}		
-	
+	}
+
 	public void testPublicAnonymousTypeLineBreakpoint() throws Exception {
-					
-		String 	src = "src", 
+
+		String 	src = "src",
 		pack = "a.b.c",
 		cunit = "MoveeChild.java",
 		fullTargetName = "MoveeChild$childsMethod()V$1",
 		targetLineage = "renamedPackage"+"."+"MoveeChild$1";
 		int lineNumber = 26;
-		
+
 		runLineBreakpointTest(src, pack, cunit, fullTargetName, targetLineage, lineNumber);
-	}		
-	
+	}
+
 	public void testPublicAnonymousTypeMethodBreakpoint() throws Exception {
-		String 	src = "src", 
+		String 	src = "src",
 		pack = "a.b.c",
 		cunit = "MoveeChild.java",
 		fullTargetName = "MoveeChild$childsMethod()V$1$anonTypeMethod()V",
 		targetLineage = "renamedPackage"+"."+"MoveeChild$1",
 		methodName = "anonTypeMethod";
-		
+
 		runMethodBreakpointTest(src, pack, cunit, fullTargetName, targetLineage, methodName);
 	}
-			
+
 	public void testPublicAnonymousTypeWatchpoint() throws Exception {
-		String 	src = "src", 
+		String 	src = "src",
 		pack = "a.b.c",
 		cunit = "MoveeChild.java",
 		fullTargetName = "MoveeChild$childsMethod()V$1$anAnonInt",
 		targetLineage = "renamedPackage"+"."+"MoveeChild$1",
 		fieldName = "anAnonInt";
-			
+
 		runWatchPointTest(src, pack, cunit, fullTargetName, targetLineage, fieldName);
-	}		
-	
+	}
+
 	public void testPublicClassLoadpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild",
 					targetLineage = "renamedPackage"+"."+"MoveeChild";
 			runClassLoadBreakpointTest(src, pack, cunit, fullTargetName, targetLineage);
-	}		
-	
+	}
+
 	public void testPublicLineBreakpoint() throws Exception {
 
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild",
 					targetLineage = "renamedPackage"+"."+"MoveeChild";
 			int lineNumber = 21;
-			
+
 			runLineBreakpointTest(src, pack, cunit, fullTargetName, targetLineage, lineNumber);
-	}			
-	
+	}
+
 	public void testPublicMethodBreakpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$childsMethod()V",
 					targetLineage = "renamedPackage"+"."+"MoveeChild",
 					methodName = "childsMethod";
 			runMethodBreakpointTest(src, pack, cunit, fullTargetName, targetLineage, methodName);
-	}		
-	
+	}
+
 	public void testPublicWatchpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$aChildInt",
 					targetLineage = "renamedPackage"+"."+"MoveeChild",
 					fieldName = "aChildInt";
 			runWatchPointTest(src, pack, cunit, fullTargetName, targetLineage, fieldName);
-	}		
-	
+	}
+
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenamePublicTypeUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenamePublicTypeUnitTests.java
index 965b684..602c0e9 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenamePublicTypeUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenamePublicTypeUnitTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -60,12 +60,12 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
-	 * Creates an exception breakpoint and adds a filter. Refactors & checks 
+	 * Creates an exception breakpoint and adds a filter. Refactors & checks
 	 * if the filter changed appropriately w/ the refactor.
 	 * @param src name of src file
-	 * @param pack 
+	 * @param pack
 	 * @param cunit
 	 * @param targetName
 	 * @param exceptionName TODO
@@ -75,7 +75,7 @@
 		try {
 			//create breakpoint to test
 			IJavaExceptionBreakpoint breakpoint = createExceptionBreakpoint(exceptionName, true, true);
-			
+
 			//refactor
 			Refactoring ref = setupRefactor(src, pack, cunit, targetName);
 			performRefactor(ref);
@@ -91,7 +91,7 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * @param src
 	 * @param pack
@@ -151,7 +151,7 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * @param src
 	 * @param pack
@@ -181,9 +181,9 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
-	 * 
+	 *
 	 * @param root
 	 * @param packageName
 	 * @param cuName
@@ -198,12 +198,12 @@
 		//if this was a non-typed test, get's it's parent type
 		if(!(target instanceof IType))
 			target = (IMember)target.getParent();
-		
+
 		IType targetType = (IType)target;
-				
+
 		JavaRenameProcessor proc = new RenameTypeProcessor(targetType);
 		proc.setNewElementName("RenamedType");
-			
+
 		RenameRefactoring ref= new RenameRefactoring(proc);
 		//setup final refactoring conditions
 		RefactoringStatus refactoringStatus= ref.checkAllConditions(new NullProgressMonitor());
@@ -211,60 +211,60 @@
 		{
 			System.out.println(refactoringStatus.getMessageMatchingSeverity(refactoringStatus.getSeverity()));
 			return null;
-		}		
-		
+		}
+
 		return ref;
 	}
-	
+
 	public void testPublicClassLoadpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild",
 					targetLineage = pack+"."+"RenamedType";
 			runClassLoadBreakpointTest(src, pack, cunit, fullTargetName, targetLineage);
-	}//end testBreakPoint		
-	
+	}//end testBreakPoint
+
 	public void testPublicLineBreakpoint() throws Exception {
 
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild",
 					targetLineage = "RenamedType";
 			int lineNumber = 21;
-			
+
 			runLineBreakpointTest(src, pack, cunit, fullTargetName, targetLineage, lineNumber);
-	}//end testBreakPoint			
-	
+	}//end testBreakPoint
+
 	public void testPublicMethodBreakpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$childsMethod()V",
 					targetLineage = pack+"."+"RenamedType",
 					methodName = "childsMethod";
 			runMethodBreakpointTest(src, pack, cunit, fullTargetName, targetLineage, methodName);
-	}//end testBreakPoint		
-	
+	}//end testBreakPoint
+
 	public void testPublicExceptionBreakpoint() throws Exception {
-		String 	src = "src", 
+		String 	src = "src",
 				pack = "a.b.c",
 				cunit = "MoveeChild.java",
 				typeName = "MoveeChild",
 				exceptionName = "java.lang.NullPointerException";
 		runExceptionBreakpointTest(src, pack, cunit, typeName, exceptionName);
-}//end testBreakPoint		
+}//end testBreakPoint
 
 
 
 	public void testPublicWatchpoint() throws Exception {
-			String 	src = "src", 
+			String 	src = "src",
 					pack = "a.b.c",
 					cunit = "MoveeChild.java",
 					fullTargetName = "MoveeChild$aChildInt",
 					targetLineage = pack+"."+"RenamedType",
 					fieldName = "aChildInt";
 			runWatchPointTest(src, pack, cunit, fullTargetName, targetLineage, fieldName);
-	}//end testBreakPoint		
+	}//end testBreakPoint
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/ArchiveSourceLookupTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/ArchiveSourceLookupTests.java
index 2dc7cdf..6943bfc 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/ArchiveSourceLookupTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/ArchiveSourceLookupTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -23,97 +23,97 @@
  */
 @SuppressWarnings("deprecation")
 public class ArchiveSourceLookupTests extends AbstractDebugTest {
-	
+
 	public ArchiveSourceLookupTests(String name) {
 		super(name);
 	}
-	
+
 	/**
 	 * Tests source lookup in a top level type, in the default package.
 	 */
 	public void testDefTopLevelType() throws Exception {
 		File file = JavaTestPlugin.getDefault().getFileInPlugin(new Path("testresources/testJarWithOutRoot.jar"));
 		ArchiveSourceLocation location = new ArchiveSourceLocation(file.getAbsolutePath(), null);
-				
+
 		ZipEntryStorage storage = (ZipEntryStorage) location.findSourceElement("Breakpoints");
 		assertEquals("Did not find source", "Breakpoints.java", storage.getName());
 	}
-	
+
 	/**
 	 * Tests source lookup in an inner type, the default package.
 	 */
 	public void testDefInnerType() throws Exception {
 		File file = JavaTestPlugin.getDefault().getFileInPlugin(new Path("testresources/testJarWithOutRoot.jar"));
 		ArchiveSourceLocation location = new ArchiveSourceLocation(file.getAbsolutePath(), null);
-				
+
 		ZipEntryStorage storage = (ZipEntryStorage) location.findSourceElement("Breakpoints$InnerRunnable");
 		assertEquals("Did not find source", "Breakpoints.java", storage.getName());
 	}
-	
-	
+
+
 	/**
 	 * Tests source lookup in a top level type.
 	 */
 	public void testTopLevelType() throws Exception {
 		File file = JavaTestPlugin.getDefault().getFileInPlugin(new Path("testresources/testJarWithOutRoot.jar"));
 		ArchiveSourceLocation location = new ArchiveSourceLocation(file.getAbsolutePath(), null);
-				
+
 		ZipEntryStorage storage = (ZipEntryStorage) location.findSourceElement("org.eclipse.debug.tests.targets.SourceLookup");
-		assertEquals("Did not find source", "SourceLookup.java", storage.getName());		
+		assertEquals("Did not find source", "SourceLookup.java", storage.getName());
 	}
-	
+
 	/**
 	 * Tests source lookup in an inner type.
 	 */
 	public void testInnerType() throws Exception {
 		File file = JavaTestPlugin.getDefault().getFileInPlugin(new Path("testresources/testJarWithOutRoot.jar"));
 		ArchiveSourceLocation location = new ArchiveSourceLocation(file.getAbsolutePath(), null);
-				
+
 		ZipEntryStorage storage = (ZipEntryStorage) location.findSourceElement("org.eclipse.debug.tests.targets.SourceLookup$Inner");
 		assertEquals("Did not find source", "SourceLookup.java", storage.getName());
 	}
-	
+
 	/**
 	 * Tests source lookup in an inner, inner type.
 	 */
 	public void testNestedType() throws Exception {
 		File file = JavaTestPlugin.getDefault().getFileInPlugin(new Path("testresources/testJarWithOutRoot.jar"));
 		ArchiveSourceLocation location = new ArchiveSourceLocation(file.getAbsolutePath(), null);
-				
+
 		ZipEntryStorage storage = (ZipEntryStorage) location.findSourceElement("org.eclipse.debug.tests.targets.SourceLookup$Inner$Nested");
 		assertEquals("Did not find source", "SourceLookup.java", storage.getName());
 	}
-		
+
 	/**
 	 * Tests source lookup in a top level type, with a $ named class
 	 */
 	public void testTopLevel$Type() throws Exception {
 		File file = JavaTestPlugin.getDefault().getFileInPlugin(new Path("testresources/testJarWithOutRoot.jar"));
 		ArchiveSourceLocation location = new ArchiveSourceLocation(file.getAbsolutePath(), null);
-				
+
 		ZipEntryStorage storage = (ZipEntryStorage) location.findSourceElement("org.eclipse.debug.tests.targets.Source_$_Lookup");
 		assertEquals("Did not find source", "Source_$_Lookup.java", storage.getName());
 	}
-	
+
 	/**
 	 * Tests source lookup in an inner type in a $ named class.
 	 */
 	public void testInner$Type() throws Exception {
 		File file = JavaTestPlugin.getDefault().getFileInPlugin(new Path("testresources/testJarWithOutRoot.jar"));
 		ArchiveSourceLocation location = new ArchiveSourceLocation(file.getAbsolutePath(), null);
-				
+
 		ZipEntryStorage storage = (ZipEntryStorage) location.findSourceElement("org.eclipse.debug.tests.targets.Source_$_Lookup$Inner");
 		assertEquals("Did not find source", "Source_$_Lookup.java", storage.getName());
-	}	
-	
+	}
+
 	/**
 	 * Tests source lookup in an inner type in a $ named class.
 	 */
 	public void testInnerNested$Type() throws Exception {
 		File file = JavaTestPlugin.getDefault().getFileInPlugin(new Path("testresources/testJarWithOutRoot.jar"));
 		ArchiveSourceLocation location = new ArchiveSourceLocation(file.getAbsolutePath(), null);
-				
+
 		ZipEntryStorage storage = (ZipEntryStorage) location.findSourceElement("org.eclipse.debug.tests.targets.Source_$_Lookup$Inner$Nested");
 		assertEquals("Did not find source", "Source_$_Lookup.java", storage.getName());
-	}		
+	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/DefaultSourceContainerTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/DefaultSourceContainerTests.java
index dfcea15..f97ed89 100755
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/DefaultSourceContainerTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/DefaultSourceContainerTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -20,20 +20,20 @@
  * Tests default source containers
  */
 public class DefaultSourceContainerTests extends AbstractDebugTest {
-	
+
 	public DefaultSourceContainerTests(String name) {
 		super(name);
 	}
-	
+
 	/**
 	 * Tests creation and restoring from a memento.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testDefaultSourceContainerMemento() throws Exception {
 		JavaSourceLookupDirector director = new JavaSourceLookupDirector();
 		ILaunchConfiguration configuration = getLaunchConfiguration("Breakpoints");
-		director.initializeDefaults(configuration);		
+		director.initializeDefaults(configuration);
 		ISourceContainer[] containers = director.getSourceContainers();
 		assertEquals("expected one default container", 1, containers.length);
 		assertTrue("Wrond default container", containers[0] instanceof DefaultSourceContainer);
@@ -43,5 +43,5 @@
 		director2.initializeFromMemento(memento, configuration);
 		DefaultSourceContainer restore = (DefaultSourceContainer) director2.getSourceContainers()[0];
 		assertEquals("Default source container memento failed", container, restore);
-	}			
+	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/DirectorySourceContainerTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/DirectorySourceContainerTests.java
index 54c27de..5d067f4 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/DirectorySourceContainerTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/DirectorySourceContainerTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -24,11 +24,11 @@
  * Tests directory source containers
  */
 public class DirectorySourceContainerTests extends AbstractDebugTest {
-	
+
 	public DirectorySourceContainerTests(String name) {
 		super(name);
 	}
-	
+
 	/**
 	 * Returns a directory source container.
 	 */
@@ -41,10 +41,10 @@
 		director.setSourceContainers(new ISourceContainer[]{container});
 		return container;
 	}
-	
+
 	/**
 	 * Tests creation and restoring from a memento.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testDirectorySourceContainerMemento() throws Exception {
@@ -54,7 +54,7 @@
 		ISourceContainer restore = container.getType().createSourceContainer(memento);
 		assertEquals("Directory source container memento failed", container, restore);
 		assertTrue(restore.isComposite());
-	}	
+	}
 
 	public void testSimpleSourceLookupPositive() throws Exception {
 		DirectorySourceContainer container = getContainer(false, false);
@@ -62,46 +62,46 @@
 		assertEquals("Expected 1 result", 1, objects.length);
 		assertEquals("Wrong file", new File(container.getDirectory(), "Breakpoints.java"), ((LocalFileStorage)objects[0]).getFile());
 	}
-	
+
 	public void testSimpleSourceLookupNegative() throws Exception {
 		DirectorySourceContainer container = getContainer(false, false);
 		Object[] objects = container.findSourceElements("FileNotFound.java");
 		assertEquals("Expected 0 files", 0, objects.length);
-	}	
-	
+	}
+
 	public void testSimpleNestedSourceLookupPositive() throws Exception {
 		DirectorySourceContainer container = getContainer(true, false);
 		Object[] objects = container.findSourceElements("InfiniteLoop.java");
 		assertEquals("Expected 1 result", 1, objects.length);
-		assertEquals("Wrong file", new File(container.getDirectory(), "org/eclipse/debug/tests/targets/InfiniteLoop.java"), ((LocalFileStorage)objects[0]).getFile());		
+		assertEquals("Wrong file", new File(container.getDirectory(), "org/eclipse/debug/tests/targets/InfiniteLoop.java"), ((LocalFileStorage)objects[0]).getFile());
 	}
-	
+
 	public void testSimpleNestedSourceLookupNegative() throws Exception {
 		DirectorySourceContainer container = getContainer(true, false);
 		Object[] objects = container.findSourceElements("FileNotFound.java");
-		assertEquals("Expected 0 files", 0, objects.length);		
+		assertEquals("Expected 0 files", 0, objects.length);
 	}
-	
+
 	public void testQualifiedSourceLookupPositive() throws Exception {
 		DirectorySourceContainer container = getContainer(false, false);
 		Object[] objects = container.findSourceElements("org/eclipse/debug/tests/targets/InfiniteLoop.java");
 		assertEquals("Expected 1 result", 1, objects.length);
 		assertEquals("Wrong file", new File(container.getDirectory(), "org/eclipse/debug/tests/targets/InfiniteLoop.java"), ((LocalFileStorage)objects[0]).getFile());
 	}
-	
+
 	public void testQualifiedSourceLookupNegative() throws Exception {
 		DirectorySourceContainer container = getContainer(false, false);
 		Object[] objects = container.findSourceElements("a/b/c/FileNotFound.java");
 		assertEquals("Expected 0 files", 0, objects.length);
 	}
-	
+
 	public void testPartiallyQualifiedNestedSourceLookupPositive() throws Exception {
 		DirectorySourceContainer container = getContainer(true, false);
 		Object[] objects = container.findSourceElements("debug/tests/targets/InfiniteLoop.java");
 		assertEquals("Expected 1 result", 1, objects.length);
 		assertEquals("Wrong file", new File(container.getDirectory(), "org/eclipse/debug/tests/targets/InfiniteLoop.java"), ((LocalFileStorage)objects[0]).getFile());
-	}	
-	
+	}
+
 	public void testCaseSensitiveQualifiedSourceLookup() throws Exception {
 		DirectorySourceContainer container = getContainer(false, false);
 		Object[] objects = container.findSourceElements("oRg/eClIpSe/dEbUg/tEsTs/tArGeTs/INfInItELOop.jaVa");
@@ -117,5 +117,5 @@
 				assertEquals("Wrong file", new File(container.getDirectory(), "org/eclipse/debug/tests/targets/InfiniteLoop.java"), ((LocalFileStorage)objects[0]).getFile());
 			}
 		}
-	}		
+	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/DirectorySourceLookupTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/DirectorySourceLookupTests.java
index ed8ca4a..9aa1c75 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/DirectorySourceLookupTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/DirectorySourceLookupTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -25,11 +25,11 @@
  */
 @SuppressWarnings("deprecation")
 public class DirectorySourceLookupTests extends AbstractDebugTest {
-	
+
 	public DirectorySourceLookupTests(String name) {
 		super(name);
 	}
-	
+
 	/**
 	 * Tests source lookup in a top level type, in the default package.
 	 */
@@ -37,14 +37,14 @@
 		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		File rootFile = root.getResource().getLocation().toFile();
 		IJavaSourceLocation location = new DirectorySourceLocation(rootFile);
-		
+
 		ICompilationUnit cu = getCompilationUnit(get14Project(), "src", IInternalDebugCoreConstants.EMPTY_STRING, "Breakpoints.java");
 		assertTrue("did not find compilation unit for Breakpoints.java", cu.exists());
 		LocalFileStorage expectedSource = new LocalFileStorage(cu.getResource().getLocation().toFile());
-				
+
 		assertEquals("Source lookup failed", expectedSource, location.findSourceElement("Breakpoints"));
 	}
-	
+
 	/**
 	 * Tests source lookup in an inner type, the default package.
 	 */
@@ -52,15 +52,15 @@
 		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		File rootFile = root.getResource().getLocation().toFile();
 		IJavaSourceLocation location = new DirectorySourceLocation(rootFile);
-		
+
 		ICompilationUnit cu = getCompilationUnit(get14Project(), "src", IInternalDebugCoreConstants.EMPTY_STRING, "Breakpoints.java");
 		assertTrue("did not find compilation unit for Breakpoints.java", cu.exists());
 		LocalFileStorage expectedSource = new LocalFileStorage(cu.getResource().getLocation().toFile());
-				
+
 		assertEquals("Source lookup failed", expectedSource, location.findSourceElement("Breakpoints$InnerRunnable"));
 	}
-	
-	
+
+
 	/**
 	 * Tests source lookup in a top level type.
 	 */
@@ -68,14 +68,14 @@
 		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		File rootFile = root.getResource().getLocation().toFile();
 		IJavaSourceLocation location = new DirectorySourceLocation(rootFile);
-		
+
 		ICompilationUnit cu = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "SourceLookup.java");
 		assertTrue("did not find compilation unit for SourceLookup.java", cu.exists());
 		LocalFileStorage expectedSource = new LocalFileStorage(cu.getResource().getLocation().toFile());
-				
+
 		assertEquals("Source lookup failed", expectedSource, location.findSourceElement("org.eclipse.debug.tests.targets.SourceLookup"));
 	}
-	
+
 	/**
 	 * Tests source lookup in an inner type.
 	 */
@@ -83,14 +83,14 @@
 		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		File rootFile = root.getResource().getLocation().toFile();
 		IJavaSourceLocation location = new DirectorySourceLocation(rootFile);
-		
+
 		ICompilationUnit cu = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "SourceLookup.java");
 		assertTrue("did not find compilation unit for SourceLookup.java", cu.exists());
 		LocalFileStorage expectedSource = new LocalFileStorage(cu.getResource().getLocation().toFile());
-				
+
 		assertEquals("Source lookup failed", expectedSource, location.findSourceElement("org.eclipse.debug.tests.targets.SourceLookup$Inner"));
 	}
-	
+
 	/**
 	 * Tests source lookup in an inner, inner type.
 	 */
@@ -98,14 +98,14 @@
 		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		File rootFile = root.getResource().getLocation().toFile();
 		IJavaSourceLocation location = new DirectorySourceLocation(rootFile);
-		
+
 		ICompilationUnit cu = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "SourceLookup.java");
 		assertTrue("did not find compilation unit for SourceLookup.java", cu.exists());
 		LocalFileStorage expectedSource = new LocalFileStorage(cu.getResource().getLocation().toFile());
-				
+
 		assertEquals("Source lookup failed", expectedSource, location.findSourceElement("org.eclipse.debug.tests.targets.SourceLookup$Inner$Nested"));
 	}
-		
+
 	/**
 	 * Tests source lookup in a top level type, with a $ named class
 	 */
@@ -113,14 +113,14 @@
 		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		File rootFile = root.getResource().getLocation().toFile();
 		IJavaSourceLocation location = new DirectorySourceLocation(rootFile);
-		
+
 		ICompilationUnit cu = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "Source_$_Lookup.java");
 		assertTrue("did not find compilation unit for Source_$_Lookup.java", cu.exists());
 		LocalFileStorage expectedSource = new LocalFileStorage(cu.getResource().getLocation().toFile());
-				
+
 		assertEquals("Source lookup failed", expectedSource, location.findSourceElement("org.eclipse.debug.tests.targets.Source_$_Lookup"));
 	}
-	
+
 	/**
 	 * Tests source lookup in an inner type in a $ named class.
 	 */
@@ -128,14 +128,14 @@
 		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		File rootFile = root.getResource().getLocation().toFile();
 		IJavaSourceLocation location = new DirectorySourceLocation(rootFile);
-		
+
 		ICompilationUnit cu = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "Source_$_Lookup.java");
 		assertTrue("did not find compilation unit for Source_$_Lookup.java", cu.exists());
 		LocalFileStorage expectedSource = new LocalFileStorage(cu.getResource().getLocation().toFile());
-				
+
 		assertEquals("Source lookup failed", expectedSource, location.findSourceElement("org.eclipse.debug.tests.targets.Source_$_Lookup$Inner"));
-	}	
-	
+	}
+
 	/**
 	 * Tests source lookup in an inner type in a $ named class.
 	 */
@@ -143,11 +143,11 @@
 		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		File rootFile = root.getResource().getLocation().toFile();
 		IJavaSourceLocation location = new DirectorySourceLocation(rootFile);
-		
+
 		ICompilationUnit cu = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "Source_$_Lookup.java");
 		assertTrue("did not find compilation unit for Source_$_Lookup.java", cu.exists());
 		LocalFileStorage expectedSource = new LocalFileStorage(cu.getResource().getLocation().toFile());
-				
+
 		assertEquals("Source lookup failed", expectedSource, location.findSourceElement("org.eclipse.debug.tests.targets.Source_$_Lookup$Inner$Nested"));
-	}		
+	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/ExternalArchiveSourceContainerTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/ExternalArchiveSourceContainerTests.java
index f00d58b..682c75f 100755
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/ExternalArchiveSourceContainerTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/ExternalArchiveSourceContainerTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -28,14 +28,14 @@
  * Tests external archive source containers
  */
 public class ExternalArchiveSourceContainerTests extends AbstractDebugTest {
-	
+
 	public ExternalArchiveSourceContainerTests(String name) {
 		super(name);
 	}
-	
+
 	/**
 	 * Returns the JREs source archive.
-	 * 
+	 *
 	 * @return
 	 * @throws Exception
 	 */
@@ -56,7 +56,7 @@
 		assertTrue("Did not find JRE source archive. This failure is expected if you are running the tests with a JRE that does not contain source.", false);
 		return null;
 	}
-	
+
 	/**
 	 * Returns the source archive at the specified path within this plug-in.
 	 */
@@ -70,11 +70,11 @@
 		ExternalArchiveSourceContainer container = new ExternalArchiveSourceContainer(file.getAbsolutePath(), detect);
 		director.setSourceContainers(new ISourceContainer[]{container});
 		return container;
-	}	
-	
+	}
+
 	/**
 	 * Tests creation and restoring from a memento.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testArchiveSourceContainerMemento() throws Exception {
@@ -86,7 +86,7 @@
 		assertEquals("Directory source container memento failed", container, restore);
 		assertFalse(restore.isComposite());
 		assertTrue(restore.isDetectRoot());
-	}	
+	}
 
 	public void testAutoDetectRootSourceLookupPositive() throws Exception {
 		ExternalArchiveSourceContainer container = getContainer(true, false);
@@ -95,13 +95,13 @@
 		ZipEntryStorage storage = (ZipEntryStorage) objects[0];
 		assertEquals("Wrong file", "Object.java", storage.getName());
 	}
-	
+
 	public void testAutoDetectRootSourceLookupNegative() throws Exception {
 		ExternalArchiveSourceContainer container = getContainer(true, false);
 		Object[] objects = container.findSourceElements("java/lang/FileNotFound.java");
 		assertEquals("Expected 0 files", 0, objects.length);
-	}	
-	
+	}
+
 	public void testSourceLookupPositive() throws Exception {
 		ExternalArchiveSourceContainer container = getContainer(false, false);
 		Object[] objects = container.findSourceElements("java/lang/Object.java");
@@ -109,21 +109,21 @@
 		ZipEntryStorage storage = (ZipEntryStorage) objects[0];
 		assertEquals("Wrong file", "Object.java", storage.getName());
 	}
-	
+
 	public void testSourceLookupNegative() throws Exception {
 		ExternalArchiveSourceContainer container = getContainer(false, false);
 		Object[] objects = container.findSourceElements("java/lang/FileNotFound.java");
 		assertEquals("Expected 0 files", 0, objects.length);
 	}
-		
+
 	public void testPartiallyQualifiedSourceLookupPositive() throws Exception {
 		ExternalArchiveSourceContainer container = getContainer(false, false);
 		Object[] objects = container.findSourceElements("lang/Object.java");
 		assertEquals("Expected 1 result", 1, objects.length);
 		ZipEntryStorage storage = (ZipEntryStorage) objects[0];
 		assertEquals("Wrong file", "Object.java", storage.getName());
-	}	
-	
+	}
+
 	public void testAutoDetectUnqualifiedSourceLookupPositive() throws Exception {
 		ExternalArchiveSourceContainer container = getContainer(true, false);
 		// force detection
@@ -134,7 +134,7 @@
 		ZipEntryStorage storage = (ZipEntryStorage) objects[0];
 		assertEquals("Wrong file", "Object.java", storage.getName());
 	}
-	
+
 	public void testAutoDetectMultipleRoots() throws Exception {
 		ExternalArchiveSourceContainer container = getContainer("testresources/source-test.zip", true, false);
 		// find .java file
@@ -149,6 +149,6 @@
 		// find another .txt file
 		objects = container.findSourceElements("folder/file-c.txt");
 		storage = (ZipEntryStorage) objects[0];
-		assertEquals("Wrong file", "file-c.txt", storage.getName());		
-	}		
+		assertEquals("Wrong file", "file-c.txt", storage.getName());
+	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/FolderSourceContainerTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/FolderSourceContainerTests.java
index fd75698..d4dccf9 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/FolderSourceContainerTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/FolderSourceContainerTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -24,7 +24,7 @@
  * Tests folder source containers
  */
 public class FolderSourceContainerTests extends AbstractDebugTest {
-	
+
 	public FolderSourceContainerTests(String name) {
 		super(name);
 	}
@@ -46,7 +46,7 @@
 	}
 	/**
 	 * Tests creation and restoring from a memento.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testFolderSourceContainerMemento() throws Exception {
@@ -57,53 +57,53 @@
 		assertEquals("Folder source container memento failed", container, restore);
 		assertTrue(restore.isComposite());
 	}
-	
+
 	public void testSimpleSourceLookupPositive() throws Exception {
 		FolderSourceContainer container = getContainer(false, false);
 		Object[] objects = container.findSourceElements("Breakpoints.java");
 		assertEquals("Expected 1 result", 1, objects.length);
 		assertEquals("Wrong file", getFolder(container).getFile("Breakpoints.java"), objects[0]);
 	}
-	
+
 	public void testSimpleSourceLookupNegative() throws Exception {
 		FolderSourceContainer container = getContainer(false, false);
 		Object[] objects = container.findSourceElements("FileNotFound.java");
 		assertEquals("Expected 0 files", 0, objects.length);
-	}	
-	
+	}
+
 	public void testSimpleNestedSourceLookupPositive() throws Exception {
 		FolderSourceContainer container = getContainer(true, false);
 		Object[] objects = container.findSourceElements("InfiniteLoop.java");
 		assertEquals("Expected 1 result", 1, objects.length);
-		assertEquals("Wrong file", getFolder(container).getFile(new Path("org/eclipse/debug/tests/targets/InfiniteLoop.java")), objects[0]);		
+		assertEquals("Wrong file", getFolder(container).getFile(new Path("org/eclipse/debug/tests/targets/InfiniteLoop.java")), objects[0]);
 	}
-	
+
 	public void testSimpleNestedSourceLookupNegative() throws Exception {
 		FolderSourceContainer container = getContainer(true, false);
 		Object[] objects = container.findSourceElements("FileNotFound.java");
-		assertEquals("Expected 0 files", 0, objects.length);		
+		assertEquals("Expected 0 files", 0, objects.length);
 	}
-	
+
 	public void testQualifiedSourceLookupPositive() throws Exception {
 		FolderSourceContainer container = getContainer(false, false);
 		Object[] objects = container.findSourceElements("org/eclipse/debug/tests/targets/InfiniteLoop.java");
 		assertEquals("Expected 1 result", 1, objects.length);
 		assertEquals("Wrong file", getFolder(container).getFile(new Path("org/eclipse/debug/tests/targets/InfiniteLoop.java")), objects[0]);
 	}
-	
+
 	public void testQualifiedSourceLookupNegative() throws Exception {
 		FolderSourceContainer container = getContainer(false, false);
 		Object[] objects = container.findSourceElements("a/b/c/FileNotFound.java");
 		assertEquals("Expected 0 files", 0, objects.length);
 	}
-	
+
 	public void testPartiallyQualifiedNestedSourceLookupPositive() throws Exception {
 		FolderSourceContainer container = getContainer(true, false);
 		Object[] objects = container.findSourceElements("debug/tests/targets/InfiniteLoop.java");
 		assertEquals("Expected 1 result", 1, objects.length);
 		assertEquals("Wrong file", getFolder(container).getFile(new Path("org/eclipse/debug/tests/targets/InfiniteLoop.java")), objects[0]);
-	}	
-	
+	}
+
 	public void testCaseSensitiveQualifiedSourceLookup() throws Exception {
 		FolderSourceContainer container = getContainer(false, false);
 		Object[] objects = container.findSourceElements("oRg/eClIpSe/dEbUg/tEsTs/tArGeTs/INfInItELOop.jaVa");
@@ -115,8 +115,8 @@
 			assertEquals("Expected 1 result", 1, objects.length);
 			assertEquals("Wrong file", getFolder(container).getFile(new Path("org/eclipse/debug/tests/targets/InfiniteLoop.java")), objects[0]);
 		}
-	}	
-	
+	}
+
 	public void testRelativePathName() throws Exception {
 		FolderSourceContainer container = getContainer(false, false);
 		Object[] objects = container.findSourceElements(".."+File.separatorChar+".classpath");
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/JarSourceLookupTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/JarSourceLookupTests.java
index 0aa7d56..0476ded 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/JarSourceLookupTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/JarSourceLookupTests.java
@@ -17,6 +17,7 @@
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.debug.core.ILaunch;
 import org.eclipse.debug.core.ILaunchConfiguration;
@@ -44,17 +45,17 @@
 	private static final String SAMPLE_JAR_PATH = "/JarProject/lib/sample.jar";
 	public static final String A_RUN_JAR = "testJar.RunJar";
 	static IJavaProject fgJarProject = null;
-	
+
 	String RefPjName = "JarRefProject";
 	String fJarProject = "JarProject";
-	
+
 	/**
 	 * Constructor
 	 */
 	public JarSourceLookupTests() {
 		super("JarSourceLookupTests");
 	}
-	
+
 	/**
 	 * Disposes all source containers after a test, ensures no containers are still holding open Jar references, which can lead to {@link ResourceException}s
 	 * when we try to delete / setup following tests
@@ -67,17 +68,17 @@
 			}
 		}
 	}
-	
+
 	@Override
 	protected IJavaProject getProjectContext() {
 		return fgJarProject;
 	}
-	
+
 	@Override
 	protected void setUp() throws Exception {
+		TestUtil.log(IStatus.INFO, getName(), "setUp");
 		assertWelcomeScreenClosed();
-		TestUtil.runEventLoop();
-		TestUtil.cleanUp();
+		TestUtil.cleanUp(getName());
 		IPath testrpath = new Path("testresources");
 		IProject jarProject = createProjectClone(fJarProject, testrpath.append(fJarProject).toString(), true);
 
@@ -104,22 +105,21 @@
 		}
 		waitForBuild();
 	}
-	
+
 	@Override
 	protected void tearDown() throws Exception {
 		removeAllBreakpoints();
 		if (fgJarProject.exists()) {
 			fgJarProject.getProject().delete(true, null);
 		}
-		TestUtil.cleanUp();
 		super.tearDown();
 	}
-	
+
 	/**
 	 * Ensures the translation of source containers yields the correct containers
-	 * 
+	 *
 	 * See https://bugs.eclipse.org/bugs/show_bug.cgi?id=346116
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testTranslateContainers() throws Exception {
@@ -166,12 +166,12 @@
 			disposeContainers(containers);
 		}
 	}
-	
+
 	/**
 	 * Tests that the class file is found as source when the lookup is done from a jar from another project
-	 * 
+	 *
 	 * See https://bugs.eclipse.org/bugs/show_bug.cgi?id=346116
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testInspectClassFileFromJar() throws Exception {
@@ -193,12 +193,12 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
 	 * Tests that the class file is found as source when the lookup is done from a jar from another project
-	 * 
+	 *
 	 * See https://bugs.eclipse.org/bugs/show_bug.cgi?id=346116
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testShowClassFileFromJar() throws Exception {
@@ -215,11 +215,11 @@
 			assertNotNull("We should have found source for the main class testJar.RunJar", source);
 			 assertTrue("The found source should be an IFile", source instanceof IFile);
 			 assertEquals("We should have found a file named RunJar.java", ((IFile)source).getName(), "RunJar.java");
-			 
+
 			 stepInto((IJavaStackFrame)frame);
 			 frame = thread.getTopStackFrame();
 			 assertNotNull("The top stack frame cannot be null", frame);
-			 
+
 			 source = lookupSource(frame);
 			 assertNotNull("We should have found source for the jar class a.JarClass", source);
 			 assertTrue("The found source should be a ClassFile", source instanceof ClassFile);
@@ -229,7 +229,7 @@
 			terminateAndRemove(thread);
 		}
 	}
-	
+
 	/**
 	 * Looks up source for the given frame using its backing {@link ISourceLocator} from its {@link ILaunch}
 	 * @param frame the frame to look up source for
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/JavaProjectSourceContainerTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/JavaProjectSourceContainerTests.java
index aa63119..8a8354c 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/JavaProjectSourceContainerTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/JavaProjectSourceContainerTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -22,14 +22,14 @@
  * Tests Java project source containers
  */
 public class JavaProjectSourceContainerTests extends AbstractDebugTest {
-	
+
 	public JavaProjectSourceContainerTests(String name) {
 		super(name);
 	}
-	
+
 	/**
 	 * Returns a Java project source container
-	 * 
+	 *
 	 * @return
 	 * @throws Exception
 	 */
@@ -41,10 +41,10 @@
 		director.setSourceContainers(new ISourceContainer[]{container});
 		return container;
 	}
-	
+
 	/**
 	 * Tests creation and restoring from a memento.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testSourceContainerMemento() throws Exception {
@@ -52,7 +52,7 @@
 		String memento = container.getType().getMemento(container);
 		ISourceContainer restore = container.getType().createSourceContainer(memento);
 		assertEquals("Directory source container memento failed", container, restore);
-	}	
+	}
 
 	public void testDefaultPackageLookup() throws Exception {
 		ISourceContainer container = getContainer(get14Project(), false);
@@ -61,20 +61,20 @@
 		IFile file = (IFile) objects[0];
 		assertEquals("Wrong file", "Breakpoints.java", file.getName());
 	}
-	
+
 	public void testQualifiedLookup() throws Exception {
 		ISourceContainer container = getContainer(get14Project(), false);
 		Object[] objects = container.findSourceElements("org/eclipse/debug/tests/targets/CallLoop.java");
 		assertEquals("Expected 1 result", 1, objects.length);
 		IFile file = (IFile) objects[0];
-		assertEquals("Wrong file", "CallLoop.java", file.getName());		
+		assertEquals("Wrong file", "CallLoop.java", file.getName());
 	}
-	
+
 	public void testNonJavaLookup() throws Exception {
 		ISourceContainer container = getContainer(get14Project(), false);
 		Object[] objects = container.findSourceElements("debug/non-java.txt");
 		assertEquals("Expected 1 result", 1, objects.length);
 		IFile file = (IFile) objects[0];
-		assertEquals("Wrong file", "non-java.txt", file.getName());		
-	}	
+		assertEquals("Wrong file", "non-java.txt", file.getName());
+	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/ProjectSourceContainerTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/ProjectSourceContainerTests.java
index 557580a..7aa6307 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/ProjectSourceContainerTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/ProjectSourceContainerTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -21,11 +21,11 @@
  * Tests project source containers
  */
 public class ProjectSourceContainerTests extends AbstractDebugTest {
-	
+
 	public ProjectSourceContainerTests(String name) {
 		super(name);
 	}
-	
+
 	/**
 	 * Returns a project source container.
 	 */
@@ -34,14 +34,14 @@
 		director.initializeParticipants();
 		director.setFindDuplicates(duplicates);
 		IProject project = get14Project().getProject();
-		ProjectSourceContainer container = new ProjectSourceContainer(project, referenced);		
+		ProjectSourceContainer container = new ProjectSourceContainer(project, referenced);
 		director.setSourceContainers(new ISourceContainer[]{container});
 		return container;
 	}
-	
+
 	/**
 	 * Tests creation and restoring from a memento.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testProjectSourceContainerMemento() throws Exception {
@@ -52,26 +52,26 @@
 		assertEquals("Project source container memento failed", container, restore);
 		assertTrue(restore.isSearchReferencedProjects());
 	}
-	
+
 	public void testSimpleSourceLookupPositive() throws Exception {
 		ProjectSourceContainer container = getContainer(false, false);
 		Object[] objects = container.findSourceElements("Breakpoints.java");
 		assertEquals("Expected 1 result", 1, objects.length);
 		assertEquals("Wrong file", container.getProject().getFile("src/Breakpoints.java"), objects[0]);
 	}
-	
+
 	public void testSimpleRootSourceLookupPositive() throws Exception {
 		ProjectSourceContainer container = getContainer(false, false);
 		Object[] objects = container.findSourceElements(".classpath");
 		assertEquals("Expected 1 result", 1, objects.length);
 		assertEquals("Wrong file", container.getProject().getFile(".classpath"), objects[0]);
-	}	
-	
+	}
+
 	public void testSimpleSourceLookupNegative() throws Exception {
 		ProjectSourceContainer container = getContainer(false, false);
 		Object[] objects = container.findSourceElements("FileNotFound.java");
 		assertEquals("Expected 0 files", 0, objects.length);
-	}	
+	}
 
 	public void testQualifiedSourceLookupPositive() throws Exception {
 		ProjectSourceContainer container = getContainer(false, false);
@@ -79,13 +79,13 @@
 		assertEquals("Expected 1 result", 1, objects.length);
 		assertEquals("Wrong file", container.getProject().getFile("src/org/eclipse/debug/tests/targets/InfiniteLoop.java"), objects[0]);
 	}
-	
+
 	public void testQualifiedSourceLookupNegative() throws Exception {
 		ProjectSourceContainer container = getContainer(false, false);
 		Object[] objects = container.findSourceElements("a/b/c/InfiniteLoop.java");
 		assertEquals("Expected 0 files", 0, objects.length);
-	}	
-	
+	}
+
 	public void testCaseSensitiveQualifiedSourceLookup() throws Exception {
 		ProjectSourceContainer container = getContainer(false, false);
 		Object[] objects = container.findSourceElements("oRg/eClIpSe/dEbUg/tEsTs/tArGeTs/INfInItELOop.jaVa");
@@ -97,5 +97,5 @@
 			assertEquals("Expected 1 result", 1, objects.length);
 			assertEquals("Wrong file", container.getProject().getFile("src/org/eclipse/debug/tests/targets/InfiniteLoop.java"), objects[0]);
 		}
-	}	
+	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/SourceLocationTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/SourceLocationTests.java
index 25dc4bb..07c1c1b 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/SourceLocationTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/SourceLocationTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -35,7 +35,7 @@
  */
 @SuppressWarnings("deprecation")
 public class SourceLocationTests extends AbstractDebugTest {
-	
+
 	public static final String JRE_CONTAINER_1_4_CPE_NAME = "org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4";
 
 	public SourceLocationTests(String name) {
@@ -49,7 +49,7 @@
 		restored.initializeFrom(memento);
 		assertEquals("project locations should be equal", location, restored);
 	}
-	
+
 	public void testDirectoryLocationMemento() throws Exception {
 		File dir = ResourcesPlugin.getWorkspace().getRoot().getLocation().toFile();
 		IJavaSourceLocation location = new DirectorySourceLocation(dir);
@@ -57,8 +57,8 @@
 		IJavaSourceLocation restored = new DirectorySourceLocation();
 		restored.initializeFrom(memento);
 		assertEquals("directory locations should be equal", location, restored);
-	}	
-	
+	}
+
 	public void testArchiveLocationMemento() throws Exception {
 		IVMInstall vm = JavaRuntime.getDefaultVMInstall();
 		IJavaSourceLocation location = new ArchiveSourceLocation(JavaRuntime.getLibraryLocations(vm)[0].getSystemLibraryPath().toOSString(), null);
@@ -66,50 +66,50 @@
 		IJavaSourceLocation restored = new ArchiveSourceLocation();
 		restored.initializeFrom(memento);
 		assertEquals("archive locations should be equal", location, restored);
-	}	
-	
+	}
+
 	public void testJavaSourceLocatorMemento() throws Exception {
 		IJavaSourceLocation location1 = new JavaProjectSourceLocation(get14Project());
 		File dir = ResourcesPlugin.getWorkspace().getRoot().getLocation().toFile();
 		IJavaSourceLocation location2 = new DirectorySourceLocation(dir);
 		IVMInstall vm = JavaRuntime.getDefaultVMInstall();
 		IJavaSourceLocation location3 = new ArchiveSourceLocation(JavaRuntime.getLibraryLocations(vm)[0].getSystemLibraryPath().toOSString(), null);
-		
+
 		JavaSourceLocator locator = new JavaSourceLocator(new IJavaSourceLocation[] {location1, location2, location3});
 		String memento = locator.getMemento();
 		JavaSourceLocator restored = new JavaSourceLocator();
 		restored.initializeFromMemento(memento);
 		IJavaSourceLocation[] locations = restored.getSourceLocations();
-		
+
 		assertEquals("wrong number of source locations", 3, locations.length);
 		assertEquals("1st locations not equal", location1, locations[0]);
 		assertEquals("2nd locations not equal", location2, locations[1]);
 		assertEquals("3rd locations not equal", location3, locations[2]);
 	}
-	
+
 	public void testJavaUISourceLocatorMemento() throws Exception {
 		IJavaSourceLocation location1 = new JavaProjectSourceLocation(get14Project());
 		File dir = ResourcesPlugin.getWorkspace().getRoot().getLocation().toFile();
 		IJavaSourceLocation location2 = new DirectorySourceLocation(dir);
 		IVMInstall vm = JavaRuntime.getDefaultVMInstall();
 		IJavaSourceLocation location3 = new ArchiveSourceLocation(JavaRuntime.getLibraryLocations(vm)[0].getSystemLibraryPath().toOSString(), null);
-		
+
 		JavaUISourceLocator locator = new JavaUISourceLocator(get14Project());
 		locator.setSourceLocations(new IJavaSourceLocation[] {location1, location2, location3});
 		locator.setFindAllSourceElement(true);
-		
+
 		String memento = locator.getMemento();
 		JavaUISourceLocator restored = new JavaUISourceLocator();
 		restored.initializeFromMemento(memento);
 		IJavaSourceLocation[] locations = restored.getSourceLocations();
-		
+
 		assertEquals("wrong number of source locations", 3, locations.length);
 		assertEquals("1st locations not equal", location1, locations[0]);
 		assertEquals("2nd locations not equal", location2, locations[1]);
 		assertEquals("3rd locations not equal", location3, locations[2]);
-		assertTrue("Should find all source locations", locator.isFindAllSourceElements());		
+		assertTrue("Should find all source locations", locator.isFindAllSourceElements());
 	}
-	
+
 	public void testPackageFragmentRootLocationMemento() throws Exception {
 		IResource res = get14Project().getProject().getFolder("src");
 		IPackageFragmentRoot root = get14Project().getPackageFragmentRoot(res);
@@ -119,43 +119,43 @@
 		restored.initializeFrom(memento);
 		assertEquals("root locations should be equal", location, restored);
 	}
-	
+
 	public void testEmptyPackageFragmentRootLocationMemento() throws Exception {
 		IJavaSourceLocation location = new PackageFragmentRootSourceLocation();
 		String memento = location.getMemento();
 		IJavaSourceLocation restored = new PackageFragmentRootSourceLocation();
 		restored.initializeFrom(memento);
 		assertEquals("root locations should be equal", location, restored);
-	}	
-		
+	}
+
 	public void testPositiveSourceFolderSourceLocation() throws Exception {
 		IResource res = get14Project().getProject().getFolder("src");
 		IPackageFragmentRoot root = get14Project().getPackageFragmentRoot(res);
 		IJavaSourceLocation location = new PackageFragmentRootSourceLocation(root);
-		
+
 		Object source = location.findSourceElement("Breakpoints");
 		assertTrue("Did not find source for 'Breakpoints'", source instanceof ICompilationUnit);
 		ICompilationUnit cu = (ICompilationUnit)source;
 		assertEquals("Did not find source for 'Breakpoints'", cu.getElementName(), "Breakpoints.java");
-		
+
 		source = location.findSourceElement("org.eclipse.debug.tests.targets.InfiniteLoop");
 		assertTrue("Did not find source for 'InfiniteLoop'", source instanceof ICompilationUnit);
 		cu = (ICompilationUnit)source;
 		assertEquals("Did not find source for 'Breakpoints'", cu.getElementName(), "InfiniteLoop.java");
 	}
-	
+
 	public void testNegativeSourceFolderSourceLocation() throws Exception {
 		IResource res = get14Project().getProject().getFolder("src");
 		IPackageFragmentRoot root = get14Project().getPackageFragmentRoot(res);
 		IJavaSourceLocation location = new PackageFragmentRootSourceLocation(root);
-		
+
 		Object source = location.findSourceElement("DoesNotExist");
 		assertNull("Should not have found source", source);
-		
+
 		source = location.findSourceElement("org.eclipse.DoesNotExist");
 		assertNull("Should not have found source", source);
-	}	
-	
+	}
+
 	public void testPositiveSystemLibrarySourceLocation() throws Exception {
 		IClasspathEntry[] cpes = get14Project().getRawClasspath();
 		IClasspathEntry lib = null;
@@ -168,7 +168,7 @@
 			}
 		}
 		assertNotNull("Could not find JRE_CONTAINER entry", lib);
-		
+
 		IPackageFragmentRoot[] roots = get14Project().findPackageFragmentRoots(lib);
 		Object source = null;
 		for (int i = 0; i < roots.length; i++) {
@@ -179,11 +179,11 @@
 				break;
 			}
 		}
-		
+
 		assertTrue("Did not find source for 'Object'", source instanceof IClassFile);
 		IClassFile cf = (IClassFile)source;
 		assertEquals("Did not find source for 'Object'", "Object.class", cf.getElementName());
-		
+
 		for (int i = 0; i < roots.length; i++) {
 			IPackageFragmentRoot root = roots[i];
 			IJavaSourceLocation location = new PackageFragmentRootSourceLocation(root);
@@ -191,12 +191,12 @@
 			if (source != null) {
 				break;
 			}
-		}		
+		}
 		assertTrue("Did not find source for 'Vector$1'", source instanceof IClassFile);
 		cf = (IClassFile)source;
 		assertEquals("Did not find source for 'Vector$1'", "Vector$1.class", cf.getElementName());
 	}
-	
+
 	public void testNegativeSystemLibrarySourceLocation() throws Exception {
 		IClasspathEntry[] cpes = get14Project().getRawClasspath();
 		IClasspathEntry lib = null;
@@ -209,7 +209,7 @@
 			}
 		}
 		assertNotNull("Could not find JRE_CONTAINER entry", lib);
-		
+
 		IPackageFragmentRoot[] roots = get14Project().findPackageFragmentRoots(lib);
 		Object source = null;
 		for (int i = 0; i < roots.length; i++) {
@@ -220,8 +220,8 @@
 				break;
 			}
 		}
-		
+
 		assertNull("Should not find source", source);
 
-	}	
+	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/SourceLookupTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/SourceLookupTests.java
index 0bc25f8..d372e9f 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/SourceLookupTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/SourceLookupTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -30,11 +30,11 @@
  */
 @SuppressWarnings("deprecation")
 public class SourceLookupTests extends AbstractDebugTest {
-	
+
 	public SourceLookupTests(String name) {
 		super(name);
 	}
-	
+
 	/**
 	 * See Bug 53646
 	 */
@@ -60,19 +60,19 @@
 		String typeName = "org.eclipse.debug.tests.targets.CallStack";
 		createLineBreakpoint(28, "org.eclipse.debug.tests.targets.ClassOne");
 		createLineBreakpoint(28, "org.eclipse.debug.tests.targets.ClassTwo");
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			// get source element for first breakpoint
 			IStackFrame[] frames = thread.getStackFrames();
-			IStackFrame frame = frames[2]; 
+			IStackFrame frame = frames[2];
 			ISourceLocator sourceLocator = thread.getLaunch().getSourceLocator();
 			Object source1 = sourceLocator.getSourceElement(frame);
 			source1 = ((IAdaptable)source1).getAdapter(IJavaElement.class);
-			
+
 			IPackageFragment[] fragments = get14Project().getPackageFragments();
 			IPackageFragment fragment = null;
 			for (int i = 0; i < fragments.length; i++) {
@@ -84,7 +84,7 @@
 			assertNotNull("Did not locate package framgment 'org.eclipse.debug.tests.targets'", fragment);
 			ICompilationUnit unit1 = fragment.getCompilationUnit("ClassOne.java");
 			assertEquals("Source lookup failed for frame1", unit1, source1);
-			
+
 			// resume to second breakpoint
 			thread = resume(thread);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
@@ -93,40 +93,40 @@
 			source2 = ((IAdaptable)source2).getAdapter(IJavaElement.class);
 			ICompilationUnit unit2 = fragment.getCompilationUnit("ClassTwo.java");
 			assertEquals("Source lookup failed for frame2", unit2, source2);
-						
+
 			// the source elements should not be equal
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}		
+		}
 	}
-	
+
 	/**
 	 * Tests source lookup in a top level type, in the default package.
 	 */
 	public void testDefTopLevelType() throws Exception {
 		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		IJavaSourceLocation location = new PackageFragmentRootSourceLocation(root);
-		
+
 		ICompilationUnit expectedSource = getCompilationUnit(get14Project(), "src", IInternalDebugCoreConstants.EMPTY_STRING, "Breakpoints.java");
 		assertTrue("did not find compilation unit for Breakpoints.java", expectedSource.exists());
-				
+
 		assertEquals("Source lookup failed", expectedSource, location.findSourceElement("Breakpoints"));
 	}
-	
+
 	/**
 	 * Tests source lookup in an inner type, the default package.
 	 */
 	public void testDefInnerType() throws Exception {
 		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		IJavaSourceLocation location = new PackageFragmentRootSourceLocation(root);
-		
+
 		ICompilationUnit expectedSource = getCompilationUnit(get14Project(), "src", IInternalDebugCoreConstants.EMPTY_STRING, "Breakpoints.java");
 		assertTrue("did not find compilation unit for Breakpoints.java", expectedSource.exists());
-				
+
 		assertEquals("Source lookup failed", expectedSource, location.findSourceElement("Breakpoints$InnerRunnable"));
 	}
-	
+
 	/**
 	 * Tests source lookup in an anonymous inner type, in the default package.
 	 * Must debug since we do not know name of type.
@@ -136,12 +136,12 @@
 		createLineBreakpoint(43, typeName);
 		ICompilationUnit expectedSource = getCompilationUnit(get14Project(), "src", IInternalDebugCoreConstants.EMPTY_STRING, "Breakpoints.java");
 		assertTrue("did not find compilation unit for Breakpoints.java", expectedSource.exists());
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			// get source element for top frame
 			IStackFrame frame = thread.getTopStackFrame();
 			ISourceLocator sourceLocator = thread.getLaunch().getSourceLocator();
@@ -149,10 +149,10 @@
 			assertEquals("Source lookup failed", expectedSource.getResource(), source);
 		} finally {
 			terminateAndRemove(thread);
-			removeAllBreakpoints();			
+			removeAllBreakpoints();
 		}
-	}	
-	
+	}
+
 	/**
 	 * Tests source lookup in a named local type, in the default package.
 	 * Must debug to test this, since we do no know name of local type.
@@ -162,12 +162,12 @@
 		createLineBreakpoint(30, typeName);
 		ICompilationUnit expectedSource = getCompilationUnit(get14Project(), "src", IInternalDebugCoreConstants.EMPTY_STRING, "Breakpoints.java");
 		assertTrue("did not find compilation unit for Breakpoints.java", expectedSource.exists());
-		
+
 		IJavaThread thread= null;
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			// get source element for top frame
 			IStackFrame frame = thread.getTopStackFrame();
 			ISourceLocator sourceLocator = thread.getLaunch().getSourceLocator();
@@ -175,85 +175,85 @@
 			assertEquals("Source lookup failed", expectedSource.getResource(), source);
 		} finally {
 			terminateAndRemove(thread);
-			removeAllBreakpoints();			
+			removeAllBreakpoints();
 		}
-	}	
-	
+	}
+
 	/**
 	 * Tests source lookup in a top level type.
 	 */
 	public void testTopLevelType() throws Exception {
 		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		IJavaSourceLocation location = new PackageFragmentRootSourceLocation(root);
-		
+
 		ICompilationUnit expectedSource = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "SourceLookup.java");
 		assertTrue("did not find compilation unit for SourceLookup.java", expectedSource.exists());
-				
+
 		assertEquals("Source lookup failed", expectedSource, location.findSourceElement("org.eclipse.debug.tests.targets.SourceLookup"));
 	}
-	
+
 	/**
 	 * Tests source lookup in an inner type.
 	 */
 	public void testInnerType() throws Exception {
 		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		IJavaSourceLocation location = new PackageFragmentRootSourceLocation(root);
-		
+
 		ICompilationUnit expectedSource = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "SourceLookup.java");
 		assertTrue("did not find compilation unit for SourceLookup.java", expectedSource.exists());
-				
+
 		assertEquals("Source lookup failed", expectedSource, location.findSourceElement("org.eclipse.debug.tests.targets.SourceLookup$Inner"));
 	}
-	
+
 	/**
 	 * Tests source lookup in an inner inner type.
 	 */
 	public void testInnerNestedType() throws Exception {
 		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		IJavaSourceLocation location = new PackageFragmentRootSourceLocation(root);
-		
+
 		ICompilationUnit expectedSource = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "SourceLookup.java");
 		assertTrue("did not find compilation unit for SourceLookup.java", expectedSource.exists());
-				
+
 		assertEquals("Source lookup failed", expectedSource, location.findSourceElement("org.eclipse.debug.tests.targets.SourceLookup$Inner$Nested"));
-	}	
-	
+	}
+
 	/**
 	 * Tests source lookup in a top level type, with a $ named class
 	 */
 	public void testTopLevel$Type() throws Exception {
 		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		IJavaSourceLocation location = new PackageFragmentRootSourceLocation(root);
-		
+
 		ICompilationUnit expectedSource = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "Source_$_Lookup.java");
 		assertTrue("did not find compilation unit for Source_$_Lookup.java", expectedSource.exists());
-				
+
 		assertEquals("Source lookup failed", expectedSource, location.findSourceElement("org.eclipse.debug.tests.targets.Source_$_Lookup"));
 	}
-	
+
 	/**
 	 * Tests source lookup in an inner type in a $ named class.
 	 */
 	public void testInner$Type() throws Exception {
 		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		IJavaSourceLocation location = new PackageFragmentRootSourceLocation(root);
-		
+
 		ICompilationUnit expectedSource = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "Source_$_Lookup.java");
 		assertTrue("did not find compilation unit for Source_$_Lookup.java", expectedSource.exists());
-				
+
 		assertEquals("Source lookup failed", expectedSource, location.findSourceElement("org.eclipse.debug.tests.targets.Source_$_Lookup$Inner"));
 	}
-	
+
 	/**
 	 * Tests source lookup in an inner inner type in a $ named class.
 	 */
 	public void testInnerNested$Type() throws Exception {
 		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		IJavaSourceLocation location = new PackageFragmentRootSourceLocation(root);
-		
+
 		ICompilationUnit expectedSource = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "Source_$_Lookup.java");
 		assertTrue("did not find compilation unit for Source_$_Lookup.java", expectedSource.exists());
-				
+
 		assertEquals("Source lookup failed", expectedSource, location.findSourceElement("org.eclipse.debug.tests.targets.Source_$_Lookup$Inner$Nested"));
-	}	
+	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/TypeResolutionTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/TypeResolutionTests.java
index eccabb5..a445faf 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/TypeResolutionTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/TypeResolutionTests.java
@@ -27,103 +27,103 @@
 	public TypeResolutionTests(String name) {
 		super(name);
 	}
-	
+
 	public void testTypeAA() throws Exception {
 		resolve(65, "EvalNestedTypeTests$A$AA");
-	}	
-	
+	}
+
 	public void testTypeAB() throws Exception {
 		resolve(94, "EvalNestedTypeTests$A$AB");
-	}	
-	
+	}
+
 	public void testTypeAC() throws Exception {
 		resolve(120, "EvalNestedTypeTests$A$AC");
-	}	
-	
+	}
+
 	public void testAnonTypeA1() throws Exception {
 		resolve(145, "EvalNestedTypeTests$A$1");
 	}
-	
+
 	public void testTypeAE() throws Exception {
 		resolve(179, "EvalNestedTypeTests$A$AE");
 	}
-	
+
 	public void testAnonTypeA2() throws Exception {
 		resolve(203, "EvalNestedTypeTests$A$2");
-	}	
-	
+	}
+
 	public void testTypeBB() throws Exception {
 		resolve(252, "EvalNestedTypeTests$B$BB");
 	}
-	
+
 	public void testTypeBC() throws Exception {
 		resolve(279, "EvalNestedTypeTests$B$BC");
 	}
-	
+
 	public void testAnonTypeB() throws Exception {
 		resolve(304, "EvalNestedTypeTests$B$1");
 	}
-	
+
 	public void testTypeB() throws Exception {
 		resolve(312, "EvalNestedTypeTests$B");
 	}
-	
+
 	public void testTypeCB() throws Exception {
 		resolve(354, "EvalNestedTypeTests$C$CB");
 	}
-	
+
 	public void testTypeCC() throws Exception {
 		resolve(381, "EvalNestedTypeTests$C$CC");
-	}	
-	
+	}
+
 	public void testAnonTypeC1() throws Exception {
 		resolve(406, "EvalNestedTypeTests$C$1");
 	}
-	
+
 	public void testAnonTypeDB() throws Exception {
 		resolve(455, "EvalNestedTypeTests$1$DB");
 	}
-	
+
 	public void testAnonTypeDC() throws Exception {
 		resolve(481, "EvalNestedTypeTests$1$DC");
 	}
-	
+
 	public void testAnonType11() throws Exception {
 		resolve(506, "EvalNestedTypeTests$1$1");
-	}	
+	}
 
 	public void testTopLevelType() throws Exception {
 		resolve(523, "EvalNestedTypeTests");
 	}
-	
+
 	public void testTypeEB() throws Exception {
 		resolve(566, "EvalNestedTypeTests$E$EB");
 	}
-	
+
 	public void testTypeEC() throws Exception {
 		resolve(592, "EvalNestedTypeTests$E$EC");
 	}
-	
+
 	public void testAnonTypeE1() throws Exception {
 		resolve(616, "EvalNestedTypeTests$E$1");
-	}	
-	
+	}
+
 	public void testAnonTypeFB() throws Exception {
 		resolve(664, "EvalNestedTypeTests$2$FB");
 	}
-	
+
 	public void testAnonTypeFC() throws Exception {
 		resolve(690, "EvalNestedTypeTests$2$FC");
 	}
-	
+
 	public void testAnonType21() throws Exception {
 		resolve(714, "EvalNestedTypeTests$2$1");
 	}
-	
+
 	/**
 	 * Performs a resolution test. Debugs to a breakpoint and resolves the
 	 * declaring type of the stack frame.
-	 * 
+	 *
 	 * @param line breakpoint line number
 	 * @param expectedName expected fully qualified name of resolved type
 	 * @throws Exception on failure
@@ -145,7 +145,7 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
-	}	
+		}
+	}
 
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/state/RefreshStateTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/state/RefreshStateTests.java
index 5be4b7f..13ad235 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/state/RefreshStateTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/state/RefreshStateTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -29,7 +29,7 @@
 /**
  * Tests that state refresh works after modifying the target state
  * with a custom JDWP command.
- * 
+ *
  * @since 3.6
  */
 public class RefreshStateTests extends AbstractDebugTest {
@@ -37,16 +37,16 @@
 	public RefreshStateTests(String name) {
 		super(name);
 	}
-	
+
 	/**
 	 * Resume a thread behind the scenes and ensure model state updates appropriately.
-	 * 
+	 *
 	 * @throws CoreException
 	 */
 	public void testThreadHasResumed() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.CallLoop";
 		ILineBreakpoint bp = createLineBreakpoint(16, "org.eclipse.debug.tests.targets.Looper");
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -58,12 +58,12 @@
 			outData.writeLong(reference.getUniqueId());
 			byte[] reply = jdiTarget.sendCommand((byte)11, (byte)3, outBytes.toByteArray());
 			JdwpReplyPacket packet = (JdwpReplyPacket) JdwpPacket.build(reply);
-			
+
 			assertEquals("Unexpected error code in reply packet", 0, packet.errorCode());
-			
+
 			// model should still be suspended
 			assertTrue("Model should be in suspended state", thread.isSuspended());
-			
+
 			// refresh the model, expect a resume event
 			DebugElementEventWaiter waiter = new DebugElementEventWaiter(DebugEvent.RESUME, thread);
 			jdiTarget.refreshState();
@@ -75,19 +75,19 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
+		}
 	}
-	
+
 	/**
 	 * Resume all threads behind the scenes and ensure model state updates appropriately.
-	 * 
+	 *
 	 * @throws CoreException
 	 */
 	public void testAllThreadsResumed() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.CallLoop";
 		IJavaLineBreakpoint bp = createLineBreakpoint(16, "org.eclipse.debug.tests.targets.Looper");
 		bp.setSuspendPolicy(IJavaBreakpoint.SUSPEND_VM);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -104,10 +104,10 @@
 				JdwpReplyPacket packet = (JdwpReplyPacket) JdwpPacket.build(reply);
 				assertEquals("Unexpected error code in reply packet", 0, packet.errorCode());
 			}
-			
+
 			// model should still be suspended
 			assertTrue("Model should be in suspended state", jdiTarget.isSuspended());
-			
+
 			// refresh the model, expect a resume event
 			DebugElementEventWaiter waiter = new DebugElementEventWaiter(DebugEvent.RESUME, jdiTarget);
 			jdiTarget.refreshState();
@@ -118,18 +118,18 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
+		}
 	}
-	
+
 	/**
 	 * Suspend a thread behind the scenes and ensure model state updates appropriately.
-	 * 
+	 *
 	 * @throws CoreException
 	 */
 	public void testThreadHasSuspended() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.CallLoop";
 		ILineBreakpoint bp = createLineBreakpoint(16, "org.eclipse.debug.tests.targets.Looper");
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -140,7 +140,7 @@
 			waiter.waitForEvent();
 			// model should now be in running state
 			assertFalse("Model should now be running", thread.isSuspended());
-			
+
 			// suspend the thread with a JDWP command (set 11, command 2)
 			IJavaObject reference = thread.getThreadObject();
 			ByteArrayOutputStream outBytes = new ByteArrayOutputStream();
@@ -148,37 +148,37 @@
 			outData.writeLong(reference.getUniqueId());
 			byte[] reply = jdiTarget.sendCommand((byte)11, (byte)2, outBytes.toByteArray());
 			JdwpReplyPacket packet = (JdwpReplyPacket) JdwpPacket.build(reply);
-			
+
 			assertEquals("Unexpected error code in reply packet", 0, packet.errorCode());
-			
+
 			// model should still be running
 			assertFalse("Model should be in running state", thread.isSuspended());
-			
+
 			// refresh the model, expect a suspend event
 			waiter = new DebugElementEventWaiter(DebugEvent.SUSPEND, thread);
 			jdiTarget.refreshState();
 			Object source = waiter.waitForEvent();
 			assertNotNull("Thread never sent suspend event", source);
 			assertEquals("Wrong thread suspended", thread, source);
-			
+
 			// model should be suspended now
 			assertTrue("Model should be in suspended state", thread.isSuspended());
-			
+
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
-	}	
-	
+		}
+	}
+
 	/**
 	 * Suspend all threads behind the scenes and ensure model state updates appropriately.
-	 * 
+	 *
 	 * @throws CoreException
 	 */
 	public void testAllThreadsSuspended() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.CallLoop";
 		ILineBreakpoint bp = createLineBreakpoint(16, "org.eclipse.debug.tests.targets.Looper");
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -189,7 +189,7 @@
 			waiter.waitForEvent();
 			// model should now be in running state
 			assertFalse("Model should now be running", thread.isSuspended());
-			
+
 			IThread[] threads = jdiTarget.getThreads();
 			for (int i = 0; i < threads.length; i++) {
 				IJavaThread jThread = (IJavaThread) threads[i];
@@ -202,35 +202,35 @@
 				JdwpReplyPacket packet = (JdwpReplyPacket) JdwpPacket.build(reply);
 				assertEquals("Unexpected error code in reply packet", 0, packet.errorCode());
 			}
-			
-			
+
+
 			// model should still be running
 			assertFalse("Model should be in running state", jdiTarget.isSuspended());
-			
+
 			// refresh the model, expect a suspend event
 			waiter = new DebugElementEventWaiter(DebugEvent.SUSPEND, jdiTarget);
 			jdiTarget.refreshState();
 			Object source = waiter.waitForEvent();
 			assertNotNull("Target never sent suspend event", source);
-			
+
 			// model should be suspended now
 			assertTrue("Model should be in suspended state", jdiTarget.isSuspended());
-			
+
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
-	}		
+		}
+	}
 
 	/**
 	 * Suspend the entire target behind the scenes and ensure model state updates appropriately.
-	 * 
+	 *
 	 * @throws CoreException
 	 */
 	public void testTargetHasSuspended() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.CallLoop";
 		ILineBreakpoint bp = createLineBreakpoint(16, "org.eclipse.debug.tests.targets.Looper");
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -241,7 +241,7 @@
 			waiter.waitForEvent();
 			// model should now be in running state
 			assertFalse("Model should now be running", thread.isSuspended());
-			
+
 			// suspend the target with a JDWP command (set 1, command 8)
 			IJavaObject reference = thread.getThreadObject();
 			ByteArrayOutputStream outBytes = new ByteArrayOutputStream();
@@ -249,37 +249,37 @@
 			outData.writeLong(reference.getUniqueId());
 			byte[] reply = jdiTarget.sendCommand((byte)1, (byte)8, outBytes.toByteArray());
 			JdwpReplyPacket packet = (JdwpReplyPacket) JdwpPacket.build(reply);
-			
+
 			assertEquals("Unexpected error code in reply packet", 0, packet.errorCode());
-			
+
 			// model should still be running
 			assertFalse("Model should be in running state", jdiTarget.isSuspended());
-			
+
 			// refresh the model, expect a suspend event
 			waiter = new DebugElementEventWaiter(DebugEvent.SUSPEND, jdiTarget);
 			jdiTarget.refreshState();
 			Object source = waiter.waitForEvent();
 			assertNotNull("Target never sent suspend event", source);
-			
+
 			// model should be suspended now
 			assertTrue("Model should be in suspended state", jdiTarget.isSuspended());
-			
+
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
-	}		
-	
+		}
+	}
+
 	/**
 	 * Resume a target behind the scenes and ensure model state updates appropriately.
-	 * 
+	 *
 	 * @throws CoreException
 	 */
 	public void testTargetHasResumed() throws Exception {
 		String typeName = "org.eclipse.debug.tests.targets.CallLoop";
 		IJavaLineBreakpoint bp = createLineBreakpoint(16, "org.eclipse.debug.tests.targets.Looper");
 		bp.setSuspendPolicy(IJavaBreakpoint.SUSPEND_VM);
-		
+
 		IJavaThread thread = null;
 		try {
 			thread= launchToLineBreakpoint(typeName, bp);
@@ -291,12 +291,12 @@
 			outData.writeLong(reference.getUniqueId());
 			byte[] reply = jdiTarget.sendCommand((byte)1, (byte)9, outBytes.toByteArray());
 			JdwpReplyPacket packet = (JdwpReplyPacket) JdwpPacket.build(reply);
-			
+
 			assertEquals("Unexpected error code in reply packet", 0, packet.errorCode());
-			
+
 			// model should still be suspended
 			assertTrue("Model should be in suspended state", jdiTarget.isSuspended());
-			
+
 			// refresh the model, expect a resume event
 			DebugElementEventWaiter waiter = new DebugElementEventWaiter(DebugEvent.RESUME, jdiTarget);
 			jdiTarget.refreshState();
@@ -307,6 +307,6 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}	
-	}	
+		}
+	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/AbstractDebugUiTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/AbstractDebugUiTests.java
new file mode 100644
index 0000000..c501b7e
--- /dev/null
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/AbstractDebugUiTests.java
@@ -0,0 +1,223 @@
+/*******************************************************************************
+ *  Copyright (c) 2017 Andrey Loskutov and others.
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *
+ *  Contributors:
+ *     Andrey Loskutov <loskutov@gmx.de> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jdt.debug.tests.ui;
+
+import java.util.concurrent.Callable;
+import java.util.concurrent.atomic.AtomicReference;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.debug.internal.core.IInternalDebugCoreConstants;
+import org.eclipse.debug.internal.ui.DebugUIPlugin;
+import org.eclipse.debug.internal.ui.IInternalDebugUIConstants;
+import org.eclipse.debug.ui.DebugUITools;
+import org.eclipse.debug.ui.IDebugUIConstants;
+import org.eclipse.jdt.debug.tests.AbstractDebugTest;
+import org.eclipse.jdt.debug.tests.TestUtil;
+import org.eclipse.jdt.ui.JavaUI;
+import org.eclipse.jface.dialogs.MessageDialogWithToggle;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IPerspectiveDescriptor;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.ide.IDE;
+
+/**
+ * Base class for UI related debug tests.
+ */
+public abstract class AbstractDebugUiTests extends AbstractDebugTest {
+
+	// prefs to restore
+	private String switch_on_launch;
+	private String switch_on_suspend;
+	private String debug_perspectives;
+	private String user_view_bindings;
+	private boolean activate_debug_view;
+
+	public AbstractDebugUiTests(String name) {
+		super(name);
+	}
+
+	@Override
+	protected void setUp() throws Exception {
+		super.setUp();
+		IPreferenceStore preferenceStore = DebugUITools.getPreferenceStore();
+		switch_on_launch = preferenceStore.getString(IInternalDebugUIConstants.PREF_SWITCH_TO_PERSPECTIVE);
+		switch_on_suspend = preferenceStore.getString(IInternalDebugUIConstants.PREF_SWITCH_PERSPECTIVE_ON_SUSPEND);
+		debug_perspectives = preferenceStore.getString(IDebugUIConstants.PREF_MANAGE_VIEW_PERSPECTIVES);
+		user_view_bindings = preferenceStore.getString(IInternalDebugUIConstants.PREF_USER_VIEW_BINDINGS);
+		activate_debug_view = preferenceStore.getBoolean(IInternalDebugUIConstants.PREF_ACTIVATE_DEBUG_VIEW);
+
+		preferenceStore.setValue(IInternalDebugUIConstants.PREF_SWITCH_PERSPECTIVE_ON_SUSPEND, MessageDialogWithToggle.NEVER);
+		preferenceStore.setValue(IInternalDebugUIConstants.PREF_SWITCH_TO_PERSPECTIVE, MessageDialogWithToggle.NEVER);
+		preferenceStore.setValue(IDebugUIConstants.PREF_MANAGE_VIEW_PERSPECTIVES, IDebugUIConstants.ID_DEBUG_PERSPECTIVE + "," +
+				JavaUI.ID_PERSPECTIVE + ",");
+		preferenceStore.setValue(IInternalDebugUIConstants.PREF_USER_VIEW_BINDINGS, IInternalDebugCoreConstants.EMPTY_STRING);
+		preferenceStore.setValue(IInternalDebugUIConstants.PREF_ACTIVATE_DEBUG_VIEW, true);
+		sync(() -> TestUtil.waitForJobs(getName(), 10, 1000));
+	}
+
+	@Override
+	protected void tearDown() throws Exception {
+		IPreferenceStore preferenceStore = DebugUITools.getPreferenceStore();
+		preferenceStore.setValue(IInternalDebugUIConstants.PREF_SWITCH_PERSPECTIVE_ON_SUSPEND, switch_on_suspend);
+		preferenceStore.setValue(IInternalDebugUIConstants.PREF_SWITCH_TO_PERSPECTIVE, switch_on_launch);
+		preferenceStore.setValue(IDebugUIConstants.PREF_MANAGE_VIEW_PERSPECTIVES, debug_perspectives);
+		preferenceStore.setValue(IInternalDebugUIConstants.PREF_USER_VIEW_BINDINGS, user_view_bindings);
+		preferenceStore.setValue(IInternalDebugUIConstants.PREF_ACTIVATE_DEBUG_VIEW, activate_debug_view);
+		sync(() -> TestUtil.waitForJobs(getName(), 10, 1000));
+		super.tearDown();
+	}
+
+	/**
+	 * Switches to the specified perspective in the given window, and resets the perspective.
+	 *
+	 * @param window
+	 * @param perspectiveId
+	 */
+	protected void switchPerspective(IWorkbenchWindow window, String perspectiveId) {
+		IPerspectiveDescriptor descriptor = PlatformUI.getWorkbench().getPerspectiveRegistry().findPerspectiveWithId(perspectiveId);
+		assertNotNull("missing perspective " + perspectiveId, descriptor);
+		IWorkbenchPage page = window.getActivePage();
+		page.setPerspective(descriptor);
+		page.resetPerspective();
+		TestUtil.runEventLoop();
+	}
+
+	/**
+	 * Switches to and resets the specified perspective in the active workbench window.
+	 *
+	 * @return the window in which the perspective is ready
+	 */
+	protected IWorkbenchWindow resetPerspective(final String id) throws Exception {
+		final IWorkbenchWindow[] windows = new IWorkbenchWindow[1];
+		sync(() -> {
+			IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+			switchPerspective(window, id);
+			windows[0] = window;
+		});
+		return windows[0];
+	}
+
+	/**
+	 * Siwtches to and resets the debug perspective in the active workbench window.
+	 *
+	 * @return the window in which the perspective is ready
+	 */
+	protected IWorkbenchWindow resetDebugPerspective() throws Exception {
+		return resetPerspective(IDebugUIConstants.ID_DEBUG_PERSPECTIVE);
+	}
+
+	/**
+	 * Swtches to and resets the java perspective in the active workbench window.
+	 *
+	 * @return the window in which the perspective is ready
+	 */
+	protected IWorkbenchWindow resetJavaPerspective() throws Exception {
+		return resetPerspective(JavaUI.ID_PERSPECTIVE);
+	}
+
+	/**
+	 * Sync exec the given runnable, re-throwing exceptions in the current thread
+	 *
+	 * @param r
+	 * @throws Exception
+	 */
+	protected void sync(Runnable r) throws Exception {
+		AtomicReference<Exception> error = new AtomicReference<>();
+		DebugUIPlugin.getStandardDisplay().syncExec(() -> {
+			try {
+				r.run();
+			}
+			catch (Exception t) {
+				error.set(t);
+			}
+		});
+		if (error.get() != null) {
+			throw error.get();
+		}
+	}
+
+	/**
+	 * Sync exec the given runnable, re-throwing exceptions in the current thread
+	 *
+	 * @param c
+	 * @throws Exception
+	 */
+	protected <V> V sync(Callable<V> c) throws Exception {
+		AtomicReference<Throwable> error = new AtomicReference<>();
+		AtomicReference<V> result = new AtomicReference<>();
+		DebugUIPlugin.getStandardDisplay().syncExec(() -> {
+			try {
+				result.set(c.call());
+			}
+			catch (Throwable t) {
+				error.set(t);
+			}
+		});
+		if (error.get() != null) {
+			throwException(error.get());
+		}
+		return result.get();
+	}
+
+	/**
+	 * This and the another {@link #throwException1(Throwable)} method below are here to allow to catch AssertionFailedError's and other
+	 * non-Exceptions happened in the UI thread
+	 *
+	 * @param exception
+	 */
+	private static void throwException(Throwable exception) {
+		AbstractDebugUiTests.<RuntimeException> throwException1(exception);
+	}
+
+	/**
+	 * @param dummy to make compiler happy
+	 */
+	@SuppressWarnings("unchecked")
+	private static <T extends Throwable> void throwException1(Throwable exception) throws T {
+		throw (T) exception;
+	}
+
+	protected void processUiEvents(long millis) throws Exception {
+		Thread.sleep(millis);
+		if (Display.getCurrent() == null) {
+			sync(() -> TestUtil.runEventLoop());
+		} else {
+			TestUtil.runEventLoop();
+		}
+	}
+
+	protected IWorkbenchPage getActivePage() {
+		IWorkbench workbench = PlatformUI.getWorkbench();
+		IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
+		if (window == null) {
+			window = workbench.getWorkbenchWindows()[0];
+			Shell shell = window.getShell();
+			shell.moveAbove(null);
+			shell.setActive();
+			shell.forceActive();
+		}
+		return window.getActivePage();
+	}
+
+	protected IEditorPart openEditor(String type) throws Exception {
+		IFile resource = (IFile) getResource(type);
+		IEditorPart editor = IDE.openEditor(getActivePage(), resource);
+		assertNotNull(editor);
+		processUiEvents(100);
+		return editor;
+	}
+}
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/Accessor.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/Accessor.java
index 22b977f..6dfd7ed 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/Accessor.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/Accessor.java
@@ -20,7 +20,7 @@
 /**
  * Helper class for accessing classes and members which cannot be accessed using standard Java
  * access control like private or package visible elements.
- * 
+ *
  * @since 3.7
  */
 public class Accessor {
@@ -33,7 +33,7 @@
 	/**
 	 * Creates an accessor for the given <code>instance</code> and <code>class</code>. Only
 	 * non-inherited members that particular <code>class</code> can be accessed.
-	 * 
+	 *
 	 * @param instance
 	 *            the instance
 	 * @param clazz
@@ -49,7 +49,7 @@
 	/**
 	 * Creates an accessor for the given <code>instance</code> and <code>class</code>. Only
 	 * non-inherited members that particular <code>class</code> can be accessed.
-	 * 
+	 *
 	 * @param instance
 	 *            the instance
 	 * @param className
@@ -78,7 +78,7 @@
 	 * Object. Use {@link #Accessor(String, ClassLoader, Class[], Object[])} if this is not the
 	 * case.
 	 * </p>
-	 * 
+	 *
 	 * @param className
 	 *            the name of the class
 	 * @param classLoader
@@ -92,7 +92,7 @@
 
 	/**
 	 * Creates an accessor for the given class.
-	 * 
+	 *
 	 * @param className
 	 *            the name of the class
 	 * @param classLoader
@@ -138,7 +138,7 @@
 	 * <p>
 	 * This constructor is used to access static stuff.
 	 * </p>
-	 * 
+	 *
 	 * @param className
 	 *            the name of the class
 	 * @param classLoader
@@ -159,7 +159,7 @@
 	 * <p>
 	 * This constructor is used to access static stuff.
 	 * </p>
-	 * 
+	 *
 	 * @param clazz
 	 *            the class
 	 */
@@ -174,7 +174,7 @@
 	 * In order to get the type information from the given arguments all those arguments must be
 	 * instance of Object. Use {@link #invoke(String, Class[], Object[])} if this is not the case.
 	 * </p>
-	 * 
+	 *
 	 * @param methodName
 	 *            the method name
 	 * @param arguments
@@ -187,7 +187,7 @@
 
 	/**
 	 * Invokes the method with the given method name and arguments.
-	 * 
+	 *
 	 * @param methodName
 	 *            the method name
 	 * @param types
@@ -221,7 +221,7 @@
 
 	/**
 	 * Assigns the given value to the field with the given name.
-	 * 
+	 *
 	 * @param fieldName
 	 *            the field name
 	 * @param value
@@ -240,7 +240,7 @@
 
 	/**
 	 * Assigns the given value to the field with the given name.
-	 * 
+	 *
 	 * @param fieldName
 	 *            the field name
 	 * @param value
@@ -259,7 +259,7 @@
 
 	/**
 	 * Assigns the given value to the field with the given name.
-	 * 
+	 *
 	 * @param fieldName
 	 *            the field name
 	 * @param value
@@ -278,7 +278,7 @@
 
 	/**
 	 * Returns the value of the field with the given name.
-	 * 
+	 *
 	 * @param fieldName
 	 *            the field name
 	 * @return the value of the field
@@ -298,7 +298,7 @@
 
 	/**
 	 * Returns the value of the field with the given name.
-	 * 
+	 *
 	 * @param fieldName
 	 *            the field name
 	 * @return the value of the field
@@ -318,7 +318,7 @@
 
 	/**
 	 * Returns the value of the field with the given name.
-	 * 
+	 *
 	 * @param fieldName
 	 *            the field name
 	 * @return the value of the field
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/DebugViewPerspectiveFactory.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/DebugViewPerspectiveFactory.java
new file mode 100644
index 0000000..fe6cf11
--- /dev/null
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/DebugViewPerspectiveFactory.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ *  Copyright (c) 2017 Andrey Loskutov and others.
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *
+ *  Contributors:
+ *     Andrey Loskutov <loskutov@gmx.de> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jdt.debug.tests.ui;
+
+import org.eclipse.debug.internal.ui.IInternalDebugUIConstants;
+import org.eclipse.debug.ui.IDebugUIConstants;
+import org.eclipse.ui.IFolderLayout;
+import org.eclipse.ui.IPageLayout;
+import org.eclipse.ui.IPerspectiveFactory;
+import org.eclipse.ui.console.IConsoleConstants;
+
+/**
+ * The debug perspective factory for debug view tests
+ */
+public class DebugViewPerspectiveFactory implements IPerspectiveFactory {
+
+	public static final String ID = DebugViewPerspectiveFactory.class.getName();
+
+	@Override
+	public void createInitialLayout(IPageLayout layout) {
+		IFolderLayout rightFolder = layout.createFolder(IInternalDebugUIConstants.ID_TOOLS_FOLDER_VIEW, IPageLayout.LEFT, (float) 0.50, layout.getEditorArea());
+		rightFolder.addView(IDebugUIConstants.ID_DEBUG_VIEW);
+
+		IFolderLayout consoleFolder = layout.createFolder(IInternalDebugUIConstants.ID_CONSOLE_FOLDER_VIEW, IPageLayout.BOTTOM, (float) 0.65, layout.getEditorArea());
+		consoleFolder.addView(IPageLayout.ID_PROJECT_EXPLORER);
+		consoleFolder.addView(IConsoleConstants.ID_CONSOLE_VIEW);
+
+	}
+}
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/DetailPaneManagerTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/DetailPaneManagerTests.java
index 4055e3d..62bec77 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/DetailPaneManagerTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/DetailPaneManagerTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -37,12 +37,12 @@
  * The manager is responsible for the default detail pane contributed by the
  * platform and detail panes contributed at the org.eclipse.debug.ui.detailPaneFactories.
  * The manager must keep track of which is the preferred detail pane to display and
- * know what detail panes can be displayed for certain types of selections. 
+ * know what detail panes can be displayed for certain types of selections.
  */
 public class DetailPaneManagerTests extends AbstractDebugTest {
 
 	DetailPaneManager fManager;
-	
+
 	/**
 	 * Initializes the test class and gets the singleton detail pane manager.
 	 * @param name
@@ -68,20 +68,20 @@
 	public void testGetUserPreferredDetailPane() {
 		String id = fManager.getUserPreferredDetailPane(new HashSet<String>());
 		assertEquals("Incorrect pane ID", null, id);
-		
+
 		Set<String> detailPanes = new HashSet<String>();
 		detailPanes.add("NewPane1");
 		id = fManager.getUserPreferredDetailPane(detailPanes);
 		assertEquals("Incorrect pane ID", null, id);
-		
+
 		detailPanes.add("NewPane2");
 		id = fManager.getUserPreferredDetailPane(detailPanes);
 		assertEquals("Incorrect pane ID", null, id);
-		
+
 		detailPanes.add(DefaultDetailPane.ID);
 		id = fManager.getUserPreferredDetailPane(detailPanes);
 		assertEquals("Incorrect pane ID", null, id);
-		
+
 		detailPanes.clear();
 		detailPanes.add(DefaultDetailPane.ID);
 		id = fManager.getUserPreferredDetailPane(detailPanes);
@@ -96,22 +96,22 @@
 		fManager.setPreferredDetailPane(null, null);
 		String id = fManager.getUserPreferredDetailPane(null);
 		assertEquals("Incorrect pane ID", null, id);
-		
+
 		fManager.setPreferredDetailPane(null, "Example");
 		id = fManager.getUserPreferredDetailPane(null);
 		assertEquals("Incorrect pane ID", null, id);
-		
+
 		Set<String> detailPanes = new HashSet<String>();
 		detailPanes.add("Example1");
 		fManager.setPreferredDetailPane(detailPanes, "Example1");
 		id = fManager.getUserPreferredDetailPane(detailPanes);
 		assertEquals("Incorrect pane ID", "Example1", id);
-		
+
 		detailPanes.add("Example2");
 		fManager.setPreferredDetailPane(detailPanes, "Example2");
 		id = fManager.getUserPreferredDetailPane(detailPanes);
 		assertEquals("Incorrect pane ID", "Example2", id);
-		
+
 		detailPanes.add(DefaultDetailPane.ID);
 		id = fManager.getUserPreferredDetailPane(detailPanes);
 		assertEquals("Incorrect pane ID", null, id);
@@ -119,20 +119,20 @@
 		id = fManager.getUserPreferredDetailPane(detailPanes);
 		assertEquals("Incorrect pane ID", "Example2", id);
 	}
-	
+
 	/**
-	 * Tests that the manager can determine the preferred pane 
+	 * Tests that the manager can determine the preferred pane
 	 * given a selection.
 	 */
 	public void testGetPreferredPaneFromSelection() {
 		IStructuredSelection selection = null;
 		String id = fManager.getPreferredPaneFromSelection(selection);
 		assertEquals("Incorrect pane ID", DefaultDetailPane.ID, id);
-		
+
 		selection = new StructuredSelection();
 		id = fManager.getPreferredPaneFromSelection(selection);
 		assertEquals("Incorrect pane ID", DefaultDetailPane.ID, id);
-		
+
 		selection = new StructuredSelection(new String[]{"example selection"});
 		id = fManager.getPreferredPaneFromSelection(selection);
 		assertEquals("Incorrect pane ID", DefaultDetailPane.ID, id);
@@ -140,21 +140,21 @@
 		selection = new StructuredSelection(new IJavaVariable[]{new JDIPlaceholderVariable("test var",null)});
 		id = fManager.getPreferredPaneFromSelection(selection);
 		assertEquals("Incorrect pane ID", DefaultDetailPane.ID, id);
-		
+
 		// The factory sets the Table detail pane as the default if the first string is "test pane is default".
 		selection = new StructuredSelection(new String[]{"test pane is default","example selection"});
 		id = fManager.getPreferredPaneFromSelection(selection);
 		assertEquals("Incorrect pane ID", TableDetailPane.ID, id);
-		
+
 		selection = new StructuredSelection(new String[]{"test pane is default","example selection"});
 		fManager.setPreferredDetailPane(fManager.getAvailablePaneIDs(selection), DefaultDetailPane.ID);
 		id = fManager.getPreferredPaneFromSelection(selection);
 		assertEquals("Incorrect pane ID", DefaultDetailPane.ID, id);
-		
+
 		selection = new StructuredSelection(new String[]{"String1","String2","String3"});
 		id = fManager.getPreferredPaneFromSelection(selection);
 		assertEquals("Incorrect pane ID", DefaultDetailPane.ID, id);
-		
+
 		selection = new StructuredSelection(new JDIDebugElement[]{});
 		id = fManager.getPreferredPaneFromSelection(selection);
 		assertEquals("Incorrect pane ID", DefaultDetailPane.ID, id);
@@ -168,25 +168,25 @@
 		IStructuredSelection selection = null;
 		Set<String> result = fManager.getAvailablePaneIDs(selection);
 		assertTrue("Set was incorrect",result.size()==1 && result.contains(DefaultDetailPane.ID));
-		
+
 		selection = new StructuredSelection(new String[]{"example selection"});
 		result = fManager.getAvailablePaneIDs(selection);
 		assertTrue("Set was incorrect",result.size()==1 && result.contains(DefaultDetailPane.ID));
-		
+
 		selection = new StructuredSelection(new String[]{"test pane is default","example selection"});
 		result = fManager.getAvailablePaneIDs(selection);
 		assertTrue("Set was incorrect",result.size()==2 && result.contains(DefaultDetailPane.ID) && result.contains(TableDetailPane.ID));
-		
+
 		selection = new StructuredSelection(new Object[]{new JDIPlaceholderVariable("test var",null)});
 		result = fManager.getAvailablePaneIDs(selection);
 		assertTrue("Set was incorrect",result.size()==2 && result.contains(DefaultDetailPane.ID) && result.contains(SimpleDetailPane.ID));
-		
+
 		// Simple detail pane only available if selection has length of 1, containing a java variable
 		selection = new StructuredSelection(new Object[]{"String1",new JDIPlaceholderVariable("test var",null),"String3"});
 		result = fManager.getAvailablePaneIDs(selection);
 		assertTrue("Set was incorrect",result.size()==2 && result.contains(DefaultDetailPane.ID) && result.contains(TableDetailPane.ID));
 	}
-	
+
 	/**
 	 * Checks that the manager can query the correct factory to produce
 	 * a detail pane with the given ID.
@@ -194,13 +194,13 @@
 	public void testGetDetailPaneFromID() {
 		IDetailPane pane = fManager.getDetailPaneFromID(null);
 		assertNull("Incorrect pane returned",pane);
-		
+
 		pane = fManager.getDetailPaneFromID("ThisPaneDoesNotExist");
 		assertNull("Incorrect pane returned",pane);
-		
+
 		pane = fManager.getDetailPaneFromID(DefaultDetailPane.ID);
 		assertNotNull("Incorrect pane returned",pane);
-		
+
 		pane = fManager.getDetailPaneFromID(SimpleDetailPane.ID);
 		assertNotNull("Incorrect pane returned",pane);
 	}
@@ -212,16 +212,16 @@
 	public void testGetNameFromID() {
 		String name = fManager.getNameFromID(null);
 		assertEquals("Incorrect name returned",null,name);
-		
+
 		name = fManager.getNameFromID("ThisPaneDoesNotExist");
 		assertEquals("Incorrect name returned",null,name);
-		
+
 		name = fManager.getNameFromID(DefaultDetailPane.ID);
 		assertEquals("Incorrect name returned",DefaultDetailPane.NAME,name);
-		
+
 		name = fManager.getNameFromID(SimpleDetailPane.ID);
 		assertEquals("Incorrect name returned","Example Pane: Colorful Detail Pane",name);
-		
+
 	}
 
 	/**
@@ -231,13 +231,13 @@
 	public void testGetDescriptionFromID() {
 		String description = fManager.getDescriptionFromID(null);
 		assertEquals("Incorrect name returned",null,description);
-		
+
 		description = fManager.getDescriptionFromID("ThisPaneDoesNotExist");
 		assertEquals("Incorrect name returned",null,description);
-		
+
 		description = fManager.getDescriptionFromID(DefaultDetailPane.ID);
 		assertEquals("Incorrect name returned",DefaultDetailPane.DESCRIPTION,description);
-		
+
 		description = fManager.getDescriptionFromID(SimpleDetailPane.ID);
 		assertEquals("Incorrect name returned","Example pane that displays a color for variables depending on their access level.",description);
 	}
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/InstructionPointerManagerTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/InstructionPointerManagerTests.java
index 761ed71..ec5a30b 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/InstructionPointerManagerTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/InstructionPointerManagerTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -54,7 +54,7 @@
  * Tests functionality of the InstructionPointerManager.
  * The tests are not currently part of the automated suite because they produce
  * transient failures that could not be tracked down.
- * 
+ *
  * @since 3.3
  * @see InstructionPointerManager
  */
@@ -63,31 +63,31 @@
 	private Object fLock = new Object();
 	private Annotation fAddedAnnotation = null;
 	private Annotation fRemovedAnnotation = null;
-	
+
 	private MyPerspectiveListener fPerspectiveListener;
 	private MyAnnotationListener fAnnotationListener;
 	private IPartListener2 fPartListener;
 	private Set<IAnnotationModel> fAnnotationModelsWithListeners = new HashSet<IAnnotationModel>();
-	
+
 	private static final String typeThreadStack = "org.eclipse.debug.tests.targets.ThreadStack";
 	private static final String typeClassOne = "org.eclipse.debug.tests.targets.ClassOne";
 	private static final String typeClassTwo = "org.eclipse.debug.tests.targets.ClassTwo";
-	
+
 	private IJavaDebugTarget target1;
 	private IJavaDebugTarget target2;
 	private IJavaThread thread1;
 	private IJavaThread thread2;
 	private IJavaThread thread3;
 	private IJavaThread thread4;
-	
+
 	public InstructionPointerManagerTests(String name) {
 		super(name);
 	}
-	
+
 	public void testManagerWithEditorReuse() throws Exception{
 		boolean restore = DebugUIPlugin.getDefault().getPreferenceStore().getBoolean(IDebugUIConstants.PREF_REUSE_EDITOR);
 		DebugUIPlugin.getDefault().getPreferenceStore().setValue(IDebugUIConstants.PREF_REUSE_EDITOR, true);
-		
+
 		try{
 			addAndRemoveAnnotations(new int[]{1,2,1,2,1,0,1,1}, new int[]{1,1,1,1,1,0,1,1});
 		} finally {
@@ -112,14 +112,14 @@
                     activeWorkbenchWindow.removePerspectiveListener(getPerspectiveListener());
                 }
             };
-            DebugUIPlugin.getStandardDisplay().asyncExec(cleanup);	
+            DebugUIPlugin.getStandardDisplay().asyncExec(cleanup);
 		}
 	}
-	
+
 	public void testManagerWithNoEditorReuse() throws Exception{
 		boolean restore = DebugUIPlugin.getDefault().getPreferenceStore().getBoolean(IDebugUIConstants.PREF_REUSE_EDITOR);
 		DebugUIPlugin.getDefault().getPreferenceStore().setValue(IDebugUIConstants.PREF_REUSE_EDITOR, false);
-		
+
 		try{
 			addAndRemoveAnnotations(new int[]{1,2,3,4,5,3,2,1}, new int[]{1,1,2,2,3,2,2,1});
 		} finally {
@@ -144,23 +144,23 @@
                     activeWorkbenchWindow.removePerspectiveListener(getPerspectiveListener());
                 }
             };
-            DebugUIPlugin.getStandardDisplay().asyncExec(cleanup);	
+            DebugUIPlugin.getStandardDisplay().asyncExec(cleanup);
 		}
 	}
-	
+
 	/**
 	 * Tests the ability of the manager to update it's set and mapping as
 	 * annotations are added and removed.
-	 * 
+	 *
 	 * First, all editors are closed and the manager is checked to ensure there are 0 IPCs.
-	 * 
+	 *
 	 * <p>Next, annotations are created as follows:<br>
 	 * (numbers in brackets correspond to index of expected IPC and Mapping counts checked)
 	 * <pre>
 	 * Target1	- Thread1	- IPC1	- ClassOne		- Editor1 (line 20)	[0]
 	 *      	- Thread2	- IPC2	- ClassOne		- Editor1 (line 20)	[1]
 	 * 						- IPC3	- ThreadStack	- Editor2 (line 28)	[2]
-	 * 
+	 *
 	 * Target2	- Thread3	- IPC4	- ThreadStack	- Editor2 (line 41) [3]
 	 *      	- Thread4	- IPC5	- ClassTwo		- Editor3 (line 24) [4]
 	 * </pre>
@@ -181,7 +181,7 @@
 	private void addAndRemoveAnnotations(int[] expectedIPCCounts, int[] expectedMappingCounts) throws Exception{
 		assertEquals("Incorrect number of expected counts", 8, expectedIPCCounts.length);
 		assertEquals("Incorrect number of expected counts", 8, expectedMappingCounts.length);
-		
+
 		// Close all editors
 	    Runnable closeAll = new Runnable() {
             @Override
@@ -194,9 +194,9 @@
         DebugUIPlugin.getStandardDisplay().syncExec(closeAll);
         assertEquals("Instruction pointer count was incorrect", 0, InstructionPointerManager.getDefault().getInstructionPointerCount());
         assertEquals("Editor mapping count was incorrect", 0, InstructionPointerManager.getDefault().getEditorMappingCount());
-		         
+
         // ADD ANNOTATIONS
-        
+
         // Launch a target creating two threads, both suspend in ClassOne, one will automatically be selected
         IJavaLineBreakpoint breakpoint = createLineBreakpoint(20, typeClassOne);
         fAddedAnnotation = null;
@@ -208,7 +208,7 @@
         waitForAnnotationToBeAdded();
         assertEquals("Instruction pointer count was incorrect", expectedIPCCounts[0], InstructionPointerManager.getDefault().getInstructionPointerCount());
         assertEquals("Editor mapping count was incorrect", expectedMappingCounts[0], InstructionPointerManager.getDefault().getEditorMappingCount());
-        
+
         // Find and select the top stack frame of the other thread
         Runnable openParent = new Runnable() {
             @Override
@@ -239,7 +239,7 @@
         assertNotNull("Thread not selected",thread2);
         assertEquals("Instruction pointer count was incorrect", expectedIPCCounts[1], InstructionPointerManager.getDefault().getInstructionPointerCount());
         assertEquals("Editor mapping count was incorrect", expectedMappingCounts[1], InstructionPointerManager.getDefault().getEditorMappingCount());
-        
+
         // Select the same stack frame and make sure IPC count doesn't change
         Runnable selectSameStackFrame = new Runnable() {
             @Override
@@ -249,7 +249,7 @@
             	newSegments[0] = target1.getLaunch();
             	newSegments[1] = target1;
             	newSegments[2] = thread2;
-            	try { 
+            	try {
             		newSegments[3] = thread2.getTopStackFrame();
             	} catch (DebugException e) {
 					fail("Exception: " + e.getMessage());
@@ -263,7 +263,7 @@
         waitForAnnotationToBeAdded();
         assertEquals("Instruction pointer count was incorrect", expectedIPCCounts[1], InstructionPointerManager.getDefault().getInstructionPointerCount());
         assertEquals("Editor mapping count was incorrect", expectedMappingCounts[1], InstructionPointerManager.getDefault().getEditorMappingCount());
-        
+
         // Select the next stack frame in the same thread
         Runnable selectSecondStackFrame = new Runnable() {
             @Override
@@ -288,7 +288,7 @@
         // Failure here, reuse, expected 1 but was 2, also with no reuse, expected 3 but was 2
         assertEquals("Instruction pointer count was incorrect", expectedIPCCounts[2], InstructionPointerManager.getDefault().getInstructionPointerCount());
         assertEquals("Editor mapping count was incorrect", expectedMappingCounts[2], InstructionPointerManager.getDefault().getEditorMappingCount());
-	
+
         // Remove the breakpoint from before and create new ones, start a new target
         breakpoint.delete();
         createLineBreakpoint(41, typeThreadStack);
@@ -297,7 +297,7 @@
         assertNotNull("Target was not launched", target2);
         assertEquals("Instruction pointer count was incorrect", expectedIPCCounts[2], InstructionPointerManager.getDefault().getInstructionPointerCount());
         assertEquals("Editor mapping count was incorrect", expectedMappingCounts[2], InstructionPointerManager.getDefault().getEditorMappingCount());
-	
+
        // Select the stack frame from the new debug target displaying ThreadStack
        Runnable openOtherDebugTarget = new Runnable() {
             @Override
@@ -337,7 +337,7 @@
        waitForAnnotationToBeAdded();
        assertEquals("Instruction pointer count was incorrect", expectedIPCCounts[3], InstructionPointerManager.getDefault().getInstructionPointerCount());
        assertEquals("Editor mapping count was incorrect", expectedMappingCounts[3], InstructionPointerManager.getDefault().getEditorMappingCount());
-       
+
        // Select the other thread from the new target displaying ClassTwo
        Runnable openOtherThread = new Runnable() {
             @Override
@@ -370,7 +370,7 @@
        assertEquals("Editor mapping count was incorrect", expectedMappingCounts[4], InstructionPointerManager.getDefault().getEditorMappingCount());
 
        // REMOVE ANNOTATIONS
-       
+
        // Remove target2
        fRemovedAnnotation = null;
        target2.terminate();
@@ -379,7 +379,7 @@
        assertEquals("Editor mapping count was incorrect", expectedMappingCounts[5], InstructionPointerManager.getDefault().getEditorMappingCount());
 
        // TODO Selection of the other target does not occur automatically.  This functionality may change and will break this test.
-       
+
        // Resume thread1
        fRemovedAnnotation = null;
        thread1.resume();
@@ -423,7 +423,7 @@
        assertEquals("Instruction pointer count was incorrect", 0, InstructionPointerManager.getDefault().getInstructionPointerCount());
        assertEquals("Editor mapping count was incorrect", 0, InstructionPointerManager.getDefault().getEditorMappingCount());
 	}
-	
+
 	protected MyPerspectiveListener getPerspectiveListener(){
 		if (fPerspectiveListener == null){
 			fPerspectiveListener = new MyPerspectiveListener();
@@ -431,7 +431,7 @@
 		}
 		return fPerspectiveListener;
 	}
-	
+
 	protected MyAnnotationListener getAnnotationListener(){
 		if (fAnnotationListener == null){
 			fAnnotationListener = new MyAnnotationListener();
@@ -439,7 +439,7 @@
 		}
 		return fAnnotationListener;
 	}
-	
+
 	private IPartListener2 getPartListener(){
 		if (fPartListener == null){
 			fPartListener = new MyPartListener();
@@ -447,15 +447,15 @@
 		}
 		return fPartListener;
 	}
-	
+
 	private void waitForAnnotationToBeAdded() throws Exception{
 		synchronized (fLock) {
 		    if (fAddedAnnotation == null) {
 		        fLock.wait(5000);
 		    }
-        }		
+        }
 		assertNotNull("Annotation was not added properly");
-		
+
 		// Synchronize with the UI thread so we know that the annotations have finished
 		Runnable runner = new Runnable(){
 			@Override
@@ -465,15 +465,15 @@
 		};
 		DebugUIPlugin.getStandardDisplay().syncExec(runner);
 	}
-	
+
 	private void waitForAnnotationToBeRemoved() throws Exception{
 		synchronized (fLock) {
 		    if (fRemovedAnnotation == null) {
 		    	fLock.wait(5000);
 		    }
-        }		
+        }
 		assertNotNull("Annotation was not removed properly");
-		
+
 		// Synchronize with the UI thread so we know that the annotations have finished
 		Runnable runner = new Runnable(){
 			@Override
@@ -483,17 +483,17 @@
 		};
 		DebugUIPlugin.getStandardDisplay().syncExec(runner);
 	}
-	
+
 	class MyPerspectiveListener implements IPerspectiveListener2 {
 
 		private String fTypeName = IInternalDebugCoreConstants.EMPTY_STRING;
 		private String fTitle = IInternalDebugCoreConstants.EMPTY_STRING;
-		
+
 		@Override
 		public void perspectiveActivated(IWorkbenchPage page, IPerspectiveDescriptor perspective) {}
 		@Override
 		public void perspectiveChanged(IWorkbenchPage page, IPerspectiveDescriptor perspective, String changeId) {}
-			
+
 		/* (non-Javadoc)
 		 * @see org.eclipse.ui.IPerspectiveListener2#perspectiveChanged(org.eclipse.ui.IWorkbenchPage, org.eclipse.ui.IPerspectiveDescriptor, org.eclipse.ui.IWorkbenchPartReference, java.lang.String)
 		 */
@@ -508,7 +508,7 @@
         	        IAnnotationModel annModel = docProvider.getAnnotationModel(editorInput);
         	        if (annModel == null) {
         	            fail("Could not get the annotation model");
-        	        }  
+        	        }
         	        annModel.addAnnotationModelListener(getAnnotationListener());
         	        fAnnotationModelsWithListeners.add(annModel);
         		} else {
@@ -532,12 +532,12 @@
 				fTitle = typeName + ".java";
 			}
 		}
-		
+
 		public String getTypeName(){
 			return fTypeName;
 		}
 	}
-	
+
 	class MyPartListener implements IPartListener2{
 		@Override
 		public void partActivated(IWorkbenchPartReference partRef) {}
@@ -553,7 +553,7 @@
 		public void partBroughtToTop(IWorkbenchPartReference partRef) {}
 		@Override
 		public void partClosed(IWorkbenchPartReference partRef) {}
-	
+
 		/* (non-Javadoc)
 		 * @see org.eclipse.ui.IPartListener2#partInputChanged(org.eclipse.ui.IWorkbenchPartReference)
 		 */
@@ -567,7 +567,7 @@
     	        IAnnotationModel annModel = docProvider.getAnnotationModel(editorInput);
     	        if (annModel == null) {
     	            fail("Could not get the annotation model");
-    	        }  
+    	        }
     	        annModel.addAnnotationModelListener(getAnnotationListener());
     	        fAnnotationModelsWithListeners.add(annModel);
     		} else {
@@ -575,7 +575,7 @@
     		}
 		}
 	}
-	
+
 	class MyAnnotationListener implements IAnnotationModelListener, IAnnotationModelListenerExtension{
 
 		@Override
@@ -587,10 +587,10 @@
 						fAddedAnnotation = annotations[i];
 						fLock.notifyAll();
 						System.out.println("Annotation added to editor: " + fAddedAnnotation + " (" + this + ")" + event.getAnnotationModel());
-							
+
 					}
 				}
-			}	
+			}
 			annotations = event.getRemovedAnnotations();
 			for (int i = 0; i < annotations.length; i++) {
 				if (annotations[i] instanceof InstructionPointerAnnotation){
@@ -599,7 +599,7 @@
 						fLock.notifyAll();
 					}
 				}
-			}	
+			}
 		}
 
 		@Override
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/OpenFromClipboardTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/OpenFromClipboardTests.java
index 6fffdcc..4a3d594 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/OpenFromClipboardTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/OpenFromClipboardTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -587,8 +587,8 @@
 
 	public void testInvalidPattern_3() throws Exception {
 		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=426392#c6
-		String s = "java.lang.IllegalArgumentException\n" + 
-				"	at org.eclipse.core.runtime.Assert.isLegal(Assert.java:63)\n" + 
+		String s = "java.lang.IllegalArgumentException\n" +
+				"	at org.eclipse.core.runtime.Assert.isLegal(Assert.java:63)\n" +
 				"	at something.completely.Different(Different.java:47)";
 		assertEquals(INVALID, getMatachingPattern(s));
 	}
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/ViewManagementTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/ViewManagementTests.java
index d90cda4..bd5d010 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/ViewManagementTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/ViewManagementTests.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -13,16 +13,8 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.eclipse.debug.internal.core.IInternalDebugCoreConstants;
-import org.eclipse.debug.internal.ui.DebugUIPlugin;
-import org.eclipse.debug.internal.ui.IInternalDebugUIConstants;
-import org.eclipse.debug.ui.DebugUITools;
 import org.eclipse.debug.ui.IDebugUIConstants;
 import org.eclipse.jdt.debug.core.IJavaThread;
-import org.eclipse.jdt.debug.tests.AbstractDebugTest;
-import org.eclipse.jdt.ui.JavaUI;
-import org.eclipse.jface.dialogs.MessageDialogWithToggle;
-import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.test.OrderedTestSuite;
 import org.eclipse.ui.IPerspectiveDescriptor;
 import org.eclipse.ui.IPerspectiveListener3;
@@ -30,14 +22,13 @@
 import org.eclipse.ui.IWorkbenchPage;
 import org.eclipse.ui.IWorkbenchPartReference;
 import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
 
 import junit.framework.Test;
 
 /**
  * Tests view management.
  */
-public class ViewManagementTests extends AbstractDebugTest implements IPerspectiveListener3 {
+public class ViewManagementTests extends AbstractDebugUiTests implements IPerspectiveListener3 {
 
 	public static Test suite() {
 		return new OrderedTestSuite(ViewManagementTests.class);
@@ -57,24 +48,17 @@
 	public static final String VIEW_ONE = "org.eclipse.jdt.debug.tests.context.view.one";
 
 	private Object fEventLock = new Object();
-	
+
 	/**
 	 * List of view ids expecting to open.
 	 */
-	private List<String> fExpectingOpenEvents = new ArrayList<String>();
-	
+	private List<String> fExpectingOpenEvents = new ArrayList<>();
+
 	/**
 	 * List of view ids expecting to close.
 	 */
-	private List<String> fExpectingCloseEvents = new ArrayList<String>();	
-	
-	// prefs to restore
-	private String switch_on_launch;
-	private String switch_on_suspend;
-	private String debug_perspectives;
-	private String user_view_bindings;
-	private boolean activate_debug_view;
-	
+	private List<String> fExpectingCloseEvents = new ArrayList<>();
+
 	/**
 	 * Constructor
 	 * @param name
@@ -82,126 +66,41 @@
 	public ViewManagementTests(String name) {
 		super(name);
 	}
-		
-	/**
-	 * Switches to the specified perspective in the given window, and resets the perspective.
-	 * 
-	 * @param window
-	 * @param perspectiveId
-	 */
-	protected void switchPerspective(IWorkbenchWindow window, String perspectiveId) {
-		IPerspectiveDescriptor descriptor = PlatformUI.getWorkbench().getPerspectiveRegistry().findPerspectiveWithId(perspectiveId);
-		assertNotNull("missing perspective " + perspectiveId, descriptor);
-		IWorkbenchPage page = window.getActivePage();
-		page.setPerspective(descriptor);
-		page.resetPerspective();
-	}
-	
-	/**
-	 * Switches to and resets the specified perspective in the active workbench window.
-	 * 
-	 * @return the window in which the perspective is ready
-	 */
-	private IWorkbenchWindow resetPerspective(final String id) {
-		final IWorkbenchWindow[] windows = new IWorkbenchWindow[1];
-		Runnable r = new Runnable() {
-			@Override
-			public void run() {
-				IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-				switchPerspective(window, id);
-				windows[0] = window;
-			}
-		};
-		sync(r);
-		return windows[0];
-	}
-	
-	/**
-	 * Siwtches to and resets the debug perspective in the active workbench window.
-	 * 
-	 * @return the window in which the perspective is ready
-	 */
-	protected IWorkbenchWindow resetDebugPerspective() {
-		return resetPerspective(IDebugUIConstants.ID_DEBUG_PERSPECTIVE);
-	}
-	
-	/**
-	 * Siwtches to and resets the java perspective in the active workbench window.
-	 * 
-	 * @return the window in which the perspective is ready
-	 */
-	protected IWorkbenchWindow resetJavaPerspective() {
-		return resetPerspective(JavaUI.ID_PERSPECTIVE); 
-	}	
-	
-	/**
-	 * Sync exec the given runnable
-	 * 
-	 * @param r
-	 */
-	protected void sync(Runnable r) {
-		DebugUIPlugin.getStandardDisplay().syncExec(r);
-	}
-	
+
 	/**
 	 * Returns whether the specified view is open
-	 * 
+	 *
 	 * @param window
 	 * @param id
 	 * @return
 	 */
-	protected boolean isViewOpen(final IWorkbenchWindow window, final String id) {
+	protected boolean isViewOpen(final IWorkbenchWindow window, final String id) throws Exception {
 		final IViewReference[] refs = new IViewReference[1];
-		Runnable r = new Runnable() {
+		sync(new Runnable() {
 			@Override
 			public void run() {
 				refs[0] = window.getActivePage().findViewReference(id);
 			}
-		};
-		sync(r);
+		});
 		return refs[0] != null;
 	}
 
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
 	@Override
 	protected void setUp() throws Exception {
 		super.setUp();
-		IPreferenceStore preferenceStore = DebugUITools.getPreferenceStore();
-		switch_on_launch = preferenceStore.getString(IInternalDebugUIConstants.PREF_SWITCH_TO_PERSPECTIVE);
-		switch_on_suspend = preferenceStore.getString(IInternalDebugUIConstants.PREF_SWITCH_PERSPECTIVE_ON_SUSPEND);
-		debug_perspectives = preferenceStore.getString(IDebugUIConstants.PREF_MANAGE_VIEW_PERSPECTIVES);
-		user_view_bindings = preferenceStore.getString(IInternalDebugUIConstants.PREF_USER_VIEW_BINDINGS);
-		activate_debug_view = preferenceStore.getBoolean(IInternalDebugUIConstants.PREF_ACTIVATE_DEBUG_VIEW);
-		preferenceStore.setValue(IInternalDebugUIConstants.PREF_SWITCH_PERSPECTIVE_ON_SUSPEND, MessageDialogWithToggle.NEVER);
-		preferenceStore.setValue(IInternalDebugUIConstants.PREF_SWITCH_TO_PERSPECTIVE, MessageDialogWithToggle.NEVER);
-		preferenceStore.setValue(IDebugUIConstants.PREF_MANAGE_VIEW_PERSPECTIVES, IDebugUIConstants.ID_DEBUG_PERSPECTIVE + "," + 
-				JavaUI.ID_PERSPECTIVE + ",");
-		preferenceStore.setValue(IInternalDebugUIConstants.PREF_USER_VIEW_BINDINGS, IInternalDebugCoreConstants.EMPTY_STRING);
-		preferenceStore.setValue(IInternalDebugUIConstants.PREF_ACTIVATE_DEBUG_VIEW, true);
 		fExpectingOpenEvents.clear();
 		fExpectingCloseEvents.clear();
 	}
-	
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#tearDown()
-	 */
+
 	@Override
 	protected void tearDown() throws Exception {
 		super.tearDown();
-		IPreferenceStore preferenceStore = DebugUITools.getPreferenceStore();
-		preferenceStore.setValue(IInternalDebugUIConstants.PREF_SWITCH_PERSPECTIVE_ON_SUSPEND, switch_on_suspend);
-		preferenceStore.setValue(IInternalDebugUIConstants.PREF_SWITCH_TO_PERSPECTIVE, switch_on_launch);
-		preferenceStore.setValue(IDebugUIConstants.PREF_MANAGE_VIEW_PERSPECTIVES, debug_perspectives);
-		preferenceStore.setValue(IInternalDebugUIConstants.PREF_USER_VIEW_BINDINGS, user_view_bindings); 	
-		preferenceStore.setValue(IInternalDebugUIConstants.PREF_ACTIVATE_DEBUG_VIEW, activate_debug_view);
 	}
 
 	/**
 	 * Tests that context views auto-open in debug perspective.
 	 * Both context views should auto-open.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testAutoOpenDebugPerspective() throws Exception {
@@ -212,7 +111,7 @@
 		String typeName = "Breakpoints";
 		// first line in main
 		createLineBreakpoint(52, typeName);
-		
+
 		IJavaThread thread= null;
 		IWorkbenchWindow window = null;
 		try {
@@ -228,13 +127,13 @@
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 			window.removePerspectiveListener(this);
-		}		
+		}
 	}
-	
+
 	/**
 	 * Tests that context views auto-open in debug perspective, and auto close on termination.
 	 * View "two" should auto-close.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testAutoCloseDebugPerspective() throws Exception {
@@ -245,7 +144,7 @@
 		String typeName = "Breakpoints";
 		// first line in main
 		createLineBreakpoint(52, typeName);
-		
+
 		IJavaThread thread= null;
 		IWorkbenchWindow window = null;
 		try {
@@ -269,13 +168,13 @@
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 			window.removePerspectiveListener(this);
-		}		
+		}
 	}
-	
+
 	/**
 	 * Tests that context views auto-open in java perspective.
 	 * Both context views should auto-open as well as standard debug views.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testAutoOpenJavaPerspective() throws Exception {
@@ -286,7 +185,7 @@
 		String typeName = "Breakpoints";
 		// first line in main
 		createLineBreakpoint(52, typeName);
-		
+
 		IJavaThread thread= null;
 		IWorkbenchWindow window = null;
 		try {
@@ -307,13 +206,13 @@
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 			window.removePerspectiveListener(this);
-		}		
+		}
 	}
-	
+
 	/**
 	 * Tests that context views auto-open and close in java perspective.
 	 * All views should auto-close in non-standard debug perspective.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testAutoCloseJavaPerspective() throws Exception {
@@ -324,7 +223,7 @@
 		String typeName = "Breakpoints";
 		// first line in main
 		createLineBreakpoint(52, typeName);
-		
+
 		IJavaThread thread= null;
 		IWorkbenchWindow window = null;
 		try {
@@ -355,16 +254,16 @@
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 			window.removePerspectiveListener(this);
-		}		
+		}
 	}
-	
+
 	protected String buildRemainingEventsMessage() {
 		StringBuffer buffer = new StringBuffer();
 		partsMessage("Parts did not open: ", fExpectingOpenEvents, buffer);
 		partsMessage("Parts did not close: ", fExpectingCloseEvents, buffer);
 		return buffer.toString();
 	}
-	
+
 	private void partsMessage(String header, List<String> partIds, StringBuffer buffer) {
 		String[] ids = partIds.toArray(new String[partIds.size()]);
 		if (ids.length > 0) {
@@ -375,12 +274,12 @@
 					buffer.append(", ");
 				}
 			}
-		}		
+		}
 	}
-	
+
 	/**
 	 * Adds ids of views to 'expecting open' queue.
-	 * 
+	 *
 	 * @param window
 	 * @param viewIds
 	 */
@@ -390,10 +289,10 @@
 		}
 		window.addPerspectiveListener(this);
 	}
-	
+
 	/**
 	 * Adds ids of views to 'expecting open' queue.
-	 * 
+	 *
 	 * @param window
 	 * @param viewIds
 	 */
@@ -402,7 +301,7 @@
 			fExpectingCloseEvents.add(viewIds[i]);
 		}
 		window.addPerspectiveListener(this);
-	}	
+	}
 
 	/**
 	 * @see org.eclipse.ui.IPerspectiveListener3#perspectiveOpened(org.eclipse.ui.IWorkbenchPage, org.eclipse.ui.IPerspectiveDescriptor)
@@ -459,7 +358,7 @@
 	@Override
 	public void perspectiveChanged(IWorkbenchPage page, IPerspectiveDescriptor perspective, String changeId) {
 	}
-	
+
 	/**
 	 * Check if all expected events have occurred.
 	 */
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/performance/JavaApplicationStatusHandler.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/performance/JavaApplicationStatusHandler.java
index ec767e6..fea1c5b 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/performance/JavaApplicationStatusHandler.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/performance/JavaApplicationStatusHandler.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/performance/OpenLaunchConfigurationDialogTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/performance/OpenLaunchConfigurationDialogTests.java
index acaaba4..11e0e16 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/performance/OpenLaunchConfigurationDialogTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/performance/OpenLaunchConfigurationDialogTests.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -36,10 +36,10 @@
     }
 
     /**
-     * The local java application id 
+     * The local java application id
      */
     public static String fgIdentifier= "org.eclipse.jdt.launching.localJavaApplication";
-    
+
     /**
      * Tests opening the LCD on a given launch configuration on the java tab group 100 times
      */
@@ -48,13 +48,13 @@
         ILaunchConfiguration config = getLaunchConfiguration("Breakpoints");
 		IStructuredSelection selection= new StructuredSelection(config);
 		for (int i = 0; i < 100; i++) {
-		    openLCD(selection, fgIdentifier); 
+		    openLCD(selection, fgIdentifier);
         }
-		
+
 		commitMeasurements();
 		assertPerformance();
     }
-    
+
     /**
      * Tests opening the LCD on a specific launch configuration on the java tab group 1 time
      */
@@ -72,7 +72,7 @@
      */
     private void openLCD(final IStructuredSelection selection, final String groupIdentifier) {
         //set a status to go to the classpath tab
-	    IStatus status = new Status(IStatus.INFO, IJavaDebugUIConstants.PLUGIN_ID, 1000, IInternalDebugCoreConstants.EMPTY_STRING, null); 
+	    IStatus status = new Status(IStatus.INFO, IJavaDebugUIConstants.PLUGIN_ID, 1000, IInternalDebugCoreConstants.EMPTY_STRING, null);
 		LaunchConfigurationsDialog dialog= new LaunchConfigurationsDialog(DebugUIPlugin.getShell(), DebugUIPlugin.getDefault().getLaunchConfigurationManager().getLaunchGroup(groupIdentifier));
 		dialog.setBlockOnOpen(false);
 		dialog.setOpenMode(LaunchConfigurationsDialog.LAUNCH_CONFIGURATION_DIALOG_OPEN_ON_SELECTION);
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/presentation/ModelPresentationTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/presentation/ModelPresentationTests.java
index 66bbc01..375d9df 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/presentation/ModelPresentationTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/presentation/ModelPresentationTests.java
@@ -17,7 +17,7 @@
 

 /**

  * Tests for some of the methods of the model presentation

- * 

+ *

  * @see JDIModelPresentation

  */

 public class ModelPresentationTests extends AbstractDebugTest {

@@ -32,7 +32,7 @@
 	/**

 	 * Tests that the type signature + value signatures do not cause problems when the values are "&lt;unknown&gt;" - this

 	 * case arises when you manually suspend a VM and try to inspect / view object values

-	 * 

+	 *

 	 * @throws Exception

 	 */

 	public void testUnknownValueText() throws Exception {

@@ -48,11 +48,11 @@
 			pres.dispose();

 		}

 	}

-	

+

 	/**

-	 * Tests passing all <code>null</code>s in for type information - should get an NPE 

+	 * Tests passing all <code>null</code>s in for type information - should get an NPE

 	 * from {@link JDIModelPresentation#getValueText(org.eclipse.jdt.debug.core.IJavaValue)}

-	 * 

+	 *

 	 * @throws Exception

 	 */

 	public void testAllNullValueText() throws Exception {

@@ -70,10 +70,10 @@
 			pres.dispose();

 		}

 	}

-	

+

 	/**

 	 * Tests getting the value text for a simple String type

-	 * 

+	 *

 	 * @throws Exception

 	 */

 	public void testSimpleStringValueText() throws Exception {

@@ -90,10 +90,10 @@
 			pres.dispose();

 		}

 	}

-	

+

 	/**

 	 * Tests getting the value text for a simple String type

-	 * 

+	 *

 	 * @throws Exception

 	 */

 	public void testResolvedStringValueText() throws Exception {

@@ -110,10 +110,10 @@
 			pres.dispose();

 		}

 	}

-	

+

 	/**

 	 * Tests a simple array value text

-	 * 

+	 *

 	 * @throws Exception

 	 */

 	public void testSimpleArrayValueText() throws Exception {

diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/presentation/TestIJavaArrayValue.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/presentation/TestIJavaArrayValue.java
index 1642a20..376d0d2 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/presentation/TestIJavaArrayValue.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/presentation/TestIJavaArrayValue.java
@@ -17,13 +17,13 @@
 import org.eclipse.jdt.debug.core.IJavaValue;

 

 /**

- * 

+ *

  */

 public class TestIJavaArrayValue extends TestIJavaObjectValue implements IJavaArray {

 

 	int size = 0;

 	IJavaValue[] values;

-	

+

 	/**

 	 * Constructor

 	 * @param type

@@ -31,7 +31,7 @@
 	 * @param gsig

 	 * @param rtname

 	 * @param vstring

-	 * @param size 

+	 * @param size

 	 */

 	public TestIJavaArrayValue(IJavaType type, String sig, String gsig,	String rtname, String vstring, int size) {

 		super(type, sig, gsig, rtname, vstring);

diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/presentation/TestIJavaObjectValue.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/presentation/TestIJavaObjectValue.java
index 23c39a6..b3d1ad3 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/presentation/TestIJavaObjectValue.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/presentation/TestIJavaObjectValue.java
@@ -18,7 +18,7 @@
 import org.eclipse.jdt.debug.core.IJavaValue;

 

 /**

- * 

+ *

  */

 public class TestIJavaObjectValue extends TestIJavaValue implements IJavaObject {

 

diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/presentation/TestIJavaType.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/presentation/TestIJavaType.java
index ed2548a..ca45917 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/presentation/TestIJavaType.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/presentation/TestIJavaType.java
@@ -23,13 +23,13 @@
 

 	String name;

 	String sig;

-	

+

 	public TestIJavaType(String name, String sig) {

 		this.name = name;

 		this.sig = sig;

-		

+

 	}

-	

+

 	/* (non-Javadoc)

 	 * @see org.eclipse.debug.core.model.IDebugElement#getModelIdentifier()

 	 */

diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/presentation/TestIJavaValue.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/presentation/TestIJavaValue.java
index 3ee583f..071b341 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/presentation/TestIJavaValue.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/presentation/TestIJavaValue.java
@@ -19,7 +19,7 @@
 import org.eclipse.jdt.debug.core.JDIDebugModel;

 

 /**

- * 

+ *

  */

 public class TestIJavaValue implements IJavaValue {

 

@@ -28,7 +28,7 @@
 	String gsig;

 	String rtname;

 	String vstring;

-	

+

 	public TestIJavaValue(IJavaType type, String sig, String gsig, String rtname, String vstring) {

 		this.type = type;

 		this.sig = sig;

diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/DetailFormatterTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/DetailFormatterTests.java
index 0e3f8a8..e31a48a 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/DetailFormatterTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/DetailFormatterTests.java
@@ -23,29 +23,29 @@
 
 /**
  * Tests detail formatters
- * 
+ *
  * @since 3.8.100
  */
 public class DetailFormatterTests extends AbstractDebugTest {
-	
+
 	class TestListener implements IValueDetailListener {
 		IValue value;
 		String result;
-		
+
 		@Override
 		public void detailComputed(IValue value, String result) {
 			this.value = value;
 			this.result = result;
 		}
-		
+
 		void reset() {
 			value = null;
 			result = null;
 		}
 	}
-	
+
 	TestListener fListener = new TestListener();
-	
+
 	/**
 	 * @param name
 	 */
@@ -57,13 +57,13 @@
 	protected IJavaProject getProjectContext() {
 		return get15Project();
 	}
-	
+
 	@Override
 	protected void tearDown() throws Exception {
 		fListener.reset();
 		super.tearDown();
 	}
-	
+
 	/**
 	 * Tests a detail formatter made from a large compound expression
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=403028
@@ -104,7 +104,7 @@
 				Thread.sleep(100);
 			}
 			assertNotNull("The IValue of the detailComputed callback cannot be null", fListener.value);
-			assertTrue("The map should be an instance of java.util.LinkedHashMap", 
+			assertTrue("The map should be an instance of java.util.LinkedHashMap",
 					Signature.getTypeErasure(fListener.value.getReferenceTypeName()).equals("java.util.LinkedHashMap"));
 			assertNotNull("The computed value of the detail should not be null", fListener.result);
 		}
@@ -114,7 +114,7 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * Tests a detail formatter made from a small compound expression
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=403028
@@ -142,7 +142,7 @@
 				Thread.sleep(100);
 			}
 			assertNotNull("The IValue of the detailComputed callback cannot be null", fListener.value);
-			assertTrue("The map should be an instance of java.util.LinkedHashMap", 
+			assertTrue("The map should be an instance of java.util.LinkedHashMap",
 					Signature.getTypeErasure(fListener.value.getReferenceTypeName()).equals("java.util.LinkedHashMap"));
 			assertNotNull("The computed value of the detail should not be null", fListener.result);
 		}
@@ -152,7 +152,7 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * Tests a detail formatter made from a small compound expression
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=403028
@@ -178,7 +178,7 @@
 				Thread.sleep(100);
 			}
 			assertNotNull("The IValue of the detailComputed callback cannot be null", fListener.value);
-			assertTrue("The map should be an instance of java.util.LinkedHashMap", 
+			assertTrue("The map should be an instance of java.util.LinkedHashMap",
 					Signature.getTypeErasure(fListener.value.getReferenceTypeName()).equals("java.util.LinkedHashMap"));
 			assertNotNull("The computed value of the detail should not be null", fListener.result);
 		}
@@ -188,7 +188,7 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * Tests a detail formatter made from a small compound expression
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=403028
@@ -214,7 +214,7 @@
 				Thread.sleep(100);
 			}
 			assertNotNull("The IValue of the detailComputed callback cannot be null", fListener.value);
-			assertTrue("The map should be an instance of java.util.LinkedHashMap", 
+			assertTrue("The map should be an instance of java.util.LinkedHashMap",
 					Signature.getTypeErasure(fListener.value.getReferenceTypeName()).equals("java.util.LinkedHashMap"));
 			assertNotNull("The computed value of the detail should not be null", fListener.result);
 		}
@@ -224,7 +224,7 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * Tests a detail formatter made from an infix expression
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=403028
@@ -250,10 +250,10 @@
 				Thread.sleep(100);
 			}
 			assertNotNull("The IValue of the detailComputed callback cannot be null", fListener.value);
-			assertTrue("The map should be an instance of java.util.LinkedHashMap", 
+			assertTrue("The map should be an instance of java.util.LinkedHashMap",
 					Signature.getTypeErasure(fListener.value.getReferenceTypeName()).equals("java.util.LinkedHashMap"));
 			assertNotNull("The computed value of the detail should not be null", fListener.result);
-			assertTrue("The returned value from (true && true || !(false&&true) || !(true==true||true!=true&&true)) should be true", 
+			assertTrue("The returned value from (true && true || !(false&&true) || !(true==true||true!=true&&true)) should be true",
 					Boolean.parseBoolean(fListener.result));
 		}
 		finally {
@@ -262,7 +262,7 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * Tests a detail formatter made from an infix expression
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=403028
@@ -288,7 +288,7 @@
 				Thread.sleep(100);
 			}
 			assertNotNull("The IValue of the detailComputed callback cannot be null", fListener.value);
-			assertTrue("The map should be an instance of java.util.LinkedHashMap", 
+			assertTrue("The map should be an instance of java.util.LinkedHashMap",
 					Signature.getTypeErasure(fListener.value.getReferenceTypeName()).equals("java.util.LinkedHashMap"));
 			assertNotNull("The computed value of the detail should not be null", fListener.result);
 			assertFalse("The returned value from !true should be false", Boolean.parseBoolean(fListener.result));
@@ -299,7 +299,7 @@
 			removeAllBreakpoints();
 		}
 	}
-	
+
 	/**
 	 * Tests a detail formatter made from an infix expression
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=403028
@@ -325,7 +325,7 @@
 				Thread.sleep(100);
 			}
 			assertNotNull("The IValue of the detailComputed callback cannot be null", fListener.value);
-			assertTrue("The map should be an instance of java.util.LinkedHashMap", 
+			assertTrue("The map should be an instance of java.util.LinkedHashMap",
 					Signature.getTypeErasure(fListener.value.getReferenceTypeName()).equals("java.util.LinkedHashMap"));
 			assertNotNull("The computed value of the detail should not be null", fListener.result);
 			assertFalse("The returned value from !(true==true||true!=true&&true) should be false", Boolean.parseBoolean(fListener.result));
@@ -339,7 +339,7 @@
 
 	/**
 	 * Tests a detail formatter made from an collection with no type arguments
-	 * 
+	 *
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=484686
 	 * @throws Exception
 	 */
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/TestAnonymousInspect.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/TestAnonymousInspect.java
index 2bf718c..128f993 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/TestAnonymousInspect.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/TestAnonymousInspect.java
@@ -21,28 +21,28 @@
 import org.eclipse.jdt.internal.debug.eval.ast.engine.ASTEvaluationEngine;
 
 /**
- * Tests launching / suspending and evaluating within anonymous 
+ * Tests launching / suspending and evaluating within anonymous
  * types
  */
 public class TestAnonymousInspect extends AbstractDebugTest {
 
-	static final String TYPE_NAME = "InspectTests"; 
+	static final String TYPE_NAME = "InspectTests";
 	static final String SNIPPET = "getchar()";
-	
+
 	class Listener implements IEvaluationListener {
 		IEvaluationResult fResult;
-		
+
 		@Override
 		public void evaluationComplete(IEvaluationResult result) {
 			fResult= result;
 		}
-		
+
 		public IEvaluationResult getResult() {
 			return fResult;
 		}
 	}
 	Listener listener= new Listener();
-	
+
 	/**
 	 * Constructor
 	 */
@@ -58,7 +58,7 @@
 		super.setUp();
 		createLaunchConfiguration(get14Project(), TYPE_NAME);
 	}
-	
+
 	/**
 	 * Perform the actual evaluation (inspect)
 	 * @param thread
@@ -82,11 +82,11 @@
 			engine.dispose();
 		}
 	}
-	
+
 	/**
 	 * Tests that we can successfully inspect a method call from an anonymous type declaration that is assigned
 	 * to a field
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testInspectInAnonField() throws Exception {
@@ -106,11 +106,11 @@
 			listener.fResult = null;
 		}
 	}
-	
+
 	/**
 	 * Tests that we can successfully inspect a method call from an anonymous type declaration within a method
 	 * declaration
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testInspectInAnonMethod() throws Exception {
@@ -130,11 +130,11 @@
 			listener.fResult = null;
 		}
 	}
-	
+
 	/**
 	 * Tests that we can successfully inspect a method call from an anonymous type declaration within a static
-	 * initializer 
-	 * 
+	 * initializer
+	 *
 	 * @throws Exception
 	 */
 	public void testInspectInAnonInitializer() throws Exception {
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/TestInstanceRetrieval.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/TestInstanceRetrieval.java
index d494d61..13c76aa 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/TestInstanceRetrieval.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/TestInstanceRetrieval.java
@@ -27,16 +27,16 @@
 
 	/**
 	 * Constructs test.
-	 * 
+	 *
 	 * @param name test name
 	 */
 	public TestInstanceRetrieval(String name) {
 		super(name);
 	}
-	
+
 	/**
 	 * Test the logical structure for a list.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testGetInstances() throws Exception {
@@ -49,39 +49,39 @@
 			IJavaDebugTarget target = (IJavaDebugTarget) thread.getDebugTarget();
 			if (target.supportsInstanceRetrieval()) {
 				assertNotNull("Breakpoint not hit within timeout period", thread);
-				
+
 				IBreakpoint hit = getBreakpoint(thread);
 				assertNotNull("suspended, but not by breakpoint", hit);
-	
+
 				IJavaStackFrame frame = (IJavaStackFrame) thread.getTopStackFrame();
 				assertNotNull("missing top frame", frame);
-				
+
 				IJavaVariable variable = frame.findVariable("ro");
 				assertNotNull("Missing variable 'ro'", variable);
-				
+
 				IJavaObject object = (IJavaObject) variable.getValue();
 				IJavaReferenceType refType = (IJavaReferenceType) object.getJavaType();
 				long instanceCount = refType.getInstanceCount();
 				IJavaObject[] instances = refType.getInstances(100);
-				
+
 				assertEquals("Wrong instance count", 13, instanceCount);
 				assertEquals("Wrong number of instances", 13, instances.length);
 				for (int i = 0; i < instances.length; i++) {
 					assertEquals("Instance is of unexpected type", refType, instances[i].getJavaType());
 				}
-				
+
 				thread = resumeToLineBreakpoint(thread, bp2);
 				frame = (IJavaStackFrame) thread.getTopStackFrame();
 				assertNotNull("missing top frame", frame);
-				
+
 				variable = frame.findVariable("rc");
 				assertNotNull("Missing variable 'rc'", variable);
-				
+
 				object = (IJavaObject) variable.getValue();
 				refType = (IJavaReferenceType) object.getJavaType();
 				instanceCount = refType.getInstanceCount();
 				instances = refType.getInstances(100);
-				
+
 				assertEquals("Wrong instance count", 1002, instanceCount);
 				assertEquals("Wrong number of instances", 100, instances.length);
 				for (int i = 0; i < instances.length; i++) {
@@ -91,7 +91,7 @@
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}				
-	}	
+		}
+	}
 
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/TestIntegerAccessUnboxing15.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/TestIntegerAccessUnboxing15.java
index dd82c34..f0180dc 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/TestIntegerAccessUnboxing15.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/TestIntegerAccessUnboxing15.java
@@ -31,9 +31,9 @@
 	public TestIntegerAccessUnboxing15(String name) {
 		super(name);
 	}
-	
+
 	class Listener implements IEvaluationListener {
-		
+
 		private Object lock = new Object();
 		private IEvaluationResult endresult;
 
@@ -47,7 +47,7 @@
 				lock.notifyAll();
 			}
 		}
-		
+
 		IEvaluationResult getResult() throws Exception {
 			synchronized (lock) {
 				if (endresult == null) {
@@ -59,9 +59,9 @@
 			}
 			return endresult;
 		}
-		
+
 	}
-	
+
 	public void doAccessTest(String snippet, int expected) throws Exception {
 		IJavaThread thread= null;
 		IAstEvaluationEngine engine = null;
@@ -70,11 +70,11 @@
 		try {
 			thread= launchToBreakpoint(get15Project(), typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			IBreakpoint hit = getBreakpoint(thread);
 			assertNotNull("suspended, but not by breakpoint", hit);
 			IJavaDebugTarget target = (IJavaDebugTarget) thread.getDebugTarget();
-			
+
 			IJavaStackFrame frame = (IJavaStackFrame) thread.getTopStackFrame();
 			engine = EvaluationManager.newAstEvaluationEngine(get15Project(), target);
 			Listener listener = new Listener();
@@ -89,8 +89,8 @@
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 		}
-	}	
-	
+	}
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.debug.tests.AbstractDebugTest#getProjectContext()
 	 */
@@ -98,19 +98,19 @@
 	protected IJavaProject getProjectContext() {
 		return get15Project();
 	}
-	
+
 	/**
 	 * Test a row can be accessed
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testRowAccess() throws Exception {
 		doAccessTest("matrix[new Integer(0)][0]", 1);
 	}
-	
+
 	/**
 	 * Test a column can be accessed.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testColumnAccess() throws Exception {
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/TestLogicalStructures.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/TestLogicalStructures.java
index 8a212b7..d5cfbfc 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/TestLogicalStructures.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/TestLogicalStructures.java
@@ -29,16 +29,16 @@
 
 	/**
 	 * Constructs test.
-	 * 
+	 *
 	 * @param name test name
 	 */
 	public TestLogicalStructures(String name) {
 		super(name);
 	}
-	
+
 	/**
 	 * Test the logical structure for a list.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testListLogicalStructure() throws Exception {
@@ -48,35 +48,35 @@
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			IBreakpoint hit = getBreakpoint(thread);
 			assertNotNull("suspended, but not by breakpoint", hit);
 
 			IJavaStackFrame frame = (IJavaStackFrame) thread.getTopStackFrame();
 			assertNotNull("missing top frame", frame);
-			
+
 			IJavaVariable variable = frame.findVariable("list");
 			assertNotNull("Missing variable 'list'", variable);
-			
+
 			IValue value = variable.getValue();
 			ILogicalStructureType[] types = DebugPlugin.getLogicalStructureTypes(value);
 			assertEquals("Should be one logical structure type", 1, types.length);
-			
+
 			IJavaObject logicalValue = (IJavaObject) types[0].getLogicalStructure(value);
 			assertEquals("Logical value should be an array", "java.lang.Object[]", logicalValue.getJavaType().getName());
-			
+
 			IJavaArray array = (IJavaArray) logicalValue;
 			assertEquals("Should be two elements in the structure", 2, array.getLength());
-			
+
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}				
+		}
 	}
 
 	/**
 	 * Test the logical structure for a map.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testMapLogicalStructure() throws Exception {
@@ -86,35 +86,35 @@
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			IBreakpoint hit = getBreakpoint(thread);
 			assertNotNull("suspended, but not by breakpoint", hit);
 
 			IJavaStackFrame frame = (IJavaStackFrame) thread.getTopStackFrame();
 			assertNotNull("missing top frame", frame);
-			
+
 			IJavaVariable variable = frame.findVariable("map");
 			assertNotNull("Missing variable 'map'", variable);
-			
+
 			IValue value = variable.getValue();
 			ILogicalStructureType[] types = DebugPlugin.getLogicalStructureTypes(value);
 			assertEquals("Should be one logical structure type", 1, types.length);
-			
+
 			IJavaObject logicalValue = (IJavaObject) types[0].getLogicalStructure(value);
 			assertEquals("Logical value should be an array", "java.lang.Object[]", logicalValue.getJavaType().getName());
-			
+
 			IJavaArray array = (IJavaArray) logicalValue;
 			assertEquals("Should be two elements in the structure", 2, array.getLength());
-			
+
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}				
-	}	
-	
+		}
+	}
+
 	/**
 	 * Test the logical structure for a map entry.
-	 * 
+	 *
 	 * @throws Exception
 	 */
 	public void testEntryLogicalStructure() throws Exception {
@@ -124,29 +124,29 @@
 		try {
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
-			
+
 			IBreakpoint hit = getBreakpoint(thread);
 			assertNotNull("suspended, but not by breakpoint", hit);
 
 			IJavaStackFrame frame = (IJavaStackFrame) thread.getTopStackFrame();
 			assertNotNull("missing top frame", frame);
-			
+
 			IJavaVariable variable = frame.findVariable("entry");
 			assertNotNull("Missing variable 'entry'", variable);
-			
+
 			IValue value = variable.getValue();
 			ILogicalStructureType[] types = DebugPlugin.getLogicalStructureTypes(value);
 			assertEquals("Should be one logical structure type", 1, types.length);
-			
+
 			IJavaObject logicalValue = (IJavaObject) types[0].getLogicalStructure(value);
 			IVariable[] children = logicalValue.getVariables();
 			assertEquals("Should be two elements in the structure", 2, children.length);
 			assertEquals("First entry should be key", "key", children[0].getName());
 			assertEquals("Second entry should be value", "value", children[1].getName());
-			
+
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
-		}				
-	}	
+		}
+	}
 }
diff --git a/org.eclipse.jdt.debug.ui/.settings/.api_filters b/org.eclipse.jdt.debug.ui/.settings/.api_filters
index f23a01b..2a6baac 100644
--- a/org.eclipse.jdt.debug.ui/.settings/.api_filters
+++ b/org.eclipse.jdt.debug.ui/.settings/.api_filters
@@ -1,43 +1,35 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>

-<component id="org.eclipse.jdt.debug.ui" version="2">

-    <resource path="ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaClasspathTab.java" type="org.eclipse.jdt.debug.ui.launchConfigurations.JavaClasspathTab">

-        <filter comment="Known illegal extension" id="576720909">

-            <message_arguments>

-                <message_argument value="AbstractJavaClasspathTab"/>

-                <message_argument value="JavaClasspathTab"/>

-            </message_arguments>

-        </filter>

-    </resource>

-    <resource path="ui/org/eclipse/jdt/internal/debug/ui/classpath/ClasspathEntry.java" type="org.eclipse.jdt.internal.debug.ui.classpath.ClasspathEntry">

-        <filter comment="Known illegal implementation" id="574619656">

-            <message_arguments>

-                <message_argument value="IRuntimeClasspathEntry"/>

-                <message_argument value="ClasspathEntry"/>

-            </message_arguments>

-        </filter>

-    </resource>

-    <resource path="ui/org/eclipse/jdt/internal/debug/ui/classpath/RuntimeClasspathViewer.java" type="org.eclipse.jdt.internal.debug.ui.classpath.RuntimeClasspathViewer">

-        <filter comment="Known illegal extension" id="571473929">

-            <message_arguments>

-                <message_argument value="TreeViewer"/>

-                <message_argument value="RuntimeClasspathViewer"/>

-            </message_arguments>

-        </filter>

-    </resource>

-    <resource path="ui/org/eclipse/jdt/internal/debug/ui/display/DisplayViewerConfiguration.java" type="org.eclipse.jdt.internal.debug.ui.display.DisplayViewerConfiguration">

-        <filter id="571473929">

-            <message_arguments>

-                <message_argument value="JavaSourceViewerConfiguration"/>

-                <message_argument value="DisplayViewerConfiguration"/>

-            </message_arguments>

-        </filter>

-    </resource>

-    <resource path="ui/org/eclipse/jdt/internal/debug/ui/launcher/AppletSelectionDialog.java" type="org.eclipse.jdt.internal.debug.ui.launcher.AppletSelectionDialog$PackageRenderer">

-        <filter comment="known API usage" id="571473929">

-            <message_arguments>

-                <message_argument value="JavaElementLabelProvider"/>

-                <message_argument value="PackageRenderer"/>

-            </message_arguments>

-        </filter>

-    </resource>

-</component>

+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<component id="org.eclipse.jdt.debug.ui" version="2">
+    <resource path="ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaClasspathTab.java" type="org.eclipse.jdt.debug.ui.launchConfigurations.JavaClasspathTab">
+        <filter comment="Known illegal extension" id="576720909">
+            <message_arguments>
+                <message_argument value="AbstractJavaClasspathTab"/>
+                <message_argument value="JavaClasspathTab"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="ui/org/eclipse/jdt/internal/debug/ui/classpath/ClasspathEntry.java" type="org.eclipse.jdt.internal.debug.ui.classpath.ClasspathEntry">
+        <filter comment="Known illegal implementation" id="574619656">
+            <message_arguments>
+                <message_argument value="IRuntimeClasspathEntry"/>
+                <message_argument value="ClasspathEntry"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="ui/org/eclipse/jdt/internal/debug/ui/display/DisplayViewerConfiguration.java" type="org.eclipse.jdt.internal.debug.ui.display.DisplayViewerConfiguration">
+        <filter id="571473929">
+            <message_arguments>
+                <message_argument value="JavaSourceViewerConfiguration"/>
+                <message_argument value="DisplayViewerConfiguration"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="ui/org/eclipse/jdt/internal/debug/ui/launcher/AppletSelectionDialog.java" type="org.eclipse.jdt.internal.debug.ui.launcher.AppletSelectionDialog$PackageRenderer">
+        <filter comment="known API usage" id="571473929">
+            <message_arguments>
+                <message_argument value="JavaElementLabelProvider"/>
+                <message_argument value="PackageRenderer"/>
+            </message_arguments>
+        </filter>
+    </resource>
+</component>
diff --git a/org.eclipse.jdt.debug.ui/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.jdt.debug.ui/.settings/org.eclipse.jdt.ui.prefs
index 69f7753..c9192ac 100644
--- a/org.eclipse.jdt.debug.ui/.settings/org.eclipse.jdt.ui.prefs
+++ b/org.eclipse.jdt.debug.ui/.settings/org.eclipse.jdt.ui.prefs
@@ -68,10 +68,12 @@
 sp_cleanup.always_use_parentheses_in_expressions=false

 sp_cleanup.always_use_this_for_non_static_field_access=false

 sp_cleanup.always_use_this_for_non_static_method_access=false

+sp_cleanup.convert_functional_interfaces=false

 sp_cleanup.convert_to_enhanced_for_loop=false

 sp_cleanup.correct_indentation=false

 sp_cleanup.format_source_code=true

 sp_cleanup.format_source_code_changes_only=true

+sp_cleanup.insert_inferred_type_arguments=false

 sp_cleanup.make_local_variable_final=false

 sp_cleanup.make_parameters_final=false

 sp_cleanup.make_private_fields_final=true

@@ -87,7 +89,8 @@
 sp_cleanup.qualify_static_member_accesses_with_declaring_class=false

 sp_cleanup.qualify_static_method_accesses_with_declaring_class=false

 sp_cleanup.remove_private_constructors=true

-sp_cleanup.remove_trailing_whitespaces=false

+sp_cleanup.remove_redundant_type_arguments=true

+sp_cleanup.remove_trailing_whitespaces=true

 sp_cleanup.remove_trailing_whitespaces_all=true

 sp_cleanup.remove_trailing_whitespaces_ignore_empty=false

 sp_cleanup.remove_unnecessary_casts=true

@@ -100,8 +103,10 @@
 sp_cleanup.remove_unused_private_types=true

 sp_cleanup.sort_members=false

 sp_cleanup.sort_members_all=false

+sp_cleanup.use_anonymous_class_creation=false

 sp_cleanup.use_blocks=true

 sp_cleanup.use_blocks_only_for_return_and_throw=false

+sp_cleanup.use_lambda=false

 sp_cleanup.use_parentheses_in_expressions=false

 sp_cleanup.use_this_for_non_static_field_access=false

 sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true

diff --git a/org.eclipse.jdt.debug.ui/Snippet Support/org/eclipse/jdt/internal/debug/ui/snippeteditor/ScrapbookMain.java b/org.eclipse.jdt.debug.ui/Snippet Support/org/eclipse/jdt/internal/debug/ui/snippeteditor/ScrapbookMain.java
index b3c379f..6229699 100644
--- a/org.eclipse.jdt.debug.ui/Snippet Support/org/eclipse/jdt/internal/debug/ui/snippeteditor/ScrapbookMain.java
+++ b/org.eclipse.jdt.debug.ui/Snippet Support/org/eclipse/jdt/internal/debug/ui/snippeteditor/ScrapbookMain.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -26,14 +26,14 @@
  * CAUTION: This class gets compiled with target=jsr14, see scripts/buildExtraJAR.xml. Don't use URLClassLoader#close() or other post-1.4 APIs!
  */
 public class ScrapbookMain {
-	
+
 	public static void main(String[] args) {
 
 		URL[] urls= getClasspath(args);
 		if (urls == null) {
 			return;
 		}
-		
+
 		while (true) {
 			try {
 				evalLoop(urls);
@@ -47,9 +47,9 @@
 				return;
 			}
 		}
-	
+
 	}
-	
+
 	static void evalLoop(URL[] urls) throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, IllegalAccessException {
 		@SuppressWarnings("resource")
 		ClassLoader cl= new URLClassLoader(urls, null);
@@ -57,7 +57,7 @@
 		Method method= clazz.getDeclaredMethod("eval", new Class[] {Class.class}); //$NON-NLS-1$
 		method.invoke(null, new Object[] {ScrapbookMain.class});
 	}
-	
+
 	/**
 	 * The magic "no-op" method, where {@link org.eclipse.jdt.internal.debug.ui.snippeteditor.ScrapbookLauncher#createMagicBreakpoint(String)} sets a
 	 * breakpoint.
@@ -69,14 +69,14 @@
 		} catch(InterruptedException e) {
 		}
 	}
-	
-	
+
+
 	static URL[] getClasspath(String[] urlStrings) {
-		
+
 		//The URL Strings MUST be properly encoded
 		//using URLEncoder...see ScrapbookLauncher for details
 		URL[] urls= new URL[urlStrings.length + 1];
-		
+
 		for (int i = 0; i < urlStrings.length; i++) {
 			try {
 				urls[i + 1] = new URL(URLDecoder.decode(urlStrings[i]));
diff --git a/org.eclipse.jdt.debug.ui/Snippet Support/org/eclipse/jdt/internal/debug/ui/snippeteditor/ScrapbookMain1.java b/org.eclipse.jdt.debug.ui/Snippet Support/org/eclipse/jdt/internal/debug/ui/snippeteditor/ScrapbookMain1.java
index 813ad01..5757857 100644
--- a/org.eclipse.jdt.debug.ui/Snippet Support/org/eclipse/jdt/internal/debug/ui/snippeteditor/ScrapbookMain1.java
+++ b/org.eclipse.jdt.debug.ui/Snippet Support/org/eclipse/jdt/internal/debug/ui/snippeteditor/ScrapbookMain1.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.ui/plugin.properties b/org.eclipse.jdt.debug.ui/plugin.properties
index 1bd6f51..7476dad 100644
--- a/org.eclipse.jdt.debug.ui/plugin.properties
+++ b/org.eclipse.jdt.debug.ui/plugin.properties
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000, 2016 IBM Corporation and others.
+# Copyright (c) 2000, 2017 IBM Corporation and others.
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Eclipse Public License v1.0
 # which accompanies this distribution, and is available at
@@ -221,7 +221,9 @@
 ActionDefinition.breakpointproperties.description=View and edit the properties for a given Java breakpoint
 CommandDefinition.breakpointproperties.name=Java Breakpoint Properties
 
-ToggleTracepointAction.label=Toggle Trac&epoint
+ToggleTracepointAction.label=Toggle Tra&cepoint
+ToggleTracepointCommand.label=Toggle Tracepoint
+ToggleTracepointCommand.description=Creates or removes a tracepoint  
 
 AddBookmark.label=Add Boo&kmark...
 AddBookmark.tooltip=Add Bookmark...
diff --git a/org.eclipse.jdt.debug.ui/plugin.xml b/org.eclipse.jdt.debug.ui/plugin.xml
index 83ab593..81ceaef 100644
--- a/org.eclipse.jdt.debug.ui/plugin.xml
+++ b/org.eclipse.jdt.debug.ui/plugin.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?eclipse version="3.0"?>
 <!--
-     Copyright (c) 2005, 2016 IBM Corporation and others.
+     Copyright (c) 2005, 2017 IBM Corporation and others.
      All rights reserved. This program and the accompanying materials
      are made available under the terms of the Eclipse Public License v1.0
      which accompanies this distribution, and is available at
@@ -2606,8 +2606,8 @@
 -->
    <extension point="org.eclipse.ui.commands">
    	 <command
-            name="%ToggleTracepointAction.label"
-            description="%ToggleTracepointAction.label"
+            name="%ToggleTracepointCommand.label"
+            description="%ToggleTracepointCommand.description"
             categoryId="org.eclipse.debug.ui.category.run"
             id="org.eclipse.jdt.debug.ui.commands.ToggleTracepoint">
       </command>
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/IJavaDebugUIConstants.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/IJavaDebugUIConstants.java
index c44b9c0..56bb695 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/IJavaDebugUIConstants.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/IJavaDebugUIConstants.java
@@ -12,7 +12,7 @@
 
 
 import org.eclipse.jdt.internal.debug.ui.JDIDebugUIPlugin;
- 
+
 /**
  * Constant definitions for Java debug UI plug-in.
  * <p>
@@ -36,16 +36,16 @@
 	/**
 	 * Extension point identifier for contributions of a wizard page that for a VMInstallType
 	 * (value <code>"vmInstallPages"</code>).
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	public static final String EXTENSION_POINT_VM_INSTALL_PAGES = "vmInstallPages"; //$NON-NLS-1$
-	
+
 	/**
 	 * Display view identifier (value <code>"org.eclipse.jdt.debug.ui.DisplayView"</code>).
 	 */
 	public static final String ID_DISPLAY_VIEW= PLUGIN_ID + ".DisplayView"; //$NON-NLS-1$
-	
+
 	/**
 	 * Java snippet editor identifier (value <code>"org.eclipse.jdt.debug.ui.SnippetEditor"</code>)
 	 */
@@ -55,17 +55,17 @@
 	 * Java snippet editor context menu identifier (value <code>"#JavaSnippetEditorContext"</code>).
 	 */
 	public static final String JAVA_SNIPPET_EDITOR_CONTEXT_MENU= "#JavaSnippetEditorContext"; //$NON-NLS-1$
-	
+
 	/**
 	 * Java snippet editor ruler menu identifier (value <code>"#JavaSnippetRulerContext"</code>).
-	 */	
+	 */
 	public static final String JAVA_SNIPPET_EDITOR_RULER_MENU= "#JavaSnippetRulerContext"; //$NON-NLS-1$
 
 	/**
 	 * Identifier for a group of evaluation actions in a menu (value <code>"evaluationGroup"</code>).
 	 */
 	public static final String EVALUATION_GROUP= "evaluationGroup"; //$NON-NLS-1$
-	
+
 	/**
 	 * Status code indicating an unexpected internal error (value <code>150</code>).
 	 */
@@ -74,37 +74,37 @@
 	/**
 	 * Boolean preference indicating whether the monitor and thread information should be displayed in the debug view.
 	 * A view may override this preference, and if so, stores its preference, prefixed by view id.
-	 *  
+	 *
 	 * @since 3.2
-	 */	
+	 */
 	public static final String PREF_SHOW_MONITOR_THREAD_INFO = PLUGIN_ID + ".show_monitor_thread_info"; //$NON-NLS-1$
 
 	/**
 	 * Boolean preference indicating whether system threads should appear visible in the debug view.
-	 * 
+	 *
 	 * @since 3.2
-	 */	
+	 */
 	public static final String PREF_SHOW_SYSTEM_THREADS = PLUGIN_ID + ".show_system_threads"; //$NON-NLS-1$
 
 	/**
 	 * Boolean preference indicating whether thread groups should be displayed in the debug view.
-	 * 
+	 *
 	 * @since 3.2
-	 */	
-	public static final String PREF_SHOW_THREAD_GROUPS = PLUGIN_ID + ".show_thread_group_info"; //$NON-NLS-1$	
-	
+	 */
+	public static final String PREF_SHOW_THREAD_GROUPS = PLUGIN_ID + ".show_thread_group_info"; //$NON-NLS-1$
+
 	/**
 	 * Integer preference for the maximum number of instances to show with the All Instances action
-	 * 
+	 *
 	 *   @since 3.3
 	 */
 	public static final String PREF_ALLINSTANCES_MAX_COUNT = PLUGIN_ID + ".all_instances_max_count"; //$NON-NLS-1$
-	
+
 	/**
 	 * Integer preference for the maximum number of references to show with the All References action
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	public static final String PREF_ALLREFERENCES_MAX_COUNT = PLUGIN_ID + ".all_references_max_count"; //$NON-NLS-1$
-	
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/JavaDebugUtils.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/JavaDebugUtils.java
index d827ed6..87ac464 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/JavaDebugUtils.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/JavaDebugUtils.java
@@ -32,16 +32,16 @@
      * The result will be empty when the user has turned off the preference
      * to show monitor information.
      * </p>
-     * 
+     *
      * @param thread an <code>IJavaThread</code> or a thread with an <code>IJavaThread</code>
-     *  adapter 
+     *  adapter
      * @return debug elements representing the monitors owned by the underlying
      *   <code>IJavaThread</code>, possibly empty
      */
     public static IDebugElement[] getOwnedMonitors(IThread thread) {
         return ThreadMonitorManager.getDefault().getOwnedMonitors(thread);
     }
-    
+
     /**
      * Returns a debug element representing a monitor in contention with
      * the given thread's underlying <code>IJavaThread</code>, or <code>null</code>
@@ -51,14 +51,14 @@
      * to show monitor information.
      * </p>
      * @param thread an <code>IJavaThread</code> or a thread with an <code>IJavaThread</code>
-     *  adapter 
+     *  adapter
      * @return debug element representing a monitor in contention with the underlying
      *   <code>IJavaThread</code>, or <code>null</code>
-     */    
+     */
     public static IDebugElement getContendedMonitor(IThread thread) {
         return ThreadMonitorManager.getDefault().getContendedMonitor(thread);
     }
-    
+
 	/**
 	 * Returns the preference store for the Java Debug UI plug-in.
 	 *
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/JavaSourceLookupDialog.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/JavaSourceLookupDialog.java
index e60c660..e7b8786 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/JavaSourceLookupDialog.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/JavaSourceLookupDialog.java
@@ -31,7 +31,7 @@
 
 /**
  * A dialog to manipulate the source lookup path for a launch
- * configuration. 
+ * configuration.
  * <p>
  * This class may be instantiated.
  * </p>
@@ -43,19 +43,19 @@
  *  lookup among a set of participants, searching a set of source containers.
  *  See the following packages: <code>org.eclipse.debug.core.sourcelookup</code>
  *  and <code>org.eclipse.debug.core.sourcelookup.containers</code>. This class
- *  has been replaced by a dialog in the debug platform - 
+ *  has been replaced by a dialog in the debug platform -
  *  <code>org.eclipse.debug.ui.sourcelookup.SourceLookupDialog</code>.
  * @noextend This class is not intended to be subclassed by clients.
  */
 @Deprecated
 public class JavaSourceLookupDialog extends Dialog {
-		
+
 	private SourceLookupBlock fSourceLookupBlock;
 	private ILaunchConfiguration fConfiguration;
 	private String fMessage;
 	private boolean fNotAskAgain;
 	private Button fAskAgainCheckBox;
-	
+
 	/**
 	 * Constructs a dialog to manipulate the source lookup path of the given
 	 * launch configuration. The source lookup path is retrieved from the given
@@ -63,8 +63,8 @@
 	 * <code>IJavaLaunchConfigurationConstants.ATTR_DEFAULT_SOURCE_PATH</code> and
 	 * <code>IJavaLaunchConfigurationConstants.ATTR_SOURCE_PATH</code>. If the user
 	 * changes the source lookup path and presses "OK", the launch configuration
-	 * is updated with the new source lookup path. 
-	 * 
+	 * is updated with the new source lookup path.
+	 *
 	 * @param shell the shell to open the dialog on
 	 * @param message the message to display in the dialog
 	 * @param configuration the launch configuration from which the source lookup
@@ -78,16 +78,16 @@
 		fAskAgainCheckBox= null;
 		fConfiguration = configuration;
 	}
-	
+
 	/**
 	 * Returns whether the "do not ask again" check box is selected in the dialog.
-	 * 
+	 *
 	 * @return whether the "do not ask again" check box is selected in the dialog
 	 */
 	public boolean isNotAskAgain() {
 		return fNotAskAgain;
 	}
-			
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
 	 */
@@ -95,12 +95,12 @@
 	protected Control createDialogArea(Composite parent) {
 		Font font = parent.getFont();
 		initializeDialogUnits(parent);
-		getShell().setText(LauncherMessages.JavaUISourceLocator_selectprojects_title); 
-		
+		getShell().setText(LauncherMessages.JavaUISourceLocator_selectprojects_title);
+
 		Composite composite= (Composite) super.createDialogArea(parent);
 		composite.setLayout(new GridLayout());
 		composite.setFont(font);
-		
+
 		int pixelWidth= convertWidthInCharsToPixels(70);
 		Label message= new Label(composite, SWT.LEFT + SWT.WRAP);
 		message.setText(fMessage);
@@ -108,7 +108,7 @@
 		data.widthHint= pixelWidth;
 		message.setLayoutData(data);
 		message.setFont(font);
-		
+
 		fSourceLookupBlock.createControl(composite);
 		Control inner = fSourceLookupBlock.getControl();
 		fSourceLookupBlock.initializeFrom(fConfiguration);
@@ -121,8 +121,8 @@
 		data.widthHint= pixelWidth;
 		fAskAgainCheckBox.setLayoutData(data);
 		fAskAgainCheckBox.setFont(font);
-		fAskAgainCheckBox.setText(LauncherMessages.JavaUISourceLocator_askagain_message); 
-		
+		fAskAgainCheckBox.setText(LauncherMessages.JavaUISourceLocator_askagain_message);
+
 		return composite;
 	}
 
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/JavaUISourceLocator.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/JavaUISourceLocator.java
index 9051659..f6b0a52 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/JavaUISourceLocator.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/JavaUISourceLocator.java
@@ -80,7 +80,7 @@
 	 * Launch configuration attribute indicating that this source locator should
 	 * locate all source elements that correspond to a stack frame, rather than
 	 * the first match. Default value is <code>false</code>.
-	 * 
+	 *
 	 * @since 2.1
 	 */
 	public static final String ATTR_FIND_ALL_SOURCE_ELEMENTS = IJavaDebugUIConstants.PLUGIN_ID + ".ATTR_FIND_ALL_SOURCE_ELEMENTS"; //$NON-NLS-1$
@@ -107,7 +107,7 @@
 	 * duplicates), or just the first match.
 	 */
 	private boolean fIsFindAllSourceElements = false;
-	
+
 	/**
 	 * A cache of types to associated source elements (when duplicates arise and
 	 * the users chooses a source element, it is remembered).
@@ -126,7 +126,7 @@
 	 * Constructs a new source locator that looks in the
 	 * specified project for source, and required projects, if
 	 * <code>includeRequired</code> is <code>true</code>.
-	 * 
+	 *
 	 * @param projects the projects in which to look for source
 	 * @param includeRequired whether to look in required projects
 	 * 	as well
@@ -142,7 +142,7 @@
 	 * in the given Java project, and all of its required projects,
 	 * as specified by its build path or default source lookup
 	 * settings.
-	 * 
+	 *
 	 * @param project Java project
 	 * @exception CoreException if unable to read the project's
 	 * 	 build path
@@ -185,7 +185,7 @@
 			Object[] sourceElements = fSourceLocator.getSourceElements(stackFrame);
 			if (sourceElements == null || sourceElements.length == 0) {
 				return null;
-			} 
+			}
 			if (sourceElements.length == 1) {
 				return sourceElements[0];
 			}
@@ -198,12 +198,12 @@
 				}
 				// prompt
 				TwoPaneElementSelector dialog = new TwoPaneElementSelector(JDIDebugUIPlugin.getActiveWorkbenchShell(), new SourceElementLabelProvider(),new SourceElementQualifierProvider());
-				dialog.setTitle(DebugUIMessages.JavaUISourceLocator_Select_Source_1); 
-				dialog.setMessage(NLS.bind(DebugUIMessages.JavaUISourceLocator__Select_the_source_that_corresponds_to__0__2, new String[]{type.getName()})); 
+				dialog.setTitle(DebugUIMessages.JavaUISourceLocator_Select_Source_1);
+				dialog.setMessage(NLS.bind(DebugUIMessages.JavaUISourceLocator__Select_the_source_that_corresponds_to__0__2, new String[]{type.getName()}));
 				dialog.setElements(sourceElements);
 				dialog.setMultipleSelection(false);
-				dialog.setUpperListLabel(DebugUIMessages.JavaUISourceLocator__Matching_files__3); 
-				dialog.setLowerListLabel(DebugUIMessages.JavaUISourceLocator__Location__4); 
+				dialog.setUpperListLabel(DebugUIMessages.JavaUISourceLocator__Matching_files__3);
+				dialog.setLowerListLabel(DebugUIMessages.JavaUISourceLocator__Location__4);
 				dialog.open();
 				Object[] result = dialog.getResult();
 				if (result == null) {
@@ -219,17 +219,17 @@
 		}
 		return fSourceLocator.getSourceElement(stackFrame);
 	}
-	
+
 	private Object getSourceElement(IJavaReferenceType type) {
 		if (fTypesToSource == null) {
-			return null; 
+			return null;
 		}
 		return fTypesToSource.get(type);
 	}
-	
+
 	private void cacheSourceElement(Object sourceElement, IJavaReferenceType type) {
 		if (fTypesToSource == null) {
-			fTypesToSource = new HashMap<IJavaReferenceType, Object>();
+			fTypesToSource = new HashMap<>();
 		}
 		fTypesToSource.put(type, sourceElement);
 	}
@@ -340,7 +340,7 @@
 	/**
 	 * Returns the locations that this source locator is currently
 	 * searching, in the order that they are searched.
-	 * 
+	 *
 	 * @return the locations that this source locator is currently
 	 * searching, in the order that they are searched
 	 */
@@ -352,7 +352,7 @@
 	 * /**
 	 * Sets the locations that will be searched, in the order
 	 * to be searched.
-	 * 
+	 *
 	 * @param locations the locations that will be searched, in the order
 	 *  to be searched
 	 */
@@ -366,7 +366,7 @@
 	 * is returned, searching stops on the first match. If there is more than
 	 * one source element that corresponds to a stack frame, the user is
 	 * prompted to choose a source element to open.
-	 * 
+	 *
 	 * @return whether this source locator is configured to search for all
 	 * source elements that correspond to a stack frame
 	 * @since 2.1
@@ -378,7 +378,7 @@
 	/**
 	 * Sets whether this source locator is configured to search for all source
 	 * elements that correspond to a stack frame, or the first match.
-	 * 
+	 *
 	 * @param findAll whether this source locator should search for all source
 	 * elements that correspond to a stack frame
 	 * @since 2.1
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/breakpoints/JavaBreakpointConditionEditor.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/breakpoints/JavaBreakpointConditionEditor.java
index 23a09df..0135a65 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/breakpoints/JavaBreakpointConditionEditor.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/breakpoints/JavaBreakpointConditionEditor.java
@@ -26,6 +26,8 @@
 import org.eclipse.debug.internal.ui.SWTFactory;
 import org.eclipse.jdt.core.IClassFile;
 import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IField;
+import org.eclipse.jdt.core.ISourceRange;
 import org.eclipse.jdt.core.IType;
 import org.eclipse.jdt.debug.core.IJavaLineBreakpoint;
 import org.eclipse.jdt.debug.core.IJavaWatchpoint;
@@ -103,9 +105,9 @@
  * property change notification ({@link #addPropertyListener(IPropertyListener)}). The editor
  * will fire a property change each time a setting is modified. The same editor can be
  * used to display different breakpoints by calling {@link #setInput(Object)} with different
- * breakpoint objects. 
+ * breakpoint objects.
  * </p>
- * 
+ *
  * @since 3.5
  */
 public final class JavaBreakpointConditionEditor extends AbstractJavaBreakpointEditor {
@@ -115,7 +117,7 @@
 	private Button fWhenChange;
 
 	private JDISourceViewer fViewer;
-	private IContentAssistProcessor fCompletionProcessor;	
+	private IContentAssistProcessor fCompletionProcessor;
 	private IJavaLineBreakpoint fBreakpoint;
 	private IHandlerService fHandlerService;
 	private IHandler fContentAssistHandler;
@@ -154,7 +156,7 @@
 	 * Property id for breakpoint condition suspend policy.
 	 */
 	public static final int PROP_CONDITION_SUSPEND_POLICY= 0x1003;
-	
+
 	private static final int MAX_HISTORY_SIZE= 10;
 	private static final String DS_SECTION_CONDITION_HISTORY= "conditionHistory"; //$NON-NLS-1$
 	private static final String DS_KEY_HISTORY_ENTRY_COUNT= "conditionHistoryEntryCount"; //$NON-NLS-1$
@@ -170,7 +172,7 @@
 
 	/**
 	 * Creates a new Java breakpoint condition editor with a history drop-down list.
-	 * 
+	 *
 	 * @param dialogSettings the dialog settings for the condition history or <code>null</code> to
 	 *            use the default settings (i.e. those used by JDT Debug)
 	 * @since 3.6
@@ -183,27 +185,27 @@
 	 * Adds the given property listener to this editor. Property changes
 	 * are reported on the breakpoint being edited. Property identifiers
 	 * are breakpoint attribute keys.
-	 * 
+	 *
 	 * @param listener listener
 	 */
 	@Override
 	public void addPropertyListener(IPropertyListener listener) {
 		super.addPropertyListener(listener);
 	}
-	
+
 	/**
 	 * Removes the property listener from this editor.
-	 * 
+	 *
 	 * @param listener listener
 	 */
 	@Override
 	public void removePropertyListener(IPropertyListener listener) {
 		super.removePropertyListener(listener);
 	}
-	
+
 	/**
 	 * Sets the breakpoint to editor or <code>null</code> if none.
-	 * 
+	 *
 	 * @param input breakpoint or <code>null</code>
 	 * @throws CoreException if unable to access breakpoint attributes
 	 */
@@ -229,13 +231,13 @@
 			suppressPropertyChanges(false);
 		}
 	}
-	
+
 
 	/**
 	 * Sets the breakpoint to edit. Has no effect if the breakpoint responds
 	 * <code>false</code> to {@link IJavaLineBreakpoint#supportsCondition()}.
 	 * The same editor can be used iteratively for different breakpoints.
-	 * 
+	 *
 	 * @param breakpoint the breakpoint to edit or <code>null</code> if none
 	 * @exception CoreException if unable to access breakpoint attributes
 	 */
@@ -266,27 +268,45 @@
 		IJavaDebugContentAssistContext context = null;
 		if (type == null || breakpoint == null) {
 			context = new TypeContext(null, -1);
-		} else if (breakpoint instanceof IJavaWatchpoint) {
-			context = new TypeContext(type, 0);
 		} else {
 			String source = null;
 			ICompilationUnit compilationUnit = type.getCompilationUnit();
 			if (compilationUnit != null && compilationUnit.getJavaProject().getProject().exists()) {
 				source = compilationUnit.getSource();
-			} 
+			}
 			else {
 				IClassFile classFile = type.getClassFile();
 				if (classFile != null) {
 					source = classFile.getSource();
 				}
 			}
-			int lineNumber = breakpoint.getMarker().getAttribute(IMarker.LINE_NUMBER, -1);
 			int position= -1;
-			if (source != null && lineNumber != -1) {
-				try {
-					position = new Document(source).getLineOffset(lineNumber - 1);
-				} 
-				catch (BadLocationException e) {JDIDebugUIPlugin.log(e);}
+			if (breakpoint instanceof IJavaWatchpoint) {
+				IField[] fields = type.getFields();
+				// Taking first field
+				ISourceRange sourceRange = fields[0].getNameRange();
+				position = sourceRange.getOffset();
+				if (source != null && position != -1) {
+					try {
+						// to get offset of the first character of line in which field is defined
+						int lineNumber = new Document(source).getLineOfOffset(position);
+						position = new Document(source).getLineOffset(lineNumber);
+					}
+					catch (BadLocationException e) {
+						// ignore, breakpoint line is out-of-date with the document
+					}
+				}
+
+			} else {
+				int lineNumber = breakpoint.getMarker().getAttribute(IMarker.LINE_NUMBER, -1);
+				if (source != null && lineNumber != -1) {
+					try {
+						position = new Document(source).getLineOffset(lineNumber - 1);
+					}
+					catch (BadLocationException e) {
+						// ignore, breakpoint line is out-of-date with the document
+					}
+				}
 			}
 			context = new TypeContext(type, position);
 		}
@@ -317,21 +337,21 @@
 		checkIfUsedInBreakpointsView();
 		registerViewerUndoRedoActions();
 	}
-	
+
 	/**
 	 * Creates the condition editor widgets and returns the top level
 	 * control.
-	 * 
+	 *
 	 * @param parent composite to embed the editor controls in
 	 * @return top level control
 	 */
 	@Override
 	public Control createControl(Composite parent) {
 		Composite controls = SWTFactory.createComposite(parent, parent.getFont(), 2, 1, GridData.FILL_HORIZONTAL, 0, 0);
-		fConditional = SWTFactory.createCheckButton(controls, 
-				processMnemonics(PropertyPageMessages.JavaBreakpointConditionEditor_0), 
-				null, 
-				false, 
+		fConditional = SWTFactory.createCheckButton(controls,
+				processMnemonics(PropertyPageMessages.JavaBreakpointConditionEditor_0),
+				null,
+				false,
 				1);
 		fConditional.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
 		fConditional.addSelectionListener(new SelectionAdapter() {
@@ -361,7 +381,7 @@
 		});
 
 		if (fConditionHistoryDialogSettings != null) {
-			fLocalConditionHistory= new HashMap<IJavaLineBreakpoint, Stack<String>>();
+			fLocalConditionHistory= new HashMap<>();
 			fConditionHistory= SWTFactory.createCombo(parent, SWT.DROP_DOWN | SWT.READ_ONLY, 1, null);
 			initializeConditionHistoryDropDown();
 			fConditionHistory.addSelectionListener(new SelectionAdapter() {
@@ -376,7 +396,7 @@
 			GridData data= new GridData(GridData.FILL_HORIZONTAL);
 			data.widthHint= 10;
 			fConditionHistory.setLayoutData(data);
-			fLocalConditionHistory= new HashMap<IJavaLineBreakpoint, Stack<String>>(10);
+			fLocalConditionHistory= new HashMap<>(10);
 		}
 
 		fViewer = new JDISourceViewer(parent, null, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.LEFT_TO_RIGHT);
@@ -425,7 +445,7 @@
 			@Override
 			public void focusLost(FocusEvent e) {
 				deactivateHandlers();
-			}				
+			}
 		});
 		parent.addDisposeListener(new DisposeListener() {
 			@Override
@@ -435,7 +455,7 @@
 		});
 		return parent;
 	}
-	
+
 	/**
 	 * Disposes this editor and its controls. Once disposed, the editor can no
 	 * longer be used.
@@ -447,9 +467,9 @@
 		if (fDocumentListener != null) {
 			fViewer.getDocument().removeDocumentListener(fDocumentListener);
 		}
-		fViewer.dispose();	
+		fViewer.dispose();
 	}
-	
+
 	/**
 	 * Gives focus to an appropriate control in the editor.
 	 */
@@ -457,12 +477,12 @@
 	public void setFocus() {
 		fViewer.getControl().setFocus();
 	}
-	
+
 	/**
 	 * Saves current settings to the breakpoint being edited. Has no
 	 * effect if a breakpoint is not currently being edited or if this
 	 * editor is not dirty.
-	 * 
+	 *
 	 * @exception CoreException if unable to update the breakpoint.
 	 */
 	@Override
@@ -477,12 +497,12 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Returns a status describing whether the condition editor is in
 	 * a valid state. Returns an OK status when all is good. For example, an error
 	 * status is returned when the conditional expression is empty but enabled.
-	 * 
+	 *
 	 * @return editor status.
 	 */
 	@Override
@@ -496,29 +516,29 @@
 		}
 		return Status.OK_STATUS;
 	}
-	
+
 	/**
 	 * Returns whether the editor needs saving.
-	 *  
+	 *
 	 * @return whether the editor needs saving
 	 */
 	@Override
 	public boolean isDirty() {
 		return super.isDirty();
 	}
-	
+
 	/**
 	 * Sets whether mnemonics should be displayed in editor controls.
 	 * Only has an effect if set before {@link #createControl(Composite)}
 	 * is called. By default, mnemonics are displayed.
-	 * 
+	 *
 	 * @param mnemonics whether to display mnemonics
 	 */
 	@Override
 	public void setMnemonics(boolean mnemonics) {
 		super.setMnemonics(mnemonics);
 	}
-	
+
 	private void activateHandlers() {
 		fContentAssistActivation= fHandlerService.activateHandler(ITextEditorActionDefinitionIds.CONTENT_ASSIST_PROPOSALS, fContentAssistHandler);
 		checkIfUsedInBreakpointsView();
@@ -565,7 +585,7 @@
 
 	/**
 	 * Enables controls based on whether the breakpoint's condition is enabled.
-	 * 
+	 *
 	 * @param enabled <code>true</code> if enabled, <code>false</code> otherwise
 	 * @param focus <code>true</code> if focus should be set, <code>false</code> otherwise
 	 */
@@ -581,7 +601,7 @@
 			}
 		} else {
 			Color color = fViewer.getControl().getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
-			fViewer.getTextWidget().setBackground(color);			
+			fViewer.getTextWidget().setBackground(color);
 		}
 		if (hasConditionHistory()) {
 			fConditionHistory.setEnabled(enabled);
@@ -590,7 +610,7 @@
 
 	/**
 	 * Returns the breakpoint being edited or <code>null</code> if none.
-	 * 
+	 *
 	 * @return breakpoint or <code>null</code>
 	 */
 	@Override
@@ -601,7 +621,7 @@
 
 	/**
 	 * Tells whether this editor shows a condition history drop-down list.
-	 * 
+	 *
 	 * @return <code>true</code> if this editor shows a condition history drop-down list,
 	 *         <code>false</code> otherwise
 	 */
@@ -621,7 +641,7 @@
 
 	/**
 	 * Returns the condition history labels for the current breakpoint.
-	 * 
+	 *
 	 * @return an array of strings containing the condition history labels
 	 */
 	private String[] getConditionHistoryLabels() {
@@ -635,7 +655,7 @@
 
 	/**
 	 * Returns the condition history entries for the current breakpoint.
-	 * 
+	 *
 	 * @return an array of strings containing the history of conditions
 	 */
 	private String[] getConditionHistory() {
@@ -650,7 +670,7 @@
 			return globalItems;
 		}
 
-		// Create combined history 
+		// Create combined history
 		int localHistorySize= Math.min(localHistory.size(), MAX_HISTORY_SIZE);
 		String[] historyItems= new String[localHistorySize + globalItems.length + 1];
 		for (int i= 0; i < localHistorySize; i++) {
@@ -674,7 +694,7 @@
 		// Update local history
 		Stack<String> localHistory= fLocalConditionHistory.get(fBreakpoint);
 		if (localHistory == null) {
-			localHistory= new Stack<String>();
+			localHistory= new Stack<>();
 			fLocalConditionHistory.put(fBreakpoint, localHistory);
 		}
 
@@ -701,7 +721,7 @@
 
 	/**
 	 * Reads the condition history from the given dialog settings.
-	 * 
+	 *
 	 * @param dialogSettings the dialog settings
 	 * @return the condition history
 	 */
@@ -722,7 +742,7 @@
 
 	/**
 	 * Writes the given conditions into the given dialog settings.
-	 * 
+	 *
 	 * @param conditions an array of strings containing the conditions
 	 * @param dialogSettings the dialog settings
 	 */
@@ -743,7 +763,7 @@
 
 	/**
 	 * Returns the label for the history separator.
-	 * 
+	 *
 	 * @return the label for the history separator
 	 */
 	private String getSeparatorLabel() {
@@ -796,7 +816,7 @@
 
 	/**
 	 * Returns this editor's viewer's undo manager undo context.
-	 * 
+	 *
 	 * @return the undo context or <code>null</code> if not available
 	 * @since 3.1
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/console/JavaStackTraceConsoleFactory.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/console/JavaStackTraceConsoleFactory.java
index 07eeee2..fded9d0 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/console/JavaStackTraceConsoleFactory.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/console/JavaStackTraceConsoleFactory.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -19,9 +19,9 @@
 
 /**
  * Creates a new console into which users can paste stack traces and follow the hyperlinks.
- * 
+ *
  * @since 3.8
- * 
+ *
  */
 public class JavaStackTraceConsoleFactory implements IConsoleFactory {
 	private IConsoleManager fConsoleManager = null;
@@ -58,7 +58,7 @@
 	/**
 	 * Opens the console (creating a new one if not previously initialized). If the passed string is not <code>null</code>, the text of the console is
 	 * set to the string.
-	 * 
+	 *
 	 * @param initialText
 	 *            text to put in the console or <code>null</code>.
 	 */
@@ -73,6 +73,6 @@
 		}
 		fConsoleManager.showConsoleView(fConsole);
 	}
-	
+
 
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/AbstractVMInstallPage.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/AbstractVMInstallPage.java
index 127a023..472fa03 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/AbstractVMInstallPage.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/AbstractVMInstallPage.java
@@ -24,7 +24,7 @@
 import org.eclipse.osgi.util.NLS;
 
 /**
- * A wizard page used to edit the attributes of an installed JRE. A page is 
+ * A wizard page used to edit the attributes of an installed JRE. A page is
  * provided by JDT to edit standard JREs, but clients may contribute a custom
  * page for a VM install type if required.
  * <p>
@@ -32,7 +32,7 @@
  * point. Following is an example definition of a VM install page.
  * <pre>
  * &lt;extension point="org.eclipse.jdt.debug.ui.vmInstallPages"&gt;
- *   &lt;vmInstallPage 
+ *   &lt;vmInstallPage
  *      vmInstallType="org.eclipse.jdt.launching.EEVMType"
  *      class="org.eclipse.jdt.internal.debug.ui.jres.EEVMPage"&gt;
  *   &lt;/vmInstallPage&gt;
@@ -47,28 +47,28 @@
  * </ul>
  * </p>
  * <p>
- * Clients contributing a custom VM install page via the <code>vmInstallPages</code> 
+ * Clients contributing a custom VM install page via the <code>vmInstallPages</code>
  * extension point must subclass this class.
  * </p>
  * @since 3.3
  */
 public abstract class AbstractVMInstallPage extends WizardPage {
-	
+
 	/**
 	 * Name of the original VM being edited, or <code>null</code> if none.
 	 */
 	private String fOriginalName = null;
-	
+
 	/**
 	 * Status of VM name (to notify of name already in use)
 	 */
 	private IStatus fNameStatus = Status.OK_STATUS;
-	
+
 	private String[] fExistingNames;
-		
+
 	/**
 	 * Constructs a new page with the given page name.
-	 * 
+	 *
 	 * @param pageName the name of the page
 	 */
 	protected AbstractVMInstallPage(String pageName) {
@@ -89,37 +89,37 @@
 	}
 
 	/**
-	 * Called when the VM install page wizard is closed by selecting 
-	 * the finish button. Implementers typically override this method to 
-	 * store the page result (new/changed vm install returned in 
+	 * Called when the VM install page wizard is closed by selecting
+	 * the finish button. Implementers typically override this method to
+	 * store the page result (new/changed vm install returned in
 	 * getSelection) into its model.
-	 * 
+	 *
 	 * @return if the operation was successful. Only when returned
 	 * <code>true</code>, the wizard will close.
 	 */
 	public abstract boolean finish();
-	
+
 	/**
 	 * Returns the edited or created VM install. This method
 	 * may return <code>null</code> if no VM install exists.
-	 * 
+	 *
 	 * @return the edited or created VM install.
 	 */
 	public abstract VMStandin getSelection();
 
 	/**
-	 * Sets the VM install to be edited. 
-	 * 
+	 * Sets the VM install to be edited.
+	 *
 	 * @param vm the VM install to edit
 	 */
 	public void setSelection(VMStandin vm) {
 		fOriginalName = vm.getName();
 	}
-	
+
 	/**
 	 * Updates the name status based on the new name. This method should be called
 	 * by the page each time the VM name changes.
-	 * 
+	 *
 	 * @param newName new name of VM
 	 */
 	protected void nameChanged(String newName) {
@@ -132,20 +132,20 @@
 			fNameStatus = new Status(sev, JDIDebugUIPlugin.getUniqueIdentifier(), JREMessages.addVMDialog_enterName);
 		} else {
 			if (isDuplicateName(newName)) {
-				fNameStatus = new Status(IStatus.ERROR, JDIDebugUIPlugin.getUniqueIdentifier(), JREMessages.addVMDialog_duplicateName); 
+				fNameStatus = new Status(IStatus.ERROR, JDIDebugUIPlugin.getUniqueIdentifier(), JREMessages.addVMDialog_duplicateName);
 			} else {
 				IStatus s = ResourcesPlugin.getWorkspace().validateName(newName, IResource.FILE);
 				if (!s.isOK()) {
-					fNameStatus = new Status(IStatus.ERROR, JDIDebugUIPlugin.getUniqueIdentifier(), NLS.bind(JREMessages.AddVMDialog_JRE_name_must_be_a_valid_file_name___0__1, new String[]{s.getMessage()})); 
+					fNameStatus = new Status(IStatus.ERROR, JDIDebugUIPlugin.getUniqueIdentifier(), NLS.bind(JREMessages.AddVMDialog_JRE_name_must_be_a_valid_file_name___0__1, new String[]{s.getMessage()}));
 				}
 			}
 		}
 		updatePageStatus();
 	}
-	
+
 	/**
 	 * Returns whether the name is already in use by an existing VM
-	 * 
+	 *
 	 * @param name new name
 	 * @return whether the name is already in use
 	 */
@@ -158,18 +158,18 @@
 			}
 		}
 		return false;
-	}	
-	
+	}
+
 	/**
 	 * Sets the names of existing VMs, not including the VM being edited. This method
 	 * is called by the wizard and clients should not call this method.
-	 * 
+	 *
 	 * @param names existing VM names or an empty array
 	 */
 	public void setExistingNames(String[] names) {
 		fExistingNames = names;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.wizard.WizardPage#getNextPage()
 	 */
@@ -177,10 +177,10 @@
 	public IWizardPage getNextPage() {
 		return null;
 	}
-	
+
 	/**
 	 * Sets this page's message based on the status severity.
-	 * 
+	 *
 	 * @param status status with message and severity
 	 */
 	protected void setStatusMessage(IStatus status) {
@@ -201,17 +201,17 @@
 				break;
 			}
 		}
-	}	
-	
+	}
+
 	/**
 	 * Returns the current status of the name being used for the VM.
-	 * 
+	 *
 	 * @return status of current VM name
 	 */
 	protected IStatus getNameStatus() {
 		return fNameStatus;
 	}
-	
+
 	/**
 	 * Updates the status message on the page, based on the status of the VM and other
 	 * status provided by the page.
@@ -234,13 +234,13 @@
 			setStatusMessage(max);
 		}
 		setPageComplete(max.isOK() || max.getSeverity() == IStatus.INFO);
-	}	
-	
+	}
+
 	/**
 	 * Returns a collection of status messages pertaining to the current edit
 	 * status of the VM on this page. An empty collection or a collection of
 	 * OK status objects indicates all is well.
-	 * 
+	 *
 	 * @return collection of status objects for this page
 	 */
 	protected abstract IStatus[] getVMStatus();
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/AppletArgumentsTab.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/AppletArgumentsTab.java
index c1beab7..4cf9a49 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/AppletArgumentsTab.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/AppletArgumentsTab.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *     Remy Chi Jian Suen <remy.suen@gmail.com>	- Bug 221973 Make WorkingDirectoryBlock from JDT a Debug API class
@@ -41,7 +41,7 @@
 	 */
 	@Override
 	protected void setHelpContextId() {
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), IJavaDebugHelpContextIds.LAUNCH_CONFIGURATION_DIALOG_APPLET_ARGUMENTS_TAB);		
+		PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), IJavaDebugHelpContextIds.LAUNCH_CONFIGURATION_DIALOG_APPLET_ARGUMENTS_TAB);
 	}
-			
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/AppletMainTab.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/AppletMainTab.java
index 0ec473c..0a7e7b8 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/AppletMainTab.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/AppletMainTab.java
@@ -54,11 +54,11 @@
  * @noextend This class is not intended to be sub-classed by clients.
  */
 public class AppletMainTab extends SharedJavaMainTab {
-	
+
 	// Applet viewer UI widgets
 	private Text fAppletViewerClassText;
 	private Button fAppletViewerClassDefaultButton;
-	
+
 	/**
 	 * Creates the applet viewer control area
 	 * @param parent the composite to add this control to
@@ -67,7 +67,7 @@
 		Font font = parent.getFont();
 		Group group = SWTFactory.createGroup(parent, LauncherMessages.AppletMainTab_1, 2, 1, GridData.FILL_HORIZONTAL);
 		Composite comp = SWTFactory.createComposite(group, font, 2, 2, GridData.FILL_BOTH, 0, 0);
-		fAppletViewerClassText= SWTFactory.createSingleText(comp, 2); 
+		fAppletViewerClassText= SWTFactory.createSingleText(comp, 2);
 		fAppletViewerClassText.addModifyListener(getDefaultListener());
 		createVerticalSpacer(comp, 1);
 		fAppletViewerClassDefaultButton= createCheckButton(comp, LauncherMessages.AppletMainTab_2);
@@ -80,13 +80,13 @@
 			}
 		});
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#createControl(org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
 	public void createControl(Composite parent) {
-		Composite projComp = SWTFactory.createComposite(parent, parent.getFont(), 1, 1, GridData.FILL_BOTH); 
+		Composite projComp = SWTFactory.createComposite(parent, parent.getFont(), 1, 1, GridData.FILL_BOTH);
 		((GridLayout)projComp.getLayout()).verticalSpacing = 0;
 		createProjectEditor(projComp);
 		createVerticalSpacer(projComp, 1);
@@ -96,7 +96,7 @@
 		setControl(projComp);
 		PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), IJavaDebugHelpContextIds.LAUNCH_CONFIGURATION_DIALOG_APPLET_MAIN_TAB);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.AbstractLaunchConfigurationTab#getImage()
 	 */
@@ -104,7 +104,7 @@
 	public Image getImage() {
 		return JavaUI.getSharedImages().getImage(ISharedImages.IMG_OBJS_CLASS);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#getName()
 	 */
@@ -120,12 +120,12 @@
 		setAppletViewerTextEnabledState();
 		if (isDefaultAppletViewerClassName()) {
 			fAppletViewerClassText.setText(IJavaLaunchConfigurationConstants.DEFAULT_APPLETVIEWER_CLASS);
-		} 
+		}
 		else {
 			fAppletViewerClassText.setText(EMPTY_STRING);
 		}
 	}
-	
+
 	/**
 	 * Show a dialog that lists all main types
 	 */
@@ -148,17 +148,17 @@
 		IType[] types = null;
 		try {
 			types = AppletLaunchConfigurationUtils.findApplets(getLaunchConfigurationDialog(), scope);
-		} 
-		catch (InterruptedException e) {return;} 
+		}
+		catch (InterruptedException e) {return;}
 		catch (InvocationTargetException e) {
 			setErrorMessage(e.getTargetException().getMessage());
 			return;
 		}
-		DebugTypeSelectionDialog dialog = new DebugTypeSelectionDialog(getShell(), types, LauncherMessages.appletlauncher_maintab_selection_applet_dialog_title); 
+		DebugTypeSelectionDialog dialog = new DebugTypeSelectionDialog(getShell(), types, LauncherMessages.appletlauncher_maintab_selection_applet_dialog_title);
 		if (dialog.open() == Window.CANCEL) {
 			return;
 		}
-		Object[] results = dialog.getResult();	
+		Object[] results = dialog.getResult();
 		IType type = (IType)results[0];
 		if (type != null) {
 			fMainText.setText(type.getFullyQualifiedName());
@@ -173,7 +173,7 @@
 	private void initializeAppletViewerClass(ILaunchConfigurationWorkingCopy config) {
 		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_APPLET_APPLETVIEWER_CLASS, (String)null);
 	}
-	
+
 	/**
 	 * Initialize default attribute values based on the
 	 * given Java element.
@@ -185,7 +185,7 @@
 		initializeMainTypeAndName(javaElement, config);
 		initializeAppletViewerClass(config);
 	}
-		
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.launcher.AbstractJavaMainTab#initializeFrom(org.eclipse.debug.core.ILaunchConfiguration)
 	 */
@@ -195,7 +195,7 @@
 		updateMainTypeFromConfig(config);
 		updateAppletViewerClassNameFromConfig(config);
 	}
-	
+
 	/**
 	 * Returns whether the default applet viewer is to be used
 	 * @return if the viewer should be used
@@ -214,19 +214,19 @@
 		String name= fProjText.getText().trim();
 		if (name.length() > 0) {
 			if (!ResourcesPlugin.getWorkspace().getRoot().getProject(name).exists()) {
-				setErrorMessage(LauncherMessages.appletlauncher_maintab_project_error_doesnotexist); 
+				setErrorMessage(LauncherMessages.appletlauncher_maintab_project_error_doesnotexist);
 				return false;
 			}
 		}
 		name = fMainText.getText().trim();
 		if (name.length() == 0) {
-			setErrorMessage(LauncherMessages.appletlauncher_maintab_type_error_doesnotexist); 
+			setErrorMessage(LauncherMessages.appletlauncher_maintab_type_error_doesnotexist);
 			return false;
 		}
 		name = fAppletViewerClassText.getText().trim();
 		if (name.length() == 0) {
-			setErrorMessage(LauncherMessages.AppletMainTab_3);  
-			return false;			
+			setErrorMessage(LauncherMessages.AppletMainTab_3);
+			return false;
 		}
 		return true;
 	}
@@ -274,7 +274,7 @@
 
 	/**
 	 * updates the applet class name from the specified launch configuration
-	 * @param config the config to load the class name attribute from 
+	 * @param config the config to load the class name attribute from
 	 */
 	private void updateAppletViewerClassNameFromConfig(ILaunchConfiguration config) {
 		String appletViewerClassName = EMPTY_STRING;
@@ -295,7 +295,7 @@
 
 	/**
 	 * @see org.eclipse.debug.ui.AbstractLaunchConfigurationTab#getId()
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/AppletParametersTab.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/AppletParametersTab.java
index 109de1d..f079ae6 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/AppletParametersTab.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/AppletParametersTab.java
@@ -60,14 +60,14 @@
  * @noextend This class is not intended to be sub-classed by clients.
  */
 public class AppletParametersTab extends JavaLaunchTab {
-	
+
 	private Text fWidthText;
 	private Text fHeightText;
 	private Text fNameText;
 	private Button fParametersAddButton;
 	private Button fParametersRemoveButton;
 	private Button fParametersEditButton;
-	
+
 	private class AppletTabListener extends SelectionAdapter implements ModifyListener {
 
 		/* (non-Javadoc)
@@ -77,7 +77,7 @@
 		public void modifyText(ModifyEvent e) {
 			updateLaunchConfigurationDialog();
 		}
-		
+
 		/* (non-Javadoc)
 		 * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
 		 */
@@ -96,21 +96,21 @@
 		}
 
 	}
-	
+
 	private AppletTabListener fListener= new AppletTabListener();
 
 	private static final String EMPTY_STRING = "";	 //$NON-NLS-1$
-	
+
 	/**
 	 * The default value for the 'width' attribute.
 	 */
 	public static final int DEFAULT_APPLET_WIDTH = 200;
-	
+
 	/**
 	 * The default value for the 'height' attribute.
 	 */
 	public static final int DEFAULT_APPLET_HEIGHT = 200;
-	
+
 	/**
 	 * The parameters table viewer
 	 */
@@ -120,44 +120,44 @@
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#createControl(Composite)
 	 */
 	@Override
-	public void createControl(Composite parent) {	
+	public void createControl(Composite parent) {
 		Composite comp = SWTFactory.createComposite(parent, 1, 1, GridData.FILL_HORIZONTAL);
 		setControl(comp);
 		PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(),	IJavaDebugHelpContextIds.LAUNCH_CONFIGURATION_DIALOG_APPLET_PARAMETERS_TAB);
-		
+
 		Composite namecomp = SWTFactory.createComposite(comp, comp.getFont(), 4, 1, GridData.FILL_HORIZONTAL, 0, 0);
-		
+
 		SWTFactory.createLabel(namecomp, LauncherMessages.appletlauncher_argumenttab_widthlabel_text, 1);
-		
+
 		fWidthText = SWTFactory.createSingleText(namecomp, 1);
 		fWidthText.addModifyListener(fListener);
 
 		SWTFactory.createLabel(namecomp, LauncherMessages.appletlauncher_argumenttab_namelabel_text, 1);
-		
+
 		fNameText = SWTFactory.createSingleText(namecomp, 1);
-		fNameText.addModifyListener(fListener);	
+		fNameText.addModifyListener(fListener);
 
 		SWTFactory.createLabel(namecomp, LauncherMessages.appletlauncher_argumenttab_heightlabel_text, 1);
-		
+
 		fHeightText = SWTFactory.createSingleText(namecomp, 1);
 		fHeightText.addModifyListener(fListener);
-		
+
 		Label blank = new Label(namecomp, SWT.NONE);
 		blank.setText(EMPTY_STRING);
 		Label hint = SWTFactory.createLabel(namecomp, LauncherMessages.AppletParametersTab__optional_applet_instance_name__1, 1);
 		GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_CENTER);
 		hint.setLayoutData(gd);
-				
+
 		SWTFactory.createVerticalSpacer(comp, 1);
-		
+
 		Composite paramcomp = SWTFactory.createComposite(comp, comp.getFont(), 2, 1, GridData.FILL_BOTH, 0, 0);
-		
-		SWTFactory.createLabel(paramcomp, LauncherMessages.appletlauncher_argumenttab_parameterslabel_text, 2);		
-		
+
+		SWTFactory.createLabel(paramcomp, LauncherMessages.appletlauncher_argumenttab_parameterslabel_text, 2);
+
 		Table ptable = new Table(paramcomp, SWT.FULL_SELECTION | SWT.BORDER);
 		fViewer = new TableViewer(ptable);
 		gd = new GridData(GridData.FILL_BOTH);
-		ptable.setLayoutData(gd);		
+		ptable.setLayoutData(gd);
 		TableColumn column1 = new TableColumn(ptable, SWT.NONE);
 		column1.setText(LauncherMessages.appletlauncher_argumenttab_parameterscolumn_name_text);
 		TableColumn column2 = new TableColumn(ptable, SWT.NONE);
@@ -178,7 +178,7 @@
 				}
 			}
 		});
-		
+
 		fViewer.setContentProvider(new IStructuredContentProvider() {
 			@Override
 			public Object[] getElements(Object inputElement) {
@@ -192,7 +192,7 @@
 			public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
 			}
 		});
-	
+
 		fViewer.setLabelProvider(new ITableLabelProvider() {
 			@Override
 			public Image getColumnImage(Object element, int columnIndex) {
@@ -226,25 +226,25 @@
 			public void removeListener(ILabelProviderListener listener) {
 			}
 		});
-		
+
 		fViewer.setComparator(new ViewerComparator());
-		
+
 		Composite envcomp = SWTFactory.createComposite(paramcomp, paramcomp.getFont(), 1, 1, GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_FILL, 0, 0);
-		
-		fParametersAddButton = createPushButton(envcomp ,LauncherMessages.appletlauncher_argumenttab_parameters_button_add_text, null); 
+
+		fParametersAddButton = createPushButton(envcomp ,LauncherMessages.appletlauncher_argumenttab_parameters_button_add_text, null);
 		fParametersAddButton.addSelectionListener(fListener);
-		
-		fParametersEditButton = createPushButton(envcomp, LauncherMessages.appletlauncher_argumenttab_parameters_button_edit_text, null); 
+
+		fParametersEditButton = createPushButton(envcomp, LauncherMessages.appletlauncher_argumenttab_parameters_button_edit_text, null);
 		fParametersEditButton.addSelectionListener(fListener);
-		
-		fParametersRemoveButton = createPushButton(envcomp, LauncherMessages.appletlauncher_argumenttab_parameters_button_remove_text, null); 
+
+		fParametersRemoveButton = createPushButton(envcomp, LauncherMessages.appletlauncher_argumenttab_parameters_button_remove_text, null);
 		fParametersRemoveButton.addSelectionListener(fListener);
-		
+
 		setParametersButtonsEnableState();
 		Dialog.applyDialogFont(parent);
 	}
 
-		
+
 	/**
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#isValid(ILaunchConfiguration)
 	 */
@@ -254,24 +254,24 @@
 		try {
 			Integer.parseInt(getWidthText());
 		} catch(NumberFormatException nfe) {
-			setErrorMessage(LauncherMessages.appletlauncher_argumenttab_width_error_notaninteger); 
+			setErrorMessage(LauncherMessages.appletlauncher_argumenttab_width_error_notaninteger);
 			return false;
 		}
 		try {
 			Integer.parseInt(getHeightText());
 		} catch(NumberFormatException nfe) {
-			setErrorMessage(LauncherMessages.appletlauncher_argumenttab_height_error_notaninteger); 
+			setErrorMessage(LauncherMessages.appletlauncher_argumenttab_height_error_notaninteger);
 			return false;
 		}
 		return true;
 	}
 
 	private void handleParametersAddButtonSelected() {
-		NameValuePairDialog dialog = 
-			new NameValuePairDialog(getShell(), 
-				LauncherMessages.appletlauncher_argumenttab_parameters_dialog_add_title,  
-				new String[] {LauncherMessages.appletlauncher_argumenttab_parameters_dialog_add_name_text, LauncherMessages.appletlauncher_argumenttab_parameters_dialog_add_value_text},  // 
-				new String[] {EMPTY_STRING, EMPTY_STRING}); 
+		NameValuePairDialog dialog =
+			new NameValuePairDialog(getShell(),
+				LauncherMessages.appletlauncher_argumenttab_parameters_dialog_add_title,
+				new String[] {LauncherMessages.appletlauncher_argumenttab_parameters_dialog_add_name_text, LauncherMessages.appletlauncher_argumenttab_parameters_dialog_add_value_text},  //
+				new String[] {EMPTY_STRING, EMPTY_STRING});
 		openNewParameterDialog(dialog, null);
 		setParametersButtonsEnableState();
 	}
@@ -281,14 +281,14 @@
 		String key = (String) selection.getFirstElement();
 		Map<String, String> params = getViewerInput();
 		String value = params.get(key);
-		
+
 		NameValuePairDialog dialog =
-			new NameValuePairDialog(getShell(), 
-				LauncherMessages.appletlauncher_argumenttab_parameters_dialog_edit_title,  
-				new String[] {LauncherMessages.appletlauncher_argumenttab_parameters_dialog_edit_name_text, LauncherMessages.appletlauncher_argumenttab_parameters_dialog_edit_value_text},  // 
+			new NameValuePairDialog(getShell(),
+				LauncherMessages.appletlauncher_argumenttab_parameters_dialog_edit_title,
+				new String[] {LauncherMessages.appletlauncher_argumenttab_parameters_dialog_edit_name_text, LauncherMessages.appletlauncher_argumenttab_parameters_dialog_edit_value_text},  //
 				new String[] {key, value});
-		
-		openNewParameterDialog(dialog, key);		
+
+		openNewParameterDialog(dialog, key);
 	}
 
 	private void handleParametersRemoveButtonSelected() {
@@ -297,7 +297,7 @@
 		for (int i = 0; i < keys.length; i++) {
 			String key = (String) keys[i];
 			Map<String, String> params = getViewerInput();
-			params.remove(key);			
+			params.remove(key);
 		}
 		fViewer.refresh();
 		setParametersButtonsEnableState();
@@ -321,7 +321,7 @@
 			} else {
 				fParametersEditButton.setEnabled(false);
 			}
-		}		
+		}
 		fParametersAddButton.setEnabled(true);
 	}
 
@@ -339,7 +339,7 @@
 		params.remove(key);
 		params.put(nameValuePair[0], nameValuePair[1]);
 		fViewer.refresh();
-		updateLaunchConfigurationDialog();	
+		updateLaunchConfigurationDialog();
 	}
 
 	@SuppressWarnings("unchecked")
@@ -371,7 +371,7 @@
 	private String getWidthText() {
 		return fWidthText.getText().trim();
 	}
-	
+
 	/**
 	 * Returns the current height specified by the user
 	 * @return the height specified by the user
@@ -386,7 +386,7 @@
 	@Override
 	public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {
 	}
-	
+
 
 	/**
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#initializeFrom(ILaunchConfiguration)
@@ -394,22 +394,22 @@
 	@Override
 	public void initializeFrom(ILaunchConfiguration config) {
 		try {
-			fWidthText.setText(Integer.toString(config.getAttribute(IJavaLaunchConfigurationConstants.ATTR_APPLET_WIDTH, DEFAULT_APPLET_WIDTH))); 
+			fWidthText.setText(Integer.toString(config.getAttribute(IJavaLaunchConfigurationConstants.ATTR_APPLET_WIDTH, DEFAULT_APPLET_WIDTH)));
 		} catch(CoreException ce) {
-			fWidthText.setText(Integer.toString(DEFAULT_APPLET_WIDTH)); 
+			fWidthText.setText(Integer.toString(DEFAULT_APPLET_WIDTH));
 		}
 		try {
-			fHeightText.setText(Integer.toString(config.getAttribute(IJavaLaunchConfigurationConstants.ATTR_APPLET_HEIGHT, DEFAULT_APPLET_HEIGHT))); 
+			fHeightText.setText(Integer.toString(config.getAttribute(IJavaLaunchConfigurationConstants.ATTR_APPLET_HEIGHT, DEFAULT_APPLET_HEIGHT)));
 		} catch(CoreException ce) {
-			fHeightText.setText(Integer.toString(DEFAULT_APPLET_HEIGHT)); 
+			fHeightText.setText(Integer.toString(DEFAULT_APPLET_HEIGHT));
 		}
 		try {
-			fNameText.setText(config.getAttribute(IJavaLaunchConfigurationConstants.ATTR_APPLET_NAME, LauncherMessages.appletlauncher_argumenttab_name_defaultvalue)); 
+			fNameText.setText(config.getAttribute(IJavaLaunchConfigurationConstants.ATTR_APPLET_NAME, LauncherMessages.appletlauncher_argumenttab_name_defaultvalue));
 		} catch(CoreException ce) {
-			fNameText.setText(LauncherMessages.appletlauncher_argumenttab_name_defaultvalue); 
+			fNameText.setText(LauncherMessages.appletlauncher_argumenttab_name_defaultvalue);
 		}
-		
-		Map<String, String> input = new HashMap<String, String>();
+
+		Map<String, String> input = new HashMap<>();
 		try {
 			 Map<String, String> params = config.getAttribute(IJavaLaunchConfigurationConstants.ATTR_APPLET_PARAMETERS, (Map<String, String>) null);
              if (params != null) {
@@ -417,7 +417,7 @@
 			}
 		} catch (CoreException e) {
 		}
-		
+
 		fViewer.setInput(input);
 	}
 
@@ -426,27 +426,27 @@
 	 */
 	@Override
 	public String getName() {
-		return LauncherMessages.appletlauncher_argumenttab_name; 
-	}	
-	
+		return LauncherMessages.appletlauncher_argumenttab_name;
+	}
+
 	/**
 	 * @see org.eclipse.debug.ui.AbstractLaunchConfigurationTab#getId()
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	@Override
 	public String getId() {
 		return "org.eclipse.jdt.debug.ui.appletParametersTab"; //$NON-NLS-1$
 	}
-	
+
 	/**
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#getImage()
 	 */
 	@Override
 	public Image getImage() {
 		return JavaDebugImages.get(JavaDebugImages.IMG_VIEW_ARGUMENTS_TAB);
-	}	
-	
+	}
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#activated(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
 	 */
@@ -461,6 +461,6 @@
 	@Override
 	public void deactivated(ILaunchConfigurationWorkingCopy workingCopy) {
 		// do nothing when de-activated
-	}	
+	}
 }
 
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaAppletLaunchShortcut.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaAppletLaunchShortcut.java
index 6c6faec..8cc42c8 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaAppletLaunchShortcut.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaAppletLaunchShortcut.java
@@ -28,7 +28,7 @@
 import org.eclipse.jface.operation.IRunnableContext;
 
 /**
- * 
+ *
  * Launch shortcut for Java applets.
  * <p>
  * This class may be instantiated or subclassed.
@@ -36,7 +36,7 @@
  * @since 3.3
  */
 public class JavaAppletLaunchShortcut extends JavaLaunchShortcut {
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.debug.ui.launchConfigurations.JavaLaunchShortcut#createConfiguration(org.eclipse.jdt.core.IType)
 	 */
@@ -45,27 +45,27 @@
 		ILaunchConfiguration config = null;
 		try {
 			ILaunchConfigurationType configType = getConfigurationType();
-			ILaunchConfigurationWorkingCopy wc = configType.newInstance(null, DebugPlugin.getDefault().getLaunchManager().generateLaunchConfigurationName(type.getElementName())); 
+			ILaunchConfigurationWorkingCopy wc = configType.newInstance(null, DebugPlugin.getDefault().getLaunchManager().generateLaunchConfigurationName(type.getElementName()));
 			wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME, type.getFullyQualifiedName());
 			wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, type.getJavaProject().getElementName());
 			wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_APPLET_WIDTH, AppletParametersTab.DEFAULT_APPLET_WIDTH);
 			wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_APPLET_HEIGHT, AppletParametersTab.DEFAULT_APPLET_HEIGHT);
 			wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_APPLET_NAME, ""); //$NON-NLS-1$
 			wc.setMappedResources(new IResource[] {type.getUnderlyingResource()});
-			config = wc.doSave();		
+			config = wc.doSave();
 		} catch (CoreException ce) {
-			MessageDialog.openError(JDIDebugUIPlugin.getActiveWorkbenchShell(), LauncherMessages.JavaLaunchShortcut_3, ce.getStatus().getMessage());	
+			MessageDialog.openError(JDIDebugUIPlugin.getActiveWorkbenchShell(), LauncherMessages.JavaLaunchShortcut_3, ce.getStatus().getMessage());
 		}
 		return config;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.debug.ui.launchConfigurations.JavaLaunchShortcut#getConfigurationType()
 	 */
 	@Override
 	protected ILaunchConfigurationType getConfigurationType() {
 		ILaunchManager lm= DebugPlugin.getDefault().getLaunchManager();
-		return lm.getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_JAVA_APPLET);		
+		return lm.getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_JAVA_APPLET);
 	}
 
 	/* (non-Javadoc)
@@ -78,7 +78,7 @@
 		} catch (InvocationTargetException e) {
 			throw (CoreException)e.getTargetException();
 		}
-	}	
+	}
 
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.debug.ui.launchConfigurations.JavaLaunchShortcut#getTypeSelectionTitle()
@@ -102,5 +102,5 @@
 	@Override
 	protected String getSelectionEmptyMessage() {
 		return LauncherMessages.JavaAppletLaunchShortcut_2;
-	}	
+	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaApplicationLaunchShortcut.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaApplicationLaunchShortcut.java
index 4b82721..9ac5acd 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaApplicationLaunchShortcut.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaApplicationLaunchShortcut.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.jdt.debug.ui.launchConfigurations;
 
- 
+
 import java.lang.reflect.InvocationTargetException;
 import java.util.ArrayList;
 import java.util.List;
@@ -47,17 +47,17 @@
  * @since 3.3
  */
 public class JavaApplicationLaunchShortcut extends JavaLaunchShortcut {
-	
+
 	/**
 	 * Returns the Java elements corresponding to the given objects. Members are translated
 	 * to corresponding declaring types where possible.
-	 * 
+	 *
 	 * @param objects selected objects
 	 * @return corresponding Java elements
 	 * @since 3.5
 	 */
 	protected IJavaElement[] getJavaElements(Object[] objects) {
-		List<IJavaElement> list= new ArrayList<IJavaElement>(objects.length);
+		List<IJavaElement> list= new ArrayList<>(objects.length);
 		for (int i = 0; i < objects.length; i++) {
 			Object object = objects[i];
 			if (object instanceof IAdaptable) {
@@ -76,7 +76,7 @@
 		}
 		return list.toArray(new IJavaElement[list.size()]);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.debug.ui.launchConfigurations.JavaLaunchShortcut#createConfiguration(org.eclipse.jdt.core.IType)
 	 */
@@ -92,28 +92,28 @@
 			wc.setMappedResources(new IResource[] {type.getUnderlyingResource()});
 			config = wc.doSave();
 		} catch (CoreException exception) {
-			MessageDialog.openError(JDIDebugUIPlugin.getActiveWorkbenchShell(), LauncherMessages.JavaLaunchShortcut_3, exception.getStatus().getMessage());	
-		} 
+			MessageDialog.openError(JDIDebugUIPlugin.getActiveWorkbenchShell(), LauncherMessages.JavaLaunchShortcut_3, exception.getStatus().getMessage());
+		}
 		return config;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.debug.ui.launchConfigurations.JavaLaunchShortcut#getConfigurationType()
 	 */
 	@Override
 	protected ILaunchConfigurationType getConfigurationType() {
-		return getLaunchManager().getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_JAVA_APPLICATION);		
+		return getLaunchManager().getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_JAVA_APPLICATION);
 	}
 
 	/**
 	 * Returns the singleton launch manager.
-	 * 
+	 *
 	 * @return launch manager
 	 */
 	private ILaunchManager getLaunchManager() {
 		return DebugPlugin.getDefault().getLaunchManager();
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.debug.ui.launchConfigurations.JavaLaunchShortcut#findTypes(java.lang.Object[], org.eclipse.jface.operation.IRunnableContext)
 	 */
@@ -136,7 +136,7 @@
 			throw new CoreException(new Status(IStatus.ERROR, JDIDebugUIPlugin.getUniqueIdentifier(), e.getMessage(), e));
 		}
 	}
-	
+
 	/**
 	 * Returns the smallest enclosing <code>IType</code> if the specified object is a main method, or <code>null</code>
 	 * @param o the object to inspect
@@ -158,7 +158,7 @@
 		}
 		return null;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.debug.ui.launchConfigurations.JavaLaunchShortcut#getTypeSelectionTitle()
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaArgumentsTab.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaArgumentsTab.java
index d56395e..bf2eced 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaArgumentsTab.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaArgumentsTab.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *     Remy Chi Jian Suen <remy.suen@gmail.com>
@@ -13,7 +13,7 @@
  *******************************************************************************/
 package org.eclipse.jdt.debug.ui.launchConfigurations;
 
- 
+
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.debug.core.ILaunchConfiguration;
 import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
@@ -56,38 +56,38 @@
  * @noextend This class is not intended to be sub-classed by clients.
  */
 public class JavaArgumentsTab extends JavaLaunchTab {
-		
+
 	// Program arguments widgets
 	protected Label fPrgmArgumentsLabel;
 	protected Text fPrgmArgumentsText;
 
 	// VM arguments widgets
 	protected VMArgumentsBlock fVMArgumentsBlock;
-	
+
 	// Working directory
 	protected WorkingDirectoryBlock fWorkingDirectoryBlock;
-		
+
 	protected static final String EMPTY_STRING = ""; //$NON-NLS-1$
-		
+
 	public JavaArgumentsTab() {
 		fVMArgumentsBlock = createVMArgsBlock();
 		fWorkingDirectoryBlock = createWorkingDirBlock();
 	}
-	
+
 	protected VMArgumentsBlock createVMArgsBlock() {
 		return new VMArgumentsBlock();
 	}
-	
+
 	/**
 	 * Creates a control to specify a working directory.
-	 * 
+	 *
 	 * @return the new {@link WorkingDirectoryBlock}
 	 * @since 3.4
 	 */
 	protected WorkingDirectoryBlock createWorkingDirBlock() {
 		return new JavaWorkingDirectoryBlock();
 	}
-	
+
 	/**
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#createControl(Composite)
 	 */
@@ -98,21 +98,21 @@
 		GridLayout layout = new GridLayout(1, true);
 		comp.setLayout(layout);
 		comp.setFont(font);
-		
+
 		GridData gd = new GridData(GridData.FILL_BOTH);
 		comp.setLayoutData(gd);
 		setControl(comp);
 		setHelpContextId();
-		
+
 		Group group = new Group(comp, SWT.NONE);
 		group.setFont(font);
 		layout = new GridLayout();
 		group.setLayout(layout);
 		group.setLayoutData(new GridData(GridData.FILL_BOTH));
-		
-		String controlName = (LauncherMessages.JavaArgumentsTab__Program_arguments__5); 
+
+		String controlName = (LauncherMessages.JavaArgumentsTab__Program_arguments__5);
 		group.setText(controlName);
-		
+
 		fPrgmArgumentsText = new Text(group, SWT.MULTI | SWT.WRAP | SWT.BORDER | SWT.V_SCROLL);
 		fPrgmArgumentsText.addTraverseListener(new TraverseListener() {
 			@Override
@@ -149,9 +149,9 @@
 			}
 		});
 		ControlAccessibleListener.addListener(fPrgmArgumentsText, group.getText());
-		
-		String buttonLabel = LauncherMessages.JavaArgumentsTab_5;  
-		Button pgrmArgVariableButton = createPushButton(group, buttonLabel, null); 
+
+		String buttonLabel = LauncherMessages.JavaArgumentsTab_5;
+		Button pgrmArgVariableButton = createPushButton(group, buttonLabel, null);
 		pgrmArgVariableButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
 		pgrmArgVariableButton.addSelectionListener(new SelectionAdapter() {
 			@Override
@@ -164,27 +164,27 @@
 				}
 			}
 		});
-		
+
 		fVMArgumentsBlock.createControl(comp);
-		
-		fWorkingDirectoryBlock.createControl(comp);		
+
+		fWorkingDirectoryBlock.createControl(comp);
 	}
-	
+
 	/**
 	 * Set the help context id for this launch config tab.  Subclasses may
 	 * override this method.
 	 */
 	protected void setHelpContextId() {
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), IJavaDebugHelpContextIds.LAUNCH_CONFIGURATION_DIALOG_ARGUMENTS_TAB);		
+		PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), IJavaDebugHelpContextIds.LAUNCH_CONFIGURATION_DIALOG_ARGUMENTS_TAB);
 	}
-			
+
 	/**
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#dispose()
 	 */
 	@Override
 	public void dispose() {
 	}
-		
+
 	/**
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#isValid(ILaunchConfiguration)
 	 */
@@ -195,7 +195,7 @@
 
 	/**
 	 * Defaults are empty.
-	 * 
+	 *
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#setDefaults(ILaunchConfigurationWorkingCopy)
 	 */
 	@Override
@@ -215,7 +215,7 @@
 			fVMArgumentsBlock.initializeFrom(configuration);
 			fWorkingDirectoryBlock.initializeFrom(configuration);
 		} catch (CoreException e) {
-			setErrorMessage(LauncherMessages.JavaArgumentsTab_Exception_occurred_reading_configuration___15 + e.getStatus().getMessage()); 
+			setErrorMessage(LauncherMessages.JavaArgumentsTab_Exception_occurred_reading_configuration___15 + e.getStatus().getMessage());
 			JDIDebugUIPlugin.log(e);
 		}
 	}
@@ -232,7 +232,7 @@
 
 	/**
 	 * Returns the string in the text widget, or <code>null</code> if empty.
-	 * 
+	 *
 	 * @param text the widget to get the value from
 	 * @return text or <code>null</code>
 	 */
@@ -243,15 +243,15 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#getName()
 	 */
 	@Override
 	public String getName() {
-		return LauncherMessages.JavaArgumentsTab__Arguments_16; 
-	}	
-	
+		return LauncherMessages.JavaArgumentsTab__Arguments_16;
+	}
+
 	/**
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#setLaunchConfigurationDialog(ILaunchConfigurationDialog)
 	 */
@@ -260,7 +260,7 @@
 		super.setLaunchConfigurationDialog(dialog);
 		fWorkingDirectoryBlock.setLaunchConfigurationDialog(dialog);
 		fVMArgumentsBlock.setLaunchConfigurationDialog(dialog);
-	}	
+	}
 	/**
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#getErrorMessage()
 	 */
@@ -284,18 +284,18 @@
 		}
 		return m;
 	}
-	
+
 	/**
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#getImage()
 	 */
 	@Override
 	public Image getImage() {
 		return JavaDebugImages.get(JavaDebugImages.IMG_VIEW_ARGUMENTS_TAB);
-	}	
-	
+	}
+
 	/**
 	 * @see org.eclipse.debug.ui.AbstractLaunchConfigurationTab#getId()
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaClasspathTab.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaClasspathTab.java
index 13afaae..0b57588 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaClasspathTab.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaClasspathTab.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2015 IBM Corporation and others.
+ * Copyright (c) 2000, 2017 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -71,7 +71,7 @@
  * attribute.
  * <p>
  * Clients may call {@link #setHelpContextId(String)} on this tab prior to control
- * creation to alter the default context help associated with this tab. 
+ * creation to alter the default context help associated with this tab.
  * </p>
  * <p>
  * This class may be instantiated.
@@ -85,49 +85,49 @@
 	private ClasspathModel fModel;
 
 	protected static final String DIALOG_SETTINGS_PREFIX = "JavaClasspathTab"; //$NON-NLS-1$
-	
+
 	/**
 	 * The last launch config this tab was initialized from
 	 */
 	protected ILaunchConfiguration fLaunchConfiguration;
-	
+
 	/**
 	 * Constructor
 	 */
 	public JavaClasspathTab() {
 		setHelpContextId(IJavaDebugHelpContextIds.LAUNCH_CONFIGURATION_DIALOG_CLASSPATH_TAB);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#createControl(org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
 	public void createControl(Composite parent) {
 		Font font = parent.getFont();
-		
+
 		Composite comp = new Composite(parent, SWT.NONE);
 		setControl(comp);
 		PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), getHelpContextId());
 		GridLayout topLayout = new GridLayout();
 		topLayout.numColumns = 2;
-		comp.setLayout(topLayout);		
+		comp.setLayout(topLayout);
 		GridData gd;
-		
+
 		Label label = new Label(comp, SWT.NONE);
-		label.setText(LauncherMessages.JavaClasspathTab_0); 
+		label.setText(LauncherMessages.JavaClasspathTab_0);
 		gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
 		gd.horizontalSpan = 2;
 		label.setLayoutData(gd);
-		
+
 		fClasspathViewer = new RuntimeClasspathViewer(comp);
 		fClasspathViewer.addEntriesChangedListener(this);
-		fClasspathViewer.getControl().setFont(font);
-		fClasspathViewer.setLabelProvider(new ClasspathLabelProvider());
-		fClasspathViewer.setContentProvider(new ClasspathContentProvider(this));
+		fClasspathViewer.getTreeViewer().getControl().setFont(font);
+		fClasspathViewer.getTreeViewer().setLabelProvider(new ClasspathLabelProvider());
+		fClasspathViewer.getTreeViewer().setContentProvider(new ClasspathContentProvider(this));
 		if (!isShowBootpath()) {
-			fClasspathViewer.addFilter(new BootpathFilter());
+			fClasspathViewer.getTreeViewer().addFilter(new BootpathFilter());
 		}
-	
+
 		Composite pathButtonComp = new Composite(comp, SWT.NONE);
 		GridLayout pathButtonLayout = new GridLayout();
 		pathButtonLayout.marginHeight = 0;
@@ -136,19 +136,19 @@
 		gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_FILL);
 		pathButtonComp.setLayoutData(gd);
 		pathButtonComp.setFont(font);
-		
+
 		createPathButtons(pathButtonComp);
 	}
-	
+
 	/**
 	 * Creates the buttons to manipulate the classpath.
-	 * 
+	 *
 	 * @param pathButtonComp composite buttons are contained in
 	 * @since 3.0
 	 */
 	protected void createPathButtons(Composite pathButtonComp) {
-		List<RuntimeClasspathAction> advancedActions = new ArrayList<RuntimeClasspathAction>(5);
-		
+		List<RuntimeClasspathAction> advancedActions = new ArrayList<>(5);
+
 		createButton(pathButtonComp, new MoveUpAction(fClasspathViewer));
 		createButton(pathButtonComp, new MoveDownAction(fClasspathViewer));
 		createButton(pathButtonComp, new RemoveAction(fClasspathViewer));
@@ -156,27 +156,27 @@
 		createButton(pathButtonComp, new AddJarAction(fClasspathViewer));
 		createButton(pathButtonComp, new AddExternalJarAction(fClasspathViewer, DIALOG_SETTINGS_PREFIX));
 
-		RuntimeClasspathAction action = new AddFolderAction(null);								
+		RuntimeClasspathAction action = new AddFolderAction(null);
 		advancedActions.add(action);
-		
-		action = new AddExternalFolderAction(null, DIALOG_SETTINGS_PREFIX);								
-		advancedActions.add(action);		
 
-		action = new AddVariableAction(null);								
-		advancedActions.add(action);	
-		
+		action = new AddExternalFolderAction(null, DIALOG_SETTINGS_PREFIX);
+		advancedActions.add(action);
+
+		action = new AddVariableAction(null);
+		advancedActions.add(action);
+
 		action = new AddLibraryAction(null);
 		advancedActions.add(action);
-		
-		action = new AttachSourceAction(null, SWT.RADIO);								
+
+		action = new AttachSourceAction(null, SWT.RADIO);
 		advancedActions.add(action);
-		
+
 		IAction[] adv = advancedActions.toArray(new IAction[advancedActions.size()]);
 		createButton(pathButtonComp, new AddAdvancedAction(fClasspathViewer, adv));
 
 		action = new EditClasspathEntryAction(fClasspathViewer, getLaunchConfiguration());
 		createButton(pathButtonComp, action);
-		
+
 		action= new RestoreDefaultEntriesAction(fClasspathViewer, this);
 		createButton(pathButtonComp, action);
 		action.setEnabled(true);
@@ -184,7 +184,7 @@
 
 	/**
 	 * Creates a button for the given action.
-	 * 
+	 *
 	 * @param pathButtonComp parent composite for the button
 	 * @param action the action triggered by the button
 	 * @return the button that was created
@@ -208,9 +208,9 @@
 	@Override
 	public void initializeFrom(ILaunchConfiguration configuration) {
 		refresh(configuration);
-		fClasspathViewer.expandToLevel(2);
+		fClasspathViewer.getTreeViewer().expandToLevel(2);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#activated(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
 	 */
@@ -224,46 +224,31 @@
 					return;
 				}
 			}
-			fClasspathViewer.refresh();
+			fClasspathViewer.getTreeViewer().refresh();
 		} catch (CoreException e) {
 		}
 	}
-	
+
 	/**
 	 * Refreshes the classpath entries based on the current state of the given
 	 * launch configuration.
 	 * @param configuration the configuration
 	 */
 	private void refresh(ILaunchConfiguration configuration) {
-		boolean useDefault = true;
 		setErrorMessage(null);
-		try {
-			useDefault = configuration.getAttribute(IJavaLaunchConfigurationConstants.ATTR_DEFAULT_CLASSPATH, true);
-		} catch (CoreException e) {
-			JDIDebugUIPlugin.log(e);
-		}
-		
-		if (configuration == getLaunchConfiguration()) {
-			// no need to update if an explicit path is being used and this setting
-			// has not changed (and viewing the same config as last time)
-			if (!useDefault) {
-				setDirty(false);
-				return;			
-			}
-		}
-		
+
 		setLaunchConfiguration(configuration);
 		try {
 			createClasspathModel(configuration);
 		} catch (CoreException e) {
 			setErrorMessage(e.getMessage());
 		}
-		
+
 		fClasspathViewer.setLaunchConfiguration(configuration);
-		fClasspathViewer.setInput(fModel);
+		fClasspathViewer.getTreeViewer().setInput(fModel);
 		setDirty(false);
 	}
-	
+
 	private void createClasspathModel(ILaunchConfiguration configuration) throws CoreException {
 		fModel= new ClasspathModel();
 		IRuntimeClasspathEntry[] entries= JavaRuntime.computeUnresolvedRuntimeClasspath(configuration);
@@ -271,16 +256,16 @@
 		for (int i = 0; i < entries.length; i++) {
 			entry= entries[i];
 			switch (entry.getClasspathProperty()) {
-				case IRuntimeClasspathEntry.USER_CLASSES:				
+				case IRuntimeClasspathEntry.USER_CLASSES:
 					fModel.addEntry(ClasspathModel.USER, entry);
 					break;
 				default:
 					fModel.addEntry(ClasspathModel.BOOTSTRAP, entry);
 					break;
 			}
-		}	
+		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#performApply(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
 	 */
@@ -295,35 +280,35 @@
 			} else {
 				configuration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_DEFAULT_CLASSPATH, false);
 				try {
-					List<String> mementos = new ArrayList<String>(classpath.length);
+					List<String> mementos = new ArrayList<>(classpath.length);
 					for (int i = 0; i < classpath.length; i++) {
 						IRuntimeClasspathEntry entry = classpath[i];
 						mementos.add(entry.getMemento());
 					}
 					configuration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_CLASSPATH, mementos);
 				} catch (CoreException e) {
-					JDIDebugUIPlugin.statusDialog(LauncherMessages.JavaClasspathTab_Unable_to_save_classpath_1, e.getStatus()); 
-				}	
+					JDIDebugUIPlugin.statusDialog(LauncherMessages.JavaClasspathTab_Unable_to_save_classpath_1, e.getStatus());
+				}
 			}
 		}
 	}
-	
+
 	/**
 	 * Returns the classpath entries currently specified by this tab.
-	 * 
+	 *
 	 * @return the classpath entries currently specified by this tab
 	 */
 	private IRuntimeClasspathEntry[] getCurrentClasspath() {
 		IClasspathEntry[] boot = fModel.getEntries(ClasspathModel.BOOTSTRAP);
 		IClasspathEntry[] user = fModel.getEntries(ClasspathModel.USER);
-		List<IRuntimeClasspathEntry> entries = new ArrayList<IRuntimeClasspathEntry>(boot.length + user.length);
+		List<IRuntimeClasspathEntry> entries = new ArrayList<>(boot.length + user.length);
 		IClasspathEntry bootEntry;
 		IRuntimeClasspathEntry entry;
 		for (int i = 0; i < boot.length; i++) {
 			bootEntry= boot[i];
 			entry = null;
 			if (bootEntry instanceof ClasspathEntry) {
-				entry = ((ClasspathEntry)bootEntry).getDelegate(); 
+				entry = ((ClasspathEntry)bootEntry).getDelegate();
 			} else if (bootEntry instanceof IRuntimeClasspathEntry) {
 				entry= (IRuntimeClasspathEntry) boot[i];
 			}
@@ -347,14 +332,14 @@
 				entry.setClasspathProperty(IRuntimeClasspathEntry.USER_CLASSES);
 				entries.add(entry);
 			}
-		}			
+		}
 		return entries.toArray(new IRuntimeClasspathEntry[entries.size()]);
 	}
 
 	/**
 	 * Returns whether the specified classpath is equivalent to the
 	 * default classpath for this configuration.
-	 * 
+	 *
 	 * @param classpath classpath to compare to default
 	 * @param configuration original configuration
 	 * @return whether the specified classpath is equivalent to the
@@ -385,37 +370,37 @@
 	 */
 	@Override
 	public String getName() {
-		return LauncherMessages.JavaClasspathTab_Cla_ss_path_3; 
+		return LauncherMessages.JavaClasspathTab_Cla_ss_path_3;
 	}
-	
+
 	/**
 	 * @see org.eclipse.debug.ui.AbstractLaunchConfigurationTab#getId()
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	@Override
 	public String getId() {
 		return "org.eclipse.jdt.debug.ui.javaClasspathTab"; //$NON-NLS-1$
 	}
-	
+
 	/**
 	 * Returns the image for this tab, or <code>null</code> if none
-	 * 
+	 *
 	 * @return the image for this tab, or <code>null</code> if none
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#getImage()
 	 */
 	public static Image getClasspathImage() {
 		return JavaDebugImages.get(JavaDebugImages.IMG_OBJS_CLASSPATH);
 	}
-	
+
 	/**
 	 * Sets the launch configuration for this classpath tab
 	 * @param config the backing {@link ILaunchConfiguration}
 	 */
 	private void setLaunchConfiguration(ILaunchConfiguration config) {
 		fLaunchConfiguration = config;
-	}	
-	
+	}
+
 	/**
 	 * Returns the current launch configuration
 	 * @return the backing {@link ILaunchConfiguration}
@@ -423,7 +408,7 @@
 	public ILaunchConfiguration getLaunchConfiguration() {
 		return fLaunchConfiguration;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#dispose()
 	 */
@@ -442,7 +427,7 @@
 	public Image getImage() {
 		return getClasspathImage();
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#isValid(org.eclipse.debug.core.ILaunchConfiguration)
 	 */
@@ -462,19 +447,19 @@
 			if (status.isOK()) {
 				IProject project= ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
 				if (!project.exists()) {
-					setErrorMessage(NLS.bind(LauncherMessages.JavaMainTab_20, new String[] {projectName})); 
+					setErrorMessage(NLS.bind(LauncherMessages.JavaMainTab_20, new String[] {projectName}));
 					return false;
 				}
 				if (!project.isOpen()) {
-					setErrorMessage(NLS.bind(LauncherMessages.JavaMainTab_21, new String[] {projectName})); 
+					setErrorMessage(NLS.bind(LauncherMessages.JavaMainTab_21, new String[] {projectName}));
 					return false;
 				}
 			} else {
-				setErrorMessage(NLS.bind(LauncherMessages.JavaMainTab_19, new String[]{status.getMessage()})); 
+				setErrorMessage(NLS.bind(LauncherMessages.JavaMainTab_19, new String[]{status.getMessage()}));
 				return false;
 			}
 		}
-		
+
 		IRuntimeClasspathEntry [] entries = fModel.getAllEntries();
 		int type = -1;
 		for (int i=0; i<entries.length; i++) {
@@ -493,20 +478,20 @@
 				}
 			}
 		}
-		
+
 		return true;
 	}
-	
+
 	/**
 	 * Returns whether the bootpath should be displayed.
-	 * 
+	 *
 	 * @return whether the bootpath should be displayed
 	 * @since 3.0
 	 */
 	public boolean isShowBootpath() {
 		return true;
 	}
-	
+
 	/**
 	 * @return Returns the classpath model.
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaConnectTab.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaConnectTab.java
index 368d484..b344005 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaConnectTab.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaConnectTab.java
@@ -67,14 +67,14 @@
  * @noextend This class is not intended to be sub-classed by clients.
  */
 public class JavaConnectTab extends AbstractJavaMainTab implements IPropertyChangeListener {
-	
+
 	// UI widgets
 	private Button fAllowTerminateButton;
 	private Map<String, Connector.Argument> fArgumentMap;
-	private Map<String, FieldEditor> fFieldEditorMap = new HashMap<String, FieldEditor>();
+	private Map<String, FieldEditor> fFieldEditorMap = new HashMap<>();
 	private Composite fArgumentComposite;
 	private Combo fConnectorCombo;
-	
+
 	// the selected connector
 	private IVMConnector fConnector;
 	private IVMConnector[] fConnectors = JavaRuntime.getVMConnectors();
@@ -91,14 +91,14 @@
 		comp.setLayout(layout);
 		createProjectEditor(comp);
 		createVerticalSpacer(comp, 1);
-		
+
 	//connection type
 		Group group = SWTFactory.createGroup(comp, LauncherMessages.JavaConnectTab_Connect_ion_Type__7, 1, 1, GridData.FILL_HORIZONTAL);
 		String[] names = new String[fConnectors.length];
 		for (int i = 0; i < fConnectors.length; i++) {
 			names[i] = fConnectors[i].getName();
 		}
-		fConnectorCombo = SWTFactory.createCombo(group, SWT.READ_ONLY, 1, GridData.FILL_HORIZONTAL, names); 
+		fConnectorCombo = SWTFactory.createCombo(group, SWT.READ_ONLY, 1, GridData.FILL_HORIZONTAL, names);
 		fConnectorCombo.addSelectionListener(new SelectionAdapter() {
 			@Override
 			public void widgetSelected(SelectionEvent e) {
@@ -106,19 +106,19 @@
 			}
 		});
 		createVerticalSpacer(comp, 1);
-		
+
 	//connection properties
 		group = SWTFactory.createGroup(comp, LauncherMessages.JavaConnectTab_Connection_Properties_1, 2, 1, GridData.FILL_HORIZONTAL);
 		Composite cgroup = SWTFactory.createComposite(group, font, 2, 1, GridData.FILL_HORIZONTAL);
 		fArgumentComposite = cgroup;
 		createVerticalSpacer(comp, 2);
-		fAllowTerminateButton = createCheckButton(comp, LauncherMessages.JavaConnectTab__Allow_termination_of_remote_VM_6); 
+		fAllowTerminateButton = createCheckButton(comp, LauncherMessages.JavaConnectTab__Allow_termination_of_remote_VM_6);
 		fAllowTerminateButton.addSelectionListener(getDefaultListener());
-		
+
 		setControl(comp);
 		PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), IJavaDebugHelpContextIds.LAUNCH_CONFIGURATION_DIALOG_CONNECT_TAB);
 	}
-	
+
 	/**
 	 * Update the argument area to show the selected connector's arguments
 	 */
@@ -135,15 +135,15 @@
 		try {
 			fArgumentMap = vm.getDefaultArguments();
 		} catch (CoreException e) {
-			JDIDebugUIPlugin.statusDialog(LauncherMessages.JavaConnectTab_Unable_to_display_connection_arguments__2, e.getStatus()); 
+			JDIDebugUIPlugin.statusDialog(LauncherMessages.JavaConnectTab_Unable_to_display_connection_arguments__2, e.getStatus());
 			return;
 		}
-		
+
 		// Dispose of any current child widgets in the tab holder area
 		Control[] children = fArgumentComposite.getChildren();
 		for (int i = 0; i < children.length; i++) {
 			children[i].dispose();
-		} 
+		}
 		fFieldEditorMap.clear();
 		PreferenceStore store = new PreferenceStore();
 		// create editors
@@ -173,7 +173,7 @@
 				field = new StringFieldEditor(arg.name(), arg.label(), fArgumentComposite);
 			} else if (arg instanceof Connector.BooleanArgument) {
 				store.setDefault(arg.name(), ((Connector.BooleanArgument)arg).booleanValue());
-				field = new BooleanFieldEditor(arg.name(), arg.label(), fArgumentComposite);					
+				field = new BooleanFieldEditor(arg.name(), arg.label(), fArgumentComposite);
 			}
 			if(field != null) {
 				field.setPreferenceStore(store);
@@ -184,9 +184,9 @@
 		}
 		fArgumentComposite.getParent().getParent().layout();
 		fArgumentComposite.layout(true);
-		updateLaunchConfigurationDialog();		
+		updateLaunchConfigurationDialog();
 	}
-	
+
 	 /* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.launcher.AbstractJavaMainTab#initializeFrom(org.eclipse.debug.core.ILaunchConfiguration)
 	 */
@@ -196,7 +196,7 @@
 		updateAllowTerminateFromConfig(config);
 		updateConnectionFromConfig(config);
 	}
-	
+
 	/**
 	 * Updates the state of the allow terminate check button from the specified configuration
 	 * @param config the config to load from
@@ -204,10 +204,10 @@
 	private void updateAllowTerminateFromConfig(ILaunchConfiguration config) {
 		boolean allowTerminate = false;
 		try {
-			allowTerminate = config.getAttribute(IJavaLaunchConfigurationConstants.ATTR_ALLOW_TERMINATE, false);	
+			allowTerminate = config.getAttribute(IJavaLaunchConfigurationConstants.ATTR_ALLOW_TERMINATE, false);
 		}
 		catch (CoreException ce) {JDIDebugUIPlugin.log(ce);}
-		fAllowTerminateButton.setSelection(allowTerminate);	
+		fAllowTerminateButton.setSelection(allowTerminate);
 	}
 
 	/**
@@ -220,7 +220,7 @@
 			id = config.getAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_CONNECTOR, JavaRuntime.getDefaultVMConnector().getIdentifier());
 			fConnectorCombo.setText(JavaRuntime.getVMConnector(id).getName());
 			handleConnectorComboModified();
-			
+
 			Map<String, String> attrMap = config.getAttribute(IJavaLaunchConfigurationConstants.ATTR_CONNECT_MAP, (Map<String, String>)null);
 			if (attrMap == null) {
 				return;
@@ -234,7 +234,7 @@
 					String value = attrMap.get(key);
 					if (arg instanceof Connector.StringArgument || arg instanceof Connector.SelectedArgument) {
 						editor.getPreferenceStore().setValue(key, value);
-					} 
+					}
 					else if (arg instanceof Connector.BooleanArgument) {
 						editor.getPreferenceStore().setValue(key, Boolean.valueOf(value).booleanValue());
 					}
@@ -243,9 +243,9 @@
 					}
 					editor.load();
 				}
-			}						
-		} 
-		catch (CoreException ce) {JDIDebugUIPlugin.log(ce);}	
+			}
+		}
+		catch (CoreException ce) {JDIDebugUIPlugin.log(ce);}
 	}
 
 	/* (non-Javadoc)
@@ -257,7 +257,7 @@
 		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_ALLOW_TERMINATE, fAllowTerminateButton.getSelection());
 		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_CONNECTOR, getSelectedConnector().getIdentifier());
 		mapResources(config);
-		Map<String, String> attrMap = new HashMap<String, String>(fFieldEditorMap.size());
+		Map<String, String> attrMap = new HashMap<>(fFieldEditorMap.size());
 		Iterator<String> keys = fFieldEditorMap.keySet().iterator();
 		while (keys.hasNext()) {
 			String key = keys.next();
@@ -272,14 +272,14 @@
 			}
 			else if (arg instanceof Connector.BooleanArgument) {
 				attrMap.put(key, Boolean.valueOf(editor.getPreferenceStore().getBoolean(key)).toString());
-			} 
+			}
 			else if (arg instanceof Connector.IntegerArgument) {
 				attrMap.put(key, new Integer(editor.getPreferenceStore().getInt(key)).toString());
 			}
-		}				
+		}
 		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_CONNECT_MAP, attrMap);
 	}
-	
+
 	/**
 	 * Initialize default settings for the given Java element
 	 * @param javaElement the Java element
@@ -299,7 +299,7 @@
 		IJavaElement javaElement = getContext();
 		if (javaElement == null) {
 			initializeHardCodedDefaults(config);
-		} 
+		}
 		else {
 			initializeDefaults(javaElement, config);
 		}
@@ -321,11 +321,11 @@
 				if (index > 0) {
 					name = name.substring(0, index);
 				}
-			} 
+			}
 			else {
 				name= javaElement.getElementName();
 			}
-			name = getLaunchConfigurationDialog().generateName(name);				
+			name = getLaunchConfigurationDialog().generateName(name);
 		}
 		catch (JavaModelException jme) {JDIDebugUIPlugin.log(jme);}
 		config.rename(name);
@@ -344,13 +344,13 @@
 	 * @see org.eclipse.debug.ui.AbstractLaunchConfigurationTab#isValid(org.eclipse.debug.core.ILaunchConfiguration)
 	 */
 	@Override
-	public boolean isValid(ILaunchConfiguration config) {	
+	public boolean isValid(ILaunchConfiguration config) {
 		setErrorMessage(null);
-		setMessage(null);	
+		setMessage(null);
 		String name = fProjText.getText().trim();
 		if (name.length() > 0) {
 			if (!ResourcesPlugin.getWorkspace().getRoot().getProject(name).exists()) {
-				setErrorMessage(LauncherMessages.JavaConnectTab_Project_does_not_exist_14); 
+				setErrorMessage(LauncherMessages.JavaConnectTab_Project_does_not_exist_14);
 				return false;
 			}
 		}
@@ -362,11 +362,11 @@
 			if (editor instanceof StringFieldEditor) {
 				String value = ((StringFieldEditor)editor).getStringValue();
 				if (!arg.isValid(value)) {
-					setErrorMessage(arg.label() + LauncherMessages.JavaConnectTab__is_invalid__5); 
+					setErrorMessage(arg.label() + LauncherMessages.JavaConnectTab__is_invalid__5);
 					return false;
-				}		
+				}
 			}
-		}							
+		}
 		return true;
 	}
 
@@ -376,7 +376,7 @@
 	@Override
 	public String getName() {
 		return LauncherMessages.JavaConnectTab_Conn_ect_20;
-	}			
+	}
 
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.AbstractLaunchConfigurationTab#getImage()
@@ -385,17 +385,17 @@
 	public Image getImage() {
 		return DebugUITools.getImage(IDebugUIConstants.IMG_LCL_DISCONNECT);
 	}
-		
+
 	/**
 	 * @see org.eclipse.debug.ui.AbstractLaunchConfigurationTab#getId()
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	@Override
 	public String getId() {
 		return "org.eclipse.jdt.debug.ui.javaConnectTab"; //$NON-NLS-1$
 	}
-	
+
 	/**
 	 * Returns the selected connector
 	 * @return the selected {@link IVMConnector}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaJRETab.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaJRETab.java
index fb2475c..12e3da9 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaJRETab.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaJRETab.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.jdt.debug.ui.launchConfigurations;
 
- 
+
 import java.util.Map;
 
 import org.eclipse.core.resources.IProject;
@@ -52,11 +52,11 @@
 import org.eclipse.ui.PlatformUI;
 
 /**
- * A launch configuration tab that displays and edits the VM install 
+ * A launch configuration tab that displays and edits the VM install
  * launch configuration attributes.
  * <p>
  * Clients may call {@link #setHelpContextId(String)} on this tab prior to control
- * creation to alter the default context help associated with this tab. 
+ * creation to alter the default context help associated with this tab.
  * </p>
  * <p>
  * This class may be instantiated.
@@ -66,21 +66,21 @@
  */
 
 public class JavaJRETab extends JavaLaunchTab {
-	
+
 	// JRE Block
 	protected JREsComboBlock fJREBlock;
-	
+
 	// Dynamic JRE UI widgets
 	protected ILaunchConfigurationTab fDynamicTab;
 	protected Composite fDynamicTabHolder;
 	protected boolean fUseDynamicArea = true;
-	
+
 	protected ILaunchConfigurationWorkingCopy fWorkingCopy;
 	protected ILaunchConfiguration fLaunchConfiguration;
-	
+
 	// State
 	protected boolean fIsInitializing = false;
-	
+
 	// Selection changed listener (checked JRE)
 	private IPropertyChangeListener fCheckListener = new IPropertyChangeListener() {
 		@Override
@@ -88,14 +88,14 @@
 			handleSelectedJREChanged();
 		}
 	};
-	
+
 	/**
 	 * Constructor
 	 */
 	public JavaJRETab() {
 		setHelpContextId(IJavaDebugHelpContextIds.LAUNCH_CONFIGURATION_DIALOG_JRE_TAB);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#dispose()
 	 */
@@ -114,7 +114,7 @@
 	public void createControl(Composite parent) {
 		Font font = parent.getFont();
 		Composite topComp = SWTFactory.createComposite(parent, font, 1, 1, GridData.FILL_HORIZONTAL, 0, 0);
-		
+
 		fJREBlock = new JREsComboBlock(true);
 		fJREBlock.setDefaultJREDescriptor(getDefaultJREDescriptor());
 		fJREBlock.setSpecificJREDescriptor(getSpecificJREDescriptor());
@@ -122,7 +122,7 @@
 		Control control = fJREBlock.getControl();
 		fJREBlock.addPropertyChangeListener(fCheckListener);
 		control.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		
+
 		setDynamicTabHolder(SWTFactory.createComposite(topComp, font, 1, 1, GridData.FILL_BOTH, 0, 0));
 		setControl(topComp);
 		PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), getHelpContextId());
@@ -155,7 +155,7 @@
 			dynamicTab.setDefaults(config);
 		}
 	}
-	
+
 	/**
 	 * @see ILaunchConfigurationTab#initializeFrom(ILaunchConfiguration)
 	 */
@@ -169,7 +169,7 @@
 		ILaunchConfigurationTab dynamicTab = getDynamicTab();
 		if (dynamicTab != null) {
 			dynamicTab.initializeFrom(configuration);
-		}		
+		}
 		getControl().setRedraw(true);
 		fIsInitializing = false;
 	}
@@ -193,7 +193,7 @@
 		// erase old attributes in case the user changed from 'specific JRE' to 'default' - see bug 152446
 		configuration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_INSTALL_NAME, (String)null);
 		configuration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_INSTALL_TYPE, (String)null);
-		
+
 		// Handle any attributes in the VM-specific area
 		ILaunchConfigurationTab dynamicTab = getDynamicTab();
 		if (dynamicTab == null) {
@@ -208,19 +208,19 @@
 	 */
 	@Override
 	public boolean isValid(ILaunchConfiguration config) {
-		
+
 		setErrorMessage(null);
 		setMessage(null);
-		
+
 		IStatus status = fJREBlock.getStatus();
 		if (!status.isOK()) {
-			setErrorMessage(status.getMessage());			 
+			setErrorMessage(status.getMessage());
 			return false;
 		}
 		if(!isExternalToolConfiguration(fLaunchConfiguration)) {
 			status = checkCompliance();
 			if (!status.isOK()) {
-				setErrorMessage(status.getMessage());			 
+				setErrorMessage(status.getMessage());
 				return false;
 			}
 		}
@@ -231,14 +231,14 @@
 		}
 		return true;
 	}
-	
+
 	/**
 	 * Returns if the specified <code>ILaunchConfiguration</code> is an ant or external tool
 	 * type.
 	 * @param configuration the {@link ILaunchConfiguration}
 	 * @return true if the specified <code>ILaunchConfiguration</code> is an ant or external tools
 	 * type configuration
-	 * 
+	 *
 	 * @since 3.4
 	 */
 	private boolean isExternalToolConfiguration(ILaunchConfiguration configuration) {
@@ -249,12 +249,12 @@
 			id.equals("org.eclipse.ant.AntBuilderLaunchConfigurationType") ||  //$NON-NLS-1$
 			id.equals("org.eclipse.ui.externaltools.ProgramLaunchConfigurationType") || //$NON-NLS-1$
 			id.equals("org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType")); //$NON-NLS-1$
-		} 
+		}
 		catch (CoreException e) {
 			return false;
 		}
 	}
-	
+
 	/**
 	 * Checks to make sure the class file compliance level and the selected VM are compatible
 	 * i.e. such that the selected JRE can run the currently compiled code
@@ -304,7 +304,7 @@
 						} else {
 							setting = LauncherMessages.JavaJRETab_1;
 						}
-						return new Status(IStatus.ERROR, IJavaDebugUIConstants.PLUGIN_ID, IStatus.ERROR, NLS.bind(LauncherMessages.JavaJRETab_0, new String[] {setting, source, compliance}), null); 
+						return new Status(IStatus.ERROR, IJavaDebugUIConstants.PLUGIN_ID, IStatus.ERROR, NLS.bind(LauncherMessages.JavaJRETab_0, new String[] {setting, source, compliance}), null);
 					}
 				}
 			}
@@ -312,37 +312,37 @@
 		}
 		// when no VM path is specified return the error status from the JRE block
 		return fJREBlock.getStatus();
-	}	
+	}
 
 	/**
 	 * @see ILaunchConfigurationTab#getName()
 	 */
 	@Override
 	public String getName() {
-		return LauncherMessages.JavaJRETab__JRE_1; 
+		return LauncherMessages.JavaJRETab__JRE_1;
 	}
-	
+
 	/**
 	 * @see ILaunchConfigurationTab#getImage()
 	 */
 	@Override
 	public Image getImage() {
 		return JavaUI.getSharedImages().getImage(ISharedImages.IMG_OBJS_LIBRARY);
-	}	
+	}
 
 	/**
 	 * @see org.eclipse.debug.ui.AbstractLaunchConfigurationTab#getId()
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	@Override
 	public String getId() {
 		return "org.eclipse.jdt.debug.ui.javaJRETab"; //$NON-NLS-1$
 	}
-	
+
 	/**
 	 * This method updates the jre selection from the <code>ILaunchConfiguration</code>
-	 * @param config the config to update from 
+	 * @param config the config to update from
 	 */
 	@SuppressWarnings("deprecation")
 	protected void updateJREFromConfig(ILaunchConfiguration config) {
@@ -361,17 +361,17 @@
 			vmTypeID = config.getAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_INSTALL_TYPE, (String)null);
 			vmName = config.getAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_INSTALL_NAME, (String)null);
 		} catch (CoreException ce) {
-			JDIDebugUIPlugin.log(ce);			
+			JDIDebugUIPlugin.log(ce);
 		}
 		selectJRE(vmTypeID, vmName);
-	}	
-	
+	}
+
 	/**
 	 * Notification that the user changed the selection in the JRE combination box.
 	 */
 	protected void handleSelectedJREChanged() {
 		loadDynamicJREArea();
-		
+
 		// always set the newly created area with defaults
 		ILaunchConfigurationWorkingCopy wc = getLaunchConfigurationWorkingCopy();
 		if (getDynamicTab() == null) {
@@ -401,7 +401,7 @@
 					}
 				} catch (CoreException e) {
 					IStatus status = e.getStatus();
-					JDIDebugUIPlugin.statusDialog(status); 
+					JDIDebugUIPlugin.statusDialog(status);
 					JDIDebugUIPlugin.log(status);
 					return;
 				}
@@ -411,10 +411,10 @@
 				getDynamicTab().initializeFrom(wc);
 			}
 		}
-				
-		updateLaunchConfigurationDialog();		
+
+		updateLaunchConfigurationDialog();
 	}
-	
+
 	protected void selectJRE(String typeID, String vmName) {
 		if (typeID == null || vmName == null) {
 			fJREBlock.setPath(JavaRuntime.newDefaultJREContainerPath());
@@ -422,7 +422,7 @@
 			fJREBlock.setPath(JavaRuntime.newJREContainerPath(typeID, vmName));
 		}
 	}
-	
+
 	/**
 	 * Return the class that implements <code>ILaunchConfigurationTab</code>
 	 * that is registered against the install type of the currently selected VM.
@@ -438,44 +438,44 @@
 					return JDIDebugUIPlugin.getDefault().getVMInstallTypePage(vmInstallTypeID);
 				}
 			}
-		}		
+		}
 		return null;
 	}
-	
+
 	/**
 	 * Show the contributed piece of UI that was registered for the install type
 	 * of the currently selected VM.
 	 */
 	protected void loadDynamicJREArea() {
-		
+
 		// Dispose of any current child widgets in the tab holder area
 		Control[] children = getDynamicTabHolder().getChildren();
 		for (int i = 0; i < children.length; i++) {
 			children[i].dispose();
 		}
-		
+
 		if (isUseDynamicJREArea()) {
-			// Retrieve the dynamic UI for the current JRE 
+			// Retrieve the dynamic UI for the current JRE
 			setDynamicTab(getTabForCurrentJRE());
 			if (getDynamicTab() == null) {
 				return;
 			}
-			
+
 			// Ask the dynamic UI to create its Control
 			getDynamicTab().setLaunchConfigurationDialog(getLaunchConfigurationDialog());
 			getDynamicTab().createControl(getDynamicTabHolder());
-			getDynamicTabHolder().layout();	
+			getDynamicTabHolder().layout();
 		}
-			
+
 	}
 
 	protected ILaunchConfigurationWorkingCopy getLaunchConfigurationWorkingCopy() {
 		return fWorkingCopy;
 	}
-	
+
 	/**
 	 * Overridden here so that any error message in the dynamic UI gets returned.
-	 * 
+	 *
 	 * @see ILaunchConfigurationTab#getErrorMessage()
 	 */
 	@Override
@@ -498,18 +498,18 @@
 	protected void setLaunchConfiguration(ILaunchConfiguration launchConfiguration) {
 		fLaunchConfiguration = launchConfiguration;
 	}
-	
+
 	/**
 	 * Sets whether this tab will display the VM specific arguments area
 	 * if a JRE supports VM specific arguments.
-	 * 
+	 *
 	 * @param visible whether this tab will display the VM specific arguments area
 	 * 	if a JRE supports VM specific arguments
 	 */
 	public void setVMSpecificArgumentsVisible(boolean visible) {
 		fUseDynamicArea = visible;
 	}
-	
+
 	protected boolean isUseDynamicJREArea() {
 		return fUseDynamicArea;
 	}
@@ -523,13 +523,13 @@
 			@Override
 			public String getDescription() {
 				IJavaProject project = getJavaProject();
-				String name = LauncherMessages.JavaJRETab_7; 
+				String name = LauncherMessages.JavaJRETab_7;
 				if (project == null) {
 					IVMInstall vm = JavaRuntime.getDefaultVMInstall();
 					if (vm != null) {
 						name = vm.getName();
 					}
-					return NLS.bind(LauncherMessages.JavaJRETab_8, new String[]{name}); 
+					return NLS.bind(LauncherMessages.JavaJRETab_8, new String[]{name});
 				}
 				try {
 					String eeName = null;
@@ -558,19 +558,19 @@
 					}
 				} catch (CoreException e) {
 				}
-				return NLS.bind(LauncherMessages.JavaJRETab_9, new String[]{name}); 
+				return NLS.bind(LauncherMessages.JavaJRETab_9, new String[]{name});
 			}
 		};
 	}
-	
+
 	protected JREDescriptor getSpecificJREDescriptor() {
 		return null;
 	}
-	
+
 	/**
 	 * Returns the Java project associated with the current config being edited,
 	 * or <code>null</code> if none.
-	 * 
+	 *
 	 * @return java project or <code>null</code>
 	 */
 	protected IJavaProject getJavaProject() {
@@ -579,7 +579,7 @@
 				String name = getLaunchConfiguration().getAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, (String)null);
 				if (name != null && name.length() > 0) {
 					IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(name);
-					if (project.exists()) { 
+					if (project.exists()) {
 						return JavaCore.create(project);
 					}
 				}
@@ -589,7 +589,7 @@
 		}
 		return null;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#activated(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
 	 */
@@ -606,5 +606,5 @@
 	@Override
 	public void deactivated(ILaunchConfigurationWorkingCopy workingCopy) {
 		// do nothing when deactivated
-	}	
+	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaLaunchShortcut.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaLaunchShortcut.java
index d700c1b..61d7bea 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaLaunchShortcut.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaLaunchShortcut.java
@@ -9,7 +9,7 @@
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jdt.debug.ui.launchConfigurations;
- 
+
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -48,25 +48,25 @@
  * @since 3.3
  */
 public abstract class JavaLaunchShortcut implements ILaunchShortcut2 {
-	
+
 	/**
 	 * Returns the type of configuration this shortcut is applicable to.
-	 * 
+	 *
 	 * @return the type of configuration this shortcut is applicable to
 	 */
 	protected abstract ILaunchConfigurationType getConfigurationType();
-	
+
 	/**
 	 * Creates and returns a new configuration based on the specified type.
-	 * 
+	 *
 	 * @param type type to create a launch configuration for
 	 * @return launch configuration configured to launch the specified type
 	 */
 	protected abstract ILaunchConfiguration createConfiguration(IType type);
-	
+
 	/**
 	 * Finds and returns the types in the given collection of elements that can be launched.
-	 * 
+	 *
 	 * @param elements scope to search for types that can be launched
 	 * @param context progress reporting context
 	 * @return collection of types that can be launched, possibly empty
@@ -74,33 +74,33 @@
 	 * @exception CoreException if the search fails
 	 */
 	protected abstract IType[] findTypes(Object[] elements, IRunnableContext context) throws InterruptedException, CoreException;
-	
+
 	/**
 	 * Returns a title for a type selection dialog used to prompt the user when there is more than
 	 * one type that can be launched.
-	 * 
+	 *
 	 * @return type selection dialog title
 	 */
 	protected abstract String getTypeSelectionTitle();
-	
+
 	/**
 	 * Returns an error message to use when the editor does not contain a type that can be launched.
-	 * 
+	 *
 	 * @return error message when editor cannot be launched
 	 */
-	protected abstract String getEditorEmptyMessage();	
-	
+	protected abstract String getEditorEmptyMessage();
+
 	/**
 	 * Returns an error message to use when the selection does not contain a type that can be launched.
-	 * 
+	 *
 	 * @return error message when selection cannot be launched
 	 */
-	protected abstract String getSelectionEmptyMessage();	
-	
+	protected abstract String getSelectionEmptyMessage();
+
 	/**
 	 * Resolves a type that can be launched from the given scope and launches in the
 	 * specified mode.
-	 * 
+	 *
 	 * @param scope the java elements to consider for a type that can be launched
 	 * @param mode launch mode
 	 * @param selectTitle prompting title for choosing a type to launch
@@ -110,33 +110,33 @@
 		IType[] types = null;
 		try {
 			types = findTypes(scope, PlatformUI.getWorkbench().getProgressService());
-		} 
-		catch (InterruptedException e) {return;} 
+		}
+		catch (InterruptedException e) {return;}
 		catch (CoreException e) {
-			MessageDialog.openError(getShell(), LauncherMessages.JavaLaunchShortcut_0, e.getMessage()); 
+			MessageDialog.openError(getShell(), LauncherMessages.JavaLaunchShortcut_0, e.getMessage());
 			return;
 		}
 		IType type = null;
 		if (types.length == 0) {
-			MessageDialog.openError(getShell(), LauncherMessages.JavaLaunchShortcut_1, emptyMessage); 
-		} 
+			MessageDialog.openError(getShell(), LauncherMessages.JavaLaunchShortcut_1, emptyMessage);
+		}
 		else if (types.length > 1) {
 			type = chooseType(types, selectTitle);
-		} 
+		}
 		else {
 			type = types[0];
 		}
 		if (type != null) {
 			launch(type, mode);
 		}
-	}	
+	}
 
 	/**
 	 * Prompts the user to select a type from the given types.
-	 * 
+	 *
 	 * @param types the types to choose from
 	 * @param title the selection dialog title
-	 * 
+	 *
 	 * @return the selected type or <code>null</code> if none.
 	 */
 	protected IType chooseType(IType[] types, String title) {
@@ -146,10 +146,10 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Launches the given type in the specified mode.
-	 * 
+	 *
 	 * @param type type to launch
 	 * @param mode launch mode
 	 * @since 3.5
@@ -173,13 +173,13 @@
 			}
 			if (config != null) {
 				DebugUITools.launch(config, mode);
-			}	
+			}
 		}
 	}
-	
+
 	/**
 	 * Collect the listing of {@link ILaunchConfiguration}s that apply to the given {@link IType} and {@link ILaunchConfigurationType}
-	 * 
+	 *
 	 * @param type the type
 	 * @param ctype the {@link ILaunchConfigurationType}
 	 * @return the list of {@link ILaunchConfiguration}s or an empty list, never <code>null</code>
@@ -189,7 +189,7 @@
 		List<ILaunchConfiguration> candidateConfigs = Collections.EMPTY_LIST;
 		try {
 			ILaunchConfiguration[] configs = DebugPlugin.getDefault().getLaunchManager().getLaunchConfigurations(ctype);
-			candidateConfigs = new ArrayList<ILaunchConfiguration>(configs.length);
+			candidateConfigs = new ArrayList<>(configs.length);
 			for (int i = 0; i < configs.length; i++) {
 				ILaunchConfiguration config = configs[i];
 				if (config.getAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME, "").equals(type.getFullyQualifiedName())) { //$NON-NLS-1$
@@ -203,14 +203,14 @@
 		}
 		return candidateConfigs;
 	}
-	
+
 	/**
 	 * Finds and returns an <b>existing</b> configuration to re-launch for the given type,
 	 * or <code>null</code> if there is no existing configuration.
-	 * 
+	 *
 	 * @param type the {@link IType} to try and find the {@link ILaunchConfiguration} for
 	 * @param configType the {@link ILaunchConfigurationType} to try and narrow down the search
-	 * 
+	 *
 	 * @return a configuration to use for launching the given type or <code>null</code> if none
 	 */
 	protected ILaunchConfiguration findLaunchConfiguration(IType type, ILaunchConfigurationType configType) {
@@ -224,13 +224,13 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Returns a configuration from the given collection of configurations that should be launched,
 	 * or <code>null</code> to cancel. Default implementation opens a selection dialog that allows
 	 * the user to choose one of the specified launch configurations.  Returns the chosen configuration,
 	 * or <code>null</code> if the user cancels.
-	 * 
+	 *
 	 * @param configList list of configurations to choose from
 	 * @return configuration to launch or <code>null</code> to cancel
 	 */
@@ -238,7 +238,7 @@
 		IDebugModelPresentation labelProvider = DebugUITools.newDebugModelPresentation();
 		ElementListSelectionDialog dialog= new ElementListSelectionDialog(getShell(), labelProvider);
 		dialog.setElements(configList.toArray());
-		dialog.setTitle(getTypeSelectionTitle());  
+		dialog.setTitle(getTypeSelectionTitle());
 		dialog.setMessage(LauncherMessages.JavaLaunchShortcut_2);
 		dialog.setMultipleSelection(false);
 		int result = dialog.open();
@@ -246,18 +246,18 @@
 		if (result == Window.OK) {
 			return (ILaunchConfiguration) dialog.getFirstResult();
 		}
-		return null;		
+		return null;
 	}
-	
+
 	/**
 	 * Convenience method to return the active workbench window shell.
-	 * 
+	 *
 	 * @return active workbench window shell
 	 */
 	protected Shell getShell() {
 		return JDIDebugUIPlugin.getActiveWorkbenchShell();
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.ILaunchShortcut#launch(org.eclipse.ui.IEditorPart, java.lang.String)
 	 */
@@ -304,11 +304,11 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Returns the resource containing the Java element associated with the
 	 * given adaptable, or <code>null</code>.
-	 * 
+	 *
 	 * @param adaptable adaptable object
 	 * @return containing resource or <code>null</code>
 	 */
@@ -336,7 +336,7 @@
 	public ILaunchConfiguration[] getLaunchConfigurations(ISelection selection) {
 		// let the framework resolve configurations based on resource mapping
 		return null;
-	}	
-	
-	
+	}
+
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaLaunchTab.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaLaunchTab.java
index e99cb9c..7376eaa 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaLaunchTab.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaLaunchTab.java
@@ -4,13 +4,13 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jdt.debug.ui.launchConfigurations;
 
- 
+
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.debug.core.ILaunchConfiguration;
@@ -35,16 +35,16 @@
  * @since 3.2
  */
 public abstract class JavaLaunchTab extends AbstractLaunchConfigurationTab {
-		
+
 	/**
 	 * Config being modified
 	 */
 	private ILaunchConfiguration fLaunchConfig;
-	
+
 	/**
 	 * Returns the current Java element context in the active workbench page
 	 * or <code>null</code> if none.
-	 * 
+	 *
 	 * @return current Java element in the active page or <code>null</code>
 	 */
 	protected IJavaElement getContext() {
@@ -78,29 +78,29 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Returns the launch configuration this tab was initialized from.
-	 * 
+	 *
 	 * @return launch configuration this tab was initialized from
 	 */
 	protected ILaunchConfiguration getCurrentLaunchConfiguration() {
 		return fLaunchConfig;
 	}
-	
+
 	/**
 	 * Sets the launch configuration this tab was initialized from
-	 * 
+	 *
 	 * @param config launch configuration this tab was initialized from
 	 */
 	private void setCurrentLaunchConfiguration(ILaunchConfiguration config) {
 		fLaunchConfig = config;
 	}
-	
+
 	/**
 	 * Sets the Java project attribute on the given working copy to the Java project
 	 * associated with the given Java element.
-	 * 
+	 *
 	 * @param javaElement Java model element this tab is associated with
 	 * @param config configuration on which to set the Java project attribute
 	 */
@@ -111,17 +111,17 @@
 			name = javaProject.getElementName();
 		}
 		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, name);
-	}	
-	
+	}
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#initializeFrom(org.eclipse.debug.core.ILaunchConfiguration)
-	 * 
+	 *
 	 * Subclasses may override this method and should call super.initializeFrom(...).
 	 */
 	@Override
 	public void initializeFrom(ILaunchConfiguration config) {
 		setCurrentLaunchConfiguration(config);
-	}	
-	
+	}
+
 }
 
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaMainTab.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaMainTab.java
index e414a09..505b6d4 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaMainTab.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaMainTab.java
@@ -64,7 +64,7 @@
 	 * Boolean launch configuration attribute indicating that external jars (on
 	 * the runtime classpath) should be searched when looking for a main type.
 	 * Default value is <code>false</code>.
-	 * 
+	 *
 	 * @since 2.1
 	 */
 	public static final String ATTR_INCLUDE_EXTERNAL_JARS = IJavaDebugUIConstants.PLUGIN_ID + ".INCLUDE_EXTERNAL_JARS"; //$NON-NLS-1$
@@ -72,11 +72,11 @@
 	 * Boolean launch configuration attribute indicating whether types inheriting
 	 * a main method should be considered when searching for a main type.
 	 * Default value is <code>false</code>.
-	 * 
+	 *
 	 * @since 3.0
 	 */
-	public static final String ATTR_CONSIDER_INHERITED_MAIN = IJavaDebugUIConstants.PLUGIN_ID + ".CONSIDER_INHERITED_MAIN"; //$NON-NLS-1$	
-	
+	public static final String ATTR_CONSIDER_INHERITED_MAIN = IJavaDebugUIConstants.PLUGIN_ID + ".CONSIDER_INHERITED_MAIN"; //$NON-NLS-1$
+
 	// UI widgets
 	private Button fSearchExternalJarsCheckButton;
 	private Button fConsiderInheritedMainButton;
@@ -103,10 +103,10 @@
 	protected void createMainTypeExtensions(Composite parent) {
 		fSearchExternalJarsCheckButton = SWTFactory.createCheckButton(parent, LauncherMessages.JavaMainTab_E_xt__jars_6, null, false, 2);
 		fSearchExternalJarsCheckButton.addSelectionListener(getDefaultListener());
-		
+
 		fConsiderInheritedMainButton = SWTFactory.createCheckButton(parent, LauncherMessages.JavaMainTab_22, null, false, 2);
 		fConsiderInheritedMainButton.addSelectionListener(getDefaultListener());
-		
+
 		fStopInMainCheckButton = SWTFactory.createCheckButton(parent, LauncherMessages.JavaMainTab_St_op_in_main_1, null, false, 1);
 		fStopInMainCheckButton.addSelectionListener(getDefaultListener());
 	}
@@ -118,7 +118,7 @@
 	public Image getImage() {
 		return JavaUI.getSharedImages().getImage(ISharedImages.IMG_OBJS_CLASS);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#getName()
 	 */
@@ -126,17 +126,17 @@
 	public String getName() {
 		return LauncherMessages.JavaMainTab__Main_19;
 	}
-	
+
 	/**
 	 * @see org.eclipse.debug.ui.AbstractLaunchConfigurationTab#getId()
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	@Override
 	public String getId() {
 		return "org.eclipse.jdt.debug.ui.javaMainTab"; //$NON-NLS-1$
 	}
-	
+
 	/**
 	 * Show a dialog that lists all main types
 	 */
@@ -178,18 +178,18 @@
 			setErrorMessage(e.getMessage());
 			return;
 		}
-		DebugTypeSelectionDialog mmsd = new DebugTypeSelectionDialog(getShell(), types, LauncherMessages.JavaMainTab_Choose_Main_Type_11); 
+		DebugTypeSelectionDialog mmsd = new DebugTypeSelectionDialog(getShell(), types, LauncherMessages.JavaMainTab_Choose_Main_Type_11);
 		if (mmsd.open() == Window.CANCEL) {
 			return;
 		}
-		Object[] results = mmsd.getResult();	
+		Object[] results = mmsd.getResult();
 		IType type = (IType)results[0];
 		if (type != null) {
 			fMainText.setText(type.getFullyQualifiedName());
 			fProjText.setText(type.getJavaProject().getElementName());
 		}
-	}	
-	
+	}
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.launcher.AbstractJavaMainTab#initializeFrom(org.eclipse.debug.core.ILaunchConfiguration)
 	 */
@@ -200,7 +200,7 @@
 		updateStopInMainFromConfig(config);
 		updateInheritedMainsFromConfig(config);
 		updateExternalJars(config);
-	}	
+	}
 
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.AbstractLaunchConfigurationTab#isValid(org.eclipse.debug.core.ILaunchConfiguration)
@@ -216,27 +216,27 @@
 			if (status.isOK()) {
 				IProject project= ResourcesPlugin.getWorkspace().getRoot().getProject(name);
 				if (!project.exists()) {
-					setErrorMessage(NLS.bind(LauncherMessages.JavaMainTab_20, new String[] {name})); 
+					setErrorMessage(NLS.bind(LauncherMessages.JavaMainTab_20, new String[] {name}));
 					return false;
 				}
 				if (!project.isOpen()) {
-					setErrorMessage(NLS.bind(LauncherMessages.JavaMainTab_21, new String[] {name})); 
+					setErrorMessage(NLS.bind(LauncherMessages.JavaMainTab_21, new String[] {name}));
 					return false;
 				}
 			}
 			else {
-				setErrorMessage(NLS.bind(LauncherMessages.JavaMainTab_19, new String[]{status.getMessage()})); 
+				setErrorMessage(NLS.bind(LauncherMessages.JavaMainTab_19, new String[]{status.getMessage()}));
 				return false;
 			}
 		}
 		name = fMainText.getText().trim();
 		if (name.length() == 0) {
-			setErrorMessage(LauncherMessages.JavaMainTab_Main_type_not_specified_16); 
+			setErrorMessage(LauncherMessages.JavaMainTab_Main_type_not_specified_16);
 			return false;
 		}
 		return true;
 	}
-			
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#performApply(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
 	 */
@@ -245,7 +245,7 @@
 		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, fProjText.getText().trim());
 		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME, fMainText.getText().trim());
 		mapResources(config);
-		
+
 		// attribute added in 2.1, so null must be used instead of false for backwards compatibility
 		if (fStopInMainCheckButton.getSelection()) {
 			config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_STOP_IN_MAIN, true);
@@ -253,7 +253,7 @@
 		else {
 			config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_STOP_IN_MAIN, (String)null);
 		}
-		
+
 		// attribute added in 2.1, so null must be used instead of false for backwards compatibility
 		if (fSearchExternalJarsCheckButton.getSelection()) {
 			config.setAttribute(ATTR_INCLUDE_EXTERNAL_JARS, true);
@@ -261,7 +261,7 @@
 		else {
 			config.setAttribute(ATTR_INCLUDE_EXTERNAL_JARS, (String)null);
 		}
-		
+
 		// attribute added in 3.0, so null must be used instead of false for backwards compatibility
 		if (fConsiderInheritedMainButton.getSelection()) {
 			config.setAttribute(ATTR_CONSIDER_INHERITED_MAIN, true);
@@ -270,7 +270,7 @@
 			config.setAttribute(ATTR_CONSIDER_INHERITED_MAIN, (String)null);
 		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#setDefaults(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
 	 */
@@ -285,7 +285,7 @@
 		}
 		initializeMainTypeAndName(javaElement, config);
 	}
-	
+
 	/**
 	 * updates the external jars attribute from the specified launch config
 	 * @param config the config to load from
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaSourceLookupTab.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaSourceLookupTab.java
index c6934a4..7e7c242 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaSourceLookupTab.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaSourceLookupTab.java
@@ -41,7 +41,7 @@
  *  lookup among a set of participants, searching a set of source containers.
  *  See the following packages: <code>org.eclipse.debug.core.sourcelookup</code>
  *  and <code>org.eclipse.debug.core.sourcelookup.containers</code>. This class
- *  has been replaced by a source lookup tab in the debug platform - 
+ *  has been replaced by a source lookup tab in the debug platform -
  *  <code>org.eclipse.debug.ui.sourcelookup.SourceLookupTab</code>.
  * @noextend This class is not intended to be sub-classed by clients.
  */
@@ -50,7 +50,7 @@
 public class JavaSourceLookupTab extends JavaLaunchTab {
 
 	protected SourceLookupBlock fSourceLookupBlock;
-	
+
 	/**
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#createControl(Composite)
 	 */
@@ -64,16 +64,16 @@
 		topLayout.marginHeight= 0;
 		topLayout.marginWidth= 0;
 		comp.setLayout(topLayout);
-		comp.setFont(parent.getFont());	
-		
+		comp.setFont(parent.getFont());
+
 		createVerticalSpacer(comp, 1);
-		
+
 		fSourceLookupBlock = new SourceLookupBlock();
 		fSourceLookupBlock.setLaunchConfigurationDialog(getLaunchConfigurationDialog());
 		fSourceLookupBlock.createControl(comp);
 		GridData gd = (GridData)fSourceLookupBlock.getControl().getLayoutData();
 		gd.heightHint = 200;
-		gd.widthHint = 250;				
+		gd.widthHint = 250;
 	}
 
 	/**
@@ -94,7 +94,7 @@
 	public void initializeFrom(ILaunchConfiguration configuration) {
 		fSourceLookupBlock.initializeFrom(configuration);
 	}
-	
+
 	/**
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#performApply(ILaunchConfigurationWorkingCopy)
 	 */
@@ -106,28 +106,28 @@
 
 	/**
 	 * @see org.eclipse.debug.ui.AbstractLaunchConfigurationTab#getId()
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	@Override
 	public String getId() {
 		return "org.eclipse.jdt.debug.ui.javaSourceLookupTab"; //$NON-NLS-1$
 	}
-	
+
 	/**
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#getName()
 	 */
 	@Override
 	public String getName() {
-		return LauncherMessages.JavaSourceLookupTab_Source_1; 
+		return LauncherMessages.JavaSourceLookupTab_Source_1;
 	}
-	
+
 	/**
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#getImage()
 	 */
 	@Override
 	public Image getImage() {
 		return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FILE);
-	}	
-		
+	}
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointChange.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointChange.java
index b6df423..896126f 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointChange.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointChange.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -42,14 +42,14 @@
  *
  */
 public abstract class BreakpointChange extends Change {
-	
+
 	/**
 	 * constant for no line number
-	 * 
+	 *
 	 * @since 3.5
 	 */
 	protected static final int NO_LINE_NUMBER = -1;
-	
+
 	private IJavaBreakpoint fBreakpoint;
 	private String fTypeName;
 	private int fHitCount;
@@ -74,10 +74,10 @@
 		fEnabled = breakpoint.isEnabled();
 		fWorkingSetNames = (String) breakpoint.getMarker().getAttribute(IInternalDebugUIConstants.WORKING_SET_NAME);
 	}
-	
+
 	/**
 	 * Applies the original attributes to the new breakpoint
-	 * 
+	 *
 	 * @param breakpoint the new breakpoint
 	 * @throws CoreException
 	 */
@@ -92,7 +92,7 @@
 		}
 		breakpoint.setEnabled(fEnabled);
 	}
-	
+
 	/**
 	 * Returns the original breakpoints prior to the change
 	 * @return the original breakpoint prior to the change
@@ -100,32 +100,32 @@
 	protected IJavaBreakpoint getOriginalBreakpoint() {
 		return fBreakpoint;
 	}
-	
+
 	/**
 	 * Returns the original name of the type the associated breakpoint was set on.
 	 * This can be different than the type being changed.
-	 * 
+	 *
 	 * @return
 	 */
 	protected String getOriginalBreakpointTypeName() {
 		return fTypeName;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ltk.core.refactoring.Change#initializeValidationData(org.eclipse.core.runtime.IProgressMonitor)
 	 */
 	@Override
 	public void initializeValidationData(IProgressMonitor pm) {
 		// do nothing
-	}	
-	
+	}
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ltk.core.refactoring.Change#isValid(org.eclipse.core.runtime.IProgressMonitor)
 	 */
 	@Override
 	public RefactoringStatus isValid(IProgressMonitor pm) throws CoreException, OperationCanceledException {
 		return new RefactoringStatus();
-	}	
+	}
 
 	/* (non-Javadoc)
 	 * @see org.eclipse.ltk.core.refactoring.Change#getModifiedElement()
@@ -133,12 +133,12 @@
 	@Override
 	public Object getModifiedElement() {
 		return fBreakpoint;
-	}	
-	
+	}
+
 	/**
 	 * Returns an array of ints representing the new line number, char start and char end
 	 * of the member.
-	 * 
+	 *
 	 * @param member
 	 * @return array of 3 ints or <code>null</code>
 	 */
@@ -148,7 +148,7 @@
 		int lineNumber = getNewLineNumber(member, offset);
 		return new int[]{lineNumber, offset, offset + nameRange.getLength()};
 	}
-	
+
 	/**
 	 * Returns the new line number of the from the source of the specified member's compilation unit
 	 * @param member the member to query
@@ -165,7 +165,7 @@
 		}
 		return lineNumber;
 	}
-	
+
 	/**
 	 * Return the line number for the breakpoint
 	 * @return the line number for the breakpoint
@@ -173,7 +173,7 @@
 	protected int getLineNumber() {
 		return -1;
 	}
-	
+
 	/**
 	 * Returns the hit count for the breakpoint
 	 * @return the hit count for the breakpoint
@@ -181,7 +181,7 @@
 	protected int getHitCount() {
 		return fHitCount;
 	}
-	
+
 	/**
 	 * Returns the <code>IType</code> within the specified parent type given by simpleName
 	 * @param parent
@@ -201,7 +201,7 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Returns the <code>IJavaElement</code> contained within the specified parent one, or the parent one
 	 * by default
@@ -254,37 +254,37 @@
 					currentElement = ((IType)currentElement).getMethod(child.getElementName(), ((IMethod)child).getParameterTypes());
 					break;
 			}
-			
+
 		}
 		return currentElement;
-	}	
-	
+	}
+
 	/**
 	 * Returns the path of the given element up to but not including its compilation unit,
 	 * in bottom up order.
-	 * 
+	 *
 	 * @param element
 	 * @return element's path
 	 */
 	private static List<IJavaElement> getPath(IJavaElement element) {
-		ArrayList<IJavaElement> children = new ArrayList<IJavaElement>();
+		ArrayList<IJavaElement> children = new ArrayList<>();
 		while (element != null && element.getElementType() != IJavaElement.COMPILATION_UNIT) {
 			children.add(element);
 			element = element.getParent();
 		}
 		return children;
 	}
-	
+
 	/**
 	 * Returns a label for the given breakpoint generated from the JDI model presentation.
-	 * 
+	 *
 	 * @param breakpoint a breakpoint
 	 * @return standard label for the breakpoint
 	 */
 	protected String getBreakpointLabel(IBreakpoint breakpoint) {
 		return JDIDebugUIPlugin.getDefault().getModelPresentation().getText(breakpoint);
 	}
-	
+
 	/**
 	 * Returns the original breakpoint working set names
 	 * @return the original breakpoint working set names
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointMovePackageParticipant.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointMovePackageParticipant.java
index bff5e3b..9075cfd 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointMovePackageParticipant.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointMovePackageParticipant.java
@@ -27,7 +27,7 @@
 
 /**
  * Breakpoint participant for package move.
- * 
+ *
  * @since 3.2
  */
 public class BreakpointMovePackageParticipant extends BreakpointMoveParticipant {
@@ -39,7 +39,7 @@
 	protected boolean accepts(IJavaElement element) {
 		return element instanceof IPackageFragment && getArguments().getDestination() instanceof IPackageFragmentRoot;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.core.refactoring.BreakpointMoveParticipant#gatherChanges(org.eclipse.core.resources.IMarker[], java.util.List)
 	 */
@@ -67,5 +67,5 @@
 			}
 		}
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointMoveParticipant.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointMoveParticipant.java
index 046e276..6c2cfbc 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointMoveParticipant.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointMoveParticipant.java
@@ -36,21 +36,21 @@
 
 /**
  * Breakpoint participant for a move refactoring.
- * 
+ *
  * @since 3.2
  */
 public abstract class BreakpointMoveParticipant extends MoveParticipant {
-	
+
 	/**
 	 * Element being moved
 	 */
 	private IJavaElement fElement;
-	
+
 	/**
 	 * Destination container
 	 */
 	private IJavaElement fDestination;
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#initialize(java.lang.Object)
 	 */
@@ -63,29 +63,29 @@
 			return false;
 		}
 		return true;
-	}	
-	
+	}
+
 	/**
 	 * Returns the element this refactoring is operating on.
-	 * 
+	 *
 	 * @return the original element
 	 */
 	protected IJavaElement getOriginalElement() {
 		return fElement;
 	}
-	
+
 	/**
 	 * Returns the destination of the move operation.
-	 * 
+	 *
 	 * @return the destination {@link IJavaElement}
 	 */
 	protected IJavaElement getDestination() {
 		return fDestination;
 	}
-	
+
 	/**
 	 * Returns whether this given element is a valid target for this operation.
-	 * 
+	 *
 	 * @param element the Java model element
 	 * @return whether this given element is a valid target for this operation
 	 */
@@ -112,7 +112,7 @@
 	 */
 	@Override
 	public Change createChange(IProgressMonitor pm) throws CoreException, OperationCanceledException {
-		List<Change> changes = new ArrayList<Change>();
+		List<Change> changes = new ArrayList<>();
 		IResource resource = getBreakpointContainer();
 		IMarker[] markers= resource.findMarkers(IBreakpoint.BREAKPOINT_MARKER, true, IResource.DEPTH_INFINITE);
 		gatherChanges(markers, changes);
@@ -123,42 +123,42 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Gathers refactoring specific changes. Subclasses must override.
-	 * 
+	 *
 	 * @param markers markers to consider during the change
 	 * @param changes the list of changes
 	 * @throws CoreException if a problem occurs
 	 * @throws OperationCanceledException if the operation was cancelled
 	 */
 	protected abstract void gatherChanges(IMarker[] markers, List<Change> changes) throws CoreException, OperationCanceledException;
-	
+
 	/**
 	 * Returns the resource that should be considered when searching for affected breakpoints.
-	 * 
+	 *
 	 * @return resource to search for breakpoint markers.
 	 */
 	protected IResource getBreakpointContainer() {
 		return fElement.getResource();
 	}
-	
+
 	/**
 	 * Returns the breakpoint associated with the given marker.
-	 * 
+	 *
 	 * @param marker breakpoint marker
 	 * @return breakpoint or <code>null</code>
 	 */
 	protected IBreakpoint getBreakpoint(IMarker marker) {
 		return DebugPlugin.getDefault().getBreakpointManager().getBreakpoint(marker);
 	}
-	
+
 	/**
 	 * Creates a specific type of change for a breakpoint that is changing types.
 	 * @param breakpoint the breakpoint to create a change for
 	 * @param destType the new type
 	 * @param originalType the original type
-	 * 
+	 *
 	 * @return type change or <code>null</code>
 	 * @throws CoreException if creating the change fails
 	 */
@@ -175,11 +175,11 @@
 			return new LineBreakpointTypeChange((IJavaLineBreakpoint) breakpoint, destType);
 		}
 		return null;
-	}		
-	
+	}
+
 	/**
 	 * Returns whether the given target type is contained in the specified container type.
-	 * 
+	 *
 	 * @param container the containing element
 	 * @param type the target element
 	 * @return if the given type is contained in the given container
@@ -193,5 +193,5 @@
 			parent = parent.getParent();
 		}
 		return false;
-	}		
+	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointMoveTypeParticipant.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointMoveTypeParticipant.java
index fe1652c..3eb97d4 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointMoveTypeParticipant.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointMoveTypeParticipant.java
@@ -26,7 +26,7 @@
 
 /**
  * Breakpoint participant for type move.
- * 
+ *
  * @since 3.2
  */
 public class BreakpointMoveTypeParticipant extends BreakpointMoveParticipant {
@@ -38,7 +38,7 @@
 	protected boolean accepts(IJavaElement element) {
 		return element instanceof IType && getArguments().getDestination() instanceof IPackageFragment;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.core.refactoring.BreakpointMoveParticipant#gatherChanges(org.eclipse.core.resources.IMarker[], java.util.List)
 	 */
@@ -65,5 +65,5 @@
 			}
 		}
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointRenameFieldParticipant.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointRenameFieldParticipant.java
index ed7ade2..8d08fb8 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointRenameFieldParticipant.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointRenameFieldParticipant.java
@@ -30,11 +30,11 @@
 
 /**
  * Breakpoint participant for field rename.
- * 
+ *
  * @since 3.2
  */
 public class BreakpointRenameFieldParticipant extends BreakpointRenameParticipant {
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.core.refactoring.BreakpointRenameParticipant#accepts(org.eclipse.jdt.core.IJavaElement)
 	 */
@@ -42,13 +42,13 @@
 	protected boolean accepts(IJavaElement element) {
 		return element instanceof IField;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.core.refactoring.BreakpointRenameParticipant#createChange(org.eclipse.core.runtime.IProgressMonitor)
 	 */
 	@Override
 	public Change createChange(IProgressMonitor pm) throws CoreException, OperationCanceledException {
-		List<Change> changes = new ArrayList<Change>();
+		List<Change> changes = new ArrayList<>();
 		IResource resource = getBreakpointContainer();
 		IMarker[] markers = resource.findMarkers(JavaWatchpoint.JAVA_WATCHPOINT, true, IResource.DEPTH_INFINITE);
 		gatherChanges(markers, changes, getArguments().getNewName());
@@ -59,7 +59,7 @@
 		}
 		return null;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.core.refactoring.BreakpointRenameParticipant#gatherChanges(org.eclipse.core.resources.IMarker[], java.util.List, java.lang.String)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointRenameMethodParticipant.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointRenameMethodParticipant.java
index 967b60b..bdcaa50 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointRenameMethodParticipant.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointRenameMethodParticipant.java
@@ -25,12 +25,12 @@
 
 /**
  * Breakpoint participant for method rename.
- * 
+ *
  * @since 3.2
  */
 public class BreakpointRenameMethodParticipant extends BreakpointRenameParticipant {
 
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.core.refactoring.BreakpointRenameParticipant#accepts(org.eclipse.jdt.core.IJavaElement)
 	 */
@@ -63,5 +63,5 @@
 			}
 		}
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointRenamePackageParticipant.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointRenamePackageParticipant.java
index c5cc08b..48f6e1b 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointRenamePackageParticipant.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointRenamePackageParticipant.java
@@ -27,7 +27,7 @@
 
 /**
  * Breakpoint participant for package rename.
- * 
+ *
  * @since 3.2
  */
 public class BreakpointRenamePackageParticipant extends BreakpointRenameParticipant {
@@ -39,7 +39,7 @@
 	protected boolean accepts(IJavaElement element) {
 		return element instanceof IPackageFragment;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.core.refactoring.BreakpointRenameParticipant#gatherChanges(org.eclipse.core.resources.IMarker[], java.util.List, java.lang.String)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointRenameParticipant.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointRenameParticipant.java
index 2b78de3..c44a7d7 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointRenameParticipant.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointRenameParticipant.java
@@ -36,16 +36,16 @@
 
 /**
  * Breakpoint participant for a rename refactoring.
- * 
+ *
  * @since 3.2
  */
 public abstract class BreakpointRenameParticipant extends RenameParticipant {
-	
+
 	/**
 	 * Element being renamed
 	 */
 	private IJavaElement fElement;
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#initialize(java.lang.Object)
 	 */
@@ -57,20 +57,20 @@
 			return false;
 		}
 		return true;
-	}	
-	
+	}
+
 	/**
 	 * Returns the element this refactoring is operating on.
-	 * 
+	 *
 	 * @return to original {@link IJavaElement}
 	 */
 	protected IJavaElement getOriginalElement() {
 		return fElement;
 	}
-	
+
 	/**
 	 * Returns whether this given element is a valid target for this operation.
-	 * 
+	 *
 	 * @param element the Java element context
 	 * @return whether this given element is a valid target for this operation
 	 */
@@ -97,7 +97,7 @@
 	 */
 	@Override
 	public Change createChange(IProgressMonitor pm) throws CoreException, OperationCanceledException {
-		List<Change> changes = new ArrayList<Change>();
+		List<Change> changes = new ArrayList<>();
 		IResource resource = getBreakpointContainer();
 		IMarker[] markers= resource.findMarkers(IBreakpoint.BREAKPOINT_MARKER, true, IResource.DEPTH_INFINITE);
 		gatherChanges(markers, changes, getArguments().getNewName());
@@ -108,10 +108,10 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Gathers refactoring specific changes. Subclasses must override.
-	 * 
+	 *
 	 * @param markers the markers
 	 * @param changes the list of changes
 	 * @param destName the destination name
@@ -119,32 +119,32 @@
 	 * @throws OperationCanceledException if the operation was cancelled
 	 */
 	protected abstract void gatherChanges(IMarker[] markers, List<Change> changes, String destName) throws CoreException, OperationCanceledException;
-	
+
 	/**
 	 * Returns the resource that should be considered when searching for affected breakpoints.
-	 * 
+	 *
 	 * @return resource to search for breakpoint markers.
 	 */
 	protected IResource getBreakpointContainer() {
 		return fElement.getResource();
 	}
-	
+
 	/**
 	 * Returns the breakpoint associated with the given marker.
-	 * 
+	 *
 	 * @param marker breakpoint marker
 	 * @return breakpoint or <code>null</code>
 	 */
 	protected IBreakpoint getBreakpoint(IMarker marker) {
 		return DebugPlugin.getDefault().getBreakpointManager().getBreakpoint(marker);
 	}
-	
+
 	/**
 	 * Creates a specific type of change for a breakpoint that is changing types.
 	 * @param breakpoint the breakpoint to create the change for
 	 * @param destType the destination type name
 	 * @param originalType the original type name
-	 * 
+	 *
 	 * @return type change or <code>null</code>
 	 * @throws CoreException if creating the change fails
 	 */
@@ -161,11 +161,11 @@
 			return new LineBreakpointTypeChange((IJavaLineBreakpoint) breakpoint, destType);
 		}
 		return null;
-	}		
-	
+	}
+
 	/**
 	 * Returns whether the given target type is contained in the specified container type.
-	 * 
+	 *
 	 * @param container the container
 	 * @param type the type
 	 * @return if the type is contained in the given container
@@ -179,5 +179,5 @@
 			parent = parent.getParent();
 		}
 		return false;
-	}	
+	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointRenameProjectParticipant.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointRenameProjectParticipant.java
index 8825e1a..62f9599 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointRenameProjectParticipant.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointRenameProjectParticipant.java
@@ -33,7 +33,7 @@
 
 /**
  * Breakpoint participant for project rename.
- * 
+ *
  * @since 3.2
  */
 public class BreakpointRenameProjectParticipant extends BreakpointRenameParticipant {
@@ -90,7 +90,7 @@
 			}
 		}
 	}
-	
+
 	/*
 	 * (non-Javadoc) returns the root folder path. root.getElementName() does not work if src folder has layers of folders
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointRenameTypeParticipant.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointRenameTypeParticipant.java
index 3557b0d..5414a8d 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointRenameTypeParticipant.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointRenameTypeParticipant.java
@@ -28,21 +28,21 @@
 
 /**
  * Breakpoint participant for type rename.
- * 
+ *
  * @since 3.2
  */
 public class BreakpointRenameTypeParticipant extends BreakpointRenameParticipant {
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see org.eclipse.jdt.internal.debug.core.refactoring.BreakpointRenameParticipant#accepts(org.eclipse.jdt.core.IJavaElement)
      */
     @Override
 	protected boolean accepts(IJavaElement element) {
         return element instanceof IType;
     }
-    
+
 	@Override
 	protected Change createTypeChange(IJavaBreakpoint breakpoint, IType destType, IType originalType) throws CoreException {
 		if (breakpoint instanceof IJavaWatchpoint) {
@@ -50,10 +50,10 @@
 		}
 		return super.createTypeChange(breakpoint, destType, originalType);
 	}
-	
+
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see org.eclipse.jdt.internal.debug.core.refactoring.BreakpointRenameParticipant#gatherChanges(org.eclipse.core.resources.IMarker[],
      *      java.util.List, java.lang.String)
      */
@@ -75,11 +75,11 @@
             }
             destCU = originalType.getPackageFragment().getCompilationUnit(simpleDestName + ext);
         }
-        
+
         // newType is the type that is changing - it may contain nested members with breakpoints
         IType newType = BreakpointChange.getType(originalType.getParent(), simpleDestName);
         newType = (IType) BreakpointChange.findElement(destCU, newType);
-        
+
 
         for (int i = 0; i < markers.length; i++) {
             IMarker marker = markers[i];
@@ -101,7 +101,7 @@
                 		changes.add(createTypeChange(javaBreakpoint, destType, breakpointType));
                 	}
                 }
-                	
+
             }
         }
 
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/ClassPrepareBreakpointChange.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/ClassPrepareBreakpointChange.java
index 153ca8d..4ce1a8a 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/ClassPrepareBreakpointChange.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/ClassPrepareBreakpointChange.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,14 +18,14 @@
  *
  */
 public abstract class ClassPrepareBreakpointChange extends BreakpointChange {
-	
+
 	private int fMemberType;
-	
+
 	public ClassPrepareBreakpointChange(IJavaClassPrepareBreakpoint breakpoint) throws CoreException {
 		super(breakpoint);
 		fMemberType = breakpoint.getMemberType();
 	}
-	
+
 	protected int getMemberType() {
 		return fMemberType;
 	}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/ClassPrepareBreakpointTypeChange.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/ClassPrepareBreakpointTypeChange.java
index 429597f..bf0d895 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/ClassPrepareBreakpointTypeChange.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/ClassPrepareBreakpointTypeChange.java
@@ -30,7 +30,7 @@
  *
  */
 public class ClassPrepareBreakpointTypeChange extends ClassPrepareBreakpointChange {
-	
+
 	private IType fDestType;
 
 	public ClassPrepareBreakpointTypeChange(IJavaClassPrepareBreakpoint breakpoint, IType destType) throws CoreException {
@@ -53,7 +53,7 @@
 	@Override
 	public Change perform(IProgressMonitor pm) throws CoreException {
 		IResource resource = BreakpointUtils.getBreakpointResource(fDestType);
-		Map<String, Object> map = new HashMap<String, Object>();
+		Map<String, Object> map = new HashMap<>();
 		BreakpointUtils.addJavaBreakpointAttributes(map, fDestType);
 		map.put(IInternalDebugUIConstants.WORKING_SET_NAME, getOriginalWorkingSets());// creating breakpoint in the original working set
 		// TODO - start/end should be adjusted, but can access new CU from model yet
@@ -62,7 +62,7 @@
 				resource,
 				fDestType.getFullyQualifiedName(),
 				getMemberType(),
-				range.getOffset(), 
+				range.getOffset(),
 				range.getOffset() + range.getLength(),
 				true,
 				map);
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/DeleteBreakpointChange.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/DeleteBreakpointChange.java
index c27e806..8d4d8da 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/DeleteBreakpointChange.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/DeleteBreakpointChange.java
@@ -22,12 +22,12 @@
  * When undoing a refactoring, the "target/original" resource does
  * not exist in time to create a marker on it, and thus the operation
  * cannot be undone. Instead, we delete breakpoints on undo.
- * 
+ *
  * @since 3.2
  *
  */
 public class DeleteBreakpointChange extends BreakpointChange {
-	
+
 	public DeleteBreakpointChange(IJavaBreakpoint breakpoint) throws CoreException {
 		super(breakpoint);
 	}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/ExceptionBreakpointChange.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/ExceptionBreakpointChange.java
index 4fea873..5efe75c 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/ExceptionBreakpointChange.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/ExceptionBreakpointChange.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,10 +18,10 @@
  *
  */
 public abstract class ExceptionBreakpointChange extends BreakpointChange {
-	
+
 	private String[] fExclusionFilters, fInclusionFilters;
 	boolean fCaught, fUncaught, fChecked;
-	
+
 	public ExceptionBreakpointChange(IJavaExceptionBreakpoint breakpoint) throws CoreException {
 		super(breakpoint);
 		fExclusionFilters = breakpoint.getExclusionFilters();
@@ -30,19 +30,19 @@
 		fUncaught = breakpoint.isUncaught();
 		fChecked  = breakpoint.isChecked();
 	}
-	
+
 	protected boolean isChecked() {
 		return fChecked;
 	}
-	
+
 	protected boolean isCaught() {
 		return fCaught;
 	}
-	
+
 	protected boolean isUncaught() {
 		return fUncaught;
 	}
-	
+
 	protected void apply(IJavaExceptionBreakpoint breakpoint) throws CoreException {
 		super.apply(breakpoint);
 		breakpoint.setExclusionFilters(fExclusionFilters);
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/ExceptionBreakpointTypeChange.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/ExceptionBreakpointTypeChange.java
index b9a5774..f1e77f3 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/ExceptionBreakpointTypeChange.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/ExceptionBreakpointTypeChange.java
@@ -28,9 +28,9 @@
  *
  */
 public class ExceptionBreakpointTypeChange extends ExceptionBreakpointChange {
-	
+
 	private IType fDestType;
-	
+
 	public ExceptionBreakpointTypeChange(IJavaExceptionBreakpoint breakpoint, IType destType) throws CoreException {
 		super(breakpoint);
 		fDestType = destType;
@@ -50,7 +50,7 @@
 	 */
 	@Override
 	public Change perform(IProgressMonitor pm) throws CoreException {
-		Map<String, Object> map = new HashMap<String, Object>();
+		Map<String, Object> map = new HashMap<>();
 		BreakpointUtils.addJavaBreakpointAttributes(map, fDestType);
 		IResource resource = BreakpointUtils.getBreakpointResource(fDestType);
 		IJavaExceptionBreakpoint breakpoint = JDIDebugModel.createExceptionBreakpoint(
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/JDTDebugRefactoringUtil.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/JDTDebugRefactoringUtil.java
index 0bef93f..427a510 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/JDTDebugRefactoringUtil.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/JDTDebugRefactoringUtil.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -28,11 +28,11 @@
 import org.eclipse.ltk.core.refactoring.CompositeChange;
 
 /**
- * 
+ *
  * provides methods to create refactoring changes
  */
 public class JDTDebugRefactoringUtil {
-	
+
 	/**
 	 * Take a list of Changes, and return a unique Change, a CompositeChange, or null.
 	 */
@@ -40,15 +40,15 @@
 		int nbChanges= changes.size();
 		if (nbChanges == 0) {
 			return null;
-		} 
+		}
 		else if (nbChanges == 1) {
 			return changes.get(0);
-		} 
+		}
 		else {
 			return new CompositeChange(changeLabel, changes.toArray(new Change[changes.size()]));
 		}
 	}
-	
+
 	/**
 	 * Returns the new container name for the given project and launch configuration
 	 * @param javaProject the java to get the new container name for
@@ -63,7 +63,7 @@
         }
         return null;
     }
-	
+
 	/**
 	 * Returns a change for the given launch configuration if the launch configuration needs to
 	 * be updated for this IType change. It specifically looks to see if the main type of the launch configuration
@@ -94,7 +94,7 @@
 		}
 		return change;
 	}
-	
+
 	/**
 	 * Provides a public mechanism for creating the <code>Change</code> for moving a package
 	 * @param packageFragment the fragment to move
@@ -104,7 +104,7 @@
 	 * @since 3.2
 	 */
 	public static Change createChangesForPackageMove(IPackageFragment pfragment, IPackageFragmentRoot destination) throws CoreException {
-		List<Change> changes = new ArrayList<Change>();
+		List<Change> changes = new ArrayList<>();
 		ILaunchConfiguration[] configs = getJavaTypeLaunchConfigurations(pfragment.getJavaProject().getElementName());
 		String mtname = null;
 		for (int i= 0; i < configs.length; i++) {
@@ -115,9 +115,9 @@
 				}
 			}
 		}
-		return JDTDebugRefactoringUtil.createChangeFromList(changes, RefactoringMessages.LaunchConfigurationProjectMainTypeChange_7); 
+		return JDTDebugRefactoringUtil.createChangeFromList(changes, RefactoringMessages.LaunchConfigurationProjectMainTypeChange_7);
 	}
-	
+
 	/**
 	 * Provides a public mechanism for creating the <code>Change</code> for renaming a package
 	 * @param packageFragment the fragment to rename
@@ -127,7 +127,7 @@
 	 * @since 3.2
 	 */
 	public static Change createChangesForPackageRename(IPackageFragment pfragment, String newname) throws CoreException {
-		List<Change> changes = new ArrayList<Change>();
+		List<Change> changes = new ArrayList<>();
 		ILaunchConfiguration[] configs = getJavaTypeLaunchConfigurations(pfragment.getJavaProject().getElementName());
 		String mtname;
 		for (int i= 0; i < configs.length; i++) {
@@ -147,9 +147,9 @@
 				changes.add(new LaunchConfigurationProjectMainTypeChange(configs[i], null, null));
 			}
 		}
-		return JDTDebugRefactoringUtil.createChangeFromList(changes, RefactoringMessages.LaunchConfigurationProjectMainTypeChange_7); 
+		return JDTDebugRefactoringUtil.createChangeFromList(changes, RefactoringMessages.LaunchConfigurationProjectMainTypeChange_7);
 	}
-	
+
 	/**
 	 * Provides a public mechanism for creating the <code>Change</code> for renaming a project
 	 * @param javaProject the project to rename
@@ -159,7 +159,7 @@
 	 * @since 3.2
 	 */
 	public static Change createChangesForProjectRename(IJavaProject project, String newname) throws CoreException {
-		List<Change> changes = new ArrayList<Change>();
+		List<Change> changes = new ArrayList<>();
 		ILaunchConfiguration[] configs = getJavaTypeLaunchConfigurations(project.getElementName());
 		LaunchConfigurationProjectMainTypeChange change = null;
 		for (int i= 0; i < configs.length; i++) {
@@ -170,9 +170,9 @@
             }
 			changes.add(change);
 		}
-		return JDTDebugRefactoringUtil.createChangeFromList(changes, RefactoringMessages.LaunchConfigurationProjectMainTypeChange_7); 
+		return JDTDebugRefactoringUtil.createChangeFromList(changes, RefactoringMessages.LaunchConfigurationProjectMainTypeChange_7);
 	}
-	
+
 	/**
 	 * Creates a <code>Change</code> for a type change
 	 * @param type the type that is changing
@@ -183,7 +183,7 @@
 	 * @since 3.2
 	 */
 	protected static Change createChangesForTypeChange(IType type, String newfqname, String pname) throws CoreException {
-		List<Change> changes = new ArrayList<Change>();
+		List<Change> changes = new ArrayList<>();
 		String typename = type.getFullyQualifiedName();
 		ILaunchConfiguration[] configs = getJavaTypeLaunchConfigurations(type.getJavaProject().getElementName());
 		String mtname;
@@ -191,7 +191,7 @@
 			mtname = configs[i].getAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME, (String)null);
 			if (typename.equals(mtname)) {
 				changes.add(new LaunchConfigurationProjectMainTypeChange(configs[i], newfqname, pname));
-			} 
+			}
 			else {
 				Change change = createChangesForOuterTypeChange(configs[i], type, newfqname, pname);
 				if (change != null) {
@@ -199,9 +199,9 @@
 				}
 			}
 		}
-		return JDTDebugRefactoringUtil.createChangeFromList(changes, RefactoringMessages.LaunchConfigurationProjectMainTypeChange_7); 
+		return JDTDebugRefactoringUtil.createChangeFromList(changes, RefactoringMessages.LaunchConfigurationProjectMainTypeChange_7);
 	}
-	
+
 	/**
 	 * Provides a public mechanism for creating the <code>Change</code> for moving a type
 	 * @param type the type being moved
@@ -219,15 +219,15 @@
 		String newfqname = type.getElementName();
 		if (destination instanceof IType) {
 			newfqname = ((IType)destination).getFullyQualifiedName() + '$' + type.getElementName();
-		} 
+		}
 		else if (destination instanceof IPackageFragment) {
 			if (!((IPackageFragment) destination).isDefaultPackage()) {
 				newfqname = destination.getElementName() + '.' + type.getElementName();
 			}
-		} 
+		}
 		return createChangesForTypeChange(type, newfqname, newpname);
 	}
-	
+
 	/**
 	 * Provides a public mechanism for creating the <code>Change</code> for renaming a type
 	 * @param type the type to rename
@@ -244,13 +244,13 @@
 			if (!packageFragment.isDefaultPackage()) {
 				newfqname = packageFragment.getElementName() + '.' + newname;
 			}
-		} 
+		}
 		else {
 			newfqname = dtype.getFullyQualifiedName() + '$' + newname;
 		}
 		return createChangesForTypeChange(type, newfqname, null);
 	}
-	
+
 	/**
 	 * Returns a listing of configurations that have a specific project name attribute in them
 	 * @param pname the project attribute to compare against
@@ -260,7 +260,7 @@
 	protected static ILaunchConfiguration[] getJavaTypeLaunchConfigurations(String pname) {
 		try {
 			ILaunchConfiguration[] configs = DebugPlugin.getDefault().getLaunchManager().getLaunchConfigurations();
-			ArrayList<ILaunchConfiguration> list = new ArrayList<ILaunchConfiguration>();
+			ArrayList<ILaunchConfiguration> list = new ArrayList<>();
 			String attrib;
 			for(int i = 0; i < configs.length; i++) {
 				attrib = configs[i].getAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, (String)null);
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/LaunchConfigurationIJavaProjectRenameParticipant.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/LaunchConfigurationIJavaProjectRenameParticipant.java
index c25c13a..68c8873 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/LaunchConfigurationIJavaProjectRenameParticipant.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/LaunchConfigurationIJavaProjectRenameParticipant.java
@@ -37,13 +37,13 @@
 		fJavaProject = (IJavaProject) element;
 		return true;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#getName()
 	 */
 	@Override
 	public String getName() {
-		return RefactoringMessages.LaunchConfigurationParticipant_0; 
+		return RefactoringMessages.LaunchConfigurationParticipant_0;
 	}
 
 	/* (non-Javadoc)
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/LaunchConfigurationIPackageFragmentMoveParticipant.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/LaunchConfigurationIPackageFragmentMoveParticipant.java
index cb2e4ae..e2dc7e4 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/LaunchConfigurationIPackageFragmentMoveParticipant.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/LaunchConfigurationIPackageFragmentMoveParticipant.java
@@ -29,7 +29,7 @@
 
 	private IPackageFragment fPackageFragment;
 	private IPackageFragmentRoot fDestination;
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#initialize(java.lang.Object)
 	 */
@@ -53,7 +53,7 @@
 	 */
 	@Override
 	public String getName() {
-		return RefactoringMessages.LaunchConfigurationParticipant_0; 
+		return RefactoringMessages.LaunchConfigurationParticipant_0;
 	}
 
 	/* (non-Javadoc)
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/LaunchConfigurationIPackageFragmentRenameParticipant.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/LaunchConfigurationIPackageFragmentRenameParticipant.java
index ae6b1ce..eeff664 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/LaunchConfigurationIPackageFragmentRenameParticipant.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/LaunchConfigurationIPackageFragmentRenameParticipant.java
@@ -20,9 +20,9 @@
 import org.eclipse.ltk.core.refactoring.participants.RenameParticipant;
 
 public class LaunchConfigurationIPackageFragmentRenameParticipant extends RenameParticipant {
-	
+
 	private IPackageFragment fPackageFragment;
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#initialize(java.lang.Object)
 	 */
@@ -37,7 +37,7 @@
 	 */
 	@Override
 	public String getName() {
-		return RefactoringMessages.LaunchConfigurationParticipant_0; 
+		return RefactoringMessages.LaunchConfigurationParticipant_0;
 	}
 
 	/* (non-Javadoc)
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/LaunchConfigurationITypeMoveParticipant.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/LaunchConfigurationITypeMoveParticipant.java
index dedfea0..c6b2eb2 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/LaunchConfigurationITypeMoveParticipant.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/LaunchConfigurationITypeMoveParticipant.java
@@ -26,7 +26,7 @@
 /**
  */
 public class LaunchConfigurationITypeMoveParticipant extends MoveParticipant {
-	
+
 	private IType fType;
 	private IJavaElement fDestination;
 
@@ -61,7 +61,7 @@
 	 */
 	@Override
 	public String getName() {
-		return RefactoringMessages.LaunchConfigurationParticipant_0; 
+		return RefactoringMessages.LaunchConfigurationParticipant_0;
 	}
 
 	/* (non-Javadoc)
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/LaunchConfigurationITypeRenameParticipant.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/LaunchConfigurationITypeRenameParticipant.java
index 0e0eaeb..a388434 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/LaunchConfigurationITypeRenameParticipant.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/LaunchConfigurationITypeRenameParticipant.java
@@ -33,15 +33,15 @@
 		fType= (IType) element;
 		return true;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#getName()
 	 */
 	@Override
 	public String getName() {
-		return RefactoringMessages.LaunchConfigurationParticipant_0; 
+		return RefactoringMessages.LaunchConfigurationParticipant_0;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#checkConditions(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/LaunchConfigurationProjectMainTypeChange.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/LaunchConfigurationProjectMainTypeChange.java
index b6dbc0a..be34fbd 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/LaunchConfigurationProjectMainTypeChange.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/LaunchConfigurationProjectMainTypeChange.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Feng(Marvin) Wang <feng.wang@sybase.com> - bug 244395
@@ -33,7 +33,7 @@
  * The change for the main type project change of a launch configuration
  */
 public class LaunchConfigurationProjectMainTypeChange extends Change {
-	
+
 	private ILaunchConfiguration fLaunchConfiguration;
 	private String fNewMainTypeName;
 	private String fNewProjectName;
@@ -41,7 +41,7 @@
 	private String fOldMainTypeName;
 	private String fOldProjectName;
     private String fNewConfigContainerName;
-	
+
     /**
 	 * LaunchConfigurationProjectMainTypeChange constructor.
 	 * @param launchConfiguration the launch configuration to modify
@@ -73,30 +73,30 @@
 	public Object getModifiedElement() {
 		return fLaunchConfiguration;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ltk.core.refactoring.Change#getName()
 	 */
 	@Override
 	public String getName() {
 		if (fNewLaunchConfigurationName != null) {
-			return NLS.bind(RefactoringMessages.LaunchConfigurationProjectMainTypeChange_0, new String[] {fLaunchConfiguration.getName(), fNewLaunchConfigurationName}); 
-		} 
+			return NLS.bind(RefactoringMessages.LaunchConfigurationProjectMainTypeChange_0, new String[] {fLaunchConfiguration.getName(), fNewLaunchConfigurationName});
+		}
 		if (fNewProjectName == null) {
-			return NLS.bind(RefactoringMessages.LaunchConfigurationProjectMainTypeChange_1, new String[] {fLaunchConfiguration.getName()}); 
+			return NLS.bind(RefactoringMessages.LaunchConfigurationProjectMainTypeChange_1, new String[] {fLaunchConfiguration.getName()});
 		}
 		if (fNewMainTypeName == null) {
-			return NLS.bind(RefactoringMessages.LaunchConfigurationProjectMainTypeChange_2, new String[] {fLaunchConfiguration.getName()}); 
+			return NLS.bind(RefactoringMessages.LaunchConfigurationProjectMainTypeChange_2, new String[] {fLaunchConfiguration.getName()});
 		}
-		return NLS.bind(RefactoringMessages.LaunchConfigurationProjectMainTypeChange_3, new String[] {fLaunchConfiguration.getName()}); 
+		return NLS.bind(RefactoringMessages.LaunchConfigurationProjectMainTypeChange_3, new String[] {fLaunchConfiguration.getName()});
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ltk.core.refactoring.Change#initializeValidationData(org.eclipse.core.runtime.IProgressMonitor)
 	 */
 	@Override
 	public void initializeValidationData(IProgressMonitor pm) {}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ltk.core.refactoring.Change#isValid(org.eclipse.core.runtime.IProgressMonitor)
 	 */
@@ -110,7 +110,7 @@
 					if (fOldProjectName.equals(projectName)) {
 						return new RefactoringStatus();
 					}
-					return RefactoringStatus.createWarningStatus(NLS.bind(RefactoringMessages.LaunchConfigurationProjectMainTypeChange_4, new String[] {fLaunchConfiguration.getName(), fOldProjectName})); 
+					return RefactoringStatus.createWarningStatus(NLS.bind(RefactoringMessages.LaunchConfigurationProjectMainTypeChange_4, new String[] {fLaunchConfiguration.getName(), fOldProjectName}));
 				}
 				return RefactoringStatus.createWarningStatus(NLS.bind(RefactoringMessages.LaunchConfigurationProjectMainTypeChange_5, new String[] {fLaunchConfiguration.getName(), fOldMainTypeName}));
 			}
@@ -119,15 +119,15 @@
 				return new RefactoringStatus();
 			}
 			return RefactoringStatus.createWarningStatus(NLS.bind(RefactoringMessages.LaunchConfigurationProjectMainTypeChange_4, new String[] {fLaunchConfiguration.getName(), fOldProjectName}));
-		} 
-		return RefactoringStatus.createFatalErrorStatus(NLS.bind(RefactoringMessages.LaunchConfigurationProjectMainTypeChange_6, new String[] {fLaunchConfiguration.getName()})); 
+		}
+		return RefactoringStatus.createFatalErrorStatus(NLS.bind(RefactoringMessages.LaunchConfigurationProjectMainTypeChange_6, new String[] {fLaunchConfiguration.getName()}));
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ltk.core.refactoring.Change#perform(org.eclipse.core.runtime.IProgressMonitor)
 	 */
 	@Override
-	public Change perform(IProgressMonitor pm) throws CoreException {    
+	public Change perform(IProgressMonitor pm) throws CoreException {
 		final ILaunchConfigurationWorkingCopy wc = fLaunchConfiguration.getWorkingCopy();
         if (fNewConfigContainerName != null) {
             IWorkspace workspace = ResourcesPlugin.getWorkspace();
@@ -141,14 +141,14 @@
 		if (fNewMainTypeName != null) {
 			oldMainTypeName = fOldMainTypeName;
 			wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME, fNewMainTypeName);
-		} 
+		}
 		else {
 			oldMainTypeName = null;
 		}
 		if (fNewProjectName != null) {
 			oldProjectName = fOldProjectName;
 			wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, fNewProjectName);
-		} 
+		}
 		else {
 			oldProjectName = null;
 		}
@@ -163,7 +163,7 @@
 		// create the undo change
 		return new LaunchConfigurationProjectMainTypeChange(fLaunchConfiguration, oldMainTypeName, oldProjectName);
 	}
-	
+
 	/**
      * Sets the new container name
      * @param newContainerName the new name for the container
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/LineBreakpointChange.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/LineBreakpointChange.java
index b30ec19..b2753e1 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/LineBreakpointChange.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/LineBreakpointChange.java
@@ -18,7 +18,7 @@
  * @since 3.2
  */
 public abstract class LineBreakpointChange extends BreakpointChange {
-	
+
 	private int fCharEnd, fCharStart, fLineNumber;
 	private boolean fConditionEnabled, fConditionSuspendOnTrue;
 	private String fCondition;
@@ -61,7 +61,7 @@
 	protected int getLineNumber() {
 		return fLineNumber;
 	}
-	
+
 	/**
 	 * Returns the char end attribute of the underlying line breakpoint
 	 * @return the char end attribute of the underlying line breakpoint
@@ -69,7 +69,7 @@
 	protected int getCharEnd() {
 		return fCharEnd;
 	}
-	
+
 	/**
 	 * Returns the char start attribute of the underlying line breakpoint
 	 * @return the char start attribute of the underlying line breakpoint
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/LineBreakpointTypeChange.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/LineBreakpointTypeChange.java
index 1f87ded..54042f4 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/LineBreakpointTypeChange.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/LineBreakpointTypeChange.java
@@ -29,14 +29,14 @@
  *
  */
 public class LineBreakpointTypeChange extends LineBreakpointChange {
-	
+
 	private IType fDestType;
-	
+
 	public LineBreakpointTypeChange(IJavaLineBreakpoint breakpoint, IType destType) throws CoreException {
 		super(breakpoint);
 		fDestType = destType;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ltk.core.refactoring.Change#getName()
 	 */
@@ -56,17 +56,17 @@
 	@Override
 	public Change perform(IProgressMonitor pm) throws CoreException {
 		IResource resource = BreakpointUtils.getBreakpointResource(fDestType);
-		Map<String, Object> map = new HashMap<String, Object>();
+		Map<String, Object> map = new HashMap<>();
 		BreakpointUtils.addJavaBreakpointAttributes(map, fDestType);
 		map.put(IInternalDebugUIConstants.WORKING_SET_NAME, getOriginalWorkingSets());// creating breakpoint in the original working set
 		IJavaLineBreakpoint breakpoint = JDIDebugModel.createLineBreakpoint(
 				resource,
 				fDestType.getFullyQualifiedName(),
 				getLineNumber(),
-				getCharStart(), 
+				getCharStart(),
 				getCharEnd(),
-				0, 
-				true, 
+				0,
+				true,
 				map);
 		apply(breakpoint);
 		getOriginalBreakpoint().delete();
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/MethodBreakpointChange.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/MethodBreakpointChange.java
index 6c1f427..5915a45 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/MethodBreakpointChange.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/MethodBreakpointChange.java
@@ -18,7 +18,7 @@
  * @since 3.2
  */
 public abstract class MethodBreakpointChange extends LineBreakpointChange {
-	
+
 	private String fMethodName, fSignature;
 	private boolean fEntry, fExit, fNativeOnly;
 
@@ -35,7 +35,7 @@
 		fExit = breakpoint.isExit();
 		fNativeOnly = breakpoint.isNativeOnly();
 	}
-	
+
 	/**
 	 * Returns the name of the method
 	 * @return the name of the method
@@ -43,7 +43,7 @@
 	protected String getMethodName() {
 		return fMethodName;
 	}
-	
+
 	/**
 	 * Returns the signature of the method
 	 * @return the signature of the method
@@ -51,7 +51,7 @@
 	protected String getSignature() {
 		return fSignature;
 	}
-	
+
 	/**
 	 * Returns if it is an entry breakpoint
 	 * @return if it is an entry breakpoint
@@ -59,7 +59,7 @@
 	protected boolean isEntry() {
 		return fEntry;
 	}
-	
+
 	/**
 	 * Returns if it is an exit breakpoint
 	 * @return if it is an exit breakpoint
@@ -67,7 +67,7 @@
 	protected boolean isExit() {
 		return fExit;
 	}
-	
+
 	/**
 	 * Returns if it is native only
 	 * @return if it is native only
@@ -86,6 +86,6 @@
 		breakpoint.setEntry(fEntry);
 		breakpoint.setExit(fExit);
 		breakpoint.setNativeOnly(fNativeOnly);
-	}	
-	
+	}
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/MethodBreakpointMethodChange.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/MethodBreakpointMethodChange.java
index 2dc5154..690623e 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/MethodBreakpointMethodChange.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/MethodBreakpointMethodChange.java
@@ -31,7 +31,7 @@
 public class MethodBreakpointMethodChange extends MethodBreakpointChange {
 
 	private IMethod fDestMethod;
-	
+
 	public MethodBreakpointMethodChange(IJavaMethodBreakpoint breakpoint, IMethod destMethod) throws CoreException {
 		super(breakpoint);
 		fDestMethod = destMethod;
@@ -50,7 +50,7 @@
 	 */
 	@Override
 	public Change perform(IProgressMonitor pm) throws CoreException {
-		Map<String, Object> map = new HashMap<String, Object>();
+		Map<String, Object> map = new HashMap<>();
 		BreakpointUtils.addJavaBreakpointAttributes(map, fDestMethod);
 		IResource resource = BreakpointUtils.getBreakpointResource(fDestMethod);
 		int range[] = getNewLineNumberAndRange(fDestMethod);
@@ -66,7 +66,7 @@
 				NO_LINE_NUMBER,
 				range[1],
 				range[2],
-				getHitCount(), 
+				getHitCount(),
 				true,
 				map);
 		apply(breakpoint);
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/MethodBreakpointTypeChange.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/MethodBreakpointTypeChange.java
index ee4ccf5..996be1a 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/MethodBreakpointTypeChange.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/MethodBreakpointTypeChange.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -33,7 +33,7 @@
 public class MethodBreakpointTypeChange extends MethodBreakpointChange {
 
 	private IType fDestType;
-	
+
 	public MethodBreakpointTypeChange(IJavaMethodBreakpoint breakpoint, IType destType) throws CoreException {
 		super(breakpoint);
 		fDestType = destType;
@@ -59,7 +59,7 @@
 		String[] parameterTypes = Signature.getParameterTypes(getSignature());
 		for (int i = 0; i < parameterTypes.length; i++) {
 			parameterTypes[i] = parameterTypes[i].replace('/', '.');
-			
+
 		}
 		IMethod destMethod = fDestType.getMethod(getMethodName(), parameterTypes);
 		if (!destMethod.exists()) {
@@ -72,7 +72,7 @@
 				}
 			}
 		}
-		Map<String, Object> map = new HashMap<String, Object>();
+		Map<String, Object> map = new HashMap<>();
 		BreakpointUtils.addJavaBreakpointAttributes(map, destMethod);
 		map.put(IInternalDebugUIConstants.WORKING_SET_NAME, getOriginalWorkingSets());// creating breakpoint in the original working set
 		IResource resource = BreakpointUtils.getBreakpointResource(destMethod);
@@ -88,7 +88,7 @@
 				NO_LINE_NUMBER,
 				range[1],
 				range[2],
-				getHitCount(), 
+				getHitCount(),
 				true,
 				map);
 		apply(breakpoint);
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/RefactoringMessages.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/RefactoringMessages.java
index ad12a33..9444fff 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/RefactoringMessages.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/RefactoringMessages.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *  IBM - Initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/WatchpointChange.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/WatchpointChange.java
index 66a0217..19c8894 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/WatchpointChange.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/WatchpointChange.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,7 +18,7 @@
  *
  */
 public abstract class WatchpointChange extends LineBreakpointChange {
-	
+
 	private String fFieldName;
 	private boolean fAccess, fModification;
 
@@ -28,11 +28,11 @@
 		fAccess = watchpoint.isAccess();
 		fModification = watchpoint.isModification();
 	}
-	
+
 	protected String getFieldName() {
 		return fFieldName;
 	}
-	
+
 	protected void apply(IJavaWatchpoint breakpoint) throws CoreException {
 		super.apply(breakpoint);
 		breakpoint.setAccess(fAccess);
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/WatchpointFieldChange.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/WatchpointFieldChange.java
index f69d094..d2895bd 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/WatchpointFieldChange.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/WatchpointFieldChange.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -29,9 +29,9 @@
  *
  */
 public class WatchpointFieldChange extends WatchpointChange {
-	
+
 	private IField fDestField;
-	
+
 	public WatchpointFieldChange(IJavaWatchpoint watchpoint, IField destField) throws CoreException {
 		super(watchpoint);
 		fDestField = destField;
@@ -51,7 +51,7 @@
 	 */
 	@Override
 	public Change perform(IProgressMonitor pm) throws CoreException {
-		Map<String, Object> map = new HashMap<String, Object>();
+		Map<String, Object> map = new HashMap<>();
 		map.put(IInternalDebugUIConstants.WORKING_SET_NAME, getOriginalWorkingSets());// creating breakpoint in the original working set
 		BreakpointUtils.addJavaBreakpointAttributes(map, fDestField);
 		IResource resource = BreakpointUtils.getBreakpointResource(fDestField);
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/WatchpointTypeChange.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/WatchpointTypeChange.java
index 843de36..3a2f412 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/WatchpointTypeChange.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/WatchpointTypeChange.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -29,9 +29,9 @@
  *
  */
 public class WatchpointTypeChange extends WatchpointChange {
-	
+
 	private IType fDestType, fOriginalType;
-	
+
 	public WatchpointTypeChange(IJavaWatchpoint watchpoint, IType destType, IType originalType) throws CoreException {
 		super(watchpoint);
 		fDestType = destType;
@@ -57,7 +57,7 @@
 	@Override
 	public Change perform(IProgressMonitor pm) throws CoreException {
 		IField destField = fDestType.getField(getFieldName());
-		Map<String, Object> map = new HashMap<String, Object>();
+		Map<String, Object> map = new HashMap<>();
 		BreakpointUtils.addJavaBreakpointAttributes(map, destField);
 		IResource resource = BreakpointUtils.getBreakpointResource(destField);
 		int[] range = getNewLineNumberAndRange(destField);
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/WatchpointTypeRenameChange.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/WatchpointTypeRenameChange.java
index c031496..5d0c5c8 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/WatchpointTypeRenameChange.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/WatchpointTypeRenameChange.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -38,12 +38,12 @@
 		fProcessor = processor;
 		fArguments = arguments;
 	}
-	
+
 	@Override
 	public Change perform(IProgressMonitor pm) throws CoreException {
 		IField originalField = getOriginalType().getField(getFieldName());
 		IField destinationField = null;
-		
+
 		if (fArguments.getUpdateSimilarDeclarations()) {
 			IJavaElement[] similarDeclarations = fArguments.getSimilarDeclarations();
 			if (similarDeclarations != null) {
@@ -60,8 +60,8 @@
 		if (destinationField == null) {
 			destinationField = getDestinationType().getField(getFieldName());
 		}
-		
-		Map<String, Object> map = new HashMap<String, Object>();
+
+		Map<String, Object> map = new HashMap<>();
 		BreakpointUtils.addJavaBreakpointAttributes(map, destinationField);
 		map.put(IInternalDebugUIConstants.WORKING_SET_NAME, getOriginalWorkingSets()); // creating breakpoint in the original working set
 		IResource resource = BreakpointUtils.getBreakpointResource(destinationField);
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/ActionFilterAdapterFactory.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/ActionFilterAdapterFactory.java
index cc06cbb..09813dd 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/ActionFilterAdapterFactory.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/ActionFilterAdapterFactory.java
@@ -4,13 +4,13 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui;
 
- 
+
 import org.eclipse.core.runtime.IAdapterFactory;
 import org.eclipse.jdt.core.IMember;
 import org.eclipse.jdt.debug.core.IJavaStackFrame;
@@ -36,13 +36,13 @@
 		if (adapterType == IActionFilter.class) {
 			if (obj instanceof IJavaThread) {
 				return (T) new JavaThreadActionFilter();
-			} 
+			}
 			else if (obj instanceof IJavaStackFrame) {
 				return (T) new JavaStackFrameActionFilter();
-			} 
+			}
 			else if (obj instanceof IMember) {
 				return (T) new MemberActionFilter();
-			} 
+			}
 			else if((obj instanceof IJavaVariable) || (obj instanceof JavaInspectExpression)) {
 				return (T) new JavaVarActionFilter();
 			}
@@ -56,7 +56,7 @@
 	@Override
 	public Class<?>[] getAdapterList() {
 		return new Class[] {
-			IActionFilter.class 
+			IActionFilter.class
 		};
 	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/BreakpointMarkerUpdater.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/BreakpointMarkerUpdater.java
index e5dfae5..a95ffcc 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/BreakpointMarkerUpdater.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/BreakpointMarkerUpdater.java
@@ -37,31 +37,31 @@
 import org.eclipse.ui.texteditor.MarkerUtilities;
 
 /**
- * This class provides a mechanism to correct the placement of a 
+ * This class provides a mechanism to correct the placement of a
  * breakpoint marker when the related document is edited.
- * 
+ *
  * This updater is used to cover the line number discrepancy cases that <code>BasicMarkerUpdater</code> does not:
  * <ul>
- * <li>If you insert a blank line at the start of the line of code, the breakpoint 
- * is moved from the blank line to the next viable line down, 
+ * <li>If you insert a blank line at the start of the line of code, the breakpoint
+ * is moved from the blank line to the next viable line down,
  * following the same breakpoint placement rules as creating a breakpoint</li>
- * 
- * <li>If you select the contents of an entire line and delete them 
+ *
+ * <li>If you select the contents of an entire line and delete them
  * (leaving the line blank), the breakpoint is moved to the next viable line down,
  * following the same breakpoint placement rules as creating a breakpoint</li>
- * 
- * <li>If the breakpoint is on the last viable line of a class file and the line is removed via either of 
+ *
+ * <li>If the breakpoint is on the last viable line of a class file and the line is removed via either of
  * the aforementioned deletion cases, the breakpoint is removed</li>
- * 
+ *
  * <li>If a line breakpoint would be moved to a valid method location with an invalid line number it is removed,
  * see  {@link https://bugs.eclipse.org/bugs/show_bug.cgi?id=188676} for details</li>
- * 
+ *
  * <li>If a line breakpoint will be moved to a line that already has a line breakpoint on it, the one
  * being moved is removed, see {@link https://bugs.eclipse.org/bugs/show_bug.cgi?id=129066} for details</li>
- * 
+ *
  * <li>In the general deletion case if a valid breakpoint location can not be determined, it is removed</li>
  * </ul>
- * 
+ *
  * @since 3.3
  */
 public class BreakpointMarkerUpdater implements IMarkerUpdater {
@@ -139,12 +139,12 @@
 				ensureRanges(document, marker, line);
 			}
 			return true;
-		} 
-		catch (BadLocationException e) {JDIDebugUIPlugin.log(e);} 
+		}
+		catch (BadLocationException e) {JDIDebugUIPlugin.log(e);}
 		catch (CoreException e) {JDIDebugUIPlugin.log(e);}
 		return false;
 	}
-	
+
 	/**
 	 * Updates the charstart and charend ranges if necessary for the given line.
 	 * Returns immediately if the line is not valid (< 0 or greater than the total line number count)
@@ -163,18 +163,18 @@
 		MarkerUtilities.setCharStart(marker, charstart);
 		MarkerUtilities.setCharEnd(marker, charend);
 	}
-	
+
 	/**
 	 * Returns if the specified marker is for an <code>IJavaLineBreakpoint</code>
 	 * @param marker
 	 * @return true if the marker is for an <code>IJavalineBreakpoint</code>, false otherwise
-	 * 
+	 *
 	 * @since 3.4
 	 */
 	private boolean isLineBreakpoint(IMarker marker) {
 		return MarkerUtilities.isMarkerType(marker, "org.eclipse.jdt.debug.javaLineBreakpointMarker"); //$NON-NLS-1$
 	}
-	
+
 	/**
 	 * Searches for an existing line breakpoint on the specified line in the current type that does not match the id of the specified marker
 	 * @param resource the resource to care about
@@ -183,7 +183,7 @@
 	 * @param currentmarker the current marker we are comparing to see if it will be moved onto an existing one
 	 * @return an existing line breakpoint on the current line of the given resource and type if there is one
 	 * @throws CoreException
-	 * 
+	 *
 	 * @since 3.4
 	 */
 	private IJavaLineBreakpoint lineBreakpointExists(IResource resource, String typeName, int lineNumber, IMarker currentmarker) throws CoreException {
@@ -206,6 +206,6 @@
 			}
 		}
 		return null;
-	}	
-	
+	}
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/BreakpointUtils.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/BreakpointUtils.java
index 8ff0b33..9e4337e 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/BreakpointUtils.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/BreakpointUtils.java
@@ -40,14 +40,14 @@
 import org.eclipse.jface.text.source.IVerticalRulerInfo;
 import org.eclipse.ui.texteditor.ITextEditor;
 import org.eclipse.ui.texteditor.SimpleMarkerAnnotation;
- 
+
 /**
- * Utility class for Java breakpoints 
+ * Utility class for Java breakpoints
  */
 public class BreakpointUtils {
-	
+
 	/**
-	 * Marker attribute storing the handle id of the 
+	 * Marker attribute storing the handle id of the
 	 * Java element associated with a Java breakpoint
 	 */
 	private static final String HANDLE_ID = JDIDebugUIPlugin.getUniqueIdentifier() + ".JAVA_ELEMENT_HANDLE_ID"; //$NON-NLS-1$
@@ -56,25 +56,25 @@
 	 * Marker attribute used to denote a run to line breakpoint
 	 */
 	private static final String RUN_TO_LINE =  JDIDebugUIPlugin.getUniqueIdentifier() + ".run_to_line"; //$NON-NLS-1$
-	
+
 	/**
 	 * Marker attribute used to denote the start of the region within a Java
 	 * member that the breakpoint is located within.
 	 */
 	private static final String MEMBER_START =  JDIDebugUIPlugin.getUniqueIdentifier() + ".member_start"; //$NON-NLS-1$
-	
+
 	/**
 	 * Marker attribute used to denote the end of the region within a Java
 	 * member that the breakpoint is located within.
 	 */
 	private static final String MEMBER_END =  JDIDebugUIPlugin.getUniqueIdentifier() + ".member_end"; //$NON-NLS-1$
-	
+
 	/**
 	 * Returns the resource on which a breakpoint marker should
-	 * be created for the given member. The resource returned is the 
-	 * associated file, or workspace root in the case of a binary in 
+	 * be created for the given member. The resource returned is the
+	 * associated file, or workspace root in the case of a binary in
 	 * an external archive.
-	 * 
+	 *
 	 * @param member member in which a breakpoint is being created
 	 * @return resource the resource on which a breakpoint marker
 	 *  should be created
@@ -93,10 +93,10 @@
 		}
 		return res;
 	}
-	
+
 	/**
 	 * Returns the type that the given Java breakpoint refers to
-	 * 
+	 *
 	 * @param breakpoint Java breakpoint
 	 * @return the type the breakpoint is associated with
 	 */
@@ -115,13 +115,13 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Returns the member associated with the line number of
 	 * the given breakpoint.
-	 * 
+	 *
 	 * @param breakpoint Java line breakpoint
-	 * @return member at the given line number in the type 
+	 * @return member at the given line number in the type
 	 *  associated with the breakpoint
 	 * @exception CoreException if an exception occurs accessing
 	 *  the breakpoint
@@ -133,17 +133,17 @@
 		if (breakpoint instanceof IJavaWatchpoint) {
 			return getField((IJavaWatchpoint)breakpoint);
 		}
-		
+
 		int start = breakpoint.getCharStart();
 		int end = breakpoint.getCharEnd();
-		
+
 		IType type = getType(breakpoint);
-	
+
 		if (start == -1 && end == -1) {
 			start= breakpoint.getMarker().getAttribute(MEMBER_START, -1);
 			end= breakpoint.getMarker().getAttribute(MEMBER_END, -1);
 		}
-		
+
 		IMember member = null;
 		if ((type != null && type.exists()) && (end >= start) && (start >= 0)) {
 			member= binSearch(type, start, end);
@@ -153,7 +153,7 @@
 		}
 		return member;
 	}
-	
+
 	/**
 	 * Searches the given source range of the container for a member that is
 	 * not the same as the given type.
@@ -183,12 +183,12 @@
 			}
 		}
 		return null;
-	}	
-	
+	}
+
 	/**
 	 * Returns the given Java element if it is an
 	 * <code>IMember</code>, otherwise <code>null</code>.
-	 * 
+	 *
 	 * @param element Java element
 	 * @return the given element if it is a type member,
 	 * 	otherwise <code>null</code>
@@ -197,9 +197,9 @@
 		if (element instanceof IMember) {
 			return (IMember)element;
 		}
-		return null;		
+		return null;
 	}
-	
+
 	/**
 	 * Returns the element at the given position in the given type
 	 * @param type the {@link IType}
@@ -213,22 +213,22 @@
 		}
 		return type.getCompilationUnit().getElementAt(pos);
 	}
-	
+
 	/**
 	 * Adds attributes to the given attribute map:<ul>
 	 * <li>Java element handle id</li>
 	 * <li>Attributes defined by <code>JavaCore</code></li>
 	 * </ul>
-	 * 
+	 *
 	 * @param attributes the attribute map to use
 	 * @param element the Java element associated with the breakpoint
 	 */
 	public static void addJavaBreakpointAttributes(Map<String, Object> attributes, IJavaElement element) {
 		String handleId = element.getHandleIdentifier();
 		attributes.put(HANDLE_ID, handleId);
-		JavaCore.addJavaElementMarkerAttributes(attributes, element);		
+		JavaCore.addJavaElementMarkerAttributes(attributes, element);
 	}
-	
+
 	/**
 	 * Adds attributes to the given attribute map:<ul>
 	 * <li>Java element handle id</li>
@@ -236,7 +236,7 @@
 	 * <li>Member end position</li>
 	 * <li>Attributes defined by <code>JavaCore</code></li>
 	 * </ul>
-	 * 
+	 *
 	 * @param attributes the attribute map to use
 	 * @param element the Java element associated with the breakpoint
 	 * @param memberStart the start position of the Java member that the breakpoint is positioned within
@@ -247,29 +247,29 @@
 		attributes.put(MEMBER_START, new Integer(memberStart));
 		attributes.put(MEMBER_END, new Integer(memberEnd));
 	}
-	
+
 	/**
 	 * Adds attributes to the given attribute map to make the
 	 * breakpoint a run-to-line breakpoint:<ul>
 	 * <li>PERSISTED = false</li>
 	 * <li>RUN_TO_LINE = true</li>
 	 * </ul>
-	 * 
+	 *
 	 * @param attributes the attribute map to use
 	 */
 	public static void addRunToLineAttributes(Map<String, Object> attributes) {
 		attributes.put(IBreakpoint.PERSISTED, Boolean.FALSE);
 		attributes.put(RUN_TO_LINE, Boolean.TRUE);
-	}	
-	
+	}
+
 	/**
 	 * Returns the method associated with the method entry
 	 * breakpoint.
-	 * 
+	 *
 	 * @param breakpoint Java method entry breakpoint
 	 * @return method
 	 */
-	public static IMethod getMethod(IJavaMethodBreakpoint breakpoint) {	
+	public static IMethod getMethod(IJavaMethodBreakpoint breakpoint) {
 		String handle = breakpoint.getMarker().getAttribute(HANDLE_ID, null);
 		if (handle != null) {
 			IJavaElement je = JavaCore.create(handle);
@@ -281,14 +281,14 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Returns the field associated with the watchpoint.
-	 * 
+	 *
 	 * @param breakpoint Java watchpoint
 	 * @return field
 	 */
-	public static IField getField(IJavaWatchpoint breakpoint) {	
+	public static IField getField(IJavaWatchpoint breakpoint) {
 		String handle = breakpoint.getMarker().getAttribute(HANDLE_ID, null);
 		if (handle != null) {
 			IJavaElement je = JavaCore.create(handle);
@@ -299,12 +299,12 @@
 			}
 		}
 		return null;
-	}	
-	
+	}
+
 	/**
 	 * Returns whether the given breakpoint is a run to line
 	 * breakpoint
-	 * 
+	 *
 	 * @param breakpoint line breakpoint
 	 * @return whether the given breakpoint is a run to line
 	 *  breakpoint
@@ -312,11 +312,11 @@
 	public static boolean isRunToLineBreakpoint(IJavaLineBreakpoint breakpoint) {
 		return breakpoint.getMarker().getAttribute(RUN_TO_LINE, false);
 	}
-	
+
 	/**
 	 * Returns whether the given breakpoint is a compilation
 	 * problem breakpoint or uncaught exception breakpoint
-	 * 
+	 *
 	 * @param breakpoint breakpoint
 	 * @return whether the given breakpoint is a compilation error breakpoint or
 	 *  uncaught exception breakpoint
@@ -325,11 +325,11 @@
 		return breakpoint == JavaDebugOptionsManager.getDefault().getSuspendOnCompilationErrorBreakpoint() ||
 			breakpoint == JavaDebugOptionsManager.getDefault().getSuspendOnUncaughtExceptionBreakpoint();
 	}
-	
+
 	/**
      * Resolves the {@link IBreakpoint} from the given editor and ruler information. Returns <code>null</code>
      * if no breakpoint exists or the operation fails.
-     * 
+     *
      * @param editor the editor
      * @param info the current ruler information
      * @return the {@link IBreakpoint} from the current editor position or <code>null</code>
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/ConditionalBreakpointErrorDialog.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/ConditionalBreakpointErrorDialog.java
index 8d3383c..2a06e8c 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/ConditionalBreakpointErrorDialog.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/ConditionalBreakpointErrorDialog.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,9 +18,9 @@
 import org.eclipse.swt.widgets.Shell;
 
 public class ConditionalBreakpointErrorDialog extends ErrorDialog {
-	
+
 	public ConditionalBreakpointErrorDialog(Shell parentShell, String message, IStatus status) {
-		super(parentShell, DebugUIMessages.ConditionalBreakpointErrorDialog_Conditional_Breakpoint_Error_1, message, status, IStatus.ERROR); 
+		super(parentShell, DebugUIMessages.ConditionalBreakpointErrorDialog_Conditional_Breakpoint_Error_1, message, status, IStatus.ERROR);
 	}
 
 	/**
@@ -29,7 +29,7 @@
 	@Override
 	protected void createButtonsForButtonBar(Composite parent) {
 		// create Edit and Cancel buttons
-		createButton(parent, IDialogConstants.OK_ID, DebugUIMessages.ConditionalBreakpointErrorDialog__Edit_Condition_2, true); 
+		createButton(parent, IDialogConstants.OK_ID, DebugUIMessages.ConditionalBreakpointErrorDialog__Edit_Condition_2, true);
 		createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
 	}
 
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/CreateStepFilterDialog.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/CreateStepFilterDialog.java
index c616ea8..cc022ea 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/CreateStepFilterDialog.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/CreateStepFilterDialog.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -31,7 +31,7 @@
 public class CreateStepFilterDialog extends StatusDialog {
 
 	private static final String DEFAULT_NEW_FILTER_TEXT = ""; //$NON-NLS-1$
-	
+
 	private Text text;
 	private Filter filter;
 	private Button okButton;
@@ -45,27 +45,27 @@
 		setShellStyle(getShellStyle() | SWT.RESIZE);
 		this.filter = filter;
 		this.existingFilters = existingFilters;
-		
-		setTitle(DebugUIMessages.CreateStepFilterDialog_2); 
+
+		setTitle(DebugUIMessages.CreateStepFilterDialog_2);
 		setStatusLineAboveButtons(false);
-		
+
 	}
-	
+
 	static Filter showCreateStepFilterDialog(Shell parent, Filter[] existingFilters) {
 		CreateStepFilterDialog createStepFilterDialog = new CreateStepFilterDialog(parent, new Filter(DEFAULT_NEW_FILTER_TEXT, true), existingFilters);
 		createStepFilterDialog.create();
 		createStepFilterDialog.open();
-		
-		return createStepFilterDialog.filter;		
+
+		return createStepFilterDialog.filter;
 	}
-	
+
 	@Override
 	protected void createButtonsForButtonBar(Composite parent) {
 		okButton= createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
-		okButton.setEnabled(false);		
+		okButton.setEnabled(false);
 		createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
 	}
-	
+
 	@Override
 	protected Control createDialogArea(Composite parent) {
 		Composite container = (Composite)super.createDialogArea(parent);
@@ -78,9 +78,9 @@
 
 		int textStyles = SWT.SINGLE | SWT.LEFT;
 		Label label= new Label(container, textStyles);
-		label.setText(DebugUIMessages.CreateStepFilterDialog_3); 
+		label.setText(DebugUIMessages.CreateStepFilterDialog_3);
 		label.setFont(container.getFont());
-		
+
 		// create & configure Text widget for editor
 		// Fix for bug 1766.  Border behavior on for text fields varies per platform.
 		// On Motif, you always get a border, on other platforms,
@@ -90,14 +90,14 @@
 		if (!SWT.getPlatform().equals("motif")) {  //$NON-NLS-1$
 			textStyles |= SWT.BORDER;
 		}
-		
+
 		text = new Text(container, textStyles);
-		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);		
+		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
 		gridData.horizontalSpan=1;
 		gridData.widthHint = 300;
 		text.setLayoutData(gridData);
 		text.setFont(container.getFont());
-		
+
 		text.addModifyListener(new ModifyListener() {
 			@Override
 			public void modifyText(ModifyEvent e) {
@@ -105,17 +105,17 @@
 				if (!filterValid) {
 					updateStatus(new StatusInfo(IStatus.ERROR, DebugUIMessages.CreateStepFilterDialog_4));
 				} else if (isDuplicateFilter(text.getText().trim())) {
-					updateStatus(new StatusInfo(IStatus.WARNING, DebugUIMessages.CreateStepFilterDialog_5)); 
+					updateStatus(new StatusInfo(IStatus.WARNING, DebugUIMessages.CreateStepFilterDialog_5));
 					return;
 				} else {
 					updateStatus(new StatusInfo());
-				}		
+				}
 			}
 		});
-	
+
 		return container;
 	}
-	
+
 	private void validateChange() {
 		String trimmedValue = text.getText().trim();
 
@@ -129,7 +129,7 @@
 			filterValid = false;
 		}
 	}
-	
+
 	private boolean isDuplicateFilter(String trimmedValue) {
 		for (int i=0; i<existingFilters.length; i++) {
 			if(existingFilters[i].getName().equals(trimmedValue)) {
@@ -144,7 +144,7 @@
 	 * step filtering must be limited to exact matches or patterns that
 	 * begin with '*' or end with '*'. Beyond this, a string cannot be validated
 	 * as corresponding to an existing type or package (and this is probably not
-	 * even desirable).  
+	 * even desirable).
 	 */
 	private boolean validateInput(String trimmedValue) {
 		char firstChar= trimmedValue.charAt(0);
@@ -168,16 +168,16 @@
 		}
 		return true;
 	}
-	
+
 	/**
 	 * Returns the name of the section that this dialog stores its settings in
-	 * 
+	 *
 	 * @return String
 	 */
 	protected String getDialogSettingsSectionName() {
 		return IJavaDebugUIConstants.PLUGIN_ID + ".CREATE_STEP_FILTER_DIALOG_SECTION"; //$NON-NLS-1$
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.window.Window#close()
 	 */
@@ -189,7 +189,7 @@
 		}
 		return super.close();
 	}
-	
+
 	 /* (non-Javadoc)
      * @see org.eclipse.jface.dialogs.Dialog#getDialogBoundsSettings()
      */
@@ -199,7 +199,7 @@
          IDialogSettings section = settings.getSection(getDialogSettingsSectionName());
          if (section == null) {
              section = settings.addNewSection(getDialogSettingsSectionName());
-         } 
+         }
          return section;
     }
 
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/DebugUIMessages.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/DebugUIMessages.java
index 0e90a66..d468df6 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/DebugUIMessages.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/DebugUIMessages.java
@@ -159,9 +159,9 @@
 	public static String JDIModelPresentation_target_suspended;
 	public static String JDIModelPresentation_thread_filtered;
 	public static String JDIModelPresentation_uncaught_62;
-	
+
 	// thread label keys are built programmatically
-	
+
 	public static String thread_terminated;
 	public static String thread_evaluating;
 	public static String thread_running;
@@ -176,7 +176,7 @@
 	public static String thread_suspended_fieldmodification;
 	public static String thread_suspended_runtoline;
 	public static String thread_suspended_classprepare;
-	
+
 	public static String thread_daemon_terminated;
 	public static String thread_daemon_evaluating;
 	public static String thread_daemon_running;
@@ -191,7 +191,7 @@
 	public static String thread_daemon_suspended_fieldmodification;
 	public static String thread_daemon_suspended_runtoline;
 	public static String thread_daemon_suspended_classprepare;
-	
+
 	public static String thread_system_terminated;
 	public static String thread_system_evaluating;
 	public static String thread_system_running;
@@ -206,7 +206,7 @@
 	public static String thread_system_suspended_fieldmodification;
 	public static String thread_system_suspended_runtoline;
 	public static String thread_system_suspended_classprepare;
-	
+
 	public static String thread_daemon_system_terminated;
 	public static String thread_daemon_system_evaluating;
 	public static String thread_daemon_system_running;
@@ -374,7 +374,7 @@
 	public static String JavaPrimitivesPreferencePage_0;
 
 	public static String JavaPrimitivesPreferencePage_1;
-	
+
 	public static String JavaStepFilterPreferencePage__Use_step_filters;
 
 	public static String JavaVariableLabelProvider_0;
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/DebugWorkingCopyManager.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/DebugWorkingCopyManager.java
index 824c9d7..78c86a4 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/DebugWorkingCopyManager.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/DebugWorkingCopyManager.java
@@ -18,15 +18,15 @@
 /**
  * Controls access to the java working copy.  Isolated in this class as implementation requires
  * use of internal JDT UI code.  See bug 151260 for more information.
- *  
+ *
  * @since 3.3
  * @see org.eclipse.jdt.internal.ui.javaeditor.WorkingCopyManager
  */
 public class DebugWorkingCopyManager {
-	
+
 	/**
 	 * Returns the working copy remembered for the compilation unit encoded in the
-	 * given editor input.	 
+	 * given editor input.
 	 *
 	 * @param input the editor input
 	 * @param primaryOnly if <code>true</code> only primary working copies will be returned
@@ -38,5 +38,5 @@
     	//TODO Using JDT UI internal code here, see bug 151260 for more information
 		return ((WorkingCopyManager)JavaUI.getWorkingCopyManager()).getWorkingCopy(input, primaryOnly);
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/DetailFormatter.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/DetailFormatter.java
index 3e18332..f72e78d 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/DetailFormatter.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/DetailFormatter.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -15,19 +15,19 @@
  * Information about a detail formatter.
  */
 public class DetailFormatter implements Comparable<Object> {
-	
+
 	private boolean fEnabled;
-	
+
 	private String fTypeName;
-	
+
 	private String fSnippet;
-	
+
 	public DetailFormatter(String typeName, String snippet, boolean enabled) {
 		fTypeName= typeName;
 		fSnippet= snippet;
 		fEnabled= enabled;
 	}
-	
+
 	/**
 	 * Indicate if this pretty should be used or not.
 	 * @return boolean
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/DetailFormatterDialog.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/DetailFormatterDialog.java
index 28aa315..407bf79 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/DetailFormatterDialog.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/DetailFormatterDialog.java
@@ -74,7 +74,7 @@
  * Dialog for edit detail formatter.
  */
 public class DetailFormatterDialog extends StatusDialog implements ITypeProvider {
-	
+
 	/**
 	 * The detail formatter to edit.
 	 */
@@ -90,7 +90,7 @@
 	 * have been already performed.
 	 */
 	private boolean fTypeSearched;
-	
+
 	/**
 	 * Indicate if the type can be modified.
 	 */
@@ -103,7 +103,7 @@
 	 * the workspace.
 	 */
 	private IType fType;
-	
+
 	/**
 	 * List of types that have detail formatters already defined.
 	 */
@@ -113,10 +113,10 @@
      * Activation handler for content assist, must be deactivated on disposal.
      */
     private IHandlerActivation fHandlerActivation;
-    
+
 	/**
 	 * DetailFormatterDialog constructor.  Creates a new dialog to create/edit a detail formatter.
-	 * 
+	 *
 	 * @param parent parent shell
 	 * @param detailFormatter detail formatter to edit, not <code>null</code>
 	 * @param definedTypes list of types with detail formatters already defined, or <code>null</code>
@@ -125,10 +125,10 @@
 	public DetailFormatterDialog(Shell parent, DetailFormatter detailFormatter, List<?> definedTypes, boolean editDialog) {
 		this(parent, detailFormatter, definedTypes, true, editDialog);
 	}
-	
+
 	/**
 	 * DetailFormatterDialog constructor.  Creates a new dialog to create/edit a detail formatter.
-	 * 
+	 *
 	 * @param parent parent shell
 	 * @param detailFormatter detail formatter to edit, not <code>null</code>
 	 * @param definedTypes list of types with detail formatters already defined, or <code>null</code>
@@ -148,27 +148,27 @@
 		fEditTypeName= editTypeName;
 		fDefinedTypes= definedTypes;
 	}
-	
+
 	/**
 	 * Create the dialog area.
-	 * 
+	 *
 	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(Composite)
 	 */
 	@Override
 	protected Control createDialogArea(Composite parent) {
 		IWorkbench workbench = PlatformUI.getWorkbench();
-		
+
 		workbench.getHelpSystem().setHelp(
 			parent,
 			IJavaDebugHelpContextIds.EDIT_DETAIL_FORMATTER_DIALOG);
-		
+
 		Font font = parent.getFont();
 		Composite container = (Composite)super.createDialogArea(parent);
-		
+
 		SWTFactory.createLabel(container, DebugUIMessages.DetailFormatterDialog_Qualified_type__name__2, 1);
 
 		Composite innerContainer = SWTFactory.createComposite(container, font, 2, 1, GridData.FILL_HORIZONTAL);
-		
+
 		fTypeNameText = SWTFactory.createSingleText(innerContainer, 1);
 		fTypeNameText.setEditable(fEditTypeName);
 		fTypeNameText.setText(fDetailFormatter.getTypeName());
@@ -179,7 +179,7 @@
 				checkValues();
 			}
 		});
-		
+
 		Button typeSearchButton = SWTFactory.createPushButton(innerContainer, DebugUIMessages.DetailFormatterDialog_Select__type_4, null);
 		typeSearchButton.setEnabled(fEditTypeName);
 		typeSearchButton.addListener(SWT.Selection, new Listener() {
@@ -188,7 +188,7 @@
 				selectType();
 			}
 		});
-		
+
 		String labelText = null;
 		IBindingService bindingService = workbench.getAdapter(IBindingService.class);
 		String binding = bindingService.getBestActiveBindingFormattedFor(IWorkbenchCommandConstants.EDIT_CONTENT_ASSIST);
@@ -198,13 +198,13 @@
         if (labelText == null) {
             labelText = DebugUIMessages.DetailFormatterDialog_Detail_formatter__code_snippet__1;
         }
-		
+
         SWTFactory.createLabel(container, labelText, 1);
 
         createSnippetViewer(container);
-		
+
 		fCheckBox = SWTFactory.createCheckButton(container, DebugUIMessages.DetailFormatterDialog__Enable_1, null, fDetailFormatter.isEnabled(), 1);
-       
+
 		// Set up content assist in the viewer
         IHandler handler = new AbstractHandler() {
 			@Override
@@ -218,20 +218,20 @@
 		};
         IHandlerService handlerService = workbench.getAdapter(IHandlerService.class);
         fHandlerActivation = handlerService.activateHandler(ITextEditorActionDefinitionIds.CONTENT_ASSIST_PROPOSALS, handler);
-        
+
 		checkValues();
 		return container;
 	}
 
 	/**
 	 * Creates the JDISourceViewer that displays the code snippet to the user.
-	 * 
+	 *
 	 * @param parent parent composite
 	 */
 	private void createSnippetViewer(Composite parent) {
 		fSnippetViewer= new JDISourceViewer(parent,  null, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.LEFT_TO_RIGHT);
 		fSnippetViewer.setInput(this);
-	
+
 		JavaTextTools tools= JDIDebugUIPlugin.getDefault().getJavaTextTools();
 		IDocument document= new Document();
 		tools.setupJavaDocumentPartitioner(document, IJavaPartitions.JAVA_PARTITIONING);
@@ -243,14 +243,14 @@
 		});
 		fSnippetViewer.setEditable(true);
 		fSnippetViewer.setDocument(document);
-		
+
 		Control control= fSnippetViewer.getControl();
 		GridData gd= new GridData(GridData.FILL_BOTH);
 		gd.heightHint= convertHeightInCharsToPixels(10);
 		gd.widthHint= convertWidthInCharsToPixels(80);
 		control.setLayoutData(gd);
 		document.set(fDetailFormatter.getSnippet());
-		
+
 		fSnippetViewer.getDocument().addDocumentListener(new IDocumentListener() {
 			@Override
 			public void documentAboutToBeChanged(DocumentEvent event) {
@@ -260,12 +260,12 @@
 				checkValues();
 			}
 		});
-        
+
         if (fDetailFormatter.getTypeName().length() > 0) {
             fSnippetViewer.getControl().setFocus();
         }
 	}
-	
+
 	/**
 	 * Check the field values and display a message in the status if needed.
 	 */
@@ -292,10 +292,10 @@
 		fDetailFormatter.setEnabled(fCheckBox.getSelection());
 		fDetailFormatter.setTypeName(fTypeNameText.getText().trim());
 		fDetailFormatter.setSnippet(fSnippetViewer.getDocument().get());
-		
+
 		super.okPressed();
 	}
-	
+
 	/**
 	 * Open the 'select type' dialog, and set the user choice into the formatter.
 	 */
@@ -311,13 +311,13 @@
 			ExceptionHandler.handle(jme, title, message);
 			return;
 		}
-	
+
 		dialog.setTitle(DebugUIMessages.DetailFormatterDialog_Select_type_8);
 		dialog.setMessage(DebugUIMessages.DetailFormatterDialog_Select_a_type_to_format_when_displaying_its_detail_9);
 		if (dialog.open() == IDialogConstants.CANCEL_ID) {
 			return;
 		}
-		
+
 		Object[] types= dialog.getResult();
 		if (types != null && types.length > 0) {
 			fType = (IType)types[0];
@@ -325,7 +325,7 @@
 			fTypeSearched = true;
 		}
 	}
-	
+
 	/**
 	 * Use the Java search engine to find the type which corresponds
 	 * to the given name.
@@ -343,7 +343,7 @@
 		final IProgressMonitor monitor = new NullProgressMonitor();
 		final SearchRequestor collector = new SearchRequestor() {
 			private boolean fFirst= true;
-			
+
 			@Override
 			public void endReporting() {
 				checkValues();
@@ -363,7 +363,7 @@
 				monitor.setCanceled(true);
 			}
 		};
-		
+
 		SearchEngine engine= new SearchEngine(JavaCore.getWorkingCopies(null));
 		SearchPattern searchPattern = SearchPattern.createPattern(pattern, IJavaSearchConstants.TYPE, IJavaSearchConstants.DECLARATIONS, SearchPattern.R_EXACT_MATCH | SearchPattern.R_CASE_SENSITIVE);
 		IJavaSearchScope scope= SearchEngine.createWorkspaceScope();
@@ -375,7 +375,7 @@
 		} catch (OperationCanceledException e) {
 		}
 	}
-	
+
 	/**
 	 * Return the type object which corresponds to the given name.
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/EditLogicalStructureDialog.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/EditLogicalStructureDialog.java
index 0b4d2be..6f8c4bf 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/EditLogicalStructureDialog.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/EditLogicalStructureDialog.java
@@ -88,7 +88,7 @@
 		private final List<String[]> fVariables;
 
 		public AttributesContentProvider(String[][] variables) {
-			fVariables= new ArrayList<String[]>();
+			fVariables= new ArrayList<>();
 			for (int i= 0; i < variables.length; i++) {
 				String[] variable= new String[2];
 				variable[0]= variables[i][0];
@@ -118,7 +118,7 @@
 		public Object[] getElements(Object inputElement) {
 			return getElements();
 		}
-		
+
 		/**
 		 * Returns the attributes.
 		 * @return the elements
@@ -137,7 +137,7 @@
 
 		/**
 		 * Remove the given attributes
-		 * @param list the list 
+		 * @param list the list
 		 */
 		public void remove(List<String[]> list) {
 			fVariables.removeAll(list);
@@ -170,14 +170,14 @@
 		}
 
 	}
-	
+
 	public class AttributesLabelProvider extends LabelProvider {
 		@Override
 		public String getText(Object element) {
 			return ((String[])element)[0];
 		}
 	}
-	
+
 	private final JavaLogicalStructure fLogicalStructure;
 	private Text fQualifiedTypeNameText;
 	private Text fDescriptionText;
@@ -210,11 +210,11 @@
 		if (logicalStructure.getQualifiedTypeName().length() == 0) {
 			setTitle(DebugUIMessages.EditLogicalStructureDialog_32);
 		} else {
-			setTitle(DebugUIMessages.EditLogicalStructureDialog_31); 
+			setTitle(DebugUIMessages.EditLogicalStructureDialog_31);
 		}
 		fLogicalStructure= logicalStructure;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
 	 */
@@ -225,64 +225,64 @@
 				parent,
 				IJavaDebugHelpContextIds.EDIT_LOGICAL_STRUCTURE_DIALOG);
 		fParentComposite= parent;
-		
+
 		IHandler handler = new AbstractHandler() {
 			@Override
 			public Object execute(ExecutionEvent event) throws ExecutionException {
 				if(fSnippetViewer.canDoOperation(ISourceViewer.CONTENTASSIST_PROPOSALS) && fSnippetViewer.getControl().isFocusControl()){
 					findCorrespondingType();
-					fSnippetViewer.doOperation(ISourceViewer.CONTENTASSIST_PROPOSALS);				
+					fSnippetViewer.doOperation(ISourceViewer.CONTENTASSIST_PROPOSALS);
 				}
 				return null;
 			}
 		};
-		
+
 		IHandlerService handlerService = workbench.getAdapter(IHandlerService.class);
         fHandlerActivation = handlerService.activateHandler(ITextEditorActionDefinitionIds.CONTENT_ASSIST_PROPOSALS, handler);
-        
+
 		Composite container = SWTFactory.createComposite(parent, parent.getFont(), 1, 1, GridData.FILL_BOTH);
 
 		Composite typeNameDescriptionContainer = SWTFactory.createComposite(container, container.getFont(), 2, 1, GridData.FILL_HORIZONTAL);
-		
+
 		SWTFactory.createLabel(typeNameDescriptionContainer, DebugUIMessages.EditLogicalStructureDialog_0, 2);
-		
+
 		fQualifiedTypeNameText = SWTFactory.createSingleText(typeNameDescriptionContainer, 1);
 		fQualifiedTypeNameText.addListener(SWT.Modify, this);
-		
+
 		fBrowseTypeButton = SWTFactory.createPushButton(typeNameDescriptionContainer, DebugUIMessages.EditLogicalStructureDialog_1, DebugUIMessages.EditLogicalStructureDialog_25, null);
-		
+
 		fBrowseTypeButton.addListener(SWT.Selection, this);
-		
+
 		SWTFactory.createLabel(typeNameDescriptionContainer, DebugUIMessages.EditLogicalStructureDialog_2, 2);
-		
+
 		fDescriptionText = SWTFactory.createSingleText(typeNameDescriptionContainer, 2);
 		fDescriptionText.addListener(SWT.Modify, this);
-		
+
 		fSubTypeButton = SWTFactory.createCheckButton(typeNameDescriptionContainer, DebugUIMessages.EditLogicalStructureDialog_3, null, false, 1);
-		fSubTypeButton.setToolTipText(DebugUIMessages.EditLogicalStructureDialog_26); 
+		fSubTypeButton.setToolTipText(DebugUIMessages.EditLogicalStructureDialog_26);
 
 		Group radioContainer= SWTFactory.createGroup(container, DebugUIMessages.EditLogicalStructureDialog_33, 1, 1, GridData.FILL_HORIZONTAL);
 
 		fValueButton = SWTFactory.createRadioButton(radioContainer, DebugUIMessages.EditLogicalStructureDialog_4);
 		fValueButton.addListener(SWT.Selection, this);
-		
+
 		fVariablesButton = SWTFactory.createRadioButton(radioContainer, DebugUIMessages.EditLogicalStructureDialog_5);
 
 		fAttributesContainer = SWTFactory.createComposite(container, container.getFont(), 2, 1, GridData.FILL_HORIZONTAL);
-		
+
 		boolean isValue = fLogicalStructure.getValue() != null;
 		if (!isValue) {
 			// creates the attribute list if needed
 			createAttributeListWidgets();
 		}
-		
+
 		fCodeGroup = SWTFactory.createGroup(container, "", 1, 1, GridData.FILL_BOTH); //$NON-NLS-1$
 		createCodeGroupWidgets(isValue);
 
 		applyDialogFont(container);
-		
+
 		initializeData();
-		
+
 		return container;
 	}
 
@@ -292,25 +292,25 @@
 	 */
 	private void createCodeGroupWidgets(boolean isValue) {
 		if (isValue) {
-			fCodeGroup.setText(DebugUIMessages.EditLogicalStructureDialog_9); 
+			fCodeGroup.setText(DebugUIMessages.EditLogicalStructureDialog_9);
 		} else {
-			fCodeGroup.setText(DebugUIMessages.EditLogicalStructureDialog_7); 
-		
+			fCodeGroup.setText(DebugUIMessages.EditLogicalStructureDialog_7);
+
 			Composite attributeNameContainer = SWTFactory.createComposite(fCodeGroup, fCodeGroup.getFont(), 2,  1, GridData.FILL_HORIZONTAL);
 			((GridLayout)attributeNameContainer.getLayout()).marginWidth = 0;
-			
+
 			SWTFactory.createLabel(attributeNameContainer, DebugUIMessages.EditLogicalStructureDialog_8, 1);
-			
+
 			fAttributeNameText = SWTFactory.createSingleText(attributeNameContainer, 1);
 			fAttributeNameText.addListener(SWT.Modify, this);
-            
+
 			SWTFactory.createLabel(fCodeGroup, DebugUIMessages.EditLogicalStructureDialog_9, 1);
 		}
-		
+
 		// snippet viewer
 		fSnippetViewer= new JDISourceViewer(fCodeGroup,  null, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.LEFT_TO_RIGHT);
 		fSnippetViewer.setInput(this);
-	
+
 		JavaTextTools tools= JDIDebugUIPlugin.getDefault().getJavaTextTools();
 		if (fSnippetDocument == null) {
 			fSnippetDocument= new Document();
@@ -328,7 +328,7 @@
 		fSnippetViewer.configure(fViewerConfiguration);
 		fSnippetViewer.setEditable(true);
 		fSnippetViewer.setDocument(fSnippetDocument);
-		
+
 		Control control= fSnippetViewer.getControl();
 		GridData gd= new GridData(SWT.FILL, SWT.FILL, true, true);
 		gd.heightHint= convertHeightInCharsToPixels(isValue ? 20 : 10);
@@ -354,18 +354,18 @@
 		fAttributeListViewer.setLabelProvider(new AttributesLabelProvider());
 		fAttributeListViewer.setInput(this);
 		fAttributeListViewer.addSelectionChangedListener(this);
-		
+
 		Composite attributeListButtonsCotnainer = SWTFactory.createComposite(fAttributesContainer, fAttributesContainer.getFont(), 1, 1, SWT.NONE);
-		
+
 		fAttributeAddButton = SWTFactory.createPushButton(attributeListButtonsCotnainer, DebugUIMessages.EditLogicalStructureDialog_10, DebugUIMessages.EditLogicalStructureDialog_27, null);
 		fAttributeAddButton.addListener(SWT.Selection, this);
-		
+
 		fAttributeRemoveButton = SWTFactory.createPushButton(attributeListButtonsCotnainer, DebugUIMessages.EditLogicalStructureDialog_11, DebugUIMessages.EditLogicalStructureDialog_28, null);
 		fAttributeRemoveButton.addListener(SWT.Selection, this);
-		
+
 		fAttributeUpButton = SWTFactory.createPushButton(attributeListButtonsCotnainer, DebugUIMessages.EditLogicalStructureDialog_12, DebugUIMessages.EditLogicalStructureDialog_29, null);
 		fAttributeUpButton.addListener(SWT.Selection, this);
-		
+
 		fAttributeDownButton = SWTFactory.createPushButton(attributeListButtonsCotnainer, DebugUIMessages.EditLogicalStructureDialog_13, DebugUIMessages.EditLogicalStructureDialog_30, null);
 		fAttributeDownButton.addListener(SWT.Selection, this);
 	}
@@ -425,7 +425,7 @@
 
 	// code for add attribute button
 	private void addAttribute() {
-		String[] newAttribute= new String[] {DebugUIMessages.EditLogicalStructureDialog_14, DebugUIMessages.EditLogicalStructureDialog_15}; // 
+		String[] newAttribute= new String[] {DebugUIMessages.EditLogicalStructureDialog_14, DebugUIMessages.EditLogicalStructureDialog_15}; //
 		fAttributesContentProvider.add(newAttribute);
 		fAttributeListViewer.refresh();
 		fAttributeListViewer.setSelection(new StructuredSelection((Object)newAttribute));
@@ -504,7 +504,7 @@
 				children[i].dispose();
 			}
 		}
-		
+
 		// dispose and recreate the code snippet editor group
 		Control[] children= fCodeGroup.getChildren();
 		for (int i = 0; i < children.length; i++) {
@@ -532,7 +532,7 @@
 			} else {
 				fAttributeListViewer.setSelection(fCurrentAttributeSelection);
 			}
-			
+
 		}
 	}
 
@@ -577,30 +577,30 @@
 	public void checkValues() {
 		StatusInfo status= new StatusInfo();
 		if (fQualifiedTypeNameText.getText().trim().length() == 0) {
-			status.setError(DebugUIMessages.EditLogicalStructureDialog_16); 
+			status.setError(DebugUIMessages.EditLogicalStructureDialog_16);
 		} else if (fDescriptionText.getText().trim().length() == 0) {
-			status.setError(DebugUIMessages.EditLogicalStructureDialog_17); 
+			status.setError(DebugUIMessages.EditLogicalStructureDialog_17);
 		} else if (fValueButton.getSelection() && fSnippetDocument.get().length() == 0) {
-			status.setError(DebugUIMessages.EditLogicalStructureDialog_18); 
+			status.setError(DebugUIMessages.EditLogicalStructureDialog_18);
 		} else if (fVariablesButton.getSelection()) {
 			Object[] elements= fAttributesContentProvider.getElements(null);
 			boolean oneElementSelected= fCurrentAttributeSelection.size() == 1;
 			if (elements.length == 0) {
-				status.setError(DebugUIMessages.EditLogicalStructureDialog_19); 
+				status.setError(DebugUIMessages.EditLogicalStructureDialog_19);
 			} else if (oneElementSelected && fAttributeNameText.getText().trim().length() == 0) {
-				status.setError(DebugUIMessages.EditLogicalStructureDialog_20); 
+				status.setError(DebugUIMessages.EditLogicalStructureDialog_20);
 			} else if (oneElementSelected && fSnippetDocument.get().trim().length() == 0) {
-				status.setError(DebugUIMessages.EditLogicalStructureDialog_21); 
+				status.setError(DebugUIMessages.EditLogicalStructureDialog_21);
 			} else {
 				for (int i= 0; i < elements.length; i++) {
 					String[] variable= (String[]) elements[i];
 					if (variable[0].trim().length() == 0) {
-						status.setError(DebugUIMessages.EditLogicalStructureDialog_22); 
+						status.setError(DebugUIMessages.EditLogicalStructureDialog_22);
 						break;
 					}
 					if (variable[1].trim().length() == 0) {
 						if (!oneElementSelected || fCurrentAttributeSelection.getFirstElement() != variable) {
-							status.setError(NLS.bind(DebugUIMessages.EditLogicalStructureDialog_23, new String[] {variable[0]})); 
+							status.setError(NLS.bind(DebugUIMessages.EditLogicalStructureDialog_23, new String[] {variable[0]}));
 							break;
 						}
 					}
@@ -609,7 +609,7 @@
 		}
 		if (!status.isError()) {
 			if (fType == null && fTypeSearched) {
-				status.setWarning(DebugUIMessages.EditLogicalStructureDialog_24); 
+				status.setWarning(DebugUIMessages.EditLogicalStructureDialog_24);
 			}
 		}
 		updateStatus(status);
@@ -626,26 +626,26 @@
 				SearchEngine.createWorkspaceScope(), IJavaElementSearchConstants.CONSIDER_ALL_TYPES,
                 false, fQualifiedTypeNameText.getText());
 		} catch (JavaModelException jme) {
-			String title= DebugUIMessages.DetailFormatterDialog_Select_type_6; 
-			String message= DebugUIMessages.DetailFormatterDialog_Could_not_open_type_selection_dialog_for_detail_formatters_7; 
+			String title= DebugUIMessages.DetailFormatterDialog_Select_type_6;
+			String message= DebugUIMessages.DetailFormatterDialog_Could_not_open_type_selection_dialog_for_detail_formatters_7;
 			ExceptionHandler.handle(jme, title, message);
 			return;
 		}
-	
-		dialog.setTitle(DebugUIMessages.DetailFormatterDialog_Select_type_8); 
-		dialog.setMessage(DebugUIMessages.DetailFormatterDialog_Select_a_type_to_format_when_displaying_its_detail_9); 
+
+		dialog.setTitle(DebugUIMessages.DetailFormatterDialog_Select_type_8);
+		dialog.setMessage(DebugUIMessages.DetailFormatterDialog_Select_a_type_to_format_when_displaying_its_detail_9);
 		if (dialog.open() == IDialogConstants.CANCEL_ID) {
 			return;
 		}
-		
+
 		Object[] types= dialog.getResult();
 		if (types != null && types.length > 0) {
 			fType = (IType)types[0];
 			fQualifiedTypeNameText.setText(fType.getFullyQualifiedName());
 			fTypeSearched = true;
-		}		
+		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.text.IDocumentListener#documentAboutToBeChanged(org.eclipse.jface.text.DocumentEvent)
 	 */
@@ -653,7 +653,7 @@
 	public void documentAboutToBeChanged(DocumentEvent event) {
 		// nothing to do
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.text.IDocumentListener#documentChanged(org.eclipse.jface.text.DocumentEvent)
 	 */
@@ -661,7 +661,7 @@
 	public void documentChanged(DocumentEvent event) {
 		checkValues();
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
 	 */
@@ -700,7 +700,7 @@
 		final IProgressMonitor monitor = new NullProgressMonitor();
 		final SearchRequestor collector = new SearchRequestor() {
 			private boolean fFirst= true;
-			
+
 			@Override
 			public void endReporting() {
 				checkValues();
@@ -720,7 +720,7 @@
 				monitor.setCanceled(true);
 			}
 		};
-		
+
 		SearchEngine engine= new SearchEngine(JavaCore.getWorkingCopies(null));
 		SearchPattern searchPattern = SearchPattern.createPattern(pattern, IJavaSearchConstants.TYPE, IJavaSearchConstants.DECLARATIONS, SearchPattern.R_EXACT_MATCH | SearchPattern.R_CASE_SENSITIVE);
 		IJavaSearchScope scope= SearchEngine.createWorkspaceScope();
@@ -732,7 +732,7 @@
 		} catch (OperationCanceledException e){
 		}
 	}
-	
+
 	/**
 	 * Return the type object which corresponds to the given name.
 	 * @return the {@link IType}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/ErrorDialogWithToggle.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/ErrorDialogWithToggle.java
index 19c6cd4..3cfcf8b 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/ErrorDialogWithToggle.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/ErrorDialogWithToggle.java
@@ -4,13 +4,13 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui;
 
- 
+
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.jface.dialogs.ErrorDialog;
 import org.eclipse.jface.dialogs.IDialogConstants;
@@ -25,7 +25,7 @@
 /**
  * An error dialog which allows the user to set
  * a boolean preference.
- * 
+ *
  * This is typically used to set a preference that
  * determines if the dialog should be shown in
  * the future
@@ -63,21 +63,21 @@
 		applyDialogFont(dialogComposite);
 		return dialogComposite;
 	}
-	
+
 	/**
-	 * Creates a button with the given label and sets the default 
+	 * Creates a button with the given label and sets the default
 	 * configuration data.
 	 */
 	private Button createCheckButton(Composite parent, String label) {
 		Button button= new Button(parent, SWT.CHECK | SWT.LEFT);
-		button.setText(label);		
+		button.setText(label);
 
 		GridData data = new GridData(SWT.NONE);
 		data.horizontalSpan= 2;
 		data.horizontalAlignment= GridData.CENTER;
 		button.setLayoutData(data);
 		button.setFont(parent.getFont());
-		
+
 		return button;
 	}
 
@@ -88,7 +88,7 @@
 		}
 		super.buttonPressed(id);
 	}
-	
+
 	private void storePreference() {
 		fStore.setValue(fPreferenceKey, !getToggleButton().getSelection());
 	}
@@ -100,7 +100,7 @@
 	protected void setToggleButton(Button button) {
 		fToggleButton = button;
 	}
-	
+
 	/**
 	 * @see org.eclipse.jface.dialogs.Dialog#createButtonsForButtonBar(org.eclipse.swt.widgets.Composite)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/EvaluationContextManager.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/EvaluationContextManager.java
index 4784cb9..aedb75c 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/EvaluationContextManager.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/EvaluationContextManager.java
@@ -36,12 +36,12 @@
 /**
  * Manages the current evaluation context (stack frame) for evaluation actions.
  * In each page, the selection is tracked in each debug view (if any). When a stack
- * frame selection exists, the "debuggerActive" System property is set to true. 
+ * frame selection exists, the "debuggerActive" System property is set to true.
  */
 public class EvaluationContextManager implements IWindowListener, IDebugContextListener {
 
 	private static EvaluationContextManager fgManager;
-	
+
 	/**
 	 * System property indicating a stack frame is selected in the debug view with an
 	 * <code>IJavaStackFrame</code> adapter.
@@ -55,20 +55,20 @@
 	/**
 	 * System property indicating the frame in the debug view supports 'force return'
 	 */
-	private static final String SUPPORTS_FORCE_RETURN = JDIDebugUIPlugin.getUniqueIdentifier() + ".supportsForceReturn"; //$NON-NLS-1$	
+	private static final String SUPPORTS_FORCE_RETURN = JDIDebugUIPlugin.getUniqueIdentifier() + ".supportsForceReturn"; //$NON-NLS-1$
 	/**
 	 * System property indicating whether the frame in the debug view supports instance and reference retrieval (1.5 VMs and later).
 	 */
 	private static final String SUPPORTS_INSTANCE_RETRIEVAL = JDIDebugUIPlugin.getUniqueIdentifier() + ".supportsInstanceRetrieval"; //$NON-NLS-1$
-	
+
 	private Map<IWorkbenchPage, IJavaStackFrame> fContextsByPage = null;
-	
+
 	private IWorkbenchWindow fActiveWindow;
-	
+
 	private EvaluationContextManager() {
 		DebugUITools.getDebugContextManager().addDebugContextListener(this);
 	}
-	
+
 	public static void startup() {
 		Runnable r = new Runnable() {
 			@Override
@@ -78,11 +78,11 @@
 					IWorkbench workbench = PlatformUI.getWorkbench();
 					IWorkbenchWindow[] windows = workbench.getWorkbenchWindows();
 					for (int i = 0; i < windows.length; i++) {
-						fgManager.windowOpened(windows[i]);	
+						fgManager.windowOpened(windows[i]);
 					}
 					workbench.addWindowListener(fgManager);
 					fgManager.fActiveWindow = workbench.getActiveWorkbenchWindow();
-				}				
+				}
 			}
 		};
 		JDIDebugUIPlugin.getStandardDisplay().asyncExec(r);
@@ -120,13 +120,13 @@
 	/**
 	 * Sets the evaluation context for the given page, and notes that
 	 * a valid execution context exists.
-	 * 
+	 *
 	 * @param page
 	 * @param frame
 	 */
 	private void setContext(IWorkbenchPage page, IJavaStackFrame frame, boolean instOf) {
 		if (fContextsByPage == null) {
-			fContextsByPage = new HashMap<IWorkbenchPage, IJavaStackFrame>();
+			fContextsByPage = new HashMap<>();
 		}
 		fContextsByPage.put(page, frame);
 		System.setProperty(DEBUGGER_ACTIVE, "true"); //$NON-NLS-1$
@@ -150,7 +150,7 @@
 	/**
 	 * Removes an evaluation context for the given page, and determines if
 	 * any valid execution context remain.
-	 * 
+	 *
 	 * @param page
 	 */
 	private void removeContext(IWorkbenchPage page) {
@@ -164,7 +164,7 @@
 			}
 		}
 	}
-	
+
 	private static IJavaStackFrame getContext(IWorkbenchPage page) {
 		if (fgManager != null) {
 			if (fgManager.fContextsByPage != null) {
@@ -173,7 +173,7 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Returns the evaluation context for the given part, or <code>null</code> if none.
 	 * The evaluation context corresponds to the selected stack frame in the following
@@ -183,7 +183,7 @@
 	 * <li>stack frame in active page of other window</li>
 	 * <li>stack frame in page of other windows</li>
 	 * </ol>
-	 * 
+	 *
 	 * @param part the part that the evaluation action was invoked from
 	 * @return the stack frame that supplies an evaluation context, or <code>null</code>
 	 *   if none
@@ -206,7 +206,7 @@
 	 * <li>stack frame in active page of another window</li>
 	 * <li>stack frame in a page of another window</li>
 	 * </ol>
-	 * 
+	 *
 	 * @param window the window that the evaluation action was invoked from, or
 	 *  <code>null</code> if the current window should be consulted
 	 * @return the stack frame that supplies an evaluation context, or <code>null</code>
@@ -214,13 +214,13 @@
 	 * @return IJavaStackFrame
 	 */
 	public static IJavaStackFrame getEvaluationContext(IWorkbenchWindow window) {
-		List<IWorkbenchWindow> alreadyVisited= new ArrayList<IWorkbenchWindow>();
+		List<IWorkbenchWindow> alreadyVisited= new ArrayList<>();
 		if (window == null) {
 			window = fgManager.fActiveWindow;
 		}
 		return getEvaluationContext(window, alreadyVisited);
 	}
-	
+
 	private static IJavaStackFrame getEvaluationContext(IWorkbenchWindow window, List<IWorkbenchWindow> alreadyVisited) {
 		IWorkbenchPage activePage = window.getActivePage();
 		IJavaStackFrame frame = null;
@@ -237,9 +237,9 @@
 					}
 				}
 			}
-			
+
 			alreadyVisited.add(window);
-			
+
 			IWorkbenchWindow[] windows = PlatformUI.getWorkbench().getWorkbenchWindows();
 			for (int i = 0; i < windows.length; i++) {
 				if (!alreadyVisited.contains(windows[i])) {
@@ -253,7 +253,7 @@
 		}
 		return frame;
 	}
-	
+
 	@Override
 	public void debugContextChanged(DebugContextEvent event) {
 		if ((event.getFlags() & DebugContextEvent.ACTIVATED) > 0) {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/EvaluationContextStatusHandler.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/EvaluationContextStatusHandler.java
index 1b0d3fb..a888fa3 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/EvaluationContextStatusHandler.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/EvaluationContextStatusHandler.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -21,7 +21,7 @@
  * Supplies a thread that can be used for an evaluation, given an element
  * from a java debug model. Currently use for logical object structure
  * computations.
- * 
+ *
  * @since 3.0
  */
 public class EvaluationContextStatusHandler implements IStatusHandler {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/EvaluationStackFrameContextStatusHandler.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/EvaluationStackFrameContextStatusHandler.java
index 1fd14bd..0f1f2dd 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/EvaluationStackFrameContextStatusHandler.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/EvaluationStackFrameContextStatusHandler.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -20,7 +20,7 @@
 /**
  * Supplies the current stack frame context. Currently use for logical object structure
  * computations.
- * 
+ *
  * @since 3.1
  */
 public class EvaluationStackFrameContextStatusHandler implements IStatusHandler {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/ExceptionHandler.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/ExceptionHandler.java
index d721d26..d6d7aa7 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/ExceptionHandler.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/ExceptionHandler.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -30,11 +30,11 @@
 public class ExceptionHandler {
 
 	private static ExceptionHandler fgInstance= new ExceptionHandler();
-	
+
 	/**
 	 * Handles the given <code>CoreException</code>. The workbench shell is used as a parent
 	 * for the dialog window.
-	 * 
+	 *
 	 * @param e the <code>CoreException</code> to be handled
 	 * @param title the dialog window's window title
 	 * @param message message to be displayed by the dialog window
@@ -42,10 +42,10 @@
 	public static void handle(CoreException e, String title, String message) {
 		handle(e, JDIDebugUIPlugin.getActiveWorkbenchShell(), title, message);
 	}
-	
+
 	/**
-	 * Handles the given <code>CoreException</code>. 
-	 * 
+	 * Handles the given <code>CoreException</code>.
+	 *
 	 * @param e the <code>CoreException</code> to be handled
 	 * @param parent the dialog window's parent shell
 	 * @param title the dialog window's window title
@@ -54,11 +54,11 @@
 	public static void handle(CoreException e, Shell parent, String title, String message) {
 		fgInstance.perform(e, parent, title, message);
 	}
-	
+
 	/**
-	 * Handles the given <code>InvocationTargetException</code>. The workbench shell is used 
+	 * Handles the given <code>InvocationTargetException</code>. The workbench shell is used
 	 * as a parent for the dialog window.
-	 * 
+	 *
 	 * @param e the <code>InvocationTargetException</code> to be handled
 	 * @param title the dialog window's window title
 	 * @param message message to be displayed by the dialog window
@@ -66,10 +66,10 @@
 	public static void handle(InvocationTargetException e, String title, String message) {
 		handle(e, JDIDebugUIPlugin.getActiveWorkbenchShell(), title, message);
 	}
-	
+
 	/**
-	 * Handles the given <code>InvocationTargetException</code>. 
-	 * 
+	 * Handles the given <code>InvocationTargetException</code>.
+	 *
 	 * @param e the <code>InvocationTargetException</code> to be handled
 	 * @param parent the dialog window's parent shell
 	 * @param title the dialog window's window title
@@ -80,7 +80,7 @@
 	}
 
 	//---- Hooks for subclasses to control exception handling ------------------------------------
-	
+
 	protected void perform(CoreException e, Shell shell, String title, String message) {
 		IStatus status= e.getStatus();
 		JDIDebugUIPlugin.log(e);
@@ -104,7 +104,7 @@
 			}
 		}
 	}
-	
+
 	private void displayMessageDialog(String exceptionMessage, Shell shell, String title, String message) {
 		StringWriter msg= new StringWriter();
 		if (message != null) {
@@ -112,11 +112,11 @@
 			msg.write("\n\n"); //$NON-NLS-1$
 		}
 		if (exceptionMessage == null || exceptionMessage.length() == 0) {
-			msg.write(DebugUIMessages.ExceptionHandler_seeErrorLogMessage); 
+			msg.write(DebugUIMessages.ExceptionHandler_seeErrorLogMessage);
 		}
 		else {
 			msg.write(exceptionMessage);
 		}
-		MessageDialog.openError(shell, title, msg.toString());			
-	}	
+		MessageDialog.openError(shell, title, msg.toString());
+	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/ExpressionInformationControlCreator.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/ExpressionInformationControlCreator.java
index da64626..42fa337 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/ExpressionInformationControlCreator.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/ExpressionInformationControlCreator.java
@@ -52,9 +52,9 @@
 
 /**
  * Creates an information control to display an expression in a hover control.
- * 
+ *
  * @noextend This class is not intended to be subclassed by clients.
- * 
+ *
  * @since 3.3
  */
 public class ExpressionInformationControlCreator implements IInformationControlCreator {
@@ -67,7 +67,7 @@
 		private static final String HEIGHT = "HEIGHT"; //$NON-NLS-1$
 
 		/**
-		 * Dialog setting key for width. 
+		 * Dialog setting key for width.
 		 */
 		private static final String WIDTH = "WIDTH"; //$NON-NLS-1$
 
@@ -75,24 +75,24 @@
 		 * Dialog setting key for tree sash weight
 		 */
 		private static final String SASH_WEIGHT_TREE = "SashWeightTree"; //$NON-NLS-1$
-		
+
 		/**
 		 * Dialog setting key for details sash weight
 		 */
-		private static final String SASH_WEIGHT_DETAILS = "SashWeightDetails"; //$NON-NLS-1$		
-		
+		private static final String SASH_WEIGHT_DETAILS = "SashWeightDetails"; //$NON-NLS-1$
+
 		/**
 		 * Variable to display.
 		 */
 		private IVariable fVariable;
-		
+
 		private IPresentationContext fContext;
 	    private TreeModelViewer fViewer;
 	    private SashForm fSashForm;
 	    private Composite fDetailPaneComposite;
 	    private DetailPaneProxy fDetailPane;
 	    private Tree fTree;
-		    
+
 		/**
 	     * Creates the content for the root element of the tree viewer in the hover
 	     */
@@ -111,7 +111,7 @@
 			protected Object[] getChildren(Object parent, int index, int length, IPresentationContext context, IViewerUpdate monitor) throws CoreException {
 				return new Object[] { fVariable };
 			}
-			
+
 			/* (non-Javadoc)
 			 * @see org.eclipse.debug.internal.ui.viewers.model.provisional.elements.ElementContentProvider#supportsContextId(java.lang.String)
 			 */
@@ -120,13 +120,13 @@
 				return true;
 			}
 	    }
-	    
+
 		/**
 		 * Inner class implementing IDetailPaneContainer methods.  Handles changes to detail
 		 * pane and provides limited access to the detail pane proxy.
 		 */
 		private class DetailPaneContainer implements IDetailPaneContainer{
-		
+
 			/* (non-Javadoc)
 			 * @see org.eclipse.debug.internal.ui.views.variables.details.IDetailPaneContainer#getCurrentPaneID()
 			 */
@@ -134,7 +134,7 @@
 			public String getCurrentPaneID() {
 				return fDetailPane.getCurrentPaneID();
 			}
-		
+
 			/* (non-Javadoc)
 			 * @see org.eclipse.debug.internal.ui.views.variables.details.IDetailPaneContainer#getCurrentSelection()
 			 */
@@ -142,15 +142,15 @@
 			public IStructuredSelection getCurrentSelection() {
 				return (IStructuredSelection)fViewer.getSelection();
 			}
-		
+
 			/* (non-Javadoc)
 			 * @see org.eclipse.debug.internal.ui.views.variables.details.IDetailPaneContainer#refreshDetailPaneContents()
 			 */
 			@Override
-			public void refreshDetailPaneContents() {		
+			public void refreshDetailPaneContents() {
 				fDetailPane.display(getCurrentSelection());
 			}
-		
+
 			/* (non-Javadoc)
 			 * @see org.eclipse.debug.internal.ui.views.variables.details.IDetailPaneContainer#getParentComposite()
 			 */
@@ -158,7 +158,7 @@
 			public Composite getParentComposite() {
 				return fDetailPaneComposite;
 			}
-		
+
 			/* (non-Javadoc)
 			 * @see org.eclipse.debug.internal.ui.views.variables.details.IDetailPaneContainer#getWorkbenchPartSite()
 			 */
@@ -166,7 +166,7 @@
 			public IWorkbenchPartSite getWorkbenchPartSite() {
 				return null;
 			}
-		
+
 			/* (non-Javadoc)
 			 * @see org.eclipse.debug.internal.ui.views.variables.details.IDetailPaneContainer#paneChanged(java.lang.String)
 			 */
@@ -177,12 +177,12 @@
 					fDetailPane.getCurrentControl().setBackground(getShell().getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND));
 				}
 			}
-		
-		}	    
+
+		}
 
 		/**
 		 * Constructs a new control in the given shell.
-		 * 
+		 *
 		 * @param parentShell shell
 		 * @param resize whether resize is supported
 		 */
@@ -190,7 +190,7 @@
 			super(parentShell, resize);
 			create();
 		}
-		
+
 		/* (non-Javadoc)
 		 * @see org.eclipse.jface.text.AbstractInformationControl#computeSizeHint()
 		 */
@@ -211,7 +211,7 @@
 
 		/**
 		 * Returns the dialog settings for this hover or <code>null</code> if none
-		 * 
+		 *
 		 * @param create whether to create the settings
 		 */
 		private IDialogSettings getDialogSettings(boolean create) {
@@ -222,10 +222,10 @@
 			}
 			return section;
 		}
-		
+
 		/**
 		 * Returns an integer value in the given dialog settings or -1 if none.
-		 * 
+		 *
 		 * @param settings dialog settings
 		 * @param key key
 		 * @return value or -1 if not present
@@ -237,7 +237,7 @@
 				return -1;
 			}
 		}
-		
+
 		/* (non-Javadoc)
 		 * @see org.eclipse.jface.text.AbstractInformationControl#dispose()
 		 */
@@ -250,7 +250,7 @@
 
 		/**
 		 * Persists dialog settings.
-		 * 
+		 *
 		 * @param shell
 		 */
 		private void persistSettings(Shell shell) {
@@ -266,13 +266,13 @@
 				}
 			}
 		}
-		
+
 		/* (non-Javadoc)
 		 * @see org.eclipse.jface.text.AbstractInformationControl#setVisible(boolean)
 		 */
 		@Override
 		public void setVisible(boolean visible) {
-			if (!visible) {		
+			if (!visible) {
 				persistSettings(getShell());
 			}
 			super.setVisible(visible);
@@ -299,10 +299,10 @@
 					fContext.setProperty(key, copy.getProperty(key));
 				}
 	        }
-	       
+
 	        fViewer = new TreeModelViewer(fSashForm, SWT.NO_TRIM | SWT.MULTI | SWT.VIRTUAL, fContext);
 	        fViewer.setAutoExpandLevel(1);
-	        
+
 	        if (view != null) {
 	        	// copy over filters
 	        	StructuredViewer structuredViewer = (StructuredViewer) view.getViewer();
@@ -321,10 +321,10 @@
 				gl.marginHeight = 0;
 				gl.marginWidth = 0;
 			}
-	        
+
 	        fDetailPane = new DetailPaneProxy(new DetailPaneContainer());
 	        fDetailPane.display(null); // Bring up the default pane so the user doesn't see an empty composite
-	      
+
 	        fTree = fViewer.getTree();
 	        fTree.addSelectionListener(new SelectionListener() {
 	            @Override
@@ -336,12 +336,12 @@
 	        });
 
 	        initSashWeights();
-	              
+
 	        // add update listener to auto-select and display details of root expression
 	        fViewer.addViewerUpdateListener(new IViewerUpdateListener() {
 				@Override
 				public void viewerUpdatesComplete() {
-				}		
+				}
 				@Override
 				public void viewerUpdatesBegin() {
 				}
@@ -357,12 +357,12 @@
 						fViewer.removeViewerUpdateListener(this);
 					}
 				}
-			});        
-	        
+			});
+
 	        setForegroundColor(getShell().getDisplay().getSystemColor(SWT.COLOR_INFO_FOREGROUND));
 	        setBackgroundColor(getShell().getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND));
 		}
-		
+
 
 		/**
 	     * Attempts to find an appropriate view to emulate, this will either be the
@@ -383,10 +383,10 @@
 	            return expressionsView;
 	        }
 	        return variablesView;
-	    }	
+	    }
 
 		/**
-	     * Initializes the sash form weights from the preference store (using default values if 
+	     * Initializes the sash form weights from the preference store (using default values if
 	     * no sash weights were stored previously).
 	     */
 	    protected void initSashWeights(){
@@ -401,7 +401,7 @@
 		    	}
 	    	}
 	    }
-	    		
+
 	    /* (non-Javadoc)
 	     * @see org.eclipse.jface.text.AbstractInformationControl#setForegroundColor(org.eclipse.swt.graphics.Color)
 	     */
@@ -411,7 +411,7 @@
 	    	fDetailPaneComposite.setForeground(foreground);
 	    	fTree.setForeground(foreground);
 	    }
-	    
+
 		/* (non-Javadoc)
 		 * @see org.eclipse.jface.text.AbstractInformationControl#setBackgroundColor(org.eclipse.swt.graphics.Color)
 		 */
@@ -421,7 +421,7 @@
 			fDetailPaneComposite.setBackground(background);
 			fTree.setBackground(background);
 		}
-	
+
 		/* (non-Javadoc)
 		 * @see org.eclipse.jface.text.AbstractInformationControl#setFocus()
 		 */
@@ -430,7 +430,7 @@
 			super.setFocus();
 			fTree.setFocus();
 		}
-		
+
 		/* (non-Javadoc)
 		 * @see org.eclipse.jface.text.IInformationControlExtension#hasContents()
 		 */
@@ -444,7 +444,7 @@
 		 */
 		@Override
 		public void setInput(Object input) {
-			if (input instanceof IVariable) {	        
+			if (input instanceof IVariable) {
 				fVariable = (IVariable) input;
 		        fViewer.setInput(new TreeRoot());
 			}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/Filter.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/Filter.java
index 7e2b692..1b1ae05 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/Filter.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/Filter.java
@@ -4,13 +4,13 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui;
 
- 
+
 /**
  * Model object that represents a single entry in a filter table.
  */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/FilterLabelProvider.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/FilterLabelProvider.java
index 9285967..c772d2a 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/FilterLabelProvider.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/FilterLabelProvider.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/FilterViewerComparator.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/FilterViewerComparator.java
index 89c1203..8285e73 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/FilterViewerComparator.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/FilterViewerComparator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/HeapWalkingPreferencePage.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/HeapWalkingPreferencePage.java
index 0e5af43..a249a76 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/HeapWalkingPreferencePage.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/HeapWalkingPreferencePage.java
@@ -32,7 +32,7 @@
 /**
  * Provides a page for changing the heap walking options. Interacts
  * with the HeapWalkingManager to get/set options.
- * 
+ *
  * @see HeapWalkingManager
  * @since 3.3
  */
@@ -42,15 +42,15 @@
 	private Text fAllReferencesMaxCount;
 	private Text fAllInstancesMaxCount;
 	private Map<Object, String> fErrorMessages;
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
 	 */
 	@Override
 	public void init(IWorkbench workbench) {
-		fErrorMessages = new HashMap<Object, String>();
+		fErrorMessages = new HashMap<>();
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.preference.PreferencePage#createControl(org.eclipse.swt.widgets.Composite)
 	 */
@@ -60,24 +60,24 @@
 		// TODO: Help must be updated
 		PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), IJavaDebugHelpContextIds.JAVA_HEAPWALKING_PREFERENCE_PAGE);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
 	protected Control createContents(Composite parent) {
-		
+
 		Composite comp = SWTFactory.createComposite(parent, parent.getFont(), 1, 1, GridData.FILL_BOTH);
-		
+
 		SWTFactory.createWrapLabel(comp, DebugUIMessages.HeapWalkingPreferencePage_0, 1, 300);
 		SWTFactory.createVerticalSpacer(comp, 2);
-		
+
 		fShowReferencesInVarView = SWTFactory.createCheckButton(comp, DebugUIMessages.HeapWalkingPreferencePage_5, null, HeapWalkingManager.getDefault().isShowReferenceInVarView(), 1);
 		SWTFactory.createVerticalSpacer(comp, 2);
-		
+
 		Group group = SWTFactory.createGroup(comp, DebugUIMessages.HeapWalkingPreferencePage_3, 2, 1, GridData.FILL_HORIZONTAL);
 		SWTFactory.createLabel(group, DebugUIMessages.HeapWalkingPreferencePage_4, 2);
-		
+
 		SWTFactory.createLabel(group, DebugUIMessages.HeapWalkingPreferencePage_1, 1);
 		fAllInstancesMaxCount = SWTFactory.createSingleText(group, 1);
 		fAllInstancesMaxCount.addModifyListener(new ModifyListener(){
@@ -95,7 +95,7 @@
 			}
 		});
 		fAllInstancesMaxCount.setText("" + HeapWalkingManager.getDefault().getAllInstancesMaxCount()); //$NON-NLS-1$
-		
+
 		SWTFactory.createLabel(group, DebugUIMessages.HeapWalkingPreferencePage_2, 1);
 		fAllReferencesMaxCount = SWTFactory.createSingleText(group, 1);
 		fAllReferencesMaxCount.addModifyListener(new ModifyListener(){
@@ -113,10 +113,10 @@
 			}
 		});
 		fAllReferencesMaxCount.setText("" + HeapWalkingManager.getDefault().getAllReferencesMaxCount()); //$NON-NLS-1$
-		
+
 		return comp;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.preference.PreferencePage#performOk()
 	 */
@@ -143,12 +143,12 @@
 		}
 		return result;
 	}
-	
+
 	/**
 	 * Sets an error message associated with a specific field.  Allows several
 	 * fields to have their own error message.  The dialog's error message will
 	 * be set to the given message.
-	 * 
+	 *
 	 * @param cause The field that the message is associated with
 	 * @param message The error message to display to the user
 	 */
@@ -157,12 +157,12 @@
 		setErrorMessage(message);
 		setValid(false);
 	}
-	
+
 	/**
 	 * Clears the error message associated with the given field.  If there are other
 	 * error messages, one will be displayed to the user.  If there are no more error
 	 * messages, the page becomes valid.
-	 * 
+	 *
 	 * @param cause The field associated with a current error message.
 	 */
 	private void clearErrorMessage(Object cause){
@@ -175,7 +175,7 @@
 			setValid(true);
 		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.preference.PreferencePage#performDefaults()
 	 */
@@ -183,10 +183,10 @@
 	protected void performDefaults() {
 		HeapWalkingManager.getDefault().resetToDefaultSettings();
 		fAllReferencesMaxCount.setText(Integer.toString(HeapWalkingManager.getDefault().getAllReferencesMaxCount()));
-		fAllInstancesMaxCount.setText(Integer.toString(HeapWalkingManager.getDefault().getAllReferencesMaxCount())); 
+		fAllInstancesMaxCount.setText(Integer.toString(HeapWalkingManager.getDefault().getAllReferencesMaxCount()));
 		fShowReferencesInVarView.setSelection(HeapWalkingManager.getDefault().isShowReferenceInVarView());
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.dialogs.DialogPage#dispose()
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/HotCodeReplaceErrorDialog.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/HotCodeReplaceErrorDialog.java
index 13a74fb..98fe9f8 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/HotCodeReplaceErrorDialog.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/HotCodeReplaceErrorDialog.java
@@ -35,7 +35,7 @@
 public class HotCodeReplaceErrorDialog extends ErrorDialogWithToggle {
 
 	protected IDebugTarget target;
-	// The IDs of the buttons. Set to the sum of the other possible IDs generated by 
+	// The IDs of the buttons. Set to the sum of the other possible IDs generated by
 	// this dialog to ensure the IDs' uniqueness.
 	protected int TERMINATE_ID= IDialogConstants.OK_ID + IDialogConstants.DETAILS_ID + IDialogConstants.CANCEL_ID;
 	protected int DISCONNECT_ID= TERMINATE_ID + 1;
@@ -43,7 +43,7 @@
 
 	/**
 	 * Creates a new dialog which can terminate, disconnect or restart the given debug target.
-	 * 
+	 *
 	 * @param target the debug target
 	 * @see ErrorDialogWithToggle#ErrorDialogWithToggle(Shell, String, String, IStatus, String, String, IPreferenceStore)
 	 */
@@ -58,17 +58,17 @@
 	@Override
 	protected void createButtonsForButtonBar(Composite parent) {
 		super.createButtonsForButtonBar(parent);
-		getButton(IDialogConstants.OK_ID).setText(DebugUIMessages.HotCodeReplaceErrorDialog_0); 
+		getButton(IDialogConstants.OK_ID).setText(DebugUIMessages.HotCodeReplaceErrorDialog_0);
 		boolean canTerminate= target.canTerminate();
 		boolean canDisconnect= target.canDisconnect();
 		if (canTerminate) {
-			createButton(parent, TERMINATE_ID, DebugUIMessages.HotCodeReplaceErrorDialog_1, false); 
-		} 
+			createButton(parent, TERMINATE_ID, DebugUIMessages.HotCodeReplaceErrorDialog_1, false);
+		}
 		if (canDisconnect) {
-			createButton(parent, DISCONNECT_ID, DebugUIMessages.HotCodeReplaceErrorDialog_3, false); 
+			createButton(parent, DISCONNECT_ID, DebugUIMessages.HotCodeReplaceErrorDialog_3, false);
 		}
 		if (canTerminate && !canDisconnect) {
-			createButton(parent, RESTART_ID, DebugUIMessages.HotCodeReplaceErrorDialog_7, false); 
+			createButton(parent, RESTART_ID, DebugUIMessages.HotCodeReplaceErrorDialog_7, false);
 		}
 		blockMnemonicWithoutModifier(getToggleButton());
 	}
@@ -86,7 +86,7 @@
 
 	/**
 	 * Ensures that simple key presses don't activate the given button.
-	 *  
+	 *
 	 * @param button the button to tweak
 	 * @since 3.6
 	 */
@@ -100,7 +100,7 @@
 			}
 		});
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.dialogs.Dialog#buttonPressed(int)
 	 */
@@ -115,13 +115,13 @@
 				public void run() {
 					try {
 						if (id == TERMINATE_ID) {
-							operation[0]= DebugUIMessages.HotCodeReplaceErrorDialog_5; 
+							operation[0]= DebugUIMessages.HotCodeReplaceErrorDialog_5;
 							target.terminate();
 						} else if (id == DISCONNECT_ID){
-							operation[0]= DebugUIMessages.HotCodeReplaceErrorDialog_6; 
+							operation[0]= DebugUIMessages.HotCodeReplaceErrorDialog_6;
 							target.disconnect();
 						} else {
-							operation[0]= DebugUIMessages.HotCodeReplaceErrorDialog_8; 
+							operation[0]= DebugUIMessages.HotCodeReplaceErrorDialog_8;
 							ILaunch launch = target.getLaunch();
 							launch.terminate();
 							ILaunchConfiguration config = launch.getLaunchConfiguration();
@@ -136,7 +136,7 @@
 			};
 			BusyIndicator.showWhile(getShell().getDisplay(), r);
 			if (ex[0] != null) {
-				JDIDebugUIPlugin.statusDialog(NLS.bind(DebugUIMessages.HotCodeReplaceErrorDialog_2, operation), ex[0].getStatus()); 
+				JDIDebugUIPlugin.statusDialog(NLS.bind(DebugUIMessages.HotCodeReplaceErrorDialog_2, operation), ex[0].getStatus());
 			}
 			okPressed();
 		} else {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/IJDIPreferencesConstants.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/IJDIPreferencesConstants.java
index 7114cf7..07b52ef 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/IJDIPreferencesConstants.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/IJDIPreferencesConstants.java
@@ -12,179 +12,179 @@
 package org.eclipse.jdt.internal.debug.ui;
 
 import org.eclipse.jdt.debug.ui.IJavaDebugUIConstants;
- 
+
 /**
  * Defines constants which are used to refer to values in the plugin's preference store.
  */
 public interface IJDIPreferencesConstants {
-	
+
 	/**
 	 * Boolean preference controlling whether to suspend
 	 * execution when an uncaught Java exceptions encountered
 	 * (while debugging).
-	 */	
+	 */
 	public static final String PREF_SUSPEND_ON_UNCAUGHT_EXCEPTIONS= IJavaDebugUIConstants.PLUGIN_ID + ".javaDebug.SuspendOnUncaughtExceptions"; //$NON-NLS-1$
-	
+
 	/**
 	 * Boolean preference controlling whether to suspend
 	 * execution when a compilation error is encountered
 	 * (while debugging).
 	 */
 	public static final String PREF_SUSPEND_ON_COMPILATION_ERRORS= IJavaDebugUIConstants.PLUGIN_ID + ".suspend_on_compilation_errors"; //$NON-NLS-1$
-		
+
 	/**
 	 * Boolean preference controlling whether synthetic
 	 * methods are to be filtered when stepping (and step
 	 * filters are enabled).
-	 */	
+	 */
 	public static final String PREF_FILTER_SYNTHETICS = IJavaDebugUIConstants.PLUGIN_ID + ".filter_synthetics"; //$NON-NLS-1$
-	
+
 	/**
 	 * Boolean preference controlling whether static
 	 * initializers are to be filtered when stepping (and step
 	 * filters are enabled).
-	 */		
+	 */
 	public static final String PREF_FILTER_STATIC_INITIALIZERS = IJavaDebugUIConstants.PLUGIN_ID + ".filter_statics"; //$NON-NLS-1$
-	
+
 	/**
 	 * Boolean preference controlling whether simple getters
 	 * are to be filtered when stepping (and step
 	 * filters are enabled).
-	 */			
+	 */
 	public static final String PREF_FILTER_GETTERS = IJavaDebugUIConstants.PLUGIN_ID + ".filter_get"; //$NON-NLS-1$
 
 	/**
 	 * Boolean preference controlling whether simple setters
 	 * are to be filtered when stepping (and step
 	 * filters are enabled).
-	 */			
+	 */
 	public static final String PREF_FILTER_SETTERS = IJavaDebugUIConstants.PLUGIN_ID + ".filter_setters"; //$NON-NLS-1$
 
 	/**
 	 * Boolean preference controlling whether constructors
 	 * are to be filtered when stepping (and step
 	 * filters are enabled).
-	 */			
+	 */
 	public static final String PREF_FILTER_CONSTRUCTORS = IJavaDebugUIConstants.PLUGIN_ID + ".filter_constructors"; //$NON-NLS-1$
 
-	
+
 	/**
 	 * Boolean preference controlling whether a step landing in a filtered
 	 * location proceeds through to an un-filtered location, or returns.
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	public static final String PREF_STEP_THRU_FILTERS = IJavaDebugUIConstants.PLUGIN_ID + ".step_thru_filters"; //$NON-NLS-1$
-	
+
 	/**
 	 * List of active step filters. A String containing a comma
 	 * separated list of fully qualified type names/patterns.
-	 */			
+	 */
 	public static final String PREF_ACTIVE_FILTERS_LIST = IJavaDebugUIConstants.PLUGIN_ID + ".active_filters"; //$NON-NLS-1$
-	
+
 	/**
 	 * List of inactive step filters. A String containing a comma
 	 * separated list of fully qualified type names/patterns.
-	 */				
-	public static final String PREF_INACTIVE_FILTERS_LIST = IJavaDebugUIConstants.PLUGIN_ID + ".inactive_filters"; //$NON-NLS-1$	
-	
+	 */
+	public static final String PREF_INACTIVE_FILTERS_LIST = IJavaDebugUIConstants.PLUGIN_ID + ".inactive_filters"; //$NON-NLS-1$
+
 	/**
 	 * Boolean preference controlling whether to alert
 	 * with a dialog when hot code replace fails.
-	 */	
+	 */
 	public static final String PREF_ALERT_HCR_FAILED = IJavaDebugUIConstants.PLUGIN_ID + ".javaDebug.alertHCRFailed"; //$NON-NLS-1$
-	
+
 	/**
 	 * Boolean preference controlling whether to alert
 	 * with a dialog when hot code replace is not supported.
-	 */	
+	 */
 	public static final String PREF_ALERT_HCR_NOT_SUPPORTED = IJavaDebugUIConstants.PLUGIN_ID + ".javaDebug.alertHCRNotSupported"; //$NON-NLS-1$
-	
+
 	/**
 	 * Boolean preference controlling whether to alert
-	 * with a dialog when hot code replace results in 
+	 * with a dialog when hot code replace results in
 	 * obsolete methods.
-	 */	
+	 */
 	public static final String PREF_ALERT_OBSOLETE_METHODS = IJavaDebugUIConstants.PLUGIN_ID + "javaDebug.alertObsoleteMethods"; //$NON-NLS-1$
-	
+
 	/**
-	 * Boolean preference controlling whether the debugger shows 
+	 * Boolean preference controlling whether the debugger shows
 	 * qualifed names. When <code>true</code> the debugger
 	 * will show qualified names in newly opened views.
-	 * 
+	 *
 	 * @since 2.0
 	 */
 	public static final String PREF_SHOW_QUALIFIED_NAMES= IJavaDebugUIConstants.PLUGIN_ID + ".show_qualified_names"; //$NON-NLS-1$
-	
+
 	/**
 	 * List of defined detail formatters.A String containing a comma
 	 * separated list of fully qualified type names, the associated
 	 * code snippet and an 'enabled' flag.
 	 */
 	public static final String PREF_DETAIL_FORMATTERS_LIST= IJavaDebugUIConstants.PLUGIN_ID + ".detail_formatters"; //$NON-NLS-1$
-	
+
 	/**
 	 * Boolean preference indicating whether (non-final) static varibles should be shown
 	 * in variable views. A view may over-ride this preference, and if so, stores
 	 * its preference, prefixed by view id.
-	 * 
+	 *
 	 * @since 2.1
 	 */
 	public static final String PREF_SHOW_STATIC_VARIABLES= IJavaDebugUIConstants.PLUGIN_ID + ".show_static_variables"; //$NON-NLS-1$
-	
+
 	/**
 	 * Boolean preference indicating whether constant (final static) varibles should be shown
 	 * in variable views. A view may over-ride this preference, and if so, stores
 	 * its preference, prefixed by view id.
-	 * 
+	 *
 	 * @since 2.1
-	 */	
+	 */
 	public static final String PREF_SHOW_CONSTANTS= IJavaDebugUIConstants.PLUGIN_ID + ".show_constants"; //$NON-NLS-1$
-	
+
 	/**
 	 * Boolean preference indicating whether null array entries should be shown
 	 * in variable views. A view may over-ride this preference, and if so, stores
 	 * its preference, prefixed by view id.
-	 * 
+	 *
 	 * @since 3.0
-	 */	
-	public static final String PREF_SHOW_NULL_ARRAY_ENTRIES = IJavaDebugUIConstants.PLUGIN_ID + ".show_null_entries"; //$NON-NLS-1$	
-	
+	 */
+	public static final String PREF_SHOW_NULL_ARRAY_ENTRIES = IJavaDebugUIConstants.PLUGIN_ID + ".show_null_entries"; //$NON-NLS-1$
+
 	/**
 	 * Boolean preference indicating whether hex values should be shown for primitives
 	 * in variable views. A view may over-ride this preference, and if so, stores
 	 * its preference, prefixed by view id.
-	 * 
+	 *
 	 * @since 2.1
-	 */	
-	public static final String PREF_SHOW_HEX = IJavaDebugUIConstants.PLUGIN_ID + ".show_hex"; //$NON-NLS-1$	
-	
+	 */
+	public static final String PREF_SHOW_HEX = IJavaDebugUIConstants.PLUGIN_ID + ".show_hex"; //$NON-NLS-1$
+
 	/**
 	 * Boolean preference indicating whether char values should be shown for primitives
 	 * in variable views. A view may over-ride this preference, and if so, stores
 	 * its preference, prefixed by view id.
-	 * 
+	 *
 	 * @since 2.1
-	 */	
+	 */
 	public static final String PREF_SHOW_CHAR = IJavaDebugUIConstants.PLUGIN_ID + ".show_char"; //$NON-NLS-1$
-	
+
 	/**
 	 * Boolean preference indicating whether unsigned values should be shown for primitives
 	 * in variable views. A view may over-ride this preference, and if so, stores
 	 * its preference, prefixed by view id.
-	 * 
+	 *
 	 * @since 2.1
-	 */	
-	public static final String PREF_SHOW_UNSIGNED = IJavaDebugUIConstants.PLUGIN_ID + ".show_unsigned"; //$NON-NLS-1$	
-	
+	 */
+	public static final String PREF_SHOW_UNSIGNED = IJavaDebugUIConstants.PLUGIN_ID + ".show_unsigned"; //$NON-NLS-1$
+
 	/**
 	 * String preference indication when and where variable details should appear.
-	 * Valid values include: 
+	 * Valid values include:
 	 * <ul>
 	 *   <li><code>INLINE_ALL</code> to show inline details for all variables
 	 *   <li><code>INLINE_FORMATTERS</code> to show inline details for variables with formatters
 	 *   <li><code>DETAIL_PANE</code> to show details only in the detail pane
-	 * </ul> 
+	 * </ul>
 	 */
 	public static final String PREF_SHOW_DETAILS = IJavaDebugUIConstants.PLUGIN_ID + ".show_details"; //$NON-NLS-1$
 	/**
@@ -193,23 +193,23 @@
 	public static final String INLINE_ALL="INLINE_ALL"; //$NON-NLS-1$
 	public static final String INLINE_FORMATTERS="INLINE_FORMATTERS"; //$NON-NLS-1$
 	public static final String DETAIL_PANE="DETAIL_PANE"; //$NON-NLS-1$
-	
+
 	/**
 	 * Common dialog settings
 	 */
 	public static final String DIALOG_ORIGIN_X = "DIALOG_ORIGIN_X"; //$NON-NLS-1$
 	public static final String DIALOG_ORIGIN_Y = "DIALOG_ORIGIN_Y"; //$NON-NLS-1$
 	public static final String DIALOG_WIDTH = "DIALOG_WIDTH"; //$NON-NLS-1$
-	public static final String DIALOG_HEIGHT = "DIALOG_HEIGHT"; //$NON-NLS-1$	
+	public static final String DIALOG_HEIGHT = "DIALOG_HEIGHT"; //$NON-NLS-1$
 
 
 	/**
 	 * Boolean preference controlling whether to alert
 	 * with a dialog when unable to install a breakpoint
 	 * (line info not available, ...)
-	 */	
+	 */
 	public static final String PREF_ALERT_UNABLE_TO_INSTALL_BREAKPOINT = IJavaDebugUIConstants.PLUGIN_ID + ".prompt_unable_to_install_breakpoint"; //$NON-NLS-1$
-	
+
 	public static final String PREF_THREAD_MONITOR_IN_DEADLOCK_COLOR= "org.eclipse.jdt.debug.ui.InDeadlockColor"; //$NON-NLS-1$
 
 	/**
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/IJDIStatusConstants.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/IJDIStatusConstants.java
index cf0a027..41a34b7 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/IJDIStatusConstants.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/IJDIStatusConstants.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/IJavaDebugHelpContextIds.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/IJavaDebugHelpContextIds.java
index 753f879..5c0cb92 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/IJavaDebugHelpContextIds.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/IJavaDebugHelpContextIds.java
@@ -19,10 +19,10 @@
  * This interface contains constants only; it is not intended to be implemented
  * or extended.
  * </p>
- * 
+ *
  */
 public interface IJavaDebugHelpContextIds {
-	
+
 	public static final String PREFIX= IJavaDebugUIConstants.PLUGIN_ID + '.';
 
 	// view parts
@@ -48,7 +48,7 @@
 	public static final String JRE_PREFERENCE_PAGE= PREFIX + "jre_preference_page_context"; //$NON-NLS-1$
 	public static final String JRE_PROFILES_PAGE= PREFIX + "jre_profiles_page_context"; //$NON-NLS-1$
 	public static final String LAUNCH_JRE_PROPERTY_PAGE= PREFIX + "launch_jre_property_page_context"; //$NON-NLS-1$
-	public static final String JAVA_DEBUG_PREFERENCE_PAGE= PREFIX + "java_debug_preference_page_context"; //$NON-NLS-1$	
+	public static final String JAVA_DEBUG_PREFERENCE_PAGE= PREFIX + "java_debug_preference_page_context"; //$NON-NLS-1$
 	public static final String JAVA_STEP_FILTER_PREFERENCE_PAGE= PREFIX + "java_step_filter_preference_page_context"; //$NON-NLS-1$
 	public static final String JAVA_BREAKPOINT_PREFERENCE_PAGE= PREFIX + "java_breakpoint_preference_page_context"; //$NON-NLS-1$
 	public static final String JAVA_DETAIL_FORMATTER_PREFERENCE_PAGE= PREFIX + "java_detail_formatter_preference_page_context"; //$NON-NLS-1$
@@ -61,7 +61,7 @@
 	public static final String JAVA_EXCEPTION_BREAKPOINT_PROPERTY_PAGE = PREFIX + "java_exception_breakpoint_property_page"; //$NON-NLS-1$
 	public static final String JAVA_EXCEPTION_BREAKPOINT_FILTERING_PROPERTY_PAGE = PREFIX + "java_exception_breakpoint_filtering_property_page"; //$NON-NLS-1$
 	public static final String JAVA_LINE_BREAKPOINT_PROPERTY_PAGE = PREFIX + "java_line_breakpoint_property_page"; //$NON-NLS-1$
-	
+
 	// reused ui-blocks
 	public static final String SOURCE_ATTACHMENT_BLOCK= PREFIX + "source_attachment_context"; //$NON-NLS-1$
 	public static final String WORKING_DIRECTORY_BLOCK= PREFIX + "working_directory_context"; //$NON-NLS-1$
@@ -73,7 +73,7 @@
 	public static final String LAUNCH_CONFIGURATION_DIALOG_JRE_TAB= PREFIX + "launch_configuration_dialog_jre_tab"; //$NON-NLS-1$
 	public static final String LAUNCH_CONFIGURATION_DIALOG_MAIN_TAB= PREFIX + "launch_configuration_dialog_main_tab"; //$NON-NLS-1$
 	public static final String LAUNCH_CONFIGURATION_DIALOG_SOURCE_TAB= PREFIX + "launch_configuration_dialog_source_tab"; //$NON-NLS-1$
-	
+
 	// applet launch configuration dialog tabs
 	public static final String LAUNCH_CONFIGURATION_DIALOG_APPLET_MAIN_TAB = PREFIX + "launch_configuration_dialog_applet_main_tab"; //$NON-NLS-1$
 	public static final String LAUNCH_CONFIGURATION_DIALOG_APPLET_ARGUMENTS_TAB = PREFIX + "launch_configuration_dialog_applet_arguments_tab"; //$NON-NLS-1$
@@ -87,7 +87,7 @@
 	public static final String TERMINATE_SCRAPBOOK_VM_ACTION = PREFIX + "terminate_scrapbook_vm_action_context"; //$NON-NLS-1$
 	public static final String SCRAPBOOK_IMPORTS_ACTION = PREFIX + "scrapbook_imports_action_context"; //$NON-NLS-1$
 	public static final String CONSOLE_AUTOFORMAT_STACKTRACES_ACTION = PREFIX + "console_autoformat_stacktraces_action"; //$NON-NLS-1$
-	
+
 	//wizards
 	public static final String ADD_NEW_JRE_WIZARD_PAGE= PREFIX + "add_new_jre_wizard_page_context"; //$NON-NLS-1$
 	public static final String EDIT_JRE_STD_VM_WIZARD_PAGE= PREFIX + "edit_std_vm_jre_wizard_page_context"; //$NON-NLS-1$
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/ImageDescriptorRegistry.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/ImageDescriptorRegistry.java
index 97b147f..26ac852 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/ImageDescriptorRegistry.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/ImageDescriptorRegistry.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui;
 
- 
+
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -28,7 +28,7 @@
 
 	private Map<ImageDescriptor, Image> fRegistry= Collections.synchronizedMap(new HashMap<ImageDescriptor, Image>(10));
 	private Display fDisplay;
-	
+
 	/**
 	 * Creates a new image descriptor registry for the current or default display,
 	 * respectively.
@@ -36,22 +36,22 @@
 	public ImageDescriptorRegistry() {
 		this(JDIDebugUIPlugin.getStandardDisplay());
 	}
-	
+
 	/**
 	 * Creates a new image descriptor registry for the given display. All images
 	 * managed by this registry will be disposed when the display gets disposed.
-	 * 
-	 * @param display the display the images managed by this registry are allocated for 
+	 *
+	 * @param display the display the images managed by this registry are allocated for
 	 */
 	public ImageDescriptorRegistry(Display display) {
 		fDisplay= display;
 		Assert.isNotNull(fDisplay);
 		hookDisplay();
 	}
-	
+
 	/**
 	 * Returns the image associated with the given image descriptor.
-	 * 
+	 *
 	 * @param descriptor the image descriptor for which the registry manages an image
 	 * @return the image associated with the image descriptor or <code>null</code>
 	 *  if the image descriptor can't create the requested image.
@@ -60,13 +60,13 @@
 		if (descriptor == null) {
 			descriptor= ImageDescriptor.getMissingImageDescriptor();
 		}
-			
+
 		Image result= fRegistry.get(descriptor);
 		if (result != null) {
 			return result;
 		}
-	
-		Assert.isTrue(fDisplay == JDIDebugUIPlugin.getStandardDisplay(), DebugUIMessages.ImageDescriptorRegistry_Allocating_image_for_wrong_display_1); 
+
+		Assert.isTrue(fDisplay == JDIDebugUIPlugin.getStandardDisplay(), DebugUIMessages.ImageDescriptorRegistry_Allocating_image_for_wrong_display_1);
 		result= descriptor.createImage();
 		if (result != null) {
 			fRegistry.put(descriptor, result);
@@ -76,7 +76,7 @@
 
 	/**
 	 * Disposes all images managed by this registry.
-	 */	
+	 */
 	public void dispose() {
 		for (Iterator<Image> iter= fRegistry.values().iterator(); iter.hasNext(); ) {
 			Image image= iter.next();
@@ -84,7 +84,7 @@
 		}
 		fRegistry.clear();
 	}
-	
+
 	private void hookDisplay() {
 		fDisplay.asyncExec(new Runnable() {
 			@Override
@@ -93,7 +93,7 @@
 				@Override
 				public void run() {
 					dispose();
-				}	
+				}
 			});
 			}
 		});
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIContentAssistPreference.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIContentAssistPreference.java
index 00cbc99..5d36c9a 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIContentAssistPreference.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIContentAssistPreference.java
@@ -30,35 +30,35 @@
 
 
 public class JDIContentAssistPreference {
-	
+
 	private final static String VISIBILITY= "org.eclipse.jdt.core.codeComplete.visibilityCheck"; //$NON-NLS-1$
 	private final static String ENABLED= "enabled"; //$NON-NLS-1$
 	private final static String DISABLED= "disabled"; //$NON-NLS-1$
-	
+
 	private static Color getColor(IPreferenceStore store, String key, IColorManager manager) {
 		RGB rgb= PreferenceConverter.getColor(store, key);
 		return manager.getColor(rgb);
 	}
-	
+
 	private static Color getColor(IPreferenceStore store, String key) {
 		JavaTextTools textTools= JDIDebugUIPlugin.getDefault().getJavaTextTools();
 		return getColor(store, key, textTools.getColorManager());
 	}
-	
+
 	private static JavaDebugContentAssistProcessor getDisplayProcessor(ContentAssistant assistant) {
 		IContentAssistProcessor p= assistant.getContentAssistProcessor(IDocument.DEFAULT_CONTENT_TYPE);
 		if (p instanceof JavaDebugContentAssistProcessor)
 			return  (JavaDebugContentAssistProcessor) p;
 		return null;
 	}
-	
+
 	private static JavaSnippetCompletionProcessor getJavaSnippetProcessor(ContentAssistant assistant) {
 		IContentAssistProcessor p= assistant.getContentAssistProcessor(IDocument.DEFAULT_CONTENT_TYPE);
 		if (p instanceof JavaSnippetCompletionProcessor)
 			return  (JavaSnippetCompletionProcessor) p;
 		return null;
 	}
-	
+
 	private static void configureDisplayProcessor(ContentAssistant assistant, IPreferenceStore store) {
 		JavaDebugContentAssistProcessor dcp= getDisplayProcessor(assistant);
 		if (dcp == null) {
@@ -68,67 +68,67 @@
 		if (triggers != null) {
 			dcp.setCompletionProposalAutoActivationCharacters(triggers.toCharArray());
 		}
-			
+
 		boolean enabled= store.getBoolean(PreferenceConstants.CODEASSIST_SHOW_VISIBLE_PROPOSALS);
 		restrictProposalsToVisibility(enabled);
-		
+
 		enabled= store.getBoolean(PreferenceConstants.CODEASSIST_CASE_SENSITIVITY);
 		restrictProposalsToMatchingCases(enabled);
-		
+
 		enabled= store.getBoolean(PreferenceConstants.CODEASSIST_SORTER);
 		dcp.orderProposalsAlphabetically(enabled);
 	}
-	
+
 	private static void configureJavaSnippetProcessor(ContentAssistant assistant, IPreferenceStore store) {
 		JavaSnippetCompletionProcessor cp= getJavaSnippetProcessor(assistant);
 		if (cp == null) {
 			return;
 		}
-			
+
 		String triggers= store.getString(PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVA);
 		if (triggers != null) {
 			cp.setCompletionProposalAutoActivationCharacters(triggers.toCharArray());
 		}
-			
+
 		boolean enabled= store.getBoolean(PreferenceConstants.CODEASSIST_SHOW_VISIBLE_PROPOSALS);
 		restrictProposalsToVisibility(enabled);
-		
+
 		enabled= store.getBoolean(PreferenceConstants.CODEASSIST_CASE_SENSITIVITY);
 		restrictProposalsToMatchingCases(enabled);
-		
+
 		enabled= store.getBoolean(PreferenceConstants.CODEASSIST_SORTER);
 		cp.orderProposalsAlphabetically(enabled);
 	}
-	
+
 	/**
 	 * Configure the given content assistant from the preference store.
 	 */
 	public static void configure(ContentAssistant assistant, IColorManager manager) {
-		
+
 		IPreferenceStore store= getPreferenceStore();
-		
+
 		boolean enabled= store.getBoolean(PreferenceConstants.CODEASSIST_AUTOACTIVATION);
 		assistant.enableAutoActivation(enabled);
-		
+
 		int delay= store.getInt(PreferenceConstants.CODEASSIST_AUTOACTIVATION_DELAY);
 		assistant.setAutoActivationDelay(delay);
-		
+
 		Color c= getColor(store, PreferenceConstants.CODEASSIST_PARAMETERS_FOREGROUND, manager);
 		assistant.setContextInformationPopupForeground(c);
 		assistant.setContextSelectorForeground(c);
-		
+
 		c= getColor(store, PreferenceConstants.CODEASSIST_PARAMETERS_BACKGROUND, manager);
 		assistant.setContextInformationPopupBackground(c);
 		assistant.setContextSelectorBackground(c);
-		
+
 		enabled= store.getBoolean(PreferenceConstants.CODEASSIST_AUTOINSERT);
 		assistant.enableAutoInsert(enabled);
 
 		configureDisplayProcessor(assistant, store);
 		configureJavaSnippetProcessor(assistant, store);
 	}
-	
-	
+
+
 	private static void changeDisplayProcessor(ContentAssistant assistant, IPreferenceStore store, String key) {
 		JavaDebugContentAssistProcessor dcp= getDisplayProcessor(assistant);
 		if (dcp == null) {
@@ -144,7 +144,7 @@
 			dcp.orderProposalsAlphabetically(enable);
 		}
 	}
-	
+
 	private static void changeJavaSnippetProcessor(ContentAssistant assistant, IPreferenceStore store, String key) {
 		JavaSnippetCompletionProcessor cp= getJavaSnippetProcessor(assistant);
 		if (cp == null) {
@@ -160,17 +160,17 @@
 			cp.orderProposalsAlphabetically(enable);
 		}
 	}
-	
-	
+
+
 	/**
 	 * Changes the configuration of the given content assistant according to the given property
 	 * change event.
 	 */
 	public static void changeConfiguration(ContentAssistant assistant, PropertyChangeEvent event) {
-		
+
 		IPreferenceStore store= getPreferenceStore();
 		String p= event.getProperty();
-		
+
 		if (PreferenceConstants.CODEASSIST_AUTOACTIVATION.equals(p)) {
 			boolean enabled= store.getBoolean(PreferenceConstants.CODEASSIST_AUTOACTIVATION);
 			assistant.enableAutoActivation(enabled);
@@ -189,15 +189,15 @@
 			boolean enabled= store.getBoolean(PreferenceConstants.CODEASSIST_AUTOINSERT);
 			assistant.enableAutoInsert(enabled);
 		}
-		
+
 		changeDisplayProcessor(assistant, store, p);
 		changeJavaSnippetProcessor(assistant, store, p);
 	}
-	
+
 	/**
 	 * Tells this processor to restrict its proposal to those element
 	 * visible in the actual invocation context.
-	 * 
+	 *
 	 * @param restrict <code>true</code> if proposals should be restricted
 	 */
 	private static void restrictProposalsToVisibility(boolean restrict) {
@@ -211,17 +211,17 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Tells this processor to restrict is proposals to those
 	 * starting with matching cases.
-	 * 
+	 *
 	 * @param restrict <code>true</code> if proposals should be restricted
 	 */
 	private static void restrictProposalsToMatchingCases(boolean restrict) {
 		// XXX not yet supported
 	}
-	
+
 	private static IPreferenceStore getPreferenceStore() {
 		return PreferenceConstants.getPreferenceStore();
 	}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIDebugUIPlugin.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIDebugUIPlugin.java
index 23b4675..36d112b 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIDebugUIPlugin.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIDebugUIPlugin.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui;
 
- 
+
 import java.lang.reflect.InvocationTargetException;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -108,37 +108,37 @@
 	 * for the JDI Debug plug-in.
 	 */
 	private static final String PI_JDI_DEBUG = "org.eclipse.jdt.debug.ui"; //$NON-NLS-1$
-	
+
 	/**
 	 * Id for inspect command.
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	public static final String COMMAND_INSPECT = "org.eclipse.jdt.debug.ui.commands.Inspect"; //$NON-NLS-1$
-	
+
 	/**
 	 * Java Debug UI plug-in instance
 	 */
 	private static JDIDebugUIPlugin fgPlugin;
-	
+
 	private IDocumentProvider fSnippetDocumentProvider;
-	
+
 	private ImageDescriptorRegistry fImageDescriptorRegistry;
-	
+
 	private ActionFilterAdapterFactory fActionFilterAdapterFactory;
 	private JavaSourceLocationWorkbenchAdapterFactory fSourceLocationAdapterFactory;
 	private JavaBreakpointWorkbenchAdapterFactory fBreakpointAdapterFactory;
-	
+
 	private IDebugModelPresentation fUtilPresentation;
-	
+
 	/**
 	 * Java Debug UI listeners
 	 */
 	private IJavaHotCodeReplaceListener fHCRListener;
-	
+
 	// Map of VMInstallTypeIDs to IConfigurationElements
 	protected Map<String, IConfigurationElement> fVmInstallTypePageMap;
-	
+
 	/**
 	 * Whether this plugin is in the process of shutting
 	 * down.
@@ -149,7 +149,7 @@
 	 * Singleton text tools for debug plug-in.
 	 */
 	private JavaTextTools fTextTools = null;
-	
+
 	/**
 	 * @see Plugin()
 	 */
@@ -157,44 +157,44 @@
 		super();
 		setDefault(this);
 	}
-	
+
 	/**
 	 * Sets the Java Debug UI plug-in instance
-	 * 
+	 *
 	 * @param plugin the plugin instance
 	 */
 	private static void setDefault(JDIDebugUIPlugin plugin) {
 		fgPlugin = plugin;
 	}
-	
+
 	/**
 	 * Returns the Java Debug UI plug-in instance
-	 * 
+	 *
 	 * @return the Java Debug UI plug-in instance
 	 */
 	public static JDIDebugUIPlugin getDefault() {
 		return fgPlugin;
 	}
-	
+
 	/**
 	 * Convenience method which returns the unique identifier of this plugin.
 	 */
 	public static String getUniqueIdentifier() {
 		return PI_JDI_DEBUG;
 	}
-	
+
 	/**
 	 * Logs the specified status with this plug-in's log.
-	 * 
+	 *
 	 * @param status status to log
 	 */
 	public static void log(IStatus status) {
 		getDefault().getLog().log(status);
 	}
-	
+
 	/**
 	 * Logs an internal error with the specified message.
-	 * 
+	 *
 	 * @param message the error message to log
 	 */
 	public static void logErrorMessage(String message) {
@@ -203,22 +203,22 @@
 
 	/**
 	 * Logs an internal error with the specified throwable
-	 * 
+	 *
 	 * @param e the exception to be logged
-	 */	
+	 */
 	public static void log(Throwable e) {
 		log(new Status(IStatus.ERROR, getUniqueIdentifier(), IJavaDebugUIConstants.INTERNAL_ERROR, "Internal Error", e));   //$NON-NLS-1$
 	}
-	
+
 	/**
 	 * Returns the active workbench window
-	 * 
+	 *
 	 * @return the active workbench window
 	 */
 	public static IWorkbenchWindow getActiveWorkbenchWindow() {
 		return getDefault().getWorkbench().getActiveWorkbenchWindow();
-	}	
-	
+	}
+
 	public static IWorkbenchPage getActivePage() {
 		IWorkbenchWindow w = getActiveWorkbenchWindow();
 		if (w != null) {
@@ -226,11 +226,11 @@
 		}
 		return null;
 	}
-	
-	
+
+
 	/**
 	 * Returns the active workbench shell or <code>null</code> if none
-	 * 
+	 *
 	 * @return the active workbench shell or <code>null</code> if none
 	 */
 	public static Shell getActiveWorkbenchShell() {
@@ -239,23 +239,23 @@
 			return window.getShell();
 		}
 		return null;
-	}	
-	
+	}
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#createImageRegistry()
 	 */
 	@Override
 	protected ImageRegistry createImageRegistry() {
 		return JavaDebugImages.getImageRegistry();
-	}	
-	
+	}
+
 	public IDocumentProvider getSnippetDocumentProvider() {
 		if (fSnippetDocumentProvider == null) {
 			fSnippetDocumentProvider= new SnippetFileDocumentProvider();
 		}
 		return fSnippetDocumentProvider;
 	}
-	
+
 	public static void statusDialog(IStatus status) {
 		switch (status.getSeverity()) {
 		case IStatus.ERROR:
@@ -267,7 +267,7 @@
 		case IStatus.INFO:
 			statusDialog(DebugUIMessages.JDIDebugUIPlugin_4, status);
 			break;
-		}		
+		}
 	}
 	public static void statusDialog(String title, IStatus status) {
 		Shell shell = getActiveWorkbenchShell();
@@ -283,13 +283,13 @@
 				MessageDialog.openInformation(shell, title, status.getMessage());
 				break;
 			}
-		}		
+		}
 	}
-		
+
 	/**
 	 * Creates a new internal error status with the specified message and throwable, then displays
 	 * it in a status dialog.
-	 * 
+	 *
 	 * @param message error message
 	 * @param t throwable cause or <code>null</code>
 	 */
@@ -297,7 +297,7 @@
 		IStatus status= new Status(IStatus.ERROR, getUniqueIdentifier(), IJavaDebugUIConstants.INTERNAL_ERROR, message, t);
 		statusDialog(status);
 	}
-	
+
 	/**
 	 * Opens an error dialog with the given title and message.
 	 */
@@ -316,7 +316,7 @@
 		}
 		ErrorDialog.openError(shell, title, message, status);
 	}
-	
+
 	/**
 	 * Creates an extension.  If the extension plugin has not
 	 * been loaded a busy cursor will be activated during the duration of
@@ -333,7 +333,7 @@
 		if (bundle.getState() == Bundle.ACTIVE) {
 			return element.createExecutableExtension(classAttribute);
 		}
-		
+
 		final Object [] ret = new Object[1];
 		final CoreException [] exc = new CoreException[1];
 		BusyIndicator.showWhile(null, new Runnable() {
@@ -350,8 +350,8 @@
 			throw exc[0];
 		}
 		return ret[0];
-	}	
-	
+	}
+
 	/* (non-Javadoc)
 	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
 	 */
@@ -371,7 +371,7 @@
 		manager.registerAdapters(fBreakpointAdapterFactory, IJavaBreakpoint.class);
         IAdapterFactory typeFactory = new JavaBreakpointTypeAdapterFactory();
         manager.registerAdapters(typeFactory, IJavaBreakpoint.class);
-        
+
         IAdapterFactory monitorFactory = new MonitorsAdapterFactory();
         manager.registerAdapters(monitorFactory, IJavaThread.class);
         manager.registerAdapters(monitorFactory, JavaContendedMonitor.class);
@@ -379,34 +379,34 @@
         manager.registerAdapters(monitorFactory, JavaOwningThread.class);
         manager.registerAdapters(monitorFactory, JavaWaitingThread.class);
         manager.registerAdapters(monitorFactory, IJavaStackFrame.class);
-        
+
         IAdapterFactory targetFactory = new TargetAdapterFactory();
         manager.registerAdapters(targetFactory, IJavaDebugTarget.class);
-             
+
         IAdapterFactory groupFactory = new ThreadGroupAdapterFactory();
         manager.registerAdapters(groupFactory, IJavaThreadGroup.class);
-        
+
         IAdapterFactory showInFactory = new JavaDebugShowInAdapterFactory();
         manager.registerAdapters(showInFactory, IJavaStackFrame.class);
-        
+
         IAdapterFactory columnFactory = new ColumnPresentationAdapterFactory();
         manager.registerAdapters(columnFactory, IJavaVariable.class);
         manager.registerAdapters(columnFactory, IJavaStackFrame.class);
-        
+
         IAdapterFactory entryFactory = new ClasspathEntryAdapterFactory();
         manager.registerAdapters(entryFactory, DefaultProjectClasspathEntry.class);
-        
+
         IAdapterFactory variableFactory = new JavaDebugElementAdapterFactory();
         manager.registerAdapters(variableFactory, IJavaVariable.class);
         manager.registerAdapters(variableFactory, IJavaValue.class);
         manager.registerAdapters(variableFactory, JavaInspectExpression.class);
-        
+
 		fHCRListener= new JavaHotCodeReplaceListener();
 		JDIDebugModel.addHotCodeReplaceListener(fHCRListener);
-		
+
 		// initialize exception inspector handler
 		new ExceptionInspector();
-		
+
 		ResourcesPlugin.getWorkspace().addSaveParticipant(getUniqueIdentifier(), new ISaveParticipant() {
 			@Override
 			public void doneSaving(ISaveContext sc) {}
@@ -429,7 +429,7 @@
 		});
 		JavaDebugOptionsManager.getDefault().startup();
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
 	 */
@@ -448,7 +448,7 @@
 			manager.unregisterAdapters(fBreakpointAdapterFactory);
 			if (fUtilPresentation != null) {
 				fUtilPresentation.dispose();
-			} 
+			}
 			if (fTextTools != null) {
 				fTextTools.dispose();
 			}
@@ -457,7 +457,7 @@
 			super.stop(context);
 		}
 	}
-	
+
 	/**
 	 * Returns whether this plug-in is in the process of
 	 * being shutdown.
@@ -479,7 +479,7 @@
 	private void setShuttingDown(boolean value) {
 		fShuttingDown = value;
 	}
-	
+
 	/**
 	 * Returns the image descriptor registry used for this plugin.
 	 */
@@ -489,7 +489,7 @@
 		}
 		return getDefault().fImageDescriptorRegistry;
 	}
-	
+
 	/**
 	 * Returns the standard display to be used. The method first checks, if
 	 * the thread calling this method has an associated display. If so, this
@@ -501,13 +501,13 @@
 		if (display == null) {
 			display= Display.getDefault();
 		}
-		return display;		
+		return display;
 	}
-	
+
 	/**
 	 * Returns the currently active workbench window shell or <code>null</code>
 	 * if none.
-	 * 
+	 *
 	 * @return the currently active workbench window shell or <code>null</code>
 	 */
 	public static Shell getShell() {
@@ -517,13 +517,13 @@
 			if (windows.length > 0) {
 				return windows[0].getShell();
 			}
-		} 
+		}
 		else {
 			return window.getShell();
 		}
 		return null;
-	}	
-	
+	}
+
 	/**
 	 * Utility method to create and return a selection dialog that allows
 	 * selection of a specific Java package.  Empty packages are not returned.
@@ -532,7 +532,7 @@
 	 * workspace are considered.
 	 */
 	public static ElementListSelectionDialog createAllPackagesDialog(Shell shell, IJavaProject[] originals, final boolean includeDefaultPackage) throws JavaModelException{
-		final List<IPackageFragment> packageList = new ArrayList<IPackageFragment>();
+		final List<IPackageFragment> packageList = new ArrayList<>();
 		if (originals == null) {
 			IWorkspaceRoot wsroot= ResourcesPlugin.getWorkspace().getRoot();
 			IJavaModel model= JavaCore.create(wsroot);
@@ -545,10 +545,10 @@
 			@Override
 			public void run(IProgressMonitor monitor) {
 				try {
-					Set<String> packageNameSet= new HashSet<String>();
-					monitor.beginTask(DebugUIMessages.JDIDebugUIPlugin_Searching_1, projects.length); 
-					for (int i = 0; i < projects.length; i++) {						
-						IPackageFragment[] pkgs= projects[i].getPackageFragments();	
+					Set<String> packageNameSet= new HashSet<>();
+					monitor.beginTask(DebugUIMessages.JDIDebugUIPlugin_Searching_1, projects.length);
+					for (int i = 0; i < projects.length; i++) {
+						IPackageFragment[] pkgs= projects[i].getPackageFragments();
 						for (int j = 0; j < pkgs.length; j++) {
 							if (monitor.isCanceled()) {
 								monitorCanceled[0] = true;
@@ -587,20 +587,20 @@
 		if (monitorCanceled[0]) {
 			return null;
 		}
-		
+
 		int flags= JavaElementLabelProvider.SHOW_DEFAULT;
 		PackageSelectionDialog dialog= new PackageSelectionDialog(shell, new JavaElementLabelProvider(flags));
 		dialog.setIgnoreCase(false);
 		dialog.setElements(packageList.toArray()); // XXX inefficient
 		return dialog;
 	}
-	
+
 	/**
 	 * Return an object that implements <code>ILaunchConfigurationTab</code> for the
-	 * specified vm install type ID.  
+	 * specified vm install type ID.
 	 */
 	public ILaunchConfigurationTab getVMInstallTypePage(String vmInstallTypeID) {
-		if (fVmInstallTypePageMap == null) {	
+		if (fVmInstallTypePageMap == null) {
 			initializeVMInstallTypePageMap();
 		}
 		IConfigurationElement configElement = fVmInstallTypePageMap.get(vmInstallTypeID);
@@ -608,28 +608,28 @@
 		if (configElement != null) {
 			try {
 				tab = (ILaunchConfigurationTab) configElement.createExecutableExtension("class"); //$NON-NLS-1$
-			} catch(CoreException ce) {			 
+			} catch(CoreException ce) {
 				log(new Status(IStatus.ERROR, getUniqueIdentifier(), IJavaDebugUIConstants.INTERNAL_ERROR, "An error occurred retrieving a VMInstallType page.", ce));  //$NON-NLS-1$
-			} 
+			}
 		}
 		return tab;
 	}
-	
+
 	protected void initializeVMInstallTypePageMap() {
-		fVmInstallTypePageMap = new HashMap<String, IConfigurationElement>(10);
+		fVmInstallTypePageMap = new HashMap<>(10);
 
 		IExtensionPoint extensionPoint= Platform.getExtensionRegistry().getExtensionPoint(getUniqueIdentifier(), IJavaDebugUIConstants.EXTENSION_POINT_VM_INSTALL_TYPE_PAGE);
 		IConfigurationElement[] infos= extensionPoint.getConfigurationElements();
 		for (int i = 0; i < infos.length; i++) {
 			String id = infos[i].getAttribute("vmInstallTypeID"); //$NON-NLS-1$
 			fVmInstallTypePageMap.put(id, infos[i]);
-		}		
+		}
 	}
-	
+
 	/**
 	 * Returns a shared utility Java debug model presentation. Clients should not
 	 * dispose the presentation.
-	 * 
+	 *
 	 * @return a Java debug model presentation
 	 */
 	public IDebugModelPresentation getModelPresentation() {
@@ -638,10 +638,10 @@
 		}
 		return fUtilPresentation;
 	}
-	
+
 	/**
 	 * Displays the given preference page.
-	 * 
+	 *
 	 * @param id pref page id
 	 * @param page pref page
 	 * @deprecated use <code>JDIDebugUIPlugin#showPreferencePage(String pageId)</code>, which uses the <code>PreferenceUtils</code> framework for opening pages.
@@ -649,7 +649,7 @@
 	@Deprecated
 	public static void showPreferencePage(String id, IPreferencePage page) {
 		final IPreferenceNode targetNode = new PreferenceNode(id, page);
-		
+
 		PreferenceManager manager = new PreferenceManager();
 		manager.addToRoot(targetNode);
 		final PreferenceDialog dialog = new PreferenceDialog(JDIDebugUIPlugin.getActiveWorkbenchShell(), manager);
@@ -661,22 +661,22 @@
 				dialog.setMessage(targetNode.getLabelText());
 				result[0]= (dialog.open() == Window.OK);
 			}
-		});		
-	}	
-	
+		});
+	}
+
 	/**
 	 * Displays the given preference page
 	 * @param pageId the fully qualified id of the preference page, e.g. <code>org.eclipse.jdt.debug.ui.preferences.VMPreferencePage</code>
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	public static void showPreferencePage(String pageId) {
 		PreferencesUtil.createPreferenceDialogOn(getShell(), pageId, new String[] { pageId }, null).open();
 	}
-	
+
 	/**
 	 * Returns the text tools used by this plug-in
-	 * 
+	 *
 	 * @return
 	 */
 	public JavaTextTools getJavaTextTools() {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIDebugUIPreferenceInitializer.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIDebugUIPreferenceInitializer.java
index 02f283d..4d279fd 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIDebugUIPreferenceInitializer.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIDebugUIPreferenceInitializer.java
@@ -26,7 +26,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
 	 */
 	@Override
@@ -41,12 +41,12 @@
 		store.setDefault(IJDIPreferencesConstants.PREF_PROMPT_DELETE_CONDITIONAL_BREAKPOINT, true);
 
 		store.setDefault(IJDIPreferencesConstants.PREF_SHOW_QUALIFIED_NAMES, false);
-		
+
 		// JavaStepFilterPreferencePage
 		store.setDefault(IJDIPreferencesConstants.PREF_ACTIVE_FILTERS_LIST, "java.lang.ClassLoader"); //$NON-NLS-1$
 		store.setDefault(IJDIPreferencesConstants.PREF_INACTIVE_FILTERS_LIST, "com.ibm.*,com.sun.*,java.*,javax.*,jrockit.*,org.omg.*,sun.*,sunw.*"); //$NON-NLS-1$
 		store.setDefault(IJDIPreferencesConstants.PREF_STEP_THRU_FILTERS, true);
-		
+
 		store.setDefault(IDebugUIConstants.ID_VARIABLE_VIEW + "." + IJDIPreferencesConstants.PREF_SHOW_CONSTANTS, false); //$NON-NLS-1$
 		store.setDefault(IDebugUIConstants.ID_EXPRESSION_VIEW + "." + IJDIPreferencesConstants.PREF_SHOW_CONSTANTS, false); //$NON-NLS-1$
 		store.setDefault(IDebugUIConstants.ID_VARIABLE_VIEW + "." + IJDIPreferencesConstants.PREF_SHOW_STATIC_VARIABLES, false); //$NON-NLS-1$
@@ -57,7 +57,7 @@
 		store.setDefault(IJDIPreferencesConstants.PREF_SHOW_UNSIGNED, false);
 		store.setDefault(IJDIPreferencesConstants.PREF_SHOW_NULL_ARRAY_ENTRIES, true);
 		store.setDefault(IJDIPreferencesConstants.PREF_SHOW_DETAILS, IJDIPreferencesConstants.DETAIL_PANE);
-		
+
 		store.setDefault(IJavaDebugUIConstants.PREF_SHOW_SYSTEM_THREADS, false);
 		store.setDefault(IJavaDebugUIConstants.PREF_SHOW_MONITOR_THREAD_INFO, true);
 		store.setDefault(IJavaDebugUIConstants.PREF_SHOW_THREAD_GROUPS, false);
@@ -65,10 +65,10 @@
 		store.setDefault(IJavaDebugUIConstants.PREF_ALLINSTANCES_MAX_COUNT, 100);
 		store.setDefault(IJavaDebugUIConstants.PREF_ALLREFERENCES_MAX_COUNT, 100);
 	}
-	
+
 	/**
 	 * Returns the boolean value from the given property change event.
-	 * 
+	 *
 	 * @param event property change event
 	 * @return new boolean value from the event
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIImageDescriptor.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIImageDescriptor.java
index e42400f..eefa81b 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIImageDescriptor.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIImageDescriptor.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2016 IBM Corporation and others.
+ * Copyright (c) 2000, 2017 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -13,7 +13,6 @@
 
 import org.eclipse.jface.resource.CompositeImageDescriptor;
 import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.ImageData;
 import org.eclipse.swt.graphics.Point;
 
 /**
@@ -21,7 +20,7 @@
  * are computed according to flags set on creation of the descriptor.
  */
 public class JDIImageDescriptor extends CompositeImageDescriptor {
-	
+
 	/** Flag to render the is out of synch adornment */
 	public final static int IS_OUT_OF_SYNCH= 			0x0001;
 	/** Flag to render the may be out of synch adornment */
@@ -42,7 +41,7 @@
 	public final static int UNCAUGHT=					0x0100;
 	/** Flag to render the scoped breakpoint adornment */
 	public final static int SCOPED=						0x0200;
-	
+
 	/** Flag to render the owning a monitor thread adornment */
 	public final static int OWNS_MONITOR=				0x0400;
 	/** Flag to render the owned monitor adornment */
@@ -53,7 +52,7 @@
 	public final static int IN_CONTENTION_FOR_MONITOR=	0x2000;
 	/** Flag to render the in deadlock adornment */
 	public final static int IN_DEADLOCK= 				0x8000;
-	
+
 	/** Flag to render the synchronized stack frame adornment */
 	public final static int SYNCHRONIZED=				0x4000;
 
@@ -66,31 +65,31 @@
 	private ImageDescriptor fBaseImage;
 	private int fFlags;
 	private Point fSize;
-	
+
 	/**
 	 * Create a new JDIImageDescriptor.
-	 * 
+	 *
 	 * @param baseImage an image descriptor used as the base image
 	 * @param flags flags indicating which adornments are to be rendered
-	 * 
+	 *
 	 */
 	public JDIImageDescriptor(ImageDescriptor baseImage, int flags) {
 		setBaseImage(baseImage);
 		setFlags(flags);
 	}
-	
+
 	/**
 	 * @see CompositeImageDescriptor#getSize()
 	 */
 	@Override
 	protected Point getSize() {
 		if (fSize == null) {
-			ImageData data= getBaseImage().getImageData();
-			setSize(new Point(data.width, data.height));
+			CachedImageDataProvider provider = createCachedImageDataProvider(getBaseImage());
+			setSize(new Point(provider.getWidth(), provider.getHeight()));
 		}
 		return fSize;
 	}
-	
+
 	/**
 	 * @see Object#equals(java.lang.Object)
 	 */
@@ -99,11 +98,11 @@
 		if (!(object instanceof JDIImageDescriptor)){
 			return false;
 		}
-			
+
 		JDIImageDescriptor other= (JDIImageDescriptor)object;
 		return (getBaseImage().equals(other.getBaseImage()) && getFlags() == other.getFlags());
 	}
-	
+
 	/**
 	 * @see Object#hashCode()
 	 */
@@ -111,185 +110,181 @@
 	public int hashCode() {
 		return getBaseImage().hashCode() | getFlags();
 	}
-	
+
 	/**
 	 * @see CompositeImageDescriptor#drawCompositeImage(int, int)
 	 */
 	@Override
 	protected void drawCompositeImage(int width, int height) {
-		ImageData bg= getBaseImage().getImageData();
-		if (bg == null) {
-			bg= DEFAULT_IMAGE_DATA;
-		}
-		drawImage(bg, 0, 0);
+		drawImage(createCachedImageDataProvider(getBaseImage()), 0, 0);
 		drawOverlays();
 	}
 
-	private ImageData getImageData(String imageDescriptorKey) {
-		return JavaDebugImages.getImageDescriptor(imageDescriptorKey).getImageData();
+	private ImageDescriptor getImageDescriptor(String imageDescriptorKey) {
+		return JavaDebugImages.getImageDescriptor(imageDescriptorKey);
 	}
 	/**
 	 * Add any overlays to the image as specified in the flags.
 	 */
 	protected void drawOverlays() {
-		int flags= getFlags();
-		int x= 0;
-		int y= 0;
-		ImageData data= null;
+		int flags = getFlags();
+		int x = 0;
+		int y = 0;
+		CachedImageDataProvider provider;
 		if ((flags & IS_OUT_OF_SYNCH) != 0) {
-			x= getSize().x;
-			y= 0;
-			data= getImageData(JavaDebugImages.IMG_OVR_OUT_OF_SYNCH);
-			x -= data.width;
-			drawImage(data, x, y);
+			x = getSize().x;
+			y = 0;
+			provider = createCachedImageDataProvider(getImageDescriptor(JavaDebugImages.IMG_OVR_OUT_OF_SYNCH));
+			x -= provider.getWidth();
+			drawImage(provider, x, y);
 		} else if ((flags & MAY_BE_OUT_OF_SYNCH) != 0) {
-			x= getSize().x;
-			y= 0;
-			data= getImageData(JavaDebugImages.IMG_OVR_MAY_BE_OUT_OF_SYNCH);
-			x -= data.width;
-			drawImage(data, x, y);
+			x = getSize().x;
+			y = 0;
+			provider = createCachedImageDataProvider(getImageDescriptor(JavaDebugImages.IMG_OVR_MAY_BE_OUT_OF_SYNCH));
+			x -= provider.getWidth();
+			drawImage(provider, x, y);
 		} else if ((flags & SYNCHRONIZED) != 0) {
-			x= getSize().x;
-			y= 0;
-			data= getImageData(JavaDebugImages.IMG_OVR_SYNCHRONIZED);
-			x -= data.width;
-			drawImage(data, x, y);
+			x = getSize().x;
+			y = 0;
+			provider = createCachedImageDataProvider(getImageDescriptor(JavaDebugImages.IMG_OVR_SYNCHRONIZED));
+			x -= provider.getWidth();
+			drawImage(provider, x, y);
 		} else {
 			if ((flags & IN_DEADLOCK) != 0) {
-				x= 0;
-				y= 0;
-				data= getImageData(JavaDebugImages.IMG_OVR_IN_DEADLOCK);
-				drawImage(data, x, y);
+				x = 0;
+				y = 0;
+				provider = createCachedImageDataProvider(getImageDescriptor(JavaDebugImages.IMG_OVR_IN_DEADLOCK));
+				drawImage(provider, x, y);
 			}
 			if ((flags & TRIGGER_POINT) != 0) {
 				x = getSize().x;
 				y = getSize().y;
-				data = getImageData(JavaDebugImages.IMG_OVR_IN_TRIGGER_POINT);
-				x -= data.width;
-				y -= data.height;
-				drawImage(data, x, y);
+				provider = createCachedImageDataProvider(getImageDescriptor(JavaDebugImages.IMG_OVR_IN_TRIGGER_POINT));
+				x -= provider.getWidth();
+				y -= provider.getHeight();
+				drawImage(provider, x, y);
 			} else if ((flags & TRIGGER_SUPPRESSED) != 0) {
 				x = getSize().x;
 				y = getSize().y;
-				data = getImageData(JavaDebugImages.IMG_OVR_TRIGGER_SUPPRESSED);
-				x -= data.width;
-				y -= data.height;
-				drawImage(data, x, y);
+				provider = createCachedImageDataProvider(getImageDescriptor(JavaDebugImages.IMG_OVR_TRIGGER_SUPPRESSED));
+				x -= provider.getWidth();
+				y -= provider.getHeight();
+				drawImage(provider, x, y);
 			}
 			if ((flags & OWNED_MONITOR) != 0) {
-				x= getSize().x;
-				y= getSize().y;
-				data= getImageData(JavaDebugImages.IMG_OVR_OWNED);
-				x -= data.width;
-				y -= data.height;
-				drawImage(data, x, y);
+				x = getSize().x;
+				y = getSize().y;
+				provider = createCachedImageDataProvider(getImageDescriptor(JavaDebugImages.IMG_OVR_OWNED));
+				x -= provider.getWidth();
+				y -= provider.getHeight();
+				drawImage(provider, x, y);
 			} else if ((flags & CONTENTED_MONITOR) != 0) {
-				x= getSize().x;
-				y= getSize().y;
-				data= getImageData(JavaDebugImages.IMG_OVR_IN_CONTENTION);
-				x -= data.width;
-				y -= data.height;
-				drawImage(data, x, y);
+				x = getSize().x;
+				y = getSize().y;
+				provider = createCachedImageDataProvider(getImageDescriptor(JavaDebugImages.IMG_OVR_IN_CONTENTION));
+				x -= provider.getWidth();
+				y -= provider.getHeight();
+				drawImage(provider, x, y);
 			} else if ((flags & OWNS_MONITOR) != 0) {
-				x= getSize().x;
-				y= 0;
-				data= getImageData(JavaDebugImages.IMG_OVR_OWNS_MONITOR);
-				x -= data.width;
-				drawImage(data, x, y);
+				x = getSize().x;
+				y = 0;
+				provider = createCachedImageDataProvider(getImageDescriptor(JavaDebugImages.IMG_OVR_OWNS_MONITOR));
+				x -= provider.getWidth();
+				drawImage(provider, x, y);
 			} else if ((flags & IN_CONTENTION_FOR_MONITOR) != 0) {
-				x= getSize().x;
-				y= 0;
-				data= getImageData(JavaDebugImages.IMG_OVR_IN_CONTENTION_FOR_MONITOR);
-				x -= data.width;
-				drawImage(data, x, y);
+				x = getSize().x;
+				y = 0;
+				provider = createCachedImageDataProvider(getImageDescriptor(JavaDebugImages.IMG_OVR_IN_CONTENTION_FOR_MONITOR));
+				x -= provider.getWidth();
+				drawImage(provider, x, y);
 			} else {
 				drawBreakpointOverlays();
 			}
 		}
 	}
-	
+
 	protected void drawBreakpointOverlays() {
 		int flags= getFlags();
 		int x= 0;
 		int y= 0;
-		ImageData data= null;
+		CachedImageDataProvider provider;
 		if ((flags & INSTALLED) != 0) {
 			x= 0;
 			y= getSize().y;
 			if ((flags & ENABLED) !=0) {
-				data= getImageData(JavaDebugImages.IMG_OVR_BREAKPOINT_INSTALLED);
+				provider = createCachedImageDataProvider(getImageDescriptor(JavaDebugImages.IMG_OVR_BREAKPOINT_INSTALLED));
 			} else {
-				data= getImageData(JavaDebugImages.IMG_OVR_BREAKPOINT_INSTALLED_DISABLED);
+				provider = createCachedImageDataProvider(getImageDescriptor(JavaDebugImages.IMG_OVR_BREAKPOINT_INSTALLED_DISABLED));
 			}
-				
-			y -= data.height;
-			drawImage(data, x, y);
+
+			y -= provider.getHeight();
+			drawImage(provider, x, y);
 		}
 		if ((flags & CAUGHT) != 0) {
 			if ((flags & ENABLED) !=0) {
-			data= getImageData(JavaDebugImages.IMG_OVR_CAUGHT_BREAKPOINT);
+				provider = createCachedImageDataProvider(getImageDescriptor(JavaDebugImages.IMG_OVR_CAUGHT_BREAKPOINT));
 			} else {
-				data= getImageData(JavaDebugImages.IMG_OVR_CAUGHT_BREAKPOINT_DISABLED);
+				provider = createCachedImageDataProvider(getImageDescriptor(JavaDebugImages.IMG_OVR_CAUGHT_BREAKPOINT_DISABLED));
 			}
 			x= 0;
 			y= 0;
-			drawImage(data, x, y);
+			drawImage(provider, x, y);
 		}
 		if ((flags & UNCAUGHT) != 0) {
 			if ((flags & ENABLED) !=0) {
-				data= getImageData(JavaDebugImages.IMG_OVR_UNCAUGHT_BREAKPOINT);
+				provider = createCachedImageDataProvider(getImageDescriptor(JavaDebugImages.IMG_OVR_UNCAUGHT_BREAKPOINT));
 			} else {
-				data= getImageData(JavaDebugImages.IMG_OVR_UNCAUGHT_BREAKPOINT_DISABLED);
+				provider = createCachedImageDataProvider(getImageDescriptor(JavaDebugImages.IMG_OVR_UNCAUGHT_BREAKPOINT_DISABLED));
 			}
-			x= data.width;
-			y= data.height;
-			drawImage(data, x, y);
+			x = provider.getWidth();
+			y = provider.getHeight();
+			drawImage(provider, x, y);
 		}
 		if ((flags & SCOPED) != 0) {
 			if ((flags & ENABLED) !=0) {
-				data= getImageData(JavaDebugImages.IMG_OVR_SCOPED_BREAKPOINT);
+				provider = createCachedImageDataProvider(getImageDescriptor(JavaDebugImages.IMG_OVR_SCOPED_BREAKPOINT));
 			} else {
-				data= getImageData(JavaDebugImages.IMG_OVR_SCOPED_BREAKPOINT_DISABLED);
+				provider = createCachedImageDataProvider(getImageDescriptor(JavaDebugImages.IMG_OVR_SCOPED_BREAKPOINT_DISABLED));
 			}
 			x= 0;
 			y= getSize().y;
-			y-= data.height;
-			drawImage(data, x, y);
+			y -= provider.getHeight();
+			drawImage(provider, x, y);
 		}
 		if ((flags & CONDITIONAL) != 0) {
 			if ((flags & ENABLED) !=0) {
-				data= getImageData(JavaDebugImages.IMG_OVR_CONDITIONAL_BREAKPOINT);
+				provider = createCachedImageDataProvider(getImageDescriptor(JavaDebugImages.IMG_OVR_CONDITIONAL_BREAKPOINT));
 			} else {
-				data= getImageData(JavaDebugImages.IMG_OVR_CONDITIONAL_BREAKPOINT_DISABLED);
+				provider = createCachedImageDataProvider(getImageDescriptor(JavaDebugImages.IMG_OVR_CONDITIONAL_BREAKPOINT_DISABLED));
 			}
 			x= 0;
 			y= 0;
-			drawImage(data, x, y);
+			drawImage(provider, x, y);
 		}
 		if ((flags & ENTRY) != 0) {
 			x= getSize().x;
 			y= 0;
 			if ((flags & ENABLED) !=0) {
-				data= getImageData(JavaDebugImages.IMG_OVR_METHOD_BREAKPOINT_ENTRY);
+				provider = createCachedImageDataProvider(getImageDescriptor(JavaDebugImages.IMG_OVR_METHOD_BREAKPOINT_ENTRY));
 			} else {
-				data= getImageData(JavaDebugImages.IMG_OVR_METHOD_BREAKPOINT_ENTRY_DISABLED);
+				provider = createCachedImageDataProvider(getImageDescriptor(JavaDebugImages.IMG_OVR_METHOD_BREAKPOINT_ENTRY_DISABLED));
 			}
-			x -= data.width;
+			x -= provider.getWidth();
 			x = x - 2;
-			drawImage(data, x, y);
+			drawImage(provider, x, y);
 		}
 		if ((flags & EXIT)  != 0){
 			x= getSize().x;
 			y= getSize().y;
 			if ((flags & ENABLED) != 0) {
-				data= getImageData(JavaDebugImages.IMG_OVR_METHOD_BREAKPOINT_EXIT);
+				provider = createCachedImageDataProvider(getImageDescriptor(JavaDebugImages.IMG_OVR_METHOD_BREAKPOINT_EXIT));
 			} else {
-				data= getImageData(JavaDebugImages.IMG_OVR_METHOD_BREAKPOINT_EXIT_DISABLED);
+				provider = createCachedImageDataProvider(getImageDescriptor(JavaDebugImages.IMG_OVR_METHOD_BREAKPOINT_EXIT_DISABLED));
 			}
-			x -= data.width;
+			x -= provider.getWidth();
 			x = x - 2;
-			y -= data.height;
-			drawImage(data, x, y);
+			y -= provider.getHeight();
+			drawImage(provider, x, y);
 		}
 	}
 	protected ImageDescriptor getBaseImage() {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIModelPresentation.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIModelPresentation.java
index a632454..b7f7df0 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIModelPresentation.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIModelPresentation.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2016 IBM Corporation and others.
+ * Copyright (c) 2000, 2017 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -115,13 +115,13 @@
 	 * @see #setAttribute(String, Object)
 	 */
 	public final static String DISPLAY_QUALIFIED_NAMES= "DISPLAY_QUALIFIED_NAMES"; //$NON-NLS-1$
-		
-	protected HashMap<String, Object> fAttributes= new HashMap<String, Object>(3);
-	
+
+	protected HashMap<String, Object> fAttributes= new HashMap<>(3);
+
 	static final Point BIG_SIZE= new Point(16, 16);
-	
+
 	private static org.eclipse.jdt.internal.debug.ui.ImageDescriptorRegistry fgDebugImageRegistry;
-	
+
 	/**
 	 * Flag to indicate if image registry's referenced by this model presentation is initialized
 	 */
@@ -135,13 +135,13 @@
 	 * It is not officially supported and might be removed in the future.
 	 * */
 	private static final String BREAKPOINT_LABEL_SUFFIX = "JDT_BREAKPOINT_LABEL_SUFFIX"; //$NON-NLS-1$
-	
+
 	private JavaElementLabelProvider fJavaLabelProvider;
-	
+
 	public JDIModelPresentation() {
 		super();
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
 	 */
@@ -161,18 +161,18 @@
 	public void computeDetail(IValue value, IValueDetailListener listener) {
 		IJavaThread thread = getEvaluationThread((IJavaDebugTarget)value.getDebugTarget());
 		if (thread == null) {
-			listener.detailComputed(value, DebugUIMessages.JDIModelPresentation_no_suspended_threads); 
+			listener.detailComputed(value, DebugUIMessages.JDIModelPresentation_no_suspended_threads);
 		} else {
 			JavaDetailFormattersManager.getDefault().computeValueDetail((IJavaValue)value, thread, listener);
 		}
 	}
-	
+
 	/**
 	 * Returns a thread from the specified VM that can be
 	 * used for an evaluation or <code>null</code> if
 	 * none.
-	 * 
-	 * @param debug target the target in which a thread is 
+	 *
+	 * @param debug target the target in which a thread is
 	 * 	required
 	 * @return thread or <code>null</code>
 	 */
@@ -201,7 +201,7 @@
 		}
 		return thread;
 	}
-			
+
 	/**
 	 * @see IDebugModelPresentation#getText(Object)
 	 */
@@ -215,7 +215,7 @@
 				StringBuffer label= new StringBuffer(getStackFrameText((IStackFrame) item));
 				if (item instanceof IJavaStackFrame) {
 					if (((IJavaStackFrame)item).isOutOfSynch()) {
-						label.append(DebugUIMessages.JDIModelPresentation___out_of_synch__1); 
+						label.append(DebugUIMessages.JDIModelPresentation___out_of_synch__1);
 					}
 				}
 				return label.toString();
@@ -240,35 +240,35 @@
 			} else if (item instanceof JavaWaitingThread) {
 				return getJavaWaitingTreadText((JavaWaitingThread)item);
 			} else if (item instanceof NoMonitorInformationElement) {
-                return DebugUIMessages.JDIModelPresentation_5; 
+                return DebugUIMessages.JDIModelPresentation_5;
             } else {
 				StringBuffer label= new StringBuffer();
 				if (item instanceof IJavaThread) {
 					label.append(getThreadText((IJavaThread) item, showQualified));
 					if (((IJavaThread)item).isOutOfSynch()) {
-						label.append(DebugUIMessages.JDIModelPresentation___out_of_synch__1); 
+						label.append(DebugUIMessages.JDIModelPresentation___out_of_synch__1);
 					} else if (((IJavaThread)item).mayBeOutOfSynch()) {
-						label.append(DebugUIMessages.JDIModelPresentation___may_be_out_of_synch__2); 
+						label.append(DebugUIMessages.JDIModelPresentation___may_be_out_of_synch__2);
 					}
 				} else if (item instanceof IJavaDebugTarget) {
 					label.append(getDebugTargetText((IJavaDebugTarget) item));
 					if (((IJavaDebugTarget)item).isOutOfSynch()) {
-						label.append(DebugUIMessages.JDIModelPresentation___out_of_synch__1); 
+						label.append(DebugUIMessages.JDIModelPresentation___out_of_synch__1);
 					} else if (((IJavaDebugTarget)item).mayBeOutOfSynch()) {
-						label.append(DebugUIMessages.JDIModelPresentation___may_be_out_of_synch__2); 
+						label.append(DebugUIMessages.JDIModelPresentation___may_be_out_of_synch__2);
 					}
 				} else if (item instanceof IJavaValue) {
 					label.append(getValueText((IJavaValue) item));
 				}
 				if (item instanceof ITerminate) {
 					if (((ITerminate) item).isTerminated()) {
-						label.insert(0, DebugUIMessages.JDIModelPresentation__terminated__2); 
+						label.insert(0, DebugUIMessages.JDIModelPresentation__terminated__2);
 						return label.toString();
 					}
 				}
 				if (item instanceof IDisconnect) {
 					if (((IDisconnect) item).isDisconnected()) {
-						label.insert(0, DebugUIMessages.JDIModelPresentation__disconnected__4); 
+						label.insert(0, DebugUIMessages.JDIModelPresentation__disconnected__4);
 						return label.toString();
 					}
 				}
@@ -277,31 +277,31 @@
 				}
 			}
 		} catch (CoreException e) {
-			return DebugUIMessages.JDIModelPresentation__not_responding__6; 
+			return DebugUIMessages.JDIModelPresentation__not_responding__6;
 		}
 		return null;
 	}
 
 	private String getJavaOwningTreadText(JavaOwningThread thread) throws CoreException {
-		return getFormattedString(DebugUIMessages.JDIModelPresentation_0, getThreadText(thread.getThread().getThread(), isShowQualifiedNames())); 
+		return getFormattedString(DebugUIMessages.JDIModelPresentation_0, getThreadText(thread.getThread().getThread(), isShowQualifiedNames()));
 	}
 
 	private String getJavaWaitingTreadText(JavaWaitingThread thread) throws CoreException {
-		return getFormattedString(DebugUIMessages.JDIModelPresentation_1, getThreadText(thread.getThread().getThread(), isShowQualifiedNames())); 
+		return getFormattedString(DebugUIMessages.JDIModelPresentation_1, getThreadText(thread.getThread().getThread(), isShowQualifiedNames()));
 	}
 
 	private String getJavaContendedMonitorText(JavaContendedMonitor monitor) throws DebugException {
-		return getFormattedString(DebugUIMessages.JDIModelPresentation_2, getValueText(monitor.getMonitor().getMonitor())); 
+		return getFormattedString(DebugUIMessages.JDIModelPresentation_2, getValueText(monitor.getMonitor().getMonitor()));
 	}
 
 	private String getJavaOwnedMonitorText(JavaOwnedMonitor monitor) throws DebugException {
-		return getFormattedString(DebugUIMessages.JDIModelPresentation_3, getValueText(monitor.getMonitor().getMonitor())); 
+		return getFormattedString(DebugUIMessages.JDIModelPresentation_3, getValueText(monitor.getMonitor().getMonitor()));
 	}
 
 	protected IBreakpoint getBreakpoint(IMarker marker) {
 		return DebugPlugin.getDefault().getBreakpointManager().getBreakpoint(marker);
 		}
-	
+
 	/**
 	 * Build the text for an IJavaThread.
 	 */
@@ -317,7 +317,7 @@
 		}
 		if (thread.isTerminated()) {
 			key.append("terminated"); //$NON-NLS-1$
-			args = new String[] {thread.getName()}; 
+			args = new String[] {thread.getName()};
 		} else if (thread.isStepping()) {
 			key.append("stepping"); //$NON-NLS-1$
 			args = new String[] {thread.getName()};
@@ -354,7 +354,7 @@
 						String message = problem.getAttribute(IMarker.MESSAGE, DebugUIMessages.JDIModelPresentation_Compilation_error_1);
 						args = new String[] {thread.getName(), message};
 					}
-				}			
+				}
 				// check args == null in case the exception is a compilation error
 				if (breakpoint instanceof IJavaExceptionBreakpoint && args == null) {
 					key.append("_exception"); //$NON-NLS-1$
@@ -399,10 +399,10 @@
 					}
 				} else if (breakpoint instanceof IJavaClassPrepareBreakpoint) {
 					key.append("_classprepare"); //$NON-NLS-1$
-					args = new String[]{thread.getName(), getQualifiedName(breakpoint.getTypeName())}; 
+					args = new String[]{thread.getName(), getQualifiedName(breakpoint.getTypeName())};
 				}
 			}
-	
+
 			if (args == null) {
 				// Otherwise, it's just suspended
 				args =  new String[] {thread.getName()};
@@ -428,14 +428,14 @@
 	protected String getDebugTargetText(IJavaDebugTarget debugTarget) throws DebugException {
 		String labelString= debugTarget.getName();
 		if (debugTarget.isSuspended()) {
-			labelString += DebugUIMessages.JDIModelPresentation_target_suspended; 
+			labelString += DebugUIMessages.JDIModelPresentation_target_suspended;
 		}
 		return labelString;
 	}
 
 	/**
 	 * Build the text for an IJavaValue.
-	 * 
+	 *
 	 * @param value the value to get the text for
 	 * @return the value string
 	 * @throws DebugException if something happens trying to compute the value string
@@ -450,7 +450,7 @@
 			signature= type.getSignature();
 		}
 		if ("V".equals(signature)) { //$NON-NLS-1$
-			valueString= DebugUIMessages.JDIModelPresentation__No_explicit_return_value__30; 
+			valueString= DebugUIMessages.JDIModelPresentation__No_explicit_return_value__30;
 		}
 		boolean isObject= isObjectValue(signature);
 		boolean isArray= value instanceof IJavaArray;
@@ -468,7 +468,7 @@
 				buffer.append(' ');
 			}
 		}
-		
+
 		// Put double quotes around Strings
 		if (valueString != null && (isString || valueString.length() > 0)) {
 			if (isString) {
@@ -479,12 +479,12 @@
 				buffer.append('"');
 				if(value instanceof IJavaObject){
 					buffer.append(" "); //$NON-NLS-1$
-					buffer.append(NLS.bind(DebugUIMessages.JDIModelPresentation_118, new String[]{String.valueOf(((IJavaObject)value).getUniqueId())})); 
+					buffer.append(NLS.bind(DebugUIMessages.JDIModelPresentation_118, new String[]{String.valueOf(((IJavaObject)value).getUniqueId())}));
 				}
 			}
-			
+
 		}
-		
+
 		// show unsigned value second, if applicable
 		if (isShowUnsignedValues()) {
 			buffer= appendUnsignedText(value, buffer);
@@ -499,7 +499,7 @@
 		}
 		return buffer.toString().trim();
 	}
-	
+
 	private StringBuffer appendUnsignedText(IJavaValue value, StringBuffer buffer) throws DebugException {
 		String unsignedText= getValueUnsignedText(value);
 		if (unsignedText != null) {
@@ -507,33 +507,33 @@
 			buffer.append(unsignedText);
 			buffer.append("]"); //$NON-NLS-1$
 		}
-		return buffer;	
+		return buffer;
 	}
-		
+
 	protected StringBuffer appendHexText(IJavaValue value, StringBuffer buffer) throws DebugException {
 		String hexText = getValueHexText(value);
 		if (hexText != null) {
 			buffer.append(" ["); //$NON-NLS-1$
 			buffer.append(hexText);
 			buffer.append("]"); //$NON-NLS-1$
-		}		
+		}
 		return buffer;
 	}
-	
+
 	protected StringBuffer appendCharText(IJavaValue value, StringBuffer buffer) throws DebugException {
 		String charText= getValueCharText(value);
 		if (charText != null) {
 			buffer.append(" ["); //$NON-NLS-1$
 			buffer.append(charText);
 			buffer.append("]"); //$NON-NLS-1$
-		}		
+		}
 		return buffer;
 	}
-	
+
 	/**
 	 * Returns <code>true</code> if the given signature is not <code>null</code> and
 	 * matches the text '&lt;unknown&gt;'
-	 * 
+	 *
 	 * @param signature the signature to compare
 	 * @return <code>true</code> if the signature matches '&lt;unknown&gt;'
 	 * @since 3.6.1
@@ -544,11 +544,11 @@
 		}
 		return JDIDebugModelMessages.JDIDebugElement_unknown.equals(signature);
 	}
-	
+
 	/**
 	 * Given a JNI-style signature String for a IJavaValue, return true
 	 * if the signature represents an Object or an array of Objects.
-	 * 
+	 *
 	 * @param signature the signature to check
 	 * @return <code>true</code> if the signature represents an object <code>false</code> otherwise
 	 */
@@ -558,24 +558,24 @@
 		}
 		String type = Signature.getElementType(signature);
 		char sigchar = type.charAt(0);
-		if(sigchar == Signature.C_UNRESOLVED || 
+		if(sigchar == Signature.C_UNRESOLVED ||
 				sigchar == Signature.C_RESOLVED) {
 			return true;
 		}
 		return false;
 	}
-	
+
 	/**
 	 * Returns whether the image registry's have been retrieved.
-	 * 
+	 *
 	 * @return whether image registry's have been retrieved.
 	 */
 	public static boolean isInitialized() {
 		return fgDebugImageRegistry != null;
 	}
-	
+
 	/**
-	 * Returns the type signature for this value if its type is primitive.  
+	 * Returns the type signature for this value if its type is primitive.
 	 * For non-primitive types, null is returned.
 	 */
 	protected String getPrimitiveValueTypeSignature(IJavaValue value) throws DebugException {
@@ -630,7 +630,7 @@
 		StringBuffer charText = new StringBuffer();
 		if (Character.getType(charValue) == Character.CONTROL) {
 			Character ctrl = new Character((char) (charValue + 64));
-			charText.append('^'); 
+			charText.append('^');
 			charText.append(ctrl);
 			switch (charValue) { // common use
 				case 0: charText.append(" (NUL)"); break; //$NON-NLS-1$
@@ -667,14 +667,14 @@
 
 	/**
 	 * Maps a Java element to an appropriate image.
-	 * 
+	 *
 	 * @see IDebugModelPresentation#getImage(Object)
 	 */
 	@Override
 	public Image getImage(Object item) {
-		
+
 		initImageRegistries();
-		
+
 		try {
 			if (item instanceof JDIReferenceListVariable) {
 				return getReferencesImage(item);
@@ -704,7 +704,7 @@
 				return getDebugElementImage(item);
 			}
 			if (item instanceof IJavaValue) {
-				return JavaUI.getSharedImages().getImage(ISharedImages.IMG_OBJS_PUBLIC);
+				return JavaUI.getSharedImages().getImage(ISharedImages.IMG_FIELD_PUBLIC);
 			}
 			if (item instanceof IExpression) {
 				return getExpressionImage(item);
@@ -735,7 +735,7 @@
 	 * Initialize image registry's that this model presentation references to
 	 */
 	private synchronized void initImageRegistries() {
-		
+
 		// if not initialized and this is called on the UI thread
 		if (!fInitialized && Thread.currentThread().equals(JDIDebugUIPlugin.getStandardDisplay().getThread())) {
 			// call get image registry's to force them to be created on the UI thread
@@ -803,7 +803,7 @@
 		} else if (breakpoint instanceof IJavaClassPrepareBreakpoint) {
 			return getClassPrepareBreakpointImage((IJavaClassPrepareBreakpoint)breakpoint);
 		}
-		
+
 		if (breakpoint instanceof IJavaLineBreakpoint && BreakpointUtils.isRunToLineBreakpoint((IJavaLineBreakpoint)breakpoint)) {
 			return null;
 		}
@@ -853,10 +853,10 @@
 		} else {
 			descriptor= new JDIImageDescriptor(DebugUITools.getImageDescriptor(IDebugUIConstants.IMG_OBJS_BREAKPOINT_DISABLED), flags);
 		}
-			
+
 		return getDebugImageRegistry().get(descriptor);
 	}
-	
+
 	protected Image getJavaMethodEntryBreakpointImage(IJavaMethodEntryBreakpoint mBreakpoint) throws CoreException {
 		int flags= computeBreakpointAdornmentFlags(mBreakpoint);
 		JDIImageDescriptor descriptor= null;
@@ -865,10 +865,10 @@
 		} else {
 			descriptor= new JDIImageDescriptor(DebugUITools.getImageDescriptor(IDebugUIConstants.IMG_OBJS_BREAKPOINT_DISABLED), flags);
 		}
-			
+
 		return getDebugImageRegistry().get(descriptor);
 	}
-	
+
 	protected Image getClassPrepareBreakpointImage(IJavaClassPrepareBreakpoint breakpoint) throws CoreException {
 		int flags= computeBreakpointAdornmentFlags(breakpoint);
 		JDIImageDescriptor descriptor= null;
@@ -878,8 +878,8 @@
 			descriptor= new JDIImageDescriptor(JavaUI.getSharedImages().getImageDescriptor(ISharedImages.IMG_OBJS_INTERFACE), flags);
 		}
 		return getDebugImageRegistry().get(descriptor);
-	}	
-	
+	}
+
 	protected Image getJavaWatchpointImage(IJavaWatchpoint watchpoint) throws CoreException {
 		int flags= computeBreakpointAdornmentFlags(watchpoint);
 		JDIImageDescriptor descriptor= null;
@@ -911,35 +911,35 @@
 		}
 		return getDebugImageRegistry().get(descriptor);
 	}
-	
+
 	protected Image getVariableImage(IAdaptable element) {
 		JavaElementImageDescriptor descriptor= new JavaElementImageDescriptor(
 			computeBaseImageDescriptor(element), computeAdornmentFlags(element), BIG_SIZE);
-		return JavaPlugin.getImageDescriptorRegistry().get(descriptor);			
+		return JavaPlugin.getImageDescriptorRegistry().get(descriptor);
 	}
-	
+
 	/**
 	 * Returns the image associated with reference variables being used to display
 	 * references to a root object.
-	 * 
+	 *
 	 * @param element
 	 * @return image associated with reference variables
 	 */
 	protected Image getReferencesImage(Object element){
 		return JavaDebugImages.get(JavaDebugImages.IMG_ELCL_ALL_REFERENCES);
 	}
-	
+
 	/**
 	 * Returns the image associated with reference variables being used to display
 	 * references to a root object.
-	 * 
+	 *
 	 * @param element
 	 * @return image associated with reference variables
 	 */
 	protected Image getReferenceImage(Object element){
 		return JavaDebugImages.get(JavaDebugImages.IMG_OBJS_REFERENCE);
-	}	
-	
+	}
+
 	/**
 	 * Returns the image associated with the given element or <code>null</code>
 	 * if none is defined.
@@ -966,7 +966,7 @@
 		JDIImageDescriptor descriptor= new JDIImageDescriptor(image, flags);
 		return getDebugImageRegistry().get(descriptor);
 	}
-	
+
 	/**
 	 * Returns the image associated with the given element or <code>null</code>
 	 * if none is defined.
@@ -1031,7 +1031,7 @@
 		}
 		return 0;
 	}
-	
+
 	/**
 	 * Returns the adornment flags for the given breakpoint.
 	 * These flags are used to render appropriate overlay
@@ -1083,7 +1083,7 @@
 		}
 		return flags;
 	}
-	
+
 	private ImageDescriptor computeBaseImageDescriptor(IAdaptable element) {
 		IJavaVariable javaVariable= element.getAdapter(IJavaVariable.class);
 		if (javaVariable != null) {
@@ -1092,13 +1092,13 @@
 					return JavaDebugImages.getImageDescriptor(JavaDebugImages.IMG_OBJS_LOCAL_VARIABLE);
 				}
 				if (javaVariable.isPublic()) {
-					return JavaUI.getSharedImages().getImageDescriptor(ISharedImages.IMG_OBJS_PUBLIC);
+					return JavaUI.getSharedImages().getImageDescriptor(ISharedImages.IMG_FIELD_PUBLIC);
 				}
 				if (javaVariable.isProtected()) {
-					return JavaUI.getSharedImages().getImageDescriptor(ISharedImages.IMG_OBJS_PROTECTED);
+					return JavaUI.getSharedImages().getImageDescriptor(ISharedImages.IMG_FIELD_PROTECTED);
 				}
 				if (javaVariable.isPrivate()) {
-					return JavaUI.getSharedImages().getImageDescriptor(ISharedImages.IMG_OBJS_PRIVATE);
+					return JavaUI.getSharedImages().getImageDescriptor(ISharedImages.IMG_FIELD_PRIVATE);
 				}
 			} catch (DebugException e) {
 			    // no need to log errors - elements may no longer exist by the time we render them
@@ -1112,9 +1112,9 @@
 			}
 			return JavaDebugImages.getImageDescriptor(JavaDebugImages.IMG_OBJS_METHOD_RESULT);
 		}
-		return JavaUI.getSharedImages().getImageDescriptor(ISharedImages.IMG_OBJS_DEFAULT);
+		return JavaUI.getSharedImages().getImageDescriptor(ISharedImages.IMG_FIELD_DEFAULT);
 	}
-	
+
 	private int computeAdornmentFlags(IAdaptable element) {
 		int flags= 0;
 		IJavaModifiers javaProperties = element.getAdapter(IJavaModifiers.class);
@@ -1222,7 +1222,7 @@
 	}
 
 	protected String getVariableText(IJavaVariable var) {
-		String varLabel= DebugUIMessages.JDIModelPresentation_unknown_name__1; 
+		String varLabel= DebugUIMessages.JDIModelPresentation_unknown_name__1;
 		try {
 			varLabel= var.getName();
 		} catch (DebugException exception) {
@@ -1235,7 +1235,7 @@
 		}
 		boolean showTypes= isShowVariableTypeNames();
 		StringBuffer buff= new StringBuffer();
-		String typeName= DebugUIMessages.JDIModelPresentation_unknown_type__2; 
+		String typeName= DebugUIMessages.JDIModelPresentation_unknown_type__2;
 		try {
 			typeName= var.getReferenceTypeName();
 			if (showTypes) {
@@ -1260,7 +1260,7 @@
 				}
 			}
 		}
-		
+
 		String valueString= getFormattedValueText(javaValue);
 
 		//do not put the equal sign for array partitions
@@ -1270,16 +1270,16 @@
 		}
 		return buff.toString();
 	}
-	
+
 	/**
 	 * Returns text for the given value based on user preferences to display
 	 * toString() details.
-	 * 
+	 *
 	 * @param javaValue
 	 * @return text
 	 */
 	public String getFormattedValueText(IJavaValue javaValue) {
-		String valueString= DebugUIMessages.JDIModelPresentation_unknown_value__3; 
+		String valueString= DebugUIMessages.JDIModelPresentation_unknown_value__3;
 		if (javaValue != null) {
 			if (isShowLabelDetails(javaValue)) {
 	    		valueString = getVariableDetail(javaValue);
@@ -1292,10 +1292,10 @@
 				} catch (DebugException exception) {
 				}
 			}
-		}		
+		}
 		return valueString;
 	}
-	
+
 	/**
 	 * Returns whether or not details should be shown in the
 	 * label of the given variable.
@@ -1321,7 +1321,7 @@
 		}
 		return showDetails;
 	}
-	
+
 	/**
 	 * Returns the detail value for the given variable or <code>null</code>
 	 * if none can be computed.
@@ -1367,7 +1367,7 @@
 				// ObjectCollectedException is an expected exception which will
 				// occur if the inspected object has been garbage collected.
 				if (exception.getStatus().getException() instanceof ObjectCollectedException) {
-					return DebugUIMessages.JDIModelPresentation__garbage_collected_object__6; 
+					return DebugUIMessages.JDIModelPresentation__garbage_collected_object__6;
 				}
 				throw exception;
 			}
@@ -1393,7 +1393,7 @@
 		snippetBuffer.append('"');
 		snippet = snippetBuffer.toString().replaceAll("[\n\r\t]+", " ");  //$NON-NLS-1$//$NON-NLS-2$
 		buff.append(snippet);
-		
+
 		if (javaValue != null) {
 			String valueString= getValueText(javaValue);
 			if (valueString.length() > 0) {
@@ -1403,9 +1403,9 @@
 		}
 		return buff.toString();
 	}
-	
+
 	protected String getWatchExpressionText(IWatchExpression expression) throws DebugException {
-		return getExpressionText(expression) + (expression.isEnabled() ? "" : DebugUIMessages.JDIModelPresentation_116); //$NON-NLS-1$ 
+		return getExpressionText(expression) + (expression.isEnabled() ? "" : DebugUIMessages.JDIModelPresentation_116); //$NON-NLS-1$
 	}
 
 	/**
@@ -1421,7 +1421,7 @@
 		buffer.insert(firstBracket + 1, Integer.toString(arrayIndex));
 		return buffer.toString();
 	}
-	
+
 	protected String getValueUnsignedText(IJavaValue value) throws DebugException {
 		String sig= getPrimitiveValueTypeSignature(value);
 		if (sig == null) {
@@ -1438,7 +1438,7 @@
 				}
 				if (byteVal < 0) {
 					byteVal = byteVal & 0xFF;
-					return Integer.toString(byteVal);					
+					return Integer.toString(byteVal);
 				}
 			default :
 				return null;
@@ -1475,7 +1475,7 @@
 				// keep only the relevant bits for integer
 				longValue &= 0xFFFFFFFFl;
 				buff.append(Long.toHexString(longValue));
-				break;			
+				break;
 			case 'S' :
 				buff.append("0x"); //$NON-NLS-1$
 				// keep only the relevant bits for short
@@ -1537,10 +1537,10 @@
 	    	// if the breakpoint has been deleted, don't log exception
 	    	IMarker marker = breakpoint.getMarker();
 			if (marker == null || !marker.exists()) {
-	    		return DebugUIMessages.JDIModelPresentation_6; 
+	    		return DebugUIMessages.JDIModelPresentation_6;
 	    	}
 	        JDIDebugUIPlugin.log(e);
-	        return DebugUIMessages.JDIModelPresentation_4; 
+	        return DebugUIMessages.JDIModelPresentation_4;
 	    }
 	}
 
@@ -1566,12 +1566,12 @@
 		appendHitCount(breakpoint, label);
 		appendSuspendPolicy(breakpoint,label);
 		appendThreadFilter(breakpoint, label);
-					
+
 		if (member != null) {
 			label.append(" - "); //$NON-NLS-1$
 			label.append(getJavaLabelProvider().getText(member));
 		}
-		
+
 		return label.toString();
 	}
 
@@ -1589,24 +1589,24 @@
 		}
 		appendThreadFilter(breakpoint, buffer);
 		if (breakpoint.getExclusionFilters().length > 0 || breakpoint.getInclusionFilters().length > 0) {
-			buffer.append(DebugUIMessages.JDIModelPresentation___scoped__1); 
+			buffer.append(DebugUIMessages.JDIModelPresentation___scoped__1);
 		}
 		appendInstanceFilter(breakpoint, buffer);
 		String state= null;
 		boolean c= breakpoint.isCaught();
 		boolean u= breakpoint.isUncaught();
 		if (c && u) {
-			state= DebugUIMessages.JDIModelPresentation_caught_and_uncaught_60; 
+			state= DebugUIMessages.JDIModelPresentation_caught_and_uncaught_60;
 		} else if (c) {
-			state= DebugUIMessages.JDIModelPresentation_caught_61; 
+			state= DebugUIMessages.JDIModelPresentation_caught_61;
 		} else if (u) {
-			state= DebugUIMessages.JDIModelPresentation_uncaught_62; 
+			state= DebugUIMessages.JDIModelPresentation_uncaught_62;
 		}
 		String label= null;
 		if (state == null) {
 			label= buffer.toString();
 		} else {
-			String format= DebugUIMessages.JDIModelPresentation__1____0__63; 
+			String format= DebugUIMessages.JDIModelPresentation__1____0__63;
 			label= NLS.bind(format, new Object[] {state, buffer});
 		}
 		return label;
@@ -1625,15 +1625,15 @@
 		appendThreadFilter(breakpoint, label);
 		appendConditional(breakpoint, label);
 		appendInstanceFilter(breakpoint, label);
-		
+
 		if (member != null) {
 			label.append(" - "); //$NON-NLS-1$
 			label.append(getJavaLabelProvider().getText(member));
 		}
-		
+
 		return label.toString();
 	}
-	
+
 	protected String getClassPrepareBreakpointText(IJavaClassPrepareBreakpoint breakpoint) throws CoreException {
 		String typeName= breakpoint.getTypeName();
 		StringBuffer label = new StringBuffer();
@@ -1643,13 +1643,13 @@
 		appendHitCount(breakpoint, label);
 		appendSuspendPolicy(breakpoint, label);
 		return label.toString();
-	}	
-	
+	}
+
 	protected StringBuffer appendLineNumber(IJavaLineBreakpoint breakpoint, StringBuffer label) throws CoreException {
 		int lineNumber= breakpoint.getLineNumber();
 		if (lineNumber > 0) {
 			label.append(" ["); //$NON-NLS-1$
-			label.append(DebugUIMessages.JDIModelPresentation_line__65); 
+			label.append(DebugUIMessages.JDIModelPresentation_line__65);
 			label.append(' ');
 			label.append(lineNumber);
 			label.append(']');
@@ -1657,19 +1657,19 @@
 		}
 		return label;
 	}
-	
+
 	protected StringBuffer appendHitCount(IJavaBreakpoint breakpoint, StringBuffer label) throws CoreException {
 		int hitCount= breakpoint.getHitCount();
 		if (hitCount > 0) {
 			label.append(" ["); //$NON-NLS-1$
-			label.append(DebugUIMessages.JDIModelPresentation_hit_count__67); 
+			label.append(DebugUIMessages.JDIModelPresentation_hit_count__67);
 			label.append(' ');
 			label.append(hitCount);
 			label.append(']');
 		}
 		return label;
 	}
-	
+
 	protected String getJavaPatternBreakpointText(@SuppressWarnings("deprecation") IJavaPatternBreakpoint breakpoint) throws CoreException {
 		IResource resource= breakpoint.getMarker().getResource();
 		IMember member= BreakpointUtils.getMember(breakpoint);
@@ -1678,12 +1678,12 @@
 		appendHitCount(breakpoint, label);
 		appendSuspendPolicy(breakpoint,label);
 		appendThreadFilter(breakpoint, label);
-					
+
 		if (member != null) {
 			label.append(" - "); //$NON-NLS-1$
 			label.append(getJavaLabelProvider().getText(member));
 		}
-		
+
 		return label.toString();
 	}
 
@@ -1694,15 +1694,15 @@
 		appendHitCount(breakpoint, label);
 		appendSuspendPolicy(breakpoint,label);
 		appendThreadFilter(breakpoint, label);
-					
+
 		if (member != null) {
 			label.append(" - "); //$NON-NLS-1$
 			label.append(getJavaLabelProvider().getText(member));
 		}
-		
+
 		return label.toString();
 	}
-		
+
 	protected String getWatchpointText(IJavaWatchpoint watchpoint) throws CoreException {
 		String typeName= watchpoint.getTypeName();
 		IMember member= BreakpointUtils.getMember(watchpoint);
@@ -1713,18 +1713,18 @@
 		appendHitCount(watchpoint, label);
 		appendSuspendPolicy(watchpoint,label);
 		appendThreadFilter(watchpoint, label);
-		
+
 
 		boolean access= watchpoint.isAccess();
 		boolean modification= watchpoint.isModification();
 		if (access && modification) {
-			label.append(DebugUIMessages.JDIModelPresentation_access_and_modification_70); 
+			label.append(DebugUIMessages.JDIModelPresentation_access_and_modification_70);
 		} else if (access) {
-			label.append(DebugUIMessages.JDIModelPresentation_access_71); 
+			label.append(DebugUIMessages.JDIModelPresentation_access_71);
 		} else if (modification) {
-			label.append(DebugUIMessages.JDIModelPresentation_modification_72); 
+			label.append(DebugUIMessages.JDIModelPresentation_modification_72);
 		}
-		
+
 		label.append(" - "); //$NON-NLS-1$
 		if (member != null) {
 			label.append(getJavaLabelProvider().getText(member));
@@ -1732,8 +1732,8 @@
 			label.append(watchpoint.getFieldName());
 		}
 
-		return label.toString();	
-	}	
+		return label.toString();
+	}
 
 	protected String getMethodBreakpointText(IJavaMethodBreakpoint methodBreakpoint) throws CoreException {
 		String typeName= methodBreakpoint.getTypeName();
@@ -1745,19 +1745,19 @@
 		appendHitCount(methodBreakpoint, label);
 		appendSuspendPolicy(methodBreakpoint,label);
 		appendThreadFilter(methodBreakpoint, label);
-		
+
 
 		boolean entry = methodBreakpoint.isEntry();
 		boolean exit = methodBreakpoint.isExit();
 		if (entry && exit) {
-			label.append(DebugUIMessages.JDIModelPresentation_entry_and_exit); 
+			label.append(DebugUIMessages.JDIModelPresentation_entry_and_exit);
 		} else if (entry) {
-			label.append(DebugUIMessages.JDIModelPresentation_entry); 
+			label.append(DebugUIMessages.JDIModelPresentation_entry);
 		} else if (exit) {
-			label.append(DebugUIMessages.JDIModelPresentation_exit); 
+			label.append(DebugUIMessages.JDIModelPresentation_exit);
 		}
 		appendConditional(methodBreakpoint, label);
-		
+
 		if (member != null) {
 			label.append(" - "); //$NON-NLS-1$
 			label.append(getJavaLabelProvider().getText(member));
@@ -1773,35 +1773,35 @@
 			}
 		}
 
-		return label.toString();	
-	}	
+		return label.toString();
+	}
 
 	protected String getStackFrameText(IStackFrame stackFrame) throws DebugException {
 		IJavaStackFrame frame= stackFrame.getAdapter(IJavaStackFrame.class);
 		if (frame != null) {
 			StringBuffer label= new StringBuffer();
-			
-			String dec= DebugUIMessages.JDIModelPresentation_unknown_declaring_type__4; 
+
+			String dec= DebugUIMessages.JDIModelPresentation_unknown_declaring_type__4;
 			try {
 				dec= frame.getDeclaringTypeName();
 			} catch (DebugException exception) {
 			}
 			if (frame.isObsolete()) {
-				label.append(DebugUIMessages.JDIModelPresentation__obsolete_method_in__1); 
+				label.append(DebugUIMessages.JDIModelPresentation__obsolete_method_in__1);
 				label.append(dec);
 				label.append('>');
 				return label.toString();
 			}
-			
+
 			boolean javaStratum= true;
 			try {
 				javaStratum = frame.getReferenceType().getDefaultStratum().equals("Java"); //$NON-NLS-1$
 			} catch (DebugException e) {
 			}
-			
+
 			if (javaStratum) {
 				// receiver name
-				String rec= DebugUIMessages.JDIModelPresentation_unknown_receiving_type__5; 
+				String rec= DebugUIMessages.JDIModelPresentation_unknown_receiving_type__5;
 				try {
 					rec= frame.getReceivingTypeName();
 				} catch (DebugException exception) {
@@ -1819,7 +1819,7 @@
 				try {
 					label.append(frame.getMethodName());
 				} catch (DebugException exception) {
-					label.append(DebugUIMessages.JDIModelPresentation_unknown_method_name__6); 
+					label.append(DebugUIMessages.JDIModelPresentation_unknown_method_name__6);
 				}
 				try {
 					List<String> args= frame.getArgumentTypeNames();
@@ -1839,7 +1839,7 @@
 						label.append(')');
 					}
 				} catch (DebugException exception) {
-					label.append(DebugUIMessages.JDIModelPresentation__unknown_arguements___7); 
+					label.append(DebugUIMessages.JDIModelPresentation__unknown_arguements___7);
 				}
 			} else {
 				if (isShowQualifiedNames()) {
@@ -1852,39 +1852,39 @@
 			try {
 				int lineNumber= frame.getLineNumber();
 				label.append(' ');
-				label.append(DebugUIMessages.JDIModelPresentation_line__76); 
+				label.append(DebugUIMessages.JDIModelPresentation_line__76);
 				label.append(' ');
 				if (lineNumber >= 0) {
 					label.append(lineNumber);
 				} else {
-					label.append(DebugUIMessages.JDIModelPresentation_not_available); 
+					label.append(DebugUIMessages.JDIModelPresentation_not_available);
 					if (frame.isNative()) {
 						label.append(' ');
-						label.append(DebugUIMessages.JDIModelPresentation_native_method); 
+						label.append(DebugUIMessages.JDIModelPresentation_native_method);
 					}
 				}
 			} catch (DebugException exception) {
-				label.append(DebugUIMessages.JDIModelPresentation__unknown_line_number__8); 
+				label.append(DebugUIMessages.JDIModelPresentation__unknown_line_number__8);
 			}
-			
+
 			if (!frame.wereLocalsAvailable()) {
 				label.append(' ');
-				label.append(DebugUIMessages.JDIModelPresentation_local_variables_unavailable); 
+				label.append(DebugUIMessages.JDIModelPresentation_local_variables_unavailable);
 			}
-			
+
 			return label.toString();
 
 		}
 		return null;
 	}
-	
+
 	protected String getQualifiedName(String qualifiedName) {
 		if (!isShowQualifiedNames()) {
 			return removeQualifierFromGenericName(qualifiedName);
 		}
 		return qualifiedName;
 	}
-	
+
 	/**
 	 * Return the simple generic name from a qualified generic name
 	 */
@@ -1916,7 +1916,7 @@
 		name.append('>');
 		return name.toString();
 	}
-	
+
 	/**
 	 * Return the simple name from a qualified name (non-generic)
 	 */
@@ -1932,7 +1932,7 @@
 	 * Decompose a comma separated list of generic names (String) to a list of generic names (List)
 	 */
 	private List<String> getNameList(String listName) {
-		List<String> names= new ArrayList<String>();
+		List<String> names= new ArrayList<>();
 		StringTokenizer tokenizer= new StringTokenizer(listName, ",<>", true); //$NON-NLS-1$
 		int enclosingLevel= 0;
 		int startPos= 0;
@@ -1972,57 +1972,57 @@
 	public static String getFormattedString(String string, String[] args) {
 		return NLS.bind(string, args);
 	}
-	
+
 	interface IValueDetailProvider {
 		public void computeDetail(IValue value, IJavaThread thread, IValueDetailListener listener) throws DebugException;
 	}
-	
+
 	protected void appendSuspendPolicy(IJavaBreakpoint breakpoint, StringBuffer buffer) throws CoreException {
 		if (breakpoint.getSuspendPolicy() == IJavaBreakpoint.SUSPEND_VM) {
 			buffer.append(' ');
-			buffer.append(DebugUIMessages.JDIModelPresentation_Suspend_VM); 
+			buffer.append(DebugUIMessages.JDIModelPresentation_Suspend_VM);
 		}
 	}
-	
+
 	protected void appendThreadFilter(IJavaBreakpoint breakpoint, StringBuffer buffer) throws CoreException {
 		if (breakpoint.getThreadFilters().length != 0) {
 			buffer.append(' ');
-			buffer.append(DebugUIMessages.JDIModelPresentation_thread_filtered); 
+			buffer.append(DebugUIMessages.JDIModelPresentation_thread_filtered);
 		}
 	}
-	
+
 	protected void appendConditional(IJavaLineBreakpoint breakpoint, StringBuffer buffer) throws CoreException {
 		if (breakpoint.isConditionEnabled() && breakpoint.getCondition() != null) {
 			buffer.append(' ');
-			buffer.append(DebugUIMessages.JDIModelPresentation__conditional__2); 
+			buffer.append(DebugUIMessages.JDIModelPresentation__conditional__2);
 		}
 	}
-	
+
 	protected void appendInstanceFilter(IJavaBreakpoint breakpoint, StringBuffer buffer) throws CoreException {
 		IJavaObject[] instances = breakpoint.getInstanceFilters();
 		for (int i = 0; i < instances.length; i++) {
 			String instanceText= instances[i].getValueString();
 			if (instanceText != null) {
 				buffer.append(' ');
-				buffer.append(NLS.bind(DebugUIMessages.JDIModelPresentation_instance_1, new String[] {instanceText})); 
-			}				
+				buffer.append(NLS.bind(DebugUIMessages.JDIModelPresentation_instance_1, new String[] {instanceText}));
+			}
 		}
 	}
-	
+
 	protected static org.eclipse.jdt.internal.debug.ui.ImageDescriptorRegistry getDebugImageRegistry() {
 		if (fgDebugImageRegistry == null) {
-			fgDebugImageRegistry = JDIDebugUIPlugin.getImageDescriptorRegistry();		
+			fgDebugImageRegistry = JDIDebugUIPlugin.getImageDescriptorRegistry();
 		}
 		return fgDebugImageRegistry;
 	}
 
 	protected JavaElementLabelProvider getJavaLabelProvider() {
 		if (fJavaLabelProvider == null) {
-			fJavaLabelProvider = new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_DEFAULT);		
+			fJavaLabelProvider = new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_DEFAULT);
 		}
 		return fJavaLabelProvider;
 	}
-	
+
 	/**
 	 * Returns whether the given field variable has the same name as any variables
 	 */
@@ -2075,7 +2075,7 @@
 	public Color getBackground(Object element) {
 		return null;
 	}
-	
+
 	private ImageDescriptor getImageDescriptor(String key) {
 		return JavaDebugImages.getImageDescriptor(key);
 	}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDISourceViewer.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDISourceViewer.java
index 9d6e4c6..fe7b1e8 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDISourceViewer.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDISourceViewer.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -51,15 +51,15 @@
  * the Java UI plugin.
  */
 public class JDISourceViewer extends SourceViewer implements IPropertyChangeListener {
-	
+
 	/**
 	 * BIDI delimtiers.
-	 * 
+	 *
 	 * @since 3.4
 	 */
 	private static final String BIDI_DELIMITERS= "[ \\p{Punct}&&[^_]]"; //$NON-NLS-1$
 
-	
+
 	private Font fFont;
 	private Color fBackgroundColor;
 	private Color fForegroundColor;
@@ -87,7 +87,7 @@
 			}
 		});
 	}
-	
+
 	/**
 	 * Updates the viewer's font to match the preferences.
 	 */
@@ -113,28 +113,28 @@
 		// if all the preferences failed
 		applyFont(JFaceResources.getTextFont());
 	}
-	
+
 	/**
 	 * Sets the current font.
-	 * 
+	 *
 	 * @param font the new font
 	 */
 	private void setFont(Font font) {
 		fFont= font;
 	}
-	
+
 	/**
 	 * Returns the current font.
-	 * 
+	 *
 	 * @return the current font
 	 */
 	private Font getFont() {
 		return fFont;
 	}
-	
+
 	/**
 	 * Sets the font for the given viewer sustaining selection and scroll position.
-	 * 
+	 *
 	 * @param font the font
 	 */
 	private void applyFont(Font font) {
@@ -142,20 +142,20 @@
 		if (doc != null && doc.getLength() > 0) {
 			Point selection= getSelectedRange();
 			int topIndex= getTopIndex();
-			
+
 			StyledText styledText= getTextWidget();
 			styledText.setRedraw(false);
-			
+
 			styledText.setFont(font);
 			setSelectedRange(selection.x , selection.y);
 			setTopIndex(topIndex);
-			
+
 			styledText.setRedraw(true);
 		} else {
 			getTextWidget().setFont(font);
 		}
 	}
-	
+
 	/**
 	 * Updates the given viewer's colors to match the preferences.
 	 */
@@ -171,7 +171,7 @@
 				getForegroundColor().dispose();
 			}
 			setForegroundColor(color);
-			
+
 			color= store.getBoolean(AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT)
 				? null
 				: createColor(store, AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND, styledText.getDisplay());
@@ -182,7 +182,7 @@
 			setBackgroundColor(color);
 		}
 	}
-	
+
 	/**
 	 * Creates a color from the information stored in the given preference store.
 	 * Returns <code>null</code> if there is no such information available.
@@ -201,10 +201,10 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Returns the current background color.
-	 * 
+	 *
 	 * @return the current background color
 	 */
 	protected Color getBackgroundColor() {
@@ -213,7 +213,7 @@
 
 	/**
 	 * Sets the current background color.
-	 * 
+	 *
 	 * @param backgroundColor the new background color
 	 */
 	protected void setBackgroundColor(Color backgroundColor) {
@@ -222,7 +222,7 @@
 
 	/**
 	 * Returns the current foreground color.
-	 * 
+	 *
 	 * @return the current foreground color
 	 */
 	protected Color getForegroundColor() {
@@ -231,13 +231,13 @@
 
 	/**
 	 * Sets the current foreground color.
-	 * 
+	 *
 	 * @param foregroundColor the new foreground color
 	 */
 	protected void setForegroundColor(Color foregroundColor) {
 		fForegroundColor = foregroundColor;
 	}
-	
+
 	/**
 	 * @see IPropertyChangeListener#propertyChange(PropertyChangeEvent)
 	 */
@@ -248,7 +248,7 @@
 			JDIContentAssistPreference.changeConfiguration((ContentAssistant) assistant, event);
 		}
 		String property= event.getProperty();
-		
+
 		if (PreferenceConstants.EDITOR_TEXT_FONT.equals(property)) {
 			updateViewerFont();
 		}
@@ -263,10 +263,10 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Returns the current content assistant.
-	 * 
+	 *
 	 * @return the current content assistant
 	 */
 	public IContentAssistant getContentAssistant() {
@@ -321,10 +321,10 @@
 	private IPreferenceStore getPreferenceStore() {
 		return fStore;
 	}
-	
+
 	/**
 	 * Returns a segmentation of the line of the given document appropriate for Bidi rendering.
-	 * 
+	 *
 	 * @param document the document
 	 * @param baseLevel the base level of the line
 	 * @param lineStart the offset of the line
@@ -413,11 +413,11 @@
 
 	/**
 	 * Checks if the given embedding level is consistent with the base level.
-	 * 
+	 *
 	 * @param level Character embedding level to check.
 	 * @param baseLevel Base level (direction) of the text.
 	 * @return <code>true</code> if the character level is odd and the base level is even OR the character level is even and the base level is odd, and return <code>false</code> otherwise.
-	 * 
+	 *
 	 * @since 3.4
 	 */
 	private static boolean isMismatchingLevel(int level, int baseLevel) {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaBreakpointWorkbenchAdapterFactory.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaBreakpointWorkbenchAdapterFactory.java
index 6fe66fb..8a0790a 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaBreakpointWorkbenchAdapterFactory.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaBreakpointWorkbenchAdapterFactory.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -90,7 +90,7 @@
 					try {
 						int lineNumber= lineBreakpoint.getLineNumber();
 						if (lineNumber != -1) {
-							label.append(DebugUIMessages.JavaBreakpointWorkbenchAdapterFactory_1); 
+							label.append(DebugUIMessages.JavaBreakpointWorkbenchAdapterFactory_1);
 							label.append(lineNumber);
 							label.append(']');
 						}
@@ -114,10 +114,10 @@
 			public Object getParent(Object o) {
 				return null;
 			}
-			
+
 			protected JavaElementLabelProvider getJavaLabelProvider() {
 				if (fJavaLabelProvider == null) {
-					fJavaLabelProvider = new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_DEFAULT);		
+					fJavaLabelProvider = new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_DEFAULT);
 				}
 				return fJavaLabelProvider;
 			}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugHover.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugHover.java
index 06a6429..627e301 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugHover.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugHover.java
@@ -63,9 +63,9 @@
 
 
 public class JavaDebugHover implements IJavaEditorTextHover, ITextHoverExtension, ITextHoverExtension2 {
-    
+
     private IEditorPart fEditor;
-		
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.ui.text.java.hover.IJavaEditorTextHover#setEditor(org.eclipse.ui.IEditorPart)
 	 */
@@ -73,7 +73,7 @@
 	public void setEditor(IEditorPart editor) {
 	    fEditor = editor;
 	}
-		
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.text.ITextHover#getHoverRegion(org.eclipse.jface.text.ITextViewer, int)
 	 */
@@ -81,11 +81,11 @@
 	public IRegion getHoverRegion(ITextViewer textViewer, int offset) {
 		return JavaWordFinder.findWord(textViewer.getDocument(), offset);
 	}
-	
+
 	/**
 	 * Returns the stack frame in which to search for variables, or <code>null</code>
 	 * if none.
-	 * 
+	 *
 	 * @return the stack frame in which to search for variables, or <code>null</code>
 	 * if none
 	 */
@@ -96,24 +96,24 @@
 		}
 		return null;
 	}
-		
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.text.ITextHover#getHoverInfo(org.eclipse.jface.text.ITextViewer, org.eclipse.jface.text.IRegion)
 	 */
 	@Override
 	public String getHoverInfo(ITextViewer textViewer, IRegion hoverRegion) {
 		Object object = getHoverInfo2(textViewer, hoverRegion);
-		if (object instanceof IVariable) {	
+		if (object instanceof IVariable) {
 			IVariable var = (IVariable) object;
 			return getVariableText(var);
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Returns a local variable in the given frame based on the hover region
 	 * or <code>null</code> if none.
-	 * 
+	 *
 	 * @return local variable or <code>null</code>
 	 */
 	private IVariable resolveLocalVariable(IJavaStackFrame frame, ITextViewer textViewer, IRegion hoverRegion) {
@@ -129,11 +129,11 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Returns a local variable in the given frame based on the the given name
 	 * or <code>null</code> if none.
-	 * 
+	 *
 	 * @return local variable or <code>null</code>
 	 */
 	private IVariable findLocalVariable(IJavaStackFrame frame, String variableName) {
@@ -147,7 +147,7 @@
 			}
 		}
 		return null;
-	}	
+	}
 
 	/**
 	 * Returns HTML text for the given variable
@@ -165,7 +165,7 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Replaces reserved HTML characters in the given string with
 	 * their escaped equivalents. This is to ensure that variable
@@ -201,7 +201,7 @@
 	 */
 	private static JDIModelPresentation getModelPresentation() {
 		JDIModelPresentation presentation = new JDIModelPresentation();
-		
+
 		String[][] booleanPrefs= {
 				{IJDIPreferencesConstants.PREF_SHOW_QUALIFIED_NAMES, JDIModelPresentation.DISPLAY_QUALIFIED_NAMES}};
 	    String viewId= IDebugUIConstants.ID_VARIABLE_VIEW;
@@ -211,11 +211,11 @@
 		}
 		return presentation;
 	}
-	
+
 	   /**
      * Returns the value of this filters preference (on/off) for the given
      * view.
-     * 
+     *
      * @param part
      * @return boolean
      */
@@ -279,7 +279,7 @@
 		    if (codeAssist == null) {
 		        return resolveLocalVariable(frame, textViewer, hoverRegion);
 		    }
-            
+
             IJavaElement[] resolve = null;
             try {
                 resolve = codeAssist.codeSelect(hoverRegion.getOffset(), 0);
@@ -366,7 +366,7 @@
 								} else if (locationInParent == QualifiedName.NAME_PROPERTY) {
 									return null;
 								}
-            		    		
+
             		    		String typeSignature = Signature.createTypeSignature(field.getDeclaringType().getFullyQualifiedName(), true);
             		    		typeSignature = typeSignature.replace('.', '/');
 								IJavaObject ths = frame.getThis();
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugOptionsManager.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugOptionsManager.java
index bfb7f63..6afe57d 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugOptionsManager.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugOptionsManager.java
@@ -11,7 +11,7 @@
  *******************************************************************************/

 package org.eclipse.jdt.internal.debug.ui;

 

- 

+

 import java.util.ArrayList;

 import java.util.HashSet;

 import java.util.List;

@@ -87,27 +87,27 @@
  * </ul>

  */

 public class JavaDebugOptionsManager implements IDebugEventSetListener, IPropertyChangeListener, IJavaBreakpointListener, ILaunchListener, IBreakpointsListener, IJavaStructuresListener {

-	

+

 	/**

 	 * Singleton options manager

 	 */

 	private static JavaDebugOptionsManager fgOptionsManager = null;

-	

+

 	/**

 	 * Breakpoint used to suspend on uncaught exceptions

 	 */

 	private IJavaExceptionBreakpoint fSuspendOnExceptionBreakpoint = null;

-	

+

 	/**

 	 * Breakpoint used to suspend on compilation errors

 	 */

-	private IJavaExceptionBreakpoint fSuspendOnErrorBreakpoint = null;	

-	

+	private IJavaExceptionBreakpoint fSuspendOnErrorBreakpoint = null;

+

 	/**

 	 * A label provider

 	 */

 	private static ILabelProvider fLabelProvider= DebugUITools.newDebugModelPresentation();

-	

+

 	/**

 	 * Constants indicating whether a breakpoint

 	 * is added, removed, or changed.

@@ -115,41 +115,41 @@
 	private static final int ADDED = 0;

 	private static final int REMOVED = 1;

 	private static final int CHANGED = 2;

-		

+

 	/**

 	 * Local cache of active step filters.

 	 */

 	private String[] fActiveStepFilters = null;

-	

+

 	/**

 	 * Preferences that affect variable display options.

-	 * 

+	 *

 	 * @since 3.3

 	 */

 	private static Set<String> fgDisplayOptions;

-	

+

 	static {

-		fgDisplayOptions = new HashSet<String>();

+		fgDisplayOptions = new HashSet<>();

 		fgDisplayOptions.add(IJDIPreferencesConstants.PREF_SHOW_CHAR);

 		fgDisplayOptions.add(IJDIPreferencesConstants.PREF_SHOW_HEX);

 		fgDisplayOptions.add(IJDIPreferencesConstants.PREF_SHOW_UNSIGNED);

 	}

-	

+

 	/**

 	 * Whether the manager has been activated

 	 */

 	private boolean fActivated = false;

-	

+

 	class InitJob extends Job {

-		

+

 		public InitJob() {

-			super(DebugUIMessages.JavaDebugOptionsManager_0); 

+			super(DebugUIMessages.JavaDebugOptionsManager_0);

 		}

-		

+

 		@Override

 		protected IStatus run(IProgressMonitor monitor) {

 			MultiStatus status = new MultiStatus(JDIDebugUIPlugin.getUniqueIdentifier(), IJavaDebugUIConstants.INTERNAL_ERROR, "Java debug options failed to initialize", null);  //$NON-NLS-1$

-			// compilation error breakpoint 

+			// compilation error breakpoint

 			try {

 				IJavaExceptionBreakpoint bp = JDIDebugModel.createExceptionBreakpoint(ResourcesPlugin.getWorkspace().getRoot(),"java.lang.Error", true, true, false, false, null); //$NON-NLS-1$

 				bp.setPersisted(false);

@@ -158,7 +158,7 @@
 			} catch (CoreException e) {

 				status.add(e.getStatus());

 			}

-			

+

 			// uncaught exception breakpoint

 			try {

 				IJavaExceptionBreakpoint bp = JDIDebugModel.createExceptionBreakpoint(ResourcesPlugin.getWorkspace().getRoot(),"java.lang.Throwable", false, true, false, false, null); //$NON-NLS-1$

@@ -169,22 +169,22 @@
 			} catch (CoreException e) {

 				status.add(e.getStatus());

 			}

-			

+

 			if (status.getChildren().length == 0) {

 				return Status.OK_STATUS;

 			}

 			return status;

 		}

 	}

-	

+

 	/**

 	 * Not to be instantiated

-	 * 

+	 *

 	 * @see JavaDebugOptionsManager#getDefault();

 	 */

 	private JavaDebugOptionsManager() {

 	}

-	

+

 	/**

 	 * Return the default options manager

 	 */

@@ -194,7 +194,7 @@
 		}

 		return fgOptionsManager;

 	}

-	

+

 	/**

 	 * Called at startup by the Java debug ui plug-in

 	 */

@@ -205,7 +205,7 @@
 		debugPlugin.getBreakpointManager().addBreakpointListener(this);

 		EvaluationContextManager.startup();

 	}

-	

+

 	/**

 	 * Called at shutdown by the Java debug ui plug-in

 	 */

@@ -221,7 +221,7 @@
 		JDIDebugModel.removeJavaBreakpointListener(this);

         JavaLogicalStructures.removeStructuresListener(this);

 		System.getProperties().remove(JDIDebugUIPlugin.getUniqueIdentifier() + ".debuggerActive"); //$NON-NLS-1$

-	}	

+	}

 

 	/**

 	 * Initializes compilation error handling and suspending

@@ -232,11 +232,11 @@
 		job.setSystem(true);

 		job.schedule();

 	}

-						

+

 	/**

 	 * Notifies java debug targets of the given breakpoint

 	 * addition or removal.

-	 * 

+	 *

 	 * @param breakpoint a breakpoint

 	 * @param kind ADDED, REMOVED, or CHANGED

 	 */

@@ -247,18 +247,18 @@
 				IJavaDebugTarget target = (IJavaDebugTarget)targets[i];

 				notifyTarget(target, breakpoint, kind);

 			}

-		}	

+		}

 	}

-	

+

 	/**

 	 * Notifies the give debug target of filter specifications

-	 * 

+	 *

 	 * @param target Java debug target

 	 */

 	protected void notifyTargetOfFilters(IJavaDebugTarget target) {

 

 		IPreferenceStore store = JDIDebugUIPlugin.getDefault().getPreferenceStore();

-		

+

 		target.setFilterConstructors(store.getBoolean(IJDIPreferencesConstants.PREF_FILTER_CONSTRUCTORS));

 		target.setFilterStaticInitializers(store.getBoolean(IJDIPreferencesConstants.PREF_FILTER_STATIC_INITIALIZERS));

 		target.setFilterSynthetics(store.getBoolean(IJDIPreferencesConstants.PREF_FILTER_SYNTHETICS));

@@ -267,8 +267,8 @@
 		target.setStepThruFilters(store.getBoolean(IJDIPreferencesConstants.PREF_STEP_THRU_FILTERS));

 		target.setStepFilters(getActiveStepFilters());

 

-	}	

-	

+	}

+

 	/**

 	 * Notifies all targets of current filter specifications.

 	 */

@@ -279,17 +279,17 @@
 				IJavaDebugTarget target = (IJavaDebugTarget)targets[i];

 				notifyTargetOfFilters(target);

 			}

-		}	

-	}		

+		}

+	}

 

 	/**

 	 * Notifies the given target of the given breakpoint

 	 * addition or removal.

-	 * 

+	 *

 	 * @param target Java debug target

 	 * @param breakpoint a breakpoint

 	 * @param kind ADDED, REMOVED, or CHANGED

-	 */	

+	 */

 	protected void notifyTarget(IJavaDebugTarget target, IBreakpoint breakpoint, int kind) {

 		switch (kind) {

 			case ADDED:

@@ -303,7 +303,7 @@
 				break;

 		}

 	}

-	

+

 	/**

 	 * @see IPropertyChangeListener#propertyChange(PropertyChangeEvent)

 	 */

@@ -325,7 +325,7 @@
 				int kind = REMOVED;

 				if (isSuspendOnUncaughtExceptions()) {

 					kind = ADDED;

-				}			

+				}

 				notifyTargets(breakpoint, kind);

 			}

 		} else if (fgDisplayOptions.contains(property)) {

@@ -336,7 +336,7 @@
 			updateActiveFilters();

 		}

 	}

-	

+

 	/**

 	 * Returns whether the given property is a property that affects whether

 	 * or not step filters are used.

@@ -349,7 +349,7 @@
 			property.equals(IJDIPreferencesConstants.PREF_FILTER_SYNTHETICS) ||

 			property.equals(IJDIPreferencesConstants.PREF_STEP_THRU_FILTERS);

 	}

-	

+

 	/**

 	 * Returns whether the given property is a property that affects

 	 * the list of active or inactive step filters.

@@ -358,91 +358,91 @@
 		return property.equals(IJDIPreferencesConstants.PREF_ACTIVE_FILTERS_LIST) ||

 			property.equals(IJDIPreferencesConstants.PREF_INACTIVE_FILTERS_LIST);

 	}

-	

+

 	/**

 	 * Enable/Disable the given breakpoint and notify

 	 * targets of the change.

-	 * 

+	 *

 	 * @param breakpoint a breakpoint

 	 * @param enabled whether enabeld

-	 */ 

+	 */

 	protected void setEnabled(IBreakpoint breakpoint, boolean enabled) {

 		try {

 			breakpoint.setEnabled(enabled);

 			notifyTargets(breakpoint, CHANGED);

 		} catch (CoreException e) {

 			JDIDebugUIPlugin.log(e);

-		}		

+		}

 	}

-	

+

 	/**

 	 * Returns whether suspend on compilation errors is

 	 * enabled.

-	 * 

+	 *

 	 * @return whether suspend on compilation errors is

 	 * enabled

 	 */

 	public boolean isSuspendOnCompilationErrors() {

 		return JDIDebugUIPlugin.getDefault().getPreferenceStore().getBoolean(IJDIPreferencesConstants.PREF_SUSPEND_ON_COMPILATION_ERRORS);

 	}

-	

+

 	/**

 	 * Returns whether suspend on uncaught exception is

 	 * enabled

-	 * 

+	 *

 	 * @return whether suspend on uncaught exception is

 	 * enabled

 	 */

 	protected boolean isSuspendOnUncaughtExceptions() {

 		return JDIDebugUIPlugin.getDefault().getPreferenceStore().getBoolean(IJDIPreferencesConstants.PREF_SUSPEND_ON_UNCAUGHT_EXCEPTIONS);

-	}	

+	}

 

 

 	/**

 	 * Sets the breakpoint used to suspend on uncaught exceptions

-	 * 

+	 *

 	 * @param breakpoint exception breakpoint

 	 */

 	private void setSuspendOnUncaughtExceptionBreakpoint(IJavaExceptionBreakpoint breakpoint) {

 		fSuspendOnExceptionBreakpoint = breakpoint;

 	}

-	

+

 	/**

 	 * Returns the breakpoint used to suspend on uncaught exceptions

-	 * 

+	 *

 	 * @return exception breakpoint

 	 */

 	protected IJavaExceptionBreakpoint getSuspendOnUncaughtExceptionBreakpoint() {

 		return fSuspendOnExceptionBreakpoint;

-	}	

-	

+	}

+

 	/**

-	 * Sets the breakpoint used to suspend on compilation 

+	 * Sets the breakpoint used to suspend on compilation

 	 * errors.

-	 * 

+	 *

 	 * @param breakpoint exception breakpoint

 	 */

 	private void setSuspendOnCompilationErrorsBreakpoint(IJavaExceptionBreakpoint breakpoint) {

 		fSuspendOnErrorBreakpoint = breakpoint;

 	}

-	

+

 	/**

 	 * Returns the breakpoint used to suspend on compilation

 	 * errors

-	 * 

+	 *

 	 * @return exception breakpoint

 	 */

 	protected IJavaExceptionBreakpoint getSuspendOnCompilationErrorBreakpoint() {

 		return fSuspendOnErrorBreakpoint;

-	}	

-	

+	}

+

 	/**

 	 * Parses the comma separated string into an array of strings

-	 * 

+	 *

 	 * @return list

 	 */

 	public static String[] parseList(String listString) {

-		List<String> list = new ArrayList<String>(10);

+		List<String> list = new ArrayList<>(10);

 		StringTokenizer tokenizer = new StringTokenizer(listString, ","); //$NON-NLS-1$

 		while (tokenizer.hasMoreTokens()) {

 			String token = tokenizer.nextToken();

@@ -450,11 +450,11 @@
 		}

 		return list.toArray(new String[list.size()]);

 	}

-	

+

 	/**

 	 * Serializes the array of strings into one comma

 	 * separated string.

-	 * 

+	 *

 	 * @param list array of strings

 	 * @return a single string composed of the given list

 	 */

@@ -471,10 +471,10 @@
 		}

 		return buffer.toString();

 	}

-	

+

 	/**

 	 * Returns the current list of active step filters.

-	 * 

+	 *

 	 * @return current list of active step filters

 	 */

 	protected String[] getActiveStepFilters() {

@@ -485,7 +485,7 @@
 		}

 		return fActiveStepFilters;

 	}

-	

+

 	/**

 	 * Updates local copy of active step filters and

 	 * notifies targets.

@@ -494,13 +494,13 @@
 		fActiveStepFilters= parseList(JDIDebugUIPlugin.getDefault().getPreferenceStore().getString(IJDIPreferencesConstants.PREF_ACTIVE_FILTERS_LIST));

 		notifyTargetsOfFilters();

 	}

-	

+

 	/**

 	 * When a Java debug target is created, install options in

 	 * the target and set that the Java debugger is active.

 	 * When all Java debug targets are terminated set that that Java debugger is

 	 * no longer active.

-	 * 

+	 *

 	 * @see IDebugEventSetListener#handleDebugEvents(DebugEvent[])

 	 */

 	@Override

@@ -511,27 +511,27 @@
 				Object source = event.getSource();

 				if (source instanceof IJavaDebugTarget) {

 					IJavaDebugTarget javaTarget = (IJavaDebugTarget)source;

-					

-					// compilation breakpoints	

+

+					// compilation breakpoints

 					if (isSuspendOnCompilationErrors()) {

 						notifyTarget(javaTarget, getSuspendOnCompilationErrorBreakpoint(), ADDED);

 					}

-					

+

 					// uncaught exception breakpoint

 					if (isSuspendOnUncaughtExceptions()) {

 						ILaunchConfiguration launchConfiguration = javaTarget.getLaunch().getLaunchConfiguration();

 						boolean isSnippetEditor = false;

-						

+

 						try {

 							isSnippetEditor = (launchConfiguration.getAttribute(ScrapbookLauncher.SCRAPBOOK_LAUNCH, (String)null) != null);

 						} catch (CoreException e) {

 						}

-						

-						if (!isSnippetEditor) { 

+

+						if (!isSnippetEditor) {

 							notifyTarget(javaTarget, getSuspendOnUncaughtExceptionBreakpoint(), ADDED);

 						}

 					}

-					

+

 					// step filters

 					notifyTargetOfFilters(javaTarget);

 				}

@@ -553,7 +553,7 @@
 	public int installingBreakpoint(IJavaDebugTarget target, IJavaBreakpoint breakpoint, IJavaType type) {

 		return DONT_CARE;

 	}

-	

+

 	/**

 	 * @see IJavaBreakpointListener#breakpointHit(IJavaThread, IJavaBreakpoint)

 	 */

@@ -575,11 +575,11 @@
 	@Override

 	public void breakpointRemoved(IJavaDebugTarget target, IJavaBreakpoint breakpoint) {

 	}

-	

+

 	/**

 	 * Returns any problem marker associated with the current location

 	 * of the given stack frame, or <code>null</code> if none.

-	 * 

+	 *

 	 * @param frame stack frame

 	 * @return marker representing compilation problem, or <code>null</code>

 	 * @throws DebugException if an exception occurrs retrieveing the problem

@@ -605,8 +605,8 @@
 			}

 		}

 		return null;

-	}	

-	

+	}

+

 	/* (non-Javadoc)

 	 * @see org.eclipse.jdt.debug.core.IJavaBreakpointListener#breakpointHasRuntimeException(org.eclipse.jdt.debug.core.IJavaLineBreakpoint, org.eclipse.debug.core.DebugException)

 	 */

@@ -616,12 +616,12 @@
 		Throwable wrappedException= exception.getStatus().getException();

 		if (wrappedException instanceof InvocationException) {

 			InvocationException ie= (InvocationException) wrappedException;

-			ObjectReference ref= ie.exception();		

+			ObjectReference ref= ie.exception();

 			status= new Status(IStatus.ERROR,JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.ERROR, ref.referenceType().name(), null);

 		} else {

 			status= exception.getStatus();

 		}

-		openConditionErrorDialog(breakpoint, DebugUIMessages.JavaDebugOptionsManager_Conditional_breakpoint_encountered_runtime_exception__1, status); 

+		openConditionErrorDialog(breakpoint, DebugUIMessages.JavaDebugOptionsManager_Conditional_breakpoint_encountered_runtime_exception__1, status);

 	}

 

 	/* (non-Javadoc)

@@ -637,9 +637,9 @@
 			message.append("\n "); //$NON-NLS-1$

 		}

 		IStatus status= new Status(IStatus.ERROR, JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.ERROR, message.toString(), null);

-		openConditionErrorDialog(breakpoint, DebugUIMessages.JavaDebugOptionsManager_Conditional_breakpoint_has_compilation_error_s___2, status); 

+		openConditionErrorDialog(breakpoint, DebugUIMessages.JavaDebugOptionsManager_Conditional_breakpoint_has_compilation_error_s___2, status);

 	}

-	

+

 	private void openConditionErrorDialog(final IJavaLineBreakpoint breakpoint, final String errorMessage, final IStatus status) {

 		final Display display= JDIDebugUIPlugin.getStandardDisplay();

 		if (display.isDisposed()) {

@@ -663,12 +663,12 @@
 			}

 		});

 	}

-	

+

 	/**

 	 * Activates this debug options manager. When active, this

 	 * manager becomes a listener to many notifications and updates

 	 * running debug targets based on these notifications.

-	 * 

+	 *

 	 * A debug options manager does not need to be activated until

 	 * there is a running debug target.

 	 */

@@ -682,11 +682,11 @@
 		DebugPlugin.getDefault().addDebugEventListener(this);

 		JDIDebugModel.addJavaBreakpointListener(this);

         JavaLogicalStructures.addStructuresListener(this);

-	}	

+	}

 

 	/**

 	 * Startup problem handling on the first launch.

-	 * 

+	 *

 	 * @see ILaunchListener#launchAdded(ILaunch)

 	 */

 	@Override

@@ -699,7 +699,7 @@
 	@Override

 	public void launchChanged(ILaunch launch) {

 		activate();

-		DebugPlugin.getDefault().getLaunchManager().removeLaunchListener(this);		

+		DebugPlugin.getDefault().getLaunchManager().removeLaunchListener(this);

 	}

 

 	/**

@@ -708,16 +708,16 @@
 	@Override

 	public void launchRemoved(ILaunch launch) {

 	}

-	

+

 	/**

 	 * Adds message attributes to java breakpoints.

-	 * 

+	 *

 	 * @see org.eclipse.debug.core.IBreakpointsListener#breakpointsAdded(org.eclipse.debug.core.model.IBreakpoint[])

 	 */

 	@Override

 	public void breakpointsAdded(final IBreakpoint[] breakpoints) {

 		// if a breakpoint is added, but already has a message, do not update it

-		List<IBreakpoint> update = new ArrayList<IBreakpoint>();

+		List<IBreakpoint> update = new ArrayList<>();

 		for (int i = 0; i < breakpoints.length; i++) {

 			IBreakpoint breakpoint = breakpoints[i];

 			try {

@@ -732,10 +732,10 @@
 			updateBreakpointMessages(update.toArray(new IBreakpoint[update.size()]));

 		}

 	}

-	

+

 	/**

 	 * Updates message attributes on the given java breakpoints.

-	 * 

+	 *

 	 * @see org.eclipse.debug.core.IBreakpointsListener#breakpointsAdded(org.eclipse.debug.core.model.IBreakpoint[])

 	 */

 	private void updateBreakpointMessages(final IBreakpoint[] breakpoints) {

@@ -746,13 +746,13 @@
 					IBreakpoint breakpoint = breakpoints[i];

 					if (breakpoint instanceof IJavaBreakpoint) {

 						String info = fLabelProvider.getText(breakpoint);

-						String type = DebugUIMessages.JavaDebugOptionsManager_Breakpoint___1; 

+						String type = DebugUIMessages.JavaDebugOptionsManager_Breakpoint___1;

 						if (breakpoint instanceof IJavaMethodBreakpoint || breakpoint instanceof IJavaMethodEntryBreakpoint) {

-							type = DebugUIMessages.JavaDebugOptionsManager_Method_breakpoint___2; 

+							type = DebugUIMessages.JavaDebugOptionsManager_Method_breakpoint___2;

 						} else if (breakpoint instanceof IJavaWatchpoint) {

-							type = DebugUIMessages.JavaDebugOptionsManager_Watchpoint___3;  

+							type = DebugUIMessages.JavaDebugOptionsManager_Watchpoint___3;

 						} else if (breakpoint instanceof IJavaLineBreakpoint) {

-							type = DebugUIMessages.JavaDebugOptionsManager_Line_breakpoint___4; 

+							type = DebugUIMessages.JavaDebugOptionsManager_Line_breakpoint___4;

 						}

 						breakpoint.getMarker().setAttribute(IMarker.MESSAGE, type + info);

 					}

@@ -764,11 +764,11 @@
 		} catch (CoreException e) {

 			JDIDebugUIPlugin.log(e);

 		}

-	}	

+	}

 

 	/**

 	 * Updates message attributes on java breakpoints.

-	 * 

+	 *

 	 * @see org.eclipse.debug.core.IBreakpointsListener#breakpointsChanged(org.eclipse.debug.core.model.IBreakpoint[], org.eclipse.core.resources.IMarkerDelta[])

 	 */

 	@Override

@@ -795,7 +795,7 @@
 	public void logicalStructuresChanged() {

     	variableViewSettingsChanged();

     }

-    

+

     /**

 	 * Refreshes the variables view by firing a change event on a stack frame (active

 	 * debug context).

@@ -807,11 +807,11 @@
         if (selected != null) {

 			IJavaStackFrame frame = selected.getAdapter(IJavaStackFrame.class);

             if (frame != null) {

-                DebugPlugin.getDefault().fireDebugEventSet(new DebugEvent[] { 

+                DebugPlugin.getDefault().fireDebugEventSet(new DebugEvent[] {

                         new DebugEvent(frame, DebugEvent.CHANGE)

                 });

             }

         }

-    }    

+    }

 

 }

diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugPreferencePage.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugPreferencePage.java
index 2cf30b8..d4543af 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugPreferencePage.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugPreferencePage.java
@@ -4,13 +4,13 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui;
 
- 
+
 import org.eclipse.core.runtime.preferences.DefaultScope;
 import org.eclipse.core.runtime.preferences.IEclipsePreferences;
 import org.eclipse.core.runtime.preferences.InstanceScope;
@@ -47,14 +47,14 @@
  * Java Debugging.
  */
 public class JavaDebugPreferencePage extends PreferencePage implements IWorkbenchPreferencePage, IPropertyChangeListener {
-	
+
 	/**
 	 * This class exists to provide visibility to the
 	 * <code>refreshValidState</code> method and to perform more intelligent
 	 * clearing of the error message.
 	 */
-	protected class JavaDebugIntegerFieldEditor extends IntegerFieldEditor {						
-		
+	protected class JavaDebugIntegerFieldEditor extends IntegerFieldEditor {
+
 		public JavaDebugIntegerFieldEditor(String name, String labelText, Composite parent) {
 			super(name, labelText, parent);
 		}
@@ -71,7 +71,7 @@
 			}
 		}
 	}
-	
+
 	// Suspend preference widgets
 	private Button fSuspendButton;
 	private Button fSuspendOnCompilationErrors;
@@ -83,7 +83,7 @@
 	private Button fOnlyIncludeExportedEntries;
 	private Combo fSuspendVMorThread;
 	private Combo fWatchpoint;
-	
+
 	// Hot code replace preference widgets
 	private Button fEnableHCRButton;
 	private Button fAlertHCRButton;
@@ -99,7 +99,7 @@
 	public JavaDebugPreferencePage() {
 		super();
 		setPreferenceStore(JDIDebugUIPlugin.getDefault().getPreferenceStore());
-		setDescription(DebugUIMessages.JavaDebugPreferencePage_description); 
+		setDescription(DebugUIMessages.JavaDebugPreferencePage_description);
 	}
 
 	/* (non-Javadoc)
@@ -110,7 +110,7 @@
 		super.createControl(parent);
 		PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), IJavaDebugHelpContextIds.JAVA_DEBUG_PREFERENCE_PAGE);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
 	 */
@@ -122,69 +122,69 @@
 				"org.eclipse.debug.ui.DebugPreferencePage", DebugUIMessages.JavaDebugPreferencePage_0, //$NON-NLS-1$
 				(IWorkbenchPreferenceContainer) getContainer(),null);
 		link.getControl().setFont(composite.getFont());
-		Group group = SWTFactory.createGroup(composite, DebugUIMessages.JavaDebugPreferencePage_Suspend_Execution_1, 2, 1, GridData.FILL_HORIZONTAL); 
-		fSuspendButton = SWTFactory.createCheckButton(group, DebugUIMessages.JavaDebugPreferencePage_Suspend__execution_on_uncaught_exceptions_1, null, false, 2); 
-		fSuspendOnCompilationErrors = SWTFactory.createCheckButton(group, DebugUIMessages.JavaDebugPreferencePage_Suspend_execution_on_co_mpilation_errors_1, null, false, 2); 
+		Group group = SWTFactory.createGroup(composite, DebugUIMessages.JavaDebugPreferencePage_Suspend_Execution_1, 2, 1, GridData.FILL_HORIZONTAL);
+		fSuspendButton = SWTFactory.createCheckButton(group, DebugUIMessages.JavaDebugPreferencePage_Suspend__execution_on_uncaught_exceptions_1, null, false, 2);
+		fSuspendOnCompilationErrors = SWTFactory.createCheckButton(group, DebugUIMessages.JavaDebugPreferencePage_Suspend_execution_on_co_mpilation_errors_1, null, false, 2);
 		fSuspendDuringEvaluations = SWTFactory.createCheckButton(group, DebugUIMessages.JavaDebugPreferencePage_14, null, false, 2);
 		fOpenInspector = SWTFactory.createCheckButton(group, DebugUIMessages.JavaDebugPreferencePage_20, null, false, 2);
-		
+
 		SWTFactory.createLabel(group, DebugUIMessages.JavaDebugPreferencePage_21, 1);
 		fSuspendVMorThread = new Combo(group, SWT.BORDER|SWT.READ_ONLY);
 		fSuspendVMorThread.setItems(new String[]{DebugUIMessages.JavaDebugPreferencePage_22, DebugUIMessages.JavaDebugPreferencePage_23});
 		fSuspendVMorThread.setFont(group.getFont());
-		
+
 		SWTFactory.createLabel(group, DebugUIMessages.JavaDebugPreferencePage_24, 1);
 		fWatchpoint = new Combo(group, SWT.BORDER | SWT.READ_ONLY);
 		fWatchpoint.setItems(new String[] {DebugUIMessages.JavaDebugPreferencePage_25, DebugUIMessages.JavaDebugPreferencePage_26, DebugUIMessages.JavaDebugPreferencePage_27});
 		fWatchpoint.setFont(group.getFont());
-			
+
 		group = SWTFactory.createGroup(composite, DebugUIMessages.JavaDebugPreferencePage_Hot_Code_Replace_2, 1, 1, GridData.FILL_HORIZONTAL);
 		fEnableHCRButton = SWTFactory.createCheckButton(group, DebugUIMessages.JavaDebugPreferencePage_Enable_hot_code_replace_1, null, true, 1);
-		fAlertHCRButton = SWTFactory.createCheckButton(group, DebugUIMessages.JavaDebugPreferencePage_Alert_me_when_hot_code_replace_fails_1, null, false, 1); 
-		fAlertHCRNotSupportedButton = SWTFactory.createCheckButton(group, DebugUIMessages.JavaDebugPreferencePage_Alert_me_when_hot_code_replace_is_not_supported_1, null, false, 1); 
-		fAlertObsoleteButton = SWTFactory.createCheckButton(group, DebugUIMessages.JavaDebugPreferencePage_Alert_me_when_obsolete_methods_remain_1, null, false, 1); 
-		fPerformHCRWithCompilationErrors = SWTFactory.createCheckButton(group, DebugUIMessages.JavaDebugPreferencePage_Replace_classfiles_containing_compilation_errors_1, null, false, 1);  
+		fAlertHCRButton = SWTFactory.createCheckButton(group, DebugUIMessages.JavaDebugPreferencePage_Alert_me_when_hot_code_replace_fails_1, null, false, 1);
+		fAlertHCRNotSupportedButton = SWTFactory.createCheckButton(group, DebugUIMessages.JavaDebugPreferencePage_Alert_me_when_hot_code_replace_is_not_supported_1, null, false, 1);
+		fAlertObsoleteButton = SWTFactory.createCheckButton(group, DebugUIMessages.JavaDebugPreferencePage_Alert_me_when_obsolete_methods_remain_1, null, false, 1);
+		fPerformHCRWithCompilationErrors = SWTFactory.createCheckButton(group, DebugUIMessages.JavaDebugPreferencePage_Replace_classfiles_containing_compilation_errors_1, null, false, 1);
 
 		group = SWTFactory.createGroup(composite, DebugUIMessages.JavaDebugPreferencePage_Communication_1, 1, 1, GridData.FILL_HORIZONTAL);
 		Composite space = SWTFactory.createComposite(group, group.getFont(), 1, 1, GridData.FILL_HORIZONTAL);
-		
+
 		fTimeoutText = new JavaDebugIntegerFieldEditor(JDIDebugModel.PREF_REQUEST_TIMEOUT, DebugUIMessages.JavaDebugPreferencePage_Debugger__timeout__2, space);
 		fTimeoutText.setPage(this);
 		fTimeoutText.setValidateStrategy(StringFieldEditor.VALIDATE_ON_KEY_STROKE);
 		fTimeoutText.setValidRange(JDIDebugModel.DEF_REQUEST_TIMEOUT, Integer.MAX_VALUE);
-		fTimeoutText.setErrorMessage(NLS.bind(DebugUIMessages.JavaDebugPreferencePage_Value_must_be_a_valid_integer_greater_than__0__ms_1, new Object[] {new Integer(JDIDebugModel.DEF_REQUEST_TIMEOUT)})); 
+		fTimeoutText.setErrorMessage(NLS.bind(DebugUIMessages.JavaDebugPreferencePage_Value_must_be_a_valid_integer_greater_than__0__ms_1, new Object[] {new Integer(JDIDebugModel.DEF_REQUEST_TIMEOUT)}));
 		fTimeoutText.load();
-		fConnectionTimeoutText = new JavaDebugIntegerFieldEditor(JavaRuntime.PREF_CONNECT_TIMEOUT, DebugUIMessages.JavaDebugPreferencePage__Launch_timeout__ms___1, space); 
+		fConnectionTimeoutText = new JavaDebugIntegerFieldEditor(JavaRuntime.PREF_CONNECT_TIMEOUT, DebugUIMessages.JavaDebugPreferencePage__Launch_timeout__ms___1, space);
 		fConnectionTimeoutText.setPage(this);
 		fConnectionTimeoutText.setValidateStrategy(StringFieldEditor.VALIDATE_ON_KEY_STROKE);
 		fConnectionTimeoutText.setValidRange(JavaRuntime.DEF_CONNECT_TIMEOUT, Integer.MAX_VALUE);
-		fConnectionTimeoutText.setErrorMessage(NLS.bind(DebugUIMessages.JavaDebugPreferencePage_Value_must_be_a_valid_integer_greater_than__0__ms_1, new Object[] {new Integer(JavaRuntime.DEF_CONNECT_TIMEOUT)})); 
+		fConnectionTimeoutText.setErrorMessage(NLS.bind(DebugUIMessages.JavaDebugPreferencePage_Value_must_be_a_valid_integer_greater_than__0__ms_1, new Object[] {new Integer(JavaRuntime.DEF_CONNECT_TIMEOUT)}));
 		fConnectionTimeoutText.load();
-		
+
 		SWTFactory.createVerticalSpacer(composite, 1);
 		fPromptUnableToInstallBreakpoint = SWTFactory.createCheckButton(composite, DebugUIMessages.JavaDebugPreferencePage_19, null, false, 1);
 		fPromptDeleteConditionalBreakpoint= SWTFactory.createCheckButton(composite, DebugUIMessages.JavaDebugPreferencePage_promptWhenDeletingCondidtionalBreakpoint, null, false, 1);
 		fFilterUnrelatedBreakpoints = SWTFactory.createCheckButton(composite, DebugUIMessages.JavaDebugPreferencePage_filterUnrelatedBreakpoints, null, false, 1);
-		
+
 		SWTFactory.createVerticalSpacer(composite, 1);
 		fOnlyIncludeExportedEntries = SWTFactory.createCheckButton(composite, DebugUIMessages.JavaDebugPreferencePage_only_include_exported_entries, null, false, 1);
 
 		SWTFactory.createVerticalSpacer(composite, 1);
 		fShowStepResult = SWTFactory.createCheckButton(composite, DebugUIMessages.JavaDebugPreferencePage_ShowStepResult_1, null, false, 1);
-		
+
 		setValues();
 
 		fTimeoutText.setPropertyChangeListener(this);
 		fConnectionTimeoutText.setPropertyChangeListener(this);
-		return composite;		
+		return composite;
 	}
-		
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
 	 */
 	@Override
 	public void init(IWorkbench workbench) {}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.preference.PreferencePage#performOk()
 	 */
@@ -234,7 +234,7 @@
 		}
 		return true;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.preference.PreferencePage#performDefaults()
 	 */
@@ -266,9 +266,9 @@
 			fConnectionTimeoutText.setStringValue(new Integer(prefs.getInt(JavaRuntime.PREF_CONNECT_TIMEOUT,JavaRuntime.DEF_CONNECT_TIMEOUT)).toString());
 			fOnlyIncludeExportedEntries.setSelection(prefs.getBoolean(JavaRuntime.PREF_ONLY_INCLUDE_EXPORTED_CLASSPATH_ENTRIES, false));
 		}
-		super.performDefaults();	
+		super.performDefaults();
 	}
-	
+
 	/**
 	 * Set the values of the component widgets based on the
 	 * values in the preference store
@@ -314,11 +314,11 @@
 			if (newValue) {
 				if (fTimeoutText != null && event.getSource() != fTimeoutText) {
 					fTimeoutText.refreshValidState();
-				} 
+				}
 				if (fConnectionTimeoutText != null && event.getSource() != fConnectionTimeoutText) {
 					fConnectionTimeoutText.refreshValidState();
 				}
-			} 
+			}
 			setValid(fTimeoutText.isValid() && fConnectionTimeoutText.isValid());
 			getContainer().updateButtons();
 			updateApplyButton();
@@ -334,5 +334,5 @@
 			return true;
 		}
 		return false;
-	}	
+	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDetailFormattersManager.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDetailFormattersManager.java
index 9ec16bd..1832c18 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDetailFormattersManager.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDetailFormattersManager.java
@@ -67,10 +67,10 @@
 	 * The default detail formatters manager.
 	 */
 	static private JavaDetailFormattersManager fgDefault;
-	
+
 	/**
 	 * Return the default detail formatters manager.
-	 * 
+	 *
 	 * @return default detail formatters manager.
 	 */
 	static public JavaDetailFormattersManager getDefault() {
@@ -79,19 +79,19 @@
 		}
 		return fgDefault;
 	}
-	
+
 	/**
 	 * Map of types to the associated formatter (code snippet).
 	 * (<code>String</code> -> <code>String</code>)
 	 */
 	private HashMap<String, DetailFormatter> fDetailFormattersMap;
-	
+
 	/**
 	 * Cache of compiled expressions.
 	 * Associate a pair type name/debug target to a compiled expression.
 	 */
 	private HashMap<Key, Expression> fCacheMap;
-	
+
 	/**
 	 * JavaDetailFormattersManager constructor.
 	 */
@@ -101,15 +101,15 @@
 		DebugPlugin.getDefault().getLaunchManager().addLaunchListener(this);
 		DebugPlugin.getDefault().addDebugEventListener(this);
 		DebugUITools.getPreferenceStore().addPropertyChangeListener(this);
-		fCacheMap= new HashMap<Key, Expression>();
+		fCacheMap= new HashMap<>();
 	}
-	
+
 	/**
 	 * Populate the detail formatters map with data from preferences.
 	 */
 	private void populateDetailFormattersMap() {
 		String[] detailFormattersList= JavaDebugOptionsManager.parseList(JDIDebugUIPlugin.getDefault().getPreferenceStore().getString(IJDIPreferencesConstants.PREF_DETAIL_FORMATTERS_LIST));
-		fDetailFormattersMap= new HashMap<String, DetailFormatter>(detailFormattersList.length / 3);
+		fDetailFormattersMap= new HashMap<>(detailFormattersList.length / 3);
 		for (int i= 0, length= detailFormattersList.length; i < length;) {
 			String typeName= detailFormattersList[i++];
 			String snippet= detailFormattersList[i++].replace('\u0000', ',');
@@ -117,17 +117,17 @@
 			fDetailFormattersMap.put(typeName, new DetailFormatter(typeName, snippet, enabled));
 		}
 	}
-	
+
 	/**
 	 * Compute asynchronously the 'toString' of the given value. If a formatter is associated to
 	 * the type of the given value, this formatter is used instead of the <code>toString()</code>
 	 * method.
 	 * The result is return through the listener.
-	 * 
-	 * @param objectValue the value to 'format' 
+	 *
+	 * @param objectValue the value to 'format'
 	 * @param thread the thread to use to performed the evaluation
 	 * @param listener the listener
-	 */	
+	 */
 	public void computeValueDetail(final IJavaValue objectValue, final IJavaThread thread, final IValueDetailListener listener) {
 		thread.queueRunnable(new Runnable() {
 			@Override
@@ -136,7 +136,7 @@
 			}
 		});
 	}
-	
+
 	private void resolveFormatter(final IJavaValue value, final IJavaThread thread, final IValueDetailListener listener) {
 		EvaluationListener evaluationListener= new EvaluationListener(value, thread, listener);
 		if (value instanceof IJavaObject) {
@@ -175,7 +175,7 @@
 			listener.detailComputed(value, detail);
 		}
 	}
-	
+
 	private IJavaProject getJavaProject(IJavaObject javaValue, IJavaThread thread) throws CoreException {
 
 		IType type = null;
@@ -205,7 +205,7 @@
 		}
 		return JavaDebugUtils.resolveJavaProject(stackFrame);
 	}
-	
+
 	/**
 	 * Searches the listing of implemented interfaces to see if one of them has a detail formatter
 	 * @param type the type whose interfaces you want to inspect
@@ -226,7 +226,7 @@
 			}
 		catch(DebugException e) {return null;}
 	}
-	
+
 	/**
 	 * Returns if the specified <code>IJavaType</code> has a detail formatter on one of its interfaces
 	 * @param type the type to inspect
@@ -239,7 +239,7 @@
 		}
 		return false;
 	}
-	
+
 	/**
 	 * Searches the superclass hierarchy to see if any of the specified classes parents have a detail formatter
 	 * @param type the current type. Ideally this should be the first parent class.
@@ -259,7 +259,7 @@
 			}
 		catch(DebugException e) {return null;}
 	}
-	
+
 	/**
 	 * Returns if one of the parent classes of the specified type has a detail formatter
 	 * @param type the type to inspect
@@ -272,11 +272,11 @@
 		}
 		return false;
 	}
-	
+
 	public boolean hasAssociatedDetailFormatter(IJavaType type) {
 		return getAssociatedDetailFormatter(type) != null;
 	}
-	
+
 	public DetailFormatter getAssociatedDetailFormatter(IJavaType type) {
 		String typeName = ""; //$NON-NLS-1$
 		try {
@@ -285,21 +285,21 @@
 			}
 			if (type instanceof IJavaClassType) {
 				typeName = type.getName();
-			} 
+			}
 			else {
 				return null;
 			}
-		} 
+		}
 		catch (DebugException e) {return null;}
 		return fDetailFormattersMap.get(typeName);
 	}
-	
+
 	public void setAssociatedDetailFormatter(DetailFormatter detailFormatter) {
 		fDetailFormattersMap.put(detailFormatter.getTypeName(), detailFormatter);
 		savePreference();
 	}
-	
-	
+
+
 	private void savePreference() {
 		Collection<DetailFormatter> valuesList= fDetailFormattersMap.values();
 		String[] values= new String[valuesList.size() * 3];
@@ -313,7 +313,7 @@
 		String pref = JavaDebugOptionsManager.serializeList(values);
 		JDIDebugUIPlugin.getDefault().getPreferenceStore().setValue(IJDIPreferencesConstants.PREF_DETAIL_FORMATTERS_LIST, pref);
 	}
-	
+
 	/**
 	 * Return the detail formatter (code snippet) associate with
 	 * the given type or one of its super types, super interfaces.
@@ -335,7 +335,7 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Return the detail formatter (code snippet) associate with
 	 * the given type or one of its super types.
@@ -353,11 +353,11 @@
 		}
 		return getDetailFormatterSuperClass(type.getSuperclass());
 	}
-	
+
 	/**
 	 * Return the expression which corresponds to the code formatter associated with the type of
 	 * the given object or <code>null</code> if none.
-	 * 
+	 *
 	 * The code snippet is compiled in the context of the given object.
 	 * @param javaObject the Java object
 	 * @param debugTarget the target
@@ -397,7 +397,7 @@
 		}
 		return null;
 	}
-	
+
 	protected String getArraySnippet(IJavaArray value) throws DebugException {
 		String signature = value.getSignature();
 		int nesting = Signature.getArrayCount(signature);
@@ -430,7 +430,7 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(PropertyChangeEvent)
 	 */
@@ -448,11 +448,11 @@
             if (selected != null) {
                 IJavaStackFrame frame= selected.getAdapter(IJavaStackFrame.class);
                 if (frame != null) {
-                    DebugPlugin.getDefault().fireDebugEventSet(new DebugEvent[] { 
+                    DebugPlugin.getDefault().fireDebugEventSet(new DebugEvent[] {
                             new DebugEvent(frame, DebugEvent.CHANGE)
                     });
                 }
-            }			
+            }
 		}
 	}
 	/**
@@ -464,24 +464,24 @@
 			DebugEvent event = events[i];
 			if (event.getSource() instanceof IJavaDebugTarget && event.getKind() == DebugEvent.TERMINATE) {
 				deleteCacheForTarget((IJavaDebugTarget) event.getSource());
-			}	
+			}
 		}
 	}
-	
+
 	/**
 	 * @see org.eclipse.debug.core.ILaunchesListener#launchesAdded(ILaunch[])
 	 */
 	@Override
 	public void launchesAdded(ILaunch[] launches) {
 	}
-	
+
 	/**
 	 * @see org.eclipse.debug.core.ILaunchesListener#launchesChanged(ILaunch[])
 	 */
 	@Override
 	public void launchesChanged(ILaunch[] launches) {
 	}
-	
+
 	/**
 	 * @see org.eclipse.debug.core.ILaunchesListener#launchesRemoved(ILaunch[])
 	 */
@@ -492,16 +492,16 @@
 			IDebugTarget[] debugTargets= launch.getDebugTargets();
 			for (int j = 0; j < debugTargets.length; j++) {
 				if (debugTargets[j] instanceof IJavaDebugTarget) {
-					deleteCacheForTarget((IJavaDebugTarget)debugTargets[j]);		
+					deleteCacheForTarget((IJavaDebugTarget)debugTargets[j]);
 				}
 			}
 		}
 	}
-	
+
 	/**
 	 * Remove from the cache compiled expression associated with
 	 * the given debug target.
-	 * 
+	 *
 	 * @param debugTarget the target
 	 */
 	private synchronized void deleteCacheForTarget(IJavaDebugTarget debugTarget) {
@@ -512,7 +512,7 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Object used as the key in the cache map for associate a compiled
 	 * expression with a pair type name/debug target
@@ -520,12 +520,12 @@
 	static private class Key {
 		private String fTypeName;
 		private IJavaDebugTarget fDebugTarget;
-		
+
 		Key(String typeName, IJavaDebugTarget debugTarget) {
 			fTypeName= typeName;
 			fDebugTarget= debugTarget;
 		}
-		
+
 		@Override
 		public boolean equals(Object obj) {
 			if (obj instanceof Key) {
@@ -534,20 +534,20 @@
 			}
 			return false;
 		}
-		
+
 		@Override
 		public int hashCode() {
 			return fTypeName.hashCode() / 2 + fDebugTarget.hashCode() / 2;
 		}
 	}
-	
+
 	/**
 	 * Stores a compiled expression and evaluation engine used to evaluate the expression.
 	 */
 	static private class Expression {
 		private ICompiledExpression fExpression;
 		private IAstEvaluationEngine fEngine;
-		
+
 		Expression(ICompiledExpression expression, IAstEvaluationEngine engine) {
 			fExpression = expression;
 			fEngine = engine;
@@ -559,47 +559,47 @@
 			return fEngine;
 		}
 	}
-	
+
 	/**
 	 * Listener use to manage the result of the formatter.
 	 * Utilizes the 'standard' pretty printer methods to return the result.
 	 */
 	static private class EvaluationListener implements IEvaluationListener {
-		
+
 		/**
 		 * The selector of <code>java.lang.Object#toString()</code>,
 		 * used to evaluate 'toString()' for displaying details of values.
 		 */
 		private static final String fgToString= "toString"; //$NON-NLS-1$
-		
-		
+
+
 		/**
 		 * The signature of <code>java.lang.Object#toString()</code>,
 		 * used to evaluate 'toString()' for displaying details of values.
 		 */
 		private static final String fgToStringSignature= "()Ljava/lang/String;"; //$NON-NLS-1$
-		
+
 		/**
 		 * Signature of a string object
 		 */
 		private static final String STRING_SIGNATURE = "Ljava/lang/String;"; //$NON-NLS-1$
-		
+
 		private IJavaValue fValue;
-		
+
 		private IValueDetailListener fListener;
-		
+
 		private IJavaThread fThread;
-		
+
 		public EvaluationListener(IJavaValue value, IJavaThread thread, IValueDetailListener listener) {
 			fValue= value;
 			fThread= thread;
 			fListener= listener;
 		}
-		
+
 		@Override
 		public void evaluationComplete(IEvaluationResult result) {
 			if (result.hasErrors()) {
-				StringBuffer error= new StringBuffer(DebugUIMessages.JavaDetailFormattersManager_Detail_formatter_error___1); 
+				StringBuffer error= new StringBuffer(DebugUIMessages.JavaDetailFormattersManager_Detail_formatter_error___1);
 				DebugException exception= result.getException();
 				if (exception != null) {
 					Throwable throwable= exception.getStatus().getException();
@@ -627,13 +627,13 @@
 				}
 			}
 		}
-		
+
 		public void valueToString(final IJavaValue objectValue) throws DebugException {
 			String nonEvalResult = null;
 			StringBuffer result= null;
 			if (objectValue.getSignature() == null) {
 				// no need to spawn evaluate for a null fValue
-				nonEvalResult = DebugUIMessages.JavaDetailFormattersManager_null; 
+				nonEvalResult = DebugUIMessages.JavaDetailFormattersManager_null;
 			} else if (objectValue instanceof IJavaPrimitiveValue) {
 				// no need to spawn evaluate for a primitive value
 				result = new StringBuffer();
@@ -641,7 +641,7 @@
 			} else if (fThread == null || !fThread.isSuspended()) {
 				// no thread available
 				result = new StringBuffer();
-				result.append(DebugUIMessages.JavaDetailFormattersManager_no_suspended_threads); 
+				result.append(DebugUIMessages.JavaDetailFormattersManager_no_suspended_threads);
 				appendJDIValueString(result, objectValue);
 			} else if (objectValue instanceof IJavaObject && STRING_SIGNATURE.equals(objectValue.getSignature())) {
 				// no need to spawn evaluate for a java.lang.String
@@ -655,7 +655,7 @@
 				fListener.detailComputed(fValue, nonEvalResult);
 				return;
 			}
-			
+
 			IEvaluationRunnable eval = new IEvaluationRunnable() {
 				@Override
 				public void run(IJavaThread thread, IProgressMonitor monitor) throws DebugException {
@@ -672,12 +672,12 @@
 			};
 			fThread.runEvaluation(eval, null, DebugEvent.EVALUATION_IMPLICIT, false);
 		}
-		
+
 		/*
 		 * Gets all values in array and appends the toString() if it is an array of Objects or the value if primitive.
 		 * NB - this method is only called if there is no compiled expression for an array to perform an
 		 * Arrays.asList().toString() to minimize toString() calls on remote target (i.e. one call to
-		 * List.toString() instead of one call per item in the array). 
+		 * List.toString() instead of one call per item in the array).
 		 */
 		protected void appendArrayDetail(StringBuffer result, IJavaArray arrayValue) throws DebugException {
 			result.append('[');
@@ -703,7 +703,7 @@
 				result.append(de.getStatus().getMessage());
 				return;
 			}
-			
+
 			for (int i= 0; i < arrayValues.length; i++) {
 				IJavaValue value= arrayValues[i];
 				if (value instanceof IJavaArray) {
@@ -725,17 +725,17 @@
 				result.append(']');
 			}
 		}
-		
+
 		protected void appendJDIPrimitiveValueString(StringBuffer result, IJavaValue value) throws DebugException {
 			result.append(value.getValueString());
 		}
-		
-		
+
+
 		protected void appendJDIValueString(StringBuffer result, IJavaValue value) throws DebugException {
 			result.append(value.getValueString());
 		}
-		
-		
+
+
 		protected void appendObjectDetail(StringBuffer result, IJavaObject objectValue) throws DebugException {
 			if(objectValue instanceof JDINullValue) {
 				appendJDIValueString(result, objectValue);
@@ -745,20 +745,20 @@
 			if (STRING_SIGNATURE.equals(objectValue.getSignature())) {
 				appendJDIValueString(result, objectValue);
 			} else {
-				
+
 				IJavaValue toStringValue= objectValue.sendMessage(EvaluationListener.fgToString, EvaluationListener.fgToStringSignature, null, fThread, false);
 				if (toStringValue == null) {
-					result.append(DebugUIMessages.JavaDetailFormattersManager__unknown_); 
+					result.append(DebugUIMessages.JavaDetailFormattersManager__unknown_);
 				} else {
 					appendJDIValueString(result, toStringValue);
 				}
 			}
 		}
-		
-		
-		
+
+
+
 	}
-	
+
 	/**
 	 * (non java-doc)
 	 * Remove the provided <code>detailFormatter</code> from the map
@@ -768,15 +768,15 @@
 		fDetailFormattersMap.remove(detailFormatter.getTypeName());
 		savePreference();
 	}
-	
+
 	/**
 	 * Returns the maximum number of chars to display in the details area or 0 if
 	 * there is no maximum.
-	 * 
+	 *
 	 * @return maximum number of chars to display or 0 for no max
 	 */
 	private static int getMaxDetailLength() {
 		return DebugUITools.getPreferenceStore().getInt(IDebugUIConstants.PREF_MAX_DETAIL_LENGTH);
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDetailFormattersPreferencePage.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDetailFormattersPreferencePage.java
index 81d327d..54451be 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDetailFormattersPreferencePage.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDetailFormattersPreferencePage.java
@@ -55,26 +55,26 @@
 import org.eclipse.ui.PlatformUI;
 
 public class JavaDetailFormattersPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
-	
+
 	static public final String DETAIL_FORMATTER_IS_ENABLED= "1"; //$NON-NLS-1$
 	static public final String DETAIL_FORMATTER_IS_DISABLED= "0"; //$NON-NLS-1$
-	
+
 	private CheckboxTableViewer fFormatterListViewer;
 	private Button fAddFormatterButton;
 	private Button fRemoveFormatterButton;
 	private Button fEditFormatterButton;
 	private JDISourceViewer fCodeViewer;
 	private Label fTableLabel;
-	
+
 	private FormatterListViewerContentProvider fFormatViewerContentProvider;
     private Button fInlineFormattersButton;
     private Button fInlineAllButton;
-	
+
 	public JavaDetailFormattersPreferencePage() {
 		super();
-		setTitle(DebugUIMessages.JavaDetailFormattersPreferencePage_0); 
+		setTitle(DebugUIMessages.JavaDetailFormattersPreferencePage_0);
 		setPreferenceStore(JDIDebugUIPlugin.getDefault().getPreferenceStore());
-		setDescription(DebugUIMessages.JavaDetailFormattersPreferencePage_Override_default___toString_____for_Variables_and_Expressions_view_details__1); 
+		setDescription(DebugUIMessages.JavaDetailFormattersPreferencePage_Override_default___toString_____for_Variables_and_Expressions_view_details__1);
 	}
 
 	/* (non-Javadoc)
@@ -86,7 +86,7 @@
 		PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), IJavaDebugHelpContextIds.JAVA_DETAIL_FORMATTER_PREFERENCE_PAGE);
         Font font = parent.getFont();
         initializeDialogUnits(parent);
-        
+
         // top level container
         Composite container = new Composite(parent, SWT.NONE);
         GridLayout layout = new GridLayout();
@@ -97,10 +97,10 @@
         GridData gd = new GridData(GridData.FILL_BOTH);
         container.setLayoutData(gd);
         container.setFont(font);
-        
-		createDetailFormatsPreferences(container);	
+
+		createDetailFormatsPreferences(container);
         createLabelPreferences(container);
-        
+
         Dialog.applyDialogFont(container);
         return container;
 	}
@@ -111,40 +111,40 @@
 	@Override
 	public void init(IWorkbench workbench) {
 	}
-    
+
     private void createLabelPreferences(Composite parent) {
         Group group= new Group(parent, SWT.NONE);
         GridData gridData= new GridData(GridData.FILL_HORIZONTAL);
         gridData.horizontalSpan= 2;
         group.setLayoutData(gridData);
         group.setLayout(new GridLayout());
-        group.setText(DebugUIMessages.JavaDetailFormattersPreferencePage_1); 
-        
+        group.setText(DebugUIMessages.JavaDetailFormattersPreferencePage_1);
+
         String preference= getPreferenceStore().getString(IJDIPreferencesConstants.PREF_SHOW_DETAILS);
-        
+
         // Create the 3 detail option radio buttons
         fInlineFormattersButton = new Button(group, SWT.RADIO);
-        fInlineFormattersButton.setText(DebugUIMessages.JavaDetailFormattersPreferencePage_2); 
+        fInlineFormattersButton.setText(DebugUIMessages.JavaDetailFormattersPreferencePage_2);
         fInlineFormattersButton.setSelection(preference.equals(IJDIPreferencesConstants.INLINE_FORMATTERS));
-        
+
         fInlineAllButton = new Button(group, SWT.RADIO);
-        fInlineAllButton.setText(DebugUIMessages.JavaDetailFormattersPreferencePage_3); 
+        fInlineAllButton.setText(DebugUIMessages.JavaDetailFormattersPreferencePage_3);
         fInlineAllButton.setSelection(preference.equals(IJDIPreferencesConstants.INLINE_ALL));
-        
+
         Button detailPane = new Button(group, SWT.RADIO);
-        detailPane.setText(DebugUIMessages.JavaDetailFormattersPreferencePage_4); 
+        detailPane.setText(DebugUIMessages.JavaDetailFormattersPreferencePage_4);
         detailPane.setSelection(preference.equals(IJDIPreferencesConstants.DETAIL_PANE));
     }
-	
+
 	/**
 	 * Create a group to contain the detail formatters related widgetry
 	 */
 	private Control createDetailFormatsPreferences(Composite parent) {
         Font font= parent.getFont();
-		
+
 		//table label
 		fTableLabel= new Label(parent, SWT.NONE);
-		fTableLabel.setText(DebugUIMessages.JavaDetailFormattersPreferencePage__Types_with_detail_formatters__2); 
+		fTableLabel.setText(DebugUIMessages.JavaDetailFormattersPreferencePage__Types_with_detail_formatters__2);
 		GridData gd= new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
 		gd.horizontalSpan = 2;
 		fTableLabel.setLayoutData(gd);
@@ -187,7 +187,7 @@
 					editType();
 				}
 			}
-		}); 
+		});
 		table.addKeyListener(new KeyAdapter() {
 			@Override
 			public void keyPressed(KeyEvent event) {
@@ -195,27 +195,27 @@
 					removeTypes();
 				}
 			}
-		});	
+		});
 		fFormatterListViewer.setInput(this);
 
 		createDetailFormatsButtons(parent);
 
 		Label label = new Label(parent, SWT.NONE);
-		label.setText(DebugUIMessages.JavaDetailFormattersPreferencePage_Detail_formatter_code_snippet_defined_for_selected_type__3); 
+		label.setText(DebugUIMessages.JavaDetailFormattersPreferencePage_Detail_formatter_code_snippet_defined_for_selected_type__3);
 		label.setFont(font);
         gd= new GridData(GridData.FILL_HORIZONTAL);
         gd.horizontalSpan= 2;
         label.setLayoutData(gd);
 		createSourceViewer(parent);
-		
+
 		fFormatViewerContentProvider.refreshViewer();
 		return parent;
 	}
-	
+
 
 	private void createDetailFormatsButtons(Composite container) {
 		Font font = container.getFont();
-		
+
 		// button container
 		Composite buttonContainer = new Composite(container, SWT.NONE);
 		GridData gd = new GridData(GridData.FILL_VERTICAL);
@@ -225,11 +225,11 @@
 		buttonLayout.marginHeight = 0;
 		buttonLayout.marginWidth = 0;
 		buttonContainer.setLayout(buttonLayout);
-		
+
 		// Add type button
 		fAddFormatterButton = new Button(buttonContainer, SWT.PUSH);
-		fAddFormatterButton.setText(DebugUIMessages.JavaDetailFormattersPreferencePage_Add__Formatter____5); 
-		fAddFormatterButton.setToolTipText(DebugUIMessages.JavaDetailFormattersPreferencePage_Allow_you_to_create_a_new_detail_formatter_6); 
+		fAddFormatterButton.setText(DebugUIMessages.JavaDetailFormattersPreferencePage_Add__Formatter____5);
+		fAddFormatterButton.setToolTipText(DebugUIMessages.JavaDetailFormattersPreferencePage_Allow_you_to_create_a_new_detail_formatter_6);
 		fAddFormatterButton.setLayoutData(gd);
 		fAddFormatterButton.setFont(font);
 		setButtonLayoutData(fAddFormatterButton);
@@ -239,11 +239,11 @@
 				addType();
 			}
 		});
-		
+
 		// Edit button
 		fEditFormatterButton = new Button(buttonContainer, SWT.PUSH);
-		fEditFormatterButton.setText(DebugUIMessages.JavaDetailFormattersPreferencePage__Edit____9); 
-		fEditFormatterButton.setToolTipText(DebugUIMessages.JavaDetailFormattersPreferencePage_Edit_the_selected_detail_formatter_10); 
+		fEditFormatterButton.setText(DebugUIMessages.JavaDetailFormattersPreferencePage__Edit____9);
+		fEditFormatterButton.setToolTipText(DebugUIMessages.JavaDetailFormattersPreferencePage_Edit_the_selected_detail_formatter_10);
 		fEditFormatterButton.setFont(font);
 		setButtonLayoutData(fEditFormatterButton);
 		fEditFormatterButton.addListener(SWT.Selection, new Listener() {
@@ -253,11 +253,11 @@
 			}
 		});
 		fEditFormatterButton.setEnabled(false);
-		
+
 		// Remove button
 		fRemoveFormatterButton = new Button(buttonContainer, SWT.PUSH);
-		fRemoveFormatterButton.setText(DebugUIMessages.JavaDetailFormattersPreferencePage__Remove_7); 
-		fRemoveFormatterButton.setToolTipText(DebugUIMessages.JavaDetailFormattersPreferencePage_Remove_all_selected_detail_formatters_8); 
+		fRemoveFormatterButton.setText(DebugUIMessages.JavaDetailFormattersPreferencePage__Remove_7);
+		fRemoveFormatterButton.setToolTipText(DebugUIMessages.JavaDetailFormattersPreferencePage_Remove_all_selected_detail_formatters_8);
 		fRemoveFormatterButton.setFont(font);
 		setButtonLayoutData(fRemoveFormatterButton);
 		fRemoveFormatterButton.addListener(SWT.Selection, new Listener() {
@@ -268,7 +268,7 @@
 		});
 		fRemoveFormatterButton.setEnabled(false);
 	}
-	
+
 	public void createSourceViewer(Composite container) {
 		fCodeViewer= new JDISourceViewer(container,  null, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.LEFT_TO_RIGHT);
 
@@ -278,7 +278,7 @@
 		fCodeViewer.configure(new DisplayViewerConfiguration());
 		fCodeViewer.setEditable(false);
 		fCodeViewer.setDocument(document);
-		
+
 		Control control= fCodeViewer.getControl();
 		GridData gd= new GridData(GridData.FILL_BOTH);
         gd.horizontalSpan= 2;
@@ -306,7 +306,7 @@
 			fFormatViewerContentProvider.addDetailFormatter(detailFormat);
 		}
 	}
-	
+
 	public void removeTypes() {
 		Object[] all = fFormatViewerContentProvider.getElements(null);
 		IStructuredSelection selection= (IStructuredSelection)fFormatterListViewer.getSelection();
@@ -328,7 +328,7 @@
 			fFormatterListViewer.setSelection(new StructuredSelection(all[index]));
 		}
 	}
-	
+
 	public void editType() {
 		IStructuredSelection selection= (IStructuredSelection)fFormatterListViewer.getSelection();
 		if (new DetailFormatterDialog(getShell(), (DetailFormatter)(selection).getFirstElement(), null, true, true).open() == Window.OK) {
@@ -337,12 +337,12 @@
 			updatePage(selection);
 		}
 	}
-	
+
 	@Override
 	public boolean performOk() {
 		if (fFormatViewerContentProvider != null) {
 			fFormatViewerContentProvider.saveDetailFormatters();
-	
+
 	        String value= IJDIPreferencesConstants.DETAIL_PANE;
 	        if (fInlineAllButton.getSelection()) {
 	            value= IJDIPreferencesConstants.INLINE_ALL;
@@ -354,15 +354,15 @@
 		}
 		return true;
 	}
-	
+
 	class FormatterListViewerContentProvider implements IStructuredContentProvider {
-		
+
 		private Set<DetailFormatter> fDetailFormattersSet;
-		
+
 		private List<String> fDefinedTypes;
-		
+
 		private CheckboxTableViewer fViewer;
-		
+
 		/**
 		 * FormatterListViewerContentProvider constructor.
 		 */
@@ -370,8 +370,8 @@
 			fViewer= viewer;
 			// load the current formatters
 			String[] detailFormattersList= JavaDebugOptionsManager.parseList(JDIDebugUIPlugin.getDefault().getPreferenceStore().getString(IJDIPreferencesConstants.PREF_DETAIL_FORMATTERS_LIST));
-			fDetailFormattersSet= new TreeSet<DetailFormatter>();
-			fDefinedTypes= new ArrayList<String>(detailFormattersList.length / 3);
+			fDetailFormattersSet= new TreeSet<>();
+			fDefinedTypes= new ArrayList<>(detailFormattersList.length / 3);
 			for (int i= 0, length= detailFormattersList.length; i < length;) {
 				String typeName= detailFormattersList[i++];
 				String snippet= detailFormattersList[i++].replace('\u0000', ',');
@@ -381,7 +381,7 @@
 				fDefinedTypes.add(typeName);
 			}
 		}
-		
+
 		/**
 		 * Save the detail formatter list.
 		 */
@@ -396,9 +396,9 @@
 			}
 			String pref = JavaDebugOptionsManager.serializeList(values);
 			getPreferenceStore().setValue(IJDIPreferencesConstants.PREF_DETAIL_FORMATTERS_LIST, pref);
-			
+
 		}
-		
+
 		/**
 		 * Add a detail formatter.
 		 */
@@ -411,7 +411,7 @@
 			fViewer.setSelection(selection);
 			updatePage(selection);
 		}
-		
+
 		/**
 		 * Remove a detailFormatter
 		 */
@@ -423,7 +423,7 @@
 			fViewer.setSelection(selection);
 			updatePage(selection);
 		}
-		
+
 		/**
 		 * Remove detailFormatters
 		 */
@@ -437,9 +437,9 @@
 			fViewer.setSelection(selection);
 			updatePage(selection);
 		}
-		
+
 		/**
-		 * Refresh the formatter list viewer. 
+		 * Refresh the formatter list viewer.
 		 */
 		private void refreshViewer() {
 			DetailFormatter[] checkedElementsTmp= new DetailFormatter[fDetailFormattersSet.size()];
@@ -455,7 +455,7 @@
 			fViewer.setAllChecked(false);
 			fViewer.setCheckedElements(checkedElements);
 		}
-		
+
 		/**
 		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(Object)
 		 */
@@ -463,11 +463,11 @@
 		public Object[] getElements(Object inputElement) {
 			return fDetailFormattersSet.toArray();
 		}
-		
+
 		public List<String> getDefinedTypes() {
 			return fDefinedTypes;
 		}
-		
+
 		/**
 		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
 		 */
@@ -482,7 +482,7 @@
 		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
 		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.preference.PreferencePage#performCancel()
 	 */
@@ -492,5 +492,5 @@
 			fCodeViewer.dispose();
 		}
 		return super.performCancel();
-	}	
+	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaHotCodeReplaceListener.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaHotCodeReplaceListener.java
index 3a347e9..422ce8c 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaHotCodeReplaceListener.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaHotCodeReplaceListener.java
@@ -60,7 +60,7 @@
 		if (display.isDisposed()) {
 			return;
 		}
-		
+
 		String name = null;
 		try {
 			name = target.getName();
@@ -77,13 +77,13 @@
 		if (exception == null) {
 			status = new Status(IStatus.WARNING, JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.WARNING, DebugUIMessages.JDIDebugUIPlugin_The_target_VM_does_not_support_hot_code_replace_1, null);
 			preference= IJDIPreferencesConstants.PREF_ALERT_HCR_NOT_SUPPORTED;
-			alertMessage= DebugUIMessages.JDIDebugUIPlugin_3; 
+			alertMessage= DebugUIMessages.JDIDebugUIPlugin_3;
 		} else {
 			status = new Status(IStatus.WARNING, JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.WARNING, exception.getMessage(), exception.getCause());
 			preference= IJDIPreferencesConstants.PREF_ALERT_HCR_FAILED;
-			alertMessage= DebugUIMessages.JDIDebugUIPlugin_1; 
+			alertMessage= DebugUIMessages.JDIDebugUIPlugin_1;
 		}
-		final String title = DebugUIMessages.JDIDebugUIPlugin_Hot_code_replace_failed_1; 
+		final String title = DebugUIMessages.JDIDebugUIPlugin_Hot_code_replace_failed_1;
 		final String message = NLS.bind(DebugUIMessages.JDIDebugUIPlugin__0__was_unable_to_replace_the_running_code_with_the_code_in_the_workspace__2, new Object[] {vmName, launchName});
 		display.asyncExec(new Runnable() {
 			@Override
@@ -110,7 +110,7 @@
 			}
 		});
 	}
-	
+
 	/**
 	 * @see IJavaHotCodeReplaceListener#obsoleteMethods(IJavaDebugTarget)
 	 */
@@ -124,10 +124,10 @@
 			return;
 		}
 		final String vmName= fLabelProvider.getText(target);
-		final String dialogTitle= DebugUIMessages.JDIDebugUIPlugin_Obsolete_methods_remain_1; 
-		final String message= NLS.bind(DebugUIMessages.JDIDebugUIPlugin__0__contains_obsolete_methods_1, new Object[] {vmName}); 
-		final IStatus status= new Status(IStatus.WARNING, JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.WARNING, DebugUIMessages.JDIDebugUIPlugin_Stepping_may_be_hazardous_1, null); 
-		final String toggleMessage= DebugUIMessages.JDIDebugUIPlugin_2; 
+		final String dialogTitle= DebugUIMessages.JDIDebugUIPlugin_Obsolete_methods_remain_1;
+		final String message= NLS.bind(DebugUIMessages.JDIDebugUIPlugin__0__contains_obsolete_methods_1, new Object[] {vmName});
+		final IStatus status= new Status(IStatus.WARNING, JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.WARNING, DebugUIMessages.JDIDebugUIPlugin_Stepping_may_be_hazardous_1, null);
+		final String toggleMessage= DebugUIMessages.JDIDebugUIPlugin_2;
 		display.asyncExec(new Runnable() {
 			@Override
 			public void run() {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaLogicalStructuresPreferencePage.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaLogicalStructuresPreferencePage.java
index aae3404..ef4c59c 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaLogicalStructuresPreferencePage.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaLogicalStructuresPreferencePage.java
@@ -59,7 +59,7 @@
 import org.eclipse.ui.PlatformUI;
 
 /**
- * The preference page for creating/modifying logical structures 
+ * The preference page for creating/modifying logical structures
  */
 public class JavaLogicalStructuresPreferencePage extends PreferencePage implements IWorkbenchPreferencePage, ISelectionChangedListener, Listener {
 
@@ -82,7 +82,7 @@
                 buffer.append(logicalStructure.getDescription());
                 String pluginId= logicalStructure.getContributingPluginId();
                 if (pluginId != null) {
-                    buffer.append(NLS.bind(DebugUIMessages.JavaLogicalStructuresPreferencePage_8, new String[] {pluginId})); 
+                    buffer.append(NLS.bind(DebugUIMessages.JavaLogicalStructuresPreferencePage_8, new String[] {pluginId}));
                 }
             }
             return buffer.toString();
@@ -93,11 +93,11 @@
             return null;
         }
     }
-    
+
     public class LogicalStructuresListViewerContentProvider implements IStructuredContentProvider {
-        
+
         private List<JavaLogicalStructure> fLogicalStructures;
-        
+
         LogicalStructuresListViewerContentProvider() {
 			fLogicalStructures = new ArrayList<>();
 			JavaLogicalStructure[] logicalStructures= JavaLogicalStructures.getJavaLogicalStructures();
@@ -181,20 +181,20 @@
 		}
 
     }
-    
+
 	private TableViewer fLogicalStructuresViewer;
 	private Button fAddLogicalStructureButton;
 	private Button fEditLogicalStructureButton;
 	private Button fRemoveLogicalStructureButton;
     private LogicalStructuresListViewerContentProvider fLogicalStructuresContentProvider;
-    
+
     protected static String[] fTableColumnProperties= {
         "type", //$NON-NLS-1$
         "showAs", //$NON-NLS-1$
     };
     protected String[] fTableColumnHeaders= {
-        DebugUIMessages.JavaLogicalStructuresPreferencePage_9, 
-        DebugUIMessages.JavaLogicalStructuresPreferencePage_10, 
+        DebugUIMessages.JavaLogicalStructuresPreferencePage_9,
+        DebugUIMessages.JavaLogicalStructuresPreferencePage_10,
     };
     protected ColumnLayoutData[] fTableColumnLayouts= {
         new ColumnWeightData(70),
@@ -206,9 +206,9 @@
 	 * Constructor
 	 */
 	public JavaLogicalStructuresPreferencePage() {
-		super(DebugUIMessages.JavaLogicalStructuresPreferencePage_0); 
+		super(DebugUIMessages.JavaLogicalStructuresPreferencePage_0);
 		setPreferenceStore(JDIDebugUIPlugin.getDefault().getPreferenceStore());
-        setDescription(DebugUIMessages.JavaLogicalStructuresPreferencePage_11); 
+        setDescription(DebugUIMessages.JavaLogicalStructuresPreferencePage_11);
 	}
 
 	@Override
@@ -216,7 +216,7 @@
 		super.createControl(parent);
 		PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), IJavaDebugHelpContextIds.JAVA_LOGICAL_STRUCTURES_PAGE);
 	}
-	
+
 	@Override
 	protected Control createContents(Composite parent) {
         Composite comp = SWTFactory.createComposite(parent, parent.getFont(), 2, 1, GridData.FILL_BOTH, 0, 2);
@@ -226,14 +226,14 @@
         noDefaultAndApplyButton();
 		return comp;
 	}
-    
+
     /**
      * Creates the source viewer
      * @param parent the parent to add the viewer to
      */
     public void createSourceViewer(Composite parent) {
     	SWTFactory.createWrapLabel(parent, DebugUIMessages.JavaLogicalStructuresPreferencePage_12, 2, 300);
-        
+
         fCodeViewer = new JDISourceViewer(parent,  null, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.LEFT_TO_RIGHT);
 
         JavaTextTools tools = JDIDebugUIPlugin.getDefault().getJavaTextTools();
@@ -242,7 +242,7 @@
         fCodeViewer.configure(new DisplayViewerConfiguration());
         fCodeViewer.setEditable(false);
         fCodeViewer.setDocument(document);
-        
+
         Control control = fCodeViewer.getControl();
         GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
         gd.horizontalSpan = 2;
@@ -258,13 +258,13 @@
         // button container
 		Composite buttonContainer = SWTFactory.createComposite(container, container.getFont(), 1, 1, GridData.VERTICAL_ALIGN_BEGINNING, 1, 0);
        // add button
-		fAddLogicalStructureButton = SWTFactory.createPushButton(buttonContainer, DebugUIMessages.JavaLogicalStructuresPreferencePage_2, DebugUIMessages.JavaLogicalStructuresPreferencePage_3, null); 
+		fAddLogicalStructureButton = SWTFactory.createPushButton(buttonContainer, DebugUIMessages.JavaLogicalStructuresPreferencePage_2, DebugUIMessages.JavaLogicalStructuresPreferencePage_3, null);
         fAddLogicalStructureButton.addListener(SWT.Selection, this);
        // edit button
-		fEditLogicalStructureButton = SWTFactory.createPushButton(buttonContainer, DebugUIMessages.JavaLogicalStructuresPreferencePage_4, DebugUIMessages.JavaLogicalStructuresPreferencePage_5, null); 
+		fEditLogicalStructureButton = SWTFactory.createPushButton(buttonContainer, DebugUIMessages.JavaLogicalStructuresPreferencePage_4, DebugUIMessages.JavaLogicalStructuresPreferencePage_5, null);
         fEditLogicalStructureButton.addListener(SWT.Selection, this);
        // remove button
-		fRemoveLogicalStructureButton = SWTFactory.createPushButton(buttonContainer, DebugUIMessages.JavaLogicalStructuresPreferencePage_6, DebugUIMessages.JavaLogicalStructuresPreferencePage_7, null); 
+		fRemoveLogicalStructureButton = SWTFactory.createPushButton(buttonContainer, DebugUIMessages.JavaLogicalStructuresPreferencePage_6, DebugUIMessages.JavaLogicalStructuresPreferencePage_7, null);
         fRemoveLogicalStructureButton.addListener(SWT.Selection, this);
         // initialize the buttons state
 		selectionChanged((IStructuredSelection)fLogicalStructuresViewer.getSelection());
@@ -275,7 +275,7 @@
      */
     private void createTable(Composite parent) {
     	SWTFactory.createWrapLabel(parent, DebugUIMessages.JavaLogicalStructuresPreferencePage_1, 2, 300);
-        
+
         // logical structures list
         fLogicalStructuresViewer = new TableViewer(parent, SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL);
         Table table = (Table)fLogicalStructuresViewer.getControl();
@@ -288,7 +288,7 @@
         table.setLayout(tableLayout);
         table.setHeaderVisible(true);
         table.setLinesVisible(true);
-        
+
         // create table columns
         fLogicalStructuresViewer.setColumnProperties(fTableColumnProperties);
         for (int i = 0; i < fTableColumnHeaders.length; i++) {
@@ -297,7 +297,7 @@
             column.setResizable(fTableColumnLayouts[i].resizable);
             column.setText(fTableColumnHeaders[i]);
         }
-        
+
         fLogicalStructuresContentProvider= new LogicalStructuresListViewerContentProvider();
         fLogicalStructuresViewer.setContentProvider(fLogicalStructuresContentProvider);
         fLogicalStructuresViewer.setLabelProvider(new LogicalStructuresListViewerLabelProvider());
@@ -319,7 +319,7 @@
                 	removeLogicalStrutures();
                 }
             }
-        }); 
+        });
         fLogicalStructuresViewer.setComparator(new ViewerComparator() {
             @Override
 			public int compare(Viewer iViewer, Object e1, Object e2) {
@@ -354,7 +354,7 @@
 			selectionChanged((IStructuredSelection)selection);
 		}
 	}
-	
+
 	/**
 	 * Modify the state of the button from the selection.
 	 * @param structuredSelection the selection that changed
@@ -378,7 +378,7 @@
 			refreshCodeViewer(structure);
 		}
 	}
-	
+
 	/**
 	 * Refreshes the code viewer after an edit has taken place
 	 * @param structure the logical structure that was modified
@@ -419,7 +419,7 @@
 	}
 
 	/**
-	 * Performs the add button operation 
+	 * Performs the add button operation
 	 */
 	protected void addLogicalStructure() {
 		JavaLogicalStructure logicalStructure= new JavaLogicalStructure("", true, "", "", new String[0][]); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
@@ -431,7 +431,7 @@
 	}
 
 	/**
-	 * Performs the edit button operation 
+	 * Performs the edit button operation
 	 */
 	protected void editLogicalStructure() {
 		IStructuredSelection structuredSelection= (IStructuredSelection) fLogicalStructuresViewer.getSelection();
@@ -445,7 +445,7 @@
 	}
 
 	/**
-	 * Performs the remove button operation 
+	 * Performs the remove button operation
 	 */
 	protected void removeLogicalStrutures() {
 		IStructuredSelection selection= (IStructuredSelection)fLogicalStructuresViewer.getSelection();
@@ -471,9 +471,9 @@
 				fLogicalStructuresViewer.setSelection(new StructuredSelection(newSelectedElement));
 			}
 		}
-		
+
 	}
-	
+
 	@Override
 	public boolean performOk() {
 		if (fCodeViewer != null) {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaPrimitivesPreferencePage.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaPrimitivesPreferencePage.java
index 27b3bfb..d4a8287 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaPrimitivesPreferencePage.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaPrimitivesPreferencePage.java
@@ -4,13 +4,13 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui;
 
- 
+
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -32,13 +32,13 @@
  * Java Debugging.
  */
 public class JavaPrimitivesPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
-	
-	private List<BooleanFieldEditor> fEdtiors = new ArrayList<BooleanFieldEditor>();
+
+	private List<BooleanFieldEditor> fEdtiors = new ArrayList<>();
 
 	public JavaPrimitivesPreferencePage() {
 		super(DebugUIMessages.JavaPrimitivesPreferencePage_0);
 		setPreferenceStore(JDIDebugUIPlugin.getDefault().getPreferenceStore());
-		setDescription(DebugUIMessages.JavaPrimitivesPreferencePage_1); 
+		setDescription(DebugUIMessages.JavaPrimitivesPreferencePage_1);
 	}
 
 	/**
@@ -47,7 +47,7 @@
 	@Override
 	protected Control createContents(Composite parent) {
 		PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), IJavaDebugHelpContextIds.JAVA_PRIMITIVES_PREFERENCE_PAGE);
-		
+
 		//The main composite
 		Composite composite = new Composite(parent, SWT.NULL);
 		GridLayout layout = new GridLayout();
@@ -58,11 +58,11 @@
 		GridData data = new GridData();
 		data.verticalAlignment = GridData.FILL;
 		data.horizontalAlignment = GridData.FILL;
-		composite.setLayoutData(data);		
-		
+		composite.setLayoutData(data);
+
 		IPreferenceStore preferenceStore = JDIDebugUIPlugin.getDefault().getPreferenceStore();
-		
-		BooleanFieldEditor editor = new BooleanFieldEditor(IJDIPreferencesConstants.PREF_SHOW_HEX, 
+
+		BooleanFieldEditor editor = new BooleanFieldEditor(IJDIPreferencesConstants.PREF_SHOW_HEX,
 				DebugUIMessages.JavaDebugPreferencePage_Display__hexadecimal_values__byte__short__char__int__long__3,
 				composite);
 		editor.setPreferenceStore(preferenceStore);
@@ -77,19 +77,19 @@
 				composite);
 		editor.setPreferenceStore(preferenceStore);
 		fEdtiors.add(editor);
-		
+
 		loadValues();
 		applyDialogFont(composite);
-		return composite;		
+		return composite;
 	}
-		
+
 	/**
 	 * @see IWorkbenchPreferencePage#init(IWorkbench)
 	 */
 	@Override
 	public void init(IWorkbench workbench) {
 	}
-	
+
 	/**
 	 * @see org.eclipse.jface.preference.IPreferencePage#performOk()
 	 * Also, notifies interested listeners
@@ -99,7 +99,7 @@
 		storeValues();
 		return true;
 	}
-	
+
 	/**
 	 * Sets the default preferences.
 	 * @see PreferencePage#performDefaults()
@@ -111,9 +111,9 @@
 			BooleanFieldEditor editor = iterator.next();
 			editor.loadDefault();
 		}
-		super.performDefaults();	
+		super.performDefaults();
 	}
-			
+
 	/**
 	 * Set the values of the component widgets based on the
 	 * values in the preference store
@@ -125,7 +125,7 @@
 			editor.load();
 		}
 	}
-	
+
 	/**
 	 * Store the preference values based on the state of the
 	 * component widgets
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaSourceLocationWorkbenchAdapterFactory.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaSourceLocationWorkbenchAdapterFactory.java
index f03aebf..efdeee4 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaSourceLocationWorkbenchAdapterFactory.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaSourceLocationWorkbenchAdapterFactory.java
@@ -4,13 +4,13 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui;
 
- 
+
 import java.io.IOException;
 
 import org.eclipse.core.runtime.IAdapterFactory;
@@ -28,16 +28,16 @@
 
 /**
  * UI adapter factory for JDI Debug
- * 
+ *
  * @deprecated
  */
 @Deprecated
 /*package*/ class JavaSourceLocationWorkbenchAdapterFactory implements IAdapterFactory {
 
 	class SourceLocationPropertiesAdapter implements IWorkbenchAdapter {
-		
+
 		private JavaElementLabelProvider fJavaElementLabelProvider = new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_BASICS);
-	
+
 		/**
 		 * @see IWorkbenchAdapter#getChildren(Object)
 		 */
@@ -89,7 +89,7 @@
 			return null;
 		}
 	}
-	
+
 	/**
 	 * @see IAdapterFactory#getAdapter(Object, Class)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaStepFilterPreferencePage.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaStepFilterPreferencePage.java
index 614f4e1..4529693 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaStepFilterPreferencePage.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaStepFilterPreferencePage.java
@@ -55,22 +55,22 @@
 
 /**
  * The preference page for Java step filtering, located at the node Java > Debug > Step Filtering
- * 
+ *
  * @since 3.0
  */
 public class JavaStepFilterPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
-	
+
 	public static final String PAGE_ID = "org.eclipse.jdt.debug.ui.JavaStepFilterPreferencePage"; //$NON-NLS-1$
-	
+
 	/**
 	 * Content provider for the table.  Content consists of instances of StepFilter.
 	 * @since 3.2
-	 */	
+	 */
 	class StepFilterContentProvider implements IStructuredContentProvider {
 		public StepFilterContentProvider() {
 			initTableState(false);
 		}
-		
+
 		@Override
 		public Object[] getElements(Object inputElement) {return getAllFiltersFromTable();}
 
@@ -78,9 +78,9 @@
 		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {}
 
 		@Override
-		public void dispose() {}		
+		public void dispose() {}
 	}
-	
+
 	//widgets
 	private CheckboxTableViewer fTableViewer;
 	private Button fUseStepFiltersButton;
@@ -96,15 +96,15 @@
 	private Button fStepThruButton;
 	private Button fSelectAllButton;
 	private Button fDeselectAllButton;
-	
+
 	/**
 	 * Constructor
 	 */
 	public JavaStepFilterPreferencePage() {
 		super();
 		setPreferenceStore(JDIDebugUIPlugin.getDefault().getPreferenceStore());
-		setTitle(DebugUIMessages.JavaStepFilterPreferencePage_title); 
-		setDescription(DebugUIMessages.JavaStepFilterPreferencePage_description); 
+		setTitle(DebugUIMessages.JavaStepFilterPreferencePage_title);
+		setDescription(DebugUIMessages.JavaStepFilterPreferencePage_description);
 	}
 
 	/* (non-Javadoc)
@@ -116,7 +116,7 @@
 	//The main composite
 		Composite composite = SWTFactory.createComposite(parent, parent.getFont(), 1, 1, GridData.FILL_BOTH, 0, 0);
 		createStepFilterPreferences(composite);
-		return composite;	
+		return composite;
 	}
 
 	/* (non-Javadoc)
@@ -124,7 +124,7 @@
 	 */
 	@Override
 	public void init(IWorkbench workbench) {}
-	
+
 	/**
 	 * handles the filter button being clicked
 	 * @param event the clicked event
@@ -134,7 +134,7 @@
 			removeFilters();
 		}
 	}
-	
+
 	/**
 	 * Create a group to contain the step filter related widgetry
 	 */
@@ -171,23 +171,23 @@
 				if (selection.isEmpty()) {
 					fRemoveFilterButton.setEnabled(false);
 				} else {
-					fRemoveFilterButton.setEnabled(true);					
+					fRemoveFilterButton.setEnabled(true);
 				}
 			}
-		});	
+		});
 		fTableViewer.getControl().addKeyListener(new KeyAdapter() {
 			@Override
 			public void keyPressed(KeyEvent event) {
 				handleFilterViewerKeyPress(event);
 			}
-		});	
-		
+		});
+
 		createStepFilterButtons(container);
 		createStepFilterCheckboxes(container);
 
 		setPageEnablement(fUseStepFiltersButton.getSelection());
 	}
-	
+
 	/**
 	 * initializes the checked state of the filters when the dialog opens
 	 * @since 3.2
@@ -199,9 +199,9 @@
 			fTableViewer.setChecked(filters[i], filters[i].isChecked());
 		}
 	}
-	
+
 	/**
-	 * Enables or disables the widgets on the page, with the 
+	 * Enables or disables the widgets on the page, with the
 	 * exception of <code>fUseStepFiltersButton</code> according
 	 * to the passed boolean
 	 * @param enabled the new enablement status of the page's widgets
@@ -228,26 +228,26 @@
 	 * @param container the parent container
 	 */
 	private void createStepFilterCheckboxes(Composite container) {
-		fFilterSyntheticButton = SWTFactory.createCheckButton(container, 
-				DebugUIMessages.JavaStepFilterPreferencePage_Filter_s_ynthetic_methods__requires_VM_support__17, 
+		fFilterSyntheticButton = SWTFactory.createCheckButton(container,
+				DebugUIMessages.JavaStepFilterPreferencePage_Filter_s_ynthetic_methods__requires_VM_support__17,
 				null, getPreferenceStore().getBoolean(IJDIPreferencesConstants.PREF_FILTER_SYNTHETICS), 2);
-		fFilterStaticButton = SWTFactory.createCheckButton(container, 
-				DebugUIMessages.JavaStepFilterPreferencePage_Filter_static__initializers_18, 
+		fFilterStaticButton = SWTFactory.createCheckButton(container,
+				DebugUIMessages.JavaStepFilterPreferencePage_Filter_static__initializers_18,
 				null, getPreferenceStore().getBoolean(IJDIPreferencesConstants.PREF_FILTER_STATIC_INITIALIZERS), 2);
-		fFilterConstructorButton = SWTFactory.createCheckButton(container, 
-				DebugUIMessages.JavaStepFilterPreferencePage_Filter_co_nstructors_19, 
+		fFilterConstructorButton = SWTFactory.createCheckButton(container,
+				DebugUIMessages.JavaStepFilterPreferencePage_Filter_co_nstructors_19,
 				null, getPreferenceStore().getBoolean(IJDIPreferencesConstants.PREF_FILTER_CONSTRUCTORS), 2);
-		fFilterGetterButton = SWTFactory.createCheckButton(container, 
-				DebugUIMessages.JavaStepFilterPreferencePage_Filter_getters, 
+		fFilterGetterButton = SWTFactory.createCheckButton(container,
+				DebugUIMessages.JavaStepFilterPreferencePage_Filter_getters,
 				null, getPreferenceStore().getBoolean(IJDIPreferencesConstants.PREF_FILTER_GETTERS), 2);
-		fFilterSetterButton = SWTFactory.createCheckButton(container, 
-				DebugUIMessages.JavaStepFilterPreferencePage_Filter_setters, 
+		fFilterSetterButton = SWTFactory.createCheckButton(container,
+				DebugUIMessages.JavaStepFilterPreferencePage_Filter_setters,
 				null, getPreferenceStore().getBoolean(IJDIPreferencesConstants.PREF_FILTER_SETTERS), 2);
-		fStepThruButton = SWTFactory.createCheckButton(container, 
-				DebugUIMessages.JavaStepFilterPreferencePage_0, 
+		fStepThruButton = SWTFactory.createCheckButton(container,
+				DebugUIMessages.JavaStepFilterPreferencePage_0,
 				null, getPreferenceStore().getBoolean(IJDIPreferencesConstants.PREF_STEP_THRU_FILTERS), 2);
 	}
-	
+
 	/**
 	 * Creates the button for the step filter options
 	 * @param container the parent container
@@ -264,8 +264,8 @@
 		buttonLayout.marginWidth = 0;
 		buttonContainer.setLayout(buttonLayout);
 	//Add filter button
-		fAddFilterButton = SWTFactory.createPushButton(buttonContainer, 
-				DebugUIMessages.JavaStepFilterPreferencePage_Add__Filter_9, 
+		fAddFilterButton = SWTFactory.createPushButton(buttonContainer,
+				DebugUIMessages.JavaStepFilterPreferencePage_Add__Filter_9,
 				DebugUIMessages.JavaStepFilterPreferencePage_Key_in_the_name_of_a_new_step_filter_10, null);
 		fAddFilterButton.addListener(SWT.Selection, new Listener() {
 			@Override
@@ -274,8 +274,8 @@
 			}
 		});
 	//Add type button
-		fAddTypeButton = SWTFactory.createPushButton(buttonContainer, 
-				DebugUIMessages.JavaStepFilterPreferencePage_Add__Type____11, 
+		fAddTypeButton = SWTFactory.createPushButton(buttonContainer,
+				DebugUIMessages.JavaStepFilterPreferencePage_Add__Type____11,
 				DebugUIMessages.JavaStepFilterPreferencePage_Choose_a_Java_type_and_add_it_to_step_filters_12, null);
 		fAddTypeButton.addListener(SWT.Selection, new Listener() {
 			@Override
@@ -284,8 +284,8 @@
 			}
 		});
 	//Add package button
-		fAddPackageButton = SWTFactory.createPushButton(buttonContainer, 
-				DebugUIMessages.JavaStepFilterPreferencePage_Add__Package____13, 
+		fAddPackageButton = SWTFactory.createPushButton(buttonContainer,
+				DebugUIMessages.JavaStepFilterPreferencePage_Add__Package____13,
 				DebugUIMessages.JavaStepFilterPreferencePage_Choose_a_package_and_add_it_to_step_filters_14, null);
 		fAddPackageButton.addListener(SWT.Selection, new Listener() {
 			@Override
@@ -294,9 +294,9 @@
 			}
 		});
 	//Remove button
-		fRemoveFilterButton = SWTFactory.createPushButton(buttonContainer, 
-				DebugUIMessages.JavaStepFilterPreferencePage__Remove_15, 
-				DebugUIMessages.JavaStepFilterPreferencePage_Remove_all_selected_step_filters_16, 
+		fRemoveFilterButton = SWTFactory.createPushButton(buttonContainer,
+				DebugUIMessages.JavaStepFilterPreferencePage__Remove_15,
+				DebugUIMessages.JavaStepFilterPreferencePage_Remove_all_selected_step_filters_16,
 				null);
 		fRemoveFilterButton.addListener(SWT.Selection, new Listener() {
 			@Override
@@ -305,7 +305,7 @@
 			}
 		});
 		fRemoveFilterButton.setEnabled(false);
-		
+
 		Label separator= new Label(buttonContainer, SWT.NONE);
 		separator.setVisible(false);
 		gd = new GridData();
@@ -314,8 +314,8 @@
 		gd.heightHint= 4;
 		separator.setLayoutData(gd);
 	//Select All button
-		fSelectAllButton = SWTFactory.createPushButton(buttonContainer, 
-				DebugUIMessages.JavaStepFilterPreferencePage__Select_All_1, 
+		fSelectAllButton = SWTFactory.createPushButton(buttonContainer,
+				DebugUIMessages.JavaStepFilterPreferencePage__Select_All_1,
 				DebugUIMessages.JavaStepFilterPreferencePage_Selects_all_step_filters_2, null);
 		fSelectAllButton.addListener(SWT.Selection, new Listener() {
 			@Override
@@ -324,8 +324,8 @@
 			}
 		});
 	//De-Select All button
-		fDeselectAllButton = SWTFactory.createPushButton(buttonContainer, 
-				DebugUIMessages.JavaStepFilterPreferencePage_Deselect_All_3, 
+		fDeselectAllButton = SWTFactory.createPushButton(buttonContainer,
+				DebugUIMessages.JavaStepFilterPreferencePage_Deselect_All_3,
 				DebugUIMessages.JavaStepFilterPreferencePage_Deselects_all_step_filters_4, null);
 		fDeselectAllButton.addListener(SWT.Selection, new Listener() {
 			@Override
@@ -333,9 +333,9 @@
 				fTableViewer.setAllChecked(false);
 			}
 		});
-		
+
 	}
-		
+
 	/**
 	 * Allows a new filter to be added to the listing
 	 */
@@ -347,42 +347,42 @@
 			fTableViewer.refresh(newfilter);
 		}
 	}
-	
+
 	/**
-	 * add a new type to the listing of available filters 
+	 * add a new type to the listing of available filters
 	 */
 	private void addType() {
 		try {
-			SelectionDialog dialog = JavaUI.createTypeDialog(getShell(), 
+			SelectionDialog dialog = JavaUI.createTypeDialog(getShell(),
 				PlatformUI.getWorkbench().getProgressService(),
-				SearchEngine.createWorkspaceScope(), 
-				IJavaElementSearchConstants.CONSIDER_CLASSES, 
+				SearchEngine.createWorkspaceScope(),
+				IJavaElementSearchConstants.CONSIDER_CLASSES,
 				false);
-			dialog.setTitle(DebugUIMessages.JavaStepFilterPreferencePage_Add_type_to_step_filters_20); 
-			dialog.setMessage(DebugUIMessages.JavaStepFilterPreferencePage_Select_a_type_to_filter_when_stepping_23); 
+			dialog.setTitle(DebugUIMessages.JavaStepFilterPreferencePage_Add_type_to_step_filters_20);
+			dialog.setMessage(DebugUIMessages.JavaStepFilterPreferencePage_Select_a_type_to_filter_when_stepping_23);
 			if (dialog.open() == IDialogConstants.OK_ID) {
 				Object[] types = dialog.getResult();
 				if (types != null && types.length > 0) {
 					IType type = (IType)types[0];
 					addFilter(type.getFullyQualifiedName(), true);
 				}
-			}			
-		} 
-		catch (JavaModelException jme) { 
-			ExceptionHandler.handle(jme, 
-					DebugUIMessages.JavaStepFilterPreferencePage_Add_type_to_step_filters_20, 
+			}
+		}
+		catch (JavaModelException jme) {
+			ExceptionHandler.handle(jme,
+					DebugUIMessages.JavaStepFilterPreferencePage_Add_type_to_step_filters_20,
 					DebugUIMessages.JavaStepFilterPreferencePage_Could_not_open_type_selection_dialog_for_step_filters_21);
-		}	
+		}
 	}
-	
+
 	/**
 	 * add a new package to the list of all available package filters
 	 */
 	private void addPackage() {
 		try {
 			ElementListSelectionDialog dialog = JDIDebugUIPlugin.createAllPackagesDialog(getShell(), null, false);
-			dialog.setTitle(DebugUIMessages.JavaStepFilterPreferencePage_Add_package_to_step_filters_24); 
-			dialog.setMessage(DebugUIMessages.JavaStepFilterPreferencePage_Select_a_package_to_filter_when_stepping_27); 
+			dialog.setTitle(DebugUIMessages.JavaStepFilterPreferencePage_Add_package_to_step_filters_24);
+			dialog.setMessage(DebugUIMessages.JavaStepFilterPreferencePage_Select_a_package_to_filter_when_stepping_27);
 			dialog.setMultipleSelection(true);
 			if (dialog.open() == IDialogConstants.OK_ID) {
 				Object[] packages = dialog.getResult();
@@ -393,24 +393,24 @@
 						String filter = pkg.getElementName() + ".*"; //$NON-NLS-1$
 						addFilter(filter, true);
 					}
-				}		
+				}
 			}
-			
-		} 
-		catch (JavaModelException jme) { 
+
+		}
+		catch (JavaModelException jme) {
 			ExceptionHandler.handle(jme,
 					DebugUIMessages.JavaStepFilterPreferencePage_Add_package_to_step_filters_24,
-					DebugUIMessages.JavaStepFilterPreferencePage_Could_not_open_package_selection_dialog_for_step_filters_25);		
+					DebugUIMessages.JavaStepFilterPreferencePage_Could_not_open_package_selection_dialog_for_step_filters_25);
 		}
 	}
-	
+
 	/**
 	 * Removes the currently selected filters.
 	 */
 	protected void removeFilters() {
 		fTableViewer.remove(((IStructuredSelection)fTableViewer.getSelection()).toArray());
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.preference.PreferencePage#performOk()
 	 */
@@ -418,8 +418,8 @@
 	public boolean performOk() {
 		DebugUITools.setUseStepFilters(fUseStepFiltersButton.getSelection());
 		IPreferenceStore store = getPreferenceStore();
-		ArrayList<String> active = new ArrayList<String>();
-		ArrayList<String> inactive = new ArrayList<String>();
+		ArrayList<String> active = new ArrayList<>();
+		ArrayList<String> inactive = new ArrayList<>();
 		String name = ""; //$NON-NLS-1$
 		Filter[] filters = getAllFiltersFromTable();
 		for(int i = 0; i < filters.length; i++) {
@@ -443,7 +443,7 @@
 		store.setValue(IJDIPreferencesConstants.PREF_STEP_THRU_FILTERS, fStepThruButton.getSelection());
 		return super.performOk();
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.preference.PreferencePage#performDefaults()
 	 */
@@ -459,10 +459,10 @@
 		fFilterSetterButton.setSelection(getPreferenceStore().getDefaultBoolean(IJDIPreferencesConstants.PREF_FILTER_SETTERS));
 		fStepThruButton.setSelection(getPreferenceStore().getDefaultBoolean(IJDIPreferencesConstants.PREF_STEP_THRU_FILTERS));
 		fTableViewer.getTable().removeAll();
-		initTableState(true);				
+		initTableState(true);
 		super.performDefaults();
 	}
-	
+
 	/**
 	 * adds a single filter to the viewer
 	 * @param filter the new filter to add
@@ -476,7 +476,7 @@
 			fTableViewer.setChecked(f, checked);
 		}
 	}
-	
+
 	/**
 	 * returns all of the filters from the table, this includes ones that have not yet been saved
 	 * @return a possibly empty lits of filters fron the table
@@ -491,7 +491,7 @@
 		}
 		return filters;
 	}
-	
+
 	/**
 	 * Returns all of the committed filters
 	 * @return an array of committed filters
@@ -503,8 +503,8 @@
 		IPreferenceStore store = getPreferenceStore();
 		if(defaults) {
 			activefilters = JavaDebugOptionsManager.parseList(store.getDefaultString(IJDIPreferencesConstants.PREF_ACTIVE_FILTERS_LIST));
-			inactivefilters = JavaDebugOptionsManager.parseList(store.getDefaultString(IJDIPreferencesConstants.PREF_INACTIVE_FILTERS_LIST)); 
-		}	
+			inactivefilters = JavaDebugOptionsManager.parseList(store.getDefaultString(IJDIPreferencesConstants.PREF_INACTIVE_FILTERS_LIST));
+		}
 		else {
 			activefilters = JavaDebugOptionsManager.parseList(store.getString(IJDIPreferencesConstants.PREF_ACTIVE_FILTERS_LIST));
 			inactivefilters = JavaDebugOptionsManager.parseList(store.getString(IJDIPreferencesConstants.PREF_INACTIVE_FILTERS_LIST));
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaThreadActionFilter.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaThreadActionFilter.java
index 4386386..4477363 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaThreadActionFilter.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaThreadActionFilter.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -41,10 +41,10 @@
 							return true;
 						}
 					} catch (CoreException e) {
-					}	
+					}
 				}
 			}
-				
+
 		}
 		return false;
 	}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaVarActionFilter.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaVarActionFilter.java
index f12edd1..93639d8 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaVarActionFilter.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaVarActionFilter.java
@@ -33,7 +33,7 @@
 
 /**
  * Provides the action filter for Java and Inspect actions
- * 
+ *
  * @since 3.2
  */
 public class JavaVarActionFilter implements IActionFilter {
@@ -48,7 +48,7 @@
 	 * @return the set of predefined types
 	 */
 	private static Set<String> initPrimitiveTypes() {
-		HashSet<String> set = new HashSet<String>(8);
+		HashSet<String> set = new HashSet<>(8);
 		set.add("short"); //$NON-NLS-1$
 		set.add("int"); //$NON-NLS-1$
 		set.add("long"); //$NON-NLS-1$
@@ -60,7 +60,7 @@
 		set.add("null"); //$NON-NLS-1$
 		return set;
 	}
-	
+
 	/**
 	 * Determines if the declared value is the same as the concrete value
 	 * @param var the variable to inspect
@@ -80,14 +80,14 @@
 
 	/**
 	 * Determines if the passed object is a primitive type or not
-	 * @param obj the obj to test 
+	 * @param obj the obj to test
 	 * @return true if the object is primitive, false otherwise
 	 */
 	protected boolean isPrimitiveType(Object obj) {
 		if(obj instanceof IJavaVariable) {
 			try {
 				return !fgPrimitiveTypes.contains(removeArray(((IJavaVariable) obj).getReferenceTypeName()));
-			} 
+			}
 			catch (DebugException e) {
 				if(!(e.getStatus().getException() instanceof ClassNotLoadedException)) {
 					JDIDebugUIPlugin.log(e);
@@ -106,7 +106,7 @@
 		}
 		return false;
 	}
-	
+
 	/**
 	 * This method returns if the specified object is an array or not
 	 * @param object the object to test
@@ -120,29 +120,29 @@
 				if(type != null) {
 					return type instanceof IJavaArrayType;
 				}
-			} 
+			}
 			catch (DebugException e) {JDIDebugUIPlugin.log(e);}
 		}
 		return false;
 	}
-	
+
 	/**
 	 * Determines if the ref type of the value is primitive
-	 * 
+	 *
 	 * @param var the variable to inspect
 	 * @return true if the the values ref type is primitive, false otherwise
 	 */
 	protected boolean isValuePrimitiveType(IValue value) {
 		try {
 			return !fgPrimitiveTypes.contains(removeArray(value.getReferenceTypeName()));
-		} 
+		}
 		catch (DebugException e) {JDIDebugUIPlugin.log(e);}
 		return false;
 	}
-	
+
 	/**
 	 * Method removes the array declaration characters to return just the type
-	 * 
+	 *
 	 * @param typeName the type name we want to strip the array delimiters from
 	 * @return the altered type
 	 */
@@ -155,7 +155,7 @@
 		}
 		return type;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.IActionFilter#testAttribute(java.lang.Object, java.lang.String, java.lang.String)
 	 */
@@ -166,17 +166,17 @@
 			IValue varValue;
 			try {
 				varValue = var.getValue();
-				if (name.equals("PrimitiveVariableActionFilter")) { //$NON-NLS-1$ 
+				if (name.equals("PrimitiveVariableActionFilter")) { //$NON-NLS-1$
 					if (value.equals("isPrimitive")) { //$NON-NLS-1$
 						return isPrimitiveType(var);
-					} 
+					}
 					else if(value.equals("isArray")) { //$NON-NLS-1$
 						return isArrayType(var);
 					}
 					else if (value.equals("isValuePrimitive")) { //$NON-NLS-1$
 						return isValuePrimitiveType(varValue);
 					}
-				} 
+				}
 				if (name.equals("JavaVariableFilter")) { //$NON-NLS-1$
 					if (value.equals("isInstanceRetrievalAvailable")) { //$NON-NLS-1$
 						return isInstanceRetrievalAvailable(var);
@@ -193,15 +193,15 @@
 				}
 				else if (name.equals("ConcreteVariableActionFilter") && value.equals("isConcrete")) { //$NON-NLS-1$ //$NON-NLS-2$
 					return isDeclaredSameAsConcrete(var);
-				} 
+				}
 				else if (name.equals("JavaVariableActionFilter")) { //$NON-NLS-1$
-					if(value.equals("instanceFilter")) { //$NON-NLS-1$ 
+					if(value.equals("instanceFilter")) { //$NON-NLS-1$
 						return !var.isStatic() && (varValue instanceof IJavaObject) && (((IJavaObject)varValue).getJavaType() instanceof IJavaClassType) && ((IJavaDebugTarget)var.getDebugTarget()).supportsInstanceBreakpoints();
 					}
 					if(value.equals("isValidField")) { //$NON-NLS-1$
 						return !var.isFinal() & !(var.isFinal() & var.isStatic());
-					}	
-				} 
+					}
+				}
 				else if (name.equals("DetailFormatterFilter") & (varValue instanceof IJavaObject)) { //$NON-NLS-1$
 					if(value.equals("isDefined")) { //$NON-NLS-1$
 						return JavaDetailFormattersManager.getDefault().hasAssociatedDetailFormatter(((IJavaObject)varValue).getJavaType());
@@ -212,17 +212,17 @@
 					if(value.equals("inSuperclass")) { //$NON-NLS-1$
 						return JavaDetailFormattersManager.getDefault().hasSuperclassDetailFormatter(((IJavaObject)varValue).getJavaType());
 					}
-				} 
+				}
 				else if (name.equals("JavaLogicalStructureFilter") && value.equals("canEditLogicalStructure")) {  //$NON-NLS-1$ //$NON-NLS-2$
                     return varValue instanceof JavaStructureErrorValue || EditVariableLogicalStructureAction.getLogicalStructure(varValue) != null;
                 }
-			} catch (DebugException e) {}	
+			} catch (DebugException e) {}
 		}
 		else if (target instanceof JavaInspectExpression) {
 			JavaInspectExpression exp = (JavaInspectExpression) target;
 			if (name.equals("PrimitiveVariableActionFilter") && value.equals("isNotPrimitive")) { //$NON-NLS-1$ //$NON-NLS-2$
 				return !isPrimitiveType(exp);
-			} 
+			}
 			else if (name.equals("DetailFormatterFilter")) { //$NON-NLS-1$
 				try {
 					IValue varValue = exp.getValue();
@@ -237,7 +237,7 @@
 							return JavaDetailFormattersManager.getDefault().hasSuperclassDetailFormatter(((IJavaObject)varValue).getJavaType());
 						}
 					}
-				} 
+				}
 				catch (DebugException exception) {}
 			}
 		}
@@ -246,11 +246,11 @@
 
 	/**
 	 * Returns whether this variable's VM supports instance/reference information.
-	 * 
+	 *
 	 * @param var variable
 	 * @return whether this variable's VM supports instance/reference information
 	 */
 	protected boolean isInstanceRetrievalAvailable(IJavaVariable var) {
 		return ((IJavaDebugTarget)var.getDebugTarget()).supportsInstanceRetrieval() && !(var instanceof JDIReferenceListVariable);
-	}	
+	}
 }
\ No newline at end of file
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaWatchExpressionDelegate.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaWatchExpressionDelegate.java
index c4e5ef4..2206408 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaWatchExpressionDelegate.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaWatchExpressionDelegate.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -33,10 +33,10 @@
 import org.eclipse.jdt.internal.debug.ui.display.JavaInspectExpression;
 
 /**
- * 
+ *
  */
 public class JavaWatchExpressionDelegate implements IWatchExpressionDelegate {
-	
+
 	private String fExpressionText;
 	private IWatchExpressionListener fListener;
 
@@ -58,7 +58,7 @@
 			}
 		}
 		if (frame == null) {
-			fListener.watchEvaluationFinished(null);	
+			fListener.watchEvaluationFinished(null);
 		} else {
 			// consult the adapter in case of a wrappered debug model
 			final IJavaStackFrame javaStackFrame = ((IAdaptable) frame).getAdapter(IJavaStackFrame.class);
@@ -66,16 +66,16 @@
 				doEvaluation(javaStackFrame);
 			} else {
 				fListener.watchEvaluationFinished(null);
-			}	
+			}
 		}
 	}
-	
+
 	/**
 	 * Ask to evaluate the expression in the context of the given stack frame.
-	 * 
+	 *
 	 * The evaluation is performed asynchronously. A change debug event, with
 	 * this as the source, is fired when the evaluation is completed.
-	 * 
+	 *
 	 * @param javaStackFrame the stack frame in the context of which performed
 	 * the evaluation.
 	 */
@@ -87,7 +87,7 @@
 			fListener.watchEvaluationFinished(null);
 		}
 	}
-	
+
 	private boolean preEvaluationCheck(IJavaThread javaThread) {
 		if (javaThread == null) {
 			return false;
@@ -97,18 +97,18 @@
 		}
 		return true;
 	}
-	
+
 	/**
 	 * Runnable used to evaluate the expression.
 	 */
 	private final class EvaluationRunnable implements Runnable {
-		
+
 		private final IJavaStackFrame fStackFrame;
-		
+
 		private EvaluationRunnable(IJavaStackFrame frame) {
 			fStackFrame= frame;
 		}
-		
+
 		@Override
 		public void run() {
 			IJavaProject project = JavaDebugUtils.resolveJavaProject(fStackFrame);
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaWordFinder.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaWordFinder.java
index 6ee5806..889cbd2 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaWordFinder.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaWordFinder.java
@@ -4,12 +4,12 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui;
- 
+
 
 import org.eclipse.jface.text.BadLocationException;
 import org.eclipse.jface.text.IDocument;
@@ -23,32 +23,32 @@
  * selection.
  */
 public class JavaWordFinder {
-	
+
 	/**
 	 * Returns the IRegion containing the java identifier ("word") enclosing the specified offset or
 	 * <code>null</code> if the document or offset is invalid.  Checks characters before and after the
 	 * offset to see if they are allowed java identifier characters until a separator character (period,
 	 * space, etc) is found.
-	 * 
+	 *
 	 * @param document The document to search
 	 * @param offset The offset to start looking for the word
 	 * @return IRegion containing the word or <code>null</code>
 	 */
 	public static IRegion findWord(IDocument document, int offset) {
-		
+
 		if (document == null){
 			return null;
 		}
-		
+
 		int start= -2;
 		int end= -1;
-		
-		
+
+
 		try {
-			
+
 			int pos= offset;
 			char c;
-			
+
 			while (pos >= 0) {
 				c= document.getChar(pos);
 				if (!Character.isJavaIdentifierPart(c)) {
@@ -67,24 +67,24 @@
 				}
 				--pos;
 			}
-			
+
 			start= pos;
-			
+
 			pos= offset;
 			int length= document.getLength();
-			
+
 			while (pos < length) {
 				c= document.getChar(pos);
 				if (!Character.isJavaIdentifierPart(c))
 					break;
 				++pos;
 			}
-			
+
 			end= pos;
-			
+
 		} catch (BadLocationException x) {
 		}
-		
+
 		if (start >= -1 && end > -1) {
 			if (start == offset && end == offset)
 				return new Region(offset, 0);
@@ -93,7 +93,7 @@
 			else
 				return new Region(start + 1, end - start - 1);
 		}
-		
+
 		return null;
 	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/LocalFileStorageEditorInput.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/LocalFileStorageEditorInput.java
index d61c7c4..f3c64f7 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/LocalFileStorageEditorInput.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/LocalFileStorageEditorInput.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -16,11 +16,11 @@
 
 	/**
 	 * Constructs an editor input for the given storage
-	 */	
+	 */
 	public LocalFileStorageEditorInput(LocalFileStorage storage) {
 		super(storage);
 	}
-	
+
 
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.IEditorInput#exists()
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/MemberActionFilter.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/MemberActionFilter.java
index e9f7a1d..456c592 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/MemberActionFilter.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/MemberActionFilter.java
@@ -69,8 +69,8 @@
 					}
 					try {
 						return type != null && type.isInterface();
-					} 
-					catch (JavaModelException e) {JDIDebugUIPlugin.log(e);}  
+					}
+					catch (JavaModelException e) {JDIDebugUIPlugin.log(e);}
 				}
 				if(value.equals("isConstructor")) { //$NON-NLS-1$
 					IMethod method = null;
@@ -81,14 +81,14 @@
 						} catch (JavaModelException e) {
 							JDIDebugUIPlugin.log(e);
 							return false;
-						}  
+						}
 					}
 				}
 				if(value.equals("isValidField")) { //$NON-NLS-1$
 					try {
 						int flags = member.getFlags();
 						return (member.getElementType() == IJavaElement.FIELD) & (!Flags.isFinal(flags) & !(Flags.isStatic(flags) & Flags.isFinal(flags)));
-					} 
+					}
 					catch (JavaModelException e) {
 						JDIDebugUIPlugin.log(e);
 						return false;
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/NoLineNumberAttributesStatusHandler.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/NoLineNumberAttributesStatusHandler.java
index 9b81ef5..209bac1 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/NoLineNumberAttributesStatusHandler.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/NoLineNumberAttributesStatusHandler.java
@@ -30,10 +30,10 @@
 		IPreferenceStore preferenceStore= JDIDebugUIPlugin.getDefault().getPreferenceStore();
 		if (preferenceStore.getBoolean(IJDIPreferencesConstants.PREF_ALERT_UNABLE_TO_INSTALL_BREAKPOINT)) {
 			final ErrorDialogWithToggle dialog= new ErrorDialogWithToggle(JDIDebugUIPlugin.getActiveWorkbenchShell(),
-					DebugUIMessages.NoLineNumberAttributesStatusHandler_Java_Breakpoint_1, 
-					NLS.bind(DebugUIMessages.NoLineNumberAttributesStatusHandler_2, new String[] {type.name()}), 
+					DebugUIMessages.NoLineNumberAttributesStatusHandler_Java_Breakpoint_1,
+					NLS.bind(DebugUIMessages.NoLineNumberAttributesStatusHandler_2, new String[] {type.name()}),
 					status, IJDIPreferencesConstants.PREF_ALERT_UNABLE_TO_INSTALL_BREAKPOINT,
-					DebugUIMessages.NoLineNumberAttributesStatusHandler_3, 
+					DebugUIMessages.NoLineNumberAttributesStatusHandler_3,
 					preferenceStore);
 			Display display= JDIDebugUIPlugin.getStandardDisplay();
 			display.syncExec(new Runnable() {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/PackageSelectionDialog.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/PackageSelectionDialog.java
index ce977ff..68dcb44 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/PackageSelectionDialog.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/PackageSelectionDialog.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -25,16 +25,16 @@
 	public PackageSelectionDialog(Shell parent, ILabelProvider renderer) {
 		super(parent, renderer);
 	}
-	
+
 	/**
 	 * Returns the name of the section that this dialog stores its settings in
-	 * 
+	 *
 	 * @return String
 	 */
 	protected String getDialogSettingsSectionName() {
 		return IJavaDebugUIConstants.PLUGIN_ID + ".PACKAGE_SELECTION_DIALOG_SECTION"; //$NON-NLS-1$
 	}
-	
+
 	 /* (non-Javadoc)
      * @see org.eclipse.jface.dialogs.Dialog#getDialogBoundsSettings()
      */
@@ -44,7 +44,7 @@
          IDialogSettings section = settings.getSection(getDialogSettingsSectionName());
          if (section == null) {
              section = settings.addNewSection(getDialogSettingsSectionName());
-         } 
+         }
          return section;
     }
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/StatusInfo.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/StatusInfo.java
index 957a9ab..6167c62 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/StatusInfo.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/StatusInfo.java
@@ -15,15 +15,15 @@
 import org.eclipse.jdt.ui.JavaUI;
 
 /**
- * A settable IStatus. 
+ * A settable IStatus.
  * Can be an error, warning, info or ok. For error, info and warning states,
  * a message describes the problem.
  */
 public class StatusInfo implements IStatus {
-	
+
 	private String fStatusMessage;
 	private int fSeverity;
-	
+
 	/**
 	 * Creates a status set to OK (no message)
 	 */
@@ -36,12 +36,12 @@
 	 * @param severity The status severity: ERROR, WARNING, INFO and OK.
 	 * @param message The message of the status. Applies only for ERROR,
 	 * WARNING and INFO.
-	 */	
+	 */
 	public StatusInfo(int severity, String message) {
 		fStatusMessage= message;
 		fSeverity= severity;
-	}		
-	
+	}
+
 	/**
 	 *  Returns if the status' severity is OK.
 	 */
@@ -52,25 +52,25 @@
 
 	/**
 	 *  Returns if the status' severity is WARNING.
-	 */	
+	 */
 	public boolean isWarning() {
 		return fSeverity == IStatus.WARNING;
 	}
 
 	/**
 	 *  Returns if the status' severity is INFO.
-	 */	
+	 */
 	public boolean isInfo() {
 		return fSeverity == IStatus.INFO;
-	}	
+	}
 
 	/**
 	 *  Returns if the status' severity is ERROR.
-	 */	
+	 */
 	public boolean isError() {
 		return fSeverity == IStatus.ERROR;
 	}
-	
+
 	/**
 	 * @see IStatus#getMessage
 	 */
@@ -78,11 +78,11 @@
 	public String getMessage() {
 		return fStatusMessage;
 	}
-	
+
 	/**
 	 * Sets the status to ERROR.
 	 * @param The error message (can be empty, but not null)
-	 */	
+	 */
 	public void setError(String errorMessage) {
 		Assert.isNotNull(errorMessage);
 		fStatusMessage= errorMessage;
@@ -92,7 +92,7 @@
 	/**
 	 * Sets the status to WARNING.
 	 * @param The warning message (can be empty, but not null)
-	 */		
+	 */
 	public void setWarning(String warningMessage) {
 		Assert.isNotNull(warningMessage);
 		fStatusMessage= warningMessage;
@@ -102,21 +102,21 @@
 	/**
 	 * Sets the status to INFO.
 	 * @param The info message (can be empty, but not null)
-	 */		
+	 */
 	public void setInfo(String infoMessage) {
 		Assert.isNotNull(infoMessage);
 		fStatusMessage= infoMessage;
 		fSeverity= IStatus.INFO;
-	}	
+	}
 
 	/**
 	 * Sets the status to OK.
-	 */		
+	 */
 	public void setOK() {
 		fStatusMessage= null;
 		fSeverity= IStatus.OK;
 	}
-	
+
 	/*
 	 * @see IStatus#matches(int)
 	 */
@@ -175,6 +175,6 @@
 	@Override
 	public IStatus[] getChildren() {
 		return new IStatus[0];
-	}	
+	}
 
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/StorageEditorInput.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/StorageEditorInput.java
index aba5ea9..675ef64 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/StorageEditorInput.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/StorageEditorInput.java
@@ -4,13 +4,13 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui;
 
- 
+
 import org.eclipse.core.resources.IStorage;
 import org.eclipse.core.runtime.PlatformObject;
 import org.eclipse.jdt.ui.ISharedImages;
@@ -26,14 +26,14 @@
 	 * Storage associated with this editor input
 	 */
 	private IStorage fStorage;
-	
+
 	/**
 	 * Constructs an editor input on the given storage
 	 */
 	public StorageEditorInput(IStorage storage) {
 		fStorage = storage;
 	}
-	
+
 	/**
 	 * @see IStorageEditorInput#getStorage()
 	 */
@@ -73,7 +73,7 @@
 	public String getToolTipText() {
 		return getStorage().getFullPath().toOSString();
 	}
-	
+
 	/**
 	 * @see java.lang.Object#equals(java.lang.Object)
 	 */
@@ -82,7 +82,7 @@
 		return object instanceof StorageEditorInput &&
 		 getStorage().equals(((StorageEditorInput)object).getStorage());
 	}
-	
+
 	/**
 	 * @see java.lang.Object#hashCode()
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/SuspendTimeoutStatusHandler.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/SuspendTimeoutStatusHandler.java
index 04c7562..e49a954 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/SuspendTimeoutStatusHandler.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/SuspendTimeoutStatusHandler.java
@@ -27,7 +27,7 @@
 	@Override
 	public Object handleStatus(IStatus status, Object source) throws CoreException {
 		IJavaThread thread= (IJavaThread) source;
-		final ErrorDialog dialog= new ErrorDialog(JDIDebugUIPlugin.getActiveWorkbenchShell(), DebugUIMessages.SuspendTimeoutHandler_suspend, NLS.bind(DebugUIMessages.SuspendTimeoutHandler_timeout_occurred, new String[] {thread.getName()}), status, IStatus.WARNING | IStatus.ERROR | IStatus.INFO); // 
+		final ErrorDialog dialog= new ErrorDialog(JDIDebugUIPlugin.getActiveWorkbenchShell(), DebugUIMessages.SuspendTimeoutHandler_suspend, NLS.bind(DebugUIMessages.SuspendTimeoutHandler_timeout_occurred, new String[] {thread.getName()}), status, IStatus.WARNING | IStatus.ERROR | IStatus.INFO); //
 		Display display= JDIDebugUIPlugin.getStandardDisplay();
 		display.syncExec(new Runnable() {
 			@Override
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/TypeNameResolver.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/TypeNameResolver.java
index 083c58f..8f7736a 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/TypeNameResolver.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/TypeNameResolver.java
@@ -36,16 +36,16 @@
 			IType type= getType(javaElement);
 			if (type != null) {
 				return type.getFullyQualifiedName();
-			}	
+			}
 		}
-		abort(DebugUIMessages.TypeNameResolver_0, null); 
+		abort(DebugUIMessages.TypeNameResolver_0, null);
 		return null;
 	}
-	
+
 	/**
 	 * Returns the primary type in the given Java element
 	 * or <code>null</code> if none.
-	 * 
+	 *
 	 * @param element the Java element
 	 * @return the primary type in the given Java element
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/ZipEntryStorageEditorInput.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/ZipEntryStorageEditorInput.java
index 09562eb..4404679 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/ZipEntryStorageEditorInput.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/ZipEntryStorageEditorInput.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -13,11 +13,11 @@
 import org.eclipse.debug.core.sourcelookup.containers.ZipEntryStorage;
 
 public class ZipEntryStorageEditorInput extends StorageEditorInput {
-	
+
 	public ZipEntryStorageEditorInput(ZipEntryStorage storage) {
 		super(storage);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.IEditorInput#exists()
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AbstractAddStepFilterAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AbstractAddStepFilterAction.java
index 1eda4c9..defafc1 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AbstractAddStepFilterAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AbstractAddStepFilterAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -27,7 +27,7 @@
 /**
  * This abstract class defines the behavior common to actions that allow the
  * user to add step filters dynamically, as they are debugging.
- * 
+ *
  * @since 2.1
  */
 public abstract class AbstractAddStepFilterAction extends ObjectActionDelegate {
@@ -37,7 +37,7 @@
 	 */
 	@Override
 	public void run(IAction action) {
-		
+
 		// Make sure there is a current selection
 		IStructuredSelection selection= getCurrentSelection();
 		if (selection == null) {
@@ -50,56 +50,56 @@
 			IJavaStackFrame frame = itr.next();
 			String pattern = generateStepFilterPattern(frame);
 			if (pattern != null) {
-				addActiveStepFilter(pattern);						
+				addActiveStepFilter(pattern);
 			}
-		}	    
+		}
 	}
-	
+
 	/**
 	 * Make the specified pattern an active step filter.
 	 */
 	private void addActiveStepFilter(String pattern) {
-		
+
 		// Get the active & inactive filter preferences and convert them to Lists
 		IPreferenceStore prefStore = getPreferenceStore();
 		String[] activeArray = JavaDebugOptionsManager.parseList(prefStore.getString(IJDIPreferencesConstants.PREF_ACTIVE_FILTERS_LIST));
 		String[] inactiveArray = JavaDebugOptionsManager.parseList(prefStore.getString(IJDIPreferencesConstants.PREF_INACTIVE_FILTERS_LIST));
-		List<String> activeList = new ArrayList<String>(Arrays.asList(activeArray));
-		List<String> inactiveList = new ArrayList<String>(Arrays.asList(inactiveArray));
-		
+		List<String> activeList = new ArrayList<>(Arrays.asList(activeArray));
+		List<String> inactiveList = new ArrayList<>(Arrays.asList(inactiveArray));
+
 		// If the pattern is already in the active list, there's nothing to do
 		// (it can't/shouldn't be in the inactive list)
 		if (activeList.contains(pattern)) {
 			return;
 		}
-		
+
 		// Add the pattern to the active list and update the preference store
 		activeList.add(pattern);
 		String activePref = JavaDebugOptionsManager.serializeList(activeList.toArray(new String[activeList.size()]));
 		prefStore.setValue(IJDIPreferencesConstants.PREF_ACTIVE_FILTERS_LIST, activePref);
-	
+
 		// If the pattern was present in the inactive list, remove it since we just
 		// added it to the active list
 		if (inactiveList.contains(pattern)) {
 			inactiveList.remove(pattern);
 			String inactivePref = JavaDebugOptionsManager.serializeList(inactiveList.toArray(new String[inactiveList.size()]));
-			prefStore.setValue(IJDIPreferencesConstants.PREF_INACTIVE_FILTERS_LIST, inactivePref);			
+			prefStore.setValue(IJDIPreferencesConstants.PREF_INACTIVE_FILTERS_LIST, inactivePref);
 		}
 	}
-	
+
 	/**
 	 * Convenience method to get the preference store.
 	 */
 	private IPreferenceStore getPreferenceStore() {
 		return JDIDebugUIPlugin.getDefault().getPreferenceStore();
 	}
-	
+
 	/**
 	 * Generate an appropriate String pattern for the specified Java stack
 	 * frame or return null if generation failed.  For example, the pattern for
 	 * a type might look like, "com. example.MyType", while the pattern for a
 	 * package might look like, "com. example.*".
-	 * 
+	 *
 	 * @param frame the Java stack frame used to generate a String pattern
 	 * @return String the pattern or <code>null</code> if one could not be
 	 * generated
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ActionDelegateHelper.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ActionDelegateHelper.java
index 09cd098..4542e0f 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ActionDelegateHelper.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ActionDelegateHelper.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -38,14 +38,14 @@
 	private ITextEditor fTextEditor= null;
 	private ISelection fCurrentSelection= null;
 	private IWorkbenchWindow fCurrentWindow= null;
-	
+
 	public static ActionDelegateHelper getDefault() {
 		if (fgDefault == null) {
 			fgDefault= new ActionDelegateHelper();
-		} 
+		}
 		return fgDefault;
 	}
-	
+
 	private ActionDelegateHelper() {
 		fCurrentWindow= JDIDebugUIPlugin.getActiveWorkbenchWindow();
 		if (fCurrentWindow != null) {
@@ -58,7 +58,7 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * @see IPartListener#partActivated(IWorkbenchPart)
 	 */
@@ -88,7 +88,7 @@
 	 * @see IPartListener#partDeactivated(IWorkbenchPart)
 	 */
 	@Override
-	public void partDeactivated(IWorkbenchPart part) {		
+	public void partDeactivated(IWorkbenchPart part) {
 	}
 
 	/**
@@ -105,17 +105,17 @@
 	protected void setMember(IMember member) {
 		fMember = member;
 	}
-	
+
 	protected void checkToSetTextEditor(IWorkbenchPart part) {
 		if (part instanceof ITextEditor) {
 			if (part instanceof JavaSnippetEditor) {
 				cleanup();
 			} else {
 				setTextEditor((ITextEditor)part);
-			}	
-		} 
+			}
+		}
 	}
-	
+
 	public IMember getCurrentMember(ITextSelection currentSelection) {
 		if (currentSelection == getCurrentSelection()) {
 			return getMember();
@@ -151,11 +151,11 @@
 		} catch (JavaModelException jme) {
 			JDIDebugUIPlugin.log(jme);
 		}
-		
+
 		setMember(m);
 		return m;
 	}
-	
+
 	protected ITextEditor getTextEditor() {
 		return fTextEditor;
 	}
@@ -163,7 +163,7 @@
 	protected void setTextEditor(ITextEditor textEditor) {
 		fTextEditor = textEditor;
 	}
-	
+
 	protected ISelection getCurrentSelection() {
 		return fCurrentSelection;
 	}
@@ -171,7 +171,7 @@
 	protected void setCurrentSelection(ISelection currentSelection) {
 		fCurrentSelection = currentSelection;
 	}
-	
+
 	/**
 	 * @see IWindowListener#windowActivated(IWorkbenchWindow)
 	 */
@@ -213,7 +213,7 @@
 	@Override
 	public void windowOpened(IWorkbenchWindow window) {
 	}
-	
+
 	protected void cleanup() {
 		setTextEditor(null);
 		setCurrentSelection(null);
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddAdvancedAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddAdvancedAction.java
index 0a3a70d..aef430d 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddAdvancedAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddAdvancedAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -20,26 +20,26 @@
  * Opens a dialog to allow the user to choose among advanced actions.
  */
 public class AddAdvancedAction extends RuntimeClasspathAction {
-	
+
 	private IAction[] fActions;
 
 	public AddAdvancedAction(IClasspathViewer viewer, IAction[] actions) {
-		super(ActionMessages.AddAdvancedAction_Ad_vanced____1, viewer); 
+		super(ActionMessages.AddAdvancedAction_Ad_vanced____1, viewer);
 		fActions = actions;
 		setViewer(viewer);
-	}	
+	}
 
 	/**
 	 * Prompts for a project to add.
-	 * 
+	 *
 	 * @see IAction#run()
-	 */	
+	 */
 	@Override
 	public void run() {
 		Dialog dialog = new RuntimeClasspathAdvancedDialog(getShell(), fActions, getViewer());
-		dialog.open();			
+		dialog.open();
 	}
-		
+
 	/**
 	 * @see RuntimeClasspathAction#setViewer(RuntimeClasspathViewer)
 	 */
@@ -54,7 +54,7 @@
 			}
 		}
 	}
-	
+
 	@Override
 	protected int getActionType() {
 		return ADD;
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddExternalFolderAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddExternalFolderAction.java
index dbabed5..7208dec 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddExternalFolderAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddExternalFolderAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -26,36 +26,36 @@
 public class AddExternalFolderAction extends OpenDialogAction {
 
 	public AddExternalFolderAction(IClasspathViewer viewer, String dialogSettingsPrefix) {
-		super(ActionMessages.AddExternalFolderAction_Add_External_Folder_1, viewer, dialogSettingsPrefix); 
-	}	
+		super(ActionMessages.AddExternalFolderAction_Add_External_Folder_1, viewer, dialogSettingsPrefix);
+	}
 
 	/**
 	 * Prompts for a folder to add.
-	 * 
+	 *
 	 * @see IAction#run()
-	 */	
+	 */
 	@Override
 	public void run() {
-							
+
 		String lastUsedPath= getDialogSetting(LAST_PATH_SETTING);
 		if (lastUsedPath == null) {
 			lastUsedPath= ""; //$NON-NLS-1$
 		}
 		DirectoryDialog dialog= new DirectoryDialog(getShell(), SWT.MULTI);
-		dialog.setText(ActionMessages.AddExternalFolderAction_Folder_Selection_3); 
+		dialog.setText(ActionMessages.AddExternalFolderAction_Folder_Selection_3);
 		dialog.setFilterPath(lastUsedPath);
 		String res= dialog.open();
 		if (res == null) {
 			return;
 		}
-			
+
 		IPath filterPath= new Path(dialog.getFilterPath());
 		IRuntimeClasspathEntry[] elems= new IRuntimeClasspathEntry[1];
-		IPath path= new Path(res).makeAbsolute();	
+		IPath path= new Path(res).makeAbsolute();
 		elems[0]= JavaRuntime.newArchiveRuntimeClasspathEntry(path);
 
 		setDialogSetting(LAST_PATH_SETTING, filterPath.toOSString());
-		
+
 		getViewer().addEntries(elems);
-	}	
+	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddExternalJarAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddExternalJarAction.java
index 9a8f3f7..5a5b764 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddExternalJarAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddExternalJarAction.java
@@ -30,23 +30,23 @@
 public class AddExternalJarAction extends OpenDialogAction {
 
 	public AddExternalJarAction(IClasspathViewer viewer, String dialogSettingsPrefix) {
-		super(ActionMessages.AddExternalJar_Add_E_xternal_JARs_1, viewer, dialogSettingsPrefix); 
-	}	
+		super(ActionMessages.AddExternalJar_Add_E_xternal_JARs_1, viewer, dialogSettingsPrefix);
+	}
 
 	/**
 	 * Prompts for a project to add.
-	 * 
+	 *
 	 * @see IAction#run()
-	 */	
+	 */
 	@Override
 	public void run() {
-							
+
 		String lastUsedPath = getDialogSetting(LAST_PATH_SETTING);
 		if (lastUsedPath == null) {
 			lastUsedPath = ""; //$NON-NLS-1$
 		}
 		FileDialog dialog = new FileDialog(getShell(), SWT.MULTI);
-		dialog.setText(ActionMessages.AddExternalJar_Jar_Selection_3); 
+		dialog.setText(ActionMessages.AddExternalJar_Jar_Selection_3);
 		dialog.setFilterExtensions(new String[] {"*.jar;*.zip","*.*"}); //$NON-NLS-1$ //$NON-NLS-2$
 		dialog.setFilterPath(lastUsedPath);
 		String res = dialog.open();
@@ -55,12 +55,12 @@
 		}
 		String[] fileNames = dialog.getFileNames();
 		int nChosen = fileNames.length;
-			
+
 		IPath filterPath = new Path(dialog.getFilterPath());
-		ArrayList<IRuntimeClasspathEntry> list = new ArrayList<IRuntimeClasspathEntry>();
+		ArrayList<IRuntimeClasspathEntry> list = new ArrayList<>();
 		IPath path = null;
 		for (int i= 0; i < nChosen; i++) {
-			path = filterPath.append(fileNames[i]).makeAbsolute();	
+			path = filterPath.append(fileNames[i]).makeAbsolute();
 			if(path.toFile().exists()) {
 				list.add(JavaRuntime.newArchiveRuntimeClasspathEntry(path));
 			}
@@ -72,5 +72,5 @@
 			setDialogSetting(LAST_PATH_SETTING, filterPath.toOSString());
 			getViewer().addEntries(list.toArray(new IRuntimeClasspathEntry[list.size()]));
 		}
-	}	
+	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddFolderAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddFolderAction.java
index 0ab39a5..5d37982 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddFolderAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddFolderAction.java
@@ -46,7 +46,7 @@
 
 	/**
 	 * provides a filter to remove the files from the ElementSelectionDialog
-	 * 
+	 *
 	 * @since 3.2
 	 *
 	 */
@@ -61,21 +61,21 @@
 			}
 			return false;
 		}
-		
+
 	}
-	
+
 	public AddFolderAction(IClasspathViewer viewer) {
-		super(ActionMessages.AddFolderAction_Add__Folders_1, viewer); 
-	}	
+		super(ActionMessages.AddFolderAction_Add__Folders_1, viewer);
+	}
 
 	/**
 	 * Prompts for folder(s) to add.
-	 * 
+	 *
 	 * @see IAction#run()
-	 */	
+	 */
 	@Override
 	public void run() {
-		
+
 		ISelectionStatusValidator validator= new ISelectionStatusValidator() {
 			List<IResource> fAlreadySelected = getSelectedFolders();
 			@Override
@@ -86,12 +86,12 @@
 					} else if (fAlreadySelected.contains(selection[i])) {
 						return new Status(IStatus.ERROR, JDIDebugPlugin.getUniqueIdentifier(), IJavaDebugUIConstants.INTERNAL_ERROR, "Classpath already includes selected folder(s).", null);  //$NON-NLS-1$
 					}
-					
+
 				}
 				return new Status(IStatus.OK, JDIDebugPlugin.getUniqueIdentifier(), 0, "", null); //$NON-NLS-1$
-			}			
+			}
 		};
-		
+
 		ILabelProvider lp= new WorkbenchLabelProvider();
 		ITreeContentProvider cp= new WorkbenchContentProvider();
 
@@ -99,9 +99,9 @@
 		dialog.addFilter(new FileFilter());
         dialog.setComparator(new ResourceComparator(ResourceComparator.NAME));
 		dialog.setValidator(validator);
-		dialog.setTitle(ActionMessages.AddFolderAction_Folder_Selection_4); 
-		dialog.setMessage(ActionMessages.AddFolderAction_Choose_folders_to_add__5); 
-		dialog.setInput(ResourcesPlugin.getWorkspace().getRoot());	
+		dialog.setTitle(ActionMessages.AddFolderAction_Folder_Selection_4);
+		dialog.setMessage(ActionMessages.AddFolderAction_Choose_folders_to_add__5);
+		dialog.setInput(ResourcesPlugin.getWorkspace().getRoot());
 
 		if (dialog.open() == Window.OK) {
 			Object[] elements= dialog.getResult();
@@ -112,16 +112,16 @@
 			}
 			getViewer().addEntries(res);
 		}
-					
+
 	}
-	
+
 	/**
 	 * Returns a list of resources of currently selected folders
 	 * @return the list of {@link IResource}s
 	 */
 	protected List<IResource> getSelectedFolders() {
 		List<IRuntimeClasspathEntry> list = getEntriesAsList();
-		List<IResource> folders = new ArrayList<IResource>();
+		List<IResource> folders = new ArrayList<>();
 		Iterator<IRuntimeClasspathEntry> iter = list.iterator();
 		while (iter.hasNext()) {
 			IRuntimeClasspathEntry entry = iter.next();
@@ -134,7 +134,7 @@
 		}
 		return folders;
 	}
-	
+
 	@Override
 	protected int getActionType() {
 		return ADD;
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddJarAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddJarAction.java
index d712d13..4d66a1c 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddJarAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddJarAction.java
@@ -31,17 +31,17 @@
 public class AddJarAction extends RuntimeClasspathAction {
 
 	public AddJarAction(IClasspathViewer viewer) {
-		super(ActionMessages.AddJarAction_Add__JARs_1, viewer); 
-	}	
+		super(ActionMessages.AddJarAction_Add__JARs_1, viewer);
+	}
 
 	/**
 	 * Prompts for a jar to add.
-	 * 
+	 *
 	 * @see IAction#run()
-	 */	
+	 */
 	@Override
 	public void run() {
-		
+
 		IPath[] paths = BuildPathDialogAccess.chooseJAREntries(getShell(), null, getSelectedJars());
 
 		if (paths != null && paths.length > 0) {
@@ -51,16 +51,16 @@
 				res[i]= JavaRuntime.newArchiveRuntimeClasspathEntry(elem);
 			}
 			getViewer().addEntries(res);
-		}	
+		}
 	}
-	
+
 	/**
 	 * Returns a list of resources of currently selected jars
 	 * @return the selected jar paths
 	 */
 	protected IPath[] getSelectedJars() {
 		List<IRuntimeClasspathEntry> list = getEntriesAsList();
-		List<IPath> jars = new ArrayList<IPath>();
+		List<IPath> jars = new ArrayList<>();
 		Iterator<IRuntimeClasspathEntry> iter = list.iterator();
 		while (iter.hasNext()) {
 			IRuntimeClasspathEntry entry = iter.next();
@@ -73,7 +73,7 @@
 		}
 		return jars.toArray(new IPath[jars.size()]);
 	}
-	
+
 	@Override
 	protected int getActionType() {
 		return ADD;
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddLibraryAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddLibraryAction.java
index 4387aa3..2cffa82 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddLibraryAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddLibraryAction.java
@@ -26,14 +26,14 @@
 public class AddLibraryAction extends RuntimeClasspathAction {
 
 	public AddLibraryAction(IClasspathViewer viewer) {
-		super(ActionMessages.AddLibraryAction_0, viewer); 
-	}	
+		super(ActionMessages.AddLibraryAction_0, viewer);
+	}
 
 	/**
 	 * Prompts for folder(s) to add.
-	 * 
+	 *
 	 * @see org.eclipse.jface.action.IAction#run()
-	 */	
+	 */
 	@Override
 	public void run() {
 
@@ -45,14 +45,14 @@
 				try {
 					res[i] = JavaRuntime.newRuntimeContainerClasspathEntry(entry.getPath(), IRuntimeClasspathEntry.STANDARD_CLASSES);
 				} catch (CoreException e) {
-					JDIDebugUIPlugin.statusDialog(LauncherMessages.RuntimeClasspathAdvancedDialog_Unable_to_create_new_entry__3, e.getStatus()); 
+					JDIDebugUIPlugin.statusDialog(LauncherMessages.RuntimeClasspathAdvancedDialog_Unable_to_create_new_entry__3, e.getStatus());
 					return;
 				}
 			}
 			getViewer().addEntries(res);
-		}								
+		}
 	}
-		
+
 	@Override
 	protected int getActionType() {
 		return ADD;
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddPackageStepFilterAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddPackageStepFilterAction.java
index 7ef5001..a11c0a7 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddPackageStepFilterAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddPackageStepFilterAction.java
@@ -30,14 +30,14 @@
 		} catch (DebugException de) {
 			return null;
 		}
-		
+
 		// Check for default package, which is not supported by JDI
 		int lastDot = typeName.lastIndexOf('.');
 		if (lastDot < 0) {
 			return null;
-		} 
-				
-		// Append ".*" to the pattern to form a package name	
+		}
+
+		// Append ".*" to the pattern to form a package name
 		String packageName = typeName.substring(0, lastDot + 1);
 		packageName += '*';
 		return packageName;
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddProjectAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddProjectAction.java
index 741330d..8120530 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddProjectAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddProjectAction.java
@@ -41,29 +41,29 @@
  * Adds a project to the runtime class path.
  */
 public class AddProjectAction extends RuntimeClasspathAction {
-	
-	
+
+
 
 	public AddProjectAction(IClasspathViewer viewer) {
-		super(ActionMessages.AddProjectAction_Add_Project_1, viewer); 
-	}	
+		super(ActionMessages.AddProjectAction_Add_Project_1, viewer);
+	}
 
 	/**
 	 * Prompts for a project to add.
-	 * 
+	 *
 	 * @see IAction#run()
-	 */	
+	 */
 	@Override
 	public void run() {
 		List<IJavaProject> projects = getPossibleAdditions();
 		ProjectSelectionDialog dialog= new ProjectSelectionDialog(getShell(),projects);
-		dialog.setTitle(ActionMessages.AddProjectAction_Project_Selection_2); 
+		dialog.setTitle(ActionMessages.AddProjectAction_Project_Selection_2);
 		MultiStatus status = new MultiStatus(JDIDebugUIPlugin.getUniqueIdentifier(), IJavaDebugUIConstants.INTERNAL_ERROR, "One or more exceptions occurred while adding projects.", null);  //$NON-NLS-1$
-				
-		if (dialog.open() == Window.OK) {			
+
+		if (dialog.open() == Window.OK) {
 			Object[] selections = dialog.getResult();
-			
-			List<IJavaProject> additions = new ArrayList<IJavaProject>(selections.length);
+
+			List<IJavaProject> additions = new ArrayList<>(selections.length);
 			try {
 				for (int i = 0; i < selections.length; i++) {
 					IJavaProject jp = (IJavaProject)selections[i];
@@ -76,8 +76,8 @@
 			} catch (JavaModelException e) {
 				status.add(e.getStatus());
 			}
-			
-			List<IRuntimeClasspathEntry> runtimeEntries = new ArrayList<IRuntimeClasspathEntry>(additions.size());
+
+			List<IRuntimeClasspathEntry> runtimeEntries = new ArrayList<>(additions.size());
 			Iterator<IJavaProject> iter = additions.iterator();
 			while (iter.hasNext()) {
 				IJavaProject jp = iter.next();
@@ -92,8 +92,8 @@
 			}
 			IRuntimeClasspathEntry[] entries = runtimeEntries.toArray(new IRuntimeClasspathEntry[runtimeEntries.size()]);
 			getViewer().addEntries(entries);
-		}	
-		
+		}
+
 		if (!status.isOK()) {
 			JDIDebugUIPlugin.statusDialog(status);
 		}
@@ -106,12 +106,12 @@
 	protected boolean updateSelection(IStructuredSelection selection) {
 		return getViewer().updateSelection(getActionType(), selection) && !getPossibleAdditions().isEmpty();
 	}
-	
+
 	@Override
 	protected int getActionType() {
 		return ADD;
 	}
-	
+
 	/**
 	 * Returns the possible projects that can be added
 	 * @return the list of projects
@@ -125,11 +125,11 @@
 			JDIDebugUIPlugin.log(e);
 			projects= new IJavaProject[0];
 		}
-		List<IJavaProject> remaining = new ArrayList<IJavaProject>();
+		List<IJavaProject> remaining = new ArrayList<>();
 		for (int i = 0; i < projects.length; i++) {
 			remaining.add(projects[i]);
 		}
-		List<IJavaProject> alreadySelected = new ArrayList<IJavaProject>();
+		List<IJavaProject> alreadySelected = new ArrayList<>();
 		IRuntimeClasspathEntry[] entries = getViewer().getEntries();
 		for (int i = 0; i < entries.length; i++) {
 			if (entries[i].getType() == IRuntimeClasspathEntry.PROJECT) {
@@ -139,13 +139,13 @@
 			}
 		}
 		remaining.removeAll(alreadySelected);
-		return remaining;		
+		return remaining;
 	}
-	
+
 	/**
 	 * Adds all projects required by <code>proj</code> to the list
 	 * <code>res</code>
-	 * 
+	 *
 	 * @param proj the project for which to compute required
 	 *  projects
 	 * @param res the list to add all required projects too
@@ -154,9 +154,9 @@
 	protected void collectRequiredProjects(IJavaProject proj, List<IJavaProject> res) throws JavaModelException {
 		if (!res.contains(proj)) {
 			res.add(proj);
-			
+
 			IJavaModel model= proj.getJavaModel();
-			
+
 			IClasspathEntry[] entries= proj.getRawClasspath();
 			for (int i= 0; i < entries.length; i++) {
 				IClasspathEntry curr= entries[i];
@@ -168,12 +168,12 @@
 				}
 			}
 		}
-	}		
-	
+	}
+
 	/**
 	 * Adds all exported entries defined by <code>proj</code> to the list
 	 * <code>runtimeEntries</code>.
-	 * 
+	 *
 	 * @param proj the project
 	 * @param runtimeEntries the entries
 	 * @throws CoreException if an exception occurs
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddVariableAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddVariableAction.java
index e5d0c20..bd9c355 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddVariableAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AddVariableAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -23,27 +23,27 @@
 public class AddVariableAction extends RuntimeClasspathAction {
 
 	public AddVariableAction(IClasspathViewer viewer) {
-		super(ActionMessages.AddVariableAction_Add_Variables_1, viewer); 
-	}	
+		super(ActionMessages.AddVariableAction_Add_Variables_1, viewer);
+	}
 
 	/**
 	 * Prompts for variables to add.
-	 * 
+	 *
 	 * @see org.eclipse.jface.action.IAction#run()
-	 */	
+	 */
 	@Override
 	public void run() {
-		
+
 		IPath[] paths = BuildPathDialogAccess.chooseVariableEntries(getShell(), new IPath[0]);
-		if (paths != null) {			
+		if (paths != null) {
 			IRuntimeClasspathEntry[] entries = new IRuntimeClasspathEntry[paths.length];
 			for (int i = 0; i < paths.length; i++) {
 				entries[i] = JavaRuntime.newVariableRuntimeClasspathEntry(paths[i]);
 			}
 			getViewer().addEntries(entries);
-		}				
+		}
 	}
-	
+
 	@Override
 	protected int getActionType() {
 		return ADD;
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AttachSourceAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AttachSourceAction.java
index 3dd0b30..98c11f6 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AttachSourceAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/AttachSourceAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -24,27 +24,27 @@
  * Attach source to an archive or variable.
  */
 public class AttachSourceAction extends RuntimeClasspathAction {
-	
+
 	private IRuntimeClasspathEntry[] fEntries;
-	
+
 	/**
 	 * Creates an action to open a source attachment dialog.
-	 * 
+	 *
 	 * @param viewer the viewer the action is associated with or <code>null</code>
 	 * @param style a button or radio button
 	 */
 	public AttachSourceAction(RuntimeClasspathViewer viewer, int style) {
-		super((style == SWT.RADIO) ? ActionMessages.AttachSourceAction_2 : ActionMessages.AttachSourceAction_3, viewer); // 
-	}	
+		super((style == SWT.RADIO) ? ActionMessages.AttachSourceAction_2 : ActionMessages.AttachSourceAction_3, viewer); //
+	}
 
 	/**
 	 * Prompts source attachment.
-	 * 
+	 *
 	 * @see org.eclipse.jface.action.IAction#run()
-	 */	
+	 */
 	@Override
-	public void run() { 
-		IClasspathEntry classpathEntry = BuildPathDialogAccess.configureSourceAttachment(getShell(), fEntries[0].getClasspathEntry()); 
+	public void run() {
+		IClasspathEntry classpathEntry = BuildPathDialogAccess.configureSourceAttachment(getShell(), fEntries[0].getClasspathEntry());
 		if (classpathEntry != null) {
 			for (int i = 0; i < fEntries.length; i++) {
 				IRuntimeClasspathEntry entry = fEntries[i];
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/BreakpointHitCountAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/BreakpointHitCountAction.java
index 71ea23e..1aacd07 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/BreakpointHitCountAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/BreakpointHitCountAction.java
@@ -40,9 +40,9 @@
 	 * A dialog that sets the focus to the text area.
 	 */
 	class HitCountDialog extends InputDialog {
-		
+
 		private boolean fHitCountEnabled;
-		
+
 		protected  HitCountDialog(Shell parentShell,
 									String dialogTitle,
 									String dialogMessage,
@@ -50,20 +50,20 @@
 									IInputValidator validator) {
 			super(parentShell, dialogTitle, dialogMessage, initialValue, validator);
 		}
-		
+
 		/* (non-Javadoc)
 		 * @see org.eclipse.jface.dialogs.InputDialog#createDialogArea(org.eclipse.swt.widgets.Composite)
 		 */
 		@Override
 		protected Control createDialogArea(Composite parent) {
 			Composite area= (Composite)super.createDialogArea(parent);
-			
+
 			final Button checkbox = new Button(area, SWT.CHECK);
 			GridData data = new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL);
 			data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH);
 			checkbox.setLayoutData(data);
 			checkbox.setFont(parent.getFont());
-			checkbox.setText(ActionMessages.BreakpointHitCountAction_Enable_Hit_Count_1); 
+			checkbox.setText(ActionMessages.BreakpointHitCountAction_Enable_Hit_Count_1);
 			checkbox.setSelection(true);
 			fHitCountEnabled = true;
 			checkbox.addSelectionListener(new SelectionListener() {
@@ -74,15 +74,15 @@
 					if (fHitCountEnabled) {
 						validateInput();
 					} else {
-						setErrorMessage(null); 
+						setErrorMessage(null);
 					}
 				}
-				
+
 				@Override
 				public void widgetDefaultSelected(SelectionEvent e) {
 				}
 			});
-			
+
 			return area;
 		}
 
@@ -111,21 +111,21 @@
 			try {
 				int oldHitCount= breakpoint.getHitCount();
 				int newHitCount= hitCountDialog(breakpoint);
-				if (newHitCount != -1) {					
+				if (newHitCount != -1) {
 					if (oldHitCount == newHitCount && newHitCount == 0) {
 						return;
 					}
 					breakpoint.setHitCount(newHitCount);
 				}
 			} catch (CoreException ce) {
-				JDIDebugUIPlugin.statusDialog(ce.getStatus()); 
+				JDIDebugUIPlugin.statusDialog(ce.getStatus());
 			}
 		}
 	}
-	
+
 	protected int hitCountDialog(IJavaBreakpoint breakpoint) {
-		String title= ActionMessages.BreakpointHitCountAction_Set_Breakpoint_Hit_Count_2; 
-		String message= ActionMessages.BreakpointHitCountAction__Enter_the_new_hit_count_for_the_breakpoint__3; 
+		String title= ActionMessages.BreakpointHitCountAction_Set_Breakpoint_Hit_Count_2;
+		String message= ActionMessages.BreakpointHitCountAction__Enter_the_new_hit_count_for_the_breakpoint__3;
 		IInputValidator validator= new IInputValidator() {
 			int hitCount= -1;
 			@Override
@@ -136,7 +136,7 @@
 					hitCount= -1;
 				}
 				if (hitCount < 1) {
-					return ActionMessages.BreakpointHitCountAction_Value_must_be_positive_integer; 
+					return ActionMessages.BreakpointHitCountAction_Value_must_be_positive_integer;
 				}
 				//no error
 				return null;
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/BreakpointLocationVerifierJob.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/BreakpointLocationVerifierJob.java
index 95c61e5..feb8a97 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/BreakpointLocationVerifierJob.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/BreakpointLocationVerifierJob.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -38,54 +38,54 @@
  * Job used to verify the position of a breakpoint
  */
 public class BreakpointLocationVerifierJob extends Job {
-	
+
 	/**
 	 * The temporary breakpoint that has been set. Can be <code>null</code> if the callee was not able
 	 * to check if a breakpoint was already set at this position.
-	 */	
+	 */
 	private IJavaLineBreakpoint fBreakpoint;
-	
+
 	/**
 	 * The number of the line where the breakpoint has been requested.
 	 */
 	private int fLineNumber;
-	
+
 	/**
 	 * The qualified type name of the class where the temporary breakpoint as been set.
 	 * Can be <code>null</code> if fBreakpoint is null.
-	 */	
+	 */
 	private String fTypeName;
-	
+
 	/**
 	 * The type in which should be set the breakpoint.
 	 */
 	private IType fType;
-	
+
 	/**
 	 * The current IEditorPart
 	 */
 	private IEditorPart fEditorPart;
-	
+
 	/**
 	 * The parsed {@link CompilationUnit}
 	 */
 	CompilationUnit fCunit = null;
-	
+
 	/**
 	 * The document context
 	 */
 	private IDocument fDocument = null;
-	
+
 	/**
 	 * The status line to use to display errors
 	 */
 	private IEditorStatusLine fStatusLine;
-	
+
 	/**
 	 * If a best guess should be made at the breakpoint location
 	 */
 	private boolean fBestMatch = false;
-	
+
 	/**
 	 * Constructor
 	 * @param document
@@ -98,7 +98,7 @@
 	 * @param bestmatch
 	 */
 	public BreakpointLocationVerifierJob(IDocument document, CompilationUnit cunit, IJavaLineBreakpoint breakpoint, int lineNumber, String typeName, IType type, IEditorPart editorPart, boolean bestmatch) {
-		super(ActionMessages.BreakpointLocationVerifierJob_breakpoint_location); 
+		super(ActionMessages.BreakpointLocationVerifierJob_breakpoint_location);
 		fCunit = cunit;
 		fDocument = document;
 		fBreakpoint = breakpoint;
@@ -110,7 +110,7 @@
 		fStatusLine = editorPart.getAdapter(IEditorStatusLine.class);
 		setSystem(true);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
 	 */
@@ -118,7 +118,7 @@
 	public IStatus run(IProgressMonitor monitor) {
 		ValidBreakpointLocationLocator locator = new ValidBreakpointLocationLocator(fCunit, fLineNumber, true, fBestMatch);
 		fCunit.accept(locator);
-		int lineNumber = locator.getLineLocation();		
+		int lineNumber = locator.getLineLocation();
 		String typeName = locator.getFullyQualifiedTypeName();
 		if (typeName == null) {
 			return new Status(IStatus.ERROR, JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.ERROR, ActionMessages.BreakpointLocationVerifierJob_not_valid_location, null);
@@ -141,19 +141,19 @@
 					break;
 				default:
 					// cannot find a valid location
-					report(ActionMessages.BreakpointLocationVerifierJob_not_valid_location); 
+					report(ActionMessages.BreakpointLocationVerifierJob_not_valid_location);
 					if (fBreakpoint != null) {
 						DebugPlugin.getDefault().getBreakpointManager().removeBreakpoint(fBreakpoint, true);
 					}
-					return new Status(IStatus.OK, JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.ERROR, ActionMessages.BreakpointLocationVerifierJob_not_valid_location, null); 
+					return new Status(IStatus.OK, JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.ERROR, ActionMessages.BreakpointLocationVerifierJob_not_valid_location, null);
 			}
 		} catch (CoreException e) {
 			JDIDebugUIPlugin.log(e);
 		}
-		return new Status(IStatus.OK, JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.OK, ActionMessages.BreakpointLocationVerifierJob_breakpoint_set, null); 
-		
+		return new Status(IStatus.OK, JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.OK, ActionMessages.BreakpointLocationVerifierJob_breakpoint_set, null);
+
 	}
-	
+
 	/**
 	 * Determines the placement of the line breakpoint, and ensures that duplicates are not created
 	 * and that notification is sent in the event of collisions
@@ -171,36 +171,36 @@
 					if (differentLineNumber) {
 						// There is already a breakpoint on the valid line.
 						report(NLS.bind(ActionMessages.BreakpointLocationVerifierJob_0, new String[]{Integer.toString(lineNumber)}));
-						return new Status(IStatus.OK, JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.ERROR, ActionMessages.BreakpointLocationVerifierJob_not_valid_location, null); 
+						return new Status(IStatus.OK, JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.ERROR, ActionMessages.BreakpointLocationVerifierJob_not_valid_location, null);
 					}
 					// There is already a breakpoint on the valid line, but it's also the requested line.
 					// Removing the existing breakpoint.
 					DebugPlugin.getDefault().getBreakpointManager().removeBreakpoint(breakpoint, true);
-					return new Status(IStatus.OK, JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.OK, ActionMessages.BreakpointLocationVerifierJob_breakpointRemoved, null); 
+					return new Status(IStatus.OK, JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.OK, ActionMessages.BreakpointLocationVerifierJob_breakpointRemoved, null);
 				}
 				createNewBreakpoint(lineNumber, typeName);
-				return new Status(IStatus.OK, JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.OK, ActionMessages.BreakpointLocationVerifierJob_breakpoint_set, null); 
+				return new Status(IStatus.OK, JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.OK, ActionMessages.BreakpointLocationVerifierJob_breakpoint_set, null);
 			}
 			if (differentLineNumber) {
 				if (breakpointExist) {
 					// there is already a breakpoint on the valid line.
 					DebugPlugin.getDefault().getBreakpointManager().removeBreakpoint(fBreakpoint, true);
-					report(NLS.bind(ActionMessages.BreakpointLocationVerifierJob_0, new String[]{Integer.toString(lineNumber)})); 
-					return new Status(IStatus.OK, JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.ERROR, ActionMessages.BreakpointLocationVerifierJob_not_valid_location, null); 
+					report(NLS.bind(ActionMessages.BreakpointLocationVerifierJob_0, new String[]{Integer.toString(lineNumber)}));
+					return new Status(IStatus.OK, JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.ERROR, ActionMessages.BreakpointLocationVerifierJob_not_valid_location, null);
 				}
 				replaceBreakpoint(lineNumber, typeName);
-				return new Status(IStatus.OK, JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.WARNING, ActionMessages.BreakpointLocationVerifierJob_breakpointMovedToValidPosition, null); 
+				return new Status(IStatus.OK, JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.WARNING, ActionMessages.BreakpointLocationVerifierJob_breakpointMovedToValidPosition, null);
 			}
 			if (!typeName.equals(fTypeName)) {
 				replaceBreakpoint(lineNumber, typeName);
-				return new Status(IStatus.OK, JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.WARNING, ActionMessages.BreakpointLocationVerifierJob_breakpointSetToRightType, null); 
+				return new Status(IStatus.OK, JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.WARNING, ActionMessages.BreakpointLocationVerifierJob_breakpointSetToRightType, null);
 			}
 		} catch (CoreException e) {
 			JDIDebugUIPlugin.log(e);
 		}
-		return new Status(IStatus.OK, JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.OK, ActionMessages.BreakpointLocationVerifierJob_breakpoint_set, null); 
+		return new Status(IStatus.OK, JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.OK, ActionMessages.BreakpointLocationVerifierJob_breakpoint_set, null);
 	}
-	
+
 	/**
 	 * Remove the temporary breakpoint and create a new breakpoint at the right position.
 	 */
@@ -213,14 +213,14 @@
 	 * Create a new breakpoint at the right position.
 	 */
 	private void createNewBreakpoint(int lineNumber, String typeName) throws CoreException {
-		Map<String, Object> newAttributes = new HashMap<String, Object>(10);
+		Map<String, Object> newAttributes = new HashMap<>(10);
 		int start = -1, end = -1;
 		if (fType != null) {
 			try {
 				IRegion line = fDocument.getLineInformation(lineNumber - 1);
 				start = line.getOffset();
 				end = start + line.getLength();
-				
+
 			} catch (BadLocationException ble) {
 				JDIDebugUIPlugin.log(ble);
 			}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/BreakpointSuspendPolicyToggleAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/BreakpointSuspendPolicyToggleAction.java
index 8a1d583..70fd40a 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/BreakpointSuspendPolicyToggleAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/BreakpointSuspendPolicyToggleAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -20,7 +20,7 @@
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.ui.IActionDelegate;
- 
+
 /**
  * Toggles whether a breakpoint suspends a VM or only
  * the event thread.
@@ -29,10 +29,10 @@
 
 	/**
 	 * What the current policy of the action is
-	 * @since 3.3 
+	 * @since 3.3
 	 */
 	private int fCurrentPolicy = IJavaBreakpoint.SUSPEND_THREAD;
-	
+
 	/**
 	 * @see BreakpointToggleAction#doAction(IJavaBreakpoint)
 	 */
@@ -62,7 +62,7 @@
 			if (!(element instanceof IJavaBreakpoint)) {
 				return false;
 			}
-			
+
 		}
 		return true;
 	}
@@ -78,7 +78,7 @@
 			update(action, bp);
 		}
 	}
-	
+
 	/**
 	 * @see org.eclipse.jdt.internal.debug.ui.actions.BreakpointToggleAction#isToggleAction()
 	 */
@@ -93,14 +93,14 @@
 	public void update(IAction action, IJavaBreakpoint breakpoint) {
 		try {
 			if (breakpoint.getSuspendPolicy() == IJavaBreakpoint.SUSPEND_THREAD) {
-				action.setText(ActionMessages.BreakpointSuspendPolicy_Suspend__VM_1); 
+				action.setText(ActionMessages.BreakpointSuspendPolicy_Suspend__VM_1);
 				fCurrentPolicy = IJavaBreakpoint.SUSPEND_VM;
 			} else {
-				action.setText(ActionMessages.BreakpointSuspendPolicy_Suspend__Thread_2); 
+				action.setText(ActionMessages.BreakpointSuspendPolicy_Suspend__Thread_2);
 				fCurrentPolicy = IJavaBreakpoint.SUSPEND_THREAD;
 			}
 		} catch (CoreException e) {
 			 JDIDebugUIPlugin.log(e);
 		}
-	}	
+	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/BreakpointToggleAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/BreakpointToggleAction.java
index 78f0227..c15d3b6 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/BreakpointToggleAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/BreakpointToggleAction.java
@@ -4,13 +4,13 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui.actions;
 
- 
+
 import java.util.Iterator;
 
 import org.eclipse.core.resources.IMarker;
@@ -35,7 +35,7 @@
  * Provides a general toggle action for breakpoints to reuse
  */
 public abstract class BreakpointToggleAction implements IObjectActionDelegate, IBreakpointsListener, IPartListener {
-	
+
 	private IStructuredSelection fSelection;
 	private IAction fAction;
 	private IWorkbenchPart fPart;
@@ -52,10 +52,10 @@
 				IJavaBreakpoint breakpoint= itr.next();
 				doAction(breakpoint);
 			} catch (CoreException e) {
-				String title= ActionMessages.BreakpointAction_Breakpoint_configuration_1; 
-				String message= ActionMessages.BreakpointAction_Exceptions_occurred_attempting_to_modify_breakpoint__2; 
+				String title= ActionMessages.BreakpointAction_Breakpoint_configuration_1;
+				String message= ActionMessages.BreakpointAction_Exceptions_occurred_attempting_to_modify_breakpoint__2;
 				ExceptionHandler.handle(e, title, message);
-			}			
+			}
 		}
 	}
 
@@ -89,30 +89,30 @@
 	/**
 	 * Returns if the action is a checkable action. i.e. if we should bother updating checked state
 	 * @return if the action is a checkable action
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	protected boolean isToggleAction() {
 		return true;
 	}
-	
+
 	/**
 	 * Toggle the state of this action
 	 */
 	public abstract void doAction(IJavaBreakpoint breakpoint) throws CoreException;
-	
+
 	/**
 	 * Returns whether this action is currently toggled on
 	 */
 	protected abstract boolean getToggleState(IJavaBreakpoint breakpoint) throws CoreException;
-	
+
 	/**
 	 * Get the current selection
 	 */
 	protected IStructuredSelection getStructuredSelection() {
 		return fSelection;
 	}
-	
+
 	/**
 	 * Allows the current structured selection to be set
 	 * @param selection the new selection
@@ -120,7 +120,7 @@
 	protected void setStructuredSelection(IStructuredSelection selection) {
 		fSelection= selection;
 	}
-	
+
 	/**
 	 * Returns if the underlying action should be enabled for the given selection
 	 * @param selection
@@ -132,9 +132,9 @@
 	 * Get the breakpoint manager for the debug plugin
 	 */
 	protected IBreakpointManager getBreakpointManager() {
-		return DebugPlugin.getDefault().getBreakpointManager();		
+		return DebugPlugin.getDefault().getBreakpointManager();
 	}
-	
+
 	/**
 	 * Get the breakpoint associated with the given marker
 	 */
@@ -157,7 +157,7 @@
 	protected void setAction(IAction action) {
 		fAction = action;
 	}
-	
+
 	/**
 	 * @see IBreakpointsListener#breakpointsAdded(IBreakpoint[])
 	 */
@@ -181,7 +181,7 @@
 						return;
 					}
 				}
-			}			
+			}
 		}
 	}
 
@@ -191,7 +191,7 @@
 	@Override
 	public void breakpointsRemoved(IBreakpoint[] breakpoints, IMarkerDelta[] deltas) {
 	}
-	
+
 	/**
 	 * Returns the <code>IWorkbenchPart</code> this delegate is associated with
 	 * @return the <code>IWorkbenchPart</code> this delegate is associated with
@@ -207,7 +207,7 @@
 	protected void setPart(IWorkbenchPart part) {
 		fPart = part;
 	}
-	
+
 	/**
 	 * @see IPartListener#partActivated(IWorkbenchPart)
 	 */
@@ -246,7 +246,7 @@
 	@Override
 	public void partOpened(IWorkbenchPart part) {
 	}
-	
+
 	/**
 	 * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart)
 	 */
@@ -254,12 +254,12 @@
 	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
 		IWorkbenchPart oldPart= getPart();
 		if (oldPart != null) {
-			getPart().getSite().getPage().removePartListener(this);			
-		}	
-		
+			getPart().getSite().getPage().removePartListener(this);
+		}
+
 		getBreakpointManager().addBreakpointListener(this);
 		setPart(targetPart);
-		targetPart.getSite().getPage().addPartListener(this);	
+		targetPart.getSite().getPage().addPartListener(this);
 	}
 }
 
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/BreakpointToggleUtils.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/BreakpointToggleUtils.java
index 2b3b7f5..126b23f 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/BreakpointToggleUtils.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/BreakpointToggleUtils.java
@@ -15,12 +15,12 @@
 import org.eclipse.jdt.internal.debug.ui.JDIDebugUIPlugin;
 import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.texteditor.IEditorStatusLine;
- 
+
 /**
  * Utility class for Java Toggle breakpoints
  */
 public class BreakpointToggleUtils {
-	
+
 	private static boolean isTracepoint = false;
 
 
@@ -34,7 +34,7 @@
 
 	/**
 	 * Convenience method for printing messages to the status line
-	 * 
+	 *
 	 * @param message
 	 *            the message to be displayed
 	 * @param part
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ControlAccessibleListener.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ControlAccessibleListener.java
index 12ba057..961d53d 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ControlAccessibleListener.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ControlAccessibleListener.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -16,7 +16,7 @@
 
 public class ControlAccessibleListener extends AccessibleAdapter {
 	private String controlName;
-	
+
 	public ControlAccessibleListener(String name) {
 		controlName = name;
 	}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/DisplayAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/DisplayAction.java
index 67df9b8..8b055ef 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/DisplayAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/DisplayAction.java
@@ -49,8 +49,8 @@
 				}
 			});
 			return;
-		} 		
-		
+		}
+
 		final String snippet= evaluationResult.getSnippet();
 		IJavaValue resultValue= evaluationResult.getValue();
 		try {
@@ -60,18 +60,18 @@
 				sig= type.getSignature();
 			}
 			if ("V".equals(sig)) { //$NON-NLS-1$
-				displayStringResult(snippet, ActionMessages.DisplayAction_no_result_value); 
+				displayStringResult(snippet, ActionMessages.DisplayAction_no_result_value);
 			} else {
 				final String resultString;
 				if (sig != null) {
-					resultString= NLS.bind(ActionMessages.DisplayAction_type_name_pattern, new Object[] { resultValue.getReferenceTypeName() }); 
+					resultString= NLS.bind(ActionMessages.DisplayAction_type_name_pattern, new Object[] { resultValue.getReferenceTypeName() });
 				} else {
 					resultString= ""; //$NON-NLS-1$
 				}
 				getDebugModelPresentation().computeDetail(resultValue, new IValueDetailListener() {
 					@Override
 					public void detailComputed(IValue value, String result) {
-						displayStringResult(snippet, NLS.bind(ActionMessages.DisplayAction_result_pattern, new Object[] { resultString, trimDisplayResult(result)})); 
+						displayStringResult(snippet, NLS.bind(ActionMessages.DisplayAction_result_pattern, new Object[] { resultString, trimDisplayResult(result)}));
 					}
 				});
 			}
@@ -109,11 +109,11 @@
 		}
 		super.run();
 	}
-    
+
     /**
      * Trims the result based on the preference of how long the
      * variable details should be.
-     * 
+     *
      * TODO: illegal internal reference to IInternalDebugUIConstants
      */
     public static String trimDisplayResult(String result) {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/EditClasspathEntryAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/EditClasspathEntryAction.java
index 48a9b99..0788da0 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/EditClasspathEntryAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/EditClasspathEntryAction.java
@@ -28,7 +28,7 @@
  * Moves selected entries in a runtime classpath viewer up one position.
  */
 public class EditClasspathEntryAction extends RuntimeClasspathAction {
-	
+
 	private ILaunchConfiguration fConfiguration;
 
 	public EditClasspathEntryAction(IClasspathViewer viewer, ILaunchConfiguration configuration) {
@@ -37,7 +37,7 @@
 	}
 	/**
 	 * Moves all selected entries up one position (if possible).
-	 * 
+	 *
 	 * @see IAction#run()
 	 */
 	@Override
@@ -62,7 +62,7 @@
 				IRuntimeClasspathEntry[] wrappers = new IRuntimeClasspathEntry[replacements.length];
 				List<IRuntimeClasspathEntry> list = getEntriesAsList();
 				int index = 0;
-				for (int i = 0; i < list.size(); i++) {
+				for (int i = 0; i < list.size() && index < original.length && index < replacements.length; i++) {
 					Object element = list.get(i);
 					if (element == original[index]) {
 						wrappers[index] = new ClasspathEntry(replacements[index], parents[index]);
@@ -76,7 +76,7 @@
 				}
 			}
 		}
-		
+
 	}
 
 	/**
@@ -96,13 +96,13 @@
 		}
 		return false;
 	}
-	
+
 	protected IClasspathEditor getEditor(IRuntimeClasspathEntry entry) {
 		if (entry instanceof IAdaptable) {
 			IAdaptable adaptable = (IAdaptable) entry;
 			return adaptable.getAdapter(IClasspathEditor.class);
-		}		
+		}
 		return null;
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/EditStepFiltersAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/EditStepFiltersAction.java
index d6437d7..1f93bd5 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/EditStepFiltersAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/EditStepFiltersAction.java
@@ -27,5 +27,5 @@
 	public void run(IAction action) {
 		SWTFactory.showPreferencePage(JavaStepFilterPreferencePage.PAGE_ID);
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/EditVariableLogicalStructureAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/EditVariableLogicalStructureAction.java
index 1d623bd..5fefc2a 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/EditVariableLogicalStructureAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/EditVariableLogicalStructureAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial implementation
  *******************************************************************************/
@@ -34,7 +34,7 @@
  * is currently active on the given object.
  */
 public class EditVariableLogicalStructureAction extends ActionDelegate implements IObjectActionDelegate {
-    
+
     /**
      * The editable structure for the currently selected variable or
      * <code>null</code> if none.
@@ -65,7 +65,7 @@
             }
         }
     }
-    
+
     /**
      * @see ActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection)
      */
@@ -92,10 +92,10 @@
         }
         action.setEnabled(fStructure != null);
     }
-    
+
     /**
      * Returns the logical structure currently associated with the given
-     * value or <code>null</code> if none. 
+     * value or <code>null</code> if none.
      * @param value the value
      * @return the logical structure currently associated with the given
      *  value or <code>null</code> if none.
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/EntryToggleAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/EntryToggleAction.java
index b0807d1..b39f2b9 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/EntryToggleAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/EntryToggleAction.java
@@ -4,13 +4,13 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui.actions;
 
- 
+
 import java.util.Iterator;
 
 import org.eclipse.core.runtime.CoreException;
@@ -47,7 +47,7 @@
 			if (!(element instanceof IJavaMethodBreakpoint)) {
 				return false;
 			}
-			
+
 		}
 		return true;
 	}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/EvaluateAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/EvaluateAction.java
index 6da14de..7e1f022 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/EvaluateAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/EvaluateAction.java
@@ -100,33 +100,33 @@
 	private IWorkbenchWindow fWindow;
 	private Object fSelection;
 	private IRegion fRegion;
-	
+
 	/**
 	 * Is the action waiting for an evaluation.
 	 */
 	private boolean fEvaluating;
-	
+
 	/**
 	 * The new target part to use with the evaluation completes.
 	 */
 	private IWorkbenchPart fNewTargetPart= null;
-	
+
 	/**
 	 * Used to resolve editor input for selected stack frame
 	 */
 	private IDebugModelPresentation fPresentation;
-			
+
 	public EvaluateAction() {
 		super();
 	}
-	
+
 	/**
 	 * Returns the 'object' context for this evaluation,
 	 * or <code>null</code> if none. If the evaluation is being performed
 	 * in the context of the variables view/inspector. Then
 	 * perform the evaluation in the context of the
 	 * selected value.
-	 * 
+	 *
 	 * @return Java object or <code>null</code>
 	 */
 	protected IJavaObject getObjectContext() {
@@ -151,7 +151,7 @@
 											if (value instanceof IJavaObject) {
 												return (IJavaObject)value;
 											}
-										} 
+										}
 									} catch (DebugException e) {
 										JDIDebugUIPlugin.log(e);
 									}
@@ -167,9 +167,9 @@
 				}
 			}
 		}
-		return null;		
+		return null;
 	}
-	
+
 	/**
 	 * Finds the currently selected stack frame in the UI.
 	 * Stack frames from a scrapbook launch are ignored.
@@ -181,10 +181,10 @@
 			frame = EvaluationContextManager.getEvaluationContext(getWindow());
 		} else {
 			frame = EvaluationContextManager.getEvaluationContext(part);
-		}		
+		}
 		return frame;
 	}
-	
+
 	/**
 	 * @see IEvaluationListener#evaluationComplete(IEvaluationResult)
 	 */
@@ -194,7 +194,7 @@
 		if (JDIDebugUIPlugin.getDefault() == null) {
 			return;
 		}
-		
+
 		final IJavaValue value= result.getValue();
 		if (result.hasErrors() || value != null) {
 			final Display display= JDIDebugUIPlugin.getStandardDisplay();
@@ -204,7 +204,7 @@
 			displayResult(result);
 		}
 	}
-	
+
 	protected void evaluationCleanup() {
 		setEvaluating(false);
 		setTargetPart(fNewTargetPart);
@@ -212,26 +212,26 @@
 	/**
 	 * Display the given evaluation result.
 	 */
-	abstract protected void displayResult(IEvaluationResult result);	
-	
-	protected void run() {		
+	abstract protected void displayResult(IEvaluationResult result);
+
+	protected void run() {
 		// eval in context of object or stack frame
-		final IJavaObject object = getObjectContext();		
+		final IJavaObject object = getObjectContext();
 		final IJavaStackFrame stackFrame= getStackFrameContext();
 		if (stackFrame == null) {
-			reportError(ActionMessages.Evaluate_error_message_stack_frame_context); 
+			reportError(ActionMessages.Evaluate_error_message_stack_frame_context);
 			return;
 		}
-		
+
 		// check for nested evaluation
 		IJavaThread thread = (IJavaThread)stackFrame.getThread();
 		if (thread.isPerformingEvaluation()) {
-			reportError(ActionMessages.EvaluateAction_Cannot_perform_nested_evaluations__1); 
+			reportError(ActionMessages.EvaluateAction_Cannot_perform_nested_evaluations__1);
 			return;
 		}
-		
+
 		setNewTargetPart(getTargetPart());
-        
+
         IRunnableWithProgress runnable = new IRunnableWithProgress() {
             @Override
 			public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
@@ -245,13 +245,13 @@
                                 return;
                             }
                             String expression= (String)selection;
-                            
+
                             engine = JDIDebugPlugin.getDefault().getEvaluationEngine(project, (IJavaDebugTarget)stackFrame.getDebugTarget());
                             setEvaluating(true);
                             boolean hitBreakpoints= Platform.getPreferencesService().getBoolean(
-                            		JDIDebugPlugin.getUniqueIdentifier(), 
-                            		JDIDebugModel.PREF_SUSPEND_FOR_BREAKPOINTS_DURING_EVALUATION, 
-                            		true, 
+                            		JDIDebugPlugin.getUniqueIdentifier(),
+                            		JDIDebugModel.PREF_SUSPEND_FOR_BREAKPOINTS_DURING_EVALUATION,
+                            		true,
                             		null);
                             if (object == null) {
                                 engine.evaluate(expression, stackFrame, EvaluateAction.this, DebugEvent.EVALUATION, hitBreakpoints);
@@ -263,13 +263,13 @@
                             throw new InvocationTargetException(e, getExceptionMessage(e));
                         }
                     }
-                    throw new InvocationTargetException(null, ActionMessages.Evaluate_error_message_src_context); 
+                    throw new InvocationTargetException(null, ActionMessages.Evaluate_error_message_src_context);
                 }
                 // thread not suspended
-                throw new InvocationTargetException(null, ActionMessages.EvaluateAction_Thread_not_suspended___unable_to_perform_evaluation__1); 
+                throw new InvocationTargetException(null, ActionMessages.EvaluateAction_Thread_not_suspended___unable_to_perform_evaluation__1);
             }
         };
-        
+
         IWorkbench workbench = JDIDebugUIPlugin.getDefault().getWorkbench();
         try {
             workbench.getProgressService().busyCursorWhile(runnable);
@@ -289,9 +289,9 @@
         } catch (InterruptedException e) {
         }
 	}
-		
+
 	protected IJavaProject getJavaProject(IStackFrame stackFrame) {
-		
+
 		// Get the corresponding element.
 		ILaunch launch = stackFrame.getLaunch();
 		if (launch == null) {
@@ -303,7 +303,7 @@
 		}
 		return javaProject;
 	}
-	
+
 	/**
 	 * Updates the enabled state of the action that this is a
 	 * delegate for.
@@ -314,7 +314,7 @@
 			resolveSelectedObject();
 		}
 	}
-	
+
 	/**
 	 * Resolves the selected object in the target part, or <code>null</code>
 	 * if there is no selection.
@@ -361,12 +361,12 @@
 						}
 					}
 					selectedObject= ss;
-				}			
+				}
 			}
 		}
 		setSelectedObject(selectedObject);
 	}
-	
+
 	private Object resolveSelectedObjectUsingToken(Object selectedObject, ITextSelection ts, IEditorPart editor) {
 		ITextEditor textEditor= (ITextEditor) editor;
 		IDocument doc= textEditor.getDocumentProvider().getDocument(editor.getEditorInput());
@@ -390,7 +390,7 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Resolve an editor input from the source element of the stack frame
 	 * argument, and return whether it's equal to the editor input for the
@@ -417,14 +417,14 @@
 		}
 		return false;
 	}
-	
+
 	protected Shell getShell() {
 		if (getTargetPart() != null) {
 			return getTargetPart().getSite().getShell();
 		}
 		return JDIDebugUIPlugin.getActiveWorkbenchShell();
 	}
-	
+
 	protected IDataDisplay getDataDisplay() {
 		IDataDisplay display= getDirectDataDisplay();
 		if (display != null) {
@@ -439,7 +439,7 @@
 					try {
 						view= page.showView(IJavaDebugUIConstants.ID_DISPLAY_VIEW);
 					} catch (PartInitException e) {
-						JDIDebugUIPlugin.statusDialog(ActionMessages.EvaluateAction_Cannot_open_Display_view, e.getStatus()); 
+						JDIDebugUIPlugin.statusDialog(ActionMessages.EvaluateAction_Cannot_open_Display_view, e.getStatus());
 					} finally {
 						page.activate(activePart);
 					}
@@ -447,13 +447,13 @@
 				if (view != null) {
 					page.bringToTop(view);
 					return view.getAdapter(IDataDisplay.class);
-				}			
+				}
 			}
 		}
-		
-		return null;		
-	}	
-	
+
+		return null;
+	}
+
 	protected IDataDisplay getDirectDataDisplay() {
 		IWorkbenchPart part= getTargetPart();
 		if (part != null) {
@@ -478,12 +478,12 @@
 				IDataDisplay display= activePart.getAdapter(IDataDisplay.class);
 				if (display != null) {
 					return display;
-				}	
+				}
 			}
 		}
 		return null;
 	}
-	
+
 	protected boolean textHasContent(String text) {
 		if (text != null) {
 			int length= text.length();
@@ -497,7 +497,7 @@
 		}
 		return false;
 	}
-	
+
 	/**
 	 * Displays a failed evaluation message in the data display.
 	 */
@@ -505,21 +505,21 @@
 		String message= getErrorMessage(result);
 		reportError(message);
 	}
-	
+
 	protected void reportError(String message) {
 		IDataDisplay dataDisplay= getDirectDataDisplay();
 		if (dataDisplay != null) {
 			if (message.length() != 0) {
-				dataDisplay.displayExpressionValue(NLS.bind(ActionMessages.EvaluateAction__evaluation_failed__Reason, new String[] {format(message)})); 
+				dataDisplay.displayExpressionValue(NLS.bind(ActionMessages.EvaluateAction__evaluation_failed__Reason, new String[] {format(message)}));
 			} else {
-				dataDisplay.displayExpressionValue(ActionMessages.EvaluateAction__evaluation_failed__1); 
+				dataDisplay.displayExpressionValue(ActionMessages.EvaluateAction__evaluation_failed__1);
 			}
 		} else {
 			Status status= new Status(IStatus.ERROR, JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.ERROR, message, null);
-			ErrorDialog.openError(getShell(), ActionMessages.Evaluate_error_title_eval_problems, null, status); 
+			ErrorDialog.openError(getShell(), ActionMessages.Evaluate_error_title_eval_problems, null, status);
 		}
 	}
-	
+
 	private String format(String message) {
 		StringBuffer result= new StringBuffer();
 		int index= 0, pos;
@@ -531,7 +531,7 @@
 		}
 		return result.toString();
 	}
-	
+
 	public static String getExceptionMessage(Throwable exception) {
 		if (exception instanceof CoreException) {
 			CoreException ce = (CoreException)exception;
@@ -544,9 +544,9 @@
 			}
 			return ce.getStatus().getMessage();
 		}
-		String message= NLS.bind(ActionMessages.Evaluate_error_message_direct_exception, new Object[] { exception.getClass() }); 
+		String message= NLS.bind(ActionMessages.Evaluate_error_message_direct_exception, new Object[] { exception.getClass() });
 		if (exception.getMessage() != null) {
-			message= NLS.bind(ActionMessages.Evaluate_error_message_exception_pattern, new Object[] { message, exception.getMessage() }); 
+			message= NLS.bind(ActionMessages.Evaluate_error_message_exception_pattern, new Object[] { message, exception.getMessage() });
 		}
 		return message;
 	}
@@ -557,9 +557,9 @@
 	protected static String getInvocationExceptionMessage(com.sun.jdi.InvocationException exception) {
 			InvocationException ie= exception;
 			ObjectReference ref= ie.exception();
-			return NLS.bind(ActionMessages.Evaluate_error_message_wrapped_exception, new Object[] { ref.referenceType().name() }); 
+			return NLS.bind(ActionMessages.Evaluate_error_message_wrapped_exception, new Object[] { ref.referenceType().name() });
 	}
-	
+
 	protected String getErrorMessage(IEvaluationResult result) {
 		String[] errors= result.getErrorMessages();
 		if (errors.length == 0) {
@@ -567,7 +567,7 @@
 		}
 		return getErrorMessage(errors);
 	}
-	
+
 	protected String getErrorMessage(String[] errors) {
 		String message= ""; //$NON-NLS-1$
 		for (int i= 0; i < errors.length; i++) {
@@ -575,12 +575,12 @@
 			if (i == 0) {
 				message= msg;
 			} else {
-				message= NLS.bind(ActionMessages.Evaluate_error_problem_append_pattern, new Object[] { message, msg }); 
+				message= NLS.bind(ActionMessages.Evaluate_error_problem_append_pattern, new Object[] { message, msg });
 			}
 		}
 		return message;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.IActionDelegate#run(IAction)
 	 */
@@ -594,9 +594,9 @@
 	 * @see org.eclipse.ui.IActionDelegate#selectionChanged(IAction, ISelection)
 	 */
 	@Override
-	public void selectionChanged(IAction action, ISelection selection) { 
+	public void selectionChanged(IAction action, ISelection selection) {
 		setAction(action);
-	}	
+	}
 
 	/**
 	 * @see IWorkbenchWindowActionDelegate#dispose()
@@ -631,11 +631,11 @@
 	protected void setAction(IAction action) {
 		fAction = action;
 	}
-	
+
 	/**
 	 * Returns a debug model presentation (creating one
 	 * if necessary).
-	 * 
+	 *
 	 * @return debug model presentation
 	 */
 	protected IDebugModelPresentation getDebugModelPresentation() {
@@ -644,8 +644,8 @@
 		}
 		return fPresentation;
 	}
-	
-	/** 
+
+	/**
 	 * Disposes this action's debug model presentation, if
 	 * one was created.
 	 */
@@ -705,7 +705,7 @@
 	@Override
 	public void partOpened(IWorkbenchPart part) {
 	}
-	
+
 	/**
 	 * @see IViewActionDelegate#init(IViewPart)
 	 */
@@ -741,7 +741,7 @@
 	protected void setWindow(IWorkbenchWindow window) {
 		fWindow = window;
 	}
-	
+
 	/**
 	 * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart)
 	 */
@@ -751,15 +751,15 @@
 		setTargetPart(targetPart);
 		update();
 	}
-	
+
 	protected Object getSelectedObject() {
 		return fSelection;
 	}
-	
+
 	protected void setSelectedObject(Object selection) {
 		fSelection = selection;
 	}
-	
+
 	/**
 	 * @see ISnippetStateChangedListener#snippetStateChanged(JavaSnippetEditor)
 	 */
@@ -780,7 +780,7 @@
 	protected void setNewTargetPart(IWorkbenchPart newTargetPart) {
 		fNewTargetPart = newTargetPart;
 	}
-	
+
 	protected boolean isEvaluating() {
 		return fEvaluating;
 	}
@@ -788,20 +788,20 @@
 	protected void setEvaluating(boolean evaluating) {
 		fEvaluating = evaluating;
 	}
-	
+
 	/**
 	 * Returns the selected text region, or <code>null</code> if none.
-	 * 
+	 *
 	 * @return
 	 */
 	protected IRegion getRegion() {
 		return fRegion;
 	}
-	
+
 	/**
 	 * Returns the styled text widget associated with the given part
 	 * or <code>null</code> if none.
-	 * 
+	 *
 	 * @param part workbench part
 	 * @return associated style text widget or <code>null</code>
 	 */
@@ -818,11 +818,11 @@
 		}
 		return textWidget;
 	}
-	
+
 	/**
 	 * Returns an anchor point for a popup dialog on top of a styled text
 	 * or <code>null</code> if none.
-	 * 
+	 *
 	 * @param part or <code>null</code>
 	 * @return anchor point or <code>null</code>
 	 */
@@ -832,7 +832,7 @@
 	        int midOffset = docRange.x + (docRange.y / 2);
 	        Point point = textWidget.getLocationAtOffset(midOffset);
 	        point = textWidget.toDisplay(point);
-	
+
 	        GC gc = new GC(textWidget);
 	        gc.setFont(textWidget.getFont());
 	        int height = gc.getFontMetrics().getHeight();
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ExceptionCaughtToggleAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ExceptionCaughtToggleAction.java
index d7785bb..5b14698 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ExceptionCaughtToggleAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ExceptionCaughtToggleAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -42,7 +42,7 @@
 		IJavaExceptionBreakpoint exception= (IJavaExceptionBreakpoint)breakpoint;
 		exception.setCaught(!exception.isCaught());
 	}
-	
+
 	/**
 	 * @see BreakpointToggleAction#isEnabledFor(IStructuredSelection)
 	 */
@@ -54,7 +54,7 @@
 			if (!(element instanceof IJavaExceptionBreakpoint)) {
 				return false;
 			}
-			
+
 		}
 		return true;
 	}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ExceptionUncaughtToggleAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ExceptionUncaughtToggleAction.java
index 8cc9ea1..d97c626 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ExceptionUncaughtToggleAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ExceptionUncaughtToggleAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -42,7 +42,7 @@
 		IJavaExceptionBreakpoint exception= (IJavaExceptionBreakpoint)breakpoint;
 		exception.setUncaught(!exception.isUncaught());
 	}
-	
+
 	/**
 	 * @see BreakpointToggleAction#isEnabledFor(IStructuredSelection)
 	 */
@@ -54,7 +54,7 @@
 			if (!(element instanceof IJavaExceptionBreakpoint)) {
 				return false;
 			}
-			
+
 		}
 		return true;
 	}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ExcludeExceptionLocationAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ExcludeExceptionLocationAction.java
index 4a1ba1b..03e38b7 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ExcludeExceptionLocationAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ExcludeExceptionLocationAction.java
@@ -36,7 +36,7 @@
 			return;
 		}
 		Iterator<IJavaThread> itr= selection.iterator();
-		
+
 		while (itr.hasNext()) {
 			IJavaThread thread= itr.next();
 			try {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ExecuteAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ExecuteAction.java
index 72e155c..986a8d8 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ExecuteAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ExecuteAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -37,7 +37,7 @@
 					evaluationCleanup();
 				}
 			});
-		} else {			
+		} else {
 			evaluationCleanup();
 		}
 	}
@@ -52,7 +52,7 @@
 			((JavaSnippetEditor)part).evalSelection(JavaSnippetEditor.RESULT_RUN);
 			return;
 		}
-		super.run();	
+		super.run();
 	}
 
 	/**
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ExitToggleAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ExitToggleAction.java
index 8fb794a..512e4d1 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ExitToggleAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ExitToggleAction.java
@@ -4,13 +4,13 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui.actions;
 
- 
+
 import java.util.Iterator;
 
 import org.eclipse.core.runtime.CoreException;
@@ -47,7 +47,7 @@
 			if (!(element instanceof IJavaMethodBreakpoint)) {
 				return false;
 			}
-			
+
 		}
 		return true;
 	}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ExpressionInputDialog.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ExpressionInputDialog.java
index 005e6f79..6fd12d1 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ExpressionInputDialog.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ExpressionInputDialog.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial implementation
  *******************************************************************************/
@@ -62,7 +62,7 @@
 
     protected IJavaVariable fVariable;
     protected String fResult= null;
-    
+
     // Input area composite which acts as a placeholder for
     // input widgetry that is created/disposed dynamically.
     protected Composite fInputArea;
@@ -76,7 +76,7 @@
 //    protected HandlerSubmission fSubmission;
     // Text for error reporting
     protected Text fErrorText;
-    
+
     /**
      * @param parentShell the shell to create the dialog in
      * @param variable the variable being edited
@@ -96,9 +96,9 @@
 		workbench.getHelpSystem().setHelp(
 				parent,
 				IJavaDebugHelpContextIds.EXPRESSION_INPUT_DIALOG);
-		
+
         Composite composite= (Composite) super.createDialogArea(parent);
-        
+
         // Create the composite which will hold the input widgetry
         fInputArea = createInputArea(composite);
         // Create the error reporting text area
@@ -108,7 +108,7 @@
         populateInputArea(fInputArea);
         return composite;
     }
-    
+
     /**
      * Returns the text widget for reporting errors
      * @param parent parent composite
@@ -131,7 +131,7 @@
     	Dialog.applyDialogFont(composite);
     	return composite;
     }
-    
+
     /**
      * Creates the appropriate widgetry in the input area. This
      * method is intended to be overridden by subclasses who wish
@@ -140,16 +140,16 @@
      */
     protected void populateInputArea(Composite parent) {
     	fSourceViewerComposite = SWTFactory.createComposite(parent, parent.getFont(), 1, 1, GridData.FILL_BOTH, 0, 0);
-    	
-    	String name= ActionMessages.ExpressionInputDialog_3; 
+
+    	String name= ActionMessages.ExpressionInputDialog_3;
         try {
             name= fVariable.getName();
         } catch (DebugException e) {
             JDIDebugUIPlugin.log(e);
         }
-        
+
         SWTFactory.createWrapLabel(fSourceViewerComposite, NLS.bind(ActionMessages.ExpressionInputDialog_0, new String[] {name}), 1, convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH));
-        
+
         fSourceViewer= new JDISourceViewer(fSourceViewerComposite, null, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
         fSourceViewer.setInput(fSourceViewerComposite);
         configureSourceViewer();
@@ -174,7 +174,7 @@
     		}
     	}
     }
-    
+
     /**
      * Initializes the source viewer. This method is based on code in BreakpointConditionEditor.
      */
@@ -193,18 +193,18 @@
 		final IUndoManager undoManager= new TextViewerUndoManager(10);
 		fSourceViewer.setUndoManager(undoManager);
 		undoManager.connect(fSourceViewer);
-		
+
 		fSourceViewer.getTextWidget().setFont(JFaceResources.getTextFont());
-			
+
 		Control control= fSourceViewer.getControl();
 		GridData gd = new GridData(GridData.FILL_BOTH);
 		control.setLayoutData(gd);
-			
+
 		gd= (GridData)fSourceViewer.getControl().getLayoutData();
 		gd.heightHint= convertHeightInCharsToPixels(10);
-		gd.widthHint= convertWidthInCharsToPixels(40);	
-		document.set(getInitialText(fVariable));	
-		
+		gd.widthHint= convertWidthInCharsToPixels(40);
+		document.set(getInitialText(fVariable));
+
 		fDocumentListener= new IDocumentListener() {
             @Override
 			public void documentAboutToBeChanged(DocumentEvent event) {
@@ -215,10 +215,10 @@
             }
         };
 		fSourceViewer.getDocument().addDocumentListener(fDocumentListener);
-		
+
 		activateHandler();
     }
-    
+
     /**
      * Activates the content assist handler.
      */
@@ -234,7 +234,7 @@
 		fService = workbench.getAdapter(IHandlerService.class);
 		fActivation = fService.activateHandler(ITextEditorActionDefinitionIds.CONTENT_ASSIST_PROPOSALS, handler);
     }
-      
+
     /**
      * Returns the text that should be shown in the source viewer upon
      * initialization. The text should be presented in such a way that
@@ -295,7 +295,7 @@
 		}
 		return fCompletionProcessor;
 	}
-    
+
 	/**
 	 * @see org.eclipse.jface.preference.FieldEditor#refreshValidState()
 	 */
@@ -305,16 +305,16 @@
 			String text= viewer.getDocument().get();
 			boolean valid= text != null && text.trim().length() > 0;
 			if (!valid) {
-				errorMessage= ActionMessages.ExpressionInputDialog_1; 
+				errorMessage= ActionMessages.ExpressionInputDialog_1;
 			}
 	    }
 		setErrorMessage(errorMessage);
 	}
-	
+
 	protected void refreshValidState() {
 		refreshValidState(fSourceViewer);
 	}
-	
+
 	/**
 	 * Sets the error message to display to the user. <code>null</code>
 	 * is the same as the empty string.
@@ -328,7 +328,7 @@
 	    fErrorText.setText(message);
 	    getButton(IDialogConstants.OK_ID).setEnabled(message.length() == 0);
 	}
-	
+
 	/**
 	 * Persist the dialog size and store the user's input on OK is pressed.
 	 */
@@ -337,7 +337,7 @@
         fResult= getText();
         super.okPressed();
     }
-    
+
     /**
      * Returns the text that is currently displayed in the source viewer.
      * @return the text that is currently displayed in the source viewer
@@ -345,25 +345,25 @@
     protected String getText() {
         return fSourceViewer.getDocument().get();
     }
-    
+
 	/**
 	 * Returns the text entered by the user or <code>null</code> if the user cancelled.
-	 * 
+	 *
 	 * @return the text entered by the user or <code>null</code> if the user cancelled
 	 */
     public String getResult() {
         return fResult;
     }
-    
+
     /**
      * Initializes the dialog shell with a title.
      */
     @Override
 	protected void configureShell(Shell newShell) {
         super.configureShell(newShell);
-        newShell.setText(ActionMessages.ExpressionInputDialog_2); 
+        newShell.setText(ActionMessages.ExpressionInputDialog_2);
     }
-    
+
     /**
      * Override method to initialize the enablement of the OK button after
      * it is created.
@@ -375,7 +375,7 @@
         // button
         refreshValidState();
     }
-    
+
     /* (non-Javadoc)
      * @see org.eclipse.jface.window.Window#close()
      */
@@ -397,7 +397,7 @@
 		fCompletionProcessor = null;
         return super.close();
     }
-    
+
     /* (non-Javadoc)
      * @see org.eclipse.jface.dialogs.Dialog#getDialogBoundsSettings()
      */
@@ -407,10 +407,10 @@
          IDialogSettings section = settings.getSection(getDialogSettingsSectionName());
          if (section == null) {
              section = settings.addNewSection(getDialogSettingsSectionName());
-         } 
+         }
          return section;
     }
-	
+
 	/**
 	 * @return the name to use to save the dialog settings
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ForceReturnAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ForceReturnAction.java
index 0aee073..4bbe491 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ForceReturnAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ForceReturnAction.java
@@ -25,11 +25,11 @@
 
 /**
  * Action for force return from a method.
- * 
+ *
  * @since 3.3
  */
 public class ForceReturnAction extends EvaluateAction {
-	
+
 	private IJavaStackFrame fTargetFrame = null;
 
 	/* (non-Javadoc)
@@ -38,7 +38,7 @@
 	@Override
 	protected void displayResult(final IEvaluationResult result) {
 		evaluationCleanup();
-		
+
 		final Display display = JDIDebugUIPlugin.getStandardDisplay();
 		// error with evaluation
 		if (result.hasErrors()) {
@@ -52,7 +52,7 @@
 				}
 			});
 			return;
-		} 
+		}
 
 		// force return with the result
 		try {
@@ -87,7 +87,7 @@
 	}
 
 	@Override
-	protected void run() {		
+	protected void run() {
 		IJavaStackFrame stackFrame= getStackFrameContext();
 		if (stackFrame != null) {
 			try {
@@ -106,9 +106,9 @@
 		// perform evaluation otherwise
 		super.run();
 	}
-	
-	
-	
-	
+
+
+
+
 
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/InspectAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/InspectAction.java
index ea50bbf..d7cf3b4 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/InspectAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/InspectAction.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui.actions;
 
- 
+
 import java.util.Iterator;
 
 import org.eclipse.debug.core.DebugException;
@@ -34,7 +34,7 @@
  * Places the result of an evaluation in the debug expression view.
  */
 public class InspectAction extends EvaluateAction {
-	
+
 	/**
 	 * @see EvaluateAction#displayResult(IEvaluationResult)
 	 */
@@ -44,7 +44,7 @@
 		display.asyncExec(new Runnable() {
 			@Override
 			public void run() {
-				if (!display.isDisposed()) {				
+				if (!display.isDisposed()) {
 					showExpressionView();
 					JavaInspectExpression exp = new JavaInspectExpression(result);
 					DebugPlugin.getDefault().getExpressionManager().addExpression(exp);
@@ -53,7 +53,7 @@
 			}
 		});
 	}
-	
+
 	/**
 	 * Make the expression view visible or open one
 	 * if required.
@@ -76,7 +76,7 @@
 			}
 		}
 	}
-	
+
 	@Override
 	protected void run() {
 		IWorkbenchPart part= getTargetPart();
@@ -84,13 +84,13 @@
 			((JavaSnippetEditor)part).evalSelection(JavaSnippetEditor.RESULT_INSPECT);
 			return;
 		}
-		
+
 		Object selection= getSelectedObject();
 		if (!(selection instanceof IStructuredSelection)) {
 			super.run();
 			return;
 		}
-		
+
 		//inspecting from the context of the variables view
 		Iterator<IJavaVariable> variables = ((IStructuredSelection)selection).iterator();
 		while (variables.hasNext()) {
@@ -99,13 +99,13 @@
 				JavaInspectExpression expr = new JavaInspectExpression(var.getName(), (IJavaValue)var.getValue());
 				DebugPlugin.getDefault().getExpressionManager().addExpression(expr);
 			} catch (DebugException e) {
-				JDIDebugUIPlugin.statusDialog(e.getStatus()); 
+				JDIDebugUIPlugin.statusDialog(e.getStatus());
 			}
 		}
-	
+
 		showExpressionView();
 	}
-	
+
 	@Override
 	protected IDataDisplay getDataDisplay() {
 		return getDirectDataDisplay();
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/InstanceFiltersAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/InstanceFiltersAction.java
index b2f69e0..36a5dda 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/InstanceFiltersAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/InstanceFiltersAction.java
@@ -45,17 +45,17 @@
  * Action to associate an object with one or more breakpoints.
  */
 public class InstanceFiltersAction extends ObjectActionDelegate {
-	
+
 	/**
 	 * Dialog that allows the user to select one or more breakpoints that should be restricted
 	 * to a specific object instance.
 	 */
 	class InstanceFilterDialog extends AbstractDebugCheckboxSelectionDialog {
-		
+
 		private Object fInput;
 		private String fMessage;
 		private IBaseLabelProvider fLabelProvider;
-		
+
 		public InstanceFilterDialog(Shell parentShell, Object input, IBaseLabelProvider labelProvider, String message){
 			super(parentShell);
 			fInput = input;
@@ -64,7 +64,7 @@
 			setShellStyle(getShellStyle() | SWT.RESIZE);
 			setShowSelectAllButtons(true);
 		}
-		
+
 		/* (non-Javadoc)
 		 * @see org.eclipse.debug.internal.ui.AbstractDebugCheckboxSelectionDialog#isValid()
 		 */
@@ -72,7 +72,7 @@
 		protected boolean isValid() {
 			return true;
 		}
-		
+
 		/* (non-Javadoc)
 		 * @see org.eclipse.debug.internal.ui.launchConfigurations.AbstractDebugSelectionDialog#getDialogSettingsId()
 		 */
@@ -104,7 +104,7 @@
 		protected String getViewerLabel() {
 			return fMessage;
 		}
-		
+
 		/* (non-Javadoc)
 		 * @see org.eclipse.debug.internal.ui.launchConfigurations.AbstractDebugSelectionDialog#getLabelProvider()
 		 */
@@ -123,7 +123,7 @@
 		if (selection == null || selection.size() > 1) {
 			return;
 		}
-		
+
 		Object o = selection.getFirstElement();
 		if (o instanceof IJavaVariable) {
 			final IJavaVariable var = (IJavaVariable)o;
@@ -133,14 +133,14 @@
 					final IJavaObject object = (IJavaObject)value;
 					final List<IJavaBreakpoint> breakpoints = getApplicableBreakpoints(var, object);
 					final IDebugModelPresentation modelPresentation= DebugUITools.newDebugModelPresentation();
-					
+
 					if (breakpoints.isEmpty())
 					{
 						MessageDialog.openInformation(JDIDebugUIPlugin.getActiveWorkbenchShell(), ActionMessages.InstanceFiltersAction_0, ActionMessages.InstanceFiltersAction_4);
 						return;
 					}
-					
-					InstanceFilterDialog dialog = new InstanceFilterDialog(JDIDebugUIPlugin.getActiveWorkbenchShell(), breakpoints, modelPresentation, NLS.bind(ActionMessages.InstanceFiltersAction_1, new String[] {var.getName()})){ 
+
+					InstanceFilterDialog dialog = new InstanceFilterDialog(JDIDebugUIPlugin.getActiveWorkbenchShell(), breakpoints, modelPresentation, NLS.bind(ActionMessages.InstanceFiltersAction_1, new String[] {var.getName()})){
 						@Override
 						public void okPressed() {
 							// check if breakpoints have already been restricted to other objects.
@@ -158,9 +158,9 @@
 										}
 									}
 									if (sameTarget) {
-										MessageDialog messageDialog= new MessageDialog(JDIDebugUIPlugin.getActiveWorkbenchShell(), ActionMessages.InstanceFiltersAction_2, 
-											null, NLS.bind(ActionMessages.InstanceFiltersAction_3, new String[] { modelPresentation.getText(breakpoint), var.getName()}), 
-											MessageDialog.QUESTION, new String[] { ActionMessages.InstanceFiltersAction_Yes_2, ActionMessages.InstanceFiltersAction_Cancel_3}, // 
+										MessageDialog messageDialog= new MessageDialog(JDIDebugUIPlugin.getActiveWorkbenchShell(), ActionMessages.InstanceFiltersAction_2,
+											null, NLS.bind(ActionMessages.InstanceFiltersAction_3, new String[] { modelPresentation.getText(breakpoint), var.getName()}),
+											MessageDialog.QUESTION, new String[] { ActionMessages.InstanceFiltersAction_Yes_2, ActionMessages.InstanceFiltersAction_Cancel_3}, //
 											0);
 										if (messageDialog.open() == Window.OK) {
 											for (int i= 0; i < instanceFilters.length; i++) {
@@ -178,10 +178,10 @@
 							super.okPressed();
 						}
 					};
-					dialog.setTitle(ActionMessages.InstanceFiltersAction_2); 
-					
+					dialog.setTitle(ActionMessages.InstanceFiltersAction_2);
+
 					// determine initial selection
-					List<IJavaBreakpoint> existing = new ArrayList<IJavaBreakpoint>();
+					List<IJavaBreakpoint> existing = new ArrayList<>();
 					Iterator<IJavaBreakpoint> iter = breakpoints.iterator();
 					while (iter.hasNext()) {
 						IJavaBreakpoint bp = iter.next();
@@ -194,7 +194,7 @@
 						}
 					}
 					dialog.setInitialSelections(existing.toArray());
-					
+
 					if (dialog.open() == Window.OK) {
 						Object[] selectedBreakpoints = dialog.getResult();
 						if (selectedBreakpoints != null) {
@@ -220,19 +220,19 @@
 			}
 		}
 	}
-	
+
 	protected List<IJavaBreakpoint> getApplicableBreakpoints(IJavaVariable variable, IJavaObject object) {
-		List<IJavaBreakpoint> breakpoints = new ArrayList<IJavaBreakpoint>();
-		
+		List<IJavaBreakpoint> breakpoints = new ArrayList<>();
+
 		try {
 			// collect names in type hierarchy
-			List<String> superTypeNames = new ArrayList<String>();
+			List<String> superTypeNames = new ArrayList<>();
 			IJavaType type = object.getJavaType();
 			while (type instanceof IJavaClassType) {
 				superTypeNames.add(type.getName());
 				type = ((IJavaClassType)type).getSuperclass();
 			}
-			
+
 			IBreakpoint[] allBreakpoints = DebugPlugin.getDefault().getBreakpointManager().getBreakpoints();
 			for (int i = 0; i < allBreakpoints.length; i++) {
 				if (allBreakpoints[i] instanceof IJavaBreakpoint) {
@@ -255,7 +255,7 @@
 		} catch (CoreException e) {
 			JDIDebugUIPlugin.log(e);
 		}
-		 
+
 		return breakpoints;
 	}
 
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/JavaBreakpointPropertiesAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/JavaBreakpointPropertiesAction.java
index 58caf24..cf07906 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/JavaBreakpointPropertiesAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/JavaBreakpointPropertiesAction.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui.actions;
 
- 
+
 import org.eclipse.jdt.debug.core.IJavaBreakpoint;
 import org.eclipse.jdt.internal.debug.ui.JDIDebugUIPlugin;
 import org.eclipse.jface.action.IAction;
@@ -27,7 +27,7 @@
  * the attributes of a Java Breakpoint.
  */
 public class JavaBreakpointPropertiesAction implements IObjectActionDelegate {
-	
+
 	private IJavaBreakpoint fBreakpoint;
 
 	/**
@@ -39,10 +39,10 @@
 		//where conditions randomly seem to have errors while using an IBM VM in testing mode
 		if(fBreakpoint != null && !ErrorDialog.AUTOMATED_MODE) {
 		    PreferencesUtil.createPropertyDialogOn(
-		    		JDIDebugUIPlugin.getActiveWorkbenchShell(), 
-		    		fBreakpoint, 
-		    		null, 
-		    		null, 
+		    		JDIDebugUIPlugin.getActiveWorkbenchShell(),
+		    		fBreakpoint,
+		    		null,
+		    		null,
 		    		null).open();
 		}
 	}
@@ -74,7 +74,7 @@
 	public void setBreakpoint(IJavaBreakpoint breakpoint) {
 		fBreakpoint = breakpoint;
 	}
-	
+
 	/**
 	 * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/JavaBreakpointPropertiesRulerAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/JavaBreakpointPropertiesRulerAction.java
index d6eb147..5e193ad 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/JavaBreakpointPropertiesRulerAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/JavaBreakpointPropertiesRulerAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -28,11 +28,11 @@
 
 /**
  * Presents the standard properties dialog to configure
- * the attibutes of a Java Breakpoint from the ruler popup menu of a 
+ * the attibutes of a Java Breakpoint from the ruler popup menu of a
  * text editor.
  */
 public class JavaBreakpointPropertiesRulerAction extends RulerBreakpointAction implements IUpdate {
-	
+
 	private IBreakpoint fBreakpoint;
 
 	/**
@@ -40,7 +40,7 @@
 	 */
 	public JavaBreakpointPropertiesRulerAction(ITextEditor editor, IVerticalRulerInfo info) {
 		super(editor, info);
-		setText(ActionMessages.JavaBreakpointPropertiesRulerAction_Breakpoint__Properties_1 + '\t' + DebugUIPlugin.formatKeyBindingString(SWT.MOD1, ActionMessages.JavaBreakpointPropertiesRulerAction_0)); 
+		setText(ActionMessages.JavaBreakpointPropertiesRulerAction_Breakpoint__Properties_1 + '\t' + DebugUIPlugin.formatKeyBindingString(SWT.MOD1, ActionMessages.JavaBreakpointPropertiesRulerAction_0));
 	}
 	/**
 	 * @see Action#run()
@@ -48,7 +48,7 @@
 	@Override
 	public void run() {
 		if (getBreakpoint() != null) {
-			PropertyDialogAction action= 
+			PropertyDialogAction action=
 				new PropertyDialogAction(getEditor().getEditorSite(), new ISelectionProvider() {
 					@Override
 					public void addSelectionChangedListener(ISelectionChangedListener listener) {
@@ -64,10 +64,10 @@
 					public void setSelection(ISelection selection) {
 					}
 				});
-			action.run();	
+			action.run();
 		}
 	}
-	
+
 	/**
 	 * @see IUpdate#update()
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/JavaObjectValueEditor.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/JavaObjectValueEditor.java
index bb7d5a0..8fb2309 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/JavaObjectValueEditor.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/JavaObjectValueEditor.java
@@ -101,7 +101,7 @@
     /**
      * Evaluates the given expression and sets the given variable's value
      * using the result.
-     * 
+     *
      * @param variable the variable whose value should be set
      * @param expression the expression to evaluate
      * @throws DebugException if an exception occurs evaluating the expression
@@ -137,7 +137,7 @@
             IStatus status = new Status(IStatus.ERROR, JDIDebugUIPlugin.getUniqueIdentifier(), IDebugUIConstants.INTERNAL_ERROR, cause.getMessage(), null);
             JDIDebugUIPlugin.statusDialog(ActionMessages.JavaObjectValueEditor_3, status);
         } else {
-            JDIDebugUIPlugin.statusDialog(e.getStatus()); 
+            JDIDebugUIPlugin.statusDialog(e.getStatus());
         }
     }
 
@@ -186,7 +186,7 @@
         			    String[] messages = result.getErrorMessages();
         			    for (int i = 0; i < messages.length; i++) {
                             buffer.append(messages[i]).append("\n "); //$NON-NLS-1$
-                        }    			    	
+                        }
     			    } else {
     			    	buffer.append(EvaluateAction.getExceptionMessage(exception));
     			    }
@@ -198,7 +198,7 @@
         }
         return null;
     }
-    
+
     /**
      * (copied from EvaluateAction)
      */
@@ -214,9 +214,9 @@
 			}
 			return ce.getStatus().getMessage();
 		}
-		String message= NLS.bind(ActionMessages.Evaluate_error_message_direct_exception, new Object[] { exception.getClass() }); 
+		String message= NLS.bind(ActionMessages.Evaluate_error_message_direct_exception, new Object[] { exception.getClass() });
 		if (exception.getMessage() != null) {
-			message= NLS.bind(ActionMessages.Evaluate_error_message_exception_pattern, new Object[] { message, exception.getMessage() }); 
+			message= NLS.bind(ActionMessages.Evaluate_error_message_exception_pattern, new Object[] { message, exception.getMessage() });
 		}
 		return message;
 	}
@@ -227,9 +227,9 @@
 	protected String getInvocationExceptionMessage(com.sun.jdi.InvocationException exception) {
 			InvocationException ie= exception;
 			ObjectReference ref= ie.exception();
-			return NLS.bind(ActionMessages.Evaluate_error_message_wrapped_exception, new Object[] { ref.referenceType().name() }); 
+			return NLS.bind(ActionMessages.Evaluate_error_message_wrapped_exception, new Object[] { ref.referenceType().name() });
 	}
-    
+
 	/**
 	 * Return the project associated with the given stack frame.
 	 * (copied from JavaWatchExpressionDelegate)
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/JavaPrimitiveValueEditor.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/JavaPrimitiveValueEditor.java
index 8e8a400..2ac41e1 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/JavaPrimitiveValueEditor.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/JavaPrimitiveValueEditor.java
@@ -30,7 +30,7 @@
  * A variable value editor that prompts the user to set a primitive's value.
  */
 public class JavaPrimitiveValueEditor implements IVariableValueEditor {
-    
+
     /**
      * The signature of the edited variable.
      */
@@ -43,7 +43,7 @@
     public JavaPrimitiveValueEditor(String signature) {
         fSignature= signature;
     }
-    
+
     /* (non-Javadoc)
      * @see org.eclipse.debug.ui.actions.IVariableValueEditor#editVariable(org.eclipse.debug.core.model.IVariable, org.eclipse.swt.widgets.Shell)
      */
@@ -51,8 +51,8 @@
 	public boolean editVariable(IVariable variable, Shell shell) {
         try {
             String name= variable.getName();
-            String title= ActionMessages.JavaPrimitiveValueEditor_0; 
-            String message= NLS.bind(ActionMessages.JavaPrimitiveValueEditor_1, new String[] {name}); 
+            String title= ActionMessages.JavaPrimitiveValueEditor_0;
+            String message= NLS.bind(ActionMessages.JavaPrimitiveValueEditor_1, new String[] {name});
             String initialValue= variable.getValue().getValueString();
             PrimitiveValidator validator= new PrimitiveValidator();
             InputDialog dialog= new InputDialog(shell, title, message, initialValue, validator){
@@ -76,7 +76,7 @@
                 variable.setValue(stringValue);
             }
         } catch (DebugException e) {
-            JDIDebugUIPlugin.errorDialog(shell, ActionMessages.JavaPrimitiveValueEditor_2, ActionMessages.JavaPrimitiveValueEditor_3, e); // 
+            JDIDebugUIPlugin.errorDialog(shell, ActionMessages.JavaPrimitiveValueEditor_2, ActionMessages.JavaPrimitiveValueEditor_3, e); //
         }
         return true;
     }
@@ -108,7 +108,7 @@
     	catch(NumberFormatException nfe) {}
     	return value;
     }
-    
+
     /**
      * Input validator for primitive types
      */
@@ -135,7 +135,7 @@
 	        					isUnicode(newText)) {
 	        				break;
 	        			}
-	        		} 
+	        		}
 	        		if (newText.length() != 1) {
 	        	        type="char"; //$NON-NLS-1$
 	        	    }
@@ -182,7 +182,7 @@
 	                break;
             }
             if (type != null) {
-                return NLS.bind(ActionMessages.JavaPrimitiveValueEditor_4, new String[] { type }); 
+                return NLS.bind(ActionMessages.JavaPrimitiveValueEditor_4, new String[] { type });
             }
             return null;
         }
@@ -201,7 +201,7 @@
 			}
 			return false;
 		}
-		
+
 		private boolean isOctalEscape(String newText) {
 			char[] chars= newText.toCharArray();
 			if (chars.length < 4) {
@@ -238,16 +238,16 @@
 				ch == '\'' ||
 				ch == '\\');
 		}
-		
-		
+
+
 		private boolean isOctalDigit(char ch) {
             return Character.digit(ch, 8) != -1;
 		}
-		
+
 		private boolean isHexDigit(char ch) {
             return Character.digit(ch, 16) != -1;
 		}
-		
+
 		/**
 		 * Returns the integer value specified by the given string, which
 		 * represents an octal or hexadecimal escape sequence. Returns
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/JavaVariableValueEditor.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/JavaVariableValueEditor.java
index 38025e1..4869a86 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/JavaVariableValueEditor.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/JavaVariableValueEditor.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial implementation
  *******************************************************************************/
@@ -33,7 +33,7 @@
         try {
             signature= getSignature(variable);
 	    } catch (DebugException e) {
-	        JDIDebugUIPlugin.errorDialog(shell, ActionMessages.JavaVariableValueEditor_0, ActionMessages.JavaVariableValueEditor_1, e); // 
+	        JDIDebugUIPlugin.errorDialog(shell, ActionMessages.JavaVariableValueEditor_0, ActionMessages.JavaVariableValueEditor_1, e); //
 	    }
 	    if (signature == null) {
 	        return false;
@@ -62,15 +62,15 @@
 					return true;
 				}
 			} catch (DebugException e) {
-				JDIDebugUIPlugin.statusDialog(e.getStatus()); 
+				JDIDebugUIPlugin.statusDialog(e.getStatus());
 			}
     	}
-    	
+
     	// support expressions for primitives as well as literals
         IVariableValueEditor editor= new JavaObjectValueEditor();
         return editor.saveVariable(variable, expression, shell);
     }
-    
+
     public static String getSignature(IVariable variable) throws DebugException {
         String signature= null;
 		IJavaVariable javaVariable = variable.getAdapter(IJavaVariable.class);
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/MoveDownAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/MoveDownAction.java
index a404987..1c7655d 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/MoveDownAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/MoveDownAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -22,7 +22,7 @@
 public class MoveDownAction extends RuntimeClasspathAction {
 
 	public MoveDownAction(IClasspathViewer viewer) {
-		super(ActionMessages.MoveDownAction_M_ove_Down_1, viewer); 
+		super(ActionMessages.MoveDownAction_M_ove_Down_1, viewer);
 	}
 
 	/* (non-Javadoc)
@@ -51,7 +51,7 @@
 			} else {
 				bottom = index;
 			}
-		} 
+		}
 		setEntries(list);
 	}
 
@@ -63,9 +63,9 @@
 		if (selection.isEmpty()) {
 			return false;
 		}
-		return getViewer().updateSelection(getActionType(), selection);	
+		return getViewer().updateSelection(getActionType(), selection);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.actions.RuntimeClasspathAction#getActionType()
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/MoveUpAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/MoveUpAction.java
index 6ecb51b..24a12ae 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/MoveUpAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/MoveUpAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -23,7 +23,7 @@
 public class MoveUpAction extends RuntimeClasspathAction {
 
 	public MoveUpAction(IClasspathViewer viewer) {
-		super(ActionMessages.MoveUpAction_Move_U_p_1, viewer); 
+		super(ActionMessages.MoveUpAction_Move_U_p_1, viewer);
 	}
 
 	/* (non-Javadoc)
@@ -54,7 +54,7 @@
 			} else {
 				top = index;
 			}
-		} 
+		}
 		setEntries(list);
 	}
 
@@ -68,7 +68,7 @@
 		}
 		return getViewer().updateSelection(getActionType(), selection);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.actions.RuntimeClasspathAction#getActionType()
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/NewDetailFormatterAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/NewDetailFormatterAction.java
index 70ebe2a..a1a7dc9 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/NewDetailFormatterAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/NewDetailFormatterAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ObjectActionDelegate.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ObjectActionDelegate.java
index ee61d60..4cbe51b 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ObjectActionDelegate.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ObjectActionDelegate.java
@@ -27,9 +27,9 @@
 import org.eclipse.ui.IWorkbenchWindow;
 
 public abstract class ObjectActionDelegate implements IObjectActionDelegate, IActionDelegate2 {
-	
+
 	IWorkbenchPart fPart = null;
-	
+
 	/**
 	 * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart)
 	 */
@@ -37,18 +37,18 @@
 	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
 		fPart = targetPart;
 	}
-	
+
 	protected IWorkbenchPart getPart() {
 		return fPart;
 	}
-	
+
 	/**
 	 * @see IActionDelegate#selectionChanged(IAction, ISelection)
 	 */
 	@Override
 	public void selectionChanged(IAction action, ISelection sel) {
 	}
-	
+
 	/**
 	 * Returns the currently selected item(s) from the current workbench page or <code>null</code>
 	 * if the current active page could not be resolved.
@@ -60,14 +60,14 @@
 			ISelection selection= page.getSelection();
 			if (selection instanceof IStructuredSelection) {
 				return (IStructuredSelection)selection;
-			}	
+			}
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Displays the given error message in the status line.
-	 * 
+	 *
 	 * @param message
 	 */
 	protected void showErrorMessage(String message) {
@@ -77,7 +77,7 @@
 			manager.setErrorMessage(message);
 		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.IActionDelegate2#dispose()
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ObjectFilter.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ObjectFilter.java
index dd6cd23..ebf5ecf 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ObjectFilter.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ObjectFilter.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -20,21 +20,21 @@
  * A filter on a set of objects
  */
 public class ObjectFilter extends ViewerFilter {
-		
+
 	/**
 	 * Objects to filter
 	 */
 	protected List<?> fFilter;
-	
+
 	/**
-	 * Creates a new filter that filters the given 
+	 * Creates a new filter that filters the given
 	 * objects.
 	 * @param objects the objects to filter against
 	 */
 	public ObjectFilter(List<?> objects) {
 		fFilter = objects;
 	}
-	
+
 	/**
 	 * @see ViewerFilter#select(Viewer, Object, Object)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenDeclaringTypeAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenDeclaringTypeAction.java
index 4a80777..efd8dc0 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenDeclaringTypeAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenDeclaringTypeAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -20,7 +20,7 @@
  * Opens the declaring type of a stack frame.
  */
 public class OpenDeclaringTypeAction extends OpenStackFrameAction {
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.actions.OpenTypeAction#getTypeToOpen(org.eclipse.debug.core.model.IDebugElement)
 	 */
@@ -32,5 +32,5 @@
 		}
 		return null;
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenDeclaringTypeHierarchyAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenDeclaringTypeHierarchyAction.java
index 4bb98a7..5330ec9 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenDeclaringTypeHierarchyAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenDeclaringTypeHierarchyAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -14,7 +14,7 @@
  * Opens the declaring type hierarchy of a stack frame.
  */
 public class OpenDeclaringTypeHierarchyAction extends OpenDeclaringTypeAction {
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.actions.OpenTypeAction#isHierarchy()
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenDialogAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenDialogAction.java
index 69fc500..e4e8928 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenDialogAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenDialogAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -20,13 +20,13 @@
  * settings.
  */
 public abstract class OpenDialogAction extends RuntimeClasspathAction {
-	
+
 	/**
 	 * Attribute name for the last path used to open a file/directory chooser
 	 * dialog.
 	 */
 	protected static final String LAST_PATH_SETTING = "LAST_PATH_SETTING"; //$NON-NLS-1$
-	
+
 	/**
 	 * Dialog settings prefix/qualifier
 	 */
@@ -39,7 +39,7 @@
 		super(label, viewer);
 		fPrefix = dialogSettingsPrefix;
 	}
-	
+
 	/**
 	 * Returns the prefix of the identifier used to store dialog settings for
 	 * this action.
@@ -47,24 +47,24 @@
 	protected String getDialogSettingsPrefix() {
 		return fPrefix;
 	}
-	
+
 	/**
 	 * Returns the value of the dialog setting, associated with the given
 	 * settingName, resolved by the dialog setting prefix associated with this
 	 * action.
-	 * 
+	 *
 	 * @param settingName unqualified setting name
 	 * @return value or <code>null</code> if none
 	 */
 	protected String getDialogSetting(String settingName) {
 		return getDialogSettings().get(getDialogSettingsPrefix() + "." + settingName); //$NON-NLS-1$
 	}
-	
+
 	/**
 	 * Sets the value of the dialog setting, associated with the given
 	 * settingName, resolved by the dialog setting prefix associated with this
 	 * action.
-	 * 
+	 *
 	 * @param settingName unqualified setting name
 	 * @return value or <code>null</code> if none
 	 */
@@ -74,14 +74,14 @@
 
 	/**
 	 * Returns this plug-in's dialog settings.
-	 * 
+	 *
 	 * @return IDialogSettings
 	 */
 	protected IDialogSettings getDialogSettings() {
 		IDialogSettings settings = JDIDebugUIPlugin.getDefault().getDialogSettings();
 		return settings;
 	}
-	
+
 	@Override
 	protected int getActionType() {
 		return ADD;
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenFromClipboardAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenFromClipboardAction.java
index 1992198..e8f4e4f 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenFromClipboardAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenFromClipboardAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -68,7 +68,7 @@
 
 /**
  * Action delegate for Open from Clipboard action.
- * 
+ *
  * @since 3.7
  */
 public class OpenFromClipboardAction implements IWorkbenchWindowActionDelegate {
@@ -198,7 +198,7 @@
 		}
 
 		String trimmedText = inputText.replaceAll("\\s+", " "); //$NON-NLS-1$ //$NON-NLS-2$
-		List<Object> matches = new ArrayList<Object>();
+		List<Object> matches = new ArrayList<>();
 		int line = 0;
 		try {
 			line = getJavaElementMatches(trimmedText, matches);
@@ -282,7 +282,7 @@
 	}
 
 	private static void handleSingleLineInput(String inputText) {
-		List<Object> matches = new ArrayList<Object>();
+		List<Object> matches = new ArrayList<>();
 		try {
 			int line= getJavaElementMatches(inputText, matches);
 			handleMatches(matches, line, inputText);
@@ -293,7 +293,7 @@
 
 	/**
 	 * Parse the input text and search for the corresponding Java elements.
-	 * 
+	 *
 	 * @param inputText the line number
 	 * @param matches matched Java elements
 	 * @return the line number
@@ -378,7 +378,7 @@
 
 	/**
 	 * Perform a Java search for the type and return the corresponding Java elements.
-	 * 
+	 *
 	 * @param typeName the Type name
 	 * @param matches matched Java elements
 	 * @throws InterruptedException if canceled by the user
@@ -395,7 +395,7 @@
 	/**
 	 * Perform a Java search for methods and constructors and return the corresponding Java
 	 * elements.
-	 * 
+	 *
 	 * @param s the method pattern
 	 * @param matches matched Java elements
 	 * @throws InterruptedException if canceled by the user
@@ -412,7 +412,7 @@
 	/**
 	 * Perform a Java search for fields, methods and constructors and return the corresponding Java
 	 * elements.
-	 * 
+	 *
 	 * @param s the member pattern
 	 * @param matches matched Java elements
 	 * @throws InterruptedException if canceled by the user
@@ -429,7 +429,7 @@
 	/**
 	 * Perform a Java search for types, fields and methods and return the corresponding Java
 	 * elements.
-	 * 
+	 *
 	 * @param s the qualified name pattern
 	 * @param matches matched Java elements
 	 * @throws InterruptedException if canceled by the user
@@ -456,7 +456,7 @@
 
 	/**
 	 * Handles the given matches.
-	 * 
+	 *
 	 * @param matches matched Java elements
 	 * @param line the line number
 	 * @param inputText the input text
@@ -501,7 +501,7 @@
 	/**
 	 * Opens each specified Java element in a Java editor and navigates to the specified line
 	 * number.
-	 * 
+	 *
 	 * @param elements
 	 *            the Java elements
 	 * @param line
@@ -526,7 +526,7 @@
 
 	/**
 	 * Jumps to the given line in the editor if the line number lies within the given Java element.
-	 * 
+	 *
 	 * @param editorPart the Editor part
 	 * @param line the line to jump to
 	 * @param element the Java Element
@@ -561,7 +561,7 @@
 
 	/**
 	 * Opens an text input dialog to let the user refine the input text.
-	 * 
+	 *
 	 * @param inputText the input text
 	 */
 	private static void openInputEditDialog(String inputText) {
@@ -607,13 +607,13 @@
 
 	/**
 	 * Perform a Java search for the type and return the corresponding Java elements.
-	 * 
+	 *
 	 * <p>
 	 * TODO: Because of faster performance SearchEngine.searchAllTypeNames(...) is used to do the
 	 * Java Search, instead of the usual SearchEngine.search(...) API. This logic should be moved to
 	 * JDT/Core.
 	 * </p>
-	 * 
+	 *
 	 * @param typeName
 	 *            the Type Name
 	 * @param matches
@@ -647,13 +647,13 @@
 	/**
 	 * Perform a Java search for one or more of fields, methods and constructors and return the
 	 * corresponding Java elements.
-	 * 
+	 *
 	 * <p>
 	 * TODO: Because of faster performance, if the type name is available
 	 * SearchEngine.searchAllTypeNames(...) is used to narrow the scope of Java Search. This logic
 	 * should be moved to JDT/Core.
 	 * </p>
-	 * 
+	 *
 	 * @param memberName
 	 *            the Member Name
 	 * @param matches
@@ -690,7 +690,7 @@
 		if (index != -1) {
 			typeName = memberName.substring(0, index);
 			memberName = memberName.substring(index + 1);
-			final List<Object> typeMatches = new ArrayList<Object>();
+			final List<Object> typeMatches = new ArrayList<>();
 			noOfSearches++;
 			doTypeSearch(typeName, typeMatches, progress.newChild(work / noOfSearches));
 			IType[] types = new IType[typeMatches.size()];
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenReceivingTypeAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenReceivingTypeAction.java
index 1e21dd2..f2a296a 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenReceivingTypeAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenReceivingTypeAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenReceivingTypeHierarchyAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenReceivingTypeHierarchyAction.java
index 2e98c47..f1ef73b 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenReceivingTypeHierarchyAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenReceivingTypeHierarchyAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -14,12 +14,12 @@
  * Opens the receiving type hierarchy of a stack frame.
  */
 public class OpenReceivingTypeHierarchyAction extends OpenReceivingTypeAction {
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.actions.OpenTypeAction#isHierarchy()
 	 */
 	@Override
 	protected boolean isHierarchy() {
 		return true;
-	}	
+	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenStackFrameAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenStackFrameAction.java
index 7a036c9..e7cf425 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenStackFrameAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenStackFrameAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -19,7 +19,7 @@
  * Action that opens a type associated with a selected stack frame.
  */
 public abstract class OpenStackFrameAction extends OpenTypeAction {
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.actions.OpenTypeAction#getDebugElement(org.eclipse.core.runtime.IAdaptable)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenTypeAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenTypeAction.java
index cc2eef1..d2d558e 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenTypeAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenTypeAction.java
@@ -38,7 +38,7 @@
 import org.eclipse.jface.viewers.IStructuredSelection;
 
 public abstract class OpenTypeAction extends ObjectActionDelegate {
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
 	 */
@@ -64,21 +64,21 @@
 			JDIDebugUIPlugin.statusDialog(e.getStatus());
 		}
 	}
-	
+
 	protected abstract IDebugElement getDebugElement(IAdaptable element);
-	
+
 	/**
 	 * Returns the type to open based on the given selected debug element, or <code>null</code>.
-	 * 
+	 *
 	 * @param element selected debug element
 	 * @return the type to open or <code>null</code> if none
 	 * @throws DebugException
 	 */
 	protected abstract IJavaType getTypeToOpen(IDebugElement element) throws CoreException;
-	
+
 	/**
 	 * Resolves and returns the source element to open or <code>null</code> if none.
-	 * 
+	 *
 	 * @param e selected element to resolve a source element for
 	 * @return the source element to open or <code>null</code> if none
 	 * @throws CoreException
@@ -120,20 +120,20 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Returns whether a type hierarchy should be opened.
-	 * 
+	 *
 	 * @return whether a type hierarchy should be opened
 	 */
 	protected boolean isHierarchy() {
 		return false;
 	}
-	
+
 	/**
 	 * Searches for and returns a type with the given name in the workspace,
 	 * or <code>null</code> if none.
-	 * 
+	 *
 	 * @param typeName fully qualified type name
 	 * @param findOnlyUniqueMatch
 	 *            if <code>true</code>, this method only returns a type iff
@@ -155,7 +155,7 @@
 			simpleName= typeName;
 		}
 		char[][] typeNames= new char[][] { simpleName.toCharArray() };
-		
+
 		if (findOnlyUniqueMatch) {
 			return findUniqueTypeInWorkspace(qualifications, typeNames);
 		}
@@ -184,7 +184,7 @@
 		}
 		return null;
 	}
-	
+
 	private static IType findUniqueTypeInWorkspace(char[][] qualifications,
 			char[][] typeNames) throws JavaModelException {
 		final IType[] result = { null };
@@ -205,9 +205,9 @@
 		}
 		return result[0];
 	}
-	
-	
+
+
 	protected void typeHierarchyError() {
-		showErrorMessage(ActionMessages.ObjectActionDelegate_Unable_to_display_type_hierarchy__The_selected_source_element_is_not_contained_in_the_workspace__1); 
-	}	
+		showErrorMessage(ActionMessages.ObjectActionDelegate_Unable_to_display_type_hierarchy__The_selected_source_element_is_not_contained_in_the_workspace__1);
+	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenVariableConcreteTypeAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenVariableConcreteTypeAction.java
index dd697b9..5a581c7 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenVariableConcreteTypeAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenVariableConcreteTypeAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -44,7 +44,7 @@
 		}
 		return null;
 	}
-	
+
 
 	@Override
 	public void run(IAction action) {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenVariableConcreteTypeHierarchyAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenVariableConcreteTypeHierarchyAction.java
index 27b7b9c..7d32427 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenVariableConcreteTypeHierarchyAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenVariableConcreteTypeHierarchyAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -27,15 +27,15 @@
  * Opens the concrete type hierarhcy of variable - i.e. it's value's actual type.
  */
 public class OpenVariableConcreteTypeHierarchyAction extends OpenVariableConcreteTypeAction {
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.actions.OpenTypeAction#isHierarchy()
 	 */
 	@Override
 	protected boolean isHierarchy() {
 		return true;
-	}	
-	
+	}
+
 	@Override
 	public void run(IAction action) {
 		IStructuredSelection selection = getCurrentSelection();
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenVariableDeclaredTypeAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenVariableDeclaredTypeAction.java
index 23a25ae..f988f04 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenVariableDeclaredTypeAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenVariableDeclaredTypeAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -32,5 +32,5 @@
 		}
 		return null;
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenVariableDeclaredTypeHierarchyAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenVariableDeclaredTypeHierarchyAction.java
index 643d1f9..51855a6 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenVariableDeclaredTypeHierarchyAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenVariableDeclaredTypeHierarchyAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -14,12 +14,12 @@
  * Opens the declared type hierarchy of a variable.
  */
 public class OpenVariableDeclaredTypeHierarchyAction extends OpenVariableDeclaredTypeAction {
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.actions.OpenTypeAction#isHierarchy()
 	 */
 	@Override
 	protected boolean isHierarchy() {
 		return true;
-	}	
+	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenVariableTypeAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenVariableTypeAction.java
index ac38b0a..13aeb95 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenVariableTypeAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenVariableTypeAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/PopupDisplayAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/PopupDisplayAction.java
index c3bdcf3..b3d4e46 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/PopupDisplayAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/PopupDisplayAction.java
@@ -46,7 +46,7 @@
         }
         DebugPopup displayPopup = new DisplayPopup(getShell(), textWidget);
         displayPopup.open();
-        
+
     }
 
     private class DisplayPopup extends DebugPopup {
@@ -87,7 +87,7 @@
             text.setText(resultString);
             return text;
         }
-        
+
         @Override
 		public boolean close() {
         	boolean returnValue = super.close();
@@ -107,7 +107,7 @@
             super.displayStringResult(currentSnippet, currentResultString);
             return;
         }
-        
+
         final StyledText textWidget = EvaluateAction.getStyledText(part);
         if (textWidget == null) {
             super.displayStringResult(currentSnippet, currentResultString);
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/PopupInspectAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/PopupInspectAction.java
index d297879..f356972 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/PopupInspectAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/PopupInspectAction.java
@@ -28,7 +28,7 @@
 
     private ITextEditor fTextEditor;
     private ISelection fSelectionBeforeEvaluation;
-    
+
     /**
      * @see EvaluateAction#displayResult(IEvaluationResult)
      */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ProjectSelectionDialog.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ProjectSelectionDialog.java
index 86619b0..99add8e 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ProjectSelectionDialog.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ProjectSelectionDialog.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -39,10 +39,10 @@
  * exported entries and required projects should also be added.
  */
 public class ProjectSelectionDialog extends AbstractDebugCheckboxSelectionDialog {
-	
+
 	private boolean fAddExportedEntries = true;
 	private boolean fAddRequiredProjects = true;
-	
+
 	private List<IJavaProject> fProjects;
 
 	/**
@@ -64,7 +64,7 @@
 	protected void addCustomFooterControls(Composite parent) {
 		super.addCustomFooterControls(parent);
 		final Button addExported = new Button(parent, SWT.CHECK);
-		addExported.setText(ActionMessages.ProjectSelectionDialog_Add_exported_entries_of_selected_projects__1); 
+		addExported.setText(ActionMessages.ProjectSelectionDialog_Add_exported_entries_of_selected_projects__1);
 		addExported.addSelectionListener(new SelectionAdapter() {
 			@Override
 			public void widgetSelected(SelectionEvent e) {
@@ -73,9 +73,9 @@
 		});
 		addExported.setSelection(fAddExportedEntries);
 		addExported.setFont(parent.getFont());
-		
+
 		final Button addRequired = new Button(parent, SWT.CHECK);
-		addRequired.setText(ActionMessages.ProjectSelectionDialog_Add_required_projects_of_selected_projects__2); 
+		addRequired.setText(ActionMessages.ProjectSelectionDialog_Add_required_projects_of_selected_projects__2);
 		addRequired.addSelectionListener(new SelectionAdapter() {
 			@Override
 			public void widgetSelected(SelectionEvent e) {
@@ -83,27 +83,27 @@
 			}
 		});
 		addRequired.setSelection(fAddRequiredProjects);
-		addRequired.setFont(parent.getFont());		
+		addRequired.setFont(parent.getFont());
 	}
-	
+
 	/**
 	 * Returns whether the user has selected to add exported entries.
-	 * 
+	 *
 	 * @return whether the user has selected to add exported entries
 	 */
 	public boolean isAddExportedEntries() {
 		return fAddExportedEntries;
 	}
-	
+
 	/**
 	 * Returns whether the user has selected to add required projects.
-	 * 
+	 *
 	 * @return whether the user has selected to add required projects
 	 */
 	public boolean isAddRequiredProjects() {
 		return fAddRequiredProjects;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.internal.ui.launchConfigurations.AbstractDebugSelectionDialog#getDialogSettingsId()
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RemoveAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RemoveAction.java
index a16a091..fd2d923 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RemoveAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RemoveAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -25,11 +25,11 @@
 public class RemoveAction extends RuntimeClasspathAction {
 
 	public RemoveAction(IClasspathViewer viewer) {
-		super(ActionMessages.RemoveAction__Remove_1, viewer); 
+		super(ActionMessages.RemoveAction__Remove_1, viewer);
 	}
 	/**
 	 * Removes all selected entries.
-	 * 
+	 *
 	 * @see IAction#run()
 	 */
 	@Override
@@ -50,7 +50,7 @@
 		}
 		return getViewer().updateSelection(getActionType(), selection);
 	}
-	
+
 	@Override
 	protected int getActionType() {
 		return REMOVE;
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RemoveDetailFormatterAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RemoveDetailFormatterAction.java
index dcb3527..474cdc1 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RemoveDetailFormatterAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RemoveDetailFormatterAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RestoreDefaultEntriesAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RestoreDefaultEntriesAction.java
index eb14047..f05f591 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RestoreDefaultEntriesAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RestoreDefaultEntriesAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -25,22 +25,22 @@
  * Restores default entries in the runtime classpath.
  */
 public class RestoreDefaultEntriesAction extends RuntimeClasspathAction {
-	
+
 	private JavaClasspathTab fTab;
-	
+
 	/**
 	 * Constructor
 	 * @param viewer the associated classpath viewer
 	 * @param tab the tab the viewer resides in
 	 */
 	public RestoreDefaultEntriesAction(IClasspathViewer viewer, JavaClasspathTab tab) {
-		super(ActionMessages.RestoreDefaultEntriesAction_0, viewer); 
+		super(ActionMessages.RestoreDefaultEntriesAction_0, viewer);
 		fTab = tab;
-	}	
+	}
 
 	/**
 	 * Only does work if we are not currently using the default classpath
-	 * 
+	 *
 	 * @see org.eclipse.jface.action.Action#run()
 	 */
 	@Override
@@ -58,8 +58,8 @@
 				copy.setAttribute(IJavaLaunchConfigurationConstants.ATTR_DEFAULT_CLASSPATH, true);
 				getViewer().setEntries(JavaRuntime.computeUnresolvedRuntimeClasspath(copy));
 			}
-		} 
-		catch (CoreException e) {return;}	
+		}
+		catch (CoreException e) {return;}
 	}
 
 	/**
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RetargetToggleTracepointAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RetargetToggleTracepointAction.java
index 1ee3d01..d33a3ab 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RetargetToggleTracepointAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RetargetToggleTracepointAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -17,15 +17,15 @@
 
 /**
  * Global retargettable toggle tracepoint action.
- * 
+ *
  * @since 3.12
- * 
+ *
  */
 public class RetargetToggleTracepointAction extends RetargetToggleBreakpointAction {
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.internal.ui.actions.RetargetTracepointAction# performAction(java.lang.Object, org.eclipse.jface.viewers.ISelection,
 	 * org.eclipse.ui.IWorkbenchPart)
 	 */
@@ -37,7 +37,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.internal.ui.actions.RetargetBreakpointAction#canPerformAction(java.lang.Object, org.eclipse.jface.viewers.ISelection,
 	 * org.eclipse.ui.IWorkbenchPart)
 	 */
@@ -48,7 +48,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.internal.ui.actions.RetargetAction#getOperationUnavailableMessage()
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RetargettableActionAdapterFactory.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RetargettableActionAdapterFactory.java
index 5479995..a758e65 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RetargettableActionAdapterFactory.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RetargettableActionAdapterFactory.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -16,9 +16,9 @@
 
 /**
  * Creates adapters for retargettable actions in debug platform.
- * Contributed via <code>org.eclipse.core.runtime.adapters</code> 
- * extension point. 
- * 
+ * Contributed via <code>org.eclipse.core.runtime.adapters</code>
+ * extension point.
+ *
  * @since 3.0
  */
 public class RetargettableActionAdapterFactory implements IAdapterFactory {
@@ -33,7 +33,7 @@
 		}
 		if (adapterType == IToggleBreakpointsTarget.class) {
 			return (T) new ToggleBreakpointAdapter();
-		} 
+		}
 		return null;
 	}
 	/* (non-Javadoc)
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RunToLineAdapter.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RunToLineAdapter.java
index 2042e28..4eb5303 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RunToLineAdapter.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RunToLineAdapter.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -46,7 +46,7 @@
  * Run to line target for the Java debugger
  */
 public class RunToLineAdapter implements IRunToLineTarget {
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.actions.IRunToLineTarget#runToLine(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection, org.eclipse.debug.core.model.ISuspendResume)
 	 */
@@ -88,7 +88,7 @@
 							throw new CoreException(new Status(IStatus.ERROR, JDIDebugUIPlugin.getUniqueIdentifier(), IJavaDebugUIConstants.INTERNAL_ERROR, "Invalid Type Name", null)); //$NON-NLS-1$
 						}
 						IBreakpoint breakpoint= null;
-						Map<String, Object> attributes = new HashMap<String, Object>(4);
+						Map<String, Object> attributes = new HashMap<>(4);
 						BreakpointUtils.addRunToLineAttributes(attributes);
 						breakpoint= JDIDebugModel.createLineBreakpoint(ResourcesPlugin.getWorkspace().getRoot(), typeName[0], lineNumber[0], -1, -1, 1, false, attributes);
 						errorMessage = "Unable to locate debug target";  //$NON-NLS-1$
@@ -107,7 +107,7 @@
 						} else {
 							errorMessage = "Cursor position is not a valid location to run to";  //$NON-NLS-1$
 						}
-	
+
 					}
 				}
 			}
@@ -115,7 +115,7 @@
 		throw new CoreException(new Status(IStatus.ERROR, JDIDebugUIPlugin.getUniqueIdentifier(), IJavaDebugUIConstants.INTERNAL_ERROR,
 				errorMessage, null));
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.actions.IRunToLineTarget#canRunToLine(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection, org.eclipse.debug.core.model.ISuspendResume)
 	 */
@@ -128,12 +128,12 @@
         }
 		return false;
 	}
-	
+
     /**
      * Returns the text editor associated with the given part or <code>null</code>
      * if none. In case of a multi-page editor, this method should be used to retrieve
      * the correct editor to perform the operation on.
-     * 
+     *
      * @param part workbench part
      * @return text editor part or <code>null</code>
      */
@@ -142,5 +142,5 @@
     		return (ITextEditor) part;
     	}
     	return part.getAdapter(ITextEditor.class);
-    }	
+    }
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RuntimeClasspathAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RuntimeClasspathAction.java
index 7f59798..a3e332d 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RuntimeClasspathAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RuntimeClasspathAction.java
@@ -4,13 +4,13 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui.actions;
 
- 
+
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -29,16 +29,16 @@
  * Action used with a runtime classpath viewer.
  */
 public abstract class RuntimeClasspathAction extends SelectionListenerAction {
-	
+
 	public static final int DEFAULT= 0;
 	public static final int ADD= 1;
 	public static final int REMOVE= 2;
 	public static final int MOVE= 3;
-	
+
 	private IClasspathViewer fViewer;
 	private Button fButton;
 	private Shell fShell;
-	
+
 	public RuntimeClasspathAction(String label, IClasspathViewer viewer) {
 		super(label);
 		setViewer(viewer);
@@ -46,7 +46,7 @@
 
 	/**
 	 * Sets the viewer on which this action operates.
-	 * 
+	 *
 	 * @param viewer the viewer on which this action operates
 	 */
 	public void setViewer(IClasspathViewer viewer) {
@@ -59,10 +59,10 @@
 			update();
 		}
 	}
-	
+
 	/**
 	 * Returns the viewer on which this action operates.
-	 * 
+	 *
 	 * @return the viewer on which this action operates
 	 */
 	protected IClasspathViewer getViewer() {
@@ -72,11 +72,11 @@
 	/**
 	 * Returns the selected items in the list, in the order they are
 	 * displayed.
-	 * 
+	 *
 	 * @return targets for an action
 	 */
 	protected List<IRuntimeClasspathEntry> getOrderedSelection() {
-		List<IRuntimeClasspathEntry> targets = new ArrayList<IRuntimeClasspathEntry>();
+		List<IRuntimeClasspathEntry> targets = new ArrayList<>();
 		List<?> selection = ((IStructuredSelection)getViewer().getSelection()).toList();
 		IRuntimeClasspathEntry[] entries = getViewer().getEntries();
 		for (int i = 0; i < entries.length; i++) {
@@ -85,22 +85,22 @@
 				targets.add(target);
 			}
 		}
-		return targets;		
+		return targets;
 	}
-	
+
 	/**
 	 * Returns a list (copy) of the entries in the viewer
 	 * @return the complete listing of all of the entries in the viewer
 	 */
 	protected List<IRuntimeClasspathEntry> getEntriesAsList() {
 		IRuntimeClasspathEntry[] entries = getViewer().getEntries();
-		List<IRuntimeClasspathEntry> list = new ArrayList<IRuntimeClasspathEntry>(entries.length);
+		List<IRuntimeClasspathEntry> list = new ArrayList<>(entries.length);
 		for (int i = 0; i < entries.length; i++) {
 			list.add(entries[i]);
 		}
 		return list;
 	}
-	
+
 	/**
 	 * Updates the entries to the entries in the given list
 	 * @param list the list of {@link IRuntimeClasspathEntry}s to set
@@ -110,7 +110,7 @@
 		// update all selection listeners
 		getViewer().setSelection(getViewer().getSelection());
 	}
-	
+
 	/**
 	 * Returns whether the item at the given index in the list
 	 * (visually) is selected.
@@ -131,8 +131,8 @@
 			}
 		}
 		return false;
-	}	
-	
+	}
+
 	/**
 	 * Sets the {@link Button} that invokes this action
 	 * @param button the new {@link Button} to set as the backing widget for this action
@@ -164,7 +164,7 @@
 	protected void update() {
 		selectionChanged((IStructuredSelection)getViewer().getSelection());
 	}
-	
+
 	/**
 	 * Returns the shell used to realize this action's dialog (if any).
 	 * @return the current {@link Shell}
@@ -172,10 +172,10 @@
 	protected Shell getShell() {
 		if (fShell == null) {
 			fShell= getViewer().getShell();
-		} 
+		}
 		return fShell;
 	}
-	
+
 	/**
 	 * Sets the shell used to realize this action's dialog (if any).
 	 * @param shell the current shell
@@ -183,8 +183,8 @@
 	public void setShell(Shell shell) {
 		fShell= shell;
 	}
-	
-	
+
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.actions.SelectionListenerAction#updateSelection(org.eclipse.jface.viewers.IStructuredSelection)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowConstantsAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowConstantsAction.java
index 7a53f31..60df42f 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowConstantsAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowConstantsAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -27,9 +27,9 @@
 	 */
 	@Override
 	protected String getPreferenceKey() {
-		return IJDIPreferencesConstants.PREF_SHOW_CONSTANTS; 
+		return IJDIPreferencesConstants.PREF_SHOW_CONSTANTS;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.actions.ToggleBooleanPreferenceAction#getViewKey()
 	 */
@@ -37,5 +37,5 @@
 	protected String getViewKey() {
 		return getCompositeKey();
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowMonitorThreadInformation.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowMonitorThreadInformation.java
index c470846..0446626 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowMonitorThreadInformation.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowMonitorThreadInformation.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -24,12 +24,12 @@
 	protected String getPreferenceKey() {
 		return IJavaDebugUIConstants.PREF_SHOW_MONITOR_THREAD_INFO;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.actions.ViewFilterAction#getCompositeKey()
 	 */
 	@Override
 	protected String getCompositeKey() {
 		return getPreferenceKey();
-	}	
+	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowNullArrayEntriesAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowNullArrayEntriesAction.java
index 0beffff..2866c0d 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowNullArrayEntriesAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowNullArrayEntriesAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -32,9 +32,9 @@
 	 */
 	@Override
 	protected String getPreferenceKey() {
-		return IJDIPreferencesConstants.PREF_SHOW_NULL_ARRAY_ENTRIES; 
+		return IJDIPreferencesConstants.PREF_SHOW_NULL_ARRAY_ENTRIES;
 	}
-	
+
 	/**
 	 * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
 	 */
@@ -47,11 +47,11 @@
 		if (element instanceof JDIArrayEntryVariable) {
 			JDIArrayEntryVariable variable = (JDIArrayEntryVariable)element;
 			try {
-				return !variable.getValue().equals(((IJavaDebugTarget)variable.getDebugTarget()).nullValue());				
+				return !variable.getValue().equals(((IJavaDebugTarget)variable.getDebugTarget()).nullValue());
 			} catch (DebugException e) {
 				JDIDebugUIPlugin.log(e);
-			} 
+			}
 		}
 		return true;
-	}	
+	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowQualifiedAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowQualifiedAction.java
index 95756d2..bb40397 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowQualifiedAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowQualifiedAction.java
@@ -27,26 +27,26 @@
  * show/hide qualified names.
  */
 public class ShowQualifiedAction extends ViewFilterAction {
-	
+
 	/**
 	 * @see ViewFilterAction#getPreferenceKey()
 	 */
 	@Override
 	protected String getPreferenceKey() {
-		return IJDIPreferencesConstants.PREF_SHOW_QUALIFIED_NAMES; 
-	}	
+		return IJDIPreferencesConstants.PREF_SHOW_QUALIFIED_NAMES;
+	}
 
 	/**
 	 * This method is not actually called - this action is not a filter. Instead
 	 * it sets an attribute on the viewer's model presentation.
-	 * 
+	 *
 	 * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
 	 */
 	@Override
 	public boolean select(Viewer viewer, Object parentElement, Object element) {
 		return true;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
 	 */
@@ -64,10 +64,10 @@
 						viewer.refresh();
 						IPreferenceStore store = getPreferenceStore();
 						String key = getView().getSite().getId() + "." + getPreferenceKey(); //$NON-NLS-1$
-						store.setValue(key, getValue());				
+						store.setValue(key, getValue());
 					}
 				});
 			}
-		}		
-	}	
+		}
+	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowStaticVariablesAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowStaticVariablesAction.java
index 1c635f4..fbe0197 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowStaticVariablesAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowStaticVariablesAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -27,7 +27,7 @@
 	 */
 	@Override
 	protected String getPreferenceKey() {
-		return IJDIPreferencesConstants.PREF_SHOW_STATIC_VARIABLES; 
+		return IJDIPreferencesConstants.PREF_SHOW_STATIC_VARIABLES;
 	}
 
 	/* (non-Javadoc)
@@ -36,5 +36,5 @@
 	@Override
 	protected String getViewKey() {
 		return getCompositeKey();
-	}	
+	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowStratumAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowStratumAction.java
index 6e47fb2..833b52e 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowStratumAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowStratumAction.java
@@ -37,7 +37,7 @@
  * Allows the user to choose what source to display from available strata
  */
 public class ShowStratumAction implements IObjectActionDelegate, IMenuCreator {
-    
+
     private IStructuredSelection fSelection;
     private IWorkbenchPart fPart;
 
@@ -100,7 +100,7 @@
 
     /**
      * Fills the given menu with available stratum.
-     * 
+     *
      * @param m
      */
     private void fillMenu(Menu m) {
@@ -123,11 +123,11 @@
 	        }
         }
     }
-    
+
     private MenuItem createMenuItem(Menu m, final String stratum, final IJavaStackFrame frame, final IJavaDebugTarget target) {
         MenuItem item = new MenuItem(m, SWT.CHECK);
         if (stratum == null) {
-            item.setText(ActionMessages.ShowStratumAction_0); 
+            item.setText(ActionMessages.ShowStratumAction_0);
         } else {
             item.setText(stratum);
         }
@@ -156,6 +156,6 @@
     @Override
 	public void dispose() {
     }
-    
+
 
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowSystemThreadsAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowSystemThreadsAction.java
index 5d8379e..7abe841 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowSystemThreadsAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowSystemThreadsAction.java
@@ -18,6 +18,7 @@
 import org.eclipse.jdt.debug.core.IJavaThread;
 import org.eclipse.jdt.debug.ui.IJavaDebugUIConstants;
 import org.eclipse.jdt.internal.debug.ui.JDIDebugUIPlugin;
+import org.eclipse.jface.viewers.StructuredViewer;
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.ui.IViewPart;
 
@@ -41,7 +42,7 @@
 	@Override
 	public boolean select(Viewer viewer, Object parentElement, Object element) {
 	    if (!getValue()) {
-            
+
             IJavaThread thread = getJavaThread(element);
 
 	        if (thread != null) {
@@ -54,7 +55,7 @@
 	    }
 	    return true;
 	}
-    
+
 	private IJavaThread getJavaThread(Object element) {
 	    IJavaThread thread = null;
 
@@ -105,7 +106,7 @@
 			}
 		}
 	}
-	
+
 	private void refresh(Object source) {
         final IJavaThread thread = getJavaThread(source);
         if (thread != null) {
@@ -114,7 +115,10 @@
 					Runnable r = new Runnable() {
 						@Override
 						public void run() {
-							getStructuredViewer().refresh();
+							StructuredViewer viewer = getStructuredViewer();
+							if (viewer != null) {
+								viewer.refresh();
+							}
 						}
 					};
 					JDIDebugUIPlugin.getStandardDisplay().asyncExec(r);
@@ -122,6 +126,6 @@
 				}
 			} catch (DebugException e) {
 			}
-		}		
+		}
 	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowThreadGroups.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowThreadGroups.java
index 74b28e8..211ba88 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowThreadGroups.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowThreadGroups.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/StepIntoEditorSelectionHandler.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/StepIntoEditorSelectionHandler.java
index 35527a8..1f98956 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/StepIntoEditorSelectionHandler.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/StepIntoEditorSelectionHandler.java
@@ -21,13 +21,13 @@
 
 /**
  * Default handler for Step Into Editor Selection action
- * 
+ *
  * @since 3.6.200
  */
 public class StepIntoEditorSelectionHandler extends AbstractHandler {
 
 	IDebugEventSetListener listener = null;
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/StepIntoSelectionHandler.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/StepIntoSelectionHandler.java
index 3831632..66c41b6 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/StepIntoSelectionHandler.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/StepIntoSelectionHandler.java
@@ -30,17 +30,17 @@
  * Handles stepping into a selected method, for a specific thread.
  */
 public class StepIntoSelectionHandler implements IDebugEventFilter {
-	
+
 	/**
 	 * The method to step into
 	 */
 	private IMethod fMethod;
-	
+
 	/**
 	 * Resolved signature of the method to step into
 	 */
 	private String fResolvedSignature;
-	
+
 	/**
 	 * The thread in which to step
 	 */
@@ -53,22 +53,22 @@
 	private String fOriginalSignature;
 	private String fOriginalTypeName;
 	private int fOriginalStackDepth;
-	
+
 	/**
 	 * Whether this is the first step into.
 	 */
 	private boolean fFirstStep = true;
-	
+
 	/**
 	 * The state of step filters before the step.
 	 */
 	private boolean fStepFilterEnabledState;
-	
+
 	/**
 	 * Expected event kind
 	 */
 	private int fExpectedKind = -1;
-	
+
 	/**
 	 * Expected event detail
 	 */
@@ -94,38 +94,38 @@
 			JDIDebugUIPlugin.log(e);
 		}
 	}
-	
+
 	/**
 	 * Returns the target thread for the step.
-	 * 
+	 *
 	 * @return the target thread for the step
 	 */
 	protected IJavaThread getThread() {
 		return fThread;
 	}
-	
+
 	protected IJavaDebugTarget getDebugTarget() {
 		return (IJavaDebugTarget)getThread().getDebugTarget();
 	}
-	
+
 	/**
 	 * Returns the method to step into
-	 * 
+	 *
 	 * @return the method to step into
 	 */
 	protected IMethod getMethod() {
 		return fMethod;
 	}
-	
+
 	/**
 	 * Returns the resolved signature of the method to step into
-	 * 
+	 *
 	 * @return the resolved signature of the method to step into
 	 */
 	protected String getSignature() {
 		return fResolvedSignature;
-	}	
-	
+	}
+
 	/**
 	 * @see org.eclipse.debug.core.IDebugEventFilter#filterDebugEvents(org.eclipse.debug.core.DebugEvent)
 	 */
@@ -143,14 +143,14 @@
 				threadEvents++;
 			} else if (e.getSource() == getThread()) {
 				threadEvents++;
-			} 
+			}
 		}
-		
+
 		if (event == null) {
 			// nothing to process in this event set
 			return events;
 		}
-				
+
 		// create filtered event set
 		DebugEvent[] filtered = new DebugEvent[events.length - 1];
 		if (filtered.length > 0) {
@@ -162,13 +162,13 @@
 				}
 			}
 		}
-		
+
 		// if more than one event in our thread, abort (filtering our event)
 		if (threadEvents > 1) {
 			cleanup();
 			return filtered;
 		}
-		
+
 		// we have the one expected event - process it
 		switch (event.getKind()) {
 			case DebugEvent.RESUME:
@@ -179,7 +179,7 @@
 					return events; // include the first resume event
 				}
 				// secondary step - filter the event
-				return filtered;			
+				return filtered;
 			case DebugEvent.SUSPEND:
 				// compare location to desired location
 				try {
@@ -217,7 +217,7 @@
                                         DebugPlugin.getDefault().fireDebugEventSet(new DebugEvent[]{new DebugEvent(getDebugTarget(), DebugEvent.CHANGE)});
                                     }
                                 }
-                            };                            
+                            };
                         } else {
     						r = new Runnable() {
     							@Override
@@ -244,18 +244,18 @@
 							public void run() {
 								try {
 									setExpectedEvent(DebugEvent.RESUME, DebugEvent.STEP_INTO);
-									frame.stepInto();	
+									frame.stepInto();
 								} catch (DebugException e) {
 									JDIDebugUIPlugin.log(e);
 									cleanup();
 									DebugPlugin.getDefault().fireDebugEventSet(new DebugEvent[]{new DebugEvent(getDebugTarget(), DebugEvent.CHANGE)});
 								}
 							}
-						};																
+						};
 					} else {
 						// we returned from the original frame - never hit the desired method
 						missed();
-						return events;								
+						return events;
 					}
 					DebugPlugin.getDefault().asyncExec(r);
 					// filter the events
@@ -265,14 +265,14 @@
 					JDIDebugUIPlugin.log(e);
 					cleanup();
 					return events;
-				}			
+				}
 		}
 		// execution should not reach here
 		return events;
-		 
+
 	}
-	
-	/** 
+
+	/**
 	 * Called when stepping returned from the original frame without entering the desired method.
 	 */
 	protected void missed() {
@@ -286,10 +286,10 @@
 				} catch (JavaModelException e) {
 					methodName = getMethod().getElementName();
 				}
-				new MessageDialog(JDIDebugUIPlugin.getActiveWorkbenchShell(),  ActionMessages.StepIntoSelectionHandler_1, null, NLS.bind(ActionMessages.StepIntoSelectionHandler_Execution_did_not_enter____0____before_the_current_method_returned__1, new String[]{methodName}), MessageDialog.INFORMATION, new String[] {ActionMessages.StepIntoSelectionHandler_2}, 0).open();    
+				new MessageDialog(JDIDebugUIPlugin.getActiveWorkbenchShell(),  ActionMessages.StepIntoSelectionHandler_1, null, NLS.bind(ActionMessages.StepIntoSelectionHandler_Execution_did_not_enter____0____before_the_current_method_returned__1, new String[]{methodName}), MessageDialog.INFORMATION, new String[] {ActionMessages.StepIntoSelectionHandler_2}, 0).open();
 			}
 		};
-		JDIDebugUIPlugin.getStandardDisplay().asyncExec(r);		
+		JDIDebugUIPlugin.getStandardDisplay().asyncExec(r);
 	}
 
 	/**
@@ -307,10 +307,10 @@
 		} catch (DebugException e) {
 			JDIDebugUIPlugin.log(e);
 			cleanup();
-			DebugPlugin.getDefault().fireDebugEventSet(new DebugEvent[]{new DebugEvent(getDebugTarget(), DebugEvent.CHANGE)});			
+			DebugPlugin.getDefault().fireDebugEventSet(new DebugEvent[]{new DebugEvent(getDebugTarget(), DebugEvent.CHANGE)});
 		}
 	}
-	
+
 	/**
 	 * Cleans up when the step is complete/aborted.
 	 */
@@ -319,10 +319,10 @@
 		// restore step filter state
 		getDebugTarget().setStepFiltersEnabled(fStepFilterEnabledState);
 	}
-	
+
 	/**
 	 * Sets the expected debug event kind and detail we are waiting for next.
-	 * 
+	 *
 	 * @param kind event kind
 	 * @param detail event detail
 	 */
@@ -330,10 +330,10 @@
 		fExpectedKind = kind;
 		fExpectedDetail = detail;
 	}
-	
+
 	/**
 	 * Returns whether the given event is what we expected.
-	 * 
+	 *
 	 * @param event fire event
 	 * @return whether the event is what we expected
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/StepIntoSelectionHyperlinkDetector.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/StepIntoSelectionHyperlinkDetector.java
index 1be95ec..23a2f5d 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/StepIntoSelectionHyperlinkDetector.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/StepIntoSelectionHyperlinkDetector.java
@@ -39,18 +39,18 @@
 
 /**
  * This is a specialization of a hyperlink detector for the step into selection command
- * 
+ *
  * @since 3.3
  */
 public class StepIntoSelectionHyperlinkDetector extends AbstractHyperlinkDetector {
-	
+
 	/**
 	 * Specific implementation of a hyperlink for step into command
 	 */
 	class StepIntoSelectionHyperlink implements IHyperlink {
-		
+
 		private ITextSelection fSelection = null;
-		
+
 		/**
 		 * Constructor
 		 * @param region
@@ -86,7 +86,7 @@
 		public void open() {
 			StepIntoSelectionUtils.stepIntoSelection(fSelection);
 		}
-		
+
 	}
 
 	/**
@@ -96,7 +96,7 @@
 	public IHyperlink[] detectHyperlinks(ITextViewer textViewer, IRegion region, boolean canShowMultipleHyperlinks) {
 		ITextEditor editor = getAdapter(ITextEditor.class);
 		if(editor != null && EvaluationContextManager.getEvaluationContext(JDIDebugUIPlugin.getActiveWorkbenchWindow()) != null) {
-			
+
 			// should only enable step into selection when the current debug context
 			// is an instance of IJavaStackFrame
 			IAdaptable debugContext = DebugUITools.getDebugContext();
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/StepIntoSelectionUtils.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/StepIntoSelectionUtils.java
index d40b63a..ab751a3 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/StepIntoSelectionUtils.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/StepIntoSelectionUtils.java
@@ -49,15 +49,15 @@
 
 /**
  * Utility class for aiding step into selection actions and hyper-linking
- * 
+ *
  * @see StepIntoSelectionActionDelegate
  * @see StepIntoSelectionHyperlinkDetector
- * 
+ *
  * @since 3.3
  */
 public class StepIntoSelectionUtils {
 
-	
+
 	/**
      * gets the <code>IJavaElement</code> from the editor input
      * @param input the current editor input
@@ -70,9 +70,9 @@
     	}
     	return JavaUI.getWorkingCopyManager().getWorkingCopy(input);
     }
-    
+
     /**
-     * Returns the <code>IMethod</code> from the given selection within the given <code>IJavaElement</code>, 
+     * Returns the <code>IMethod</code> from the given selection within the given <code>IJavaElement</code>,
      * or <code>null</code> if the selection does not container or is not an <code>IMethod</code>
      * @param selection
      * @param element
@@ -90,7 +90,7 @@
 	 * @param offset selection offset
 	 * @param length selection length
 	 * @param codeAssist context
-	 * @return the method at the given position, or <code>null</code> if no method could be resolved 
+	 * @return the method at the given position, or <code>null</code> if no method could be resolved
 	 * @throws JavaModelException
 	 */
 	private static IMethod resolveMethod(int offset, int length, ICodeAssist codeAssist) throws JavaModelException {
@@ -102,7 +102,7 @@
 		}
 		return null;
 	}
-    
+
 	/**
 	 * @param offset
 	 * @param activeEditor
@@ -137,15 +137,15 @@
 					if (token == ITerminalSymbols.TokenNameLPAREN) {
 						return resolveMethod(lineInfo.getOffset() + methodStart, 0, (ICodeAssist)element);
 					}
-				} 
+				}
 				else {
 					token = scanner.getNextToken();
 				}
 			}
-		} 
+		}
 		catch (BadLocationException e) {
 			return null;
-		} 
+		}
 		catch (InvalidInputException e) {
 			return null;
 		}
@@ -154,10 +154,10 @@
 
 	/**
 	 * Steps into the selection described by the given {@link IRegion}
-	 * 
+	 *
 	 * @param region the region of the selection or <code>null</code> if we should use the page's selection service to compute
 	 * the selection
-	 * 
+	 *
 	 * @since 3.6.200
 	 */
 	public static void stepIntoSelection(ITextSelection selection) {
@@ -195,7 +195,7 @@
 						runToLineBeforeStepIn(editor, callingTypeName, selection, frame.getThread(), method);
 						return;
 					}
-				} 
+				}
 				catch (DebugException e) {
 					showErrorMessage(editor, e.getStatus().getMessage());
 					return;
@@ -205,9 +205,9 @@
 					return;
 				}
 			}
-		} 
+		}
 	}
-	
+
 	/**
 	 * When the user chooses to "step into selection" on a line other than
 	 * the currently executing one, first perform a "run to line" to get to
@@ -224,11 +224,11 @@
 			runToLineAction  = editor.getAdapter(IRunToLineTarget.class);
 			if (runToLineAction == null) {
 				IAdapterManager adapterManager = Platform.getAdapterManager();
-				if (adapterManager.hasAdapter(editor,   IRunToLineTarget.class.getName())) { 
-					runToLineAction = (IRunToLineTarget) adapterManager.loadAdapter(editor,IRunToLineTarget.class.getName()); 
+				if (adapterManager.hasAdapter(editor,   IRunToLineTarget.class.getName())) {
+					runToLineAction = (IRunToLineTarget) adapterManager.loadAdapter(editor,IRunToLineTarget.class.getName());
 				}
 			}
-		}	
+		}
 		// if no adapter exists, use the Java adapter
 		if (runToLineAction == null) {
 		  runToLineAction = new RunToLineAdapter();
@@ -311,14 +311,14 @@
 			runToLineAction.runToLine(editor, textSelection, thread);
 		} catch (CoreException e) {
 			DebugPlugin.getDefault().removeDebugEventListener(listener);
-			showErrorMessage(editor, ActionMessages.StepIntoSelectionActionDelegate_4); 
+			showErrorMessage(editor, ActionMessages.StepIntoSelectionActionDelegate_4);
 			JDIDebugUIPlugin.log(e.getStatus());
 		}
 	}
-	
+
 	/**
 	 * Steps into the given method in the given stack frame
-	 * 
+	 *
 	 * @param editor
 	 * @param frame the frame in which the step should begin
 	 * @param method the method to step into
@@ -328,31 +328,31 @@
 		// ensure top stack frame
 		IStackFrame tos = frame.getThread().getTopStackFrame();
 		if (tos == null) {
-			return; 
-		}		
+			return;
+		}
 		if (!tos.equals(frame)) {
-			showErrorMessage(editor, ActionMessages.StepIntoSelectionActionDelegate_Step_into_selection_only_available_in_top_stack_frame__3); 
+			showErrorMessage(editor, ActionMessages.StepIntoSelectionActionDelegate_Step_into_selection_only_available_in_top_stack_frame__3);
 			return;
 		}
 		StepIntoSelectionHandler handler = new StepIntoSelectionHandler((IJavaThread)frame.getThread(), frame, method);
 		handler.step();
 	}
-	
+
 	/**
 	 * Displays an error message in the status area
-	 * 
+	 *
 	 * @param editor
 	 * @param message
 	 */
-	static void showErrorMessage(IEditorPart editor, String message) {	
+	static void showErrorMessage(IEditorPart editor, String message) {
 		if (editor != null) {
 			IEditorStatusLine statusLine = editor.getAdapter(IEditorStatusLine.class);
 			if (statusLine != null) {
 				statusLine.setMessage(true, message, null);
 			}
-		}		
+		}
 	}
-	
+
 	/**
 	 * Return the type containing the selected text, or <code>null</code> if the
 	 * selection is not in a type.
@@ -366,11 +366,11 @@
 			type= member.getDeclaringType();
 		}
 		return type;
-	}	
-	
+	}
+
 	/**
      * Strips inner class names and parameterized type information from the given type name.
-     * 
+     *
      * @param fullyQualifiedName
      */
     static String stripInnerNamesAndParameterType(String fullyQualifiedName) {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/StringValueInputDialog.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/StringValueInputDialog.java
index 8eefb2c..9b36a97 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/StringValueInputDialog.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/StringValueInputDialog.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial implementation
  *******************************************************************************/
@@ -45,7 +45,7 @@
     private Button fTextButton;
     private Button fEvaluationButton;
     private Button fWrapText;
-    
+
     private boolean fUseLiteralValue= true;
     private static final String USE_EVALUATION = "USE_EVALUATION"; //$NON-NLS-1$
     private static final String WRAP_TEXT = "WRAP_TEXT"; //$NON-NLS-1$
@@ -57,7 +57,7 @@
     protected StringValueInputDialog(Shell parentShell, IJavaVariable variable) {
         super(parentShell, variable);
     }
-    
+
     /* (non-Javadoc)
      * @see org.eclipse.jdt.internal.debug.ui.actions.ExpressionInputDialog#createDialogArea(org.eclipse.swt.widgets.Composite)
      */
@@ -68,7 +68,7 @@
 		workbench.getHelpSystem().setHelp(parent, IJavaDebugHelpContextIds.STRING_VALUE_INPUT_DIALOG);
 		return control;
     }
-    
+
     /* (non-Javadoc)
      * @see org.eclipse.jdt.internal.debug.ui.actions.ExpressionInputDialog#createInputArea(org.eclipse.swt.widgets.Composite)
      */
@@ -78,7 +78,7 @@
     	createRadioButtons(parent);
     	return composite;
     }
-    
+
     /**
      * Override superclass method to create the appropriate viewer
      * (source viewer or simple text viewer) in the input area.
@@ -87,14 +87,14 @@
 	protected void populateInputArea(Composite parent) {
     	super.populateInputArea(parent);
     	createTextViewer(parent);
-    	
+
     	// Use the stored dialog settings to determine what radio button is selected and what viewer to show.
         boolean useEvaluation= false;
         IDialogSettings settings = getDialogSettings();
         if (settings != null) {
             useEvaluation= settings.getBoolean(USE_EVALUATION);
         }
-        
+
         setTextViewerVisible(!useEvaluation);
         setSourceViewerVisible(useEvaluation);
         fUseLiteralValue = !useEvaluation;
@@ -109,7 +109,7 @@
      */
     private void createTextViewer(Composite parent) {
     	fTextGroup = SWTFactory.createGroup(parent, ActionMessages.StringValueInputDialog_0, 1, 1, GridData.FILL_BOTH);
-    	                
+
         fTextViewer= new TextViewer(fTextGroup, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
         fTextViewer.setDocument(new Document());
         GridData gridData = new GridData(GridData.FILL_BOTH);
@@ -124,7 +124,7 @@
             JDIDebugUIPlugin.log(e);
         }
         fTextViewer.getControl().setFocus();
-        
+
         boolean wrap= true;
         IDialogSettings settings = getDialogSettings();
         if (settings != null) {
@@ -138,7 +138,7 @@
                 updateWordWrap();
             }
         });
-        
+
 		IDocumentListener listener = new IDocumentListener() {
             @Override
 			public void documentAboutToBeChanged(DocumentEvent event) {
@@ -148,9 +148,9 @@
                 refreshValidState(fTextViewer);
             }
         };
-		fTextViewer.getDocument().addDocumentListener(listener);        
+		fTextViewer.getDocument().addDocumentListener(listener);
     }
-    
+
     private void updateWordWrap() {
         fTextViewer.getTextWidget().setWordWrap(fWrapText.getSelection());
     }
@@ -160,7 +160,7 @@
      * simple text mode and evaluation mode.
      */
     protected void createRadioButtons(Composite parent) {
-    	
+
     	fTextButton = SWTFactory.createRadioButton(parent, ActionMessages.StringValueInputDialog_1);
         fTextButton.addSelectionListener(new SelectionAdapter() {
             @Override
@@ -170,7 +170,7 @@
         });
         fEvaluationButton = SWTFactory.createRadioButton(parent, ActionMessages.StringValueInputDialog_2);
     }
-    
+
     /**
      * The radio button selection has changed update the input widgetry
      * to reflect the user's selection.
@@ -190,7 +190,7 @@
 	        refreshValidState();
         }
     }
-    
+
     /**
      * Sets the visibility of the source viewer and the exclude attribute of its layout.
      * @param value If <code>true</code>, the viewer will be visible, if <code>false</code>, the viewer will be hidden.
@@ -202,7 +202,7 @@
 			data.exclude = !value;
     	}
     }
-      
+
     /**
      * Updates the error message based on the user's input.
      */
@@ -214,7 +214,7 @@
         	super.refreshValidState();
         }
 	}
-    
+
     /**
      * Override superclass method to persist user's evaluation/literal mode
      * selection.
@@ -231,18 +231,18 @@
         }
         super.okPressed();
     }
-    
+
     /**
      * Returns <code>true</code> if this dialog's result should be interpreted
      * as a literal value and <code>false</code> if the result should be interpreted
      * as an expression for evaluation.
-     * 
+     *
      * @return whether or not this dialog's result is a literal value.
      */
     public boolean isUseLiteralValue() {
         return fUseLiteralValue;
     }
-    
+
     /**
      * Override superclass method to return text from the simple text
      * viewer if appropriate.
@@ -255,7 +255,7 @@
         }
         return super.getText();
     }
-    
+
     /**
      * Returns the dialog settings used for this dialog
      * @return the dialog settings used for this dialog
@@ -263,7 +263,7 @@
     protected IDialogSettings getDialogSettings() {
         return JDIDebugUIPlugin.getDefault().getDialogSettings().getSection(getDialogSettingsSectionName());
     }
-    
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.actions.ExpressionInputDialog#getDialogSettingsSectionName()
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/TerminateEvaluationAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/TerminateEvaluationAction.java
index e0ac526..97ded8e 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/TerminateEvaluationAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/TerminateEvaluationAction.java
@@ -30,7 +30,7 @@
  * Attempts to terminate an evaluation running in an IJavaThread.
  */
 public class TerminateEvaluationAction implements IObjectActionDelegate, IDebugEventSetListener {
-	
+
 	private IJavaThread fThread;
 	private boolean fTerminated;
 
@@ -59,8 +59,8 @@
 						display.asyncExec(new Runnable() {
 							@Override
 							public void run() {
-								MessageDialog dialog = new MessageDialog(display.getActiveShell(), ActionMessages.TerminateEvaluationActionTerminate_Evaluation_1, null, 
-									ActionMessages.TerminateEvaluationActionAttempts_to_terminate_an_evaluation_can_only_stop_a_series_of_statements__The_currently_executing_statement__such_as_a_method_invocation__cannot_be_interrupted__2, MessageDialog.INFORMATION, new String[] { IDialogConstants.OK_LABEL }, 0); 
+								MessageDialog dialog = new MessageDialog(display.getActiveShell(), ActionMessages.TerminateEvaluationActionTerminate_Evaluation_1, null,
+									ActionMessages.TerminateEvaluationActionAttempts_to_terminate_an_evaluation_can_only_stop_a_series_of_statements__The_currently_executing_statement__such_as_a_method_invocation__cannot_be_interrupted__2, MessageDialog.INFORMATION, new String[] { IDialogConstants.OK_LABEL }, 0);
 								dialog.setBlockOnOpen(false);
 								dialog.open();
 							}
@@ -73,7 +73,7 @@
 		try {
 			fThread.terminateEvaluation();
 		} catch (DebugException exception) {
-			JDIDebugUIPlugin.statusDialog(exception.getStatus()); 
+			JDIDebugUIPlugin.statusDialog(exception.getStatus());
 		}
 	}
 
@@ -90,7 +90,7 @@
 			}
 		}
 	}
-	
+
 	public void setThread(IJavaThread thread) {
 		fThread= thread;
 	}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ToggleBooleanPreferenceAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ToggleBooleanPreferenceAction.java
index a20486b..fcdfda5 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ToggleBooleanPreferenceAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ToggleBooleanPreferenceAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -24,14 +24,14 @@
 	/* (non-Javadoc)
 	 * This method is not actually called - this action is not a filter. Instead
 	 * it sets an preference.
-	 * 
+	 *
 	 * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
 	 */
 	@Override
 	public boolean select(Viewer viewer, Object parentElement, Object element) {
 		return false;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.actions.ViewFilterAction#run(org.eclipse.jface.action.IAction)
 	 */
@@ -43,21 +43,21 @@
 			public void run() {
 				// note, this uses the pref key, not the composite key - the prefs are global, not view specific.
 				IPreferenceStore store = getPreferenceStore();
-				store.setValue(getViewKey(), getValue());			
+				store.setValue(getViewKey(), getValue());
 				viewer.refresh();
 			}
 		});
 	}
-	
+
 	/**
 	 * Returns a key to use in the preference store for this option.
 	 * By default the preference key is used, but actions may override.
-	 * 
+	 *
 	 * @return
 	 */
 	protected String getViewKey() {
 		return getPreferenceKey();
 	}
 
-	
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ToggleBreakpointAdapter.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ToggleBreakpointAdapter.java
index 94bad5a..a1fa186 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ToggleBreakpointAdapter.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ToggleBreakpointAdapter.java
@@ -18,6 +18,7 @@
 import java.util.Map;
 
 import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.IWorkspaceRoot;
 import org.eclipse.core.resources.ResourcesPlugin;
@@ -91,6 +92,9 @@
 import org.eclipse.jface.text.IRegion;
 import org.eclipse.jface.text.ITextSelection;
 import org.eclipse.jface.text.ITextViewer;
+import org.eclipse.jface.text.Position;
+import org.eclipse.jface.text.source.Annotation;
+import org.eclipse.jface.text.source.IAnnotationModel;
 import org.eclipse.jface.text.source.IVerticalRulerInfo;
 import org.eclipse.jface.text.templates.Template;
 import org.eclipse.jface.text.templates.TemplateContextType;
@@ -110,14 +114,15 @@
 import org.eclipse.ui.dialogs.PreferencesUtil;
 import org.eclipse.ui.texteditor.IDocumentProvider;
 import org.eclipse.ui.texteditor.ITextEditor;
+import org.eclipse.ui.texteditor.SimpleMarkerAnnotation;
 
 /**
  * Toggles a line breakpoint in a Java editor.
- * 
+ *
  * @since 3.0
  */
 public class ToggleBreakpointAdapter implements IToggleBreakpointsTargetExtension2 {
-	
+
 	private static final String EMPTY_STRING = ""; //$NON-NLS-1$
 
 
@@ -165,7 +170,7 @@
     	switch(element.getElementType()) {
 	    	case IJavaElement.FIELD: {
 	    		return ((IField)element).getDeclaringType();
-	    	}	
+	    	}
 	    	case IJavaElement.METHOD: {
 	    		return ((IMethod)element).getDeclaringType();
 	    	}
@@ -177,7 +182,7 @@
 	    	}
     	}
     }
-    
+
     /* (non-Javadoc)
      * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#toggleLineBreakpoints(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
      */
@@ -185,10 +190,10 @@
 	public void toggleLineBreakpoints(IWorkbenchPart part, ISelection selection) throws CoreException {
     	toggleLineBreakpoints(part, selection, false, null);
     }
-    
+
     /**
      * Toggles a line breakpoint.
-     * @param part the currently active workbench part 
+     * @param part the currently active workbench part
      * @param selection the current selection
      * @param bestMatch if we should make a best match or not
      */
@@ -206,7 +211,7 @@
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#canToggleLineBreakpoints(IWorkbenchPart,
      *      ISelection)
      */
@@ -220,7 +225,7 @@
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#toggleMethodBreakpoints(org.eclipse.ui.IWorkbenchPart,
      *      org.eclipse.jface.viewers.ISelection)
      */
@@ -246,7 +251,7 @@
 								BreakpointToggleUtils.report(ActionMessages.ToggleBreakpointAdapter_6, part);
 							} else {
 								BreakpointToggleUtils.report(ActionMessages.ToggleBreakpointAdapter_9, part);
-							} 
+							}
                             return Status.OK_STATUS;
                         }
                         IJavaBreakpoint breakpoint = null;
@@ -265,7 +270,7 @@
                                     start = range.getOffset();
                                     end = start + range.getLength();
                                 }
-                                attributes = new HashMap<String, Object>(10);
+                                attributes = new HashMap<>(10);
                                 BreakpointUtils.addJavaBreakpointAttributes(attributes, members[i]);
                                 type = members[i].getDeclaringType();
                                 signature = members[i].getSignature();
@@ -323,7 +328,7 @@
         job.setSystem(true);
         job.schedule();
     }
-    
+
     /**
      * Performs the actual toggling of the line breakpoint
      * @param selection the current selection (from the editor or view)
@@ -386,7 +391,7 @@
 						}
 						return Status.OK_STATUS;
 					}
-					Map<String, Object> attributes = new HashMap<String, Object>(10);
+					Map<String, Object> attributes = new HashMap<>(10);
 					IDocumentProvider documentProvider = editor.getDocumentProvider();
 					if (documentProvider == null) {
 					    return Status.CANCEL_STATUS;
@@ -397,7 +402,7 @@
 						IRegion line = document.getLineInformation(lnumber - 1);
 						charstart = line.getOffset();
 						charend = charstart + line.getLength();
-					} 	
+					}
 					catch (BadLocationException ble) {JDIDebugUIPlugin.log(ble);}
 					BreakpointUtils.addJavaBreakpointAttributes(attributes, type);
 					IJavaLineBreakpoint breakpoint = JDIDebugModel.createLineBreakpoint(resource, tname, lnumber, charstart, charend, 0, true, attributes);
@@ -424,7 +429,7 @@
 					BreakpointToggleUtils.report(ActionMessages.ToggleBreakpointAdapter_3, part);
                 	return Status.OK_STATUS;
                 }
-            } 
+            }
             catch (CoreException ce) {return ce.getStatus();}
 			finally {
 				BreakpointToggleUtils.setUnsetTracepoints(false);
@@ -432,7 +437,7 @@
         }
         return Status.OK_STATUS;
     }
-    
+
     /**
      * Toggles a class load breakpoint
      * @param part the part
@@ -464,7 +469,7 @@
 							deleteBreakpoint(existing, part, monitor);
 							return Status.OK_STATUS;
 						}
-						HashMap<String, Object> map = new HashMap<String, Object>(10);
+						HashMap<String, Object> map = new HashMap<>(10);
 						BreakpointUtils.addJavaBreakpointAttributes(map, type);
 						ISourceRange range= type.getNameRange();
 						int start = -1;
@@ -479,7 +484,7 @@
 						BreakpointToggleUtils.report(ActionMessages.ToggleBreakpointAdapter_0, part);
 						return Status.OK_STATUS;
 					}
-				} 
+				}
                 catch (CoreException e) {
 					return e.getStatus();
 				}
@@ -490,7 +495,7 @@
     	job.setSystem(true);
     	job.schedule();
     }
-    
+
     /**
      * Returns the class load breakpoint for the specified type or null if none found
      * @param type the type to search for a class load breakpoint for
@@ -508,7 +513,7 @@
 		}
 		return null;
     }
-    	
+
     /**
      * Returns the binary name for the {@link IType} derived from its {@link ITypeBinding}.
      * <br><br>
@@ -540,11 +545,11 @@
 			    		}
 					}
 				}
-    		}    		
+    		}
     	}
 		return createQualifiedTypeName(type);
     }
-    
+
     /**
      * Checks if the type or any of its enclosing types are local types.
      * @param type
@@ -571,7 +576,7 @@
     	}
     	return false;
     }
-    
+
     /**
      * Returns the package qualified name, while accounting for the fact that a source file might
      * not have a project
@@ -594,11 +599,11 @@
 			if(packName != null && !packName.equals(EMPTY_STRING)) {
 				tname =  packName+"."+tname; //$NON-NLS-1$
 			}
-    	} 
+    	}
     	catch (JavaModelException e) {}
     	return tname;
     }
-    
+
     /**
      * Prunes out all naming occurrences of anonymous inner types, since these types have no names
      * and cannot be derived visiting an AST (no positive type name matching while visiting ASTs)
@@ -626,7 +631,7 @@
     	}
     	return buffer.toString();
     }
-    
+
     /**
      * gets the <code>IJavaElement</code> from the editor input
      * @param input the current editor input
@@ -641,10 +646,10 @@
     	//try to get from the working copy manager
     	return DebugWorkingCopyManager.getWorkingCopy(input, false);
     }
-    
+
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#canToggleMethodBreakpoints(org.eclipse.ui.IWorkbenchPart,
      *      org.eclipse.jface.viewers.ISelection)
      */
@@ -659,11 +664,11 @@
         }
         return (selection instanceof ITextSelection) && isMethod((ITextSelection) selection, part);
     }
-    
-   
+
+
 	/**
 	 * Returns whether the given part/selection is remote (viewing a repository)
-	 * 
+	 *
 	 * @param part
 	 * @param selection
 	 * @return
@@ -682,15 +687,15 @@
     		IEditorInput input = editor.getEditorInput();
     		Object adapter = Platform.getAdapterManager().getAdapter(input, "org.eclipse.team.core.history.IFileRevision"); //$NON-NLS-1$
     		return adapter != null;
-    	} 
+    	}
     	return false;
     }
-    
+
     /**
      * Returns the text editor associated with the given part or <code>null</code>
      * if none. In case of a multi-page editor, this method should be used to retrieve
      * the correct editor to perform the breakpoint operation on.
-     * 
+     *
      * @param part workbench part
      * @return text editor part or <code>null</code>
      */
@@ -710,7 +715,7 @@
         if (selection.isEmpty()) {
             return new IMethod[0];
         }
-        List<IMethod> methods = new ArrayList<IMethod>(selection.size());
+        List<IMethod> methods = new ArrayList<>(selection.size());
         Iterator<?> iterator = selection.iterator();
         while (iterator.hasNext()) {
             Object thing = iterator.next();
@@ -726,12 +731,12 @@
                 		methods.add(method);
                 	}
                 }
-            } 
+            }
             catch (JavaModelException e) {}
         }
         return methods.toArray(new IMethod[methods.size()]);
     }
-    
+
     /**
      * Returns the methods from the selection, or an empty array
      * @param selection the selection to get the methods from
@@ -741,7 +746,7 @@
         if (selection.isEmpty()) {
             return new IMethod[0];
         }
-        List<IMethod> methods = new ArrayList<IMethod>(selection.size());
+        List<IMethod> methods = new ArrayList<>(selection.size());
         Iterator<?> iterator = selection.iterator();
         while (iterator.hasNext()) {
             Object thing = iterator.next();
@@ -752,7 +757,7 @@
                 		methods.add(method);
                 	}
                 }
-            } 
+            }
             catch (JavaModelException e) {}
         }
         return methods.toArray(new IMethod[methods.size()]);
@@ -805,7 +810,7 @@
         if (selection.isEmpty()) {
             return Collections.EMPTY_LIST;
         }
-        List<Object> fields = new ArrayList<Object>(selection.size());
+        List<Object> fields = new ArrayList<>(selection.size());
         Iterator<?> iterator = selection.iterator();
         while (iterator.hasNext()) {
             Object thing = iterator.next();
@@ -850,11 +855,11 @@
 					return type != null && type.isInterface();
 				}
 			}
-		} 
+		}
 		catch (CoreException e1) {}
     	return false;
     }
-    
+
     /**
      * Returns if the text selection is a field selection or not
      * @param selection the text selection
@@ -875,13 +880,13 @@
 	    				element = ((IClassFile) element).getElementAt(selection.getOffset());
 	    			}
 	    			return element != null && element.getElementType() == IJavaElement.FIELD;
-				} 
-    			catch (JavaModelException e) {return false;}		
+				}
+    			catch (JavaModelException e) {return false;}
     		}
     	}
     	return false;
     }
-    
+
 
     /**
      * Determines if the selection is a field or not
@@ -909,10 +914,10 @@
         }
         return false;
     }
-    
+
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#toggleWatchpoints(org.eclipse.ui.IWorkbenchPart,
      *      org.eclipse.jface.viewers.ISelection)
      */
@@ -979,7 +984,7 @@
 	                        	}
 	                        	int start = -1;
 	                            int end = -1;
-	                            attributes = new HashMap<String, Object>(10);
+	                            attributes = new HashMap<>(10);
 	                            if (javaField == null) {
 	                            	resource = ResourcesPlugin.getWorkspace().getRoot();
 	                            } else {
@@ -1010,10 +1015,10 @@
         job.setSystem(true);
         job.schedule();
     }
-    
+
     /**
      * Returns any existing watchpoint for the given field, or <code>null</code> if none.
-     * 
+     *
      * @param typeName fully qualified type name on which watchpoint may exist
      * @param fieldName field name
      * @return any existing watchpoint for the given field, or <code>null</code> if none
@@ -1033,7 +1038,7 @@
         }
         return null;
     }
-    
+
     /**
      * Returns the resolved signature of the given method
      * @param method method to resolve
@@ -1057,12 +1062,12 @@
             return null;
         }
         return Signature.createMethodSignature(resolvedParameterTypes, resolvedReturnType);
-    }    
+    }
 
     /**
      * Returns the resolved type signature for the given signature in the given
      * method, or <code>null</code> if unable to resolve.
-     * 
+     *
      * @param method method containing the type signature
      * @param typeSignature the type signature to resolve
      * @return the resolved type signature
@@ -1098,7 +1103,7 @@
 
         String[] types = resolvedElementTypeNames[0];
         types[1] = types[1].replace('.', '$');
-        
+
         String resolvedElementTypeName = Signature.toQualifiedName(types);
 		String resolvedElementTypeSignature = EMPTY_STRING;
 		if (types[0].equals(EMPTY_STRING)) {
@@ -1128,7 +1133,7 @@
 
     /**
      * Returns a handle to the specified method or <code>null</code> if none.
-     * 
+     *
      * @param editorPart
      *            the editor containing the method
      * @param typeName
@@ -1180,8 +1185,8 @@
                     }
                     if (container == null) {
                         try {
-                            if (method.getDeclaringType().getFullyQualifiedName().equals(methodBreakpoint.getTypeName()) && 
-                            		method.getElementName().equals(methodBreakpoint.getMethodName()) && 
+                            if (method.getDeclaringType().getFullyQualifiedName().equals(methodBreakpoint.getTypeName()) &&
+                            		method.getElementName().equals(methodBreakpoint.getMethodName()) &&
                             		methodBreakpoint.getMethodSignature().equals(resolveMethodSignature(method))) {
                                 return methodBreakpoint;
                             }
@@ -1223,10 +1228,10 @@
         }
         return null;
     }
-    
+
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#canToggleWatchpoints(org.eclipse.ui.IWorkbenchPart,
      *      org.eclipse.jface.viewers.ISelection)
      */
@@ -1241,11 +1246,11 @@
         }
         return (selection instanceof ITextSelection) && isField((ITextSelection) selection, part);
     }
-      
+
     /**
      * Returns a selection of the member in the given text selection, or the
      * original selection if none.
-     * 
+     *
      * @param part
      * @param selection
      * @return a structured selection of the member in the given text selection,
@@ -1311,7 +1316,7 @@
     	}
     	return root;
     }
-    
+
     /**
      * Return the associated IField (Java model) for the given
      * IJavaFieldVariable (JDI model)
@@ -1325,7 +1330,7 @@
             return null;
         }
         IField field;
-        IJavaType declaringType = variable.getDeclaringType(); 
+        IJavaType declaringType = variable.getDeclaringType();
         IType type = JavaDebugUtils.resolveType(declaringType);
         if (type != null) {
             field = type.getField(varName);
@@ -1338,7 +1343,7 @@
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTargetExtension#toggleBreakpoints(org.eclipse.ui.IWorkbenchPart,
      *      org.eclipse.jface.viewers.ISelection)
      */
@@ -1352,9 +1357,37 @@
     			// remove line breakpoint if present first
     	    	if (selection instanceof ITextSelection) {
     				ITextSelection ts = (ITextSelection) selection;
-    				IType declaringType = member.getDeclaringType();
-    				IResource resource = BreakpointUtils.getBreakpointResource(declaringType);
-					IJavaLineBreakpoint breakpoint = JDIDebugModel.lineBreakpointExists(resource, getQualifiedName(declaringType), ts.getStartLine() + 1);
+					IJavaLineBreakpoint breakpoint = null;
+					ITextEditor editor = getTextEditor(part);
+					IAnnotationModel annotationModel = editor.getDocumentProvider().getAnnotationModel(editor.getEditorInput());
+					IDocument document = editor.getDocumentProvider().getDocument(editor.getEditorInput());
+					if (annotationModel != null) {
+						Iterator<Annotation> iterator = annotationModel.getAnnotationIterator();
+						while (iterator.hasNext()) {
+							Object object = iterator.next();
+							if (object instanceof SimpleMarkerAnnotation) {
+								SimpleMarkerAnnotation markerAnnotation = (SimpleMarkerAnnotation) object;
+								IMarker marker = markerAnnotation.getMarker();
+								try {
+									if (marker.isSubtypeOf(IBreakpoint.BREAKPOINT_MARKER)) {
+										Position position = annotationModel.getPosition(markerAnnotation);
+										int line = document.getLineOfOffset(position.getOffset());
+										if (line == ts.getStartLine()) {
+											IBreakpoint oldBreakpoint = DebugPlugin.getDefault().getBreakpointManager().getBreakpoint(marker);
+											if (oldBreakpoint instanceof IJavaLineBreakpoint) {
+												breakpoint = (IJavaLineBreakpoint) oldBreakpoint;
+												break;
+											}
+										}
+									}
+								}
+								catch (BadLocationException e) {
+									JDIDebugUIPlugin.log(e);
+								}
+							}
+						}
+					}
+
     				if (breakpoint != null) {
 						if (BreakpointToggleUtils.isToggleTracepoints()) {
 							deleteTracepoint(breakpoint, part, null);
@@ -1381,7 +1414,7 @@
         			else if(loc.getLocationType() == ValidBreakpointLocationLocator.LOCATION_LINE) {
         				toggleLineBreakpoints(part, ts, false, loc);
         			}
-    			} 
+    			}
     		}
     		else if(member.getElementType() == IJavaElement.TYPE) {
 				if (BreakpointToggleUtils.isToggleTracepoints()) {
@@ -1400,7 +1433,7 @@
 
 	/**
 	 * Deletes the given breakpoint using the operation history, which allows to undo the deletion.
-	 * 
+	 *
 	 * @param breakpoint the breakpoint to delete
 	 * @param part a workbench part, or <code>null</code> if unknown
 	 * @param progressMonitor the progress monitor
@@ -1480,7 +1513,7 @@
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTargetExtension#canToggleBreakpoints(org.eclipse.ui.IWorkbenchPart,
      *      org.eclipse.jface.viewers.ISelection)
      */
@@ -1488,7 +1521,7 @@
 	public boolean canToggleBreakpoints(IWorkbenchPart part, ISelection selection) {
     	if (isRemote(part, selection)) {
     		return false;
-    	}    	
+    	}
         return canToggleLineBreakpoints(part, selection);
     }
 
@@ -1543,7 +1576,7 @@
 
 	/**
 	 * Returns the {@link ITypeRoot} for the given {@link IEditorInput}
-	 * 
+	 *
 	 * @param input
 	 * @return the type root or <code>null</code> if one cannot be derived
 	 * @since 3.8
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ValidBreakpointLocationLocator.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ValidBreakpointLocationLocator.java
index a445bb9..edf730f 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ValidBreakpointLocationLocator.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ValidBreakpointLocationLocator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ViewFilterAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ViewFilterAction.java
index dcc857f..c22aadf 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ViewFilterAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ViewFilterAction.java
@@ -27,14 +27,14 @@
 import org.eclipse.ui.IViewPart;
 
 /**
- * 
+ *
  */
 public abstract class ViewFilterAction extends ViewerFilter implements IViewActionDelegate, IActionDelegate2 {
-		
+
 	private IViewPart fView;
 	private IAction fAction;
 	private IPropertyChangeListener fListener = new Updater();
-	
+
 	class Updater implements IPropertyChangeListener {
 
 		/* (non-Javadoc)
@@ -46,9 +46,9 @@
 					event.getProperty().equals(getCompositeKey())) {
 				fAction.setChecked(getPreferenceValue());
 			}
-			
+
 		}
-		
+
 	}
 
 	public ViewFilterAction() {
@@ -125,11 +125,11 @@
 	protected IPreferenceStore getPreferenceStore() {
 		return JDIDebugUIPlugin.getDefault().getPreferenceStore();
 	}
-	
+
 	/**
 	 * Returns the value of this filters preference (on/off) for the given
 	 * view.
-	 * 
+	 *
 	 * @param part
 	 * @return boolean
 	 */
@@ -142,20 +142,20 @@
 		} else {
 			value = store.getBoolean(getPreferenceKey());
 		}
-		return value;		
+		return value;
 	}
-	
+
 	/**
 	 * Returns the key for this action's preference
-	 * 
+	 *
 	 * @return String
 	 */
-	protected abstract String getPreferenceKey(); 
+	protected abstract String getPreferenceKey();
 
 	/**
 	 * Returns the key used by this action to store its preference value/setting.
 	 * Based on a base key (suffix) and part id (prefix).
-	 *  
+	 *
 	 * @return preference store key
 	 */
 	protected String getCompositeKey() {
@@ -163,11 +163,11 @@
 		String viewKey = getView().getSite().getId();
 		return viewKey + "." + baseKey; //$NON-NLS-1$
 	}
-	
+
 	protected IViewPart getView() {
 		return fView;
 	}
-	
+
 	protected StructuredViewer getStructuredViewer() {
 		IDebugView view = getView().getAdapter(IDebugView.class);
 		if (view != null) {
@@ -175,13 +175,13 @@
 			if (viewer instanceof StructuredViewer) {
 				return (StructuredViewer)viewer;
 			}
-		}		
+		}
 		return null;
 	}
-	
+
 	/**
 	 * Returns whether this action is selected/checked.
-	 * 
+	 *
 	 * @return whether this action is selected/checked
 	 */
 	protected boolean getValue() {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/WatchAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/WatchAction.java
index be4f001..be7a403 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/WatchAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/WatchAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -28,7 +28,7 @@
  * Create a watch item from a selected variable
  */
 public class WatchAction extends InspectAction {
-		
+
 	@Override
 	public void run() {
 		Object selectedObject= getSelectedObject();
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/AbstractDetailPane.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/AbstractDetailPane.java
index 5a9dcd8..a799295 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/AbstractDetailPane.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/AbstractDetailPane.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -39,25 +39,25 @@
 
 /**
  * Common detail pane function.
- * 
+ *
  * @since 3.6
  */
 public abstract class AbstractDetailPane implements IDetailPane3 {
-	
+
 	private String fName;
 	private String fDescription;
 	private String fId;
 	private AbstractJavaBreakpointEditor fEditor;
-	private Set<Integer> fAutoSaveProperties = new HashSet<Integer>();
-	private IWorkbenchPartSite fSite; 
-	
+	private Set<Integer> fAutoSaveProperties = new HashSet<>();
+	private IWorkbenchPartSite fSite;
+
 	// property listeners
-	private ListenerList<IPropertyListener> fListeners = new ListenerList<IPropertyListener>();
+	private ListenerList<IPropertyListener> fListeners = new ListenerList<>();
 	private Composite fEditorParent;
-	
+
 	/**
 	 * Constructs a detail pane.
-	 * 
+	 *
 	 * @param name detail pane name
 	 * @param description detail pane description
 	 * @param id detail pane ID
@@ -90,18 +90,18 @@
 	public ISelectionProvider getSelectionProvider() {
 		return null;
 	}
-	
+
 	/**
 	 * Fires a property change to all listeners.
-	 * 
+	 *
 	 * @param property the property
 	 */
 	protected void firePropertyChange(int property) {
 		for (IPropertyListener listener : fListeners) {
 			listener.propertyChanged(this, property);
-		}	
+		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.IDetailPane#init(org.eclipse.ui.IWorkbenchPartSite)
 	 */
@@ -124,7 +124,7 @@
 	public String getDescription() {
 		return fDescription;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.IDetailPane#dispose()
 	 */
@@ -135,12 +135,12 @@
 		fListeners.clear();
 		fAutoSaveProperties.clear();
 		fEditorParent.dispose();
-	}	
-	
+	}
+
 	/**
 	 * Adds the given auto save properties to this detail pain. Whenever one of these properties
 	 * changes, the detail pane editor is immediately saved.
-	 * 
+	 *
 	 * @param autosave the auto-save properties
 	 */
 	protected void addAutosaveProperties(int[] autosave) {
@@ -173,15 +173,15 @@
 		});
 		return fEditor.createControl(fEditorParent);
 	}
-	
+
 	/**
 	 * Creates the detail pane specific editor.
-	 * 
+	 *
 	 * @param parent parent composite
 	 * @return editor
 	 */
 	protected abstract AbstractJavaBreakpointEditor createEditor(Composite parent);
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.ISaveablePart#doSaveAs()
 	 */
@@ -213,7 +213,7 @@
 	public boolean setFocus() {
 		return false;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.ISaveablePart#doSave(org.eclipse.core.runtime.IProgressMonitor)
 	 */
@@ -233,7 +233,7 @@
 			}
 		}
 	}
-	
+
 	private IStatusLineManager getStatusLine() {
 		// we want to show messages globally hence we
 		// have to go through the active part
@@ -247,7 +247,7 @@
 				IViewSite activeViewSite= activeViewPart.getViewSite();
 				return activeViewSite.getActionBars().getStatusLineManager();
 			}
-	
+
 			if (activePart instanceof IEditorPart) {
 				IEditorPart activeEditorPart= (IEditorPart)activePart;
 				IEditorActionBarContributor contributor= activeEditorPart.getEditorSite().getActionBarContributor();
@@ -259,7 +259,7 @@
 			return site.getActionBars().getStatusLineManager();
 		}
 		return null;
-	}	
+	}
 
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.ISaveablePart#isDirty()
@@ -271,13 +271,13 @@
 
 	/**
 	 * Returns the editor associated with this detail pane.
-	 * 
+	 *
 	 * @return editor
 	 */
 	protected AbstractJavaBreakpointEditor getEditor() {
 		return fEditor;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.IDetailPane#display(org.eclipse.jface.viewers.IStructuredSelection)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/AbstractJavaBreakpointEditor.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/AbstractJavaBreakpointEditor.java
index 6083171..c5aac32 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/AbstractJavaBreakpointEditor.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/AbstractJavaBreakpointEditor.java
@@ -21,51 +21,51 @@
 
 /**
  * Common function for Breakpoint editor controls.
- * 
+ *
  * @since 3.6
  */
 public abstract class AbstractJavaBreakpointEditor {
-	
+
 	private ListenerList<IPropertyListener> fListeners = new ListenerList<>();
     private boolean fDirty = false;
     private boolean fMnemonics = true;
     private boolean fSuppressPropertyChanges = false;
-	
+
 	/**
 	 * Adds the given property listener to this editor. Property changes
 	 * are reported on the breakpoint being edited. Property identifiers
 	 * are breakpoint attribute keys.
-	 * 
+	 *
 	 * @param listener listener
 	 */
 	public void addPropertyListener(IPropertyListener listener) {
 		fListeners.add(listener);
 	}
-	
+
 	/**
 	 * Sets whether mnemonics should be displayed in editor controls.
 	 * Only has an effect if set before {@link #createControl(Composite)}
 	 * is called. By default, mnemonics are displayed.
-	 * 
+	 *
 	 * @param mnemonics whether to display mnemonics
 	 */
 	public void setMnemonics(boolean mnemonics) {
 		fMnemonics = mnemonics;
 	}
-	
+
 	/**
 	 * Returns whether mnemonics should be displayed in editor controls.
-	 * 
+	 *
 	 * @return whether mnemonics should be displayed in editor controls
 	 */
 	protected boolean isMnemonics() {
 		return fMnemonics;
 	}
-	
+
 	/**
 	 * Returns text with mnemonics in tact or removed based on {@link #isMnemonics()}.
-	 * 
-	 * @param text string to process 
+	 *
+	 * @param text string to process
 	 * @return text with mnemonics in tact or removed based on {@link #isMnemonics()}
 	 */
 	protected String processMnemonics(String text) {
@@ -74,25 +74,25 @@
 		}
 		return LegacyActionTools.removeMnemonics(text);
 	}
-	
+
 	/**
 	 * Removes the property listener from this editor.
-	 * 
+	 *
 	 * @param listener listener
 	 */
 	public void removePropertyListener(IPropertyListener listener) {
 		fListeners.remove(listener);
 	}
-	
+
 	/**
 	 * Creates the condition editor widgets and returns the top level
 	 * control.
-	 * 
+	 *
 	 * @param parent composite to embed the editor controls in
 	 * @return top level control
 	 */
 	public abstract Control createControl(Composite parent);
-	
+
 	/**
 	 * Disposes this editor and its controls. Once disposed, the editor can no
 	 * longer be used.
@@ -100,52 +100,52 @@
 	protected void dispose() {
 		fListeners.clear();
 	}
-	
+
 	/**
 	 * Gives focus to an appropriate control in the editor.
 	 */
 	public abstract void setFocus();
-	
+
 	/**
 	 * Saves current settings to the breakpoint being edited. Has no
 	 * effect if a breakpoint is not currently being edited or if this
 	 * editor is not dirty.
-	 * 
+	 *
 	 * @exception CoreException if unable to update the breakpoint.
 	 */
 	public abstract void doSave() throws CoreException;
-	
+
 	/**
 	 * Returns a status describing whether the condition editor is in
 	 * a valid state. Returns an OK status when all is good. For example, an error
 	 * status is returned when the conditional expression is empty but enabled.
-	 * 
+	 *
 	 * @return editor status.
 	 */
 	public abstract IStatus getStatus();
-		
+
 	/**
 	 * Returns whether the editor needs saving.
-	 *  
+	 *
 	 * @return whether the editor needs saving
 	 */
 	public boolean isDirty() {
 		return fDirty;
 	}
-	
+
 	/**
 	 * Sets the dirty flag based on the given property change
-	 * 
+	 *
 	 * @param propId the property that changed
 	 */
 	protected void setDirty(int propId) {
 		fDirty = true;
 		firePropertyChange(propId);
 	}
-	
+
 	/**
 	 * Sets the dirty flag and fires a dirty property change if required.
-	 * 
+	 *
 	 * @param dirty whether dirty
 	 */
 	protected void setDirty(boolean dirty) {
@@ -154,10 +154,10 @@
 			firePropertyChange(IWorkbenchPartConstants.PROP_DIRTY);
 		}
 	}
-	
+
 	/**
 	 * Fires a property change event to all listeners.
-	 * 
+	 *
 	 * @param source
 	 * @param propId
 	 * @param value
@@ -169,29 +169,29 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Returns the breakpoint being displayed or <code>null</code> if none.
-	 * 
+	 *
 	 * @return breakpoint or <code>null</code>
 	 */
 	public abstract Object getInput();
-	
+
 	/**
 	 * Sets the breakpoint to display and edit or <code>null</code> if none.
-	 * 
+	 *
 	 * @param breakpoint breakpoint or <code>null</code>
 	 * @exception CoreException if unable to set the input
 	 */
 	public abstract void setInput(Object breakpoint) throws CoreException;
-	
+
 	/**
 	 * Sets whether to suppress property change notification.
-	 * 
+	 *
 	 * @param suppress whether to suppress notification
 	 */
 	protected void suppressPropertyChanges(boolean suppress) {
 		fSuppressPropertyChanges = suppress;
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/AddClassPrepareBreakpointAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/AddClassPrepareBreakpointAction.java
index 0132a71..54fea1279 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/AddClassPrepareBreakpointAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/AddClassPrepareBreakpointAction.java
@@ -59,7 +59,7 @@
 	        for (int i = 0; i < selection.length; i++) {
 	            final IType type = (IType) selection[i];
 	            final IResource resource = BreakpointUtils.getBreakpointResource(type);
-	            final Map<String, Object> map = new HashMap<String, Object>(10);
+	            final Map<String, Object> map = new HashMap<>(10);
 	            BreakpointUtils.addJavaBreakpointAttributes(map, type);
 	            int kind = IJavaClassPrepareBreakpoint.TYPE_CLASS;
 	            if (!type.isClass()) {
@@ -88,7 +88,7 @@
 	                final int finalKind = kind;
 	                final int finalStart = start;
 	                final int finalEnd = end;
-	                new Job(BreakpointMessages.AddClassPrepareBreakpointAction_2) { 
+	                new Job(BreakpointMessages.AddClassPrepareBreakpointAction_2) {
 	                    @Override
 						protected IStatus run(IProgressMonitor monitor) {
 	                        try {
@@ -98,7 +98,7 @@
 	                            return e.getStatus();
 	                        }
 	                    }
-	
+
 	                }.schedule();
 	            }
 	        }
@@ -106,7 +106,7 @@
 	    	JDIDebugUIPlugin.statusDialog(e.getStatus());
 	    }
     }
-    
+
     /* (non-Javadoc)
      * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
      */
@@ -115,18 +115,18 @@
         Shell shell = JDIDebugUIPlugin.getActiveWorkbenchShell();
         SelectionDialog dialog = null;
         try {
-        	dialog = JavaUI.createTypeDialog(shell, workbenchWindow, 
-        									 SearchEngine.createWorkspaceScope(), 
-        									 IJavaElementSearchConstants.CONSIDER_CLASSES, 
+        	dialog = JavaUI.createTypeDialog(shell, workbenchWindow,
+        									 SearchEngine.createWorkspaceScope(),
+        									 IJavaElementSearchConstants.CONSIDER_CLASSES,
         									 true, "", null); //$NON-NLS-1$
-            dialog.setTitle(BreakpointMessages.AddClassPrepareBreakpointAction_0); 
-            dialog.setMessage(BreakpointMessages.AddClassPrepareBreakpointAction_1); 
+            dialog.setTitle(BreakpointMessages.AddClassPrepareBreakpointAction_0);
+            dialog.setMessage(BreakpointMessages.AddClassPrepareBreakpointAction_1);
             if (dialog.open() == IDialogConstants.OK_ID) {
                createBreakpoints(dialog.getResult());
             }
         } catch (CoreException e) {JDIDebugUIPlugin.log(e);}
-    } 
-    
+    }
+
     /* (non-Javadoc)
      * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection)
      */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/AddExceptionAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/AddExceptionAction.java
index 7e26d7e..dcac528 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/AddExceptionAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/AddExceptionAction.java
@@ -50,11 +50,11 @@
  * The workbench menu action for adding an exception breakpoint
  */
 public class AddExceptionAction implements IViewActionDelegate, IWorkbenchWindowActionDelegate {
-	
+
 	public static final String CAUGHT_CHECKED = "caughtChecked"; //$NON-NLS-1$
 	public static final String UNCAUGHT_CHECKED = "uncaughtChecked"; //$NON-NLS-1$
 	public static final String DIALOG_SETTINGS = "AddExceptionDialog"; //$NON-NLS-1$
-	
+
 	private IWorkbenchWindow fWindow = null;
 
 	/* (non-Javadoc)
@@ -65,9 +65,9 @@
 		try {
 			IDialogSettings settings = getDialogSettings();
 			AddExceptionTypeDialogExtension ext = new AddExceptionTypeDialogExtension(settings.getBoolean(CAUGHT_CHECKED), settings.getBoolean(UNCAUGHT_CHECKED));
-			SelectionDialog dialog = JavaUI.createTypeDialog(JDIDebugUIPlugin.getActiveWorkbenchShell(), 
-						fWindow, 
-						SearchEngine.createWorkspaceScope(), 
+			SelectionDialog dialog = JavaUI.createTypeDialog(JDIDebugUIPlugin.getActiveWorkbenchShell(),
+						fWindow,
+						SearchEngine.createWorkspaceScope(),
 						IJavaElementSearchConstants.CONSIDER_CLASSES, false, "*Exception*", ext); //$NON-NLS-1$
 			dialog.setTitle(BreakpointMessages.AddExceptionAction_0);
 			dialog.setMessage(BreakpointMessages.AddExceptionAction_1);
@@ -76,7 +76,7 @@
 			if(dialog.open() == IDialogConstants.OK_ID) {
 				boolean caught = ext.shouldHandleCaughtExceptions(),
 						uncaught = ext.shouldHandleUncaughtExceptions();
-				Object[] results = dialog.getResult(); 
+				Object[] results = dialog.getResult();
 				if(results != null && results.length > 0) {
 					try {
 						createBreakpoint(caught, uncaught, (IType)results[0]);
@@ -85,18 +85,18 @@
 					}
 					catch (CoreException e) {JDIDebugUIPlugin.statusDialog(e.getStatus());}
 				}
-				
+
 			}
-		} 
+		}
 		catch (JavaModelException e1) {}
 	}
-	
+
 	/**
 	 * Returns the existing dialog settings for the persisted state of the caught and uncaught check boxes.
 	 * If no section exists then a new one is created
-	 * 
+	 *
 	 * @return the dialog settings section for the type dialog extension
-	 * 
+	 *
 	 * @since 3.4
 	 */
 	private IDialogSettings getDialogSettings() {
@@ -109,7 +109,7 @@
         }
         return section;
     }
-	
+
 	/**
 	 * creates a single breakpoint of the specified type
 	 * @param caught if the exception is caught
@@ -120,7 +120,7 @@
 	 */
 	private void createBreakpoint(final boolean caught, final boolean uncaught, final IType type) throws CoreException {
 		final IResource resource = BreakpointUtils.getBreakpointResource(type);
-		final Map<String, Object> map = new HashMap<String, Object>(10);
+		final Map<String, Object> map = new HashMap<>(10);
 		BreakpointUtils.addJavaBreakpointAttributes(map, type);
 		IBreakpoint[] breakpoints = DebugPlugin.getDefault().getBreakpointManager().getBreakpoints(
 						JDIDebugModel.getPluginIdentifier());
@@ -173,7 +173,7 @@
 			job.schedule();
 		}
 	}
-	
+
     /**
      * returns if the exception should be marked as 'checked' or not
      * @param type the type of the exception
@@ -192,12 +192,12 @@
  	                }
  	                curr = hierarchy.getSuperclass(curr);
  	            }
- 	        } 
+ 	        }
  	        catch (JavaModelException e) {JDIDebugUIPlugin.log(e);}
          }
     	return true;
     }
-    
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart)
 	 */
@@ -209,7 +209,7 @@
 	 */
 	@Override
 	public void selectionChanged(IAction action, ISelection selection) {}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#dispose()
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/AddExceptionTypeDialogExtension.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/AddExceptionTypeDialogExtension.java
index 10834ac..a1e43f2 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/AddExceptionTypeDialogExtension.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/AddExceptionTypeDialogExtension.java
@@ -29,11 +29,11 @@
 
 /**
  * Provides a type dialog extension for the JDT type selection dialog
- * 
+ *
  * @since 3.4
  */
 public class AddExceptionTypeDialogExtension extends TypeSelectionExtension {
-	
+
 	/**
 	  * widgets
 	  */
@@ -41,7 +41,7 @@
 	 private Button fUncaughtButton;
 	 private boolean fCaught = false;
 	 private boolean fUncaught = false;
-	
+
 	 /**
 	 * Constructor
 	 * @param caught
@@ -51,7 +51,7 @@
 		 fCaught = caught;
 		 fUncaught = uncaught;
 	 }
-	 
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.ui.dialogs.TypeSelectionExtension#createContentArea(org.eclipse.swt.widgets.Composite)
 	 */
@@ -80,7 +80,7 @@
 		((GridData) fUncaughtButton.getLayoutData()).grabExcessHorizontalSpace = true;
 		return comp;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.ui.dialogs.TypeSelectionExtension#getSelectionValidator()
 	 */
@@ -100,7 +100,7 @@
 			                }
 			                curr = hierarchy.getSuperclass(curr);
 			            }
-			        } 
+			        }
 			        catch (JavaModelException e) {
 			        	JDIDebugUIPlugin.log(e);
 			        	return Status.CANCEL_STATUS;
@@ -108,10 +108,10 @@
 				}
 				return new Status(IStatus.ERROR, JDIDebugUIPlugin.getUniqueIdentifier(), BreakpointMessages.AddExceptionDialog_13);
 			}
-			
+
 		};
 	}
-	
+
 	/**
 	 * Returns if the breakpoint should be set to suspend when the associated exception is thrown, but caught
 	 * @return if the breakpoint should be set to suspend when the associated exception is thrown, but caught
@@ -119,11 +119,11 @@
 	public boolean shouldHandleCaughtExceptions() {
 		return fCaught;
 	}
-	
+
 	/**Returns if the breakpoint should be set to suspend when the associated exception is thrown, but not caught
 	 * @return if the breakpoint should be set to suspend when the associated exception is thrown, but not caught
 	 */
 	public boolean shouldHandleUncaughtExceptions() {
 		return fUncaught;
-	}	
+	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/BreakpointDetailPaneFactory.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/BreakpointDetailPaneFactory.java
index 3c38f30..3e630be 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/BreakpointDetailPaneFactory.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/BreakpointDetailPaneFactory.java
@@ -27,11 +27,11 @@
 
 /**
  * Detail pane factory for Java breakpoints.
- * 
+ *
  * @since 3.6
  */
 public class BreakpointDetailPaneFactory implements IDetailPaneFactory {
-	
+
 	/**
 	 * Maps pane IDs to names
 	 */
@@ -42,7 +42,7 @@
 	 */
 	@Override
 	public Set<String> getDetailPaneTypes(IStructuredSelection selection) {
-		HashSet<String> set = new HashSet<String>();
+		HashSet<String> set = new HashSet<>();
 		if (selection.size() == 1) {
 			IBreakpoint b = (IBreakpoint) selection.getFirstElement();
 			try {
@@ -126,10 +126,10 @@
 	public String getDetailPaneDescription(String paneID) {
 		return getNameMap().get(paneID);
 	}
-	
+
 	private Map<String, String> getNameMap() {
 		if (fNameMap == null) {
-			fNameMap = new HashMap<String, String>();
+			fNameMap = new HashMap<>();
 			fNameMap.put(LineBreakpointDetailPane.DETAIL_PANE_LINE_BREAKPOINT, BreakpointMessages.BreakpointDetailPaneFactory_0);
 			fNameMap.put(WatchpointDetailPane.DETAIL_PANE_WATCHPOINT, BreakpointMessages.WatchpointDetailPane_0);
 			fNameMap.put(MethodBreakpointDetailPane.DETAIL_PANE_METHOD_BREAKPOINT, BreakpointMessages.BreakpointDetailPaneFactory_1);
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/BreakpointMessages.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/BreakpointMessages.java
index 52a80eb..fc9c783 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/BreakpointMessages.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/BreakpointMessages.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *  IBM - Initial API and implementation
  *******************************************************************************/
@@ -26,16 +26,16 @@
 	public static String AddClassPrepareBreakpointAction_0;
 	public static String AddClassPrepareBreakpointAction_1;
 	public static String AddClassPrepareBreakpointAction_2;
-	
+
 	public static String BreakpointConditionDetailPane_0;
 
 	public static String BreakpointDetailPaneFactory_0;
 
 	public static String BreakpointDetailPaneFactory_1;
-	
+
 	public static String ExceptionBreakpointDetailPane_0;
-	
-	public static String JavaBreakpointTypeAdapterFactory_0;	
+
+	public static String JavaBreakpointTypeAdapterFactory_0;
 	public static String StandardBreakpointDetailPane_0;
 
 	public static String WatchpointDetailPane_0;
@@ -44,5 +44,5 @@
 		// load message values from bundle file
 		NLS.initializeMessages(BUNDLE_NAME, BreakpointMessages.class);
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/CompositeBreakpointEditor.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/CompositeBreakpointEditor.java
index 6b95b3b..4370195 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/CompositeBreakpointEditor.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/CompositeBreakpointEditor.java
@@ -21,17 +21,17 @@
 
 /**
  * Combines editors.
- * 
+ *
  * @since 3.6
  */
 public class CompositeBreakpointEditor extends AbstractJavaBreakpointEditor {
-	
+
 	private AbstractJavaBreakpointEditor[] fEditors;
-	
+
 	public CompositeBreakpointEditor(AbstractJavaBreakpointEditor[] editors) {
 		fEditors = editors;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.breakpoints.AbstractJavaBreakpointEditor#addPropertyListener(org.eclipse.ui.IPropertyListener)
 	 */
@@ -41,7 +41,7 @@
 			fEditors[i].addPropertyListener(listener);
 		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.breakpoints.AbstractJavaBreakpointEditor#removePropertyListener(org.eclipse.ui.IPropertyListener)
 	 */
@@ -51,7 +51,7 @@
 			fEditors[i].removePropertyListener(listener);
 		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.breakpoints.AbstractJavaBreakpointEditor#dispose()
 	 */
@@ -92,7 +92,7 @@
 			fEditors[i].doSave();
 		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.breakpoints.AbstractJavaBreakpointEditor#isDirty()
 	 */
@@ -137,7 +137,7 @@
 			fEditors[i].setInput(breakpoint);
 		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.breakpoints.AbstractJavaBreakpointEditor#setMnemonics(boolean)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/ExceptionBreakpointDetailPane.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/ExceptionBreakpointDetailPane.java
index 6a3b187..d61be52 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/ExceptionBreakpointDetailPane.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/ExceptionBreakpointDetailPane.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -15,11 +15,11 @@
 
 /**
  * Exception breakpoint detail pane.
- * 
+ *
  * @since 3.6
  */
 public class ExceptionBreakpointDetailPane extends AbstractDetailPane {
-	
+
 	/**
 	 * Identifier for this detail pane editor
 	 */
@@ -36,7 +36,7 @@
 				ExceptionBreakpointEditor.PROP_SUBCLASSES
 		});
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.breakpoints.AbstractDetailPane#createEditor(org.eclipse.swt.widgets.Composite)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/ExceptionBreakpointEditor.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/ExceptionBreakpointEditor.java
index eb04117..84faa42 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/ExceptionBreakpointEditor.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/ExceptionBreakpointEditor.java
@@ -24,14 +24,14 @@
  * @since 3.6
  */
 public class ExceptionBreakpointEditor extends StandardJavaBreakpointEditor {
-	
+
 	/**
      * Property id's
      */
     public static final int PROP_CAUGHT = 0x1020;
     public static final int PROP_UNCAUGHT = 0x1021;
     public static final int PROP_SUBCLASSES = 0x1022;
-	
+
 	// editors
 	private Button fCaught;
 	private Button fUncaught;
@@ -52,7 +52,7 @@
 		fSubclasses = createSusupendPropertyEditor(composite, processMnemonics(PropertyPageMessages.ExceptionBreakpointEditor_3), PROP_SUBCLASSES);
 		return container;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.breakpoints.StandardJavaBreakpointEditor#setBreakpoint(org.eclipse.jdt.debug.core.IJavaBreakpoint)
 	 */
@@ -73,7 +73,7 @@
 			fSubclasses.setEnabled(false);
 		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.breakpoints.StandardJavaBreakpointEditor#doSave()
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/ExceptionInspector.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/ExceptionInspector.java
index 47211ac..c87a4b1 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/ExceptionInspector.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/ExceptionInspector.java
@@ -49,7 +49,7 @@
  * This class is used to show the inspect pop-up when a thread is suspended due to an exception being thrown
  */
 public class ExceptionInspector implements IDebugContextListener, IPreferenceChangeListener {
-	
+
 	/**
 	 * Constructor
 	 */
@@ -60,8 +60,8 @@
 		}
 		boolean doit = Platform.getPreferencesService().getBoolean(
 JDIDebugUIPlugin.getUniqueIdentifier(),
-				IJDIPreferencesConstants.PREF_OPEN_INSPECT_POPUP_ON_EXCEPTION, 
-				false, 
+				IJDIPreferencesConstants.PREF_OPEN_INSPECT_POPUP_ON_EXCEPTION,
+				false,
 				null);
 		if (doit) {
 			DebugUITools.getDebugContextManager().addDebugContextListener(this);
@@ -78,7 +78,7 @@
 			if (part != null) {
 				IWorkbenchPartSite site = part.getSite();
 				if (site != null && IDebugUIConstants.ID_DEBUG_VIEW.equals(site.getId())) {
-					IWorkbenchPage page = site.getWorkbenchWindow().getActivePage(); 
+					IWorkbenchPage page = site.getWorkbenchWindow().getActivePage();
 					if (page != null && page.isPartVisible(part)) {
 						ISelection selection = event.getContext();
 						if (selection instanceof IStructuredSelection) {
@@ -108,7 +108,7 @@
 														}
 													}
 												}
-											} 
+											}
 										} catch (DebugException e) {}
 									}
 								}
@@ -129,8 +129,8 @@
 			IDebugContextManager manager = DebugUITools.getDebugContextManager();
 			boolean doit = Platform.getPreferencesService().getBoolean(
 JDIDebugUIPlugin.getUniqueIdentifier(),
-					IJDIPreferencesConstants.PREF_OPEN_INSPECT_POPUP_ON_EXCEPTION, 
-					false, 
+					IJDIPreferencesConstants.PREF_OPEN_INSPECT_POPUP_ON_EXCEPTION,
+					false,
 					null);
 			if (doit) {
 				manager.addDebugContextListener(this);
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/JavaBreakpointTypeAdapterFactory.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/JavaBreakpointTypeAdapterFactory.java
index c4e6792..88ba545 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/JavaBreakpointTypeAdapterFactory.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/JavaBreakpointTypeAdapterFactory.java
@@ -34,11 +34,11 @@
  * Factory for Java breakpoint types
  */
 public class JavaBreakpointTypeAdapterFactory implements IAdapterFactory {
-    
-    private Map<String, Object> fStratumTypes = new HashMap<String, Object>();
-    
+
+    private Map<String, Object> fStratumTypes = new HashMap<>();
+
     // map of breakpoint type names to breakpoint type categories
-    private Map<String, IBreakpointTypeCategory> fOtherTypes = new HashMap<String, IBreakpointTypeCategory>();
+    private Map<String, IBreakpointTypeCategory> fOtherTypes = new HashMap<>();
 
     /* (non-Javadoc)
      * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class)
@@ -67,7 +67,7 @@
                     if (stratum != null) {
                         Object type = fStratumTypes.get(stratum);
                         if (type == null) {
-                            String label = NLS.bind(BreakpointMessages.JavaBreakpointTypeAdapterFactory_0, new String[]{stratum}); 
+                            String label = NLS.bind(BreakpointMessages.JavaBreakpointTypeAdapterFactory_0, new String[]{stratum});
                             if (stratum.equalsIgnoreCase("jsp")) { //$NON-NLS-1$
                             	type = new BreakpointTypeCategory(label, getImageDescriptor(JavaDebugImages.IMG_OBJS_JSP_BRKPT_TYPE));
                             } else {
@@ -78,7 +78,7 @@
 						return (T) type;
                     }
                 } catch (CoreException e) {
-                }                
+                }
             }
             if (adaptableObject instanceof IBreakpoint) {
             	IBreakpoint breakpoint = (IBreakpoint)adaptableObject;
@@ -113,7 +113,7 @@
 	public Class<?>[] getAdapterList() {
         return new Class[]{IBreakpointTypeCategory.class};
     }
-	
+
 	private ImageDescriptor getImageDescriptor(String key) {
 		return JavaDebugImages.getImageDescriptor(key);
 	}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/LineBreakpointDetailPane.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/LineBreakpointDetailPane.java
index 38e07f2..250079d 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/LineBreakpointDetailPane.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/LineBreakpointDetailPane.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -20,21 +20,21 @@
  * @since 3.6
  */
 public class LineBreakpointDetailPane extends AbstractDetailPane {
-	
+
 	/**
 	 * Identifier for this detail pane editor
 	 */
 	public static final String DETAIL_PANE_LINE_BREAKPOINT = JDIDebugUIPlugin.getUniqueIdentifier() + ".DETAIL_PANE_LINE_BREAKPOINT"; //$NON-NLS-1$
-	
+
 	public LineBreakpointDetailPane() {
-		super(BreakpointMessages.BreakpointConditionDetailPane_0, BreakpointMessages.BreakpointConditionDetailPane_0, DETAIL_PANE_LINE_BREAKPOINT); 
+		super(BreakpointMessages.BreakpointConditionDetailPane_0, BreakpointMessages.BreakpointConditionDetailPane_0, DETAIL_PANE_LINE_BREAKPOINT);
 		addAutosaveProperties(new int[]{
 				JavaBreakpointConditionEditor.PROP_CONDITION_ENABLED,
 				JavaBreakpointConditionEditor.PROP_CONDITION_SUSPEND_POLICY,
 				StandardJavaBreakpointEditor.PROP_HIT_COUNT_ENABLED,
 				StandardJavaBreakpointEditor.PROP_SUSPEND_POLICY, StandardJavaBreakpointEditor.PROP_TRIGGER_POINT });
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.breakpoints.AbstractDetailPane#createEditor(org.eclipse.swt.widgets.Composite)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/MethodBreakpointDetailPane.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/MethodBreakpointDetailPane.java
index d354d42..61e27ae 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/MethodBreakpointDetailPane.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/MethodBreakpointDetailPane.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -16,11 +16,11 @@
 
 /**
  * Watchpoint detail pane. Suspend on access or modification.
- * 
+ *
  * @since 3.6
  */
 public class MethodBreakpointDetailPane extends AbstractDetailPane {
-	
+
 	/**
 	 * Identifier for this detail pane editor
 	 */
@@ -38,13 +38,13 @@
 				JavaBreakpointConditionEditor.PROP_CONDITION_SUSPEND_POLICY
 		});
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.breakpoints.AbstractDetailPane#createEditor(org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
 	protected AbstractJavaBreakpointEditor createEditor(Composite parent) {
-		return new CompositeBreakpointEditor(new AbstractJavaBreakpointEditor[] 
+		return new CompositeBreakpointEditor(new AbstractJavaBreakpointEditor[]
 			{new MethodBreakpointEditor(), new JavaBreakpointConditionEditor(null)});
 	}
 
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/MethodBreakpointEditor.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/MethodBreakpointEditor.java
index 293c495..6ec52c5 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/MethodBreakpointEditor.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/MethodBreakpointEditor.java
@@ -21,18 +21,18 @@
 
 /**
  * Editor for method entry/exit breakpoint.
- * 
+ *
  * @since 3.6
  */
 public class MethodBreakpointEditor extends StandardJavaBreakpointEditor {
-	
+
 	// Method entry/exit editors
 	private Button fEntry;
 	private Button fExit;
 
 	public static final int PROP_ENTRY = 0x1012;
 	public static final int PROP_EXIT = 0x1013;
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.breakpoints.StandardJavaBreakpointEditor#createControl(org.eclipse.swt.widgets.Composite)
 	 */
@@ -43,10 +43,10 @@
 		super.createControl(composite);
 		Composite watchComp = SWTFactory.createComposite(composite, parent.getFont(), 3, 1, 0, 0, 0);
 		fEntry = createSusupendPropertyEditor(watchComp, processMnemonics(PropertyPageMessages.JavaLineBreakpointPage_10), PROP_ENTRY);
-		fExit = createSusupendPropertyEditor(watchComp, processMnemonics(PropertyPageMessages.JavaLineBreakpointPage_11), PROP_EXIT); 
+		fExit = createSusupendPropertyEditor(watchComp, processMnemonics(PropertyPageMessages.JavaLineBreakpointPage_11), PROP_EXIT);
 		return composite;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.breakpoints.StandardJavaBreakpointEditor#setBreakpoint(org.eclipse.jdt.debug.core.IJavaBreakpoint)
 	 */
@@ -66,7 +66,7 @@
 			fExit.setSelection(false);
 		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.breakpoints.StandardJavaBreakpointEditor#doSave()
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/StandardBreakpointDetailPane.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/StandardBreakpointDetailPane.java
index 506f443..0274459 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/StandardBreakpointDetailPane.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/StandardBreakpointDetailPane.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -15,11 +15,11 @@
 
 /**
  * Suspend policy and hit count detail pane.
- * 
+ *
  * @since 3.6
  */
 public class StandardBreakpointDetailPane extends AbstractDetailPane {
-	
+
 	/**
 	 * Identifier for this detail pane editor
 	 */
@@ -31,7 +31,7 @@
 				StandardJavaBreakpointEditor.PROP_HIT_COUNT_ENABLED,
 				StandardJavaBreakpointEditor.PROP_SUSPEND_POLICY, StandardJavaBreakpointEditor.PROP_TRIGGER_POINT, });
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.breakpoints.AbstractDetailPane#createEditor(org.eclipse.swt.widgets.Composite)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/StandardJavaBreakpointEditor.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/StandardJavaBreakpointEditor.java
index b1a9e39..f5e5bf8 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/StandardJavaBreakpointEditor.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/StandardJavaBreakpointEditor.java
@@ -35,24 +35,24 @@
  * @since 3.6
  */
 public class StandardJavaBreakpointEditor extends AbstractJavaBreakpointEditor {
-	
+
 	private IJavaBreakpoint fBreakpoint;
 	private Button fHitCountButton;
 	private Text fHitCountText;
 	private Button fSuspendThread;
 	private Button fSuspendVM;
 	protected Button fTriggerPointButton;
-	
+
 	/**
      * Property id for hit count enabled state.
      */
     public static final int PROP_HIT_COUNT_ENABLED = 0x1005;
-    
+
 	/**
      * Property id for breakpoint hit count.
      */
-    public static final int PROP_HIT_COUNT = 0x1006;  
-    
+    public static final int PROP_HIT_COUNT = 0x1006;
+
 	/**
      * Property id for suspend policy.
      */
@@ -75,10 +75,10 @@
 	protected Button createCheckButton(Composite parent, String text) {
 		return SWTFactory.createCheckButton(parent, text, null, false, 1);
 	}
-	
+
 	/**
 	 * Creates the button to toggle Triggering point property of the breakpoint
-	 * 
+	 *
 	 * @param parent
 	 *            the parent composite
 	 */
@@ -132,7 +132,7 @@
 			public void widgetSelected(SelectionEvent e) {
 				setDirty(PROP_SUSPEND_POLICY);
 			}
-		});	
+		});
 		fSuspendVM.addSelectionListener(new SelectionAdapter() {
 			@Override
 			public void widgetSelected(SelectionEvent e) {
@@ -147,7 +147,7 @@
 		});
 		return composite;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.breakpoints.AbstractJavaBreakpointEditor#setInput(java.lang.Object)
 	 */
@@ -164,7 +164,7 @@
 			suppressPropertyChanges(false);
 		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.breakpoints.AbstractJavaBreakpointEditor#getInput()
 	 */
@@ -172,10 +172,10 @@
 	public Object getInput() {
 		return fBreakpoint;
 	}
-	
+
 	/**
 	 * Sets the breakpoint to edit. The same editor can be used iteratively for different breakpoints.
-	 * 
+	 *
 	 * @param breakpoint the breakpoint to edit or <code>null</code> if none
 	 * @exception CoreException if unable to access breakpoint attributes
 	 */
@@ -206,13 +206,13 @@
 		fTriggerPointButton.setSelection(isTriggerPoint());
 		setDirty(false);
 	}
-	
+
 	/**
 	 * Returns the current breakpoint being edited or <code>null</code> if none.
-	 * 
+	 *
 	 * @return breakpoint or <code>null</code>
 	 */
-	protected IJavaBreakpoint getBreakpoint() { 
+	protected IJavaBreakpoint getBreakpoint() {
 		return fBreakpoint;
 	}
 
@@ -239,7 +239,7 @@
 			if (fHitCountButton.getSelection()) {
 				try {
 					hitCount = Integer.parseInt(fHitCountText.getText());
-				} 
+				}
 				catch (NumberFormatException e) {
 					throw new CoreException(new Status(IStatus.ERROR, JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.ERROR, PropertyPageMessages.JavaBreakpointPage_0, e));
 				}
@@ -273,7 +273,7 @@
 
 	/**
 	 * Creates and returns a check box button with the given text.
-	 * 
+	 *
 	 * @param parent parent composite
 	 * @param text label
 	 * @param propId property id to fire on modification
@@ -310,7 +310,7 @@
 
 	/**
 	 * Stores the value of the trigger point state in the breakpoint manager.
-	 * 
+	 *
 	 * @param breakpoint
 	 *            the breakpoint to be compared with trigger point in the workspace
 	 * @throws CoreException
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/SuspendOnCompilationErrorListener.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/SuspendOnCompilationErrorListener.java
index 264c105..2454eeb 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/SuspendOnCompilationErrorListener.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/SuspendOnCompilationErrorListener.java
@@ -28,11 +28,11 @@
  * Breakpoint listener extension for the "suspend on compilation error" exception breakpoint.
  * Changed to a breakpoint specific listener in 3.5 when breakpoint specific listeners were
  * introduced.
- * 
+ *
  * @since 3.5
  */
 public class SuspendOnCompilationErrorListener implements IJavaBreakpointListener {
-	
+
 	public static final String ID_COMPILATION_ERROR_LISTENER = JDIDebugUIPlugin.getUniqueIdentifier() + ".compilationErrorListener"; //$NON-NLS-1$
 
 	/* (non-Javadoc)
@@ -77,7 +77,7 @@
 		        return DONT_SUSPEND;
 		    }
 		}
-		return DONT_SUSPEND;		
+		return DONT_SUSPEND;
 	}
 
 	/* (non-Javadoc)
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/SuspendOnUncaughtExceptionListener.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/SuspendOnUncaughtExceptionListener.java
index 95c3b5e..a32913d 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/SuspendOnUncaughtExceptionListener.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/SuspendOnUncaughtExceptionListener.java
@@ -26,11 +26,11 @@
  * Breakpoint listener extension for the "suspend on uncaught exceptions" exception breakpoint.
  * Changed to a breakpoint specific listener in 3.5 when breakpoint specific listeners were
  * introduced.
- * 
+ *
  * @since 3.5
  */
 public class SuspendOnUncaughtExceptionListener implements IJavaBreakpointListener {
-	
+
 	public static final String ID_UNCAUGHT_EXCEPTION_LISTENER = JDIDebugUIPlugin.getUniqueIdentifier() + ".uncaughtExceptionListener"; //$NON-NLS-1$
 
 	/* (non-Javadoc)
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/ToggleClassPrepareBreakpointAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/ToggleClassPrepareBreakpointAction.java
index 64f6237..8cb708f 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/ToggleClassPrepareBreakpointAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/ToggleClassPrepareBreakpointAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -32,13 +32,13 @@
 
 /**
  * Toggles a class prepare breakpoint for a selected type
- * 
+ *
  * @since 3.0
  */
 public class ToggleClassPrepareBreakpointAction implements IObjectActionDelegate,	IActionDelegate2 {
-	
+
 	private ISelection fSelection;
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.IObjectActionDelegate#setActivePart(org.eclipse.jface.action.IAction, org.eclipse.ui.IWorkbenchPart)
 	 */
@@ -85,15 +85,15 @@
 					}
 				}
 				if (existing != null) {
-					existing.delete(); 
+					existing.delete();
 				} else {
 					int kind = IJavaClassPrepareBreakpoint.TYPE_CLASS;
 					if (!type.isClass()) {
 						kind = IJavaClassPrepareBreakpoint.TYPE_INTERFACE;
 					}
-					HashMap<String, Object> map = new HashMap<String, Object>(10);
+					HashMap<String, Object> map = new HashMap<>(10);
 					BreakpointUtils.addJavaBreakpointAttributes(map, type);
-					
+
 					ISourceRange range= type.getNameRange();
 					int start= -1;
 					int end= -1;
@@ -104,7 +104,7 @@
 					JDIDebugModel.createClassPrepareBreakpoint(BreakpointUtils.getBreakpointResource(type), type.getFullyQualifiedName(), kind, start, end, true, map);
 				}
 			} catch (CoreException e) {
-				
+
 			}
 		}
 	}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/WatchpointDetailPane.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/WatchpointDetailPane.java
index 12e1713..9c2c8fb 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/WatchpointDetailPane.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/WatchpointDetailPane.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -16,11 +16,11 @@
 
 /**
  * Watchpoint detail pane. Suspend on access or modification.
- * 
+ *
  * @since 3.6
  */
 public class WatchpointDetailPane extends AbstractDetailPane {
-	
+
 	/**
 	 * Identifier for this detail pane editor
 	 */
@@ -37,7 +37,7 @@
 				JavaBreakpointConditionEditor.PROP_CONDITION_SUSPEND_POLICY
 		});
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.breakpoints.AbstractDetailPane#createEditor(org.eclipse.swt.widgets.Composite)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/WatchpointEditor.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/WatchpointEditor.java
index e36bdb8..0d1398c 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/WatchpointEditor.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/breakpoints/WatchpointEditor.java
@@ -23,13 +23,13 @@
  * @since 3.6
  */
 public class WatchpointEditor extends StandardJavaBreakpointEditor {
-	
+
 	/**
      * Property id for access/modification suspend.
      */
     public static final int PROP_ACCESS = 0x1010;
     public static final int PROP_MODIFICATION = 0x1011;
-	
+
 	// Watchpoint editors
 	private Button fAccess;
 	private Button fModification;
@@ -47,7 +47,7 @@
 		fModification = createSusupendPropertyEditor(watchComp, processMnemonics(PropertyPageMessages.JavaLineBreakpointPage_8), PROP_MODIFICATION);
 		return container;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.breakpoints.StandardJavaBreakpointEditor#setBreakpoint(org.eclipse.jdt.debug.core.IJavaBreakpoint)
 	 */
@@ -67,7 +67,7 @@
 			fModification.setSelection(false);
 		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.breakpoints.StandardJavaBreakpointEditor#doSave()
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/AbstractClasspathEntry.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/AbstractClasspathEntry.java
index c7d2593..263b706 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/AbstractClasspathEntry.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/AbstractClasspathEntry.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -16,7 +16,7 @@
 
 public abstract class AbstractClasspathEntry implements IClasspathEntry {
 
-	protected List<IClasspathEntry> childEntries = new ArrayList<IClasspathEntry>();
+	protected List<IClasspathEntry> childEntries = new ArrayList<>();
 	protected IClasspathEntry parent = null;
 
 	/* (non-Javadoc)
@@ -57,7 +57,7 @@
 	public IClasspathEntry getParent() {
 		return parent;
 	}
-	
+
 	/**
 	 * @param parent
 	 *            the parent to set
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/BootpathFilter.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/BootpathFilter.java
index a843c87..2a05d98 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/BootpathFilter.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/BootpathFilter.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -15,16 +15,16 @@
 
 /**
  * Filters the boothpath entry in a classpath model.
- * 
- * @since 3.0 
+ *
+ * @since 3.0
  */
 public class BootpathFilter extends ViewerFilter {
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
 	 */
 	@Override
-	public boolean select(Viewer viewer, Object parentElement, Object element) { 
+	public boolean select(Viewer viewer, Object parentElement, Object element) {
 		if (element instanceof ClasspathGroup) {
 			ClasspathModel model = (ClasspathModel) parentElement;
 			return !model.getBootstrapEntry().equals(element);
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/ClasspathContentProvider.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/ClasspathContentProvider.java
index 9d2f899..8aff086 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/ClasspathContentProvider.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/ClasspathContentProvider.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -32,11 +32,11 @@
 	private boolean refreshEnabled= false;
 	private boolean refreshRequested= false;
 	private JavaClasspathTab fTab;
-	
+
 	public ClasspathContentProvider(JavaClasspathTab tab) {
 		fTab = tab;
 	}
-		
+
 	public void add(IClasspathEntry parent, IRuntimeClasspathEntry child, Object beforeElement) {
 		Object newEntry= null;
 		if (parent == null || parent == model) {
@@ -45,7 +45,7 @@
 		} else if (parent instanceof ClasspathGroup) {
 			newEntry= model.createEntry(child, parent);
 			((ClasspathGroup)parent).addEntry((ClasspathEntry)newEntry, beforeElement);
-		} 
+		}
 		if (newEntry != null) {
 			treeViewer.add(parent, newEntry);
 			treeViewer.setExpandedState(parent, true);
@@ -53,7 +53,7 @@
 			refresh();
 		}
 	}
-	
+
 	public void add(int entryType, IRuntimeClasspathEntry child) {
 		Object newEntry= model.addEntry(entryType, child);
 		if (newEntry != null) {
@@ -66,7 +66,7 @@
 		model.removeAll();
 		refresh();
 	}
-	
+
 	private void refresh() {
 		if (refreshEnabled) {
 			treeViewer.refresh();
@@ -75,7 +75,7 @@
 			refreshRequested= true;
 		}
 	}
-	
+
 	public void removeAll(IClasspathEntry parent) {
 		if (parent instanceof ClasspathGroup) {
 			((ClasspathGroup)parent).removeAll();
@@ -94,7 +94,7 @@
 		if (element instanceof ClasspathGroup) {
 			return model;
 		}
-		
+
 		return null;
 	}
 
@@ -108,9 +108,9 @@
 		}
 		if (element instanceof ClasspathGroup) {
 			return ((ClasspathGroup)element).hasEntries();
-			
-		} 
-		
+
+		}
+
 		if (element instanceof ClasspathModel) {
 			return ((ClasspathModel) element).hasEntries();
 		}
@@ -125,7 +125,7 @@
 		return getChildren(inputElement);
 	}
 
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
 	 */
@@ -140,7 +140,7 @@
 	@Override
 	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
 		treeViewer = (TreeViewer) viewer;
-		
+
 		if (newInput != null) {
 			model= (ClasspathModel)newInput;
 		} else {
@@ -166,7 +166,7 @@
 			return ((ClasspathEntry)parentElement).getChildren(fTab.getLaunchConfiguration());
 		}
 		if (parentElement == null) {
-			List<Object> all= new ArrayList<Object>();
+			List<Object> all= new ArrayList<>();
 			Object[] topEntries= model.getEntries();
 			for (int i = 0; i < topEntries.length; i++) {
 				Object object = topEntries[i];
@@ -178,7 +178,7 @@
 			}
 			return all.toArray();
 		}
-		
+
 		return null;
 	}
 
@@ -188,7 +188,7 @@
 		treeViewer.remove(array);
 		refresh();
 	}
-	
+
 	public IClasspathEntry[] getUserClasspathEntries() {
 		return model.getEntries(ClasspathModel.USER);
 	}
@@ -196,7 +196,7 @@
 	public IClasspathEntry[] getBootstrapClasspathEntries() {
 		return model.getEntries(ClasspathModel.BOOTSTRAP);
 	}
-	
+
 	public void handleMove(boolean direction, IClasspathEntry entry) {
 		IClasspathEntry parent = (IClasspathEntry)getParent(entry);
 		parent.moveChild(direction, entry);
@@ -227,7 +227,7 @@
 					model.addEntry(ClasspathModel.BOOTSTRAP, entry);
 					break;
 			}
-		}	
+		}
 		refresh();
 	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/ClasspathEntry.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/ClasspathEntry.java
index 4f0a747..33d2430 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/ClasspathEntry.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/ClasspathEntry.java
@@ -4,10 +4,10 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
- *     Frits Jalvingh - Contribution for Bug 459831 - [launching] Support attaching 
+ *     Frits Jalvingh - Contribution for Bug 459831 - [launching] Support attaching
  *     	external annotations to a JRE container
  *******************************************************************************/
 
@@ -25,7 +25,7 @@
 public class ClasspathEntry extends AbstractClasspathEntry implements IRuntimeClasspathEntry, IAdaptable {
 
 	private IRuntimeClasspathEntry entry= null;
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.IRuntimeClasspathEntry#getJavaProject()
 	 */
@@ -37,7 +37,7 @@
 		this.parent= parent;
 		this.entry= entry;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see java.lang.Object#equals(java.lang.Object)
 	 */
@@ -52,7 +52,7 @@
 			return entry.equals(obj);
 		}
 		return false;
-		
+
 	}
 
 	/* (non-Javadoc)
@@ -84,7 +84,7 @@
 	 */
 	@Override
 	public String getMemento() throws CoreException {
-		return entry.getMemento(); 
+		return entry.getMemento();
 	}
 
 	/* (non-Javadoc)
@@ -165,7 +165,7 @@
 	@Override
 	public void setClasspathProperty(int location) {
 		entry.setClasspathProperty(location);
-		
+
 	}
 
 	/* (non-Javadoc)
@@ -207,17 +207,17 @@
 	public org.eclipse.jdt.core.IClasspathEntry getClasspathEntry() {
 		return entry.getClasspathEntry();
 	}
-	
+
 	public IRuntimeClasspathEntry getDelegate() {
 		return entry;
 	}
-	
+
 	public boolean hasChildren() {
 		IRuntimeClasspathEntry rpe = getDelegate();
 		return rpe instanceof IRuntimeClasspathEntry2 &&
 		 ((IRuntimeClasspathEntry2)rpe).isComposite();
 	}
-	
+
 	public IClasspathEntry[] getChildren(ILaunchConfiguration configuration) {
 		IRuntimeClasspathEntry rpe = getDelegate();
 		if (rpe instanceof IRuntimeClasspathEntry2) {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/ClasspathEntryAdapterFactory.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/ClasspathEntryAdapterFactory.java
index a0dd645..8c46cee 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/ClasspathEntryAdapterFactory.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/ClasspathEntryAdapterFactory.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/ClasspathGroup.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/ClasspathGroup.java
index 007375b..3f713b6 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/ClasspathGroup.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/ClasspathGroup.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -15,15 +15,15 @@
 
 public class ClasspathGroup extends AbstractClasspathEntry {
 	private String name;
-	
+
 	private boolean canBeRemoved= true;
-	
+
 	public ClasspathGroup(String name, IClasspathEntry parent, boolean canBeRemoved) {
 		this.parent= parent;
 		this.name= name;
 		this.canBeRemoved= canBeRemoved;
 	}
-		
+
 	public void addEntry(IClasspathEntry entry, Object beforeEntry) {
 		if (!childEntries.contains(entry)) {
 			int index = -1;
@@ -37,15 +37,15 @@
 			}
 		}
 	}
-	
+
 	public void removeEntry(IClasspathEntry entry) {
 		childEntries.remove(entry);
 	}
-	
+
 	public boolean contains(IClasspathEntry entry) {
 		return childEntries.contains(entry);
 	}
-	
+
 	@Override
 	public String toString() {
 		return name;
@@ -61,7 +61,7 @@
 		}
 		childEntries.clear();
 	}
-	
+
 	public boolean canBeRemoved() {
 		return canBeRemoved;
 	}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/ClasspathLabelProvider.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/ClasspathLabelProvider.java
index 9dd9cfd..ed39a5a 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/ClasspathLabelProvider.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/ClasspathLabelProvider.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -21,7 +21,7 @@
  * Label provider for classpath elements
  */
 public class ClasspathLabelProvider implements ILabelProvider {
-	
+
 	private RuntimeClasspathEntryLabelProvider runtimeClasspathLabelProvider= new RuntimeClasspathEntryLabelProvider();
 
 	/* (non-Javadoc)
@@ -33,7 +33,7 @@
 			ClasspathEntry entry = (ClasspathEntry) element;
 			return runtimeClasspathLabelProvider.getImage(entry);
 		}
-		
+
 		return JavaClasspathTab.getClasspathImage();
 	}
 
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/ClasspathModel.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/ClasspathModel.java
index fbfc61e..563beb1 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/ClasspathModel.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/ClasspathModel.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -16,13 +16,13 @@
 import org.eclipse.jdt.launching.IRuntimeClasspathEntry;
 
 public class ClasspathModel extends AbstractClasspathEntry {
-	
+
 	public static final int BOOTSTRAP= 0;
 	public static final int USER= 1;
-	
+
 	private ClasspathGroup bootstrapEntries;
 	private ClasspathGroup userEntries;
-	
+
 	public Object addEntry(Object entry) {
 		if (entry instanceof ClasspathGroup) {
 			if (!childEntries.contains(entry)) {
@@ -46,7 +46,7 @@
 		childEntries.add(newEntry);
 		return newEntry;
 	}
-	
+
 	public Object addEntry(int entryType, IRuntimeClasspathEntry entry) {
 		IClasspathEntry entryParent= null;
 		switch (entryType) {
@@ -59,7 +59,7 @@
 			default :
 				break;
 		}
-			
+
 		ClasspathEntry newEntry= createEntry(entry, entryParent);
 		Iterator<IClasspathEntry> entries= childEntries.iterator();
 		while (entries.hasNext()) {
@@ -77,13 +77,13 @@
 		} else {
 			childEntries.add(newEntry);
 		}
-		return newEntry;		
+		return newEntry;
 	}
-	
+
 	/**
 	 * Returns the entries of the given type, or an empty
 	 * collection if none.
-	 * 
+	 *
 	 * @param entryType the kind of the entries to get
 	 * @return the entries of the given type, or an empty
 	 * collection if none
@@ -103,7 +103,7 @@
 		}
 		return new IClasspathEntry[0];
 	}
-	
+
 	public IRuntimeClasspathEntry[] getAllEntries() {
 		IClasspathEntry[] boot = getEntries(BOOTSTRAP);
 		IClasspathEntry[] user = getEntries(USER);
@@ -116,32 +116,32 @@
 		}
 		return all;
 	}
-	
+
 	public void remove(Object entry) {
 		childEntries.remove(entry);
 	}
-	
+
 	public ClasspathEntry createEntry(IRuntimeClasspathEntry entry, IClasspathEntry entryParent) {
 		if (entry instanceof ClasspathEntry) {
 			entry = ((ClasspathEntry)entry).getDelegate();
 		}
 		if (entryParent == null) {
 			entryParent= this;
-		} 
+		}
 		return new ClasspathEntry(entry, entryParent);
 	}
 
 	public void removeAll() {
 		if (bootstrapEntries != null) {
 			bootstrapEntries.removeAll();
-		} 
+		}
 		if (userEntries != null) {
 			userEntries.removeAll();
 		}
 	}
-	
+
 	public void removeAll(Object[] entries) {
-		
+
 		for (int i = 0; i < entries.length; i++) {
 			Object object = entries[i];
 			if (object instanceof ClasspathEntry) {
@@ -156,11 +156,11 @@
 			}
 		}
 	}
-	
+
 	public void setBootstrapEntries(IRuntimeClasspathEntry[] entries) {
 		if (bootstrapEntries == null) {
 			getBootstrapEntry();
-		} 
+		}
 		bootstrapEntries.removeAll();
 		for (int i = 0; i < entries.length; i++) {
 			bootstrapEntries.addEntry(new ClasspathEntry(entries[i], bootstrapEntries), null);
@@ -168,13 +168,13 @@
 	}
 
 	private ClasspathGroup createGroupEntry(IRuntimeClasspathEntry[] entries, ClasspathGroup entryParent, String name, boolean canBeRemoved, boolean addEntry) {
-		
+
 		ClasspathGroup group= new ClasspathGroup(name, entryParent, canBeRemoved);
-		
+
 		for (int i = 0; i < entries.length; i++) {
 			group.addEntry(new ClasspathEntry(entries[i], group), null);
 		}
-		
+
 		if (addEntry) {
 			addEntry(group);
 		}
@@ -184,7 +184,7 @@
 	public void setUserEntries(IRuntimeClasspathEntry[] entries) {
 		if (userEntries == null) {
 			getUserEntry();
-		} 
+		}
 		userEntries.removeAll();
 		for (int i = 0; i < entries.length; i++) {
 			userEntries.addEntry(new ClasspathEntry(entries[i], userEntries), null);
@@ -193,22 +193,22 @@
 
 	public IClasspathEntry getBootstrapEntry() {
 		if (bootstrapEntries == null) {
-			String name= ClasspathMessages.ClasspathModel_0; 
+			String name= ClasspathMessages.ClasspathModel_0;
 			bootstrapEntries= createGroupEntry(new IRuntimeClasspathEntry[0], null, name, false, true);
 		}
 		return bootstrapEntries;
 	}
-	
+
 	public IClasspathEntry getUserEntry() {
 		if (userEntries == null) {
-			String name= ClasspathMessages.ClasspathModel_1; 
+			String name= ClasspathMessages.ClasspathModel_1;
 			userEntries= createGroupEntry(new IRuntimeClasspathEntry[0], null, name, false, true);
 		}
 		return userEntries;
 	}
-	
+
 	/**
-	 * Constructs a new classpath model with root entries 
+	 * Constructs a new classpath model with root entries
 	 */
 	public ClasspathModel() {
 		super();
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/DefaultClasspathEntryDialog.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/DefaultClasspathEntryDialog.java
index e8480aa..52c30c2 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/DefaultClasspathEntryDialog.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/DefaultClasspathEntryDialog.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -36,11 +36,11 @@
 
 /**
  * Edits project default classpath.
- * 
+ *
  * @since 3.2
  */
 public class DefaultClasspathEntryDialog extends MessageDialog {
-	
+
 	private DefaultProjectClasspathEntry fEntry;
 	private Button fButton;
 
@@ -55,9 +55,9 @@
 	protected Control createCustomArea(Composite parent) {
 		Composite comp = SWTFactory.createComposite(parent, 1, 1, GridData.FILL_BOTH);
 		boolean wslocked = Platform.getPreferencesService().getBoolean(
-				LaunchingPlugin.ID_PLUGIN, 
-				JavaRuntime.PREF_ONLY_INCLUDE_EXPORTED_CLASSPATH_ENTRIES, 
-				false, 
+				LaunchingPlugin.ID_PLUGIN,
+				JavaRuntime.PREF_ONLY_INCLUDE_EXPORTED_CLASSPATH_ENTRIES,
+				false,
 				null);
 		if(wslocked) {
 			Link link = new Link(comp, SWT.NONE);
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/DefaultClasspathEntryEditor.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/DefaultClasspathEntryEditor.java
index e7e4aa1..5a6106e 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/DefaultClasspathEntryEditor.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/DefaultClasspathEntryEditor.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/IClasspathEditor.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/IClasspathEditor.java
index 2184309..b819a5f 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/IClasspathEditor.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/IClasspathEditor.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -17,25 +17,25 @@
 
 /**
  * Edits classpath entries.
- * 
+ *
  * @since 3.2
  *
  */
 public interface IClasspathEditor {
-	
+
 	/**
 	 * Returns whether the given classpath entry can be edited.
-	 * 
+	 *
 	 * @param configuration launch configuration
 	 * @param entries runtime classpath entry
 	 * @return whether the entries can be edited
 	 */
 	public boolean canEdit(ILaunchConfiguration configuration, IRuntimeClasspathEntry[] entries);
-	
+
 	/**
 	 * Returns replacement entries for the given entries, after editing them,
 	 * or <code>null</code> if the edit was cancelled.
-	 * 
+	 *
 	 * @param shell shell on which to open dialogs
 	 * @param configuration launch configuration
 	 * @param entries runtime classpath entries
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/IClasspathEntry.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/IClasspathEntry.java
index 751dec9..4d7ef4f 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/IClasspathEntry.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/IClasspathEntry.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -13,28 +13,28 @@
 
 
 public interface IClasspathEntry {
-	
+
 	/**
 	 * Returns the classpath entries that are the children of this classpath entry
-	 * 
+	 *
 	 * @return the child classpath entries of this entry
 	 */
 	public IClasspathEntry[] getEntries();
-	
+
 	/**
 	 * Returns whether this classpath entries has child entries.
-	 * 
+	 *
 	 * @return whether <code>true</code> if this classpath entry has childern, <code>false</code> otherwise.
 	 */
 	public boolean hasEntries();
-	
+
 	/**
 	 * Returns the parent of this classpath entry
-	 * 
+	 *
 	 * @return the parent of this classpath entry, or <code>null</code> if none.
 	 */
 	public IClasspathEntry getParent();
-	
+
 	/**
 	 * Move this entries child entry in the direction indicated.
 	 * @param up if <code>true</code> move the child up one position in the order of the entries.
@@ -42,10 +42,10 @@
 	 * @param child the child entry to move
 	 */
 	public void moveChild(boolean up, IClasspathEntry child);
-	
+
 	/**
 	 * Returns whether this entry is editable.
-	 * 
+	 *
 	 * @return whether this entry is editable
 	 */
 	public boolean isEditable();
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/RuntimeClasspathViewer.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/RuntimeClasspathViewer.java
index 3299fb8..d66cecf 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/RuntimeClasspathViewer.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/RuntimeClasspathViewer.java
@@ -1,20 +1,22 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2015 IBM Corporation and others.
+ * Copyright (c) 2000, 2017 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui.classpath;
- 
+
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Iterator;
 import java.util.List;
 
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.ListenerList;
 import org.eclipse.core.runtime.preferences.IEclipsePreferences;
 import org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener;
@@ -27,8 +29,8 @@
 import org.eclipse.jdt.internal.debug.ui.launcher.IEntriesChangedListener;
 import org.eclipse.jdt.internal.launching.LaunchingPlugin;
 import org.eclipse.jdt.launching.IRuntimeClasspathEntry;
-import org.eclipse.jface.dialogs.IDialogConstants;
 import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.TreeViewer;
@@ -37,24 +39,26 @@
 import org.eclipse.swt.events.DisposeListener;
 import org.eclipse.swt.events.KeyAdapter;
 import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.dialogs.FilteredTree;
+import org.eclipse.ui.dialogs.PatternFilter;
+import org.eclipse.ui.progress.WorkbenchJob;
 
 /**
  * A viewer that displays and manipulates runtime classpath entries.
  */
-public class RuntimeClasspathViewer extends TreeViewer implements IClasspathViewer {
-		
+public class RuntimeClasspathViewer implements IClasspathViewer {
+
 	/**
 	 * Entry changed listeners
 	 */
 	private ListenerList<IEntriesChangedListener> fListeners = new ListenerList<>();
-	
+
 	private IClasspathEntry fCurrentParent= null;
-	
+
 	private IPreferenceChangeListener fPrefListeners = new IPreferenceChangeListener() {
-		
+
 		@Override
 		public void preferenceChange(PreferenceChangeEvent event) {
 			if (DebugUIPlugin.getStandardDisplay().getThread().equals(Thread.currentThread())) {
@@ -70,31 +74,86 @@
 
 		}
 	};
-		
+
+	private static class RuntimeClasspathFilteredTree extends FilteredTree {
+
+		private boolean isFiltering;
+
+		private RuntimeClasspathFilteredTree(Composite parent, PatternFilter filter) {
+			super(parent, 0, filter, true);
+		}
+
+		private boolean hasFilterTextEntered() {
+			return isFiltering;
+		}
+
+		/**
+		 * Called by modify listener -> implicit change listener.
+		 */
+		@Override
+		protected void textChanged() {
+
+			super.textChanged();
+
+			final String filterString = getFilterString();
+			if (null != filterString) {
+				// REVIEW: There are several different ways used to check for empty filter texts:
+				// comparing with "", comparing with IInternalDebugCoreConstants.EMPTY_STRING and checking size of trimmed value.
+				isFiltering = !filterString.trim().isEmpty();
+			} else {
+				isFiltering = false;
+			}
+		}
+
+		@Override
+		protected WorkbenchJob doCreateRefreshJob() {
+			final WorkbenchJob job = super.doCreateRefreshJob();
+
+			return new WorkbenchJob("Classpath filter refresh") { //$NON-NLS-1$
+
+				@Override
+				public IStatus runInUIThread(IProgressMonitor monitor) {
+					final IStatus status = job.runInUIThread(monitor);
+
+					if (!isFiltering) {
+						getViewer().expandToLevel(2);
+					}
+
+					return status;
+				}
+			};
+		}
+	}
+
+	private final RuntimeClasspathFilteredTree fTree;
+
+	public TreeViewer getTreeViewer() {
+		return fTree.getViewer();
+	}
+
 	/**
 	 * Creates a runtime classpath viewer with the given parent.
 	 *
 	 * @param parent the parent control
 	 */
 	public RuntimeClasspathViewer(Composite parent) {
-		super(parent);
-		
-		GridData data = new GridData(GridData.FILL_BOTH);
-		data.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH;
-		data.heightHint = getTree().getItemHeight();
-		getTree().setLayoutData(data);
-		
-		getTree().addKeyListener(new KeyAdapter() {
+
+		final PatternFilter filter = new PatternFilter();
+		filter.setIncludeLeadingWildcard(true);
+		fTree = new RuntimeClasspathFilteredTree(parent, filter);
+
+		getTreeViewer().getTree().addKeyListener(new KeyAdapter() {
 			@Override
 			public void keyPressed(KeyEvent event) {
-				if (updateSelection(RuntimeClasspathAction.REMOVE, (IStructuredSelection)getSelection()) && event.character == SWT.DEL && event.stateMask == 0) {
-					List<?> selection= getSelectionFromWidget();
-					getClasspathContentProvider().removeAll(selection);
+				if (updateSelection(RuntimeClasspathAction.REMOVE, (IStructuredSelection) getSelection()) && event.character == SWT.DEL
+						&& event.stateMask == 0) {
+					getClasspathContentProvider().removeAll(((IStructuredSelection) getSelectedEntries()).toList());
 					notifyChanged();
 				}
 			}
 		});
-		getTree().addDisposeListener(new DisposeListener() {
+
+		fTree.addDisposeListener(new DisposeListener() {
 			@Override
 			public void widgetDisposed(DisposeEvent e) {
 				IEclipsePreferences prefs = InstanceScope.INSTANCE.getNode(LaunchingPlugin.ID_PLUGIN);
@@ -107,7 +166,7 @@
 		if(prefs != null) {
 			prefs.addPreferenceChangeListener(fPrefListeners);
 		}
-	}	
+	}
 
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.launcher.IClasspathViewer#setEntries(org.eclipse.jdt.launching.IRuntimeClasspathEntry[])
@@ -121,7 +180,7 @@
 		getClasspathContentProvider().setRefreshEnabled(true);
 		notifyChanged();
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.launcher.IClasspathViewer#getEntries()
 	 */
@@ -129,10 +188,11 @@
 	public IRuntimeClasspathEntry[] getEntries() {
 		return getClasspathContentProvider().getModel().getAllEntries();
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.launcher.IClasspathViewer#addEntries(org.eclipse.jdt.launching.IRuntimeClasspathEntry[])
 	 */
+	@SuppressWarnings("unlikely-arg-type")
 	@Override
 	public void addEntries(IRuntimeClasspathEntry[] entries) {
 		getClasspathContentProvider().setRefreshEnabled(false);
@@ -144,15 +204,15 @@
 			if (!existingEntries.contains(entries[i])) {
 				getClasspathContentProvider().add(fCurrentParent, entries[i], beforeElement);
 			}
-		} 
+		}
 		getClasspathContentProvider().setRefreshEnabled(true);
 		notifyChanged();
 	}
-	
+
 	private boolean resolveCurrentParent(ISelection selection) {
 		fCurrentParent= null;
 		Iterator<?> selected= ((IStructuredSelection)selection).iterator();
-		
+
 		while (selected.hasNext()) {
 			Object element = selected.next();
 			if (element instanceof ClasspathEntry) {
@@ -176,7 +236,7 @@
 		}
 		return true;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.launcher.IClasspathViewer#isEnabled()
 	 */
@@ -184,25 +244,25 @@
 	public boolean isEnabled() {
 		return true;
 	}
-	
+
 	/**
 	 * Sets the launch configuration context for this viewer, if any
 	 * @param configuration the backing {@link ILaunchConfiguration}
 	 */
 	public void setLaunchConfiguration(ILaunchConfiguration configuration) {
-		if (getLabelProvider() != null) {
-			((ClasspathLabelProvider)getLabelProvider()).setLaunchConfiguration(configuration);
+		if (getTreeViewer().getLabelProvider() != null) {
+			((ClasspathLabelProvider) getTreeViewer().getLabelProvider()).setLaunchConfiguration(configuration);
 		}
 	}
-	
+
 	public void addEntriesChangedListener(IEntriesChangedListener listener) {
 		fListeners.add(listener);
 	}
-	
+
 	public void removeEntriesChangedListener(IEntriesChangedListener listener) {
 		fListeners.remove(listener);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.launcher.IClasspathViewer#notifyChanged()
 	 */
@@ -212,10 +272,11 @@
 			listener.entriesChanged(this);
 		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.launcher.IClasspathViewer#indexOf(org.eclipse.jdt.launching.IRuntimeClasspathEntry)
 	 */
+	@SuppressWarnings("unlikely-arg-type")
 	@Override
 	public int indexOf(IRuntimeClasspathEntry entry) {
 		IClasspathEntry[] entries= getClasspathContentProvider().getBootstrapClasspathEntries();
@@ -232,9 +293,9 @@
 				return 1;
 			}
 		}
-		
+
 		return -1;
-		
+
 	}
 
 	/* (non-Javadoc)
@@ -242,11 +303,11 @@
 	 */
 	@Override
 	public Shell getShell() {
-		return getControl().getShell();
+		return getTreeViewer().getControl().getShell();
 	}
-	
+
 	private ClasspathContentProvider getClasspathContentProvider() {
-		return (ClasspathContentProvider)super.getContentProvider();
+		return (ClasspathContentProvider) getTreeViewer().getContentProvider();
 	}
 
 	/* (non-Javadoc)
@@ -254,7 +315,7 @@
 	 */
 	@Override
 	public boolean updateSelection(int actionType, IStructuredSelection selection) {
-		
+
 		if (selection.isEmpty()) {
 			return false;
 		}
@@ -268,8 +329,11 @@
 					}
 				}
 				return selection.size() > 0;
+			case RuntimeClasspathAction.MOVE:
+				if (fTree.hasFilterTextEntered()) {
+					return false;
+				}
 			case RuntimeClasspathAction.REMOVE :
-			case RuntimeClasspathAction.MOVE :
 				selected= selection.iterator();
 				while (selected.hasNext()) {
 					IClasspathEntry entry = selected.next();
@@ -281,7 +345,7 @@
 			default :
 				break;
 		}
-		
+
 		return true;
 	}
 
@@ -290,7 +354,7 @@
 	 */
 	public ISelection getSelectedEntries() {
 		IStructuredSelection selection= (IStructuredSelection)getSelection();
-		List<IClasspathEntry> entries= new ArrayList<IClasspathEntry>(selection.size() * 2);
+		List<IClasspathEntry> entries= new ArrayList<>(selection.size() * 2);
 		Iterator<IClasspathEntry> itr= selection.iterator();
 		while (itr.hasNext()) {
 			IClasspathEntry element = itr.next();
@@ -300,7 +364,33 @@
 				entries.add(element);
 			}
 		}
-		
+
 		return new StructuredSelection(entries);
 	}
+
+	@Override
+	public void addSelectionChangedListener(ISelectionChangedListener listener) {
+		getTreeViewer().addSelectionChangedListener(listener);
+	}
+
+	@Override
+	public ISelection getSelection() {
+		return getTreeViewer().getSelection();
+	}
+
+	@Override
+	public void removeSelectionChangedListener(ISelectionChangedListener listener) {
+		getTreeViewer().removeSelectionChangedListener(listener);
+	}
+
+	@Override
+	public void setSelection(ISelection selection) {
+		getTreeViewer().setSelection(selection);
+	}
+
+	@Override
+	public void refresh(Object entry) {
+		getTreeViewer().refresh();
+	}
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/VariableClasspathEntryAdapterFactory.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/VariableClasspathEntryAdapterFactory.java
index 6a02cc2..bf5a6f9 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/VariableClasspathEntryAdapterFactory.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/VariableClasspathEntryAdapterFactory.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/VariableClasspathEntryWorkbenchAdapter.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/VariableClasspathEntryWorkbenchAdapter.java
index e59a15c..2651eaa 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/VariableClasspathEntryWorkbenchAdapter.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/classpath/VariableClasspathEntryWorkbenchAdapter.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,7 +18,7 @@
 
 /**
  * Workbench adapter for a string substitution runtime classpath entry.
- * 
+ *
  * @since 3.0
  */
 public class VariableClasspathEntryWorkbenchAdapter implements IWorkbenchAdapter {
@@ -39,7 +39,7 @@
 		}
 		return null;
 	}
-		
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.model.IWorkbenchAdapter#getLabel(java.lang.Object)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/AutoFormatSettingAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/AutoFormatSettingAction.java
index 0deacda..b612465 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/AutoFormatSettingAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/AutoFormatSettingAction.java
@@ -24,14 +24,14 @@
 	private IPreferenceStore fPreferenceStore;
 
 	public AutoFormatSettingAction(JavaStackTraceConsolePage page) {
-		super(ConsoleMessages.AutoFormatSettingAction_0, SWT.TOGGLE); 
+		super(ConsoleMessages.AutoFormatSettingAction_0, SWT.TOGGLE);
 		fPage = page;
-		
-		setToolTipText(ConsoleMessages.AutoFormatSettingAction_1);  
+
+		setToolTipText(ConsoleMessages.AutoFormatSettingAction_1);
 		setImageDescriptor(JavaDebugImages.getImageDescriptor(JavaDebugImages.IMG_ELCL_AUTO_FORMAT));
 		setHoverImageDescriptor(JavaDebugImages.getImageDescriptor(JavaDebugImages.IMG_ELCL_AUTO_FORMAT));
         PlatformUI.getWorkbench().getHelpSystem().setHelp(this, IJavaDebugHelpContextIds.CONSOLE_AUTOFORMAT_STACKTRACES_ACTION);
-        
+
         fPreferenceStore = JDIDebugUIPlugin.getDefault().getPreferenceStore();
         boolean checked = fPreferenceStore.getBoolean(IJDIPreferencesConstants.PREF_AUTO_FORMAT_JSTCONSOLE);
 		setChecked(checked);
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/FormatStackTraceActionDelegate.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/FormatStackTraceActionDelegate.java
index dd200c2..eaca788 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/FormatStackTraceActionDelegate.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/FormatStackTraceActionDelegate.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,12 +18,12 @@
 import org.eclipse.ui.console.IConsoleView;
 
 public class FormatStackTraceActionDelegate implements IViewActionDelegate {
-    
+
     private JavaStackTraceConsole fConsole;
     private IConsoleView fView;
-    
+
     public FormatStackTraceActionDelegate() {}
-    
+
     public FormatStackTraceActionDelegate(JavaStackTraceConsole console) {
         fConsole = console;
     }
@@ -54,10 +54,10 @@
 			}
     	}
     }
-    
+
     /* (non-Javadoc)
      * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection)
      */
     @Override
-	public void selectionChanged(IAction action, ISelection selection) {}      
+	public void selectionChanged(IAction action, ISelection selection) {}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaConsoleTracker.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaConsoleTracker.java
index 1c1c254..5c06eb2 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaConsoleTracker.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaConsoleTracker.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -21,9 +21,9 @@
  * Provides links for stack traces
  */
 public class JavaConsoleTracker implements IPatternMatchListenerDelegate {
-	
+
 	/**
-	 * The console associated with this line tracker 
+	 * The console associated with this line tracker
 	 */
 	private TextConsole fConsole;
 
@@ -42,7 +42,7 @@
 	public void disconnect() {
         fConsole = null;
     }
-    
+
     protected TextConsole getConsole() {
         return fConsole;
     }
@@ -56,7 +56,7 @@
             int offset = event.getOffset();
             int length = event.getLength();
             IHyperlink link = new JavaStackTraceHyperlink(fConsole);
-            fConsole.addHyperlink(link, offset+1, length-2);   
+            fConsole.addHyperlink(link, offset+1, length-2);
         } catch (BadLocationException e) {
         }
     }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaExceptionConsoleTracker.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaExceptionConsoleTracker.java
index 8f0f05a..51b9ae3 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaExceptionConsoleTracker.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaExceptionConsoleTracker.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -17,11 +17,11 @@
 
 /**
  * creates JavaExceptionHyperLinks
- * 
+ *
  * @since 3.1
  */
 public class JavaExceptionConsoleTracker extends JavaConsoleTracker {
-    
+
     /* (non-Javadoc)
      * @see org.eclipse.ui.console.IPatternMatchListenerDelegate#matchFound(org.eclipse.ui.console.PatternMatchEvent)
      */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaExceptionHyperLink.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaExceptionHyperLink.java
index 53743d8..272e916 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaExceptionHyperLink.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaExceptionHyperLink.java
@@ -41,7 +41,7 @@
 
 	/**
 	 * Constructs a new hyper link
-	 * 
+	 *
 	 * @param console
 	 *            the console the link is contained in
 	 * @param exceptionName
@@ -80,7 +80,7 @@
 
 	/**
 	 * Show the properties dialog for the given breakpoint.
-	 * 
+	 *
 	 * @param exceptionBreakpoint
 	 */
 	private void showProperties(IJavaExceptionBreakpoint breakpoint) {
@@ -105,7 +105,7 @@
 			} else if (source instanceof IType) {
 				type = (IType) source;
 			}
-			Map<String, Object> map = new HashMap<String, Object>();
+			Map<String, Object> map = new HashMap<>();
 			if (type != null) {
 				res = BreakpointUtils.getBreakpointResource(type);
 				BreakpointUtils.addJavaBreakpointAttributes(map, type);
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaLikeExtensionsResolver.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaLikeExtensionsResolver.java
index a6f3699..87267b8 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaLikeExtensionsResolver.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaLikeExtensionsResolver.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -17,7 +17,7 @@
 
 /**
  * Resolves to Java-like file extensions for hyperlink matching.
- * 
+ *
  * @since 3.2
  */
 public class JavaLikeExtensionsResolver implements IDynamicVariableResolver {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaNativeConsoleTracker.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaNativeConsoleTracker.java
index 7990ff8..bbf7747 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaNativeConsoleTracker.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaNativeConsoleTracker.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -28,7 +28,7 @@
             int length = event.getLength();
             TextConsole console = getConsole();
             IHyperlink link = new JavaNativeStackTraceHyperlink(console);
-            console.addHyperlink(link, offset+1, length-2);   
+            console.addHyperlink(link, offset+1, length-2);
         } catch (BadLocationException e) {
         }
     }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaNativeStackTraceHyperlink.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaNativeStackTraceHyperlink.java
index 8d825a4..14794f4 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaNativeStackTraceHyperlink.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaNativeStackTraceHyperlink.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -50,8 +50,8 @@
 			}
 			return typeName;
 		}
-		
-        IStatus status = new Status(IStatus.ERROR, JDIDebugUIPlugin.getUniqueIdentifier(), 0, ConsoleMessages.JavaStackTraceHyperlink_Unable_to_parse_type_name_from_hyperlink__5, null); 
+
+        IStatus status = new Status(IStatus.ERROR, JDIDebugUIPlugin.getUniqueIdentifier(), 0, ConsoleMessages.JavaStackTraceHyperlink_Unable_to_parse_type_name_from_hyperlink__5, null);
         throw new CoreException(status);
 	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsole.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsole.java
index f490187..64b8b65 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsole.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsole.java
@@ -45,7 +45,7 @@
  * Provides a stack trace console for Java stack traces
  */
 public class JavaStackTraceConsole extends TextConsole {
-	
+
 	/**
 	 * Provides a partitioner for this console type
 	 */
@@ -67,7 +67,7 @@
         }
 
     }
-	
+
     public final static String CONSOLE_TYPE = "javaStackTraceConsole"; //$NON-NLS-1$
     public final static String FILE_NAME = JDIDebugUIPlugin.getDefault().getStateLocation().toOSString() + File.separator + "stackTraceConsole.txt"; //$NON-NLS-1$
 
@@ -86,7 +86,7 @@
      * Constructor
      */
     public JavaStackTraceConsole() {
-        super(ConsoleMessages.JavaStackTraceConsoleFactory_0, CONSOLE_TYPE, null, true); 
+        super(ConsoleMessages.JavaStackTraceConsoleFactory_0, CONSOLE_TYPE, null, true);
         Font font = JFaceResources.getFont(IDebugUIConstants.PREF_CONSOLE_FONT);
         setFont(font);
         partitioner.connect(getDocument());
@@ -109,7 +109,7 @@
             } catch (IOException e) {
             }
         } else {
-			getDocument().set(ConsoleMessages.JavaStackTraceConsole_0); 
+			getDocument().set(ConsoleMessages.JavaStackTraceConsole_0);
 		}
     }
 
@@ -146,7 +146,7 @@
                     file.delete();
                 }
             }
-        } 
+        }
         catch (IOException e) {}
     }
 
@@ -165,7 +165,7 @@
 	public String getHelpContextId() {
 		return IJavaDebugHelpContextIds.STACK_TRACE_CONSOLE;
 	}
-    
+
     /**
      * @see org.eclipse.ui.console.TextConsole#createPage(org.eclipse.ui.console.IConsoleView)
      */
@@ -173,7 +173,7 @@
 	public IPageBookViewPage createPage(IConsoleView view) {
     	return new JavaStackTraceConsolePage(this, view);
 	}
-    
+
     /**
      * performs the formatting of the stacktrace console
      */
@@ -194,15 +194,15 @@
 	            if (orig != null && orig.length() > 0) {
 	                document.set(format(orig));
 	            }
-	            
+
 				return Status.OK_STATUS;
 			}
 		};
 		job.setSystem(true);
 		job.schedule();
-       
+
     }
-    
+
     /**
      * Underlying format operation
      * @param trace the stack trace to format
@@ -211,12 +211,12 @@
     private String format(String trace) {
         StringTokenizer tokenizer = new StringTokenizer(trace, " \t\n\r\f", true); //$NON-NLS-1$
         StringBuffer formattedTrace = new StringBuffer();
-        
+
         boolean insideAt = false;
         boolean newLine = true;
         int pendingSpaces = 0;
         boolean antTrace = false;
-        
+
         while (tokenizer.hasMoreTokens()) {
             String token = tokenizer.nextToken();
             if (token.length() == 0)
@@ -274,7 +274,7 @@
                     formattedTrace.append(token);
                     pendingSpaces = 0;
                     continue;
-                } else if (c == '[') { 
+                } else if (c == '[') {
                     if(antTrace) {
                         formattedTrace.append("\n"); //$NON-NLS-1$
                     }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsoleFactory.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsoleFactory.java
index 32f197a..7bb12b2 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsoleFactory.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsoleFactory.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -12,7 +12,7 @@
 
 /**
  * Creates a new console into which users can paste stack traces and follow the hyperlinks.
- * 
+ *
  * @deprecated use org.eclipse.jdt.debug.ui.console.JavaStackTraceConsoleFactory
  * @since 3.1
  */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsolePage.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsolePage.java
index f5d6613..f86db62 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsolePage.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsolePage.java
@@ -20,7 +20,7 @@
 import org.eclipse.ui.console.TextConsoleViewer;
 
 public class JavaStackTraceConsolePage extends TextConsolePage {
-	
+
 	private AutoFormatSettingAction fAutoFormat;
 
 	public JavaStackTraceConsolePage(TextConsole console, IConsoleView view) {
@@ -30,7 +30,7 @@
 	@Override
 	protected void createActions() {
 		super.createActions();
-		
+
 		IActionBars actionBars= getSite().getActionBars();
 		fAutoFormat = new AutoFormatSettingAction(this);
 		IToolBarManager toolBarManager = actionBars.getToolBarManager();
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsoleViewer.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsoleViewer.java
index cf3026f..82985a9 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsoleViewer.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsoleViewer.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -39,7 +39,7 @@
 		super(parent, console);
 		fConsole = console;
 		getTextWidget().setOrientation(SWT.LEFT_TO_RIGHT);
-		
+
 		IPreferenceStore fPreferenceStore = JDIDebugUIPlugin.getDefault().getPreferenceStore();
         fAutoFormat = fPreferenceStore.getBoolean(IJDIPreferencesConstants.PREF_AUTO_FORMAT_JSTCONSOLE);
 	}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceHyperlink.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceHyperlink.java
index be68e48..fa3f73c 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceHyperlink.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceHyperlink.java
@@ -43,7 +43,7 @@
  * A hyper-link from a stack trace line of the form "*(*.java:*)"
  */
 public class JavaStackTraceHyperlink implements IHyperlink {
-	
+
 	private TextConsole fConsole;
 
 	/**
@@ -80,20 +80,20 @@
             typeName = getTypeName(linkText);
             lineNumber = getLineNumber(linkText);
         } catch (CoreException e1) {
-            ErrorDialog.openError(JDIDebugUIPlugin.getActiveWorkbenchShell(), ConsoleMessages.JavaStackTraceHyperlink_Error, ConsoleMessages.JavaStackTraceHyperlink_Error, e1.getStatus()); 
+            ErrorDialog.openError(JDIDebugUIPlugin.getActiveWorkbenchShell(), ConsoleMessages.JavaStackTraceHyperlink_Error, ConsoleMessages.JavaStackTraceHyperlink_Error, e1.getStatus());
             return;
         }
-		
+
 		// documents start at 0
 		if (lineNumber > 0) {
 			lineNumber--;
 		}
 		startSourceSearch(typeName, lineNumber);
 	}
-	
+
 	/**
 	 * Starts a search for the type with the given name. Reports back to 'searchCompleted(...)'.
-	 * 
+	 *
 	 * @param typeName the type to search for
 	 * @param lineNumber the line number to open the editor on
 	 */
@@ -119,14 +119,14 @@
 				}
 				return Status.OK_STATUS;
 			}
-		
+
 		};
 		search.schedule();
 	}
-	
+
 	/**
 	 * Reported back to from {@link JavaStackTraceHyperlink#startSourceSearch(String, int)} when results are found
-	 * 
+	 *
 	 * @param source the source object
 	 * @param typeName the fully qualified type name
 	 * @param lineNumber the line number in the type
@@ -142,7 +142,7 @@
 						MessageDialog.openInformation(JDIDebugUIPlugin.getActiveWorkbenchShell(), ConsoleMessages.JavaStackTraceHyperlink_Information_1, NLS.bind(ConsoleMessages.JavaStackTraceHyperlink_Source_not_found_for__0__2, new String[] {typeName}));
 					} else {
 						JDIDebugUIPlugin.statusDialog(ConsoleMessages.JavaStackTraceHyperlink_3, status);
-					}			
+					}
 				} else {
 					processSearchResult(source, typeName, lineNumber);
 				}
@@ -152,10 +152,10 @@
 		job.setSystem(true);
 		job.schedule();
 	}
-	
+
 	/**
 	 * The search succeeded with the given result
-	 * 
+	 *
 	 * @param source resolved source object for the search
 	 * @param typeName type name searched for
 	 * @param lineNumber line number on link
@@ -166,7 +166,7 @@
 		if (editorInput != null) {
 			String editorId = presentation.getEditorId(editorInput, source);
 			if (editorId != null) {
-				try { 
+				try {
 					IEditorPart editorPart = JDIDebugUIPlugin.getActivePage().openEditor(editorInput, editorId);
 					if (editorPart instanceof ITextEditor && lineNumber >= 0) {
 						ITextEditor textEditor = (ITextEditor)editorPart;
@@ -182,16 +182,16 @@
 						provider.disconnect(editorInput);
 					}
 				} catch (CoreException e) {
-					JDIDebugUIPlugin.statusDialog(e.getStatus()); 
+					JDIDebugUIPlugin.statusDialog(e.getStatus());
 				}
 			}
-		}		
+		}
 	}
 
 	/**
 	 * Returns the launch associated with this hyper-link, or
 	 *  <code>null</code> if none
-	 * 
+	 *
 	 * @return the launch associated with this hyper-link, or
 	 *  <code>null</code> if none
 	 */
@@ -240,19 +240,19 @@
             if (start >= 0) {
                 qualifier = qualifier.substring(0, start);
             }
-            
+
             if (qualifier.length() > 0) {
                 typeName = qualifier + "." + typeName; //$NON-NLS-1$
             }
             return typeName;
         }
-        IStatus status = new Status(IStatus.ERROR, JDIDebugUIPlugin.getUniqueIdentifier(), 0, ConsoleMessages.JavaStackTraceHyperlink_Unable_to_parse_type_name_from_hyperlink__5, null); 
+        IStatus status = new Status(IStatus.ERROR, JDIDebugUIPlugin.getUniqueIdentifier(), 0, ConsoleMessages.JavaStackTraceHyperlink_Unable_to_parse_type_name_from_hyperlink__5, null);
         throw new CoreException(status);
-    }	
-	
+    }
+
 	/**
 	 * Returns the line number associated with the stack trace or -1 if none.
-	 * 
+	 *
 	 * @param linkText the complete text of the link to be parsed
 	 * @return the line number for the stack trace or -1 if one cannot be computed or has not been provided
 	 * @exception CoreException if unable to parse the number
@@ -268,26 +268,26 @@
 			try {
 				return Integer.parseInt(numText);
 			} catch (NumberFormatException e) {
-				IStatus status = new Status(IStatus.ERROR, JDIDebugUIPlugin.getUniqueIdentifier(), 0, ConsoleMessages.JavaStackTraceHyperlink_Unable_to_parse_line_number_from_hyperlink__6, e); 
+				IStatus status = new Status(IStatus.ERROR, JDIDebugUIPlugin.getUniqueIdentifier(), 0, ConsoleMessages.JavaStackTraceHyperlink_Unable_to_parse_line_number_from_hyperlink__6, e);
 				throw new CoreException(status);
-			}		
+			}
 		}
-		IStatus status = new Status(IStatus.ERROR, JDIDebugUIPlugin.getUniqueIdentifier(), 0, ConsoleMessages.JavaStackTraceHyperlink_Unable_to_parse_line_number_from_hyperlink__6, null); 
-		throw new CoreException(status);			
+		IStatus status = new Status(IStatus.ERROR, JDIDebugUIPlugin.getUniqueIdentifier(), 0, ConsoleMessages.JavaStackTraceHyperlink_Unable_to_parse_line_number_from_hyperlink__6, null);
+		throw new CoreException(status);
 	}
-	
+
 	/**
 	 * Returns the console this link is contained in.
-	 *  
+	 *
 	 * @return console
 	 */
 	protected TextConsole getConsole() {
 		return fConsole;
 	}
-	
+
 	/**
 	 * Returns this link's text
-	 * 
+	 *
 	 * @return the complete text of the link, never <code>null</code>
 	 * @exception CoreException if unable to retrieve the text
 	 */
@@ -296,22 +296,22 @@
             IDocument document = getConsole().getDocument();
 	        IRegion region = getConsole().getRegion(this);
             int regionOffset = region.getOffset();
-            
+
 	        int lineNumber = document.getLineOfOffset(regionOffset);
 	        IRegion lineInformation = document.getLineInformation(lineNumber);
             int lineOffset = lineInformation.getOffset();
 	        String line = document.get(lineOffset, lineInformation.getLength());
-            
+
             int regionOffsetInLine = regionOffset - lineOffset;
 
             int linkEnd = line.indexOf(')', regionOffsetInLine);
             int linkStart = line.lastIndexOf(' ', regionOffsetInLine);
-            
+
             return line.substring(linkStart==-1?0:linkStart+1,linkEnd+1);
 		} catch (BadLocationException e) {
-			IStatus status = new Status(IStatus.ERROR, JDIDebugUIPlugin.getUniqueIdentifier(), 0, ConsoleMessages.JavaStackTraceHyperlink_Unable_to_retrieve_hyperlink_text__8, e); 
+			IStatus status = new Status(IStatus.ERROR, JDIDebugUIPlugin.getUniqueIdentifier(), 0, ConsoleMessages.JavaStackTraceHyperlink_Unable_to_retrieve_hyperlink_text__8, e);
 			throw new CoreException(status);
-		}		
+		}
 	}
 
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTracePageParticipant.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTracePageParticipant.java
index 35227ed..3d709c6 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTracePageParticipant.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTracePageParticipant.java
@@ -31,7 +31,7 @@
  * JavaStackTracePageParticipant
  */
 public class JavaStackTracePageParticipant implements IConsolePageParticipant {
-    
+
     private CloseConsoleAction fCloseAction;
     private FormatStackTraceActionDelegate fFormatAction;
     private IHandlerActivation fHandlerActivation;
@@ -43,10 +43,10 @@
     @Override
 	public void init(IPageBookViewPage page, IConsole console) {
         fCloseAction = new CloseConsoleAction(console);
-        
+
         IToolBarManager manager = page.getSite().getActionBars().getToolBarManager();
         manager.appendToGroup(IConsoleConstants.LAUNCH_GROUP, fCloseAction);
-        
+
         fFormatAction = new FormatStackTraceActionDelegate((JavaStackTraceConsole) console);
     }
 
@@ -74,7 +74,7 @@
         // add EOF submissions
 		IWorkbench workbench = PlatformUI.getWorkbench();
         IHandlerService handlerService = workbench.getAdapter(IHandlerService.class);
-        
+
         IHandler formatHandler = new AbstractHandler() {
             @Override
 			public Object execute(ExecutionEvent event) throws ExecutionException {
@@ -82,9 +82,9 @@
                 return null;
             }
         };
-        
+
         fHandlerActivation = handlerService.activateHandler("org.eclipse.jdt.ui.edit.text.java.format", formatHandler); //$NON-NLS-1$
-		
+
         IContextService contextService = workbench.getAdapter(IContextService.class);
         fContextActivation = contextService.activateContext("org.eclipse.jdt.ui.javaEditorScope"); //$NON-NLS-1$
 	}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/contentassist/CurrentFrameContext.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/contentassist/CurrentFrameContext.java
index c324eeb..b9e53e0 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/contentassist/CurrentFrameContext.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/contentassist/CurrentFrameContext.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
  * Copyright (c) 2005, 2017 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
+ * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -81,7 +81,7 @@
         }
         return super.getLocalVariables();
     }
-    
+
     /* (non-Javadoc)
      * @see org.eclipse.jdt.internal.debug.ui.contentassist.IJavaDebugContentAssistContext#isStatic()
      */
@@ -97,7 +97,7 @@
     /**
      * Returns the currently active stack frame, or <code>null</code>
      * if none.
-     * 
+     *
      * @return the currently active stack frame, or <code>null</code>
      */
     protected IJavaStackFrame getStackFrame() {
@@ -109,5 +109,5 @@
         return frame;
     }
 
-    
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/contentassist/CurrentValueContext.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/contentassist/CurrentValueContext.java
index 0e9b348..f544c1c 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/contentassist/CurrentValueContext.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/contentassist/CurrentValueContext.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
  * Copyright (c) 2005, 2012 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
+ * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -49,7 +49,7 @@
     		// completion in context of Object
     		IJavaType[] types = ((IJavaDebugTarget)value.getDebugTarget()).getJavaTypes("java.lang.Object"); //$NON-NLS-1$
     		if (types.length > 0) {
-    			type = JavaDebugUtils.resolveType(types[0]);  
+    			type = JavaDebugUtils.resolveType(types[0]);
     		}
     	} else {
     		type = JavaDebugUtils.resolveType(value);
@@ -59,10 +59,10 @@
     	}
     	return type;
      }
-    
+
     /**
      * Returns the value for which completions are to be computed for, or <code>null</code> if none.
-     * 
+     *
      * @return the value for which completions are to be computed for, or <code>null</code> if none
      * @throws CoreException if an exception occurs
      */
@@ -71,7 +71,7 @@
         if (stackFrame == null) {
             unableToResolveType();
         }
-        
+
         IWorkbenchWindow window= JDIDebugUIPlugin.getActiveWorkbenchWindow();
         if (window == null) {
             unableToResolveType();
@@ -90,8 +90,8 @@
             if (viewerSelection.size() > 1) {
                 unableToResolveType();
             }
-            Object element= viewerSelection.getFirstElement();  
-            
+            Object element= viewerSelection.getFirstElement();
+
             IValue value= null;
             if (element instanceof IVariable) {
                 IVariable variable = (IVariable)element;
@@ -99,7 +99,7 @@
                 	value= variable.getValue();
                 }
             } else if (element instanceof IExpression) {
-                value= ((IExpression)element).getValue();   
+                value= ((IExpression)element).getValue();
             }
             if (value instanceof IJavaValue) {
     			return (IJavaValue) value;
@@ -147,5 +147,5 @@
 		return super.isStatic();
 	}
 
-    
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/contentassist/DynamicTypeContext.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/contentassist/DynamicTypeContext.java
index 84fed4e..d704654 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/contentassist/DynamicTypeContext.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/contentassist/DynamicTypeContext.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -16,11 +16,11 @@
 /**
  * Code completion for a dynamic type. Code completion is performed relative to the
  * type with no position information, in a non-static context.
- * 
+ *
  * @since 3.2
  */
 public class DynamicTypeContext extends TypeContext {
-	
+
 	/**
 	 * Provides a type in which to perform completions.
 	 * @since 3.2
@@ -29,18 +29,18 @@
 		/**
 		 * Returns the type in which to perform completions or <code>null</code>
 		 * if no type is available.
-		 * 
+		 *
 		 * @return type in which to perform completions or <code>null</code>
 		 * @exception CoreException if a type cannot be resolved
 		 */
 		public IType getType() throws CoreException;
 	}
-	
+
 	private ITypeProvider fTypeProvider;
-	
+
 	/**
 	 * Constructs a completion context on the given type.
-	 * 
+	 *
 	 * @param type type in which to perform completions
 	 */
 	public DynamicTypeContext(ITypeProvider type) {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/contentassist/IJavaDebugContentAssistContext.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/contentassist/IJavaDebugContentAssistContext.java
index 241c4c5..cfba946 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/contentassist/IJavaDebugContentAssistContext.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/contentassist/IJavaDebugContentAssistContext.java
@@ -15,14 +15,14 @@
 
 /**
  * Provides a context for context assist in the Java debugger.
- * 
+ *
  * @since 3.2
  */
 public interface IJavaDebugContentAssistContext {
-	
+
 	/**
 	 * Returns the type in which to perform completions.
-	 * 
+	 *
 	 * @return type in which to perform completions
 	 * @throws CoreException if a type cannot be resolved
 	 */
@@ -32,12 +32,12 @@
 	 * Returns the position within this context's type's source where the snippet
 	 * on which completions are being performed is inserted. This position must not
 	 * be in comments. Returns -1, if the position is not known.
-	 * 
+	 *
 	 * @return position within source where completions are performed or -1
 	 * @throws CoreException if an exception occurs determining the position
 	 */
 	public int getInsertionPosition() throws CoreException;
-	
+
 	/**
 	 * Returns an array (possibly empty) of local variable information.
 	 * If the result is not empty, two arrays are returned. The first
@@ -48,27 +48,27 @@
 	 * Local variable information can be optionally be provided when an insertion
 	 * position is unknown, but local variable information is known.
 	 * </p>
-	 * 
+	 *
 	 * @return arrays of variable names and fully qualified type names of local variables
 	 *   visible at the current scope
 	 * @throws CoreException if an exception occurs determining local variable
 	 *  information
 	 */
 	public String[][] getLocalVariables() throws CoreException;
-	
+
 	/**
 	 * Returns whether the current scope is in a static context.
-	 * 
+	 *
 	 * @return whether the current scope is in a static context
 	 * @throws CoreException if an exception occurs while determining scope
 	 */
 	public boolean isStatic() throws CoreException;
-	
+
 	/**
 	 * Returns the snippet on which code completion is should be performed, given the
 	 * snippet that is currently being edited. Allows implementations to perform any
 	 * special pre-processing on the snippet.
-	 * 
+	 *
 	 * @param snippet the snippet in source viewer on which completion is being performed
 	 * @return the snippet on which to perform code completion
 	 * @throws CoreException
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/contentassist/JavaDebugCompletionProposalCollector.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/contentassist/JavaDebugCompletionProposalCollector.java
index f437071..387579f 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/contentassist/JavaDebugCompletionProposalCollector.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/contentassist/JavaDebugCompletionProposalCollector.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -20,16 +20,16 @@
 /**
  * Proposal collector that filters the special local variable used for content
  * assist on arrays.
- * 
+ *
  * @since 3.2
  */
 public class JavaDebugCompletionProposalCollector extends CompletionProposalCollector {
-	
+
 	private static final char[] fgHiddenLocal = ArrayRuntimeContext.ARRAY_THIS_VARIABLE.toCharArray();
 
 	/**
 	 * Constructs a proposal collector on the given project.
-	 * 
+	 *
 	 * @param project
 	 */
 	public JavaDebugCompletionProposalCollector(IJavaProject project) {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/contentassist/JavaDebugContentAssistProcessor.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/contentassist/JavaDebugContentAssistProcessor.java
index a95ec9a..7bcb278 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/contentassist/JavaDebugContentAssistProcessor.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/contentassist/JavaDebugContentAssistProcessor.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -36,17 +36,17 @@
 /**
  * Completion processor for the Java debugger. This completion processor
  * operates on a client provided context.
- * 
+ *
  * @since 3.2
  */
 public class JavaDebugContentAssistProcessor implements IContentAssistProcessor {
-		
+
 	private JavaDebugCompletionProposalCollector fCollector;
 	private IContextInformationValidator fValidator;
 	private TemplateEngine fJavaEngine;
 	private TemplateEngine fStatementEngine;
     private String fErrorMessage = null;
-	
+
 	private char[] fProposalAutoActivationSet;
 	private CompletionProposalComparator fComparator;
 	private IJavaDebugContentAssistContext fContext;
@@ -63,7 +63,7 @@
 		if (contextType != null) {
 			fStatementEngine= new TemplateEngine(contextType);
 		}
-		
+
 		fComparator= new CompletionProposalComparator();
 		fAssistant= null;
 	}
@@ -85,11 +85,11 @@
         }
         return null;
 	}
-    
+
     /**
      * Sets the error message for why completions could not be resolved.
      * Clients should clear this before computing completions.
-     * 
+     *
      * @param string message
      */
     private void setErrorMessage(String string) {
@@ -125,7 +125,7 @@
 	public IContextInformation[] computeContextInformation(ITextViewer viewer, int offset) {
 		return null;
 	}
-	
+
 	/**
 	 * @see IContentAssistProcessor#computeProposals(ITextViewer, int)
 	 */
@@ -135,7 +135,7 @@
 		try {
 			IType type = fContext.getType();
 			IJavaProject project = type.getJavaProject();
-				
+
 			String[][] locals = fContext.getLocalVariables();
 			int numLocals = 0;
 			if (locals.length > 0) {
@@ -143,50 +143,50 @@
 			}
 			char[][] localVariableNames = new char[numLocals][];
 			char[][] localVariableTypeNames = new char[numLocals][];
-			for (int i = 0; i < numLocals; i++) {			
+			for (int i = 0; i < numLocals; i++) {
 				localVariableNames[i] = locals[0][i].toCharArray();
 				localVariableTypeNames[i] = locals[1][i].toCharArray();
 			}
-			
+
 			ITextSelection selection= (ITextSelection)viewer.getSelectionProvider().getSelection();
-			configureResultCollector(project, selection);	
-			
+			configureResultCollector(project, selection);
+
 			int[] localModifiers= new int[localVariableNames.length];
 			Arrays.fill(localModifiers, 0);
-			
+
 			String snippet = viewer.getDocument().get();
 			char[] charSnippet = fContext.getSnippet(snippet).toCharArray();
 			type.codeComplete(charSnippet, fContext.getInsertionPosition(), documentOffset,
 				 localVariableTypeNames, localVariableNames,
 				 localModifiers, fContext.isStatic(), fCollector);
-			
-			List<IJavaCompletionProposal> total = new ArrayList<IJavaCompletionProposal>();
+
+			List<IJavaCompletionProposal> total = new ArrayList<>();
 			total.addAll(Arrays.asList(fCollector.getJavaCompletionProposals()));
-			
+
 			if (fJavaEngine != null) {
 				fJavaEngine.reset();
 				fJavaEngine.complete(viewer, documentOffset, null);
 				total.addAll(Arrays.asList(fJavaEngine.getResults()));
 			}
-			
+
 			if (fStatementEngine != null) {
 				fStatementEngine.reset();
 				fStatementEngine.complete(viewer, documentOffset, null);
 				total.addAll(Arrays.asList(fStatementEngine.getResults()));
 			}
-		
+
 			 //Order here and not in result collector to make sure that the order
-			 //applies to all proposals and not just those of the compilation unit. 
-			return order(total.toArray(new IJavaCompletionProposal[total.size()]));	
+			 //applies to all proposals and not just those of the compilation unit.
+			return order(total.toArray(new IJavaCompletionProposal[total.size()]));
 		} catch (CoreException x) {
 			setErrorMessage(x.getStatus().getMessage());
 		} finally {
 			releaseCollector();
 		}
-		
+
 		return null;
 	}
-	
+
 	/**
 	 * Order the given proposals.
 	 */
@@ -213,18 +213,18 @@
 		fCollector = new JavaDebugCompletionProposalCollector(project);
 		if (selection.getLength() != 0) {
 			fCollector.setReplacementLength(selection.getLength());
-		} 
+		}
 	}
-	
+
 	/**
 	 * Tells this processor to order the proposals alphabetically.
-	 * 
+	 *
 	 * @param order <code>true</code> if proposals should be ordered.
 	 */
 	public void orderProposalsAlphabetically(boolean order) {
 		fComparator.setOrderAlphabetically(order);
 	}
-	
+
 	/**
 	 * @see IContentAssistProcessor#getCompletionProposalAutoActivationCharacters()
 	 */
@@ -232,25 +232,25 @@
 	public char[] getCompletionProposalAutoActivationCharacters() {
 		return fProposalAutoActivationSet;
 	}
-	
+
 	/**
 	 * Sets this processor's set of characters triggering the activation of the
 	 * completion proposal computation.
-	 * 
+	 *
 	 * @param activationSet the activation set
 	 */
 	public void setCompletionProposalAutoActivationCharacters(char[] activationSet) {
 		fProposalAutoActivationSet= activationSet;
 	}
-	
+
 	/**
 	 * Clears reference to result proposal collector.
 	 */
 	private void releaseCollector() {
 		if (fCollector != null && fCollector.getErrorMessage().length() > 0 && fErrorMessage != null) {
 			setErrorMessage(fCollector.getErrorMessage());
-		}		
+		}
 		fCollector = null;
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/contentassist/TypeContext.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/contentassist/TypeContext.java
index 69a28c5..5c8975b 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/contentassist/TypeContext.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/contentassist/TypeContext.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -19,17 +19,17 @@
 
 /**
  * Code completion for a type with position information and no locals.
- * 
+ *
  * @since 3.2
  */
 public class TypeContext implements IJavaDebugContentAssistContext {
-	
+
 	private IType fType;
 	private int fPosition;
-	
+
 	/**
 	 * Constructs a completion context on the given type.
-	 * 
+	 *
 	 * @param type type in which to perform completions
 	 * @param insertionPoistion position in source to perform completions or -1
 	 */
@@ -51,7 +51,7 @@
 
     /**
      * Throws an exception when unable to resolve a type
-     * 
+     *
      * @throws CoreException
      */
     protected void unableToResolveType() throws CoreException {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/display/DataDisplay.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/display/DataDisplay.java
index 9ace5ef..b1781a2 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/display/DataDisplay.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/display/DataDisplay.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -21,15 +21,15 @@
  * An implementation of a data display for a text viewer
  */
 public class DataDisplay implements IDataDisplay {
-	
+
 	/**
 	 * The text viewer this data display works on
 	 */
 	private ITextViewer fTextViewer;
-	
+
 	/**
 	 * Constructs a data display for the given text viewer.
-	 * 
+	 *
 	 * @param viewer text viewer
 	 */
 	public DataDisplay(ITextViewer viewer) {
@@ -46,7 +46,7 @@
 			document.set(""); //$NON-NLS-1$
 		}
 	}
-	
+
 	/**
 	 * @see IDataDisplay#displayExpression(String)
 	 */
@@ -59,14 +59,14 @@
 			if (offset != document.getLineInformationOfOffset(offset).getOffset()) {
 				expression= System.getProperty("line.separator") + expression.trim(); //$NON-NLS-1$
 			}
-			document.replace(offset, 0, expression);	
-			fTextViewer.setSelectedRange(offset + expression.length(), 0);	
+			document.replace(offset, 0, expression);
+			fTextViewer.setSelectedRange(offset + expression.length(), 0);
 			fTextViewer.revealRange(offset, expression.length());
 		} catch (BadLocationException ble) {
 			JDIDebugUIPlugin.log(ble);
 		}
-	}		
-	
+	}
+
 	/**
 	 * @see IDataDisplay#displayExpressionValue(String)
 	 */
@@ -74,33 +74,33 @@
 	public void displayExpressionValue(String value) {
 		value= System.getProperty("line.separator") + '\t' + value; //$NON-NLS-1$
 		ITextSelection selection= (ITextSelection)fTextViewer.getSelectionProvider().getSelection();
-	
+
 		int offset= selection.getOffset() + selection.getLength();
 		int length= value.length();
 		try {
-			fTextViewer.getDocument().replace(offset, 0, value);	
+			fTextViewer.getDocument().replace(offset, 0, value);
 		} catch (BadLocationException ble) {
 			JDIDebugUIPlugin.log(ble);
 		}
-		fTextViewer.setSelectedRange(offset + length, 0);	
+		fTextViewer.setSelectedRange(offset + length, 0);
 		fTextViewer.revealRange(offset, length);
 	}
 
 	/**
 	 * Sets the text viewer for this data display
-	 * 
+	 *
 	 * @param viewer text viewer
 	 */
 	private void setTextViewer(ITextViewer viewer) {
 		fTextViewer = viewer;
 	}
-	
+
 	/**
 	 * Returns the text viewer for this data display
-	 * 
+	 *
 	 * @return text viewer
 	 */
 	protected ITextViewer getTextViewer() {
 		return fTextViewer;
-	}	
+	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/display/DetailsViewerConfiguration.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/display/DetailsViewerConfiguration.java
index 174413b..518fe0f 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/display/DetailsViewerConfiguration.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/display/DetailsViewerConfiguration.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/display/DisplayView.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/display/DisplayView.java
index 5d670aa..e4db3d8 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/display/DisplayView.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/display/DisplayView.java
@@ -90,7 +90,7 @@
 import org.eclipse.ui.texteditor.IUpdate;
 
 public class DisplayView extends ViewPart implements ITextInputListener, IPerspectiveListener2 {
-		
+
 	class DataDisplay implements IDataDisplay {
 		/**
 		 * @see IDataDisplay#clear()
@@ -102,7 +102,7 @@
 				document.set(""); //$NON-NLS-1$
 			}
 		}
-		
+
 		/**
 		 * @see IDataDisplay#displayExpression(String)
 		 */
@@ -122,7 +122,7 @@
 				JDIDebugUIPlugin.log(ble);
 			}
 		}
-		
+
 		/**
 		 * @see IDataDisplay#displayExpressionValue(String)
 		 */
@@ -142,16 +142,16 @@
 			fSourceViewer.revealRange(offset, length);
 		}
 	}
-		
+
 	protected IDataDisplay fDataDisplay= new DataDisplay();
 	protected IDocumentListener fDocumentListener= null;
-	
+
 	protected JDISourceViewer fSourceViewer;
 	protected IAction fClearDisplayAction;
 	protected DisplayViewAction fContentAssistAction;
 
-	protected Map<String, IAction> fGlobalActions= new HashMap<String, IAction>(4);
-	protected List<String> fSelectionActions= new ArrayList<String>(3);
+	protected Map<String, IAction> fGlobalActions= new HashMap<>(4);
+	protected List<String> fSelectionActions= new ArrayList<>(3);
 
 	protected String fRestoredContents= null;
 	/**
@@ -162,7 +162,7 @@
 	 */
 	private static IMemento fgMemento;
 	private IHandlerActivation fHandlerActivation;
-	
+
 	/**
 	 * @see ViewPart#createChild(IWorkbenchPartContainer)
 	 */
@@ -188,15 +188,15 @@
 				fillContextMenu(mgr);
 			}
 		});
-		
+
 		Menu menu = menuMgr.createContextMenu(fSourceViewer.getTextWidget());
 		fSourceViewer.getTextWidget().setMenu(menu);
 		getSite().registerContextMenu(menuMgr, fSourceViewer.getSelectionProvider());
-		
+
 		getSite().setSelectionProvider(fSourceViewer.getSelectionProvider());
 		PlatformUI.getWorkbench().getHelpSystem().setHelp(fSourceViewer.getTextWidget(), IJavaDebugHelpContextIds.DISPLAY_VIEW);
 		getSite().getWorkbenchWindow().addPerspectiveListener(this);
-		
+
 		initDragAndDrop();
 	}
 
@@ -225,10 +225,10 @@
 			}
 		};
 		doc.addDocumentListener(fDocumentListener);
-		
+
 		return doc;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.IWorkbenchPart#setFocus()
 	 */
@@ -238,48 +238,48 @@
 			fSourceViewer.getControl().setFocus();
 		}
 	}
-	
+
 	/**
 	 * Initialize the actions of this view
 	 */
 	protected void createActions() {
-				
+
 		fClearDisplayAction= new ClearOutputAction(fSourceViewer);
-		
+
 		IAction action= new DisplayViewAction(this, ITextOperationTarget.CUT);
 		action.setText(DisplayMessages.DisplayView_Cut_label);
 		action.setToolTipText(DisplayMessages.DisplayView_Cut_tooltip);
 		action.setDescription(DisplayMessages.DisplayView_Cut_description);
 		setGlobalAction(ActionFactory.CUT.getId(), action);
-		
+
 		action= new DisplayViewAction(this, ITextOperationTarget.COPY);
 		action.setText(DisplayMessages.DisplayView_Copy_label);
 		action.setToolTipText(DisplayMessages.DisplayView_Copy_tooltip);
 		action.setDescription(DisplayMessages.DisplayView_Copy_description);
 		setGlobalAction(ActionFactory.COPY.getId(), action);
-		
+
 		action= new DisplayViewAction(this, ITextOperationTarget.PASTE);
 		action.setText(DisplayMessages.DisplayView_Paste_label);
 		action.setToolTipText(DisplayMessages.DisplayView_Paste_tooltip);
 		action.setDescription(DisplayMessages.DisplayView_Paste_Description);
 		setGlobalAction(ActionFactory.PASTE.getId(), action);
-		
+
 		action= new DisplayViewAction(this, ITextOperationTarget.SELECT_ALL);
 		action.setText(DisplayMessages.DisplayView_SelectAll_label);
 		action.setToolTipText(DisplayMessages.DisplayView_SelectAll_tooltip);
 		action.setDescription(DisplayMessages.DisplayView_SelectAll_description);
 		setGlobalAction(ActionFactory.SELECT_ALL.getId(), action);
-		
+
 		//TODO: Still using "old" resource access
 		ResourceBundle bundle= ResourceBundle.getBundle("org.eclipse.jdt.internal.debug.ui.display.DisplayResourceBundleMessages"); //$NON-NLS-1$
 		FindReplaceAction findReplaceAction = new FindReplaceAction(bundle, "find_replace_action_", this); //$NON-NLS-1$
 		findReplaceAction.setActionDefinitionId(IWorkbenchCommandConstants.EDIT_FIND_AND_REPLACE);
 		setGlobalAction(ActionFactory.FIND.getId(), findReplaceAction);
-		
+
 		fSelectionActions.add(ActionFactory.CUT.getId());
 		fSelectionActions.add(ActionFactory.COPY.getId());
 		fSelectionActions.add(ActionFactory.PASTE.getId());
-		
+
 		fContentAssistAction= new DisplayViewAction(this, ISourceViewer.CONTENTASSIST_PROPOSALS);
 		fContentAssistAction.setActionDefinitionId(ITextEditorActionDefinitionIds.CONTENT_ASSIST_PROPOSALS);
 		fContentAssistAction.setText(DisplayMessages.DisplayView_Co_ntent_Assist_Ctrl_Space_1);
@@ -296,13 +296,13 @@
 				fContentAssistAction.run();
 				return null;
 			}
-			
+
 		};
 
 		IHandlerService handlerService = getSite().getService(IHandlerService.class);
 		fHandlerActivation = handlerService.activateHandler(ITextEditorActionDefinitionIds.CONTENT_ASSIST_PROPOSALS, handler);
 	}
-	
+
 	/**
 	 * Creates this editor's undo/redo actions.
 	 * <p>
@@ -314,7 +314,7 @@
 		IUndoContext undoContext= getUndoContext();
 		if (undoContext != null) {
 			// Use actions provided by global undo/redo
-			
+
 			// Create the undo action
 			OperationHistoryActionHandler undoAction= new UndoActionHandler(getSite(), undoContext);
 			PlatformUI.getWorkbench().getHelpSystem().setHelp(undoAction, IAbstractTextEditorHelpContextIds.UNDO_ACTION);
@@ -328,7 +328,7 @@
 			setGlobalAction(ITextEditorActionConstants.REDO, redoAction);
 		}
 	}
-	
+
 	/**
 	 * Returns this editor's viewer's undo manager undo context.
 	 *
@@ -363,7 +363,7 @@
 	 * Adds the context menu actions for the display view.
 	 */
 	protected void fillContextMenu(IMenuManager menu) {
-		
+
 		if (fSourceViewer.getDocument() == null) {
 			return;
 		}
@@ -388,25 +388,25 @@
 	@SuppressWarnings("unchecked")
 	@Override
 	public <T> T getAdapter(Class<T> required) {
-			
+
 		if (ITextOperationTarget.class.equals(required)) {
 			return (T) fSourceViewer.getTextOperationTarget();
 		}
-		
+
 		if (IFindReplaceTarget.class.equals(required)) {
 			return (T) fSourceViewer.getFindReplaceTarget();
 		}
-			
+
 		if (IDataDisplay.class.equals(required)) {
 			return (T) fDataDisplay;
 		}
 		if (ITextViewer.class.equals(required)) {
 			return (T) fSourceViewer;
 		}
-		
+
 		return super.getAdapter(required);
 	}
-	
+
 	protected void updateActions() {
 		Iterator<String> iterator = fSelectionActions.iterator();
 		while (iterator.hasNext()) {
@@ -416,10 +416,10 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Saves the contents of the display view and the formatting.
-	 * 
+	 *
 	 * @see org.eclipse.ui.IViewPart#saveState(IMemento)
 	 */
 	@Override
@@ -433,10 +433,10 @@
 			memento.putTextData(fRestoredContents);
 		}
 	}
-	
+
 	/**
 	 * Restores the contents of the display view and the formatting.
-	 * 
+	 *
 	 * @see org.eclipse.ui.IViewPart#init(IViewSite, IMemento)
 	 */
 	@Override
@@ -449,10 +449,10 @@
 			fRestoredContents= memento.getTextData();
 		}
 	}
-	
+
     /**
      * Initializes the drag and/or drop adapters for this view.
-     * 
+     *
      * @since 3.4
      */
     protected void initDragAndDrop() {
@@ -466,7 +466,7 @@
         	}
         });
     }
-	
+
 	/**
 	 * Returns the entire trimmed contents of the current document.
 	 * If the contents are "empty" <code>null</code> is returned.
@@ -483,7 +483,7 @@
 	    }
 	    return null;
 	}
-	
+
 	protected final ISelectionChangedListener getSelectionChangedListener() {
 		return new ISelectionChangedListener() {
 				@Override
@@ -492,7 +492,7 @@
 				}
 			};
 	}
-	
+
 	protected void updateSelectionDependentActions() {
 		Iterator<String> iterator= fSelectionActions.iterator();
 		while (iterator.hasNext()) {
@@ -531,10 +531,10 @@
 			fSourceViewer.dispose();
 			fSourceViewer = null;
 		}
-		
+
 		IHandlerService handlerService = getSite().getService(IHandlerService.class);
 		handlerService.deactivateHandler(fHandlerActivation);
-		
+
 		super.dispose();
 	}
 
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/display/DisplayViewAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/display/DisplayViewAction.java
index 00cf43f..7279de4 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/display/DisplayViewAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/display/DisplayViewAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,31 +18,31 @@
 
 
 public class DisplayViewAction extends Action implements IUpdate {
-	
+
 	/** The text operation code */
 	private int fOperationCode= -1;
 	/** The text operation target */
 	private ITextOperationTarget fOperationTarget;
 	/** The text operation target provider */
 	private IAdaptable fTargetProvider;
-	
-	
+
+
 	public DisplayViewAction(ITextOperationTarget target, int operationCode) {
 		super();
 		fOperationTarget= target;
 		fOperationCode= operationCode;
 		update();
 	}
-		
+
 	public DisplayViewAction(IAdaptable targetProvider, int operationCode) {
 		super();
 		fTargetProvider= targetProvider;
 		fOperationCode= operationCode;
 		update();
 	}
-	
+
 	/**
-	 * The <code>TextOperationAction</code> implementation of this 
+	 * The <code>TextOperationAction</code> implementation of this
 	 * <code>IAction</code> method runs the operation with the current
 	 * operation code.
 	 */
@@ -52,9 +52,9 @@
 			fOperationTarget.doOperation(fOperationCode);
 		}
 	}
-	
+
 	/**
-	 * The <code>TextOperationAction</code> implementation of this 
+	 * The <code>TextOperationAction</code> implementation of this
 	 * <code>IUpdate</code> method discovers the operation through the current
 	 * editor's <code>ITextOperationTarget</code> adapter, and sets the
 	 * enabled state accordingly.
@@ -64,7 +64,7 @@
 		if (fOperationTarget == null && fTargetProvider != null && fOperationCode != -1){
 			fOperationTarget = fTargetProvider.getAdapter(ITextOperationTarget.class);
 		}
-	
+
 		boolean isEnabled= (fOperationTarget != null && fOperationTarget.canDoOperation(fOperationCode));
 		setEnabled(isEnabled);
 	}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/display/DisplayViewerConfiguration.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/display/DisplayViewerConfiguration.java
index e8c3da4..fd8ea4a 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/display/DisplayViewerConfiguration.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/display/DisplayViewerConfiguration.java
@@ -32,18 +32,18 @@
  *  The source viewer configuration for the Display view
  */
 public class DisplayViewerConfiguration extends JavaSourceViewerConfiguration {
-		
+
 	public DisplayViewerConfiguration() {
-		super(JDIDebugUIPlugin.getDefault().getJavaTextTools().getColorManager(), 
+		super(JDIDebugUIPlugin.getDefault().getJavaTextTools().getColorManager(),
 				new ChainedPreferenceStore(new IPreferenceStore[] {
 						PreferenceConstants.getPreferenceStore(),
 						EditorsUI.getPreferenceStore()}),
 				null, IJavaPartitions.JAVA_PARTITIONING);
 	}
-	
+
 	/**
 	 * Returns the preference store this source viewer configuration is associated with.
-	 * 
+	 *
 	 * @return
 	 */
 	public IPreferenceStore getTextPreferenceStore() {
@@ -53,7 +53,7 @@
 	public IContentAssistProcessor getContentAssistantProcessor() {
 		return new JavaDebugContentAssistProcessor(new CurrentFrameContext());
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.text.source.SourceViewerConfiguration#getContentAssistant(org.eclipse.jface.text.source.ISourceViewer)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/display/IDataDisplay.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/display/IDataDisplay.java
index 7dfbdd4..18905e3 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/display/IDataDisplay.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/display/IDataDisplay.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -13,18 +13,18 @@
 
 
 public interface IDataDisplay {
-	
+
 	/**
 	 * Clears the content of this data display.
 	 */
 	public void clear();
-	
+
 	/**
 	 * Displays the expression in the content of this data
 	 * display.
 	 */
 	public void displayExpression(String expression);
-	
+
 	/**
 	 * Displays the expression valur in the content of this data
 	 * display.
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/display/JavaInspectExpression.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/display/JavaInspectExpression.java
index f676424..2d75e79 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/display/JavaInspectExpression.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/display/JavaInspectExpression.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui.display;
 
- 
+
 import org.eclipse.core.runtime.PlatformObject;
 import org.eclipse.debug.core.DebugEvent;
 import org.eclipse.debug.core.DebugException;
@@ -35,17 +35,17 @@
  * target terminates.
  */
 public class JavaInspectExpression extends PlatformObject implements IErrorReportingExpression, IDebugEventSetListener {
-	
+
 	/**
 	 * The value of this expression
 	 */
 	private IJavaValue fValue;
-	
+
 	/**
 	 * The code snippet for this expression.
 	 */
 	private String fExpression;
-	
+
 	private IEvaluationResult fResult;
 
 	/**
@@ -54,7 +54,7 @@
 	 * to debug events such that this element will remove
 	 * itself from the expression manager when its debug
 	 * target terminates.
-	 * 
+	 *
 	 * @param expression code snippet
 	 * @param value value of the expression
 	 */
@@ -63,19 +63,19 @@
 		fExpression = expression;
 		DebugPlugin.getDefault().addDebugEventListener(this);
 	}
-	
+
 	/**
 	 * Constructs a new inspect result for the given
 	 * evaluation result, which provides a snippet, value,
 	 * and error messages, if any.
-	 * 
+	 *
 	 * @param result the evaluation result
 	 */
 	public JavaInspectExpression(IEvaluationResult result) {
 		this(result.getSnippet(), result.getValue());
 		fResult= result;
 	}
-	
+
 	/**
 	 * @see IExpression#getExpressionText()
 	 */
@@ -157,7 +157,7 @@
 	 */
 	@Override
 	public void dispose() {
-		DebugPlugin.getDefault().removeDebugEventListener(this);		
+		DebugPlugin.getDefault().removeDebugEventListener(this);
 	}
 
 	/**
@@ -170,12 +170,12 @@
 
 	/**
 	 * @see org.eclipse.debug.core.model.IErrorReportingExpression#getErrorMessages()
-	 */	
+	 */
 	@Override
-	public String[] getErrorMessages() {	
+	public String[] getErrorMessages() {
 		return getErrorMessages(fResult);
 	}
-	
+
 	public static String[] getErrorMessages(IEvaluationResult result) {
 		if (result == null) {
 			return new String[0];
@@ -189,7 +189,7 @@
 			Throwable cause= exception.getStatus().getException();
 			if (cause instanceof InvocationException) {
 				String  nestedMessage= ((InvocationException) cause).exception().referenceType().name();
-				return new String[] { NLS.bind(DisplayMessages.JavaInspectExpression_0, new String[] {nestedMessage}) }; 
+				return new String[] { NLS.bind(DisplayMessages.JavaInspectExpression_0, new String[] {nestedMessage}) };
 			}
 			return new String[] { exception.getMessage() };
 		}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/heapwalking/AllInstancesActionDelegate.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/heapwalking/AllInstancesActionDelegate.java
index 0575925..e6c8b92 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/heapwalking/AllInstancesActionDelegate.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/heapwalking/AllInstancesActionDelegate.java
@@ -67,13 +67,13 @@
 /**
  * Class to provide new function of viewing all live objects of the selected type in the current VM
  * Feature of 1.6 VMs
- * 
+ *
  * @since 3.3
  */
 public class AllInstancesActionDelegate  extends ObjectActionDelegate implements IEditorActionDelegate, IWorkbenchWindowActionDelegate {
 
 	private IWorkbenchWindow fWindow;
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
 	 */
@@ -98,7 +98,7 @@
 						    		IJavaElement[] selectedTypes = ((ICodeAssist)element).codeSelect(selectedWord.getOffset(), selectedWord.getLength());
 						    		// findWord() will only return one element, so only check the first element
 						    		if (selectedTypes.length > 0){
-						    			runForSelection(selectedTypes[0]);  
+						    			runForSelection(selectedTypes[0]);
 						    			return;
 						    		}
 								} catch (JavaModelException e){
@@ -108,7 +108,7 @@
 					    	}
 					    }
 					}
-					
+
 				// Otherwise, get the first selected element and check if it is a type
 				} else if (selection instanceof IStructuredSelection){
 					runForSelection(((IStructuredSelection)selection).getFirstElement());
@@ -118,16 +118,16 @@
 		}
 		report(Messages.AllInstancesActionDelegate_3,getPart());
 	}
-	
+
 	/**
 	 * Resolves a debug reference type for the selected element and then
 	 * runs the action.
-	 * 
+	 *
 	 * @param selectedElement a method, type, or variable
 	 */
 	protected void runForSelection(Object selectedElement){
 		if (selectedElement != null){
-						
+
 			IJavaType type = null;
 			try {
 				// If the element is a constructor, get instances of its declaring type
@@ -165,13 +165,13 @@
 						type = var.getJavaType();
 					}
 				}
-				
+
 			} catch (JavaModelException e){
 				JDIDebugUIPlugin.log(e.getStatus());
 			} catch (DebugException e) {
 				JDIDebugUIPlugin.log(e.getStatus());
 			}
-					
+
 			if(type instanceof JDIReferenceType) {
 				JDIReferenceType rtype = (JDIReferenceType) type;
 				displayInstaces((JDIDebugTarget)rtype.getDebugTarget(), rtype);
@@ -180,33 +180,33 @@
 		}
 		report(Messages.AllInstancesActionDelegate_3,getPart());
 	}
-	
+
 	/**
 	 * No types are loaded in the given target with the specified type name. Displays the result.
-	 * 
+	 *
 	 * @param target target
 	 * @param typeName resolve type name
 	 */
 	protected void displayNoInstances(IJavaDebugTarget target, String typeName) {
 		JDIAllInstancesValue aiv = new JDIAllInstancesValue((JDIDebugTarget)target, null);
-		InspectPopupDialog ipd = new InspectPopupDialog(getShell(), 
-				getAnchor(), 
+		InspectPopupDialog ipd = new InspectPopupDialog(getShell(),
+				getAnchor(),
 				PopupInspectAction.ACTION_DEFININITION_ID,
 				new JavaInspectExpression(NLS.bind(Messages.AllInstancesActionDelegate_2, new String[]{typeName}), aiv));
 		ipd.open();
 	}
-	
+
 	/**
 	 * Display instances of the given resolved type.
-	 * 
+	 *
 	 * @param target target
 	 * @param rtype resolved reference type
 	 */
 	protected void displayInstaces(IJavaDebugTarget target, JDIReferenceType rtype) {
 		try{
 			JDIAllInstancesValue aiv = new JDIAllInstancesValue((JDIDebugTarget)rtype.getDebugTarget(), rtype);
-			InspectPopupDialog ipd = new InspectPopupDialog(getShell(), 
-					getAnchor(), 
+			InspectPopupDialog ipd = new InspectPopupDialog(getShell(),
+					getAnchor(),
 					PopupInspectAction.ACTION_DEFININITION_ID,
 					new JavaInspectExpression(NLS.bind(Messages.AllInstancesActionDelegate_2, new String[]{rtype.getName()}), aiv));
 			ipd.open();
@@ -215,7 +215,7 @@
 			report(Messages.AllInstancesActionDelegate_0,getPart());
 		}
 	}
-	
+
 	 /**
      * Convenience method for printing messages to the status line
      * @param message the message to be displayed
@@ -239,11 +239,11 @@
 
 	/**
 	 * Compute an anchor based on selected item in the tree.
-	 * 
+	 *
 	 * @return anchor point or <code>null</code> if one could not be obtained
 	 */
     protected Point getAnchor() {
-    	
+
     	// If it's a debug view (variables or expressions), get the location of the selected item
     	IDebugView debugView = getPart().getAdapter(IDebugView.class);
 		if (debugView != null){
@@ -257,7 +257,7 @@
 				}
 			}
 		}
-		
+
 		//resolve the current control
 		Control widget = getPart().getAdapter(Control.class);
     	if (widget == null){
@@ -276,7 +276,7 @@
 	        int midOffset = docRange.x + (docRange.y / 2);
 	        Point point = textWidget.getLocationAtOffset(midOffset);
 	        point = textWidget.toDisplay(point);
-	
+
 	        GC gc = new GC(textWidget);
 	        gc.setFont(textWidget.getFont());
 	        int height = gc.getFontMetrics().getHeight();
@@ -292,9 +292,9 @@
 				return tree.toDisplay(new Point(bounds.x, bounds.y + bounds.height));
 			}
 		}
-		return null;    	
+		return null;
     }
-    	
+
     /**
      * Gets the <code>IJavaElement</code> from the editor input
      * @param input the current editor input
@@ -308,13 +308,13 @@
     	//try to get from the working copy manager
     	return DebugWorkingCopyManager.getWorkingCopy(input, false);
     }
-	
-	
+
+
     /**
      * Returns the text editor associated with the given part or <code>null</code>
      * if none. In case of a multi-page editor, this method should be used to retrieve
      * the correct editor to perform the operation on.
-     * 
+     *
      * @param part workbench part
      * @return text editor part or <code>null</code>
      */
@@ -323,14 +323,14 @@
     		return (ITextEditor) part;
     	}
     	return part.getAdapter(ITextEditor.class);
-    }	
-    
+    }
+
     /* (non-Javadoc)
 	 * @see org.eclipse.ui.IEditorActionDelegate#setActiveEditor(org.eclipse.jface.action.IAction, org.eclipse.ui.IEditorPart)
 	 */
 	@Override
 	public void setActiveEditor(IAction action, IEditorPart targetEditor) {
-		setActivePart(action, targetEditor);	
+		setActivePart(action, targetEditor);
 	}
 
 	/* (non-Javadoc)
@@ -340,7 +340,7 @@
 	public void init(IWorkbenchWindow window) {
 		fWindow = window;
 	}
-	
+
 	/**
 	 * @return the shell to use for new popups or <code>null</code>
 	 */
@@ -353,7 +353,7 @@
 		}
 		return null;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.actions.ObjectActionDelegate#getPart()
 	 */
@@ -370,5 +370,5 @@
 		}
 		return null;
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/heapwalking/AllReferencesActionDelegate.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/heapwalking/AllReferencesActionDelegate.java
index 2e486dd..db03007 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/heapwalking/AllReferencesActionDelegate.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/heapwalking/AllReferencesActionDelegate.java
@@ -38,13 +38,13 @@
 
 /**
  * Action to browse all references to selected object.
- * 
+ *
  * @since 3.3
  */
 public class AllReferencesActionDelegate extends ObjectActionDelegate implements IWorkbenchWindowActionDelegate{
 
 	protected IWorkbenchWindow fWindow;
-	
+
 	@Override
 	public void run(IAction action) {
 		IStructuredSelection currentSelection = getCurrentSelection();
@@ -52,8 +52,8 @@
 			IJavaVariable var = (IJavaVariable) currentSelection.getFirstElement();
 			try {
 				JDIReferenceListValue referenceList = new JDIReferenceListValue((IJavaObject) var.getValue());
-				InspectPopupDialog ipd = new InspectPopupDialog(getShell(), 
- getAnchor(getPart().getAdapter(IDebugView.class)), 
+				InspectPopupDialog ipd = new InspectPopupDialog(getShell(),
+ getAnchor(getPart().getAdapter(IDebugView.class)),
 						PopupInspectAction.ACTION_DEFININITION_ID,
 						new JavaInspectExpression(NLS.bind(Messages.AllReferencesActionDelegate_1,new String[]{var.getName()}),referenceList));
 				ipd.open();
@@ -64,10 +64,10 @@
 			JDIDebugUIPlugin.statusDialog(new Status(IStatus.WARNING,JDIDebugUIPlugin.getUniqueIdentifier(),Messages.AllReferencesActionDelegate_0));
 		}
 	}
-	
+
 	/**
 	 * Compute an anchor based on selected item in the tree.
-	 * 
+	 *
 	 * @param view anchor view
 	 * @return anchor point
 	 */
@@ -81,7 +81,7 @@
 				return tree.toDisplay(new Point(bounds.x, bounds.y + bounds.height));
 			}
 		}
-		return control.toDisplay(0, 0);    	
+		return control.toDisplay(0, 0);
     }
 
 	/* (non-Javadoc)
@@ -104,7 +104,7 @@
 		}
 		return null;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.actions.ObjectActionDelegate#getPart()
 	 */
@@ -118,5 +118,5 @@
 		}
 		return null;
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/heapwalking/AllReferencesInViewActionDelegate.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/heapwalking/AllReferencesInViewActionDelegate.java
index 91cdc01..4ba698b 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/heapwalking/AllReferencesInViewActionDelegate.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/heapwalking/AllReferencesInViewActionDelegate.java
@@ -31,14 +31,14 @@
 
 /**
  * Action delegate that turns on/off references being displayed as variables in the view.
- * 
+ *
  * @since 3.3
  */
 public class AllReferencesInViewActionDelegate implements IPreferenceChangeListener, IActionDelegate2, IViewActionDelegate {
 
 	private IAction fAction;
 	private IDebugView fView;
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
 	 */
@@ -54,7 +54,7 @@
 			}
 		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.IActionDelegate2#init(org.eclipse.jface.action.IAction)
 	 */
@@ -66,7 +66,7 @@
 		if(prefs != null) {
 			prefs.addPreferenceChangeListener(this);
 		}
-	}	
+	}
 
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart)
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/heapwalking/InstanceCountActionDelegate.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/heapwalking/InstanceCountActionDelegate.java
index 73c644c..1dadd31 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/heapwalking/InstanceCountActionDelegate.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/heapwalking/InstanceCountActionDelegate.java
@@ -19,11 +19,11 @@
 
 /**
  * Action to display the instance count for a selected type.
- * 
+ *
  * @since 3.6
  */
 public class InstanceCountActionDelegate extends AllInstancesActionDelegate {
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.heapwalking.AllInstancesActionDelegate#displayInstaces(org.eclipse.jdt.debug.core.IJavaDebugTarget, org.eclipse.jdt.internal.debug.core.model.JDIReferenceType)
 	 */
@@ -36,7 +36,7 @@
 			report(Messages.AllInstancesActionDelegate_0,getPart());
 		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.heapwalking.AllInstancesActionDelegate#displayNoInstances(org.eclipse.jdt.debug.core.IJavaDebugTarget, java.lang.String)
 	 */
@@ -44,10 +44,10 @@
 	protected void displayNoInstances(IJavaDebugTarget target, String typeName) {
 		displayNumInstances(typeName, 0);
 	}
-	
+
 	/**
 	 * Displays a message dialog with the number of instances.
-	 * 
+	 *
 	 * @param typeName type name
 	 * @param instanceCount number of instances
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/heapwalking/JavaWatchExpressionFilter.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/heapwalking/JavaWatchExpressionFilter.java
index d5dfb59..17d88d1 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/heapwalking/JavaWatchExpressionFilter.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/heapwalking/JavaWatchExpressionFilter.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -23,9 +23,9 @@
 /**
  * Uses the <code>IWatchExpressionFactoryAdapterExtension</code> to filter when the watch expression
  * action is available based on the variable selected.
- * 
+ *
  * Currently removes the action from <code>JDIPlaceholderVariable</code>s and <code>JDIReferenceListVariable</code>s.
- * 
+ *
  * @since 3.3
  */
 public class JavaWatchExpressionFilter implements IWatchExpressionFactoryAdapterExtension {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/heapwalking/Messages.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/heapwalking/Messages.java
index fa5f51a..2c2b86f 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/heapwalking/Messages.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/heapwalking/Messages.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -21,7 +21,7 @@
 	public static String AllInstancesActionDelegate_0;
 	public static String AllInstancesActionDelegate_2;
 	public static String AllInstancesActionDelegate_3;
-	
+
 	public static String AllReferencesActionDelegate_0;
 	public static String AllReferencesActionDelegate_1;
 
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/AddVMInstallWizard.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/AddVMInstallWizard.java
index 6ac65fa..99ee7a3 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/AddVMInstallWizard.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/AddVMInstallWizard.java
@@ -19,14 +19,14 @@
  * @since 3.3
  */
 public class AddVMInstallWizard extends VMInstallWizard {
-	
+
 	private IWizardPage fTypePage = null;
-	
+
 	private VMStandin fResult = null;
 
 	/**
 	 * Constructs a wizard to add a new VM install.
-	 * 
+	 *
 	 * @param currentInstalls currently existing VMs, used for name validation
 	 */
 	public AddVMInstallWizard(IVMInstall[] currentInstalls) {
@@ -76,6 +76,6 @@
 		return false;
 	}
 
-	
-	
+
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/EEVMPage.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/EEVMPage.java
index 8be24e4..5b47db7 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/EEVMPage.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/EEVMPage.java
@@ -47,11 +47,11 @@
 
 /**
  * Page used to edit an 'EE' VM.
- * 
+ *
  * @since 3.3
  */
 public class EEVMPage extends AbstractVMInstallPage {
-	
+
 	// VM being edited or created
 	private VMStandin fVM;
 	private Text fVMName;
@@ -60,9 +60,9 @@
 	private VMLibraryBlock fLibraryBlock;
 	private IStatus[] fFieldStatus = new IStatus[1];
 	private boolean fIgnoreCallbacks = false;
-	
+
 	/**
-	 * 
+	 *
 	 */
 	public EEVMPage() {
 		super(JREMessages.EEVMPage_0);
@@ -70,14 +70,14 @@
 			fFieldStatus[i] = Status.OK_STATUS;
 		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.dialogs.IDialogPage#getImage()
 	 */
 	@Override
 	public Image getImage() {
 		return JavaDebugImages.get(JavaDebugImages.IMG_WIZBAN_LIBRARY);
-	}	
+	}
 
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
@@ -90,7 +90,7 @@
 		layout.numColumns = 3;
 		composite.setLayout(layout);
 		composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-		
+
 	// VM location
 		SWTFactory.createLabel(composite, JREMessages.EEVMPage_1, 1);
 		fEEFile = SWTFactory.createSingleText(composite, 1);
@@ -113,7 +113,7 @@
 		gd = (GridData) variables.getLayoutData();
 		gd.horizontalSpan = 3;
 		gd.horizontalAlignment = GridData.END;
-	//VM libraries block 
+	//VM libraries block
 		SWTFactory.createLabel(composite, JREMessages.AddVMDialog_JRE_system_libraries__1, 3);
 		fLibraryBlock = new VMLibraryBlock();
 		fLibraryBlock.setWizard(getWizard());
@@ -122,7 +122,7 @@
 		gd = new GridData(GridData.FILL_BOTH);
 		gd.horizontalSpan = 3;
 		libControl.setLayoutData(gd);
-		
+
 		initializeFields();
 	//add the listeners now to prevent them from monkeying with initialized settings
 		fVMName.addModifyListener(new ModifyListener() {
@@ -153,7 +153,7 @@
 				if (file != null && file.isFile()) {
 					text = file.getParentFile().getAbsolutePath();
 				}
-				dialog.setFileName(text); 
+				dialog.setFileName(text);
 				String newPath = dialog.open();
 				if (newPath != null) {
 					fEEFile.setText(newPath);
@@ -171,12 +171,12 @@
 					}
 				}
 			}
-		});		
+		});
 		Dialog.applyDialogFont(composite);
 		setControl(composite);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), IJavaDebugHelpContextIds.EDIT_JRE_EE_FILE_WIZARD_PAGE);	
-	}	
-	
+		PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), IJavaDebugHelpContextIds.EDIT_JRE_EE_FILE_WIZARD_PAGE);
+	}
+
 	/**
 	 * Validates the JRE location
 	 * @return the status after validating the JRE location
@@ -185,11 +185,11 @@
 		String locationName = fEEFile.getText();
 		IStatus s = null;
 		if (locationName.length() == 0) {
-			s = new StatusInfo(IStatus.WARNING, JREMessages.EEVMPage_4); 
+			s = new StatusInfo(IStatus.WARNING, JREMessages.EEVMPage_4);
 		}  else {
 			final File file = new File(locationName);
 			if (!file.exists()) {
-				s = new StatusInfo(IStatus.ERROR, JREMessages.EEVMPage_5); 
+				s = new StatusInfo(IStatus.ERROR, JREMessages.EEVMPage_5);
 			} else {
 				final IStatus[] temp = new IStatus[1];
 				final VMStandin[] standin = new VMStandin[1];
@@ -221,14 +221,14 @@
 		updatePageStatus();
 		return s;
 	}
-	
+
 	/**
 	 * Validates the entered name of the VM
 	 */
 	private void validateVMName() {
 		nameChanged(fVMName.getText());
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.debug.ui.launchConfigurations.AbstractVMInstallPage#finish()
 	 */
@@ -246,7 +246,7 @@
 	public VMStandin getSelection() {
 		return fVM;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.debug.ui.launchConfigurations.AbstractVMInstallPage#setSelection(org.eclipse.jdt.launching.VMStandin)
 	 */
@@ -257,7 +257,7 @@
 		setTitle(JREMessages.EEVMPage_6);
 		setDescription(JREMessages.EEVMPage_7);
 	}
-	
+
 	/**
 	 * initialize fields to the specified VM
 	 * @param vm the VM to initialize from
@@ -266,16 +266,16 @@
 		vm.setName(fVMName.getText());
 		String argString = fVMArgs.getText().trim();
 		if (argString != null && argString.length() > 0) {
-			vm.setVMArgs(argString);			
+			vm.setVMArgs(argString);
 		} else {
 			vm.setVMArgs(null);
 		}
 	}
-	
+
 	/**
 	 * Returns the definition file from the text control or <code>null</code>
 	 * if none.
-	 * 
+	 *
 	 * @return definition file or <code>null</code>
 	 */
 	private File getDefinitionFile() {
@@ -285,7 +285,7 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Creates a unique name for the VMInstallType
 	 * @param vmType the vm install type
@@ -297,8 +297,8 @@
 			id = String.valueOf(System.currentTimeMillis());
 		} while (vmType.findVMInstall(id) != null);
 		return id;
-	}	
-	
+	}
+
 	/**
 	 * Initialize the dialogs fields
 	 */
@@ -321,11 +321,11 @@
 		} finally {
 			fIgnoreCallbacks = false;
 		}
-	}	
-	
+	}
+
 	/**
 	 * Sets the status of the definition file.
-	 * 
+	 *
 	 * @param status definition file status
 	 */
 	private void setDefinitionFileStatus(IStatus status) {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/EditVMInstallWizard.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/EditVMInstallWizard.java
index c315874..efa86d6 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/EditVMInstallWizard.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/EditVMInstallWizard.java
@@ -18,12 +18,12 @@
  * @since 3.3
  */
 public class EditVMInstallWizard extends VMInstallWizard {
-	
+
 	private AbstractVMInstallPage fEditPage;
-	
+
 	/**
 	 * Constructs a wizard to edit the given vm.
-	 * 
+	 *
 	 * @param vm vm to edit
 	 * @param allVMs all VMs being edited
 	 */
@@ -61,5 +61,5 @@
 		return fEditPage.getSelection();
 	}
 
-	
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/ExecutionEnvironmentsLabelProvider.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/ExecutionEnvironmentsLabelProvider.java
index ba182a2..999ffa9 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/ExecutionEnvironmentsLabelProvider.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/ExecutionEnvironmentsLabelProvider.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -21,7 +21,7 @@
  * @since 3.2
  */
 public class ExecutionEnvironmentsLabelProvider extends LabelProvider {
-	
+
 	/**
 	 * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/ExecutionEnvironmentsPreferencePage.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/ExecutionEnvironmentsPreferencePage.java
index b2c8904..5a39b00 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/ExecutionEnvironmentsPreferencePage.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/ExecutionEnvironmentsPreferencePage.java
@@ -45,27 +45,27 @@
 
 /**
  * Sets default VM per execution environment.
- * 
+ *
  * @since 3.2
  */
 public class ExecutionEnvironmentsPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
-	
+
 	/**
-	 * The ID of the page 
-	 * 
+	 * The ID of the page
+	 *
 	 * @since 3.5
 	 */
 	public static final String ID = "org.eclipse.jdt.debug.ui.jreProfiles"; //$NON-NLS-1$
-	
+
 	private TableViewer fProfilesViewer;
 	private CheckboxTableViewer fJREsViewer;
 	private Text fDescription;
-	
+
 	/**
-	 * Working copy "EE Profile -> Default JRE" 
+	 * Working copy "EE Profile -> Default JRE"
 	 */
-	private Map<Object, Object> fDefaults = new HashMap<Object, Object>();
-	
+	private Map<Object, Object> fDefaults = new HashMap<>();
+
 	class JREsContentProvider implements IStructuredContentProvider {
 
 		/* (non-Javadoc)
@@ -89,14 +89,14 @@
 		@Override
 		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
 		}
-		
+
 	}
-															
+
 	public ExecutionEnvironmentsPreferencePage() {
 		super();
 		// only used when page is shown programatically
-		setTitle(JREMessages.JREProfilesPreferencePage_0);	 
-		setDescription(JREMessages.JREProfilesPreferencePage_1); 
+		setTitle(JREMessages.JREProfilesPreferencePage_0);
+		setDescription(JREMessages.JREProfilesPreferencePage_1);
 	}
 
 	/* (non-Javadoc)
@@ -105,10 +105,10 @@
 	@Override
 	public void init(IWorkbench workbench) {
 	}
-	
+
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jface.dialogs.DialogPage(boolean)
 	 */
 	@Override
@@ -150,7 +150,7 @@
 		noDefaultAndApplyButton();
 		// TODO: fix help
 		PlatformUI.getWorkbench().getHelpSystem().setHelp(ancestor, IJavaDebugHelpContextIds.JRE_PROFILES_PAGE);
-		
+
 		// init default mappings
 		IExecutionEnvironmentsManager manager = JavaRuntime.getExecutionEnvironmentsManager();
 		IExecutionEnvironment[] environments = manager.getExecutionEnvironments();
@@ -161,7 +161,7 @@
 				fDefaults.put(environment, install);
 			}
 		}
-		
+
 		Composite container = new Composite(ancestor, SWT.NONE);
 		GridLayout layout = new GridLayout();
 		layout.numColumns = 2;
@@ -172,18 +172,18 @@
 		GridData gd = new GridData(GridData.FILL_BOTH);
 		container.setLayoutData(gd);
 		container.setFont(ancestor.getFont());
-		
+
 		Composite eeContainer = new Composite(container, SWT.NONE);
 		layout = new GridLayout();
 		layout.marginWidth = 0;
 		eeContainer.setLayout(layout);
 		eeContainer.setLayoutData(new GridData(GridData.FILL_BOTH));
-		
+
 		Label label = new Label(eeContainer, SWT.NONE);
 		label.setFont(ancestor.getFont());
 		label.setText(JREMessages.JREProfilesPreferencePage_2);
 		label.setLayoutData(new GridData(SWT.FILL, 0, true, false));
-		
+
 		Table table= new Table(eeContainer, SWT.BORDER | SWT.SINGLE);
 		table.setLayout(layout);
 		table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
@@ -191,48 +191,48 @@
 		fProfilesViewer.setContentProvider(new ArrayContentProvider());
 		fProfilesViewer.setLabelProvider(new ExecutionEnvironmentsLabelProvider());
 		fProfilesViewer.setInput(JavaRuntime.getExecutionEnvironmentsManager().getExecutionEnvironments());
-		
+
 		Composite jreContainer = new Composite(container, SWT.NONE);
 		layout = new GridLayout();
 		layout.marginWidth = 0;
 		jreContainer.setLayout(layout);
 		jreContainer.setLayoutData(new GridData(GridData.FILL_BOTH));
-		
+
 		label = new Label(jreContainer, SWT.NONE);
 		label.setFont(ancestor.getFont());
 		label.setText(JREMessages.JREProfilesPreferencePage_3);
 		label.setLayoutData(new GridData(SWT.FILL, 0, true, false));
-	
+
 		table= new Table(jreContainer, SWT.CHECK | SWT.BORDER | SWT.SINGLE);
 		table.setLayout(layout);
 		table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
 		fJREsViewer = new CheckboxTableViewer(table);
 		fJREsViewer.setContentProvider(new JREsContentProvider());
-		fJREsViewer.setLabelProvider(new JREsEnvironmentLabelProvider(new JREsEnvironmentLabelProvider.IExecutionEnvironmentProvider() {		
+		fJREsViewer.setLabelProvider(new JREsEnvironmentLabelProvider(new JREsEnvironmentLabelProvider.IExecutionEnvironmentProvider() {
 			@Override
 			public IExecutionEnvironment getEnvironment() {
 				return (IExecutionEnvironment) fJREsViewer.getInput();
 			}
 		}));
 		fJREsViewer.setComparator(new JREsEnvironmentComparator());
-		
+
 		label = new Label(container, SWT.NONE);
 		label.setFont(ancestor.getFont());
 		label.setText(JREMessages.JREProfilesPreferencePage_4);
 		label.setLayoutData(new GridData(SWT.FILL, 0, true, false, 2, 1));
-		
+
 		Text text = new Text(container, SWT.READ_ONLY | SWT.WRAP | SWT.BORDER);
 		text.setFont(ancestor.getFont());
 		text.setLayoutData(new GridData(SWT.FILL, 0, true, false, 2, 1));
 		fDescription = text;
-					
+
 		fProfilesViewer.addSelectionChangedListener(new ISelectionChangedListener() {
 			@Override
 			public void selectionChanged(SelectionChangedEvent event) {
 				handleEESelectionAndJREViewer((IStructuredSelection) event.getSelection());
 			}
 		});
-		
+
 		fJREsViewer.addCheckStateListener(new ICheckStateListener() {
 			@Override
 			public void checkStateChanged(CheckStateChangedEvent event) {
@@ -243,14 +243,14 @@
 				} else {
 					fDefaults.remove(fJREsViewer.getInput());
 				}
-		
+
 			}
 		});
-		
+
 		Dialog.applyDialogFont(ancestor);
 		return ancestor;
 	}
-			
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.preference.IPreferencePage#performOk()
 	 */
@@ -270,6 +270,6 @@
 			environment.setDefaultVM(vm);
 		}
 		return super.performOk();
-	}	
-	
+	}
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/IAddVMDialogRequestor.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/IAddVMDialogRequestor.java
index 0ba0672..06adf46 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/IAddVMDialogRequestor.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/IAddVMDialogRequestor.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -21,17 +21,17 @@
 	/**
 	 * Reply whether or not a new VM of the specified name would
 	 * constitute a duplicate.
-	 * 
+	 *
 	 * @param name the name of a potential new VM
 	 * @return whether a new VM with the specified name would be a duplicate VM
 	 */
 	public boolean isDuplicateName(String name);
-	
+
 	/**
 	 * Notification that a VM has been added from the <code>AddVMDialog</code>.
-	 * 
+	 *
 	 * @param vm the added vm
 	 */
 	public void vmAdded(IVMInstall vm);
-	
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/InstalledJREsBlock.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/InstalledJREsBlock.java
index 3bf7111..8929723 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/InstalledJREsBlock.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/InstalledJREsBlock.java
@@ -88,7 +88,7 @@
 import org.eclipse.swt.widgets.TableColumn;
 
 /**
- * A composite that displays installed JRE's in a table. JREs can be 
+ * A composite that displays installed JRE's in a table. JREs can be
  * added, removed, edited, and searched for.
  * <p>
  * This block implements ISelectionProvider - it sends selection change events
@@ -97,10 +97,10 @@
  * </p>
  */
 public class InstalledJREsBlock implements IAddVMDialogRequestor, ISelectionProvider {
-	
+
 	/**
 	 * A listener to know if another page has added a VM install
-	 * 
+	 *
 	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=237709
 	 * @since 3.6.300
 	 */
@@ -140,7 +140,7 @@
 		public void vmRemoved(IVMInstall vm) {
 			//do nothing, we do not want other bundles removing VM installs without user interaction
 		}
-		
+
 		/**
 		 * Refreshes the VM listing after a VM install notification, might not happen on the UI thread
 		 */
@@ -159,67 +159,67 @@
 			}
 		}
 	}
-	
+
 	/**
-	 * Listener for VM changes while the page is open, to ensure we have the latest set 
+	 * Listener for VM changes while the page is open, to ensure we have the latest set
 	 * of {@link IVMInstall}s at all times
-	 * 
+	 *
 	 * @since 3.6.300
 	 */
 	IVMInstallChangedListener fListener = new InstallListener();
-	
+
 	/**
 	 * This block's control
 	 */
 	private Composite fControl;
-	
+
 	/**
 	 * VMs being displayed
 	 */
-	private List<IVMInstall> fVMs = new ArrayList<IVMInstall>(); 
-	
+	private List<IVMInstall> fVMs = new ArrayList<>();
+
 	/**
 	 * The main list control
-	 */ 
+	 */
 	private CheckboxTableViewer fVMList;
-	
+
 	// Action buttons
 	private Button fAddButton;
 	private Button fRemoveButton;
 	private Button fEditButton;
 	private Button fCopyButton;
-	private Button fSearchButton;	
-    
+	private Button fSearchButton;
+
 	// index of column used for sorting
 	private int fSortColumn = 0;
-	
+
 	/**
 	 * Selection listeners (checked JRE changes)
 	 */
 	private ListenerList<ISelectionChangedListener> fSelectionListeners = new ListenerList<>();
-	
+
 	/**
 	 * Previous selection
 	 */
 	private ISelection fPrevSelection = new StructuredSelection();
 
     private Table fTable;
-			
+
 	// Make sure that VMStandin ids are unique if multiple calls to System.currentTimeMillis()
 	// happen very quickly
-	private static String fgLastUsedID;	
-	
+	private static String fgLastUsedID;
+
 	/**
 	 * VM install type id for OSX VMs
 	 */
 	public static final String MACOSX_VM_TYPE_ID = "org.eclipse.jdt.internal.launching.macosx.MacOSXType"; //$NON-NLS-1$
-	
+
 	private String fVMListTimeStamp;
 
-	/** 
+	/**
 	 * Content provider to show a list of JREs
-	 */ 
-	class JREsContentProvider implements IStructuredContentProvider {		
+	 */
+	class JREsContentProvider implements IStructuredContentProvider {
 		@Override
 		public Object[] getElements(Object input) {
 			return fVMs.toArray();
@@ -231,14 +231,14 @@
 		public void dispose() {
 		}
 	}
-	
+
 	/**
 	 * Label provider for installed JREs table.
 	 */
 	class VMLabelProvider extends LabelProvider implements ITableLabelProvider, IFontProvider, IColorProvider {
 
 		Font bold = null;
-		
+
 		/**
 		 * @see ITableLabelProvider#getColumnText(Object, int)
 		 */
@@ -257,8 +257,8 @@
 						return vm.getName();
 					case 1:
 						return vm.getInstallLocation().getAbsolutePath();
-					case 2: 
-						return vm.getVMInstallType().getName();						
+					case 2:
+						return vm.getVMInstallType().getName();
 				}
 			}
 			return element.toString();
@@ -292,7 +292,7 @@
 			}
 			return null;
 		}
-		
+
 		@Override
 		public void dispose() {
 			if(bold != null) {
@@ -318,7 +318,7 @@
 			}
 			return null;
 		}
-		
+
 		boolean isUnmodifiable(Object element) {
 			if(element instanceof IVMInstall) {
 				IVMInstall vm = (IVMInstall) element;
@@ -327,8 +327,8 @@
 			return false;
 		}
 
-	}	
-	
+	}
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.viewers.ISelectionProvider#addSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener)
 	 */
@@ -376,7 +376,7 @@
 
 	/**
 	 * Creates this block's control in the given control.
-	 * 
+	 *
 	 * @param ancestor containing control
 	 * @param useManageButton whether to present a single 'manage...' button to
 	 *  the user that opens the installed JREs pref page for JRE management,
@@ -385,10 +385,10 @@
 	public void createControl(Composite ancestor) {
 		Font font = ancestor.getFont();
 		Composite parent= SWTFactory.createComposite(ancestor, font, 2, 1, GridData.FILL_BOTH);
-		fControl = parent;	
-				
+		fControl = parent;
+
 		SWTFactory.createLabel(parent, JREMessages.InstalledJREsBlock_15, 2);
-				
+
 		fTable= new Table(parent, SWT.CHECK | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);
 		GridData gd = new GridData(GridData.FILL_BOTH);
 		gd.heightHint = 250;
@@ -396,10 +396,10 @@
 		fTable.setLayoutData(gd);
 		fTable.setFont(font);
 		fTable.setHeaderVisible(true);
-		fTable.setLinesVisible(true);	
+		fTable.setLinesVisible(true);
 
 		TableColumn column = new TableColumn(fTable, SWT.NULL);
-		column.setText(JREMessages.InstalledJREsBlock_0); 
+		column.setText(JREMessages.InstalledJREsBlock_0);
 		column.addSelectionListener(new SelectionAdapter() {
 			@Override
 			public void widgetSelected(SelectionEvent e) {
@@ -409,9 +409,9 @@
 		});
 		int defaultwidth = 350/3 +1;
 		column.setWidth(defaultwidth);
-	
+
 		column = new TableColumn(fTable, SWT.NULL);
-		column.setText(JREMessages.InstalledJREsBlock_1); 
+		column.setText(JREMessages.InstalledJREsBlock_1);
 		column.addSelectionListener(new SelectionAdapter() {
 			@Override
 			public void widgetSelected(SelectionEvent e) {
@@ -420,9 +420,9 @@
 			}
 		});
 		column.setWidth(defaultwidth);
-		
+
 		column = new TableColumn(fTable, SWT.NULL);
-		column.setText(JREMessages.InstalledJREsBlock_2); 
+		column.setText(JREMessages.InstalledJREsBlock_2);
 		column.addSelectionListener(new SelectionAdapter() {
 			@Override
 			public void widgetSelected(SelectionEvent e) {
@@ -431,21 +431,21 @@
 			}
 		});
 		column.setWidth(defaultwidth);
-		
-		fVMList = new CheckboxTableViewer(fTable);			
+
+		fVMList = new CheckboxTableViewer(fTable);
 		fVMList.setLabelProvider(new VMLabelProvider());
 		fVMList.setContentProvider(new JREsContentProvider());
 		fVMList.setUseHashlookup(true);
 		// by default, sort by name
 		sortByName();
-		
+
 		fVMList.addSelectionChangedListener(new ISelectionChangedListener() {
 			@Override
 			public void selectionChanged(SelectionChangedEvent evt) {
 				enableButtons();
 			}
 		});
-		
+
 		fVMList.addCheckStateListener(new ICheckStateListener() {
 			@Override
 			public void checkStateChanged(CheckStateChangedEvent event) {
@@ -456,7 +456,7 @@
 				}
 			}
 		});
-		
+
 		fVMList.addDoubleClickListener(new IDoubleClickListener() {
 			@Override
 			public void doubleClick(DoubleClickEvent e) {
@@ -474,68 +474,68 @@
 					}
 				}
 			}
-		});	
-		
+		});
+
 		Composite buttons = SWTFactory.createComposite(parent, font, 1, 1, GridData.VERTICAL_ALIGN_BEGINNING, 0, 0);
-		
-		fAddButton = SWTFactory.createPushButton(buttons, JREMessages.InstalledJREsBlock_3, null); 
+
+		fAddButton = SWTFactory.createPushButton(buttons, JREMessages.InstalledJREsBlock_3, null);
 		fAddButton.addListener(SWT.Selection, new Listener() {
 			@Override
 			public void handleEvent(Event evt) {
 				addVM();
 			}
 		});
-		
-		fEditButton= SWTFactory.createPushButton(buttons, JREMessages.InstalledJREsBlock_4, null); 
+
+		fEditButton= SWTFactory.createPushButton(buttons, JREMessages.InstalledJREsBlock_4, null);
 		fEditButton.addListener(SWT.Selection, new Listener() {
 			@Override
 			public void handleEvent(Event evt) {
 				editVM();
 			}
 		});
-		
-		fCopyButton = SWTFactory.createPushButton(buttons, JREMessages.InstalledJREsBlock_16, null); 
+
+		fCopyButton = SWTFactory.createPushButton(buttons, JREMessages.InstalledJREsBlock_16, null);
 		fCopyButton.addListener(SWT.Selection, new Listener() {
 			@Override
 			public void handleEvent(Event evt) {
 				copyVM();
 			}
 		});
-		
-		fRemoveButton= SWTFactory.createPushButton(buttons, JREMessages.InstalledJREsBlock_5, null); 
+
+		fRemoveButton= SWTFactory.createPushButton(buttons, JREMessages.InstalledJREsBlock_5, null);
 		fRemoveButton.addListener(SWT.Selection, new Listener() {
 			@Override
 			public void handleEvent(Event evt) {
 				removeVMs();
 			}
 		});
-		
+
 		SWTFactory.createVerticalSpacer(parent, 1);
-		
-		fSearchButton = SWTFactory.createPushButton(buttons, JREMessages.InstalledJREsBlock_6, null); 
+
+		fSearchButton = SWTFactory.createPushButton(buttons, JREMessages.InstalledJREsBlock_6, null);
 		fSearchButton.addListener(SWT.Selection, new Listener() {
 			@Override
 			public void handleEvent(Event evt) {
 				search();
 			}
-		});		
-		
+		});
+
 		fillWithWorkspaceJREs();
 		enableButtons();
 		fAddButton.setEnabled(JavaRuntime.getVMInstallTypes().length > 0);
-		
+
 		JavaRuntime.addVMInstallChangedListener(fListener);
 	}
-	
+
 	/**
-	 * Adds a duplicate of the selected VM to the block 
+	 * Adds a duplicate of the selected VM to the block
 	 * @since 3.2
 	 */
 	protected void copyVM() {
         IStructuredSelection selection = (IStructuredSelection) fVMList.getSelection();
         Iterator<IVMInstall> it = selection.iterator();
 
-        ArrayList<VMStandin> newEntries = new ArrayList<VMStandin>();
+        ArrayList<VMStandin> newEntries = new ArrayList<>();
         while (it.hasNext()) {
             IVMInstall selectedVM = it.next();
             // duplicate & add VM
@@ -565,9 +565,9 @@
     }
 
 	/**
-	 * Compares the given name against current names and adds the appropriate numerical 
+	 * Compares the given name against current names and adds the appropriate numerical
 	 * suffix to ensure that it is unique.
-	 * @param name the name with which to ensure uniqueness 
+	 * @param name the name with which to ensure uniqueness
 	 * @return the unique version of the given name
 	 * @since 3.2
 	 */
@@ -585,7 +585,7 @@
             }
             return generateName(name + " (1)"); //$NON-NLS-1$
         }
-	
+
 	/**
 	 * Fire current selection
 	 */
@@ -593,7 +593,7 @@
 		SelectionChangedEvent event = new SelectionChangedEvent(this, getSelection());
 		for (ISelectionChangedListener listener : fSelectionListeners) {
 			listener.selectionChanged(event);
-		}	
+		}
 	}
 
 	/**
@@ -616,15 +616,15 @@
 				}
 				return super.compare(viewer, e1, e2);
 			}
-			
+
 			@Override
 			public boolean isSorterProperty(Object element, String property) {
 				return true;
 			}
-		});	
-		fSortColumn = 3;			
+		});
+		fSortColumn = 3;
 	}
-	
+
 	/**
 	 * Sorts by VM name.
 	 */
@@ -639,15 +639,15 @@
 				}
 				return super.compare(viewer, e1, e2);
 			}
-			
+
 			@Override
 			public boolean isSorterProperty(Object element, String property) {
 				return true;
 			}
-		});		
-		fSortColumn = 1;		
+		});
+		fSortColumn = 1;
 	}
-	
+
 	/**
 	 * Sorts by VM location.
 	 */
@@ -662,15 +662,15 @@
 				}
 				return super.compare(viewer, e1, e2);
 			}
-			
+
 			@Override
 			public boolean isSorterProperty(Object element, String property) {
 				return true;
 			}
-		});		
-		fSortColumn = 2;		
+		});
+		fSortColumn = 2;
 	}
-		
+
 	/**
 	 * Enables the buttons based on selected items counts in the viewer
 	 */
@@ -692,20 +692,20 @@
 		} else {
 			fRemoveButton.setEnabled(false);
 		}
-	}	
-	
+	}
+
 	/**
 	 * Returns this block's control
-	 * 
+	 *
 	 * @return control
 	 */
 	public Control getControl() {
 		return fControl;
 	}
-	
+
 	/**
 	 * Sets the JREs to be displayed in this block
-	 * 
+	 *
 	 * @param vms JREs to be displayed
 	 */
 	protected void setJREs(IVMInstall[] vms) {
@@ -716,16 +716,16 @@
 		fVMList.setInput(fVMs);
 		fVMList.refresh();
 	}
-	
+
 	/**
 	 * Returns the JREs currently being displayed in this block
-	 * 
+	 *
 	 * @return JREs currently being displayed in this block
 	 */
 	public IVMInstall[] getJREs() {
 		return fVMs.toArray(new IVMInstall[fVMs.size()]);
 	}
-	
+
 	/**
 	 * Bring up a wizard that lets the user create a new VM definition.
 	 */
@@ -744,7 +744,7 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * @see IAddVMDialogRequestor#vmAdded(IVMInstall)
 	 */
@@ -761,7 +761,7 @@
 			fireSelectionChanged();
 		}
 	}
-	
+
 	/**
 	 * @see IAddVMDialogRequestor#isDuplicateName(String)
 	 */
@@ -774,8 +774,8 @@
 			}
 		}
 		return false;
-	}	
-	
+	}
+
 	/**
 	 * Performs the edit VM action when the Edit... button is pressed
 	 */
@@ -804,7 +804,7 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Performs the remove VM(s) action when the Remove... button is pressed
 	 */
@@ -818,11 +818,11 @@
 			i++;
 		}
 		removeJREs(vms);
-	}	
-	
+	}
+
 	/**
 	 * Removes the given VMs from the table.
-	 * 
+	 *
 	 * @param vms
 	 */
 	public void removeJREs(IVMInstall[] vms) {
@@ -843,7 +843,7 @@
 		}
 		fVMList.refresh(true);
 	}
-	
+
 	/**
 	 * Search for installed VMs in the file system
 	 */
@@ -852,35 +852,35 @@
 			doMacSearch();
 			return;
 		}
-		// choose a root directory for the search 
+		// choose a root directory for the search
 		DirectoryDialog dialog = new DirectoryDialog(getShell());
-		dialog.setMessage(JREMessages.InstalledJREsBlock_9); 
-		dialog.setText(JREMessages.InstalledJREsBlock_10); 
+		dialog.setMessage(JREMessages.InstalledJREsBlock_9);
+		dialog.setText(JREMessages.InstalledJREsBlock_10);
 		String path = dialog.open();
 		if (path == null) {
 			return;
 		}
-		
+
 		// ignore installed locations
-		final Set<File> exstingLocations = new HashSet<File>();
+		final Set<File> exstingLocations = new HashSet<>();
 		for (IVMInstall vm : fVMs) {
 			exstingLocations.add(vm.getInstallLocation());
 		}
-		
+
 		// search
 		final File rootDir = new File(path);
-		final List<File> locations = new ArrayList<File>();
-		final List<IVMInstallType> types = new ArrayList<IVMInstallType>();
+		final List<File> locations = new ArrayList<>();
+		final List<IVMInstallType> types = new ArrayList<>();
 
 		IRunnableWithProgress r = new IRunnableWithProgress() {
 			@Override
 			public void run(IProgressMonitor monitor) {
-				monitor.beginTask(JREMessages.InstalledJREsBlock_11, IProgressMonitor.UNKNOWN); 
+				monitor.beginTask(JREMessages.InstalledJREsBlock_11, IProgressMonitor.UNKNOWN);
 				search(rootDir, locations, types, exstingLocations, monitor);
 				monitor.done();
 			}
 		};
-		
+
 		try {
             ProgressMonitorDialog progress = new ProgressMonitorDialog(getShell()) {
                 /*
@@ -906,10 +906,10 @@
 			// canceled
 			return;
 		}
-		
+
 		if (locations.isEmpty()) {
 			String messagePath = path.replaceAll("&", "&&"); // @see bug 29855  //$NON-NLS-1$//$NON-NLS-2$
-			MessageDialog.openInformation(getShell(), JREMessages.InstalledJREsBlock_12, NLS.bind(JREMessages.InstalledJREsBlock_13, new String[]{messagePath})); // 
+			MessageDialog.openInformation(getShell(), JREMessages.InstalledJREsBlock_12, NLS.bind(JREMessages.InstalledJREsBlock_13, new String[]{messagePath})); //
 		} else {
 			Iterator<IVMInstallType> iter2 = types.iterator();
 			for(File location: locations) {
@@ -919,7 +919,7 @@
 				String nameCopy = new String(name);
 				int i = 1;
 				while (isDuplicateName(nameCopy)) {
-					nameCopy = name + '(' + i++ + ')'; 
+					nameCopy = name + '(' + i++ + ')';
 				}
 				vm.setName(nameCopy);
 				vm.setInstallLocation(location);
@@ -933,17 +933,17 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Calls out to {@link MacVMSearch} to find all installed JREs in the standard
 	 * Mac OS location
 	 */
 	private void doMacSearch() {
-		final List<VMStandin> added = new ArrayList<VMStandin>();
+		final List<VMStandin> added = new ArrayList<>();
 		IRunnableWithProgress r = new IRunnableWithProgress() {
 			@Override
 			public void run(IProgressMonitor monitor) throws InvocationTargetException {
-				Set<String> exists = new HashSet<String>();
+				Set<String> exists = new HashSet<>();
 				for (IVMInstall vm : fVMs) {
 					exists.add(vm.getId());
 				}
@@ -963,7 +963,7 @@
 				monitor.done();
 			}
 		};
-		
+
 		try {
             ProgressMonitorDialog progress = new ProgressMonitorDialog(getShell());
             progress.run(true, true, r);
@@ -993,13 +993,13 @@
 		} while (vmType.findVMInstall(id) != null || id.equals(fgLastUsedID));
 		fgLastUsedID = id;
 		return id;
-	}	
-	
+	}
+
 	/**
 	 * Searches the specified directory recursively for installed VMs, adding each
 	 * detected VM to the <code>found</code> list. Any directories specified in
 	 * the <code>ignore</code> are not traversed.
-	 * 
+	 *
 	 * @param directory
 	 * @param found
 	 * @param types
@@ -1014,7 +1014,7 @@
 		if (names == null) {
 			return;
 		}
-		List<File> subDirs = new ArrayList<File>();
+		List<File> subDirs = new ArrayList<>();
 		for (int i = 0; i < names.length; i++) {
 			if (monitor.isCanceled()) {
 				return;
@@ -1024,12 +1024,12 @@
 				monitor.subTask(NLS.bind(JREMessages.InstalledJREsBlock_14, new String[]{Integer.toString(found.size()),
 						file.getCanonicalPath().replaceAll("&", "&&")}));   // @see bug 29855 //$NON-NLS-1$ //$NON-NLS-2$
 			} catch (IOException e) {
-			}		
-			IVMInstallType[] vmTypes = JavaRuntime.getVMInstallTypes();	
+			}
+			IVMInstallType[] vmTypes = JavaRuntime.getVMInstallTypes();
 			if (file.isDirectory()) {
 				if (!ignore.contains(file)) {
 					boolean validLocation = false;
-					
+
 					// Take the first VM install type that claims the location as a
 					// valid VM install.  VM install types should be smart enough to not
 					// claim another type's VM, but just in case...
@@ -1059,12 +1059,12 @@
 				return;
 			}
 		}
-		
-	}	
-	
+
+	}
+
 	/**
 	 * Sets the checked JRE, possible <code>null</code>
-	 * 
+	 *
 	 * @param vm JRE or <code>null</code>
 	 */
 	public void setCheckedJRE(IVMInstall vm) {
@@ -1074,10 +1074,10 @@
 			setSelection(new StructuredSelection(vm));
 		}
 	}
-	
+
 	/**
 	 * Returns the checked JRE or <code>null</code> if none.
-	 * 
+	 *
 	 * @return the checked JRE or <code>null</code> if none
 	 */
 	public IVMInstall getCheckedJRE() {
@@ -1087,11 +1087,11 @@
 		}
 		return (IVMInstall)objects[0];
 	}
-	
+
 	/**
 	 * Persist table settings into the give dialog store, prefixed
 	 * with the given key.
-	 * 
+	 *
 	 * @param settings dialog store
 	 * @param qualifier key qualifier
 	 */
@@ -1102,11 +1102,11 @@
 		}
 		settings.put(qualifier + ".sortColumn", fSortColumn); //$NON-NLS-1$
 	}
-	
+
 	/**
 	 * Restore table settings from the given dialog store using the
 	 * given key.
-	 * 
+	 *
 	 * @param settings dialog settings store
 	 * @param qualifier key to restore settings from
 	 */
@@ -1130,7 +1130,7 @@
 				break;
 		}
 	}
-	
+
 	/**
 	 * Restores the column widths from dialog settings
 	 * @param settings
@@ -1143,7 +1143,7 @@
             try {
                 width = settings.getInt(qualifier + ".columnWidth" + i); //$NON-NLS-1$
             } catch (NumberFormatException e) {}
-            
+
             if ((width <= 0) || (i == fTable.getColumnCount() - 1)) {
                 fTable.getColumn(i).pack();
             } else {
@@ -1151,13 +1151,13 @@
             }
         }
 	}
-	
+
 	/**
 	 * Populates the JRE table with existing JREs defined in the workspace.
 	 */
 	protected void fillWithWorkspaceJREs() {
 		// fill with JREs
-		List<VMStandin> standins = new ArrayList<VMStandin>();
+		List<VMStandin> standins = new ArrayList<>();
 		IVMInstallType[] types = JavaRuntime.getVMInstallTypes();
 		for (int i = 0; i < types.length; i++) {
 			IVMInstallType type = types[i];
@@ -1167,11 +1167,11 @@
 				standins.add(new VMStandin(install));
 			}
 		}
-		setJREs(standins.toArray(new IVMInstall[standins.size()]));	
+		setJREs(standins.toArray(new IVMInstall[standins.size()]));
 	}
-	
+
 	/**
-	 * Initializes time stamp with current JRE page details 
+	 * Initializes time stamp with current JRE page details
 	 */
 	void initializeTimeStamp() {
 		fVMListTimeStamp = getEncodedVMInstalls();
@@ -1179,7 +1179,7 @@
 
 	/**
 	 * Disposes the block and any listeners
-	 * 
+	 *
 	 * @since 3.6.300
 	 */
 	public void dispose() {
@@ -1227,7 +1227,7 @@
 
 	/**
 	 * Checks if JRE block has changed.
-	 * 
+	 *
 	 * @return <code>true</code> if JRE block has changed, <code>false</code> otherwise
 	 */
 	public boolean hasChangesInDialog() {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREContainerWizardPage.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREContainerWizardPage.java
index f9c3a6e..aa4644d 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREContainerWizardPage.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREContainerWizardPage.java
@@ -30,22 +30,22 @@
  * Extension to allow a user to associate a JRE with a Java project.
  */
 public class JREContainerWizardPage extends WizardPage implements IClasspathContainerPage {
-	
+
 	/**
 	 * The classpath entry to be created.
 	 */
 	private IClasspathEntry fSelection;
-	
+
 	/**
 	 * JRE control
 	 */
 	private JREsComboBlock fJREBlock;
-	
+
 	/**
 	 * Constructs a new page.
 	 */
 	public JREContainerWizardPage() {
-		super(JREMessages.JREContainerWizardPage_JRE_System_Library_1); 
+		super(JREMessages.JREContainerWizardPage_JRE_System_Library_1);
 	}
 
 	/* (non-Javadoc)
@@ -54,7 +54,7 @@
 	@Override
 	public boolean finish() {
 		IPath path = fJREBlock.getPath();
-		fSelection = JavaCore.newContainerEntry(path);		
+		fSelection = JavaCore.newContainerEntry(path);
 		return true;
 	}
 
@@ -91,7 +91,7 @@
 			}
 		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
 	 */
@@ -100,7 +100,7 @@
 		Composite composite = SWTFactory.createComposite(parent, 1, 1, GridData.FILL_BOTH);
 		fJREBlock = new JREsComboBlock(false);
 		fJREBlock.setDefaultJREDescriptor(new BuildJREDescriptor());
-		fJREBlock.setTitle(JREMessages.JREContainerWizardPage_3); 
+		fJREBlock.setTitle(JREMessages.JREContainerWizardPage_3);
 		fJREBlock.createControl(composite);
 		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
 		fJREBlock.getControl().setLayoutData(gd);
@@ -116,10 +116,10 @@
 				}
 			}
 		});
-		
-		setTitle(JREMessages.JREContainerWizardPage_JRE_System_Library_1); 
-		setMessage(JREMessages.JREContainerWizardPage_4); 
-				
+
+		setTitle(JREMessages.JREContainerWizardPage_JRE_System_Library_1);
+		setMessage(JREMessages.JREContainerWizardPage_4);
+
 		initializeFromSelection();
 	}
 
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREDescriptor.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREDescriptor.java
index 6614728..01d58b4 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREDescriptor.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREDescriptor.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -12,16 +12,16 @@
 
 
 /**
- * Used to provide a description for JRE selections in the 
+ * Used to provide a description for JRE selections in the
  * installed JREs block.
  */
 public abstract class JREDescriptor {
 
 	/**
 	 * Returns a description of the JRE setting.
-	 * 
+	 *
 	 * @return description of the JRE setting
 	 */
 	public abstract String getDescription();
-	
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREMessages.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREMessages.java
index 5a79880..6e69bdf 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREMessages.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREMessages.java
@@ -4,10 +4,10 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *  IBM - Initial API and implementation
- *  Frits Jalvingh - Contribution for Bug 459831 - [launching] Support attaching 
+ *  Frits Jalvingh - Contribution for Bug 459831 - [launching] Support attaching
  *     	external annotations to a JRE container
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui.jres;
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREsComboBlock.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREsComboBlock.java
index 99c7c1f..2124c7b 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREsComboBlock.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREsComboBlock.java
@@ -57,42 +57,42 @@
  * </p>
  */
 public class JREsComboBlock {
-	
+
 	public static final String PROPERTY_JRE = "PROPERTY_JRE"; //$NON-NLS-1$
-	
+
 	/**
 	 * This block's control
 	 */
 	private Composite fControl;
-	
+
 	/**
 	 * VMs being displayed
 	 */
-	private List<Object> fVMs = new ArrayList<Object>(); 
-	
+	private List<Object> fVMs = new ArrayList<>();
+
 	/**
 	 * The main control
-	 */ 
+	 */
 	private Combo fCombo;
-	
+
 	// Action buttons
 	private Button fManageButton;
-		
+
 	/**
 	 * JRE change listeners
 	 */
 	private ListenerList<IPropertyChangeListener> fListeners = new ListenerList<>();
-	
+
 	/**
 	 * Whether the default JRE should be in first position (if <code>false</code>, it becomes last).
 	 */
 	private boolean fDefaultFirst;
-	
+
 	/**
 	 * Default JRE descriptor or <code>null</code> if none.
 	 */
 	private JREDescriptor fDefaultDescriptor = null;
-	
+
 	/**
 	 * Specific JRE descriptor or <code>null</code> if none.
 	 */
@@ -102,44 +102,44 @@
 	 * Default JRE radio button or <code>null</code> if none
 	 */
 	private Button fDefaultButton = null;
-	
+
 	/**
 	 * Selected JRE radio button
 	 */
 	private Button fSpecificButton = null;
-	
+
 	/**
 	 * The title used for the JRE block
 	 */
 	private String fTitle = null;
-	
+
 	/**
 	 * Selected JRE profile radio button
 	 */
 	private Button fEnvironmentsButton = null;
-	
+
 	/**
 	 * Combo box of JRE profiles
 	 */
 	private Combo fEnvironmentsCombo = null;
-	
+
 	private Button fManageEnvironmentsButton = null;
-	
+
 	// a path to an unavailable JRE
 	private IPath fErrorPath;
-	
+
 	/**
 	 * List of execution environments
 	 */
-	private List<Object> fEnvironments = new ArrayList<Object>();
-	
+	private List<Object> fEnvironments = new ArrayList<>();
+
 	private IStatus fStatus = OK_STATUS;
-	
+
 	private static IStatus OK_STATUS = new Status(IStatus.OK, JDIDebugUIPlugin.getUniqueIdentifier(), 0, "", null); //$NON-NLS-1$
 
 	/**
 	 * Creates a JREs combo block.
-	 * 
+	 *
 	 * @param defaultFirst whether the default JRE should be in first position (if <code>false</code>, it becomes last)
 	 */
 	public JREsComboBlock(boolean defaultFirst) {
@@ -149,31 +149,31 @@
 	public void addPropertyChangeListener(IPropertyChangeListener listener) {
 		fListeners.add(listener);
 	}
-	
+
 	public void removePropertyChangeListener(IPropertyChangeListener listener) {
 		fListeners.remove(listener);
 	}
-	
+
 	private void firePropertyChange() {
 		PropertyChangeEvent event = new PropertyChangeEvent(this, PROPERTY_JRE, null, getPath());
 		for (IPropertyChangeListener listener : fListeners) {
 			listener.propertyChange(event);
 		}
 	}
-	
+
 	/**
 	 * Creates this block's control in the given control.
-	 * 
+	 *
 	 * @param anscestor containing control
 	 */
 	public void createControl(Composite ancestor) {
-		fControl = SWTFactory.createComposite(ancestor, 1, 1, GridData.FILL_BOTH);		
+		fControl = SWTFactory.createComposite(ancestor, 1, 1, GridData.FILL_BOTH);
 		if (fTitle == null) {
-			fTitle = JREMessages.JREsComboBlock_3; 
+			fTitle = JREMessages.JREsComboBlock_3;
 		}
-		Group group = SWTFactory.createGroup(fControl, fTitle, 1, 1, GridData.FILL_HORIZONTAL); 
+		Group group = SWTFactory.createGroup(fControl, fTitle, 1, 1, GridData.FILL_HORIZONTAL);
 		Composite comp = SWTFactory.createComposite(group, group.getFont(), 3, 1, GridData.FILL_BOTH, 0, 0);
-		
+
 		if (fDefaultFirst) {
 			createDefaultJREControls(comp);
 		}
@@ -203,8 +203,8 @@
 					firePropertyChange();
 				}
 			}
-		});		
-		
+		});
+
 		fEnvironmentsCombo = SWTFactory.createCombo(comp, SWT.DROP_DOWN | SWT.READ_ONLY, 1, null);
 		fEnvironmentsCombo.addSelectionListener(new SelectionAdapter() {
 			@Override
@@ -212,16 +212,16 @@
 				setPath(JavaRuntime.newJREContainerPath(getEnvironment()));
 				firePropertyChange();
 			}
-		});		
-		
+		});
+
 		fManageEnvironmentsButton = SWTFactory.createPushButton(comp, JREMessages.JREsComboBlock_14, null);
 		fManageEnvironmentsButton.addListener(SWT.Selection, new Listener() {
 			@Override
 			public void handleEvent(Event event) {
 				showPrefPage(ExecutionEnvironmentsPreferencePage.ID);
 			}
-		});		
-		
+		});
+
 		fillWithWorkspaceProfiles();
 	}
 
@@ -243,7 +243,7 @@
 						setError(JREMessages.JREsComboBlock_0);
 					} else {
 						setStatus(OK_STATUS);
-					}					
+					}
 					fEnvironmentsCombo.setEnabled(false);
 					firePropertyChange();
 				}
@@ -258,12 +258,12 @@
 				firePropertyChange();
 			}
 		});
-				
-		fManageButton = SWTFactory.createPushButton(comp, JREMessages.JREsComboBlock_2, null); 
+
+		fManageButton = SWTFactory.createPushButton(comp, JREMessages.JREsComboBlock_2, null);
 		fManageButton.addListener(SWT.Selection, new Listener() {
 			@Override
 			public void handleEvent(Event event) {
-				showPrefPage(JREsPreferencePage.ID); 
+				showPrefPage(JREsPreferencePage.ID);
 			}
 		});
 		fillWithWorkspaceJREs();
@@ -284,10 +284,10 @@
 			});
 		}
 	}
-	
+
 	/**
 	 * Opens the given preference page, and updates when closed.
-	 * 
+	 *
 	 * @param id pref page id
 	 * @param page pref page
 	 */
@@ -306,9 +306,9 @@
 			setUseDefaultJRE();
 		}
 		setPath(getPath());
-		firePropertyChange();		
+		firePropertyChange();
 	}
-	
+
 	private void restoreCombo(List<Object> elements, Object element, Combo combo) {
 		int index = -1;
 		if (element != null) {
@@ -320,19 +320,19 @@
 			combo.select(0);
 		}
 	}
-		
+
 	/**
 	 * Returns this block's control
-	 * 
+	 *
 	 * @return control
 	 */
 	public Control getControl() {
 		return fControl;
 	}
-	
+
 	/**
 	 * Sets the JREs to be displayed in this block
-	 * 
+	 *
 	 * @param vms JREs to be displayed
 	 */
 	protected void setJREs(List<VMStandin> jres) {
@@ -364,14 +364,14 @@
 		fCombo.setItems(names);
 		fCombo.setVisibleItemCount(Math.min(names.length, 20));
 	}
-	
+
 	protected Shell getShell() {
 		return getControl().getShell();
 	}
 
 	/**
 	 * Selects a specific JRE based on type/name.
-	 * 
+	 *
 	 * @param vm JRE or <code>null</code>
 	 */
 	private void selectJRE(IVMInstall vm) {
@@ -383,15 +383,15 @@
 		if (vm != null) {
 			int index = fVMs.indexOf(vm);
 			if (index >= 0) {
-				fCombo.select(index);		
+				fCombo.select(index);
 			}
 		}
 		firePropertyChange();
 	}
-	
+
 	/**
 	 * Selects a JRE based environment.
-	 * 
+	 *
 	 * @param env environment or <code>null</code>
 	 */
 	private void selectEnvironment(IExecutionEnvironment env) {
@@ -403,15 +403,15 @@
 		if (env != null) {
 			int index = fEnvironments.indexOf(env);
 			if (index >= 0) {
-				fEnvironmentsCombo.select(index);		
+				fEnvironmentsCombo.select(index);
 			}
 		}
 		firePropertyChange();
-	}	
-	
+	}
+
 	/**
 	 * Returns the selected JRE or <code>null</code> if none.
-	 * 
+	 *
 	 * @return the selected JRE or <code>null</code> if none
 	 */
 	public IVMInstall getJRE() {
@@ -421,10 +421,10 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Returns the selected Environment or <code>null</code> if none.
-	 * 
+	 *
 	 * @return the selected Environment or <code>null</code> if none
 	 */
 	private IExecutionEnvironment getEnvironment() {
@@ -433,14 +433,14 @@
 			return (IExecutionEnvironment)fEnvironments.get(index);
 		}
 		return null;
-	}	
-	
+	}
+
 	/**
 	 * Populates the JRE table with existing JREs defined in the workspace.
 	 */
 	protected void fillWithWorkspaceJREs() {
 		// fill with JREs
-		List<VMStandin> standins = new ArrayList<VMStandin>();
+		List<VMStandin> standins = new ArrayList<>();
 		IVMInstallType[] types = JavaRuntime.getVMInstallTypes();
 		for (int i = 0; i < types.length; i++) {
 			IVMInstallType type = types[i];
@@ -450,9 +450,9 @@
 				standins.add(new VMStandin(install));
 			}
 		}
-		setJREs(standins);	
+		setJREs(standins);
 	}
-	
+
 	/**
 	 * Populates the JRE profile combo with profiles defined in the workspace.
 	 */
@@ -479,18 +479,18 @@
 		}
 		fEnvironmentsCombo.setItems(names);
 		fEnvironmentsCombo.setVisibleItemCount(Math.min(names.length, 20));
-	}	
-	
+	}
+
 	/**
 	 * Sets the Default JRE Descriptor for this block.
-	 * 
+	 *
 	 * @param descriptor default JRE descriptor
 	 */
 	public void setDefaultJREDescriptor(JREDescriptor descriptor) {
 		fDefaultDescriptor = descriptor;
 		setButtonTextFromDescriptor(fDefaultButton, descriptor);
 	}
-	
+
 	private void setButtonTextFromDescriptor(Button button, JREDescriptor descriptor) {
 		if (button != null) {
 			//update the description & JRE in case it has changed
@@ -505,17 +505,17 @@
 
 	/**
 	 * Sets the specific JRE Descriptor for this block.
-	 * 
+	 *
 	 * @param descriptor specific JRE descriptor
 	 */
 	public void setSpecificJREDescriptor(JREDescriptor descriptor) {
 		fSpecificDescriptor = descriptor;
 		setButtonTextFromDescriptor(fSpecificButton, descriptor);
 	}
-	
+
 	/**
 	 * Returns whether the 'use default JRE' button is checked.
-	 * 
+	 *
 	 * @return whether the 'use default JRE' button is checked
 	 */
 	public boolean isDefaultJRE() {
@@ -524,7 +524,7 @@
 		}
 		return false;
 	}
-	
+
 	/**
 	 * Sets this control to use the 'default' JRE.
 	 */
@@ -538,11 +538,11 @@
 			firePropertyChange();
 		}
 	}
-	
+
 	/**
 	 * Sets the title used for this JRE block
-	 * 
-	 * @param title title for this JRE block 
+	 *
+	 * @param title title for this JRE block
 	 */
 	public void setTitle(String title) {
 		fTitle = title;
@@ -554,10 +554,10 @@
 	public void refresh() {
 		setDefaultJREDescriptor(fDefaultDescriptor);
 	}
-	
+
 	/**
 	 * Returns a classpath container path identifying the selected JRE.
-	 * 
+	 *
 	 * @return classpath container path or <code>null</code>
 	 * @since 3.2
 	 */
@@ -583,13 +583,13 @@
 		}
 		return JavaRuntime.newDefaultJREContainerPath();
 	}
-	
+
 	/**
 	 * Sets the selection based on the given container path and returns
 	 * a status indicating if the selection was successful.
-	 * 
+	 *
 	 * @param containerPath
-	 * @return status 
+	 * @return status
 	 */
 	public void setPath(IPath containerPath) {
 		fErrorPath = null;
@@ -637,29 +637,29 @@
 					selectJRE(install);
 					File location = install.getInstallLocation();
 					if (location == null) {
-						setError(JREMessages.JREsComboBlock_12); 
+						setError(JREMessages.JREsComboBlock_12);
 					} else if (!location.exists()) {
 						setError(JREMessages.JREsComboBlock_13);
-					}							
+					}
 				}
 			}
 		}
 	}
-	
+
 	private void setError(String message) {
 		setStatus(new Status(IStatus.ERROR, JDIDebugUIPlugin.getUniqueIdentifier(),
-				IJavaDebugUIConstants.INTERNAL_ERROR, message, null));		
+				IJavaDebugUIConstants.INTERNAL_ERROR, message, null));
 	}
-	
+
 	/**
 	 * Returns the status of the JRE selection.
-	 * 
+	 *
 	 * @return status
 	 */
 	public IStatus getStatus() {
 		return fStatus;
 	}
-	
+
 	private void setStatus(IStatus status) {
 		fStatus = status;
 	}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREsEnvironmentComparator.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREsEnvironmentComparator.java
index c210b00..630f594 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREsEnvironmentComparator.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREsEnvironmentComparator.java
@@ -17,11 +17,11 @@
 
 /**
  * Sorts execution environments.
- * 
+ *
  * @since 3.3
  */
 public class JREsEnvironmentComparator extends ViewerComparator {
-	
+
 	IExecutionEnvironment fEnvironment;
 
 	/* (non-Javadoc)
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREsEnvironmentLabelProvider.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREsEnvironmentLabelProvider.java
index 098b818..5c1e312 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREsEnvironmentLabelProvider.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREsEnvironmentLabelProvider.java
@@ -23,18 +23,18 @@
 
 /**
  * Decorates JREs to emphasize those that are strictly compatible with an environment.
- *  
+ *
  * @since 3.2
  *
  */
 public class JREsEnvironmentLabelProvider extends JREsLabelProvider implements IFontProvider {
-	
+
 	private IExecutionEnvironmentProvider fProvider;
 	private Font fFont = null;
-	
+
 	/**
 	 * Returns the current environment or <code>null</code> id none
-	 * 
+	 *
 	 * @since 3.2
 	 */
 	public interface IExecutionEnvironmentProvider {
@@ -44,9 +44,9 @@
 	public JREsEnvironmentLabelProvider(IExecutionEnvironmentProvider provider) {
 		fProvider = provider;
 	}
-	
-	
-	
+
+
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.viewers.LabelProvider#dispose()
 	 */
@@ -68,15 +68,15 @@
 		String label = super.getText(element);
 		if (isStrictlyCompatible(element)) {
 			label = NLS.bind(JREMessages.JREsEnvironmentLabelProvider_0, new String[]{label, JREMessages.JREsEnvironmentLabelProvider_1});
-		}		
+		}
 		return label;
 	}
-	
+
 	private boolean isStrictlyCompatible(Object element) {
 		IExecutionEnvironment environment = fProvider.getEnvironment();
 		if (environment != null && element instanceof IVMInstall) {
 			return environment.isStrictlyCompatible((IVMInstall)element);
-		}	
+		}
 		return false;
 	}
 
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREsLabelProvider.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREsLabelProvider.java
index 569f9b6..f0b8e80 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREsLabelProvider.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREsLabelProvider.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -21,7 +21,7 @@
  * @since 3.2
  */
 public class JREsLabelProvider extends LabelProvider {
-	
+
 	/**
 	 * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREsPreferencePage.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREsPreferencePage.java
index 7ffd03e..d7a2e91 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREsPreferencePage.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREsPreferencePage.java
@@ -52,22 +52,22 @@
 
 /**
  * The Installed JREs preference page.
- * 
+ *
  * @since 3.0
  */
 public class JREsPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
-				
+
 	/**
 	 * ID for the page
-	 * 
+	 *
 	 * @since 3.5
 	 */
 	public static final String ID = "org.eclipse.jdt.debug.ui.preferences.VMPreferencePage"; //$NON-NLS-1$
-	
+
 	// JRE Block
 	private InstalledJREsBlock fJREBlock;
 	private Link fCompliance;
-		
+
 	/**
 	 * Constructor
 	 */
@@ -98,34 +98,34 @@
 			}
 		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
 	protected Control createContents(Composite ancestor) {
 		initializeDialogUnits(ancestor);
-		
+
 		noDefaultButton();
-		
+
 		GridLayout layout= new GridLayout();
 		layout.numColumns= 1;
 		layout.marginHeight = 0;
 		layout.marginWidth = 0;
 		ancestor.setLayout(layout);
-		
+
 		SWTFactory.createWrapLabel(ancestor, JREMessages.JREsPreferencePage_2, 1, 300);
 		SWTFactory.createVerticalSpacer(ancestor, 1);
-		
+
 		fJREBlock = new InstalledJREsBlock();
 		fJREBlock.createControl(ancestor);
 		Control control = fJREBlock.getControl();
 		GridData data = new GridData(GridData.FILL_BOTH);
 		data.horizontalSpan = 1;
 		control.setLayoutData(data);
-		
+
 		fJREBlock.restoreColumnSettings(JDIDebugUIPlugin.getDefault().getDialogSettings(), IJavaDebugHelpContextIds.JRE_PREFERENCE_PAGE);
-					
+
 		fCompliance = new Link(ancestor, SWT.NONE);
 		fCompliance.setText(JREMessages.JREsPreferencePage_14);
 		fCompliance.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
@@ -136,7 +136,7 @@
 			@Override
 			public void widgetSelected(SelectionEvent e) {openCompliancePreferencePage();}
 		});
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(ancestor, IJavaDebugHelpContextIds.JRE_PREFERENCE_PAGE);		
+		PlatformUI.getWorkbench().getHelpSystem().setHelp(ancestor, IJavaDebugHelpContextIds.JRE_PREFERENCE_PAGE);
 		initDefaultVM();
 		fJREBlock.initializeTimeStamp();
 		fJREBlock.addSelectionChangedListener(new ISelectionChangedListener() {
@@ -149,10 +149,10 @@
 						setErrorMessage(JREMessages.JREsPreferencePage_3);
 					}
 					else {
-						setErrorMessage(JREMessages.JREsPreferencePage_13); 
+						setErrorMessage(JREMessages.JREsPreferencePage_13);
 					}
 				} else {
-					//if we change the VM make sure the compliance level supports 
+					//if we change the VM make sure the compliance level supports
 					//generated class files
 					String compliance = getCurrentCompilerCompliance();
 					if(!supportsCurrentCompliance(install, compliance)) {
@@ -202,7 +202,7 @@
 			SWTFactory.showPreferencePage(compliancepage);
 		}
 	}
-	
+
 	/**
 	 * @return the current compiler compliance level
 	 * @since 3.3
@@ -214,9 +214,9 @@
 			return wcs.get(JavaCore.COMPILER_COMPLIANCE, JavaCore.getDefaultOptions().get(JavaCore.COMPILER_COMPLIANCE));
 		}
 			return JavaCore.getOption(JavaCore.COMPILER_COMPLIANCE);
-		
+
 	}
-	
+
 	/**
 	 * Determines if the vm version will run the currently compiled code based on the compiler compliance lvl
 	 * @param vm the vm install
@@ -233,12 +233,12 @@
 				//error sort it out
 				return true;
 			}
-			int val = compliance.compareTo(vmver); 
+			int val = compliance.compareTo(vmver);
 			return  val < 0 || val == 0;
 		}
 		return false;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.preference.IPreferencePage#performOk()
 	 */
@@ -256,19 +256,19 @@
 				}
 			}
 		});
-		
+
 		if(canceled[0]) {
 			return false;
 		}
-		
+
 		// save column widths
 		IDialogSettings settings = JDIDebugUIPlugin.getDefault().getDialogSettings();
 		fJREBlock.saveColumnSettings(settings, IJavaDebugHelpContextIds.JRE_PREFERENCE_PAGE);
 		fJREBlock.initializeTimeStamp();
-		
+
 		return super.performOk();
-	}	
-	
+	}
+
 	protected IJavaModel getJavaModel() {
 		return JavaCore.create(ResourcesPlugin.getWorkspace().getRoot());
 	}
@@ -280,14 +280,14 @@
 	 */
 	private void verifyDefaultVM(IVMInstall vm) {
 		if (vm != null) {
-			
+
 			// Verify that all of the specified VM's library locations actually exist
 			LibraryLocation[] locations= JavaRuntime.getLibraryLocations(vm);
 			boolean exist = true;
 			for (int i = 0; i < locations.length; i++) {
 				exist = exist && new File(locations[i].getSystemLibraryPath().toOSString()).exists();
 			}
-			
+
 			// If all library locations exist, check the corresponding entry in the list,
 			// otherwise remove the VM
 			if (exist) {
@@ -307,11 +307,11 @@
 			fJREBlock.setCheckedJRE(null);
 		}
 	}
-	
+
 	private IVMInstall getCurrentDefaultVM() {
 		return fJREBlock.getCheckedJRE();
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.dialogs.DialogPage#dispose()
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREsUpdater.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREsUpdater.java
index 6a13165..3e61052 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREsUpdater.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/JREsUpdater.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -28,10 +28,10 @@
  * Processes add/removed/changed VMs.
  */
 public class JREsUpdater {
-	
+
 	// the VMs defined when this updated is instantiated
-	private VMDefinitionsContainer fOriginalVMs;	
-	
+	private VMDefinitionsContainer fOriginalVMs;
+
 	/**
 	 * Contstructs a new VM updater to update VM install settings.
 	 */
@@ -41,7 +41,7 @@
 		if (def != null) {
 			fOriginalVMs.setDefaultVMInstallCompositeID(JavaRuntime.getCompositeIdFromVM(def));
 		}
-	
+
 		IVMInstallType[] types = JavaRuntime.getVMInstallTypes();
 		for (int i = 0; i < types.length; i++) {
 			IVMInstall[] vms = types[i].getVMInstalls();
@@ -50,41 +50,41 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Updates VM settings and returns whether the update was successful.
-	 * 
+	 *
 	 * @param jres new installed JREs
 	 * @param defaultJRE new default VM
 	 * @return whether the update was successful
 	 */
 	public boolean updateJRESettings(IVMInstall[] jres, IVMInstall defaultJRE) {
-		
+
 		// Create a VM definition container
 		VMDefinitionsContainer vmContainer = new VMDefinitionsContainer();
-		
+
 		// Set the default VM Id on the container
 		String defaultVMId = JavaRuntime.getCompositeIdFromVM(defaultJRE);
 		vmContainer.setDefaultVMInstallCompositeID(defaultVMId);
-		
+
 		// Set the VMs on the container
 		for (int i = 0; i < jres.length; i++) {
 			vmContainer.addVM(jres[i]);
 		}
-		
-		
+
+
 		// Generate XML for the VM defs and save it as the new value of the VM preference
 		saveVMDefinitions(vmContainer);
-		
+
 		return true;
 	}
-	
+
 	private void saveVMDefinitions(final VMDefinitionsContainer container) {
 		IRunnableWithProgress runnable = new IRunnableWithProgress() {
 			@Override
 			public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
 				try {
-					monitor.beginTask(JREMessages.JREsUpdater_0, 100); 
+					monitor.beginTask(JREMessages.JREsUpdater_0, 100);
 					String vmDefXML = container.getAsXML();
 					monitor.worked(40);
 					IEclipsePreferences prefs = InstanceScope.INSTANCE.getNode(LaunchingPlugin.ID_PLUGIN);
@@ -99,7 +99,7 @@
 				} finally {
 					monitor.done();
 				}
-				
+
 			}
 		};
 		try {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/LibraryContentProvider.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/LibraryContentProvider.java
index 117a428..4a32789 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/LibraryContentProvider.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/LibraryContentProvider.java
@@ -29,7 +29,7 @@
 
 /**
  * Provides the content for the JREs selection/edit viewer
- * 
+ *
  * @see ITreeContentProvider
  * @see VMDetailsDialog
  * @see VMLibraryBlock
@@ -37,18 +37,18 @@
  * @see LibraryStandin
  */
 public class LibraryContentProvider implements ITreeContentProvider {
-	
+
 	private Viewer fViewer;
-	
+
 	/**
 	 * Represents a sub-element of a <code>LibraryStandin</code>
 	 */
 	public class SubElement {
-		
+
 		public static final int JAVADOC_URL= 1;
 		public static final int SOURCE_PATH= 2;
 		public static final int EXTERNAL_ANNOTATIONS_PATH = 3;
-		
+
 		private LibraryStandin fParent;
 		private int fType;
 
@@ -56,15 +56,15 @@
 			fParent= parent;
 			fType= type;
 		}
-		
+
 		public LibraryStandin getParent() {
 			return fParent;
 		}
-		
+
 		public int getType() {
 			return fType;
 		}
-		
+
 		public void remove() {
 			switch (fType) {
 				case JAVADOC_URL:
@@ -81,7 +81,7 @@
 		}
 	}
 
-	private HashMap<LibraryStandin, Object[]> fChildren= new HashMap<LibraryStandin, Object[]>();
+	private HashMap<LibraryStandin, Object[]> fChildren= new HashMap<>();
 
 	private LibraryStandin[] fLibraries= new LibraryStandin[0];
 
@@ -162,7 +162,7 @@
 
 	/**
 	 * Returns the listing of <code>LibraryLocation</code>s
-	 * 
+	 *
 	 * @return the listing of <code>LibraryLocation</code>s, or an empty
 	 * array, never <code>null</code>
 	 */
@@ -178,12 +178,12 @@
 	 * Returns the list of libraries in the given selection. SubElements
 	 * are replaced by their parent libraries.
 	 * @param selection the current selection
-	 * 
+	 *
 	 * @return the current set of selected <code>LibraryStandin</code>s from
 	 * the current viewer selection, or an empty set, never <code>null</code>
 	 */
 	private Set<Object> getSelectedLibraries(IStructuredSelection selection) {
-		Set<Object> libraries= new HashSet<Object>();
+		Set<Object> libraries= new HashSet<>();
 		for (Iterator<?> iter= selection.iterator(); iter.hasNext();) {
 			Object element= iter.next();
 			if (element instanceof LibraryStandin) {
@@ -234,7 +234,7 @@
 	 * @param selection the current viewer selection
 	 */
 	public void remove(IStructuredSelection selection) {
-		List<LibraryStandin> newLibraries = new ArrayList<LibraryStandin>();
+		List<LibraryStandin> newLibraries = new ArrayList<>();
 		for (int i = 0; i < fLibraries.length; i++) {
 			newLibraries.add(fLibraries[i]);
 		}
@@ -260,11 +260,11 @@
 	 * is empty.
 	 */
 	public void add(LibraryLocation[] libs, IStructuredSelection selection) {
-		List<LibraryStandin> newLibraries = new ArrayList<LibraryStandin>(fLibraries.length + libs.length);
+		List<LibraryStandin> newLibraries = new ArrayList<>(fLibraries.length + libs.length);
 		for (int i = 0; i < fLibraries.length; i++) {
 			newLibraries.add(fLibraries[i]);
 		}
-		List<LibraryStandin> toAdd = new ArrayList<LibraryStandin>(libs.length);
+		List<LibraryStandin> toAdd = new ArrayList<>(libs.length);
 		for (int i = 0; i < libs.length; i++) {
 			toAdd.add(new LibraryStandin(libs[i]));
 		}
@@ -290,7 +290,7 @@
 	 * Set the given URL as the javadoc location for the libraries contained in
 	 * the given selection.
 	 * @param javadocLocation the new java doc location to set
-	 * @param selection the selection of libraries to set the new javadoc location for 
+	 * @param selection the selection of libraries to set the new javadoc location for
 	 */
 	public void setJavadoc(URL javadocLocation, IStructuredSelection selection) {
 		Set<Object> libraries= getSelectedLibraries(selection);
@@ -325,7 +325,7 @@
 		}
 		fViewer.refresh();
 	}
-	
+
 	/**
 	 * Set the given paths as the annotations path for the libraries contained in the given selection.
 	 *
@@ -351,7 +351,7 @@
 
 	/**
 	 * Returns the stand-in libraries being edited.
-	 * 
+	 *
 	 * @return stand-ins
 	 */
 	LibraryStandin[] getStandins() {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/LibraryLabelProvider.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/LibraryLabelProvider.java
index 21fdefe..2ea3ed8 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/LibraryLabelProvider.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/LibraryLabelProvider.java
@@ -4,10 +4,10 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
- *     Frits Jalvingh - Contribution for Bug 459831 - [launching] Support attaching 
+ *     Frits Jalvingh - Contribution for Bug 459831 - [launching] Support attaching
  *     	external annotations to a JRE container
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui.jres;
@@ -29,7 +29,7 @@
 
 /**
  * Label provider for jre libraries.
- * 
+ *
  * @since 3.2
  */
 public class LibraryLabelProvider extends LabelProvider {
@@ -50,13 +50,13 @@
 				key = ISharedImages.IMG_OBJS_EXTERNAL_ARCHIVE;
 			}
 			status = library.validate();
-			
+
 		} else if (element instanceof SubElement) {
 			switch(((SubElement)element).getType()) {
 				case SubElement.SOURCE_PATH:
 					key = ISharedImages.IMG_OBJS_JAR_WITH_SOURCE;
 					break;
-					
+
 				case SubElement.EXTERNAL_ANNOTATIONS_PATH:
 					key = ISharedImages.IMG_OBJS_EXTERNAL_ANNOTATIONS;
 					break;
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/LibraryStandin.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/LibraryStandin.java
index 1ecdb97..021a9a1 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/LibraryStandin.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/LibraryStandin.java
@@ -7,7 +7,7 @@
  *
  * Contributors:
  *     IBM Corporation - initial API and implementation
- *     Frits Jalvingh - Contribution for Bug 459831 - [launching] Support attaching 
+ *     Frits Jalvingh - Contribution for Bug 459831 - [launching] Support attaching
  *     	external annotations to a JRE container
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui.jres;
@@ -25,7 +25,7 @@
 
 /**
  * Wrapper for an original library location, to support editing.
- * 
+ *
  */
 public final class LibraryStandin {
 	private IPath fSystemLibrary;
@@ -33,45 +33,45 @@
 	private IPath fExternalAnnotations;
 	private IPath fPackageRootPath;
 	private URL fJavadocLocation;
-	
+
 	/**
 	 * Creates a new library standin on the given library location.
-	 */	
+	 */
 	public LibraryStandin(LibraryLocation libraryLocation) {
 		fSystemLibrary= libraryLocation.getSystemLibraryPath();
 		setSystemLibrarySourcePath(libraryLocation.getSystemLibrarySourcePath());
 		setPackageRootPath(libraryLocation.getPackageRootPath());
 		setJavadocLocation(libraryLocation.getJavadocLocation());
 		setExternalAnnotationsPath(libraryLocation.getExternalAnnotationsPath());
-	}		
-		
+	}
+
 	/**
 	 * Returns the JRE library jar location.
-	 * 
+	 *
 	 * @return The JRE library jar location.
 	 */
 	public IPath getSystemLibraryPath() {
 		return fSystemLibrary;
 	}
-	
+
 	/**
 	 * Returns the JRE library source zip location.
-	 * 
+	 *
 	 * @return The JRE library source zip location.
 	 */
 	public IPath getSystemLibrarySourcePath() {
 		return fSystemLibrarySource;
-	}	
-	
+	}
+
 	/**
 	 * Sets the source location for this library.
-	 * 
+	 *
 	 * @param path path source archive or Path.EMPTY if none
 	 */
 	void setSystemLibrarySourcePath(IPath path) {
 		fSystemLibrarySource = path;
 	}
-	
+
 	/**
 	 * Returns the path to the external annotations.
 	 *
@@ -87,22 +87,22 @@
 
 	/**
 	 * Returns the path to the default package in the sources zip file
-	 * 
+	 *
 	 * @return The path to the default package in the sources zip file.
 	 */
 	public IPath getPackageRootPath() {
 		return fPackageRootPath;
 	}
-	
+
 	/**
 	 * Sets the root source location within source archive.
-	 * 
+	 *
 	 * @param path path to root source location or Path.EMPTY if none
 	 */
 	void setPackageRootPath(IPath path) {
 		fPackageRootPath = path;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see java.lang.Object#equals(java.lang.Object)
 	 */
@@ -110,12 +110,12 @@
 	public boolean equals(Object obj) {
 		if (obj instanceof LibraryStandin) {
 			LibraryStandin lib = (LibraryStandin)obj;
-			return getSystemLibraryPath().equals(lib.getSystemLibraryPath()) 
+			return getSystemLibraryPath().equals(lib.getSystemLibraryPath())
 				&& equals(getSystemLibrarySourcePath(), lib.getSystemLibrarySourcePath())
 				&& equals(getPackageRootPath(), lib.getPackageRootPath())
 				&& equals(getExternalAnnotationsPath(), lib.getExternalAnnotationsPath())
 				&& equalURLs(getJavadocLocation(), lib.getJavadocLocation());
-		} 
+		}
 		return false;
 	}
 
@@ -126,7 +126,7 @@
 	public int hashCode() {
 		return getSystemLibraryPath().hashCode();
 	}
-	
+
 	/**
 	 * Returns whether the given paths are equal - either may be <code>null</code>.
 	 * @param path1 path to be compared
@@ -136,14 +136,14 @@
 	protected boolean equals(IPath path1, IPath path2) {
 		return equalsOrNull(path1, path2);
 	}
-	
+
 	/**
 	 * Returns whether the given objects are equal - either may be <code>null</code>.
 	 * @param o1 object to be compared
 	 * @param o2 object to be compared
 	 * @return whether the given objects are equal or both null
 	 * @since 3.1
-	 */	
+	 */
 	private boolean equalsOrNull(Object o1, Object o2) {
 		if (o1 == null) {
 			return o2 == null;
@@ -169,10 +169,10 @@
 		}
 		return url1.toExternalForm().equals(url2.toExternalForm());
 	}
-	
+
 	/**
 	 * Returns the Javadoc location associated with this Library location.
-	 * 
+	 *
 	 * @return a url pointing to the Javadoc location associated with
 	 * 	this Library location, or <code>null</code> if none
 	 * @since 3.1
@@ -180,10 +180,10 @@
 	public URL getJavadocLocation() {
 		return fJavadocLocation;
 	}
-	
+
 	/**
 	 * Sets the javadoc location of this library.
-	 *  
+	 *
 	 * @param url The location of the javadoc for <code>library</code> or <code>null</code>
 	 *  if none
 	 */
@@ -193,16 +193,16 @@
 
 	/**
 	 * Returns an equivalent library location.
-	 * 
+	 *
 	 * @return library location
 	 */
 	LibraryLocation toLibraryLocation() {
 		return new LibraryLocation(getSystemLibraryPath(), getSystemLibrarySourcePath(), getPackageRootPath(), getJavadocLocation(), null, getExternalAnnotationsPath());
 	}
-	
+
 	/**
 	 * Returns a status for this library describing any error states
-	 * 
+	 *
 	 * @return
 	 */
 	IStatus validate() {
@@ -232,5 +232,5 @@
 
 		return Status.OK_STATUS;
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/StandardVMCommandTab.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/StandardVMCommandTab.java
index 7c3c2f4..6b61d92 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/StandardVMCommandTab.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/StandardVMCommandTab.java
@@ -37,13 +37,13 @@
 import org.eclipse.swt.widgets.Text;
 
 public class StandardVMCommandTab extends AbstractLaunchConfigurationTab {
-	
+
 	protected Text fJavaCommandText;
 	protected Button fDefaultButton;
 	protected Button fSpecificButton;
-	
-	protected static final Map<?, ?> EMPTY_MAP = new HashMap<Object, Object>(1);
-	
+
+	protected static final Map<?, ?> EMPTY_MAP = new HashMap<>(1);
+
 	/**
 	 * @see ILaunchConfigurationTab#createControl(Composite)
 	 */
@@ -55,7 +55,7 @@
 		comp.setLayout(layout);
 		comp.setLayoutData(new GridData(GridData.FILL_BOTH));
 		comp.setFont(font);
-		
+
 		Group group = new Group(comp, SWT.NONE);
 		setControl(group);
 		GridLayout topLayout = new GridLayout();
@@ -64,36 +64,36 @@
 		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
 		group.setLayoutData(gd);
 		group.setFont(font);
-		
-		group.setText(JREMessages.AbstractJavaCommandTab_1);  
-		
+
+		group.setText(JREMessages.AbstractJavaCommandTab_1);
+
 		fDefaultButton = new Button(group, SWT.RADIO);
 		fDefaultButton.setFont(font);
 		gd = new GridData(GridData.BEGINNING);
 		gd.horizontalSpan = 2;
 		fDefaultButton.setLayoutData(gd);
-		fDefaultButton.setText(NLS.bind(JREMessages.AbstractJavaCommandTab_2, new String[]{getDefaultCommand()})); 
-		
+		fDefaultButton.setText(NLS.bind(JREMessages.AbstractJavaCommandTab_2, new String[]{getDefaultCommand()}));
+
 		fDefaultButton.addSelectionListener(new SelectionAdapter() {
 			@Override
 			public void widgetSelected(SelectionEvent evt) {
 				handleSelection();
 			}
 		});
-		
+
 		fSpecificButton = new Button(group, SWT.RADIO);
 		fSpecificButton.setFont(font);
 		gd = new GridData(GridData.BEGINNING);
 		fSpecificButton.setLayoutData(gd);
-		fSpecificButton.setText(JREMessages.AbstractJavaCommandTab_4); 
-		
+		fSpecificButton.setText(JREMessages.AbstractJavaCommandTab_4);
+
 		fSpecificButton.addSelectionListener(new SelectionAdapter() {
 			@Override
 			public void widgetSelected(SelectionEvent evt) {
 				handleSelection();
 			}
 		});
-				
+
 		fJavaCommandText= new Text(group, SWT.SINGLE | SWT.BORDER);
 		gd = new GridData(GridData.FILL_HORIZONTAL);
 		fJavaCommandText.setLayoutData(gd);
@@ -115,7 +115,7 @@
 		fJavaCommandText.setEnabled(!useDefault);
 		updateLaunchConfigurationDialog();
 	}
-	
+
 	protected String getDefaultCommand() {
 		return "javaw";  //$NON-NLS-1$
 	}
@@ -125,7 +125,7 @@
 	 */
 	@Override
 	public String getName() {
-		return JREMessages.AbstractJavaCommandTab_3; 
+		return JREMessages.AbstractJavaCommandTab_3;
 	}
 
 	/* (non-Javadoc)
@@ -140,7 +140,7 @@
 				javaCommand = attributeMap.get(IJavaLaunchConfigurationConstants.ATTR_JAVA_COMMAND);
 			}
 		} catch(CoreException ce) {
-			JDIDebugUIPlugin.log(ce);		
+			JDIDebugUIPlugin.log(ce);
 		}
 		if (javaCommand == null) {
 			javaCommand = getDefaultCommand();
@@ -164,19 +164,19 @@
 			configuration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_INSTALL_TYPE_SPECIFIC_ATTRS_MAP, (Map<String, String>)null);
 		} else {
 			String javaCommand = fJavaCommandText.getText();
-			Map<String, String> attributeMap = new HashMap<String, String>(1);
+			Map<String, String> attributeMap = new HashMap<>(1);
 			attributeMap.put(IJavaLaunchConfigurationConstants.ATTR_JAVA_COMMAND, javaCommand);
-			configuration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_INSTALL_TYPE_SPECIFIC_ATTRS_MAP, attributeMap);		
-		}		 
+			configuration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_INSTALL_TYPE_SPECIFIC_ATTRS_MAP, attributeMap);
+		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#setDefaults(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
 	 */
 	@Override
 	public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {
 		configuration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_INSTALL_TYPE_SPECIFIC_ATTRS_MAP, (Map<String, String>)null);
-	}	
+	}
 
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.AbstractLaunchConfigurationTab#getId()
@@ -185,7 +185,7 @@
 	public String getId() {
 		return "org.eclipse.jdt.debug.ui.standardVMCommandTab"; //$NON-NLS-1$
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#isValid(org.eclipse.debug.core.ILaunchConfiguration)
 	 */
@@ -196,7 +196,7 @@
 			setErrorMessage(null);
 			setMessage(null);
 		} else {
-			setErrorMessage(JREMessages.AbstractJavaCommandTab_Java_executable_must_be_specified_5); 
+			setErrorMessage(JREMessages.AbstractJavaCommandTab_Java_executable_must_be_specified_5);
 			setMessage(null);
 		}
 		return valid;
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/StandardVMPage.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/StandardVMPage.java
index f74912c..d90b00c 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/StandardVMPage.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/StandardVMPage.java
@@ -48,11 +48,11 @@
 
 /**
  * Page used to edit a standard VM.
- * 
+ *
  * @since 3.3
  */
 public class StandardVMPage extends AbstractVMInstallPage {
-	
+
 	// VM being edited or created
 	private VMStandin fVM;
 	private Text fVMName;
@@ -63,9 +63,9 @@
 	private URL fJavadocLocation = null;
 	private boolean fAutoDetectAttributes = false;
 	private IStatus[] fFieldStatus = new IStatus[1];
-	
+
 	/**
-	 * 
+	 *
 	 */
 	public StandardVMPage() {
 		super(JREMessages.StandardVMPage_0);
@@ -73,14 +73,14 @@
 			fFieldStatus[i] = Status.OK_STATUS;
 		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.dialogs.IDialogPage#getImage()
 	 */
 	@Override
 	public Image getImage() {
 		return JavaDebugImages.get(JavaDebugImages.IMG_WIZBAN_LIBRARY);
-	}	
+	}
 
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
@@ -93,7 +93,7 @@
 		layout.numColumns = 3;
 		composite.setLayout(layout);
 		composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-		
+
 	// VM location
 		SWTFactory.createLabel(composite, JREMessages.addVMDialog_jreHome, 1);
 		fJRERoot = SWTFactory.createSingleText(composite, 1);
@@ -109,7 +109,7 @@
 		Button variables = SWTFactory.createPushButton(composite, JREMessages.StandardVMPage_3, null);
 		data = (GridData) variables.getLayoutData();
 		data.horizontalAlignment = GridData.END;
-	//VM libraries block 
+	//VM libraries block
 		SWTFactory.createLabel(composite, JREMessages.AddVMDialog_JRE_system_libraries__1, 3);
 		fLibraryBlock = new VMLibraryBlock();
 		fLibraryBlock.setWizard(getWizard());
@@ -118,8 +118,8 @@
 		GridData gd = new GridData(GridData.FILL_BOTH);
 		gd.horizontalSpan = 3;
 		libControl.setLayoutData(gd);
-		
-	
+
+
 	//add the listeners now to prevent them from monkeying with initialized settings
 		fVMName.addModifyListener(new ModifyListener() {
 			@Override
@@ -145,7 +145,7 @@
 					text = file.getParentFile().getAbsolutePath();
 				}
 				dialog.setFilterPath(text);
-				dialog.setMessage(JREMessages.addVMDialog_pickJRERootDialog_message); 
+				dialog.setMessage(JREMessages.addVMDialog_pickJRERootDialog_message);
 				String newPath = dialog.open();
 				if (newPath != null) {
 					fJRERoot.setText(newPath);
@@ -167,9 +167,9 @@
 		Dialog.applyDialogFont(composite);
 		setControl(composite);
 		initializeFields();
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), IJavaDebugHelpContextIds.EDIT_JRE_STD_VM_WIZARD_PAGE);	
-	}	
-	
+		PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), IJavaDebugHelpContextIds.EDIT_JRE_STD_VM_WIZARD_PAGE);
+	}
+
 	/**
 	 * Validates the JRE location
 	 * @return the status after validating the JRE location
@@ -179,16 +179,16 @@
 		IStatus s = null;
 		File file = null;
 		if (locationName.length() == 0) {
-			s = new StatusInfo(IStatus.WARNING, JREMessages.addVMDialog_enterLocation); 
-		} 
+			s = new StatusInfo(IStatus.WARNING, JREMessages.addVMDialog_enterLocation);
+		}
 		else {
 			file = new File(locationName);
 			if (!file.exists()) {
-				s = new StatusInfo(IStatus.ERROR, JREMessages.addVMDialog_locationNotExists); 
-			} 
+				s = new StatusInfo(IStatus.ERROR, JREMessages.addVMDialog_locationNotExists);
+			}
 			else {
 				final IStatus[] temp = new IStatus[1];
-				final File tempFile = file; 
+				final File tempFile = file;
 				Runnable r = new Runnable() {
 					@Override
 					public void run() {
@@ -220,12 +220,12 @@
 						int segs = path.segmentCount();
 						if (segs == 1) {
 							genName = path.segment(0);
-						} 
+						}
 						else if (segs >= 2) {
 							String last = path.lastSegment();
 							if ("jre".equalsIgnoreCase(last)) { //$NON-NLS-1$
 								genName = path.segment(segs - 2);
-							} 
+							}
 							else {
 								genName = last;
 							}
@@ -242,7 +242,7 @@
 		fLibraryBlock.setSelection(fVM);
 		updatePageStatus();
 	}
-	
+
 	/**
 	 * Auto-detects the default javadoc location
 	 */
@@ -261,14 +261,14 @@
 			fJavadocLocation = fVM.getJavadocLocation();
 		}
 	}
-	
+
 	/**
 	 * Returns the installation location as a file from the JRE root text control
 	 * @return the installation location as a file
 	 */
 	protected File getInstallLocation() {
 		return new File(fJRERoot.getText());
-	}	
+	}
 
 	/**
 	 * Validates the entered name of the VM
@@ -277,7 +277,7 @@
 	private void validateVMName() {
 		nameChanged(fVMName.getText());
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.debug.ui.launchConfigurations.AbstractVMInstallPage#finish()
 	 */
@@ -295,7 +295,7 @@
 	public VMStandin getSelection() {
 		return fVM;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.debug.ui.launchConfigurations.AbstractVMInstallPage#setSelection(org.eclipse.jdt.launching.VMStandin)
 	 */
@@ -307,7 +307,7 @@
 		setTitle(JREMessages.StandardVMPage_1);
 		setDescription(JREMessages.StandardVMPage_2);
 	}
-	
+
 	/**
 	 * initialize fields to the specified VM
 	 * @param vm the VM to initialize from
@@ -318,16 +318,16 @@
 		vm.setInstallLocation(file);
 		vm.setName(fVMName.getText());
 		vm.setJavadocLocation(getURL());
-		
+
 		String argString = fVMArgs.getText().trim();
 		if (argString != null && argString.length() > 0) {
-			vm.setVMArgs(argString);			
-		} 
+			vm.setVMArgs(argString);
+		}
 		else {
 			vm.setVMArgs(null);
-		} 
+		}
 	}
-	
+
 	/**
 	 * Returns the URL for the javadoc location
 	 * @return the URL for the javadoc location
@@ -335,7 +335,7 @@
 	protected URL getURL() {
 		return fJavadocLocation;
 	}
-	
+
 	/**
 	 * Creates a unique name for the VMInstallType
 	 * @param vmType the vm install type
@@ -347,8 +347,8 @@
 			id = String.valueOf(System.currentTimeMillis());
 		} while (vmType.findVMInstall(id) != null);
 		return id;
-	}	
-	
+	}
+
 	/**
 	 * Initialize the dialogs fields
 	 */
@@ -365,11 +365,11 @@
 		}
 		validateVMName();
 		validateJRELocation();
-	}	
-	
+	}
+
 	/**
 	 * Sets the status of the JRE location field.
-	 * 
+	 *
 	 * @param status JRE location status
 	 */
 	private void setJRELocationStatus(IStatus status) {
@@ -407,5 +407,5 @@
 	protected IStatus[] getVMStatus() {
 		return fFieldStatus;
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/VMDetailsDialog.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/VMDetailsDialog.java
index 8120656..3b1c2b3 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/VMDetailsDialog.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/VMDetailsDialog.java
@@ -33,36 +33,36 @@
 
 /**
  * Displays details of a VM install (read only, for contributed VMs).
- * 
+ *
  * @since 3.2
  */
 public class VMDetailsDialog extends Dialog {
-	
+
 	private IVMInstall fVM;
-		
+
 	public VMDetailsDialog(Shell shell, IVMInstall vm) {
 		super(shell);
-		setShellStyle(getShellStyle() | SWT.RESIZE);		
+		setShellStyle(getShellStyle() | SWT.RESIZE);
 		fVM= vm;
 	}
-	
+
 	/**
 	 * @see Windows#configureShell
 	 */
 	@Override
 	protected void configureShell(Shell newShell) {
 		super.configureShell(newShell);
-		newShell.setText(JREMessages.VMDetailsDialog_0); 
+		newShell.setText(JREMessages.VMDetailsDialog_0);
 		PlatformUI.getWorkbench().getHelpSystem().setHelp(newShell, IJavaDebugHelpContextIds.JRE_DETAILS_DIALOG);
-	}		
-			
+	}
+
 	@Override
 	protected Control createDialogArea(Composite ancestor) {
 		Composite parent = (Composite)super.createDialogArea(ancestor);
 		GridLayout layout = new GridLayout(2, false);
 		layout.makeColumnsEqualWidth = false;
 		parent.setLayout(layout);
-		
+
 		// type
 		createLabel(parent, JREMessages.addVMDialog_jreType);
 		createLabel(parent, fVM.getVMInstallType().getName());
@@ -70,11 +70,11 @@
 		// name
 		createLabel(parent, JREMessages.addVMDialog_jreName);
 		createLabel(parent, fVM.getName());
-		
+
 		// home
 		createLabel(parent, JREMessages.addVMDialog_jreHome);
 		createLabel(parent, fVM.getInstallLocation().getAbsolutePath());
-		
+
 		// vm args
 		SWTFactory.createLabel(parent, JREMessages.AddVMDialog_23, 2);
 		String text = null;
@@ -100,7 +100,7 @@
 		GridData gd = (GridData) argText.getLayoutData();
 		gd.heightHint = 75;
 		gd.widthHint = 300;
-		
+
 		// libraries
 		SWTFactory.createLabel(parent, JREMessages.AddVMDialog_JRE_system_libraries__1, 2);
 		TreeViewer libraryViewer= new TreeViewer(parent);
@@ -113,26 +113,26 @@
 		libraryViewer.setLabelProvider(new LibraryLabelProvider());
 		libraryViewer.setInput(this);
 		provider.setLibraries(JavaRuntime.getLibraryLocations(fVM));
-		
+
 		applyDialogFont(parent);
 		return parent;
 	}
-	
+
 	private Label createLabel(Composite parent, String text) {
 		Label label = new Label(parent, SWT.NONE);
 		label.setText(text);
 		return label;
 	}
-	
+
 	/**
 	 * Returns the name of the section that this dialog stores its settings in
-	 * 
+	 *
 	 * @return String
 	 */
 	protected String getDialogSettingsSectionName() {
 		return "VM_DETAILS_DIALOG_SECTION"; //$NON-NLS-1$
 	}
-	
+
 	 /* (non-Javadoc)
      * @see org.eclipse.jface.dialogs.Dialog#getDialogBoundsSettings()
      */
@@ -142,10 +142,10 @@
          IDialogSettings section = settings.getSection(getDialogSettingsSectionName());
          if (section == null) {
              section = settings.addNewSection(getDialogSettingsSectionName());
-         } 
+         }
          return section;
     }
-    
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.dialogs.Dialog#createButtonsForButtonBar(org.eclipse.swt.widgets.Composite)
 	 */
@@ -154,5 +154,5 @@
 		// create OK and Cancel buttons by default
 		createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL,
 				true);
-	}    
+	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/VMInstallWizard.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/VMInstallWizard.java
index b155b28..27ac354 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/VMInstallWizard.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/VMInstallWizard.java
@@ -27,22 +27,22 @@
 
 /**
  * @since 3.3
- * 
+ *
  */
 public abstract class VMInstallWizard extends Wizard {
-	
+
 	private VMStandin fEditVM;
 	private String[] fExistingNames;
-	
+
 	/**
 	 * Constructs a new wizard to add/edit a vm install.
-	 * 
+	 *
 	 * @param editVM the VM being edited, or <code>null</code> if none
 	 * @param currentInstalls current VM installs used to validate name changes
 	 */
 	public VMInstallWizard(VMStandin editVM, IVMInstall[] currentInstalls) {
 		fEditVM = editVM;
-		List<String> names = new ArrayList<String>(currentInstalls.length);
+		List<String> names = new ArrayList<>(currentInstalls.length);
 		for (int i = 0; i < currentInstalls.length; i++) {
 			IVMInstall install = currentInstalls[i];
 			if (!install.equals(editVM)) {
@@ -51,19 +51,19 @@
 		}
 		fExistingNames = names.toArray(new String[names.size()]);
 	}
-	
+
 	/**
 	 * Returns the VM to edit, or <code>null</code> if creating a VM
-	 * 
+	 *
 	 * @return vm to edit or <code>null</code>
 	 */
 	protected VMStandin getVMInstall() {
 		return fEditVM;
 	}
-	
+
 	/**
 	 * Returns the resulting VM after edit or creation or <code>null</code> if none.
-	 * 
+	 *
 	 * @return resulting VM
 	 */
 	protected abstract VMStandin getResult();
@@ -75,10 +75,10 @@
 	public boolean performFinish() {
 		return getResult() != null;
 	}
-	
+
 	/**
 	 * Returns a page to use for editing a VM install type
-	 * 
+	 *
 	 * @param type
 	 * @return
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/VMLibraryBlock.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/VMLibraryBlock.java
index d8e8bfd..8db0dfc 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/VMLibraryBlock.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/VMLibraryBlock.java
@@ -7,7 +7,7 @@
  *
  * Contributors:
  *     IBM Corporation - initial API and implementation
- *     Frits Jalvingh - Contribution for Bug 459831 - [launching] Support attaching 
+ *     Frits Jalvingh - Contribution for Bug 459831 - [launching] Support attaching
  *     	external annotations to a JRE container
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui.jres;
@@ -53,7 +53,7 @@
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.FileDialog;
- 
+
 /**
  * Control used to edit the libraries associated with a VM install
  */
@@ -64,15 +64,15 @@
 	 * dialog.
 	 */
 	protected static final String LAST_PATH_SETTING = "LAST_PATH_SETTING"; //$NON-NLS-1$
-	
+
 	/**
 	 * the prefix for dialog setting pertaining to this block
 	 */
 	protected static final String DIALOG_SETTINGS_PREFIX = "VMLibraryBlock"; //$NON-NLS-1$
-	
+
 	protected boolean fInCallback = false;
 	protected VMStandin fVmInstall;
-	
+
 	//widgets
 	protected LibraryContentProvider fLibraryContentProvider;
 	protected TreeViewer fLibraryViewer;
@@ -83,20 +83,20 @@
 	private Button fJavadocButton;
 	private Button fSourceButton;
 	protected Button fDefaultButton;
-	
+
 	private IStatus[] fLibStatus;
-	
+
 	private Button fAnnotationsButton;
 
 	/**
 	 * Constructs a new wizard page with the given name.
-	 * 
+	 *
 	 * @param pageName page name
 	 */
 	VMLibraryBlock() {
 		super(JREMessages.VMLibraryBlock_2);
 		fLibStatus = new IStatus[]{Status.OK_STATUS};
-	}	
+	}
 
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
@@ -104,9 +104,9 @@
 	@Override
 	public void createControl(Composite parent) {
 		Font font = parent.getFont();
-		
+
 		Composite comp = SWTFactory.createComposite(parent, font, 2, 1, GridData.FILL_BOTH, 0, 0);
-		
+
 		fLibraryViewer= new TreeViewer(comp);
 		GridData gd = new GridData(GridData.FILL_BOTH);
 		gd.heightHint = 6;
@@ -116,11 +116,11 @@
 		fLibraryViewer.setLabelProvider(new LibraryLabelProvider());
 		fLibraryViewer.setInput(this);
 		fLibraryViewer.addSelectionChangedListener(this);
-		
-		Composite pathButtonComp = SWTFactory.createComposite(comp, font, 1, 1, GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_FILL, 0, 0); 
+
+		Composite pathButtonComp = SWTFactory.createComposite(comp, font, 1, 1, GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_FILL, 0, 0);
 		fAddButton = SWTFactory.createPushButton(pathButtonComp, JREMessages.VMLibraryBlock_7, JREMessages.VMLibraryBlock_16, null);
 		fAddButton.addSelectionListener(this);
-		fJavadocButton = SWTFactory.createPushButton(pathButtonComp, JREMessages.VMLibraryBlock_3, JREMessages.VMLibraryBlock_17, null); 
+		fJavadocButton = SWTFactory.createPushButton(pathButtonComp, JREMessages.VMLibraryBlock_3, JREMessages.VMLibraryBlock_17, null);
 		fJavadocButton.setEnabled(false);
 		fJavadocButton.addSelectionListener(this);
 
@@ -142,7 +142,7 @@
 				}
 			}
 		});
-		fRemoveButton = SWTFactory.createPushButton(pathButtonComp, JREMessages.VMLibraryBlock_6, JREMessages.VMLibraryBlock_12, null);		
+		fRemoveButton = SWTFactory.createPushButton(pathButtonComp, JREMessages.VMLibraryBlock_6, JREMessages.VMLibraryBlock_12, null);
 		fRemoveButton.setEnabled(false);
 		fRemoveButton.addSelectionListener(this);
 		fUpButton = SWTFactory.createPushButton(pathButtonComp, JREMessages.VMLibraryBlock_4, JREMessages.VMLibraryBlock_13, null);
@@ -153,7 +153,7 @@
 		fDownButton.addSelectionListener(this);
 		fDefaultButton = SWTFactory.createPushButton(pathButtonComp, JREMessages.VMLibraryBlock_9, JREMessages.VMLibraryBlock_15, null);
 		fDefaultButton.addSelectionListener(this);
-		
+
 		setControl(comp);
 	}
 
@@ -192,7 +192,7 @@
 		fLibraryContentProvider.setLibraries(libs);
 		update();
 	}
-	
+
 	/**
 	 * Updates buttons and status based on current libraries
 	 */
@@ -224,7 +224,7 @@
 			getContainer().updateButtons();
 		}
 	}
-	
+
 	/**
 	 * Determines if the current libraries displayed to the user are the default location
 	 * for the given vm working copy.
@@ -233,7 +233,7 @@
 	 */
 	protected boolean isDefaultLocations(IVMInstall vm) {
 		LibraryLocation[] libraryLocations = fLibraryContentProvider.getLibraries();
-        
+
 		if (vm == null || libraryLocations == null) {
 			return true;
 		}
@@ -257,7 +257,7 @@
 	 */
 	@Override
 	public void widgetSelected(SelectionEvent e) {
-		boolean completed = true; 
+		boolean completed = true;
 		Object source= e.getSource();
 		if (source == fUpButton) {
 			fLibraryContentProvider.up((IStructuredSelection) fLibraryViewer.getSelection());
@@ -267,7 +267,7 @@
 			fLibraryContentProvider.remove((IStructuredSelection) fLibraryViewer.getSelection());
 		} else if (source == fAddButton) {
 			completed = add((IStructuredSelection) fLibraryViewer.getSelection());
-		} 
+		}
 		else if(source == fJavadocButton) {
 			edit((IStructuredSelection) fLibraryViewer.getSelection(), SubElement.JAVADOC_URL);
 		}
@@ -311,14 +311,14 @@
 		}
 		String[] fileNames= dialog.getFileNames();
 		int nChosen= fileNames.length;
-			
+
 		IPath filterPath= new Path(dialog.getFilterPath());
 		LibraryLocation[] libs= new LibraryLocation[nChosen];
 		for (int i= 0; i < nChosen; i++) {
 			libs[i]= new LibraryLocation(filterPath.append(fileNames[i]).makeAbsolute(), Path.EMPTY, Path.EMPTY);
 		}
 		dialogSettings.put(LAST_PATH_SETTING, filterPath.toOSString());
-		
+
 		fLibraryContentProvider.add(libs, selection);
 		return true;
 	}
@@ -344,12 +344,12 @@
 				if (urls != null) {
 					fLibraryContentProvider.setJavadoc(urls[0], selection);
 				}
-			} 
+			}
 			else if(type == SubElement.SOURCE_PATH){
 				IRuntimeClasspathEntry entry = JavaRuntime.newArchiveRuntimeClasspathEntry(library.getSystemLibraryPath());
 				entry.setSourceAttachmentPath(library.getSystemLibrarySourcePath());
 				entry.setSourceAttachmentRootPath(library.getPackageRootPath());
-				IClasspathEntry classpathEntry = BuildPathDialogAccess.configureSourceAttachment(fLibraryViewer.getControl().getShell(), entry.getClasspathEntry()); 
+				IClasspathEntry classpathEntry = BuildPathDialogAccess.configureSourceAttachment(fLibraryViewer.getControl().getShell(), entry.getClasspathEntry());
 				if (classpathEntry != null) {
 					fLibraryContentProvider.setSourcePath(classpathEntry.getSourceAttachmentPath(), classpathEntry.getSourceAttachmentRootPath(), selection);
 				}
@@ -392,9 +392,9 @@
 	private void updateButtons() {
 		IStructuredSelection selection = (IStructuredSelection) fLibraryViewer.getSelection();
 		fRemoveButton.setEnabled(!selection.isEmpty());
-		boolean enableUp = true, 
-				enableDown = true, 
-				allSource = true, 
+		boolean enableUp = true,
+				enableDown = true,
+				allSource = true,
 				allJavadoc = true,
 				allAnnotations = true,
 				allRoots = true;
@@ -486,13 +486,13 @@
 		fVmInstall = vm;
 		fLibraryContentProvider.setLibraries(libraryLocations);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.debug.ui.launchConfigurations.AbstractVMInstallPage#getVMStatus()
 	 */
 	@Override
 	protected IStatus[] getVMStatus() {
 		return fLibStatus;
-	}	
-		
+	}
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/VMTypePage.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/VMTypePage.java
index fdb234f..85ae2b8 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/VMTypePage.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/VMTypePage.java
@@ -41,20 +41,20 @@
 
 /**
  * Wizard page used to select a VM type.
- * 
+ *
  * @since 3.3
  */
 public class VMTypePage extends WizardPage {
-	
+
 	private ListViewer fTypesViewer;
-	
+
 	private AbstractVMInstallPage fNextPage;
-	
+
 	/**
 	 * Keep track of pages created, so we can dispose of them.
 	 */
-	private Set<AbstractVMInstallPage> fPages = new HashSet<AbstractVMInstallPage>();
-	
+	private Set<AbstractVMInstallPage> fPages = new HashSet<>();
+
 	/**
 	 * Label provider for VM types
 	 */
@@ -71,9 +71,9 @@
 			}
 			return super.getText(element);
 		}
-		
+
 	}
-	
+
 	/**
 	 * Constructs a VM type selection page
 	 */
@@ -82,8 +82,8 @@
 		setDescription(JREMessages.VMTypePage_1);
 		setTitle(JREMessages.VMTypePage_2);
 	}
-	
-	
+
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.dialogs.DialogPage#dispose()
 	 */
@@ -104,9 +104,9 @@
 	@Override
 	public void createControl(Composite parent) {
 		Composite composite = SWTFactory.createComposite(parent, 1, 1, GridData.FILL_BOTH);
-		
+
 		SWTFactory.createLabel(composite, JREMessages.VMTypePage_3, 1);
-		
+
 		fTypesViewer = new ListViewer(composite, SWT.SINGLE | SWT.BORDER);
 		GridData data = new GridData(GridData.FILL_BOTH);
         data.heightHint = 250;
@@ -139,17 +139,17 @@
 		setControl(composite);
 		fTypesViewer.setSelection(new StructuredSelection(JavaRuntime.getVMInstallType(StandardVMType.ID_STANDARD_VM_TYPE)));
 		updateNextPage();
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), IJavaDebugHelpContextIds.ADD_NEW_JRE_WIZARD_PAGE);	
+		PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), IJavaDebugHelpContextIds.ADD_NEW_JRE_WIZARD_PAGE);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.dialogs.IDialogPage#getImage()
 	 */
 	@Override
 	public Image getImage() {
 		return JavaDebugImages.get(JavaDebugImages.IMG_WIZBAN_LIBRARY);
-	}	
-	
+	}
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.wizard.WizardPage#getNextPage()
 	 */
@@ -157,7 +157,7 @@
 	public IWizardPage getNextPage() {
 		return fNextPage;
 	}
-	
+
 	private void updateNextPage() {
 		if (isPageComplete()) {
 			IStructuredSelection selection = (IStructuredSelection)fTypesViewer.getSelection();
@@ -171,7 +171,7 @@
 				fNextPage = page;
 				fPages.add(page);
 			}
-		}		
+		}
 	}
 
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/AbstractJavaClasspathTab.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/AbstractJavaClasspathTab.java
index d3bda87..14a9fb8 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/AbstractJavaClasspathTab.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/AbstractJavaClasspathTab.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -14,11 +14,11 @@
 
 /**
  * Common function for Java launch tabs display runtime classpath entries.
- * 
+ *
  * @since 3.2
  */
 public abstract class AbstractJavaClasspathTab extends JavaLaunchTab implements IEntriesChangedListener {
-			
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.launcher.IEntriesChangedListener#entriesChanged(org.eclipse.jdt.internal.debug.ui.launcher.IClasspathViewer)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/AbstractJavaMainTab.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/AbstractJavaMainTab.java
index 82375f0..c418a22 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/AbstractJavaMainTab.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/AbstractJavaMainTab.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -41,11 +41,11 @@
 import org.eclipse.ui.dialogs.ElementListSelectionDialog;
 
 /**
- * Provides general widgets and methods for a Java type launch configuration 
- * 'Main' tab. 
+ * Provides general widgets and methods for a Java type launch configuration
+ * 'Main' tab.
  * Currently there are only three Java type launch configurations: Local Java Application, Applet, and Remote Debug
  * which this class is used by
- * 
+ *
  * @since 3.2
  */
 public abstract class AbstractJavaMainTab extends JavaLaunchTab {
@@ -55,15 +55,15 @@
  * in this tab.
  */
 private class WidgetListener implements ModifyListener, SelectionListener {
-	
+
 	@Override
 	public void modifyText(ModifyEvent e) {
 		updateLaunchConfigurationDialog();
 	}
-	
+
 	@Override
 	public void widgetDefaultSelected(SelectionEvent e) {/*do nothing*/}
-	
+
 	@Override
 	public void widgetSelected(SelectionEvent e) {
 		Object source = e.getSource();
@@ -75,15 +75,15 @@
 		}
 	}
 }
-	
+
 	protected static final String EMPTY_STRING = ""; //$NON-NLS-1$
 	//Project UI widgets
 	protected Text fProjText;
 
 	private Button fProjButton;
-	
+
 	private WidgetListener fListener = new WidgetListener();
-	
+
 	/**
 	 * chooses a project for the type of java launch config that it is
 	 * @return the selected project or <code>null</code> if none
@@ -91,8 +91,8 @@
 	private IJavaProject chooseJavaProject() {
 		ILabelProvider labelProvider= new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_DEFAULT);
 		ElementListSelectionDialog dialog= new ElementListSelectionDialog(getShell(), labelProvider);
-		dialog.setTitle(LauncherMessages.AbstractJavaMainTab_4); 
-		dialog.setMessage(LauncherMessages.AbstractJavaMainTab_3); 
+		dialog.setTitle(LauncherMessages.AbstractJavaMainTab_4);
+		dialog.setMessage(LauncherMessages.AbstractJavaMainTab_3);
 		try {
 			dialog.setElements(JavaCore.create(getWorkspaceRoot()).getJavaProjects());
 		}
@@ -101,15 +101,15 @@
 		if (javaProject != null) {
 			dialog.setInitialSelections(new Object[] { javaProject });
 		}
-		if (dialog.open() == Window.OK) {			
+		if (dialog.open() == Window.OK) {
 			return (IJavaProject) dialog.getFirstResult();
-		}		
-		return null;		
+		}
+		return null;
 	}
-	
+
 	/**
 	 * Creates the widgets for specifying a main type.
-	 * 
+	 *
 	 * @param parent the parent composite
 	 */
 	protected void createProjectEditor(Composite parent) {
@@ -117,27 +117,27 @@
 		fProjText = SWTFactory.createSingleText(group, 1);
 		fProjText.addModifyListener(fListener);
 		ControlAccessibleListener.addListener(fProjText, group.getText());
-		fProjButton = createPushButton(group, LauncherMessages.AbstractJavaMainTab_1, null); 
+		fProjButton = createPushButton(group, LauncherMessages.AbstractJavaMainTab_1, null);
 		fProjButton.addSelectionListener(fListener);
-	}	
-	
+	}
+
 	/**
 	 * returns the default listener from this class. For all subclasses
 	 * this listener will only provide the functionality of updating the current tab
-	 * 
+	 *
 	 * @return a widget listener
 	 */
 	protected WidgetListener getDefaultListener() {
 		return fListener;
 	}
-	
+
 	/**
 	 * Convenience method to get access to the java model.
 	 */
 	private IJavaModel getJavaModel() {
 		return JavaCore.create(getWorkspaceRoot());
 	}
-	
+
 	/**
 	 * Return the IJavaProject corresponding to the project name in the project name
 	 * text field, or null if the text does not match a project name.
@@ -147,7 +147,7 @@
 		if (projectName.length() < 1) {
 			return null;
 		}
-		return getJavaModel().getJavaProject(projectName);		
+		return getJavaModel().getJavaProject(projectName);
 	}
 
 	/**
@@ -168,9 +168,9 @@
 			return;
 		}
 		String projectName = project.getElementName();
-		fProjText.setText(projectName);		
+		fProjText.setText(projectName);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#initializeFrom(org.eclipse.debug.core.ILaunchConfiguration)
 	 */
@@ -179,7 +179,7 @@
 		updateProjectFromConfig(config);
 		super.initializeFrom(config);
 	}
-	
+
 	/**
 	 * updates the project text field form the configuration
 	 * @param config the configuration we are editing
@@ -187,17 +187,17 @@
 	private void updateProjectFromConfig(ILaunchConfiguration config) {
 		String projectName = EMPTY_STRING;
 		try {
-			projectName = config.getAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, EMPTY_STRING);	
+			projectName = config.getAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, EMPTY_STRING);
 		}
 		catch (CoreException ce) {
 			setErrorMessage(ce.getStatus().getMessage());
 		}
 		fProjText.setText(projectName);
 	}
-	
+
 	/**
 	 * Maps the config to associated java resource
-	 * 
+	 *
 	 * @param config
 	 */
 	protected void mapResources(ILaunchConfigurationWorkingCopy config)  {
@@ -210,6 +210,6 @@
 		} catch(CoreException ce) {
 			setErrorMessage(ce.getStatus().getMessage());
 		}
-	}	
-	
+	}
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/AppletLaunchConfigurationUtils.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/AppletLaunchConfigurationUtils.java
index e6e501a..bd9c727 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/AppletLaunchConfigurationUtils.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/AppletLaunchConfigurationUtils.java
@@ -43,11 +43,11 @@
 import org.eclipse.osgi.util.NLS;
 
 public class AppletLaunchConfigurationUtils {
-	
+
 	/**
 	 * Throws a core exception with an error status object built from
 	 * the given message, lower level exception, and error code.
-	 * 
+	 *
 	 * @param message the status message
 	 * @param exception lower level exception associated with the
 	 *  error, or <code>null</code> if none
@@ -65,13 +65,13 @@
 	}
 
 	/**
-	 * Return the <code>IType</code> referenced by the specified name and contained in 
-	 * the specified project or throw a <code>CoreException</code> whose message explains why 
+	 * Return the <code>IType</code> referenced by the specified name and contained in
+	 * the specified project or throw a <code>CoreException</code> whose message explains why
 	 * this couldn't be done.
 	 */
 	public static IType getMainType(String mainTypeName, IJavaProject javaProject) throws CoreException {
 		if ((mainTypeName == null) || (mainTypeName.trim().length() < 1)) {
-			abort(LauncherMessages.appletlauncher_utils_error_main_type_not_specified, null, IJavaLaunchConfigurationConstants.ERR_UNSPECIFIED_MAIN_TYPE); 
+			abort(LauncherMessages.appletlauncher_utils_error_main_type_not_specified, null, IJavaLaunchConfigurationConstants.ERR_UNSPECIFIED_MAIN_TYPE);
 		}
 		IType mainType = null;
 		try {
@@ -79,11 +79,11 @@
 		} catch (JavaModelException jme) {
 		}
 		if (mainType == null) {
-			abort(NLS.bind(LauncherMessages.appletlauncher_utils_error_main_type_does_not_exist, new String[] {mainTypeName, javaProject.getElementName()}), null, IJavaLaunchConfigurationConstants.ERR_UNSPECIFIED_MAIN_TYPE); 
+			abort(NLS.bind(LauncherMessages.appletlauncher_utils_error_main_type_does_not_exist, new String[] {mainTypeName, javaProject.getElementName()}), null, IJavaLaunchConfigurationConstants.ERR_UNSPECIFIED_MAIN_TYPE);
 		}
 		return mainType;
-	}		
-	
+	}
+
 
 	/**
 	 * Find the specified (fully-qualified) type name in the specified java project.
@@ -100,15 +100,15 @@
 		} else if (javaElement.getElementType() == IJavaElement.CLASS_FILE) {
 			return ((IClassFile) javaElement).getType();
 		}
-		return null; 
+		return null;
 	}
 
 	/**
-	 * 
+	 *
 	 */
 	public static Set<IType> collectAppletTypesInProject(IProgressMonitor monitor, IJavaProject project) {
 		IType[] types;
-		HashSet<IType> result = new HashSet<IType>(5);
+		HashSet<IType> result = new HashSet<>(5);
 		try {
 			IType javaLangApplet = AppletLaunchConfigurationUtils.getMainType("java.applet.Applet", project); //$NON-NLS-1$
 			ITypeHierarchy hierarchy = javaLangApplet.newTypeHierarchy(project, new SubProgressMonitor(monitor, 1));
@@ -127,7 +127,7 @@
 		monitor.done();
 		return result;
 	}
-	
+
 	public static void collectTypes(Object element, IProgressMonitor monitor, Set<Object> result) throws JavaModelException/*, InvocationTargetException*/ {
 		element= computeScope(element);
 		while(element instanceof IMember) {
@@ -174,13 +174,13 @@
 	}
 
 	private static List<IType> searchSubclassesOfApplet(IProgressMonitor pm, IJavaElement javaElement) {
-		return new ArrayList<IType>(collectAppletTypesInProject(pm, javaElement.getJavaProject()));
+		return new ArrayList<>(collectAppletTypesInProject(pm, javaElement.getJavaProject()));
 	}
-	
+
 	private static boolean isSubclassOfApplet(IProgressMonitor pm, IType type) {
 		return collectAppletTypesInProject(pm, type.getJavaProject()).contains(type);
 	}
-	
+
 	private static Object computeScope(Object element) {
         if (element instanceof IJavaElement) {
             return element;
@@ -196,7 +196,7 @@
 			} else {
 			    element= javaElement;
             }
-            
+
 		}
 		return element;
 	}
@@ -210,14 +210,14 @@
 	 * @throws InterruptedException
 	 */
 	public static IType[] findApplets(IRunnableContext context, final Object[] elements) throws InvocationTargetException, InterruptedException {
-		final Set<Object> result= new HashSet<Object>();
-	
+		final Set<Object> result= new HashSet<>();
+
 		if (elements.length > 0) {
 			IRunnableWithProgress runnable= new IRunnableWithProgress() {
 				@Override
 				public void run(IProgressMonitor pm) throws InterruptedException {
 					int nElements= elements.length;
-					pm.beginTask(LauncherMessages.appletlauncher_search_task_inprogress, nElements); 
+					pm.beginTask(LauncherMessages.appletlauncher_search_task_inprogress, nElements);
 					try {
 						for (int i= 0; i < nElements; i++) {
 							try {
@@ -234,7 +234,7 @@
 					}
 				}
 			};
-			context.run(true, true, runnable);			
+			context.run(true, true, runnable);
 		}
 		return result.toArray(new IType[result.size()]) ;
 	}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/AppletSelectionDialog.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/AppletSelectionDialog.java
index 95f2286..dce9b39 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/AppletSelectionDialog.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/AppletSelectionDialog.java
@@ -88,7 +88,7 @@
 		setElements(types);
 		return super.open();
 	}
-	
+
 	/**
 	 * Return all types extending <code>java.lang.Applet</code> in the project, or
 	 * all types extending Applet in the workspace if the project is <code>null</code>.
@@ -108,23 +108,23 @@
 		} else {
 			javaProjects = new IJavaProject[] {fProject};
 		}
-		
-		// For each java project, calculate the Applet types it contains and add 
+
+		// For each java project, calculate the Applet types it contains and add
 		// them to the results
 		final int projectCount = javaProjects.length;
-		final Set<IType> results = new HashSet<IType>(projectCount);
+		final Set<IType> results = new HashSet<>(projectCount);
 		boolean canceled = false;
 		try {
 			fRunnableContext.run(true, true, new IRunnableWithProgress() {
 				@Override
-				public void run(IProgressMonitor monitor) {	
-					monitor.beginTask(LauncherMessages.AppletSelectionDialog_Searching____1, projectCount); 
+				public void run(IProgressMonitor monitor) {
+					monitor.beginTask(LauncherMessages.AppletSelectionDialog_Searching____1, projectCount);
 					for (int i = 0; i < projectCount; i++) {
 						IJavaProject javaProject = javaProjects[i];
-						SubProgressMonitor subMonitor = new SubProgressMonitor(monitor, 1); 
+						SubProgressMonitor subMonitor = new SubProgressMonitor(monitor, 1);
 						results.addAll(AppletLaunchConfigurationUtils.collectAppletTypesInProject(subMonitor, javaProject));
 						monitor.worked(1);
-					}					
+					}
 					monitor.done();
 				}
 			});
@@ -138,8 +138,8 @@
 			return null;
 		}
 		IType[] types = null;
-		types = results.toArray(new IType[results.size()]);		
-		return types; 
+		types = results.toArray(new IType[results.size()]);
+		return types;
 	}
 
 	/**
@@ -167,5 +167,5 @@
 	private IWorkspaceRoot getWorkspaceRoot() {
 		return ResourcesPlugin.getWorkspace().getRoot();
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/AppletWorkingDirectoryBlock.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/AppletWorkingDirectoryBlock.java
index 97d2ae5..2c9db42 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/AppletWorkingDirectoryBlock.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/AppletWorkingDirectoryBlock.java
@@ -14,7 +14,7 @@
 import org.eclipse.core.runtime.Path;
 import org.eclipse.jdt.launching.JavaRuntime;
 
- 
+
 public class AppletWorkingDirectoryBlock extends JavaWorkingDirectoryBlock {
 
 	/**
@@ -28,7 +28,7 @@
 			setDefaultWorkingDirectoryText("${workspace_loc:"  + outputDir + "}");  //$NON-NLS-1$//$NON-NLS-2$
 		} else {
 			super.setDefaultWorkingDir();
-		}		
+		}
 	}
 
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/ArchiveFileFilter.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/ArchiveFileFilter.java
index 0a0e255..a472c3d 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/ArchiveFileFilter.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/ArchiveFileFilter.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -32,10 +32,10 @@
 	private static final String[] fgArchiveExtensions= { "jar", "zip" }; //$NON-NLS-1$ //$NON-NLS-2$
 
 	private List<IFile> fExcludes;
-	
+
 	/**
 	 * @param excludedFiles Excluded files will not pass the filter.
-	 * <code>null</code> is allowed if no files should be excluded. 
+	 * <code>null</code> is allowed if no files should be excluded.
 	 */
 	public ArchiveFileFilter(IFile[] excludedFiles) {
 		if (excludedFiles != null) {
@@ -44,7 +44,7 @@
 			fExcludes= null;
 		}
 	}
-	
+
 	/*
 	 * @see ViewerFilter#select
 	 */
@@ -66,11 +66,11 @@
 				}
 			} catch (CoreException e) {
 				JDIDebugUIPlugin.log(e.getStatus());
-			}				
+			}
 		}
 		return false;
 	}
-	
+
 	public static boolean isArchivePath(IPath path) {
 		String ext= path.getFileExtension();
 		if (ext != null && ext.length() != 0) {
@@ -81,7 +81,7 @@
 			}
 		}
 		return false;
-	}		
-	
-			
+	}
+
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/DebugTypeSelectionDialog.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/DebugTypeSelectionDialog.java
index 4ded676..783497d 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/DebugTypeSelectionDialog.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/DebugTypeSelectionDialog.java
@@ -42,17 +42,17 @@
 /**
  * This is a specialization of <code>FilteredItemsSelectionDialog</code> used to present
  * users with a listing of <code>IType</code>s that contain main methods
- * 
+ *
  * @since 3.3
- * 
+ *
  */
 public class DebugTypeSelectionDialog extends FilteredItemsSelectionDialog {
-	
+
 	/**
 	 * Main list label provider
 	 */
 	public class DebugTypeLabelProvider implements ILabelProvider {
-		HashMap<ImageDescriptor, Image> fImageMap = new HashMap<ImageDescriptor, Image>();
+		HashMap<ImageDescriptor, Image> fImageMap = new HashMap<>();
 
 		@Override
 		public Image getImage(Object element) {
@@ -83,7 +83,7 @@
 			}
 			return null;
 		}
-		
+
 		/**
 		 * Returns the name of the declaring container name
 		 * @param type the type to find the container name for
@@ -100,9 +100,9 @@
 			}
 			return name;
 		}
-		
+
 		/**
-		 * Returns the narrowest enclosing <code>IJavaElement</code> which is either 
+		 * Returns the narrowest enclosing <code>IJavaElement</code> which is either
 		 * an <code>IType</code> (enclosing) or an <code>IPackageFragment</code> (contained in)
 		 * @param type the type to find the enclosing <code>IJavaElement</code> for.
 		 * @return the enclosing element or <code>null</code> if none
@@ -127,7 +127,7 @@
 		@Override
 		public void removeListener(ILabelProviderListener listener) {}
 	}
-	
+
 	/**
 	 * Provides a label and image for the details area of the dialog
 	 */
@@ -143,7 +143,7 @@
 						if(project != null) {
 							try {
 								return project.getOutputLocation().toOSString().substring(1)+" - "+name; //$NON-NLS-1$
-							} 
+							}
 							catch (JavaModelException e) {JDIDebugUIPlugin.log(e);}
 						}
 					}
@@ -162,7 +162,7 @@
 			return super.getImage(element);
 		}
 	}
-	
+
 	/**
 	 * Simple items filter
 	 */
@@ -179,14 +179,14 @@
 			return matches(((IType)item).getElementName());
 		}
 	}
-	
+
 	/**
 	 * The selection history for the dialog
 	 */
 	class DebugTypeSelectionHistory extends SelectionHistory {
 		@Override
 		protected Object restoreItemFromMemento(IMemento memento) {
-			IJavaElement element = JavaCore.create(memento.getTextData()); 
+			IJavaElement element = JavaCore.create(memento.getTextData());
 			return (element instanceof IType ? element : null);
 		}
 		@Override
@@ -196,7 +196,7 @@
 			}
 		}
 	}
-	
+
 	private static final String SETTINGS_ID = JDIDebugUIPlugin.getUniqueIdentifier() + ".MAIN_METHOD_SELECTION_DIALOG"; //$NON-NLS-1$
 	private IType[] fTypes = null;
 
@@ -234,7 +234,7 @@
 		IDialogSettings section = settings.getSection(SETTINGS_ID);
 		if (section == null) {
 			section = settings.addNewSection(SETTINGS_ID);
-		} 
+		}
 		return section;
 	}
 
@@ -254,7 +254,7 @@
         };
         return comp;
 	}
-	
+
 	/**
 	 * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#validateItem(java.lang.Object)
 	 */
@@ -262,7 +262,7 @@
 	protected IStatus validateItem(Object item) {
 		return Status.OK_STATUS;
 	}
-	
+
 	/**
 	 * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#createExtendedContentArea(org.eclipse.swt.widgets.Composite)
 	 */
@@ -292,7 +292,7 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#getElementName(java.lang.Object)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/DefineSystemLibraryQuickFix.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/DefineSystemLibraryQuickFix.java
index 66afcf6..813175a 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/DefineSystemLibraryQuickFix.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/DefineSystemLibraryQuickFix.java
@@ -17,10 +17,10 @@
 import org.eclipse.ui.IMarkerResolution;
 
 /**
- * Quick fix to define a new system library (none were found). 
+ * Quick fix to define a new system library (none were found).
  */
 public class DefineSystemLibraryQuickFix implements IMarkerResolution {
-	
+
 	public DefineSystemLibraryQuickFix() {
 		super();
 	}
@@ -32,12 +32,12 @@
 	public void run(IMarker marker) {
 		JDIDebugUIPlugin.showPreferencePage(JREsPreferencePage.ID);
 	}
-	
+
 	/**
 	 * @see org.eclipse.ui.IMarkerResolution#getLabel()
 	 */
 	@Override
 	public String getLabel() {
-		return LauncherMessages.DefineSystemLibraryQuickFix_Create_a_system_library_definition_2; 
+		return LauncherMessages.DefineSystemLibraryQuickFix_Create_a_system_library_definition_2;
 	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/ExecutionEnvironmentSelector.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/ExecutionEnvironmentSelector.java
index 81241d3..0156101 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/ExecutionEnvironmentSelector.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/ExecutionEnvironmentSelector.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -36,7 +36,7 @@
 		dialog.setTitle(LauncherMessages.ExecutionEnvironmentSelector_0);
 		dialog.setMultipleSelection(false);
 		dialog.setMessage(LauncherMessages.ExecutionEnvironmentSelector_1);
-		dialog.setElements(JavaRuntime.getExecutionEnvironmentsManager().getExecutionEnvironments()); 
+		dialog.setElements(JavaRuntime.getExecutionEnvironmentsManager().getExecutionEnvironments());
 		if (dialog.open() == Window.OK) {
 			return (((IExecutionEnvironment)dialog.getResult()[0]).getId());
 		}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/IClasspathViewer.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/IClasspathViewer.java
index b9e12da..b44888d 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/IClasspathViewer.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/IClasspathViewer.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -24,7 +24,7 @@
 	/**
 	 * Returns the entries in this viewer that are the children of the parent element
 	 * associated with the selected item(s)
-	 * 
+	 *
 	 * @return the entries in this viewer
 	 */
 	public IRuntimeClasspathEntry[] getEntries();
@@ -32,7 +32,7 @@
 	/**
 	 * Sets the entries in this viewer to the given runtime classpath
 	 * entries
-	 * 
+	 *
 	 * @param entries runtime classpath entries
 	 */
 	public void setEntries(IRuntimeClasspathEntry[] entries);
@@ -51,10 +51,10 @@
 
 	/**
 	 * Adds the given entries to the list. If there is no selection
-	 * in the list, the entries are added at the end of the list, 
+	 * in the list, the entries are added at the end of the list,
 	 * otherwise the new entries are added before the (first) selected
 	 * entry. The new entries are selected.
-	 * 
+	 *
 	 * @param entries additions
 	 */
 	public void addEntries(IRuntimeClasspathEntry[] res);
@@ -73,14 +73,14 @@
 
 	/**
 	 * Returns the index of an equivalent entry, or -1 if none.
-	 * 
+	 *
 	 * @return the index of an equivalent entry, or -1 if none
 	 */
 	public int indexOf(IRuntimeClasspathEntry entry);
 
 	/**
 	 * Returns whether an action of the supplied action type should be enabled based on the supplied selection.
-	 * 
+	 *
 	 * @param actionType One of RuntimeClasspathAction constants defining the action type
 	 * @param selection The selection to use for the update
 	 * @return Whether the action of this type should be enabled based on the selection
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/IEntriesChangedListener.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/IEntriesChangedListener.java
index 1639b98..f484aba 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/IEntriesChangedListener.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/IEntriesChangedListener.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/JREResolution.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/JREResolution.java
index 16bd936..58c6d24 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/JREResolution.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/JREResolution.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -26,11 +26,11 @@
  * Superclass of for JRE resolution errors.
  */
 public abstract class JREResolution implements IMarkerResolution {
-	
+
 	/**
 	 * Prompts the user to choose a JRE for the given project.
 	 * Returns the selected VM or <code>null</code>.
-	 * 
+	 *
 	 * @param title the title for the dialog
 	 * @param message the message for the dialog
 	 * @return selected VM or <code>null</code>
@@ -44,15 +44,15 @@
 		dialog.open();
 		return (IVMInstall)dialog.getFirstResult();
 	}
-	
+
 	/**
 	 * Returns all defined VMs
-	 * 
+	 *
 	 * @return IVMInstall[]
 	 */
 	protected static IVMInstall[] getAllVMs() {
 		IVMInstallType[] types = JavaRuntime.getVMInstallTypes();
-		List<IVMInstall> vms = new ArrayList<IVMInstall>();
+		List<IVMInstall> vms = new ArrayList<>();
 		for (int i = 0; i < types.length; i++) {
 			IVMInstallType type = types[i];
 			IVMInstall[] installs = type.getVMInstalls();
@@ -60,7 +60,7 @@
 				vms.add(installs[j]);
 			}
 		}
-		return vms.toArray(new IVMInstall[vms.size()]);		
+		return vms.toArray(new IVMInstall[vms.size()]);
 	}
 
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/JavaAppletTabGroup.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/JavaAppletTabGroup.java
index e6f3e33..c92b3c7 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/JavaAppletTabGroup.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/JavaAppletTabGroup.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -23,13 +23,13 @@
 import org.eclipse.jdt.debug.ui.launchConfigurations.JavaJRETab;
 
 public class JavaAppletTabGroup extends AbstractLaunchConfigurationTabGroup {
-	
+
 	/**
 	 * Constructs a new Java applet tab group.
 	 */
 	public JavaAppletTabGroup() {
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTabGroup#createTabs(org.eclipse.debug.ui.ILaunchConfigurationDialog, java.lang.String)
 	 */
@@ -41,10 +41,10 @@
 			new AppletArgumentsTab(),
 			new JavaJRETab(),
 			new JavaClasspathTab(),
-			new SourceLookupTab(),	
+			new SourceLookupTab(),
 			new CommonTab()
 		};
 		setTabs(tabs);
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/JavaWorkingDirectoryBlock.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/JavaWorkingDirectoryBlock.java
index 8a46c96..3eec859 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/JavaWorkingDirectoryBlock.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/JavaWorkingDirectoryBlock.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *     Remy Chi Jian Suen <remy.suen@gmail.com>
@@ -25,7 +25,7 @@
 /**
  * A UI block allowing a working directory to be specified for a launch
  * configuration.
- * 
+ *
  * @since 3.4
  */
 public class JavaWorkingDirectoryBlock extends WorkingDirectoryBlock {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/JreResolutionGenerator.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/JreResolutionGenerator.java
index d8924d9..830b11b 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/JreResolutionGenerator.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/JreResolutionGenerator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -30,7 +30,7 @@
  * Generates quick fixes for unbound JREs.
  */
 public class JreResolutionGenerator implements IMarkerResolutionGenerator2 {
-	
+
 	private final static IMarkerResolution[] NO_RESOLUTION = new IMarkerResolution[0];
 
 	/**
@@ -39,10 +39,10 @@
 	@Override
 	public IMarkerResolution[] getResolutions(IMarker marker) {
 		try {
-			if(JavaRuntime.JRE_CONTAINER_MARKER.equals(marker.getType())) { 
-				return new IMarkerResolution[] {new OpenPreferencePageResolution(ExecutionEnvironmentsPreferencePage.ID, 
-						new String[] {ExecutionEnvironmentsPreferencePage.ID, JREsPreferencePage.ID}, 
-						LauncherMessages.JreResolutionGenerator_open_ee_prefs, 
+			if(JavaRuntime.JRE_CONTAINER_MARKER.equals(marker.getType())) {
+				return new IMarkerResolution[] {new OpenPreferencePageResolution(ExecutionEnvironmentsPreferencePage.ID,
+						new String[] {ExecutionEnvironmentsPreferencePage.ID, JREsPreferencePage.ID},
+						LauncherMessages.JreResolutionGenerator_open_ee_prefs,
 						LauncherMessages.JreResolutionGenerator_opens_ee_prefs)};
 			}
 			int id = marker.getAttribute(IJavaModelMarker.ID, -1);
@@ -61,7 +61,7 @@
 						return new IMarkerResolution[]{new DefineSystemLibraryQuickFix()};
 					}
 					break;
-	
+
 				// unbound classpath variable
 				case IJavaModelStatusConstants.CP_VARIABLE_PATH_UNBOUND :
 					arguments = CorrectionEngine.getProblemArguments(marker);
@@ -76,7 +76,7 @@
 					}
 					break;
 				// deprecated JRE library variables
-				case IJavaModelStatusConstants.DEPRECATED_VARIABLE : 
+				case IJavaModelStatusConstants.DEPRECATED_VARIABLE :
 					arguments = CorrectionEngine.getProblemArguments(marker);
 					path = new Path(arguments[0]);
 					if (path.segment(0).equals(JavaRuntime.JRELIB_VARIABLE) ||
@@ -92,7 +92,7 @@
 	}
 
 	/**
-	 * Returns the java project from the specified marker, or <code>null</code> if the marker 
+	 * Returns the java project from the specified marker, or <code>null</code> if the marker
 	 * does not have an associated java project
 	 * @param marker
 	 * @return the associated java project or <code>null</code>
@@ -108,7 +108,7 @@
 	public boolean hasResolutions(IMarker marker) {
 		try {
 			String type = marker.getType();
-			return IJavaModelMarker.BUILDPATH_PROBLEM_MARKER.equals(type) || 
+			return IJavaModelMarker.BUILDPATH_PROBLEM_MARKER.equals(type) ||
 				   JavaRuntime.JRE_CONTAINER_MARKER.equals(type);
 		} catch (CoreException ce) {}
 		return false;
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/LauncherMessages.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/LauncherMessages.java
index e329a2b..8b27be5 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/LauncherMessages.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/LauncherMessages.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *  IBM - Initial API and implementation
  *  BEA - Daniel R Somerfield - Bug 88939
@@ -90,7 +90,7 @@
 	public static String JavaClasspathTab_Invalid_runtime_classpath_1;
 
 	public static String JavaSourceLookupTab_Source_1;
-	
+
 	public static String SourceLookupBlock_Source_1;
 	public static String SourceLookupBlock__Source_Lookup_Path__1;
 	public static String SourceLookupBlock__Search_for_duplicate_source_files_on_path_1;
@@ -106,7 +106,7 @@
 	public static String AbstractJavaMainTab_2;
 	public static String AbstractJavaMainTab_4;
 	public static String AbstractJavaMainTab_3;
-	
+
 	public static String appletlauncher_argumenttab_widthlabel_text;
 	public static String appletlauncher_argumenttab_heightlabel_text;
 	public static String appletlauncher_argumenttab_namelabel_text;
@@ -156,7 +156,7 @@
 
 	public static String ExecutionEnvironmentSelector_0;
 	public static String ExecutionEnvironmentSelector_1;
-	
+
 	public static String JavaAppletLaunchShortcut_0;
 	public static String JavaAppletLaunchShortcut_1;
 	public static String JavaAppletLaunchShortcut_2;
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/LocalJavaApplicationTabGroup.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/LocalJavaApplicationTabGroup.java
index 0c982eb..28ef7a6 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/LocalJavaApplicationTabGroup.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/LocalJavaApplicationTabGroup.java
@@ -4,13 +4,13 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui.launcher;
 
- 
+
 import org.eclipse.debug.ui.AbstractLaunchConfigurationTabGroup;
 import org.eclipse.debug.ui.CommonTab;
 import org.eclipse.debug.ui.EnvironmentTab;
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/MainMethodSearchEngine.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/MainMethodSearchEngine.java
index ee84fd2..8e8fc2b 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/MainMethodSearchEngine.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/MainMethodSearchEngine.java
@@ -38,17 +38,17 @@
 import org.eclipse.jface.operation.IRunnableWithProgress;
 
 public class MainMethodSearchEngine{
-	
+
 	private class MethodCollector extends SearchRequestor {
 		private List<IType> fResult;
 
 		public MethodCollector() {
-			fResult = new ArrayList<IType>(200);
+			fResult = new ArrayList<>(200);
 		}
 
 		public List<IType> getResult() {
 			return fResult;
-		}	
+		}
 
 		/* (non-Javadoc)
 		 * @see org.eclipse.jdt.core.search.SearchRequestor#acceptSearchMatch(org.eclipse.jdt.core.search.SearchMatch)
@@ -74,18 +74,18 @@
 	 * Searches for all main methods in the given scope.
 	 * Valid styles are IJavaElementSearchConstants.CONSIDER_BINARIES and
 	 * IJavaElementSearchConstants.CONSIDER_EXTERNAL_JARS
-	 * 
+	 *
 	 * @param pm progress monitor
 	 * @param scope search scope
 	 * @param includeSubtypes whether to consider types that inherit a main method
-	 */	
+	 */
 	public IType[] searchMainMethods(IProgressMonitor pm, IJavaSearchScope scope, boolean includeSubtypes) {
-		pm.beginTask(LauncherMessages.MainMethodSearchEngine_1, 100); 
+		pm.beginTask(LauncherMessages.MainMethodSearchEngine_1, 100);
 		int searchTicks = 100;
 		if (includeSubtypes) {
 			searchTicks = 25;
 		}
-		
+
 		SearchPattern pattern = SearchPattern.createPattern("main(String[]) void", IJavaSearchConstants.METHOD, IJavaSearchConstants.DECLARATIONS, SearchPattern.R_EXACT_MATCH | SearchPattern.R_CASE_SENSITIVE); //$NON-NLS-1$
 		SearchParticipant[] participants = new SearchParticipant[] {SearchEngine.getDefaultSearchParticipant()};
 		MethodCollector collector = new MethodCollector();
@@ -99,7 +99,7 @@
 		List<IType> result = collector.getResult();
 		if (includeSubtypes) {
 			IProgressMonitor subtypesMonitor = new SubProgressMonitor(pm, 75);
-			subtypesMonitor.beginTask(LauncherMessages.MainMethodSearchEngine_2, result.size()); 
+			subtypesMonitor.beginTask(LauncherMessages.MainMethodSearchEngine_2, result.size());
 			Set<IType> set = addSubtypes(result, subtypesMonitor, scope);
 			return set.toArray(new IType[set.size()]);
 		}
@@ -107,7 +107,7 @@
 	}
 
 	/**
-	 * Adds subtypes and enclosed types to the listing of 'found' types 
+	 * Adds subtypes and enclosed types to the listing of 'found' types
 	 * @param types the list of found types thus far
 	 * @param monitor progress monitor
 	 * @param scope the scope of elements
@@ -115,7 +115,7 @@
 	 */
 	private Set<IType> addSubtypes(List<IType> types, IProgressMonitor monitor, IJavaSearchScope scope) {
 		Iterator<IType> iterator = types.iterator();
-		Set<IType> result = new HashSet<IType>(types.size());
+		Set<IType> result = new HashSet<>(types.size());
 		IType type = null;
 		ITypeHierarchy hierarchy = null;
 		IType[] subtypes = null;
@@ -129,34 +129,34 @@
 						if (scope.encloses(subtypes[i])) {
 							result.add(subtypes[i]);
 						}
-					}				
-				} 
+					}
+				}
 				catch (JavaModelException e) {JDIDebugUIPlugin.log(e);}
 			}
 			monitor.worked(1);
 		}
 		return result;
 	}
-	
-	
+
+
 	/**
 	 * Returns the package fragment root of <code>IJavaElement</code>. If the given
 	 * element is already a package fragment root, the element itself is returned.
 	 */
 	public static IPackageFragmentRoot getPackageFragmentRoot(IJavaElement element) {
 		return (IPackageFragmentRoot) element.getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT);
-	}	
-	
+	}
+
 	/**
 	 * Searches for all main methods in the given scope.
 	 * Valid styles are IJavaElementSearchConstants.CONSIDER_BINARIES and
 	 * IJavaElementSearchConstants.CONSIDER_EXTERNAL_JARS
-	 * 
+	 *
 	 * @param includeSubtypes whether to consider types that inherit a main method
 	 */
-	public IType[] searchMainMethods(IRunnableContext context, final IJavaSearchScope scope, final boolean includeSubtypes) throws InvocationTargetException, InterruptedException  {		
+	public IType[] searchMainMethods(IRunnableContext context, final IJavaSearchScope scope, final boolean includeSubtypes) throws InvocationTargetException, InterruptedException  {
 		final IType[][] res= new IType[1][];
-		
+
 		IRunnableWithProgress runnable= new IRunnableWithProgress() {
 			@Override
 			public void run(IProgressMonitor pm) throws InvocationTargetException {
@@ -164,8 +164,8 @@
 			}
 		};
 		context.run(true, true, runnable);
-		
+
 		return res[0];
 	}
-			
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/NameValuePairDialog.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/NameValuePairDialog.java
index 11d5339..9bf0627 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/NameValuePairDialog.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/NameValuePairDialog.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -34,7 +34,7 @@
 	private String fTitle;
 	private String[] fFieldLabels;
 	private String[] fInitialValues;
-	
+
 	private Label fNameLabel;
 	private Text fNameText;
 	private Label fValueLabel;
@@ -53,21 +53,21 @@
 	@Override
 	protected Control createDialogArea(Composite parent) {
 		Font font = parent.getFont();
-		
+
 		Composite comp = (Composite) super.createDialogArea(parent);
 		((GridLayout)comp.getLayout()).numColumns=2;
-		
+
 		fNameLabel = new Label(comp, SWT.NONE);
 		fNameLabel.setText(fFieldLabels[0]);
 		fNameLabel.setFont(font);
-		
+
 		ModifyListener listener= new ModifyListener() {
 			@Override
 			public void modifyText(ModifyEvent e) {
 				updateButtons();
 			}
 		};
-		
+
 		fNameText = new Text(comp, SWT.BORDER | SWT.SINGLE);
 		fNameText.setText(fInitialValues[0]);
 		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
@@ -75,23 +75,23 @@
 		fNameText.setLayoutData(gd);
 		fNameText.setFont(font);
 		fNameText.addModifyListener(listener);
-		
+
 		fValueLabel = new Label(comp, SWT.NONE);
 		fValueLabel.setText(fFieldLabels[1]);
 		fValueLabel.setFont(font);
-		
+
 		fValueText = new Text(comp, SWT.BORDER | SWT.SINGLE);
 		fValueText.setText(fInitialValues[1]);
 		gd = new GridData(GridData.FILL_HORIZONTAL);
 		gd.widthHint = 300;
 		fValueText.setLayoutData(gd);
 		fValueText.setFont(font);
-		fValueText.addModifyListener(listener);		
-		
+		fValueText.addModifyListener(listener);
+
 		applyDialogFont(comp);
 		return comp;
 	}
-	
+
 	/**
 	 * Return the name/value pair entered in this dialog.  If the cancel button was hit,
 	 * both will be <code>null</code>.
@@ -99,7 +99,7 @@
 	public String[] getNameValuePair() {
 		return new String[] {fName, fValue};
 	}
-	
+
 	/**
 	 * @see Dialog#buttonPressed(int)
 	 */
@@ -114,7 +114,7 @@
 		}
 		super.buttonPressed(buttonId);
 	}
-	
+
 	/**
 	 * @see Window#configureShell(Shell)
 	 */
@@ -125,7 +125,7 @@
 			shell.setText(fTitle);
 		}
 	}
-	
+
 	/**
 	 * Enable the OK button if valid input
 	 */
@@ -134,7 +134,7 @@
 		String value = fValueText.getText().trim();
 		getButton(IDialogConstants.OK_ID).setEnabled((name.length() > 0) &&(value.length() > 0));
 	}
-	
+
 	/**
 	 * Enable the buttons on creation.
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/OpenPreferencePageResolution.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/OpenPreferencePageResolution.java
index 3413508..89d5f59 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/OpenPreferencePageResolution.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/OpenPreferencePageResolution.java
@@ -22,7 +22,7 @@
 
 /**
  * Marker resolution to open a preference page
- * 
+ *
  * @since 3.5
  */
 public class OpenPreferencePageResolution implements IMarkerResolution2 {
@@ -31,10 +31,10 @@
 	private String label = null;
 	private String description = null;
 	private String[] additional = null;
-	
+
 	/**
 	 * Constructor
-	 * 
+	 *
 	 * @param pageid the id of the page to show
 	 * @param additional the page ids of additional pages to show as well
 	 * @param label the label to show for the resolution
@@ -46,7 +46,7 @@
 		this.label = label;
 		this.description = description;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.IMarkerResolution2#getDescription()
 	 */
@@ -80,7 +80,7 @@
 			@Override
 			public IStatus runInUIThread(IProgressMonitor monitor) {
 				SWTFactory.showPreferencePage(
-							OpenPreferencePageResolution.this.pageid, 
+							OpenPreferencePageResolution.this.pageid,
 							OpenPreferencePageResolution.this.additional);
 				return Status.OK_STATUS;
 			}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/ProjectClasspathArgumentSelector.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/ProjectClasspathArgumentSelector.java
index f78410e..899049c 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/ProjectClasspathArgumentSelector.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/ProjectClasspathArgumentSelector.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -38,7 +38,7 @@
 		dialog.setTitle(LauncherMessages.ProjectClasspathArugumentSelector_0);
 		dialog.setMultipleSelection(false);
 		dialog.setMessage(LauncherMessages.ProjectClasspathArugumentSelector_1);
-		List<IJavaProject> javaProjects = new ArrayList<IJavaProject>();
+		List<IJavaProject> javaProjects = new ArrayList<>();
 		IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
 		for (int i = 0; i < projects.length; i++) {
 			IJavaProject jp = JavaCore.create(projects[i]);
@@ -46,7 +46,7 @@
 				javaProjects.add(jp);
 			}
 		}
-		dialog.setElements(javaProjects.toArray()); 
+		dialog.setElements(javaProjects.toArray());
 		if (dialog.open() == Window.OK) {
 			return (((IJavaProject)dialog.getResult()[0]).getElementName());
 		}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/RemoteJavaApplicationTabGroup.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/RemoteJavaApplicationTabGroup.java
index 79e0b1c..1e70373 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/RemoteJavaApplicationTabGroup.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/RemoteJavaApplicationTabGroup.java
@@ -4,13 +4,13 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui.launcher;
 
- 
+
 import org.eclipse.debug.ui.AbstractLaunchConfigurationTabGroup;
 import org.eclipse.debug.ui.CommonTab;
 import org.eclipse.debug.ui.ILaunchConfigurationDialog;
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/RuntimeClasspathAdvancedDialog.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/RuntimeClasspathAdvancedDialog.java
index 421c8d6..7fcf993 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/RuntimeClasspathAdvancedDialog.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/RuntimeClasspathAdvancedDialog.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -39,8 +39,8 @@
 public class RuntimeClasspathAdvancedDialog extends Dialog {
 
 	private IAction[] fActions;
-	private Button[] fButtons;	
-	
+	private Button[] fButtons;
+
 	private IClasspathViewer fViewer;
 	private Button fAddVariableStringButton;
 	private Text fVariableString;
@@ -48,7 +48,7 @@
 	/**
 	 * Constructs a new dialog on the given shell, with the specified
 	 * set of actions.
-	 * 
+	 *
 	 * @param parentShell
 	 * @param actions advanced actions
 	 */
@@ -67,15 +67,15 @@
 		Composite inner= new Composite(parent, SWT.NONE);
 		GridLayout layout= new GridLayout();
 		inner.setLayout(layout);
-		
+
 		GridData gd = new GridData(GridData.FILL_BOTH);
 		inner.setLayoutData(gd);
-		
+
 		Label l = new Label(inner, SWT.NONE);
-		l.setText(LauncherMessages.RuntimeClasspathAdvancedDialog_Select_an_advanced_option__1); 
+		l.setText(LauncherMessages.RuntimeClasspathAdvancedDialog_Select_an_advanced_option__1);
 		gd = new GridData(GridData.FILL_HORIZONTAL);
 		l.setLayoutData(gd);
-		
+
 		fButtons = new Button[fActions.length];
 		for (int i = 0; i < fActions.length; i++) {
 			IAction action= fActions[i];
@@ -85,34 +85,34 @@
 			fButtons[i].setEnabled(action.isEnabled());
 			fButtons[i].setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
 		}
-		
+
 		addVariableStringComposite(inner);
 
-		getShell().setText(LauncherMessages.RuntimeClasspathAdvancedDialog_Advanced_Options_1); 
-		
+		getShell().setText(LauncherMessages.RuntimeClasspathAdvancedDialog_Advanced_Options_1);
+
 		Dialog.applyDialogFont(parent);
 		return inner;
 	}
 
 	private void addVariableStringComposite(Composite composite) {
 		fAddVariableStringButton = new Button(composite, SWT.RADIO);
-		fAddVariableStringButton.setText(LauncherMessages.RuntimeClasspathAdvancedDialog_6); 
+		fAddVariableStringButton.setText(LauncherMessages.RuntimeClasspathAdvancedDialog_6);
 		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
 		fAddVariableStringButton.setLayoutData(gd);
-		
+
 		final Composite inner = new Composite(composite, SWT.NONE);
 		inner.setLayout(new GridLayout(2, false));
 		inner.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		
+
 		fVariableString = new Text(inner, SWT.SINGLE | SWT.BORDER);
 		gd = new GridData(GridData.FILL_HORIZONTAL);
 		gd.grabExcessHorizontalSpace = true;
 		fVariableString.setLayoutData(gd);
-		
-		final Button fVariablesButton = createButton(inner, IDialogConstants.IGNORE_ID, LauncherMessages.RuntimeClasspathAdvancedDialog_7, false); 
+
+		final Button fVariablesButton = createButton(inner, IDialogConstants.IGNORE_ID, LauncherMessages.RuntimeClasspathAdvancedDialog_7, false);
 		gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
 		fVariablesButton.setLayoutData(gd);
-		
+
 		fVariablesButton.addSelectionListener(new SelectionAdapter() {
 			@Override
 			public void widgetSelected(SelectionEvent e) {
@@ -124,7 +124,7 @@
 				}
 			}
 		});
-		
+
 		fAddVariableStringButton.addSelectionListener(new SelectionAdapter() {
 			@Override
 			public void widgetSelected(SelectionEvent e) {
@@ -164,11 +164,11 @@
 		}
 		super.okPressed();
 	}
-		
+
 	protected String getDialogSettingsSectionName() {
 		return IJavaDebugUIConstants.PLUGIN_ID + ".RUNTIME_CLASSPATH_ADVANCED_DIALOG"; //$NON-NLS-1$
 	}
-	
+
 	 /* (non-Javadoc)
      * @see org.eclipse.jface.dialogs.Dialog#getDialogBoundsSettings()
      */
@@ -178,7 +178,7 @@
          IDialogSettings section = settings.getSection(getDialogSettingsSectionName());
          if (section == null) {
              section = settings.addNewSection(getDialogSettingsSectionName());
-         } 
+         }
          return section;
     }
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/RuntimeClasspathEntryLabelProvider.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/RuntimeClasspathEntryLabelProvider.java
index c32a69d..f71cef4 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/RuntimeClasspathEntryLabelProvider.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/RuntimeClasspathEntryLabelProvider.java
@@ -46,14 +46,14 @@
  * Label provider for runtime classpath entries.
  */
 public class RuntimeClasspathEntryLabelProvider extends LabelProvider {
-		
+
 	private WorkbenchLabelProvider lp = new WorkbenchLabelProvider();
-	
+
 	/**
 	 * Context in which to render containers, or <code>null</code>
 	 */
 	private ILaunchConfiguration fLaunchConfiguration;
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
 	 */
@@ -87,7 +87,7 @@
 	                        key = ISharedImages.IMG_OBJS_EXTERNAL_ARCHIVE_WITH_SOURCE;
 						} else {
 							key = ISharedImages.IMG_OBJS_EXTERNAL_ARCHIVE;
-						}	
+						}
 					}
 
 				} else {
@@ -99,7 +99,7 @@
 				}
 				return JavaUI.getSharedImages().getImage(key);
 			case IRuntimeClasspathEntry.VARIABLE:
-				return DebugUITools.getImage(IDebugUIConstants.IMG_OBJS_ENV_VAR);				
+				return DebugUITools.getImage(IDebugUIConstants.IMG_OBJS_ENV_VAR);
 			case IRuntimeClasspathEntry.CONTAINER:
                 return JavaUI.getSharedImages().getImage(ISharedImages.IMG_OBJS_LIBRARY);
 			case IRuntimeClasspathEntry.OTHER:
@@ -115,7 +115,7 @@
                     return JavaUI.getSharedImages().getImage(ISharedImages.IMG_OBJS_LIBRARY);
 				}
 				return lp.getImage(resource);
-		}	
+		}
 		return null;
 	}
 
@@ -151,7 +151,7 @@
 						displayPath.append(device);
 					}
 					displayPath.append(File.separator);
-					for (int i = 0; i < segments.length - 1; i++) { 
+					for (int i = 0; i < segments.length - 1; i++) {
 						displayPath.append(segments[i]).append(File.separator);
 					}
 				} else {
@@ -170,12 +170,12 @@
 						buf.append(IPath.SEPARATOR);
 						buf.append(rootPath.toString());
 					}
-					buf.append(']'); 
+					buf.append(']');
 				}
 				// append JRE name if we can compute it
 				if (path.equals(new Path(JavaRuntime.JRELIB_VARIABLE)) && fLaunchConfiguration != null) {
 					try {
-						IVMInstall vm = JavaRuntime.computeVMInstall(fLaunchConfiguration);					
+						IVMInstall vm = JavaRuntime.computeVMInstall(fLaunchConfiguration);
 						buf.append(" - "); //$NON-NLS-1$
 						buf.append(vm.getName());
 					} catch (CoreException e) {
@@ -219,10 +219,10 @@
 					return ((IRuntimeClasspathEntry2)delegate).getName();
 				}
 				return name;
-		}	
+		}
 		return ""; //$NON-NLS-1$
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
 	 */
@@ -231,7 +231,7 @@
 		super.dispose();
 		lp.dispose();
 	}
-	
+
 	/**
 	 * Sets the launch configuration context for this label provider
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/RuntimeClasspathViewer.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/RuntimeClasspathViewer.java
index 5767171..c356217 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/RuntimeClasspathViewer.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/RuntimeClasspathViewer.java
@@ -4,13 +4,13 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui.launcher;
 
- 
+
 import java.util.ArrayList;
 import java.util.List;
 
@@ -33,24 +33,24 @@
  * A viewer that displays and manipulates runtime classpath entries.
  */
 public class RuntimeClasspathViewer extends TableViewer implements IClasspathViewer {
-	
+
 	/**
 	 * Whether enabled/editable.
 	 */
 	private boolean fEnabled = true;
-	
+
 	/**
 	 * Entry changed listeners
 	 */
 	private ListenerList<IEntriesChangedListener> fListeners = new ListenerList<>();
-	
+
 	/**
 	 * The runtime classpath entries displayed in this viewer
 	 */
-	protected List<IRuntimeClasspathEntry> fEntries = new ArrayList<IRuntimeClasspathEntry>();
-	
+	protected List<IRuntimeClasspathEntry> fEntries = new ArrayList<>();
+
 	class ContentProvider implements IStructuredContentProvider {
-			
+
 		/**
 		 * @see IStructuredContentProvider#getElements(Object)
 		 */
@@ -72,9 +72,9 @@
 		@Override
 		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
 		}
-		
+
 	}
-		
+
 	/**
 	 * Creates a runtime classpath viewer with the given parent.
 	 *
@@ -86,7 +86,7 @@
 		RuntimeClasspathEntryLabelProvider lp = new RuntimeClasspathEntryLabelProvider();
 		setLabelProvider(lp);
 		setInput(fEntries);
-		
+
 		getTable().addKeyListener(new KeyAdapter() {
 			@Override
 			public void keyPressed(KeyEvent event) {
@@ -97,8 +97,8 @@
 					notifyChanged();
 				}
 			}
-		});	
-	}	
+		});
+	}
 
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.launcher.IClasspathViewer#setEntries(org.eclipse.jdt.launching.IRuntimeClasspathEntry[])
@@ -112,7 +112,7 @@
 		setInput(fEntries);
 		notifyChanged();
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.launcher.IClasspathViewer#getEntries()
 	 */
@@ -120,7 +120,7 @@
 	public IRuntimeClasspathEntry[] getEntries() {
 		return fEntries.toArray(new IRuntimeClasspathEntry[fEntries.size()]);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.launcher.IClasspathViewer#addEntries(org.eclipse.jdt.launching.IRuntimeClasspathEntry[])
 	 */
@@ -145,8 +145,8 @@
 		setSelection(new StructuredSelection(entries));
 		refresh();
 		notifyChanged();
-	}	
-	
+	}
+
 	/**
 	 * Enables/disables this viewer. Note the control is not disabled, since
 	 * we still want the user to be able to scroll if required to see the
@@ -157,7 +157,7 @@
 		// fire selection change to update actions
 		setSelection(getSelection());
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.launcher.IClasspathViewer#isEnabled()
 	 */
@@ -165,7 +165,7 @@
 	public boolean isEnabled() {
 		return fEnabled;
 	}
-	
+
 	/**
 	 * Sets the launch configuration context for this viewer, if any
 	 */
@@ -174,15 +174,15 @@
 			((RuntimeClasspathEntryLabelProvider)getLabelProvider()).setLaunchConfiguration(configuration);
 		}
 	}
-	
+
 	public void addEntriesChangedListener(IEntriesChangedListener listener) {
 		fListeners.add(listener);
 	}
-	
+
 	public void removeEntriesChangedListener(IEntriesChangedListener listener) {
 		fListeners.remove(listener);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.launcher.IClasspathViewer#notifyChanged()
 	 */
@@ -192,7 +192,7 @@
 			listener.entriesChanged(this);
 		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.debug.ui.launcher.IClasspathViewer#indexOf(org.eclipse.jdt.launching.IRuntimeClasspathEntry)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/SelectDefaultSystemLibraryQuickFix.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/SelectDefaultSystemLibraryQuickFix.java
index f115d2a..49df54b 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/SelectDefaultSystemLibraryQuickFix.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/SelectDefaultSystemLibraryQuickFix.java
@@ -26,10 +26,10 @@
 import org.eclipse.ui.PlatformUI;
 
 /**
- * Quick fix to select an alternate default JRE. 
+ * Quick fix to select an alternate default JRE.
  */
 public class SelectDefaultSystemLibraryQuickFix extends JREResolution {
-	
+
 	public SelectDefaultSystemLibraryQuickFix() {
 		super();
 	}
@@ -40,9 +40,9 @@
 	@Override
 	public void run(IMarker marker) {
 		try {
-			String title = LauncherMessages.SelectDefaultSystemLibraryQuickFix_Select_Default_System_Library_1; 
-			String message = LauncherMessages.SelectDefaultSystemLibraryQuickFix__Select_the_system_library_to_use_by_default_for_building_and_running_Java_projects__2; 
-		
+			String title = LauncherMessages.SelectDefaultSystemLibraryQuickFix_Select_Default_System_Library_1;
+			String message = LauncherMessages.SelectDefaultSystemLibraryQuickFix__Select_the_system_library_to_use_by_default_for_building_and_running_Java_projects__2;
+
 			final IVMInstall vm = chooseVMInstall(title, message);
 			if (vm == null) {
 				return;
@@ -58,7 +58,7 @@
 						}
 				}
 			};
-		
+
 			try {
 				PlatformUI.getWorkbench().getProgressService().busyCursorWhile(runnable);
 			} catch (InvocationTargetException e) {
@@ -68,18 +68,18 @@
 				throw new CoreException(new Status(IStatus.ERROR, JDIDebugUIPlugin.getUniqueIdentifier(), IJavaDebugUIConstants.INTERNAL_ERROR,	"An exception occurred while updating the default system library.", e.getTargetException()));  //$NON-NLS-1$
 			} catch (InterruptedException e) {
 				// canceled
-			}			
+			}
 		} catch (CoreException e) {
-			JDIDebugUIPlugin.statusDialog(LauncherMessages.SelectDefaultSystemLibraryQuickFix_Unable_to_update_the_default_system_library__4, e.getStatus()); 
+			JDIDebugUIPlugin.statusDialog(LauncherMessages.SelectDefaultSystemLibraryQuickFix_Unable_to_update_the_default_system_library__4, e.getStatus());
 		}
 	}
-		
+
 	/**
 	 * @see org.eclipse.ui.IMarkerResolution#getLabel()
 	 */
 	@Override
 	public String getLabel() {
-		return LauncherMessages.SelectDefaultSystemLibraryQuickFix_Select_default_system_library_5; 
+		return LauncherMessages.SelectDefaultSystemLibraryQuickFix_Select_default_system_library_5;
 	}
 
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/SelectSystemLibraryQuickFix.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/SelectSystemLibraryQuickFix.java
index bbd0a72..895d5f8 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/SelectSystemLibraryQuickFix.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/SelectSystemLibraryQuickFix.java
@@ -31,16 +31,16 @@
 import org.eclipse.ui.PlatformUI;
 
 /**
- * Quick fix to select an alternate JRE for a project. 
+ * Quick fix to select an alternate JRE for a project.
  */
 public class SelectSystemLibraryQuickFix extends JREResolution {
-	
+
 	private IPath fOldPath;
 	private IJavaProject fProject;
-	
+
 	public SelectSystemLibraryQuickFix(IPath oldPath, IJavaProject project) {
 		fOldPath = oldPath;
-		fProject = project;	
+		fProject = project;
 	}
 
 	/**
@@ -51,12 +51,12 @@
 		try {
 			handleContainerResolutionError(fOldPath, fProject);
 		} catch (CoreException e) {
-			JDIDebugUIPlugin.statusDialog(LauncherMessages.JREContainerResolution_Unable_to_update_classpath_1, e.getStatus());  
+			JDIDebugUIPlugin.statusDialog(LauncherMessages.JREContainerResolution_Unable_to_update_classpath_1, e.getStatus());
 		}
 	}
-	
-	protected void handleContainerResolutionError(final IPath oldPath, final IJavaProject project) throws CoreException {			
-		
+
+	protected void handleContainerResolutionError(final IPath oldPath, final IJavaProject project) throws CoreException {
+
 		String lib = oldPath.segment(0);
 		IPath initialPath = null;
 		if (JavaRuntime.JRELIB_VARIABLE.equals(lib)) {
@@ -89,7 +89,7 @@
 				}
 			}
 		};
-		
+
 		try {
 			PlatformUI.getWorkbench().getProgressService().busyCursorWhile(runnable);
 		} catch (InvocationTargetException e) {
@@ -100,13 +100,13 @@
 		} catch (InterruptedException e) {
 			// cancelled
 		}
-	}		
+	}
 	/**
 	 * @see org.eclipse.ui.IMarkerResolution#getLabel()
 	 */
 	@Override
 	public String getLabel() {
-		return NLS.bind(LauncherMessages.JREContainerResolution_Select_a_system_library_to_use_when_building__0__2, new String[]{fProject.getElementName()}); 
+		return NLS.bind(LauncherMessages.JREContainerResolution_Select_a_system_library_to_use_when_building__0__2, new String[]{fProject.getElementName()});
 	}
 
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/SharedJavaMainTab.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/SharedJavaMainTab.java
index 0c2788e..3d48218 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/SharedJavaMainTab.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/SharedJavaMainTab.java
@@ -38,25 +38,25 @@
 import org.eclipse.swt.widgets.Text;
 
 /**
- * Provides general widgets and methods for a Java type launch configuration 
- * 'Main' tab. 
+ * Provides general widgets and methods for a Java type launch configuration
+ * 'Main' tab.
  * This class provides shared functionality for those main tabs which have a 'main type' field on them;
  * such as a main method for a local Java application, or an Applet for Java Applets
- * 
+ *
  * @since 3.2
  */
 public abstract class SharedJavaMainTab extends AbstractJavaMainTab {
 
 	protected Text fMainText;
 	private Button fSearchButton;
-	
+
 	/**
 	 * Creates the widgets for specifying a main type.
-	 * 
+	 *
 	 * @param parent the parent composite
 	 */
 	protected void createMainTypeEditor(Composite parent, String text) {
-		Group group = SWTFactory.createGroup(parent, text, 2, 1, GridData.FILL_HORIZONTAL); 
+		Group group = SWTFactory.createGroup(parent, text, 2, 1, GridData.FILL_HORIZONTAL);
 		fMainText = SWTFactory.createSingleText(group, 1);
 		fMainText.addModifyListener(new ModifyListener() {
 			@Override
@@ -65,7 +65,7 @@
 			}
 		});
 		ControlAccessibleListener.addListener(fMainText, group.getText());
-		fSearchButton = createPushButton(group, LauncherMessages.AbstractJavaMainTab_2, null); 
+		fSearchButton = createPushButton(group, LauncherMessages.AbstractJavaMainTab_2, null);
 		fSearchButton.addSelectionListener(new SelectionListener() {
 			@Override
 			public void widgetDefaultSelected(SelectionEvent e) {
@@ -77,19 +77,19 @@
 		});
 		createMainTypeExtensions(group);
 	}
-	
+
 	/**
 	 * This method allows the group for main type to be extended with custom controls.
 	 * All control added via this method come after the main type text editor and search button in
 	 * the order they are added to the parent composite
-	 * 
+	 *
 	 * @param parent the parent to add to
 	 * @since 3.3
 	 */
 	protected void createMainTypeExtensions(Composite parent) {
 		//do nothing by default
 	}
-	
+
 	/**
 	 * The select button pressed handler
 	 */
@@ -113,13 +113,13 @@
 			try {
 				IJavaSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaElement[]{javaElement}, false);
 				MainMethodSearchEngine engine = new MainMethodSearchEngine();
-				IType[] types = engine.searchMainMethods(getLaunchConfigurationDialog(), scope, false);				
+				IType[] types = engine.searchMainMethods(getLaunchConfigurationDialog(), scope, false);
 				if (types != null && (types.length > 0)) {
 					// Simply grab the first main type found in the searched element
 					name = types[0].getFullyQualifiedName();
 				}
 			}
-			catch (InterruptedException ie) {JDIDebugUIPlugin.log(ie);} 
+			catch (InterruptedException ie) {JDIDebugUIPlugin.log(ie);}
 			catch (InvocationTargetException ite) {JDIDebugUIPlugin.log(ite);}
 		}
 		if (name == null) {
@@ -130,12 +130,12 @@
 			int index = name.lastIndexOf('.');
 			if (index > 0) {
 				name = name.substring(index + 1);
-			}	
+			}
 			name = getLaunchConfigurationDialog().generateName(name);
 			config.rename(name);
 		}
 	}
-	
+
 	/**
 	 * Loads the main type from the launch configuration's preference store
 	 * @param config the config to load the main type from
@@ -145,7 +145,7 @@
 		try {
 			mainTypeName = config.getAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME, EMPTY_STRING);
 		}
-		catch (CoreException ce) {JDIDebugUIPlugin.log(ce);}	
-		fMainText.setText(mainTypeName);	
+		catch (CoreException ce) {JDIDebugUIPlugin.log(ce);}
+		fMainText.setText(mainTypeName);
 	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/SourceElementLabelProvider.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/SourceElementLabelProvider.java
index 93c30ff..00cb0db 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/SourceElementLabelProvider.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/SourceElementLabelProvider.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/SourceElementQualifierProvider.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/SourceElementQualifierProvider.java
index 01b72c7..4532e3f 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/SourceElementQualifierProvider.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/SourceElementQualifierProvider.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -33,7 +33,7 @@
  * A label provider for source element qualifiers found with a JavaSourceLocator
  */
 public class SourceElementQualifierProvider extends LabelProvider implements ILabelProvider {
-	
+
 	private JavaElementLabelProvider fJavaLabels;
 
 	/* (non-Javadoc)
@@ -63,7 +63,7 @@
 		}
 		return super.getText(element);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/SourceLookupBlock.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/SourceLookupBlock.java
index 8fd4244..fbc7237 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/SourceLookupBlock.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/SourceLookupBlock.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -50,43 +50,43 @@
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Label;
- 
+
 /**
  * Control used to edit the source lookup path for a Java launch configuration.
  */
 public class SourceLookupBlock extends AbstractJavaClasspathTab implements ILaunchConfigurationTab {
-	
+
 	protected ILaunchConfiguration fConfig;
-	
+
 	protected RuntimeClasspathViewer fPathViewer;
 	protected Button fDefaultButton;
 	protected Button fDuplicatesButton;
-	
+
 	protected static final String DIALOG_SETTINGS_PREFIX = "SourceLookupBlock"; //$NON-NLS-1$
-	
+
 	/**
 	 * Creates and returns the source lookup control.
-	 * 
+	 *
 	 * @param parent the parent widget of this control
 	 */
 	@Override
 	public void createControl(Composite parent) {
 		Font font = parent.getFont();
-		
+
 		Composite comp = new Composite(parent, SWT.NONE);
 		GridLayout topLayout = new GridLayout();
 		topLayout.numColumns = 2;
-		comp.setLayout(topLayout);		
+		comp.setLayout(topLayout);
 		GridData gd = new GridData(GridData.FILL_BOTH);
 		comp.setLayoutData(gd);
-		
+
 		Label viewerLabel= new Label(comp, SWT.LEFT);
-		viewerLabel.setText(LauncherMessages.SourceLookupBlock__Source_Lookup_Path__1); 
+		viewerLabel.setText(LauncherMessages.SourceLookupBlock__Source_Lookup_Path__1);
 		gd= new GridData(GridData.HORIZONTAL_ALIGN_FILL);
 		gd.horizontalSpan= 2;
 		viewerLabel.setLayoutData(gd);
 		viewerLabel.setFont(font);
-		
+
 		fPathViewer = new RuntimeClasspathViewer(comp);
 		fPathViewer.addEntriesChangedListener(this);
 		gd = new GridData(GridData.FILL_BOTH);
@@ -101,11 +101,11 @@
 		gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_FILL);
 		pathButtonComp.setLayoutData(gd);
 		pathButtonComp.setFont(font);
-		
+
 		createVerticalSpacer(comp, 2);
-						
+
 		fDefaultButton = new Button(comp, SWT.CHECK);
-		fDefaultButton.setText(LauncherMessages.SourceLookupBlock_Use_defau_lt_source_lookup_path_1); 
+		fDefaultButton.setText(LauncherMessages.SourceLookupBlock_Use_defau_lt_source_lookup_path_1);
 		gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
 		gd.horizontalSpan = 2;
 		fDefaultButton.setLayoutData(gd);
@@ -116,9 +116,9 @@
 				handleDefaultButtonSelected();
 			}
 		});
-		
+
 		fDuplicatesButton = new Button(comp, SWT.CHECK);
-		fDuplicatesButton.setText(LauncherMessages.SourceLookupBlock__Search_for_duplicate_source_files_on_path_1); 
+		fDuplicatesButton.setText(LauncherMessages.SourceLookupBlock__Search_for_duplicate_source_files_on_path_1);
 		gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
 		gd.horizontalSpan = 2;
 		fDuplicatesButton.setLayoutData(gd);
@@ -129,59 +129,59 @@
 				setDirty(true);
 				updateLaunchConfigurationDialog();
 			}
-		});		
-		
-		List<RuntimeClasspathAction> advancedActions = new ArrayList<RuntimeClasspathAction>(5);
-		
+		});
+
+		List<RuntimeClasspathAction> advancedActions = new ArrayList<>(5);
+
 		GC gc = new GC(parent);
 		gc.setFont(parent.getFont());
 		FontMetrics fontMetrics= gc.getFontMetrics();
 		gc.dispose();
-				
-		RuntimeClasspathAction action = new MoveUpAction(fPathViewer);								
+
+		RuntimeClasspathAction action = new MoveUpAction(fPathViewer);
 		Button button  = createPushButton(pathButtonComp, action.getText(), fontMetrics);
 		action.setButton(button);
-		
-		action = new MoveDownAction(fPathViewer);								
-		button  = createPushButton(pathButtonComp, action.getText(), fontMetrics);
-		action.setButton(button);	
 
-		action = new RemoveAction(fPathViewer);								
-		button  = createPushButton(pathButtonComp, action.getText(), fontMetrics);
-		action.setButton(button);
-		
-		action = new AddProjectAction(fPathViewer);								
+		action = new MoveDownAction(fPathViewer);
 		button  = createPushButton(pathButtonComp, action.getText(), fontMetrics);
 		action.setButton(button);
 
-		action = new AddJarAction(fPathViewer);								
+		action = new RemoveAction(fPathViewer);
 		button  = createPushButton(pathButtonComp, action.getText(), fontMetrics);
 		action.setButton(button);
 
-		action = new AddExternalJarAction(fPathViewer, DIALOG_SETTINGS_PREFIX);								
+		action = new AddProjectAction(fPathViewer);
 		button  = createPushButton(pathButtonComp, action.getText(), fontMetrics);
 		action.setButton(button);
 
-		action = new AddFolderAction(fPathViewer);								
+		action = new AddJarAction(fPathViewer);
+		button  = createPushButton(pathButtonComp, action.getText(), fontMetrics);
+		action.setButton(button);
+
+		action = new AddExternalJarAction(fPathViewer, DIALOG_SETTINGS_PREFIX);
+		button  = createPushButton(pathButtonComp, action.getText(), fontMetrics);
+		action.setButton(button);
+
+		action = new AddFolderAction(fPathViewer);
 		advancedActions.add(action);
 
-		action = new AddExternalFolderAction(fPathViewer, DIALOG_SETTINGS_PREFIX);								
-		advancedActions.add(action);		
+		action = new AddExternalFolderAction(fPathViewer, DIALOG_SETTINGS_PREFIX);
+		advancedActions.add(action);
 
-		action = new AddVariableAction(fPathViewer);								
-		advancedActions.add(action);		
-		
+		action = new AddVariableAction(fPathViewer);
+		advancedActions.add(action);
+
 		action = new AddLibraryAction(null);
 		advancedActions.add(action);
-		
-		action = new AttachSourceAction(fPathViewer, SWT.RADIO);								
-		advancedActions.add(action);				
-									
+
+		action = new AttachSourceAction(fPathViewer, SWT.RADIO);
+		advancedActions.add(action);
+
 		IAction[] adv = advancedActions.toArray(new IAction[advancedActions.size()]);
 		action = new AddAdvancedAction(fPathViewer, adv);
 		button = createPushButton(pathButtonComp, action.getText(), fontMetrics);
 		action.setButton(button);
-				
+
 		setControl(comp);
 	}
 
@@ -210,10 +210,10 @@
 		fPathViewer.setEnabled(!def);
 		updateLaunchConfigurationDialog();
 	}
-	
+
 	/**
-	 * Creates and returns a button 
-	 * 
+	 * Creates and returns a button
+	 *
 	 * @param parent parent widget
 	 * @param label label
 	 * @return Button
@@ -224,15 +224,15 @@
 		button.setText(label);
 		GridData gd= getButtonGridData(button, fontMetrics);
 		button.setLayoutData(gd);
-		return button;	
+		return button;
 	}
-	
+
 	private GridData getButtonGridData(Button button, FontMetrics fontMetrics) {
 		GridData gd= new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING);
 
 		int widthHint= Dialog.convertHorizontalDLUsToPixels(fontMetrics, IDialogConstants.BUTTON_WIDTH);
 		gd.widthHint= Math.max(widthHint, button.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x);
-	
+
 		return gd;
 	}
 
@@ -247,7 +247,7 @@
 			useDefault = config.getAttribute(IJavaLaunchConfigurationConstants.ATTR_DEFAULT_SOURCE_PATH, true);
 		} catch (CoreException e) {
 			JDIDebugUIPlugin.log(e);
-		}		
+		}
 		if (config == getLaunchConfiguration()) {
 			// same as previously viewed launch config
 			if (!useDefault && !fDefaultButton.getSelection()) {
@@ -274,14 +274,14 @@
 		}
 		setDirty(false);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#performApply(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
 	 */
 	@Override
 	public void performApply(ILaunchConfigurationWorkingCopy configuration) {
 		if (isDirty()) {
-			boolean def = fDefaultButton.getSelection();		
+			boolean def = fDefaultButton.getSelection();
 			if (def) {
 				configuration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_DEFAULT_SOURCE_PATH, (String)null);
 				configuration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_SOURCE_PATH, (List<String>)null);
@@ -289,57 +289,57 @@
 				configuration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_DEFAULT_SOURCE_PATH, def);
 				try {
 					IRuntimeClasspathEntry[] entries = fPathViewer.getEntries();
-					List<String> mementos = new ArrayList<String>(entries.length);
+					List<String> mementos = new ArrayList<>(entries.length);
 					for (int i = 0; i < entries.length; i++) {
 						mementos.add(entries[i].getMemento());
 					}
 					configuration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_SOURCE_PATH, mementos);
 				} catch (CoreException e) {
-					JDIDebugUIPlugin.statusDialog(LauncherMessages.SourceLookupBlock_Unable_to_save_source_lookup_path_1, e.getStatus()); 
-				}	
+					JDIDebugUIPlugin.statusDialog(LauncherMessages.SourceLookupBlock_Unable_to_save_source_lookup_path_1, e.getStatus());
+				}
 			}
 			boolean dup = fDuplicatesButton.getSelection();
 			if (dup) {
-				configuration.setAttribute(JavaUISourceLocator.ATTR_FIND_ALL_SOURCE_ELEMENTS, true);		
+				configuration.setAttribute(JavaUISourceLocator.ATTR_FIND_ALL_SOURCE_ELEMENTS, true);
 			} else {
 				configuration.setAttribute(JavaUISourceLocator.ATTR_FIND_ALL_SOURCE_ELEMENTS, (String)null);
 			}
 		}
-	}	
-	
+	}
+
 	/**
 	 * Returns the entries visible in the viewer
 	 */
 	public IRuntimeClasspathEntry[] getEntries() {
 		return fPathViewer.getEntries();
-	}	
-	
+	}
+
 	/**
 	 * Sets the configuration associated with this source lookup
 	 * block.
-	 * 
+	 *
 	 * @param configuration launch configuration
 	 */
 	private void setLaunchConfiguration(ILaunchConfiguration configuration) {
 		fConfig = configuration;
 	}
-	
+
 	/**
 	 * Sets the configuration associated with this source lookup
 	 * block.
-	 * 
+	 *
 	 * @param configuration launch configuration
 	 */
 	protected ILaunchConfiguration getLaunchConfiguration() {
 		return fConfig;
-	}	
+	}
 
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#getName()
 	 */
 	@Override
 	public String getName() {
-		return LauncherMessages.SourceLookupBlock_Source_1; 
+		return LauncherMessages.SourceLookupBlock_Source_1;
 	}
 
 	/* (non-Javadoc)
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/VMArgumentsBlock.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/VMArgumentsBlock.java
index 21a7156..2dcd9c7 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/VMArgumentsBlock.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/VMArgumentsBlock.java
@@ -45,7 +45,7 @@
 	protected Text fVMArgumentsText;
 	private Button fUseStartOnFirstThread = null;
 	private Button fPgrmArgVariableButton;
-	
+
 	/**
 	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#createControl(Composite)
 	 */
@@ -56,12 +56,12 @@
 		Group group = new Group(parent, SWT.NONE);
 		setControl(group);
 		GridLayout topLayout = new GridLayout();
-		group.setLayout(topLayout);	
+		group.setLayout(topLayout);
 		GridData gd = new GridData(GridData.FILL_BOTH);
 		group.setLayoutData(gd);
 		group.setFont(font);
-		group.setText(LauncherMessages.JavaArgumentsTab_VM_ar_guments__6); 
-		
+		group.setText(LauncherMessages.JavaArgumentsTab_VM_ar_guments__6);
+
 		fVMArgumentsText = new Text(group, SWT.MULTI | SWT.WRAP| SWT.BORDER | SWT.V_SCROLL);
 		fVMArgumentsText.addTraverseListener(new TraverseListener() {
 			@Override
@@ -96,9 +96,9 @@
 			public void modifyText(ModifyEvent evt) {
 				scheduleUpdateJob();
 			}
-		});	
+		});
 		ControlAccessibleListener.addListener(fVMArgumentsText, group.getText());
-			
+
 		fPgrmArgVariableButton = createPushButton(group, LauncherMessages.VMArgumentsBlock_4, null);
 		fPgrmArgVariableButton.setFont(font);
 		fPgrmArgVariableButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
@@ -113,7 +113,7 @@
 				}
 			}
 		});
-		
+
 		if(Platform.OS_MACOSX.equals(Platform.getOS())) {
 			fUseStartOnFirstThread = SWTFactory.createCheckButton(group, LauncherMessages.VMArgumentsBlock_0, null, false, 1);
 			fUseStartOnFirstThread.addSelectionListener(new SelectionAdapter() {
@@ -130,7 +130,7 @@
 	 */
 	@Override
 	public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {
-		configuration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_ARGUMENTS, (String)null);	
+		configuration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_ARGUMENTS, (String)null);
 		configuration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_USE_START_ON_FIRST_THREAD, true);
 	}
 
@@ -145,8 +145,8 @@
 				fUseStartOnFirstThread.setSelection(configuration.getAttribute(IJavaLaunchConfigurationConstants.ATTR_USE_START_ON_FIRST_THREAD, true));
 			}
 		} catch (CoreException e) {
-			setErrorMessage(LauncherMessages.JavaArgumentsTab_Exception_occurred_reading_configuration___15 + e.getStatus().getMessage()); 
-			JDIDebugUIPlugin.log(e);			
+			setErrorMessage(LauncherMessages.JavaArgumentsTab_Exception_occurred_reading_configuration___15 + e.getStatus().getMessage());
+			JDIDebugUIPlugin.log(e);
 		}
 	}
 
@@ -166,12 +166,12 @@
 	 */
 	@Override
 	public String getName() {
-		return LauncherMessages.VMArgumentsBlock_VM_Arguments; 
+		return LauncherMessages.VMArgumentsBlock_VM_Arguments;
 	}
-	
+
 	/**
 	 * Returns the string in the text widget, or <code>null</code> if empty.
-	 * 
+	 *
 	 * @return text or <code>null</code>
 	 */
 	protected String getAttributeValueFrom(Text text) {
@@ -180,8 +180,8 @@
 			return content;
 		}
 		return null;
-	}	
-	
+	}
+
 	public void setEnabled(boolean enabled) {
 		fVMArgumentsText.setEnabled(enabled);
 		fPgrmArgVariableButton.setEnabled(enabled);
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/VMConnectTimeoutStatusHandler.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/VMConnectTimeoutStatusHandler.java
index a6e5fa6..f9a846c 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/VMConnectTimeoutStatusHandler.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/VMConnectTimeoutStatusHandler.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -31,8 +31,8 @@
 		JDIDebugUIPlugin.getStandardDisplay().syncExec(new Runnable() {
 			@Override
 			public void run() {
-				String title= LauncherMessages.VMConnectTimeoutStatusHandler_Java_Application_1; 
-				String message= LauncherMessages.jdkLauncher_error_timeout; 
+				String title= LauncherMessages.VMConnectTimeoutStatusHandler_Java_Application_1;
+				String message= LauncherMessages.jdkLauncher_error_timeout;
 				result[0]= (MessageDialog.openQuestion(JDIDebugUIPlugin.getActiveWorkbenchShell(), title, message));
 			}
 		});
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/WorkspaceOperationRunner.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/WorkspaceOperationRunner.java
index 354d8d2..1c2fdc1 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/WorkspaceOperationRunner.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/WorkspaceOperationRunner.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -26,15 +26,15 @@
  * @since 3.0
  */
 class WorkspaceOperationRunner implements IRunnableContext {
-	
+
 	private IProgressMonitor fProgressMonitor;
-	
+
 	public WorkspaceOperationRunner() {
 	}
-	
+
 	/**
 	 * Sets the progress monitor.
-	 * 
+	 *
 	 * @param progressMonitor the progress monitor to set
 	 */
 	public void setProgressMonitor(IProgressMonitor progressMonitor) {
@@ -44,7 +44,7 @@
 	/**
 	 * Returns the progress monitor. It there is no progress monitor the monitor\
 	 * is set to the <code>NullProgressMonitor</code>.
-	 * 
+	 *
 	 * @return the progress monitor
 	 */
 	public IProgressMonitor getProgressMonitor() {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/ContendedMonitorContentProvider.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/ContendedMonitorContentProvider.java
index 7bb22bb..00fb6b5 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/ContendedMonitorContentProvider.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/ContendedMonitorContentProvider.java
@@ -16,7 +16,7 @@
 
 /**
  * Content provider for a contended monitor.
- * 
+ *
  * @since 3.3
  */
 public class ContendedMonitorContentProvider extends JavaElementContentProvider {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/JavaContendedMonitor.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/JavaContendedMonitor.java
index ebd74c7..b29a3de 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/JavaContendedMonitor.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/JavaContendedMonitor.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -50,7 +50,7 @@
 		monitor.addElement(this);
 		fParent= parent;
 	}
-	
+
 	/**
 	 * returns the monitor that is in contention
 	 * @return the monitor that is in contention
@@ -58,7 +58,7 @@
 	public JavaMonitor getMonitor() {
 		return fMonitor;
 	}
-	
+
 	/**
 	 * Returns the parent <code>JavaOwningThread</code> or the original <code>IThread</code>
 	 * @return the parent <code>JavaOwningThread</code> or the original <code>IThread</code>
@@ -69,7 +69,7 @@
 		}
 		return fParent;
 	}
-	
+
 	/**
 	 * returns the <code>JavaOwningThread</code> that owns this monitor
 	 * @return the <code>JavaOwningThread</code> that owns this monitor
@@ -140,7 +140,7 @@
 		}
 		return thread;
 	}
-	
+
 	/**
 	 * @see org.eclipse.debug.core.model.ITerminate#canTerminate()
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/JavaElementContentProvider.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/JavaElementContentProvider.java
index 2f39ce8..6773571 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/JavaElementContentProvider.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/JavaElementContentProvider.java
@@ -21,14 +21,14 @@
 
 /**
  * Common element presentation for the debug view.
- * 
+ *
  * @since 3.3
  */
 public abstract class JavaElementContentProvider extends ElementContentProvider {
-	
+
 	private static boolean fgDisplayMonitors;
 	private static boolean fgDisplayThreadGroups;
-	
+
 	static {
 		IPreferenceStore preferenceStore = JDIDebugUIPlugin.getDefault().getPreferenceStore();
 		preferenceStore.addPropertyChangeListener(new IPropertyChangeListener() {
@@ -40,12 +40,12 @@
 					fgDisplayThreadGroups= JDIDebugUIPreferenceInitializer.getBoolean(event);
 				}
 			}
-		
+
 		});
 		fgDisplayMonitors= preferenceStore.getBoolean(IJavaDebugUIConstants.PREF_SHOW_MONITOR_THREAD_INFO);
 		fgDisplayThreadGroups = preferenceStore.getBoolean(IJavaDebugUIConstants.PREF_SHOW_THREAD_GROUPS);
 	}
-	
+
 	public static boolean isDisplayThreadGroups() {
 		return fgDisplayThreadGroups;
 	}
@@ -53,7 +53,7 @@
 	public static boolean isDisplayMonitors() {
 	    return fgDisplayMonitors;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.internal.ui.viewers.model.provisional.elements.ElementContentProvider#supportsContextId(java.lang.String)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/JavaMonitor.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/JavaMonitor.java
index ab77076..b9d6b18 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/JavaMonitor.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/JavaMonitor.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -26,12 +26,12 @@
  * Represent a Java monitor in the threads and monitors model.
  */
 public class JavaMonitor {
-	
+
 	/**
 	 * The underlying object.
 	 */
 	private IJavaObject fMonitor;
-	
+
 	/**
 	 * The thread which owns this monitor
 	 */
@@ -49,21 +49,21 @@
 	 * may have changed.
 	 */
 	private boolean fToUpdate= true;
-	
+
 	/**
 	 * The List of JavaContendedMonitor and JavaOwnedMonitor associated with this
 	 * monitor.
 	 */
-	private List<PlatformObject> fElements= new ArrayList<PlatformObject>();
-	
+	private List<PlatformObject> fElements= new ArrayList<>();
+
 	public JavaMonitor(IJavaObject monitor) {
 		fMonitor= monitor;
 	}
-	
+
 	public IJavaObject getMonitor() {
 		return fMonitor;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.core.model.IDebugElement#getDebugTarget()
 	 */
@@ -82,7 +82,7 @@
 	public String getModelIdentifier() {
 		return fMonitor.getModelIdentifier();
 	}
-	
+
 	/**
 	 * Returns the thread which owns this monitor, refresh the data
 	 * first if need.
@@ -93,7 +93,7 @@
 		}
 		return fOwningThread;
 	}
-	
+
 	/**
 	 * Returns the threads waiting for this monitor, refresh the data
 	 * first if need.
@@ -104,7 +104,7 @@
 		}
 		return fWaitingThreads;
 	}
-	
+
 	/**
 	 * Update the information for this monitor.
 	 * @return <code>true</code> if the owning thread or
@@ -145,7 +145,7 @@
 							}
 							changed= true;
 						} else {
-							// we need to check in the new list contains the same threads as the 
+							// we need to check in the new list contains the same threads as the
 							// previous list
 							int sameThread= 0;
 							for (int i= 0; i < waitingThreads.length; i++) {
@@ -171,7 +171,7 @@
 				fToUpdate= false;
 			}
 		}
-		
+
 		if (toRemove) {
 			threadMonitorManager.removeJavaMonitor(this);
 		} else if (changed) {
@@ -179,7 +179,7 @@
 		}
 		return changed;
 	}
-	
+
 	/**
 	 * Send a change event for theJavaContendedMonitor and JavaOwnedMonitor
 	 * associated with this monitor
@@ -206,15 +206,15 @@
 			}
 		}
 	}
-	
+
 	protected void addElement(JavaOwnedMonitor monitor) {
 		fElements.add(monitor);
 	}
-	
+
 	protected void addElement(JavaContendedMonitor monitor) {
 		fElements.add(monitor);
 	}
-	
+
 	public void refresh() {
 		if (fToUpdate && !update()) {
 			if (fOwningThread != null) {
@@ -225,7 +225,7 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Indicate if this monitor is currently part of a deadlock
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/JavaMonitorThread.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/JavaMonitorThread.java
index 1d8aa75..2569431 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/JavaMonitorThread.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/JavaMonitorThread.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -31,14 +31,14 @@
  * Represent a Java thread in the threads and monitors model.
  */
 public class JavaMonitorThread extends PlatformObject {
-	
+
 	/**
 	 * The underlying thread.
 	 */
 	private IJavaThread fThread;
 
 	private IThread fOriginalThread;
-	
+
 	/**
 	 * The monitor this thread is waiting for.
 	 */
@@ -56,11 +56,11 @@
 	 * may have changed.
 	 */
 	private boolean fToUpdate= true;
-	
+
 	/**
 	 * List of JavaOwningThread and JavaWaitingThread associated with this thread.
 	 */
-	private List<IDebugElement> fElements= new ArrayList<IDebugElement>();
+	private List<IDebugElement> fElements= new ArrayList<>();
 
 	/**
 	 * JavaWaitingThread object used to return the JavaOwnedMonitor for this
@@ -77,15 +77,15 @@
 		fThread= underlyingThread;
 		fOriginalThread= originalThread;
 	}
-	
+
 	public IJavaThread getThread() {
 		return fThread;
 	}
-	
+
 	public IThread getOriginalThread() {
 		return fOriginalThread;
 	}
-	
+
 	protected void setOriginalThread(IThread originalThread) {
 		fOriginalThread= originalThread;
 	}
@@ -110,14 +110,14 @@
 	public ILaunch getLaunch() {
 		return fThread.getLaunch();
 	}
-	
+
 	/**
 	 * @see org.eclipse.debug.core.model.ISuspendResume#isSuspended()
 	 */
 	public boolean isSuspended() {
 		return fThread.isSuspended();
 	}
-	
+
 	/**
 	 * Returns the contended monitor to be used as a child
 	 * of the underlying thread in the debug launch view.
@@ -139,7 +139,7 @@
 		}
 		return fBaseWaitingThread.getOwnedMonitors();
 	}
-	
+
 	/**
 	 * Returns the monitor this thread is waiting for.
 	 */
@@ -149,7 +149,7 @@
 		}
 		return fContendedMonitor;
 	}
-	
+
 	/**
 	 * Returns the monitors owned by this thread.
 	 */
@@ -159,7 +159,7 @@
 		}
 		return fOwnedMonitors;
 	}
-	
+
 	/**
 	 * Update the information for this thread.
 	 * @return <code>true</code> if the contended monitor or
@@ -197,7 +197,7 @@
 						}
 						changed= true;
 					} else {
-						// we need to check in the new list contains the same monitors as the 
+						// we need to check in the new list contains the same monitors as the
 						// previous list
 						int sameMonitor= 0;
 						for (int i= 0; i < ownedMonitors.length; i++) {
@@ -232,20 +232,20 @@
 		}
 		return changed;
 	}
-	
+
 	/**
 	 * send a change event for theJavaWaitingThread and JavaOwningThread
 	 * associated with this thread
 	 */
 	private void fireChangeEvent(int detail) {
 		Object[] elements= fElements.toArray();
-		List<Object> changedElement= new ArrayList<Object>();
+		List<Object> changedElement= new ArrayList<>();
 		if (fOriginalThread != null) {
 			changedElement.add(fOriginalThread);
 		}
 		for (int i= 0; i < elements.length; i++) {
 			Object element= elements[i];
-			// the two 'base' elements are not part of the hierarchy, they are 
+			// the two 'base' elements are not part of the hierarchy, they are
 			// used to get the children of the Thread.
 			if (element != fBaseOwningThread && element != fBaseWaitingThread) {
 			    changedElement.add(element);
@@ -272,15 +272,15 @@
 			}
 		}
 	}
-	
+
 	protected void addElement(JavaOwningThread thread) {
 		fElements.add(thread);
 	}
-	
+
 	protected void addElement(JavaWaitingThread thread) {
 		fElements.add(thread);
 	}
-	
+
 	public void refresh() {
 		if (fToUpdate && !update()) {
 			if (fContendedMonitor != null) {
@@ -291,7 +291,7 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Indicate if this thread is currently part of a deadlock
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/JavaOwnedMonitor.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/JavaOwnedMonitor.java
index 038c041..c0302e4 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/JavaOwnedMonitor.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/JavaOwnedMonitor.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -26,12 +26,12 @@
  * by the parent thread.
  */
 public class JavaOwnedMonitor extends PlatformObject implements IDebugElement, ITerminate, ISuspendResume {
-	
+
 	/**
 	 * The monitor object in the thread and monitor model.
 	 */
 	private JavaMonitor fMonitor;
-	
+
 	/**
 	 * The threads waiting for this monitor.
 	 */
@@ -51,7 +51,7 @@
 		monitor.addElement(this);
 		fParent= parent;
 	}
-	
+
 	/**
 	 * Returns the monitor
 	 * @return the monitor
@@ -59,7 +59,7 @@
 	public JavaMonitor getMonitor() {
 		return fMonitor;
 	}
-	
+
 	/**
 	 * Returns the original <code>IThread</code> or the parent thread
 	 * @return the original <code>IThread</code> of the parent thread
@@ -70,7 +70,7 @@
 		}
 		return fParent;
 	}
-	
+
 	/**
 	 * Returns an array of all of the threads waiting on this monitor
 	 * @return the array of <code>JavaWaitingThread</code>s waiting on this monitor
@@ -99,7 +99,7 @@
 		fWaitingThreads = tmp;
 		return fWaitingThreads;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.core.model.IDebugElement#getModelIdentifier()
 	 */
@@ -155,7 +155,7 @@
 		}
 		return thread;
 	}
-	
+
 	/**
 	 * @see org.eclipse.debug.core.model.ITerminate#canTerminate()
 	 */
@@ -179,7 +179,7 @@
 	public void terminate() throws DebugException {
 		getDebugTarget().terminate();
 	}
-	
+
 	/**
 	 * @see org.eclipse.debug.core.model.ISuspendResume#canResume()
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/JavaOwningThread.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/JavaOwningThread.java
index 7604000..bc12e48 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/JavaOwningThread.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/JavaOwningThread.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -24,12 +24,12 @@
  * and owns the parent monitor.
  */
 public class JavaOwningThread extends PlatformObject implements IDebugElement, ITerminate {
-	
+
 	/**
 	 * The thread object in the thread and monitor model.
 	 */
 	private JavaMonitorThread fThread;
-	
+
 	/**
 	 * The monitor this thread is waiting for.
 	 */
@@ -56,7 +56,7 @@
 	public JavaMonitorThread getThread() {
 		return fThread;
 	}
-	
+
 	/**
 	 * Returns the parent contended
 	 * @return
@@ -75,7 +75,7 @@
 		}
 		return fContendedMonitor;
 	}
-	
+
 	public void update() {
 	}
 
@@ -149,5 +149,5 @@
 	public void terminate() throws DebugException {
 		getDebugTarget().terminate();
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/JavaThreadContentProvider.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/JavaThreadContentProvider.java
index b25f802..5cefe20 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/JavaThreadContentProvider.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/JavaThreadContentProvider.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -27,7 +27,7 @@
 
 /**
  * Java thread presentation adapter.
- * 
+ *
  * @since 3.3
  */
 public class JavaThreadContentProvider extends JavaElementContentProvider {
@@ -67,7 +67,7 @@
 		}
 		return getElements(getChildren(thread), index, length);
 	}
-	
+
 	protected Object[] getChildren(IJavaThread thread) {
 		try {
 			if (thread instanceof JDIThread) {
@@ -109,7 +109,7 @@
 			return children;
 		} catch (DebugException e) {
 			return EMPTY;
-		}		
+		}
 	}
 
 	/* (non-Javadoc)
@@ -152,12 +152,12 @@
 	protected ISchedulingRule getRule(IHasChildrenUpdate[] updates) {
 		return getThreadRule(updates);
 	}
-	
+
 	/**
 	 * Returns a scheduling rule to ensure we aren't trying to get thread content
 	 * while executing an implicit evaluation (like toString() for the details
 	 * pane).
-	 * 
+	 *
 	 * @param updates viewer updates
 	 * @return scheduling rule or <code>null</code>
 	 */
@@ -170,6 +170,6 @@
 		}
 		return null;
 	}
-	
+
 
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/JavaWaitingThread.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/JavaWaitingThread.java
index d1cb07a..e523bec 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/JavaWaitingThread.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/JavaWaitingThread.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -48,7 +48,7 @@
 	public JavaMonitorThread getThread() {
 		return fThread;
 	}
-	
+
 	public JavaOwnedMonitor getParent() {
 		return fParent;
 	}
@@ -77,7 +77,7 @@
 		fOwnedMonitors= tmp;
 		return fOwnedMonitors;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.core.model.IDebugElement#getModelIdentifier()
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/MonitorsAdapterFactory.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/MonitorsAdapterFactory.java
index 976a10c..c0a124d 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/MonitorsAdapterFactory.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/MonitorsAdapterFactory.java
@@ -21,21 +21,21 @@
  * provide thread monitor information in the debug view.
  */
 public class MonitorsAdapterFactory implements IAdapterFactory {
-	
+
     private static IElementContentProvider fgCPThread;
     private static IElementContentProvider fgCPFrame = new JavaStackFrameContentProvider();
     private static IElementContentProvider fgCPOwnedMonitor;
     private static IElementContentProvider fgCPWaitingThread;
     private static IElementContentProvider fgCPContendedMonitor;
     private static IElementContentProvider fgCPOwningThread;
-    
+
     /* (non-Javadoc)
      * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class)
      */
 	@Override
 	@SuppressWarnings("unchecked")
 	public <T> T getAdapter(Object adaptableObject, Class<T> adapterType) {
-		
+
     	if (IElementContentProvider.class.equals(adapterType)) {
     		if (adaptableObject instanceof IJavaThread) {
 				return (T) getThreadPresentation();
@@ -73,32 +73,32 @@
 		}
 		return fgCPThread;
 	}
-	
+
 	private IElementContentProvider getOwnedMonitorContentProvider() {
 		if (fgCPOwnedMonitor == null) {
 			fgCPOwnedMonitor = new OwnedMonitorContentProvider();
 		}
 		return fgCPOwnedMonitor;
 	}
-	
+
 	private IElementContentProvider getWaitingThreadContentProvider() {
 		if (fgCPWaitingThread == null) {
 			fgCPWaitingThread = new WaitingThreadContentProvider();
 		}
 		return fgCPWaitingThread;
-	}	
-	
+	}
+
 	private IElementContentProvider getContendedMonitorContentProvider() {
 		if (fgCPContendedMonitor == null) {
 			fgCPContendedMonitor = new ContendedMonitorContentProvider();
 		}
 		return fgCPContendedMonitor;
-	}	
-	
+	}
+
 	private IElementContentProvider getOwningThreadContentProvider() {
 		if (fgCPOwningThread == null) {
 			fgCPOwningThread = new OwningThreadContentProvider();
 		}
 		return fgCPOwningThread;
-	}		
+	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/NoMonitorInformationElement.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/NoMonitorInformationElement.java
index 2f65649..f4a7d3f 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/NoMonitorInformationElement.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/NoMonitorInformationElement.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/OwnedMonitorContentProvider.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/OwnedMonitorContentProvider.java
index 985ab9c..6b64120 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/OwnedMonitorContentProvider.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/OwnedMonitorContentProvider.java
@@ -16,7 +16,7 @@
 
 /**
  * Content provider for an owned monitor.
- * 
+ *
  * @since 3.3
  */
 public class OwnedMonitorContentProvider extends JavaElementContentProvider {
@@ -36,5 +36,5 @@
 	protected Object[] getChildren(Object parent, int index, int length, IPresentationContext context, IViewerUpdate monitor) throws CoreException {
 		 return getElements(((JavaOwnedMonitor) parent).getWaitingThreads(), index, length);
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/OwningThreadContentProvider.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/OwningThreadContentProvider.java
index e843d13..470dc0a 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/OwningThreadContentProvider.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/OwningThreadContentProvider.java
@@ -16,7 +16,7 @@
 
 /**
  * Content provider for an 'owning thread' in a monitor tree.
- * 
+ *
  * @since 3.3
  */
 public class OwningThreadContentProvider extends JavaElementContentProvider {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/ThreadMonitorManager.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/ThreadMonitorManager.java
index 78c4556..5e0a0c0 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/ThreadMonitorManager.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/ThreadMonitorManager.java
@@ -36,9 +36,9 @@
  * Manager for the thread and monitor model.
  */
 public class ThreadMonitorManager implements IDebugEventSetListener, IPropertyChangeListener {
-	
+
 	private static ThreadMonitorManager fDefaultManager;
-	
+
 	/**
 	 * HashMap IJavaThread -> JavaMonitorThread
 	 */
@@ -47,9 +47,9 @@
 	 * HashMap IJavaObject -> JavaMonitor
 	 */
 	private HashMap<IDebugElement, Object> fJavaMonitors;
-	
+
 	private boolean fIsEnabled;
-	
+
 	/**
 	 * Returns the default ThreadMonitorManager object.
 	 */
@@ -59,10 +59,10 @@
 		}
 		return fDefaultManager;
 	}
-	
+
 	private ThreadMonitorManager() {
-		fJavaMonitorThreads= new HashMap<IDebugElement, Object>();
-		fJavaMonitors= new HashMap<IDebugElement, Object>();
+		fJavaMonitorThreads= new HashMap<>();
+		fJavaMonitors= new HashMap<>();
 		IPreferenceStore preferenceStore = JDIDebugUIPlugin.getDefault().getPreferenceStore();
 		preferenceStore.addPropertyChangeListener(this);
 		fIsEnabled= preferenceStore.getBoolean(IJavaDebugUIConstants.PREF_SHOW_MONITOR_THREAD_INFO);
@@ -119,7 +119,7 @@
 			}
 		}
 	}
-	
+
 	private void handleSuspendResume() {
 		JavaMonitorThread[] threads = getJavaMonitorThreads();
 		for (int i = 0; i < threads.length; i++) {
@@ -144,7 +144,7 @@
 	private void clean(Map<IDebugElement, Object> map, IJavaDebugTarget debugTarget) {
 		IDebugElement debugElements[] = null;
 		synchronized(map) {
-			debugElements = new IDebugElement[map.size()]; 
+			debugElements = new IDebugElement[map.size()];
 			debugElements =	map.keySet().toArray(debugElements);
 		}
 		for(int i = 0; i < debugElements.length; ++i) {
@@ -155,7 +155,7 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Returns the unique JavaMonitorThread object for the given thread.
 	 */
@@ -165,14 +165,14 @@
 			if (javaMonitorThread == null) {
 				javaMonitorThread= new JavaMonitorThread(thread, originalThread);
 				fJavaMonitorThreads.put(thread, javaMonitorThread);
-				DebugPlugin.getDefault().asyncExec(new DetectDeadlock());			
+				DebugPlugin.getDefault().asyncExec(new DetectDeadlock());
 			} else if (originalThread != null) {
 				javaMonitorThread.setOriginalThread(originalThread);
 			}
 			return javaMonitorThread;
 		}
 	}
-	
+
 	/**
 	 * Returns the unique JavaMonitor object for the given monitor.
 	 */
@@ -195,7 +195,7 @@
 			fJavaMonitors.remove(monitor.getMonitor());
 		}
 	}
-			
+
 	/**
 	 * Returns the monitor the given thread is waiting for.
 	 */
@@ -206,7 +206,7 @@
 		}
 		return getJavaMonitorThread(javaThread, thread).getContendedMonitor();
 	}
-	
+
 	/**
 	 * Returns the monitors the given thread owns.
 	 */
@@ -219,7 +219,7 @@
 	}
 
 	/**
-	 *  Runnable to be run asynchronously, to refresh the model and 
+	 *  Runnable to be run asynchronously, to refresh the model and
 	 *  look for deadlocks.
 	 */
 	class RefreshAndDetectDeadlock extends DetectDeadlock {
@@ -238,11 +238,11 @@
 		public void run() {
 			JavaMonitorThread[] threads= getJavaMonitorThreads();
 			JavaMonitor[] monitors= getJavaMonitors();
-			List<Object> inDeadlock= new ArrayList<Object>();
+			List<Object> inDeadlock= new ArrayList<>();
 			for (int i = 0; i < threads.length; i++) {
 				JavaMonitorThread thread= threads[i];
-				List<JavaMonitorThread> threadStack= new ArrayList<JavaMonitorThread>();
-				List<JavaMonitor> monitorStack= new ArrayList<JavaMonitor>();
+				List<JavaMonitorThread> threadStack= new ArrayList<>();
+				List<JavaMonitor> monitorStack= new ArrayList<>();
 				while (thread != null) {
 					boolean isInDeadlock= false;
 					if (inDeadlock.contains(thread) || threadStack.contains(thread)) {
@@ -296,7 +296,7 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Returns <code>true</code> if SHOW_MONITOR_THREAD_INFO is on and the given thread is
 	 * in a deadlock, <code>false</code> otherwise.
@@ -315,7 +315,7 @@
 			return fJavaMonitors.values().toArray(monitors);
 		}
 	}
-	
+
 	private JavaMonitorThread[] getJavaMonitorThreads() {
 		synchronized(fJavaMonitorThreads) {
 			JavaMonitorThread[] threads = new JavaMonitorThread[fJavaMonitorThreads.size()];
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/WaitingThreadContentProvider.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/WaitingThreadContentProvider.java
index 55d4df6..23465be 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/WaitingThreadContentProvider.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/monitors/WaitingThreadContentProvider.java
@@ -16,8 +16,8 @@
 
 /**
  * Content provider for a 'thread waiting on a monitor' in a monitor tree.
- * 
- * @since 3.3 
+ *
+ * @since 3.3
  */
 public class WaitingThreadContentProvider extends JavaElementContentProvider {
 
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/ExceptionFilterEditor.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/ExceptionFilterEditor.java
index bd6d856..3a69591 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/ExceptionFilterEditor.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/ExceptionFilterEditor.java
@@ -86,7 +86,7 @@
 	private CheckboxTableViewer fFilterViewer;
 	private Table fFilterTable;
 	private FilterContentProvider fFilterContentProvider;
-	
+
 	private SelectionListener fSelectionListener= new SelectionAdapter() {
 		@Override
 		public void widgetSelected(SelectionEvent e) {
@@ -118,12 +118,12 @@
 		outer.setFont(parent.getFont());
 		// filter table
 		Label label= new Label(outer, SWT.NONE);
-		label.setText(PropertyPageMessages.ExceptionFilterEditor_5); 
+		label.setText(PropertyPageMessages.ExceptionFilterEditor_5);
 		label.setFont(parent.getFont());
 		gd= new GridData();
 		gd.horizontalSpan= 2;
 		label.setLayoutData(gd);
-		
+
 		fFilterTable = new Table(outer, SWT.CHECK | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);
 
 		TableLayout tableLayout = new TableLayout();
@@ -178,8 +178,8 @@
 
 	protected void doStore() {
 		Object[] filters = fFilterContentProvider.getElements(null);
-		List<String> inclusionFilters = new ArrayList<String>(filters.length);
-		List<String> exclusionFilters = new ArrayList<String>(filters.length);
+		List<String> inclusionFilters = new ArrayList<>(filters.length);
+		List<String> exclusionFilters = new ArrayList<>(filters.length);
 		for (int i = 0; i < filters.length; i++) {
 			Filter filter = (Filter) filters[i];
 			String name = filter.getName();
@@ -215,20 +215,20 @@
 		buttonContainer.setLayout(buttonLayout);
 
 		fAddFilterButton = createPushButton(buttonContainer,
-				PropertyPageMessages.ExceptionFilterEditor_6, 
-				PropertyPageMessages.ExceptionFilterEditor_7); 
+				PropertyPageMessages.ExceptionFilterEditor_6,
+				PropertyPageMessages.ExceptionFilterEditor_7);
 		fAddTypeButton = createPushButton(buttonContainer,
-				PropertyPageMessages.ExceptionFilterEditor_8, 
-				PropertyPageMessages.ExceptionFilterEditor_9); 
+				PropertyPageMessages.ExceptionFilterEditor_8,
+				PropertyPageMessages.ExceptionFilterEditor_9);
 		fAddPackageButton = createPushButton(buttonContainer,
-				PropertyPageMessages.ExceptionFilterEditor_10, 
-				PropertyPageMessages.ExceptionFilterEditor_11); 
+				PropertyPageMessages.ExceptionFilterEditor_10,
+				PropertyPageMessages.ExceptionFilterEditor_11);
 		fRemoveFilterButton = createPushButton(buttonContainer,
-				PropertyPageMessages.ExceptionFilterEditor_12, 
-				PropertyPageMessages.ExceptionFilterEditor_13); 
+				PropertyPageMessages.ExceptionFilterEditor_12,
+				PropertyPageMessages.ExceptionFilterEditor_13);
 		fRemoveFilterButton.setEnabled(false);
 	}
-	
+
 	/**
 	 * Creates a fully configured push button with the given label and tooltip.
 	 */
@@ -323,7 +323,7 @@
 				}
 			}
 		});
-		// Consume traversal events from the text widget so that CR doesn't 
+		// Consume traversal events from the text widget so that CR doesn't
 		// traverse away to dialog's default button.  Without this, hitting
 		// CR in the text field closes the entire dialog.
 		text.addListener(SWT.Traverse, new Listener() {
@@ -343,7 +343,7 @@
 		// if it's invalid, beep and leave sitting in the editor
 		else if (!validateEditorInput(trimmedValue)) {
 			fInvalidEditorText = trimmedValue;
-			fEditorText.setText(PropertyPageMessages.ExceptionFilterEditor_14); 
+			fEditorText.setText(PropertyPageMessages.ExceptionFilterEditor_14);
 			return;
 			// otherwise, commit the new value if not a duplicate
 		} else {
@@ -369,7 +369,7 @@
 	 * scoping must be limited to exact matches or patterns that
 	 * begin with '*' or end with '*'. Beyond this, a string cannot be validated
 	 * as corresponding to an existing type or package (and this is probably not
-	 * even desirable).  
+	 * even desirable).
 	 */
 	private boolean validateEditorInput(String trimmedValue) {
 		char firstChar = trimmedValue.charAt(0);
@@ -427,16 +427,16 @@
 		try {
 			dialog = JDIDebugUIPlugin.createAllPackagesDialog(shell, null, false);
 		} catch (JavaModelException jme) {
-			String title = PropertyPageMessages.ExceptionFilterEditor_15; 
-			String message = PropertyPageMessages.ExceptionFilterEditor_16; 
+			String title = PropertyPageMessages.ExceptionFilterEditor_15;
+			String message = PropertyPageMessages.ExceptionFilterEditor_16;
 			ExceptionHandler.handle(jme, title, message);
 			return;
 		}
 		if (dialog == null) {
 			return;
 		}
-		dialog.setTitle(PropertyPageMessages.ExceptionFilterEditor_15); 
-		dialog.setMessage(PropertyPageMessages.ExceptionFilterEditor_18); 
+		dialog.setTitle(PropertyPageMessages.ExceptionFilterEditor_15);
+		dialog.setMessage(PropertyPageMessages.ExceptionFilterEditor_18);
 		dialog.setMultipleSelection(true);
 		if (dialog.open() == IDialogConstants.CANCEL_ID) {
 			return;
@@ -463,14 +463,14 @@
 		try {
 			dialog = JavaUI.createTypeDialog(shell, PlatformUI.getWorkbench().getProgressService(), SearchEngine.createWorkspaceScope(), IJavaElementSearchConstants.CONSIDER_CLASSES, false);
 		} catch (JavaModelException jme) {
-			String title = PropertyPageMessages.ExceptionFilterEditor_19; 
-			String message = PropertyPageMessages.ExceptionFilterEditor_20; 
+			String title = PropertyPageMessages.ExceptionFilterEditor_19;
+			String message = PropertyPageMessages.ExceptionFilterEditor_20;
 			ExceptionHandler.handle(jme, title, message);
 			return;
 		}
 
-		dialog.setTitle(PropertyPageMessages.ExceptionFilterEditor_19); 
-		dialog.setMessage(PropertyPageMessages.ExceptionFilterEditor_22); 
+		dialog.setTitle(PropertyPageMessages.ExceptionFilterEditor_19);
+		dialog.setMessage(PropertyPageMessages.ExceptionFilterEditor_22);
 		if (dialog.open() == IDialogConstants.CANCEL_ID) {
 			return;
 		}
@@ -512,7 +512,7 @@
 				eFilters = new String[] {
 				};
 			}
-			fFilters = new ArrayList<Filter>();
+			fFilters = new ArrayList<>();
 			populateFilters(iFilters, true);
 			populateFilters(eFilters, false);
 
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/InstanceFilterEditor.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/InstanceFilterEditor.java
index 2229e77..c8b7287 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/InstanceFilterEditor.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/InstanceFilterEditor.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -30,7 +30,7 @@
 import org.eclipse.swt.widgets.Label;
 
 /**
- * 
+ *
  */
 public class InstanceFilterEditor {
 	private IJavaBreakpoint fBreakpoint;
@@ -38,15 +38,15 @@
 	private Composite fParent;
 	private InstanceFilterContentProvider fContentProvider;
 	private CheckHandler fCheckHandler;
-	
+
 	public InstanceFilterEditor(Composite parent, IJavaBreakpoint breakpoint) {
 		fBreakpoint= breakpoint;
 		fContentProvider= new InstanceFilterContentProvider();
 		fCheckHandler= new CheckHandler();
 		Label label= new Label(parent, SWT.NONE);
 		label.setFont(parent.getFont());
-		label.setText(PropertyPageMessages.InstanceFilterEditor_0); 
-		
+		label.setText(PropertyPageMessages.InstanceFilterEditor_0);
+
 		fParent= parent;
 		//fOuter= new Composite(parent, SWT.NONE);
 		//fOuter.setFont(parent.getFont());
@@ -56,13 +56,13 @@
 		//layout.marginHeight = 0;
 		//layout.numColumns = 2;
 		//fOuter.setLayout(layout);
-		
+
 		//GridData data= new GridData(GridData.FILL_BOTH);
 		//fOuter.setLayoutData(data);
-		
+
 		createViewer();
 	}
-	
+
 	/**
 	 * Create and initialize the thread filter tree viewer.
 	 */
@@ -98,7 +98,7 @@
 			JDIDebugUIPlugin.log(e);
 		}
 	}
-	
+
 	protected void doStore() {
 		try {
 			IJavaObject[] objects = fBreakpoint.getInstanceFilters();
@@ -109,24 +109,24 @@
 			}
 		}  catch (CoreException e) {
 			JDIDebugUIPlugin.log(e);
-		}						
+		}
 	}
-	
-	class CheckHandler implements ICheckStateListener {	
-		
+
+	class CheckHandler implements ICheckStateListener {
+
 		@Override
 		public void checkStateChanged(CheckStateChangedEvent event) {
 			fInstanceViewer.setChecked(event.getElement(), event.getChecked());
 		}
-		
+
 		public void checkObject(IJavaObject object, boolean checked) {
 			fInstanceViewer.setChecked(object, checked);
 		}
-		
+
 	}
-	
+
 	class InstanceFilterContentProvider implements ITreeContentProvider {
-		
+
 		/**
 		 * @see ITreeContentProvider#getChildren(Object)
 		 */
@@ -160,7 +160,7 @@
 		public boolean hasChildren(Object element) {
 			if (element instanceof IJavaBreakpoint) {
 				return getChildren(element).length > 0;
-			} 
+			}
 			return false;
 		}
 
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/JavaBreakpointAdvancedPage.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/JavaBreakpointAdvancedPage.java
index 97be3c4..28bdc96 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/JavaBreakpointAdvancedPage.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/JavaBreakpointAdvancedPage.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -24,7 +24,7 @@
 import org.eclipse.ui.dialogs.PropertyPage;
 
 /**
- * 
+ *
  */
 public class JavaBreakpointAdvancedPage extends PropertyPage {
 
@@ -66,7 +66,7 @@
 		setValid(true);
 		return mainComposite;
 	}
-	
+
 	public void createInstanceFilterEditor(Composite parent) {
 		IJavaBreakpoint breakpoint= getBreakpoint();
 		try {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/JavaBreakpointPage.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/JavaBreakpointPage.java
index 7cb94d6..5a589f2 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/JavaBreakpointPage.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/JavaBreakpointPage.java
@@ -61,27 +61,27 @@
  * Property page for configuring IJavaBreakpoints.
  */
 public class JavaBreakpointPage extends PropertyPage {
-	
+
 	protected JavaElementLabelProvider fJavaLabelProvider= new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_DEFAULT);
 	protected Button fEnabledButton;
 	/*
 	 * protected Button fTriggerPointButton; protected Button fTriggerPointButtonActive;
 	 */
-	protected List<String> fErrorMessages= new ArrayList<String>();
+	protected List<String> fErrorMessages= new ArrayList<>();
 	protected String fPrevMessage = null;
 	private AbstractJavaBreakpointEditor fEditor;
-	
+
 	/**
 	 * Attribute used to indicate that a breakpoint should be deleted
 	 * when cancel is pressed.
 	 */
 	public static final String ATTR_DELETE_ON_CANCEL = JDIDebugUIPlugin.getUniqueIdentifier() + ".ATTR_DELETE_ON_CANCEL";  //$NON-NLS-1$
-	
+
 	/**
 	 * Constant for the empty string
 	 */
 	protected static final String EMPTY_STRING = ""; //$NON-NLS-1$
-	
+
 	/**
 	 * Store the breakpoint properties.
 	 * @see org.eclipse.jface.preference.IPreferencePage#performOk()
@@ -104,14 +104,14 @@
 		};
 		try {
 			ResourcesPlugin.getWorkspace().run(wr, null, 0, null);
-		} 
+		}
 		catch (CoreException e) {
-			JDIDebugUIPlugin.statusDialog(e.getStatus()); 
+			JDIDebugUIPlugin.statusDialog(e.getStatus());
 			JDIDebugUIPlugin.log(e);
 		}
 		return super.performOk();
 	}
-	
+
 	/**
 	 * Adds the given error message to the errors currently displayed on this page.
 	 * The page displays the most recently added error message.
@@ -126,7 +126,7 @@
 		setErrorMessage(message);
 		setValid(message == null);
 	}
-	
+
 	/**
 	 * Removes the given error message from the errors currently displayed on this page.
 	 * When an error message is removed, the page displays the error that was added
@@ -142,7 +142,7 @@
 			addErrorMessage(fErrorMessages.get(fErrorMessages.size() - 1));
 		}
 	}
-	
+
 	/**
 	 * Stores the values configured in this page. This method
 	 * should be called from within a workspace runnable to
@@ -168,7 +168,7 @@
 	private void storeEnabled(IJavaBreakpoint breakpoint) throws CoreException {
 		breakpoint.setEnabled(fEnabledButton.getSelection());
 	}
-	
+
 	/**
 	 * Creates the labels and editors displayed for the breakpoint.
 	 * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
@@ -192,7 +192,7 @@
                     @Override
 					public void shellActivated(ShellEvent e) {
                         Shell shell = (Shell)e.getSource();
-                        shell.setText(NLS.bind(PropertyPageMessages.JavaBreakpointPage_10, new String[]{getName(getBreakpoint())})); 
+                        shell.setText(NLS.bind(PropertyPageMessages.JavaBreakpointPage_10, new String[]{getName(getBreakpoint())}));
                         shell.removeShellListener(this);
                     }
                     @Override
@@ -213,10 +213,10 @@
         }
 		return mainComposite;
 	}
-	
+
     /**
      * Returns the name of the given element.
-     * 
+     *
      * @param element the element
      * @return the name of the element
      */
@@ -224,10 +224,10 @@
 		IWorkbenchAdapter adapter = element.getAdapter(IWorkbenchAdapter.class);
         if (adapter != null) {
             return adapter.getLabel(element);
-        } 
+        }
         return EMPTY_STRING;
-    }	
-	
+    }
+
 	/**
 	 * Creates the labels displayed for the breakpoint.
 	 * @param parent the parent composite
@@ -237,7 +237,7 @@
 		try {
 			String typeName = ((IJavaBreakpoint) getElement()).getTypeName();
 			if (typeName != null) {
-				createLabel(labelComposite, PropertyPageMessages.JavaBreakpointPage_3); 
+				createLabel(labelComposite, PropertyPageMessages.JavaBreakpointPage_3);
 				Text text = SWTFactory.createText(labelComposite, SWT.READ_ONLY, 1, typeName);
 				text.setBackground(parent.getBackground());
 			}
@@ -252,7 +252,7 @@
 	 * @param parent the parent composite
 	 */
 	protected void createEnabledButton(Composite parent) {
-		fEnabledButton = createCheckButton(parent, PropertyPageMessages.JavaBreakpointPage_5); 
+		fEnabledButton = createCheckButton(parent, PropertyPageMessages.JavaBreakpointPage_5);
 		try {
 			fEnabledButton.setSelection(getBreakpoint().isEnabled());
 		}
@@ -260,7 +260,7 @@
 			JDIDebugUIPlugin.log(ce);
 		}
 	}
-	
+
 	/**
 	 * Returns the breakpoint that this preference page configures
 	 * @return the breakpoint this page configures
@@ -268,7 +268,7 @@
 	protected IJavaBreakpoint getBreakpoint() {
 		return (IJavaBreakpoint) getElement();
 	}
-	
+
 	/**
 	 * Allows subclasses to add type specific labels to the common Java
 	 * breakpoint page.
@@ -289,7 +289,7 @@
 				JDIDebugUIPlugin.log(ce);
 			}
 			if (lineNumber.length() > 0) {
-				createLabel(parent, PropertyPageMessages.JavaLineBreakpointPage_2); 
+				createLabel(parent, PropertyPageMessages.JavaLineBreakpointPage_2);
 				Text text = SWTFactory.createText(parent, SWT.READ_ONLY, 1, lineNumber.toString());
 				text.setBackground(parent.getBackground());
 			}
@@ -299,20 +299,20 @@
 				if (member == null) {
 					return;
 				}
-				String label = PropertyPageMessages.JavaLineBreakpointPage_3; 
+				String label = PropertyPageMessages.JavaLineBreakpointPage_3;
 				if (breakpoint instanceof IJavaMethodBreakpoint) {
-					label = PropertyPageMessages.JavaLineBreakpointPage_4; 
+					label = PropertyPageMessages.JavaLineBreakpointPage_4;
 				} else if (breakpoint instanceof IJavaWatchpoint) {
-					label = PropertyPageMessages.JavaLineBreakpointPage_5; 
+					label = PropertyPageMessages.JavaLineBreakpointPage_5;
 				}
 				createLabel(parent, label);
 				Text text = SWTFactory.createText(parent, SWT.READ_ONLY, 1, fJavaLabelProvider.getText(member));
 				text.setBackground(parent.getBackground());
-			} 
+			}
 			catch (CoreException exception) {JDIDebugUIPlugin.log(exception);}
 		}
 	}
-	
+
 	/**
 	* Allows subclasses to add type specific editors to the common Java
 	* breakpoint page.
@@ -337,7 +337,7 @@
 						new JavaBreakpointConditionEditor(null) });
 		} else if (JavaMethodBreakpoint.JAVA_METHOD_BREAKPOINT.equals(type)) {
 			setTitle(PropertyPageMessages.JavaLineBreakpointPage_20);
-			fEditor = new CompositeBreakpointEditor(new AbstractJavaBreakpointEditor[] 
+			fEditor = new CompositeBreakpointEditor(new AbstractJavaBreakpointEditor[]
 			    {new MethodBreakpointEditor(), new JavaBreakpointConditionEditor(null)});
 		} else {
 			// use standard editor for any other kind of breakpoint (@see bug 325161)
@@ -364,7 +364,7 @@
 		setErrorMessage(e.getMessage());
 	}
    }
-	
+
 	/**
 	 * Creates a fully configured text editor with the given initial value
 	 * @param parent the parent composite
@@ -404,7 +404,7 @@
 	protected Button createRadioButton(Composite parent, String text) {
 		return SWTFactory.createRadioButton(parent, text, 1);
 	}
-	
+
 	/**
 	 * Check to see if the breakpoint should be deleted.
 	 * @return <code>true</code> if the page was canceled, <code>false</code> othewise
@@ -417,11 +417,11 @@
 				getBreakpoint().delete();
 			}
 		} catch (CoreException e) {
-			JDIDebugUIPlugin.statusDialog(PropertyPageMessages.JavaBreakpointPage_9, e.getStatus()); 
+			JDIDebugUIPlugin.statusDialog(PropertyPageMessages.JavaBreakpointPage_9, e.getStatus());
 		}
 		return super.performCancel();
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.preference.PreferencePage#createControl(org.eclipse.swt.widgets.Composite)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/JavaExceptionBreakpointAdvancedPage.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/JavaExceptionBreakpointAdvancedPage.java
index 6291c9b..96674fa 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/JavaExceptionBreakpointAdvancedPage.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/JavaExceptionBreakpointAdvancedPage.java
@@ -37,7 +37,7 @@
 	protected void createTypeSpecificEditors(Composite parent) {
 		fFilterEditor= new ExceptionFilterEditor(parent, this);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.preference.PreferencePage#createControl(org.eclipse.swt.widgets.Composite)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/PropertyPageMessages.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/PropertyPageMessages.java
index 63597fb..488032e 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/PropertyPageMessages.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/PropertyPageMessages.java
@@ -36,7 +36,7 @@
 	public static String ExceptionFilterEditor_19;
 	public static String ExceptionFilterEditor_20;
 	public static String ExceptionFilterEditor_22;
-	
+
 	public static String JavaBreakpointConditionEditor_0;
 	public static String JavaBreakpointConditionEditor_1;
 	public static String JavaBreakpointConditionEditor_2;
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/ThreadFilterEditor.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/ThreadFilterEditor.java
index 80a35ca..6f2cb9e 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/ThreadFilterEditor.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/ThreadFilterEditor.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -40,7 +40,7 @@
 import org.eclipse.swt.widgets.Label;
 
 /**
- * 
+ *
  */
 public class ThreadFilterEditor {
 
@@ -49,20 +49,20 @@
 	private ThreadFilterContentProvider fContentProvider;
 	private CheckHandler fCheckHandler;
 	private static String MAIN= "main"; //$NON-NLS-1$
-	
+
 	public ThreadFilterEditor(Composite parent, JavaBreakpointAdvancedPage page) {
 		fPage= page;
 		fContentProvider= new ThreadFilterContentProvider();
-		fCheckHandler= new CheckHandler();		
+		fCheckHandler= new CheckHandler();
 		createThreadViewer(parent);
 	}
-	
+
 	private void createThreadViewer(Composite parent) {
 		Label label= new Label(parent, SWT.NONE);
-		label.setText(PropertyPageMessages.ThreadFilterEditor_1); 
+		label.setText(PropertyPageMessages.ThreadFilterEditor_1);
 		label.setFont(parent.getFont());
 		label.setLayoutData(new GridData());
-		
+
 		GridData data= new GridData(GridData.FILL_BOTH);
 		data.heightHint= 100;
 		fThreadViewer= new CheckboxTreeViewer(parent, SWT.BORDER);
@@ -74,7 +74,7 @@
 		fThreadViewer.setInput(DebugPlugin.getDefault().getLaunchManager());
 		setInitialCheckedState();
 	}
-	
+
 	protected void doStore() {
 		IDebugTarget[] targets= getDebugTargets();
 		IJavaDebugTarget target;
@@ -127,7 +127,7 @@
 			JDIDebugUIPlugin.log(e);
 		}
 	}
-	
+
 	/**
 	 * Returns the debug targets that appear in the tree
 	 */
@@ -139,8 +139,8 @@
 		ILaunchManager launchManager= (ILaunchManager)input;
 		return launchManager.getDebugTargets();
 	}
-	
-	class CheckHandler implements ICheckStateListener {	
+
+	class CheckHandler implements ICheckStateListener {
 		@Override
 		public void checkStateChanged(CheckStateChangedEvent event) {
 			Object element= event.getElement();
@@ -151,7 +151,7 @@
 			}
 			verifyCheckedState();
 		}
-		
+
 		/**
 		 * Check or uncheck a debug target in the tree viewer.
 		 * When a debug target is checked, attempt to
@@ -207,7 +207,7 @@
 				}
 			}
 		}
-	
+
 		/**
 		 * Check or uncheck a thread.
 		 * When a thread is checked, make sure its debug
@@ -215,14 +215,14 @@
 		 * When a thread is unchecked, uncheck its debug
 		 * target.
 		 */
-		protected void checkThread(IThread thread, boolean checked) {	
+		protected void checkThread(IThread thread, boolean checked) {
 			fThreadViewer.setChecked(thread, checked);
 			IDebugTarget target= (thread).getDebugTarget();
 			if (checked) {
 				// When a thread is checked, make sure the target
 				// is checked and all other threads are
 				// unchecked (simulate radio button behavior)
-				if (!fThreadViewer.getChecked(target)) {					
+				if (!fThreadViewer.getChecked(target)) {
 					fThreadViewer.setChecked(target, true);
 				}
 				IThread[] threads;
@@ -243,7 +243,7 @@
 				fThreadViewer.setChecked(target, false);
 			}
 		}
-	
+
 		/**
 		 * Verify the state of the tree viewer.
 		 * If the user selects a debug target, they must select
@@ -275,13 +275,13 @@
 				if (checkedThread) {
 					fPage.setErrorMessage(null);
 				} else {
-					fPage.setErrorMessage(PropertyPageMessages.ThreadFilterEditor_2); 
+					fPage.setErrorMessage(PropertyPageMessages.ThreadFilterEditor_2);
 				}
 			}
 		}
-		
+
 	}
-	
+
 	class ThreadFilterContentProvider implements ITreeContentProvider {
 		/**
 		 * @see ITreeContentProvider#getChildren(Object)
@@ -297,9 +297,9 @@
 						JDIDebugUIPlugin.log(e);
 					}
 				}
-			}		
+			}
 			if (parent instanceof ILaunchManager) {
-				List<IJavaDebugTarget> children= new ArrayList<IJavaDebugTarget>();
+				List<IJavaDebugTarget> children= new ArrayList<>();
 				ILaunch[] launches= ((ILaunchManager) parent).getLaunches();
 				IDebugTarget[] targets;
 				IJavaDebugTarget target;
@@ -344,7 +344,7 @@
 			}
 			if (element instanceof IDebugElement) {
 				return getChildren(element).length > 0;
-			} 
+			}
 			if (element instanceof ILaunch) {
 				return true;
 			}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/VMCapabilitiesPropertyPage.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/VMCapabilitiesPropertyPage.java
index 2fe6710..1e30b8c 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/VMCapabilitiesPropertyPage.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/VMCapabilitiesPropertyPage.java
@@ -42,7 +42,7 @@
 /**
  * This class provides a properties page displaying all of the capabilities
  * of the VM associated with the selected <code>IDebugTarget</code> or <code>IProcess</code>
- * 
+ *
  * @since 3.3
  */
 public class VMCapabilitiesPropertyPage extends PropertyPage {
@@ -61,16 +61,16 @@
 			setLayout(layout);
 		}
 	}
-	
+
 	private List<ExpandableComposite> fExpandedComps;
 	private static final String EXPANDED_STATE = "vmc_expanded_state"; //$NON-NLS-1$
 	private static Font fHeadingFont = JFaceResources.getFontRegistry().getBold(JFaceResources.DIALOG_FONT);
-	
+
 	/**
-	 * Constructor 
+	 * Constructor
 	 */
 	public VMCapabilitiesPropertyPage() {
-		fExpandedComps = new ArrayList<ExpandableComposite>();
+		fExpandedComps = new ArrayList<>();
 	}
 
 	/* (non-Javadoc)
@@ -97,7 +97,7 @@
 			SWTFactory.createVerticalSpacer(comp, 1);
 			createHeadingLabel(comp, vm);
 			SWTFactory.createVerticalSpacer(comp, 1);
-			
+
 			// breakpoints
 			ExpandableComposite breakpoints = createExpandibleComposite(comp, ExpandableComposite.TWISTIE | ExpandableComposite.CLIENT_INDENT, PropertyPageMessages.VMCapabilitiesPropertyPage_27, 2, GridData.FILL_HORIZONTAL);
 			fExpandedComps.add(breakpoints);
@@ -105,10 +105,10 @@
 			breakpoints.setClient(bp_inner);
 			createCapabilityEntry(bp_inner, PropertyPageMessages.VMCapabilitiesPropertyPage_4, vm.canUseInstanceFilters());
 			createCapabilityEntry(bp_inner, PropertyPageMessages.VMCapabilitiesPropertyPage_9, vm.canWatchFieldModification());
-			createCapabilityEntry(bp_inner, PropertyPageMessages.VMCapabilitiesPropertyPage_10, vm.canWatchFieldAccess());			
+			createCapabilityEntry(bp_inner, PropertyPageMessages.VMCapabilitiesPropertyPage_10, vm.canWatchFieldAccess());
 			createCapabilityEntry(bp_inner, PropertyPageMessages.VMCapabilitiesPropertyPage_24, vm.canGetMethodReturnValues());
 			createCapabilityEntry(bp_inner, PropertyPageMessages.VMCapabilitiesPropertyPage_25, vm.canRequestMonitorEvents());
-			
+
 			// hot code replace
 			ExpandableComposite hcr = createExpandibleComposite(comp, ExpandableComposite.TWISTIE | ExpandableComposite.CLIENT_INDENT, PropertyPageMessages.VMCapabilitiesPropertyPage_28, 2, GridData.FILL_HORIZONTAL);
 			fExpandedComps.add(hcr);
@@ -117,7 +117,7 @@
 			createCapabilityEntry(hcr_inner, PropertyPageMessages.VMCapabilitiesPropertyPage_15, vm.canRedefineClasses());
 			createCapabilityEntry(hcr_inner, PropertyPageMessages.VMCapabilitiesPropertyPage_12, vm.canAddMethod());
 			createCapabilityEntry(hcr_inner, PropertyPageMessages.VMCapabilitiesPropertyPage_16, vm.canUnrestrictedlyRedefineClasses());
-			
+
 			// stepping
 			ExpandableComposite stepping = createExpandibleComposite(comp, ExpandableComposite.TWISTIE | ExpandableComposite.CLIENT_INDENT, PropertyPageMessages.VMCapabilitiesPropertyPage_29, 2, GridData.FILL_HORIZONTAL);
 			fExpandedComps.add(stepping);
@@ -126,7 +126,7 @@
 			createCapabilityEntry(stepping_inner, PropertyPageMessages.VMCapabilitiesPropertyPage_14, vm.canPopFrames());
 			createCapabilityEntry(stepping_inner, PropertyPageMessages.VMCapabilitiesPropertyPage_3, vm.canGetSyntheticAttribute());
 			createCapabilityEntry(stepping_inner, PropertyPageMessages.VMCapabilitiesPropertyPage_21, vm.canForceEarlyReturn());
-			
+
 			// others
 			ExpandableComposite general = createExpandibleComposite(comp, ExpandableComposite.TWISTIE | ExpandableComposite.CLIENT_INDENT, PropertyPageMessages.VMCapabilitiesPropertyPage_30, 2, GridData.FILL_HORIZONTAL);
 			fExpandedComps.add(general);
@@ -135,30 +135,30 @@
 			createCapabilityEntry(general_inner, PropertyPageMessages.VMCapabilitiesPropertyPage_6, vm.canGetCurrentContendedMonitor() && vm.canGetOwnedMonitorInfo());
 			createCapabilityEntry(general_inner, PropertyPageMessages.VMCapabilitiesPropertyPage_18, vm.canSetDefaultStratum());
 			createCapabilityEntry(general_inner, PropertyPageMessages.VMCapabilitiesPropertyPage_26, vm.canGetInstanceInfo());
-			
+
 			restoreExpansionState();
 		}
         applyDialogFont(comp);
 		return comp;
 	}
-	
+
 	private void createExplanation(Composite parent) {
 		Composite comp = SWTFactory.createComposite(parent, parent.getFont(), 1, 2, GridData.FILL_HORIZONTAL);
 		Label label = new Label(comp, SWT.WRAP);
         label.setFont(parent.getFont());
         label.setText(PropertyPageMessages.VMCapabilitiesPropertyPage_31);
-		label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); 
+		label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
 	}
-	
+
 	private void createHeadingLabel(Composite parent, VirtualMachineImpl vm) {
-		Composite comp = SWTFactory.createComposite(parent, parent.getFont(), 2, 2, GridData.HORIZONTAL_ALIGN_BEGINNING);				
+		Composite comp = SWTFactory.createComposite(parent, parent.getFont(), 2, 2, GridData.HORIZONTAL_ALIGN_BEGINNING);
 		SWTFactory.createLabel(comp, PropertyPageMessages.VMCapabilitiesPropertyPage_1, fHeadingFont, 1);
 		StringBuffer buff = new StringBuffer(vm.name().trim());
 		buff = buff.append(" ").append(vm.version().trim()); //$NON-NLS-1$
 		Text text = SWTFactory.createText(comp, SWT.READ_ONLY, 1, buff.toString());
 		text.setBackground(parent.getBackground());
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
 	 */
@@ -167,7 +167,7 @@
 		super.createControl(parent);
 		PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), IJavaDebugHelpContextIds.VMCAPABILITIES_PROPERTY_PAGE);
 	}
-	
+
 	/**
 	 * Returns the VM from the debug target
 	 * @return the VM form the element
@@ -191,7 +191,7 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Returns a new capability entry for a specified group
 	 * @param parent the parent group to add this entry to
@@ -202,7 +202,7 @@
 		SWTFactory.createCheckButton(parent, null, null, enabled, 1).setEnabled(false);
 		SWTFactory.createLabel(parent, label, parent.getFont(), 1);
 	}
-	
+
 	/**
 	 * Creates an ExpandibleComposite widget
 	 * @param parent the parent to add this widget to
@@ -225,7 +225,7 @@
 		});
 		return ex;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.preference.PreferencePage#doGetPreferenceStore()
 	 */
@@ -233,7 +233,7 @@
 	protected IPreferenceStore doGetPreferenceStore() {
 		return JDIDebugUIPlugin.getDefault().getPreferenceStore();
 	}
-	
+
 	/**
 	 * save the expansion state for next time, this only happens when the user selects the OK button when closing the dialog
 	 */
@@ -245,7 +245,7 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * restore the expansion state
 	 */
@@ -262,7 +262,7 @@
 			}
 		}
 	}
-		
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.preference.PreferencePage#performOk()
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/search/LaunchConfigurationQueryParticipant.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/search/LaunchConfigurationQueryParticipant.java
index fdc20bc..ffa683f 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/search/LaunchConfigurationQueryParticipant.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/search/LaunchConfigurationQueryParticipant.java
@@ -47,10 +47,10 @@
 import org.eclipse.ui.PartInitException;
 
 /**
- * This class provides a search participant to find class references in the 
+ * This class provides a search participant to find class references in the
  * {@linkplain IJavaLaunchConfigurationConstants#ATTR_MAIN_TYPE_NAME} attribute
  * of Java launch configurations
- * 
+ *
  * @since 3.4.0
  */
 public class LaunchConfigurationQueryParticipant implements IQueryParticipant {
@@ -214,7 +214,7 @@
 	}
 
 	/**
-	 * Returns the success of the the pattern matching 
+	 * Returns the success of the the pattern matching
 	 * @param scope the search scope
 	 * @param config the backing {@link ILaunchConfiguration}
 	 * @param pattern the search pattern
@@ -277,7 +277,7 @@
 
 	/**
 	 * The UI participant for showing configuration matches in the search view
-	 * 
+	 *
 	 * @since 3.4.0
 	 */
 	private static class UIParticipant implements IMatchPresentation {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/ISnippetStateChangedListener.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/ISnippetStateChangedListener.java
index 6a77c34..5c7415a 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/ISnippetStateChangedListener.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/ISnippetStateChangedListener.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -15,7 +15,7 @@
  * A listener interested in snippet evaluation state changes.
  */
 public interface ISnippetStateChangedListener {
-	
+
 	/**
 	 * Informs about the changed snippet evaluation state
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/JavaSnippetCompletionProcessor.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/JavaSnippetCompletionProcessor.java
index 57fe393..9bbf258 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/JavaSnippetCompletionProcessor.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/JavaSnippetCompletionProcessor.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui.snippeteditor;
 
- 
+
 import java.util.Arrays;
 
 import org.eclipse.jdt.core.JavaModelException;
@@ -37,27 +37,27 @@
  * Java snippet completion processor.
  */
 public class JavaSnippetCompletionProcessor implements IContentAssistProcessor {
-	
+
 	private CompletionProposalCollector fCollector;
 	private JavaSnippetEditor fEditor;
 	private IContextInformationValidator fValidator;
 	private TemplateEngine fTemplateEngine;
 	private CompletionProposalComparator fComparator;
 	private String fErrorMessage;
-	
+
 	private char[] fProposalAutoActivationSet;
 	private ContentAssistant fAssistant;
-			
+
 	public JavaSnippetCompletionProcessor(JavaSnippetEditor editor) {
 		fEditor= editor;
 		TemplateContextType contextType= JavaPlugin.getDefault().getTemplateContextRegistry().getContextType("java"); //$NON-NLS-1$
 		if (contextType != null) {
 			fTemplateEngine= new TemplateEngine(contextType);
 		}
-		
+
 		fComparator= new CompletionProposalComparator();
 	}
-	
+
 	public void setContentAssistant(ContentAssistant assistant) {
 		fAssistant = assistant;
 	}
@@ -68,7 +68,7 @@
 	public String getErrorMessage() {
 		return fErrorMessage;
 	}
-	
+
 	protected void setErrorMessage(String message) {
 		if (message != null && message.length() == 0) {
 			message = null;
@@ -102,7 +102,7 @@
 	public IContextInformation[] computeContextInformation(ITextViewer viewer, int offset) {
 		return null;
 	}
-	
+
 	/**
 	 * @see IContentAssistProcessor#computeProposals(ITextViewer, int)
 	 */
@@ -118,15 +118,15 @@
 				ErrorDialog.openError(shell, SnippetMessages.getString("CompletionProcessor.errorTitle"), SnippetMessages.getString("CompletionProcessor.errorMessage"), x.getStatus()); //$NON-NLS-2$ //$NON-NLS-1$
 				JDIDebugUIPlugin.log(x);
 			}
-			
+
 			IJavaCompletionProposal[] results= fCollector.getJavaCompletionProposals();
-			
+
 			if (fTemplateEngine != null) {
 				fTemplateEngine.reset();
-				fTemplateEngine.complete(viewer, position, null);			
-			
+				fTemplateEngine.complete(viewer, position, null);
+
 				TemplateProposal[] templateResults= fTemplateEngine.getResults();
-	
+
 				// concatenate arrays
 				IJavaCompletionProposal[] total= new IJavaCompletionProposal[results.length + templateResults.length];
 				System.arraycopy(templateResults, 0, total, 0, templateResults.length);
@@ -139,7 +139,7 @@
 			fCollector = null;
 		}
 	}
-	
+
 	/**
 	 * Order the given proposals.
 	 */
@@ -156,9 +156,9 @@
 			}
 
 		});
-		return proposals;	
-	}	
-	
+		return proposals;
+	}
+
 	/**
 	 * @see IContentAssistProcessor#getCompletionProposalAutoActivationCharacters()
 	 */
@@ -166,20 +166,20 @@
 	public char[] getCompletionProposalAutoActivationCharacters() {
 		return fProposalAutoActivationSet;
 	}
-	
+
 	/**
 	 * Sets this processor's set of characters triggering the activation of the
 	 * completion proposal computation.
-	 * 
+	 *
 	 * @param activationSet the activation set
 	 */
 	public void setCompletionProposalAutoActivationCharacters(char[] activationSet) {
 		fProposalAutoActivationSet= activationSet;
 	}
-	
+
 	/**
 	 * Tells this processor to order the proposals alphabetically.
-	 * 
+	 *
 	 * @param order <code>true</code> if proposals should be ordered.
 	 */
 	public void orderProposalsAlphabetically(boolean order) {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/JavaSnippetEditor.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/JavaSnippetEditor.java
index 2f12c9b..dd9dd12 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/JavaSnippetEditor.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/JavaSnippetEditor.java
@@ -11,7 +11,7 @@
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui.snippeteditor;
 
- 
+
 import java.io.ByteArrayOutputStream;
 import java.io.PrintStream;
 import java.lang.reflect.InvocationTargetException;
@@ -130,15 +130,15 @@
 /**
  * An editor for Java snippets.
  */
-public class JavaSnippetEditor extends AbstractDecoratedTextEditor implements IDebugEventFilter, IEvaluationListener, IValueDetailListener {			
+public class JavaSnippetEditor extends AbstractDecoratedTextEditor implements IDebugEventFilter, IEvaluationListener, IValueDetailListener {
 	public static final String IMPORTS_CONTEXT = "SnippetEditor.imports"; //$NON-NLS-1$
-	
+
 	public final static int RESULT_DISPLAY= 1;
 	public final static int RESULT_RUN= 2;
 	public final static int RESULT_INSPECT= 3;
-	
+
 	private int fResultMode; // one of the RESULT_* constants
-	
+
 	private IJavaProject fJavaProject;
 	private IEvaluationContext fEvaluationContext;
 	private IDebugTarget fVM;
@@ -146,20 +146,20 @@
 	private String fLaunchedWorkingDir;
 	private String fLaunchedVMArgs;
 	private IVMInstall fLaunchedVM;
-	private List<ISnippetStateChangedListener> fSnippetStateListeners;	
-	
+	private List<ISnippetStateChangedListener> fSnippetStateListeners;
+
 	private boolean fEvaluating;
 	private IJavaThread fThread;
 	private boolean fStepFiltersSetting;
-	
+
 	private int fSnippetStart;
 	private int fSnippetEnd;
-	
+
 	private String[] fImports= null;
-	
+
 	private Image fOldTitleImage= null;
 	private IClassFileEvaluationEngine fEngine= null;
-	
+
 	/**
 	 * The debug model presentation used for computing toString
 	 */
@@ -171,7 +171,7 @@
 	private String fResult;
 
 	/**
-	 * A thread that waits to have a 
+	 * A thread that waits to have a
 	 * thread to perform an evaluation in.
 	 */
 	private static class WaitThread extends Thread {
@@ -179,16 +179,16 @@
 		 * The display used for event dispatching.
 		 */
 		private Display fDisplay;
-		
+
 		/**
 		 * Indicates whether to continue event queue dispatching.
 		 */
 		private volatile boolean fContinueEventDispatching = true;
-		
+
 		private Object fLock;
 		/**
 		 * Creates a "wait" thread
-		 * 
+		 *
 		 * @param display the display to be used to read and dispatch events
 		 * @param lock the monitor to wait on
 		 */
@@ -203,7 +203,7 @@
 			try {
 				synchronized (fLock) {
 					//should be notified out of #setThread(IJavaThread)
-					fLock.wait(10000);	
+					fLock.wait(10000);
 				}
 			} catch (InterruptedException e) {
 			} finally {
@@ -215,14 +215,14 @@
 						// do nothing
 					}
 				});
-				
+
 				// Stop event dispatching
 				fContinueEventDispatching= false;
-				
+
 				// Force the event loop to return from sleep () so that
 				// it stops event dispatching.
 				fDisplay.asyncExec(null);
-			}	
+			}
 		}
 		/**
 		 * Processes events.
@@ -235,9 +235,9 @@
 					}
 				}
 			}
-		}		
+		}
 	}
-	
+
 	/**
 	 * Listens for part activation to set scrapbook active system property
 	 * for action enablement.
@@ -280,22 +280,22 @@
 		@Override
 		public void partVisible(IWorkbenchPartReference partRef) {
 		}
-		
+
 	};
-	
+
 	public JavaSnippetEditor() {
 		super();
 		setDocumentProvider(JDIDebugUIPlugin.getDefault().getSnippetDocumentProvider());
 		IPreferenceStore store = new ChainedPreferenceStore(new IPreferenceStore[] {
 				PreferenceConstants.getPreferenceStore(),
 				EditorsUI.getPreferenceStore()});
-		setSourceViewerConfiguration(new JavaSnippetViewerConfiguration(JDIDebugUIPlugin.getDefault().getJavaTextTools(), store, this));		
+		setSourceViewerConfiguration(new JavaSnippetViewerConfiguration(JDIDebugUIPlugin.getDefault().getJavaTextTools(), store, this));
 		fSnippetStateListeners = new ArrayList<>(4);
 		setPreferenceStore(store);
 		setEditorContextMenuId("#JavaSnippetEditorContext"); //$NON-NLS-1$
 		setRulerContextMenuId("#JavaSnippetRulerContext"); //$NON-NLS-1$
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.texteditor.AbstractTextEditor#doSetInput(org.eclipse.ui.IEditorInput)
 	 */
@@ -310,7 +310,7 @@
 			}
 		}
 	}
-		
+
 	@Override
 	public void init(IEditorSite site, IEditorInput input) throws PartInitException {
 		super.init(site, input);
@@ -332,7 +332,7 @@
 		getSite().getWorkbenchWindow().getPartService().removePartListener(fActivationListener);
 		super.dispose();
 	}
-	
+
 	/**
 	 * Actions for the editor popup menu
 	 * @see org.eclipse.ui.texteditor.AbstractTextEditor#createActions()
@@ -348,16 +348,16 @@
 			setAction("Stop", new StopAction(this));  //$NON-NLS-1$
 			setAction("SelectImports", new SelectImportsAction(this));  //$NON-NLS-1$
 		}
-	} 
-	
+	}
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.texteditor.AbstractTextEditor#editorContextMenuAboutToShow(org.eclipse.jface.action.IMenuManager)
 	 */
 	@Override
 	protected void editorContextMenuAboutToShow(IMenuManager menu) {
 		super.editorContextMenuAboutToShow(menu);
-		addGroup(menu, ITextEditorActionConstants.GROUP_EDIT, IContextMenuConstants.GROUP_GENERATE);		
-		addGroup(menu, ITextEditorActionConstants.GROUP_FIND, IContextMenuConstants.GROUP_SEARCH);		
+		addGroup(menu, ITextEditorActionConstants.GROUP_EDIT, IContextMenuConstants.GROUP_GENERATE);
+		addGroup(menu, ITextEditorActionConstants.GROUP_FIND, IContextMenuConstants.GROUP_SEARCH);
 		addGroup(menu, IContextMenuConstants.GROUP_SEARCH,  IContextMenuConstants.GROUP_SHOW);
 		if (getFile() != null) {
 			addAction(menu, IContextMenuConstants.GROUP_SHOW, "ShowInPackageView"); //$NON-NLS-1$
@@ -370,11 +370,11 @@
 	protected boolean isVMLaunched() {
 		return fVM != null;
 	}
-	
+
 	public boolean isEvaluating() {
 		return fEvaluating;
 	}
-	
+
 	public void evalSelection(int resultMode) {
 		if (!isInJavaProject()) {
 			reportNotInJavaProjectError();
@@ -383,14 +383,14 @@
 		if (isEvaluating()) {
 			return;
 		}
-		
+
 		checkCurrentProject();
-		
+
 		evaluationStarts();
 
 		fResultMode= resultMode;
 		buildAndLaunch();
-		
+
 		if (fVM == null) {
 			evaluationEnds();
 			return;
@@ -401,15 +401,15 @@
 		String snippet= selection.getText();
 		fSnippetStart= selection.getOffset();
 		fSnippetEnd= fSnippetStart + selection.getLength();
-		
-		evaluate(snippet);			
+
+		evaluate(snippet);
 	}
-	
+
 	/**
 	 * Checks if the page has been copied/moved to a different project or the project has been renamed.
 	 * Updates the launch configuration template if a copy/move/rename has occurred.
 	 */
-	protected void checkCurrentProject() {	
+	protected void checkCurrentProject() {
 		IFile file= getFile();
 		if (file == null) {
 			return;
@@ -429,10 +429,10 @@
 			ErrorDialog.openError(getShell(), SnippetMessages.getString("SnippetEditor.error.evaluating"), null, ce.getStatus()); //$NON-NLS-1$
 			evaluationEnds();
 			return;
-			
+
 		}
-	}	
-	
+	}
+
 	protected void buildAndLaunch() {
 		IJavaProject javaProject= getJavaProject();
 		if (javaProject == null) {
@@ -440,13 +440,13 @@
 		}
 		boolean build = !javaProject.getProject().getWorkspace().isAutoBuilding()
 			|| !javaProject.hasBuildState();
-		
+
 		if (build) {
 			if (!performIncrementalBuild()) {
 				return;
 			}
 		}
-		
+
 		boolean changed= classPathHasChanged();
 		if (!changed) {
 			changed = workingDirHasChanged();
@@ -462,7 +462,7 @@
 		if (changed) {
 			shutDownVM();
 		}
-	
+
 		if (fVM == null) {
 			checkMultipleEditors();
 		}
@@ -471,7 +471,7 @@
 			fVM= ScrapbookLauncher.getDefault().getDebugTarget(getFile());
 		}
 	}
-	
+
 	protected boolean performIncrementalBuild() {
 		IRunnableWithProgress r= new IRunnableWithProgress() {
 			@Override
@@ -484,7 +484,7 @@
 			}
 		};
 		try {
-			PlatformUI.getWorkbench().getProgressService().run(true, false, r);		
+			PlatformUI.getWorkbench().getProgressService().run(true, false, r);
 		} catch (InterruptedException e) {
 			JDIDebugUIPlugin.log(e);
 			evaluationEnds();
@@ -496,7 +496,7 @@
 		}
 		return true;
 	}
-	
+
 	protected void checkMultipleEditors() {
 		fVM= ScrapbookLauncher.getDefault().getDebugTarget(getFile());
 		//multiple editors are opened on the same page
@@ -515,7 +515,7 @@
 			}
 		}
 	}
-	
+
 	protected void setImports(String[] imports) {
 		fImports= imports;
 		IFile file= getFile();
@@ -534,11 +534,11 @@
 			ErrorDialog.openError(getShell(), SnippetMessages.getString("SnippetEditor.error.imports"), null, e.getStatus()); //$NON-NLS-1$
 		}
 	}
-	
+
 	protected String[] getImports() {
 		return fImports;
 	}
-			
+
 	protected IEvaluationContext getEvaluationContext() {
 		if (fEvaluationContext == null) {
 			IJavaProject project= getJavaProject();
@@ -547,7 +547,7 @@
 			}
 		}
 		if (fEvaluationContext != null) {
-			if (getImports() != null) {		
+			if (getImports() != null) {
 				fEvaluationContext.setImports(getImports());
 			} else {
 				fEvaluationContext.setImports(new String[]{});
@@ -555,7 +555,7 @@
 		}
 		return fEvaluationContext;
 	}
-	
+
 	protected IJavaProject getJavaProject() {
 		if (fJavaProject == null) {
 			try {
@@ -567,7 +567,7 @@
 		}
 		return fJavaProject;
 	}
-	
+
 	protected void shutDownVM() {
 		DebugPlugin.getDefault().removeDebugEventFilter(this);
 
@@ -582,7 +582,7 @@
 				if (getThread() != null) {
 					getThread().resume();
 				}
-				
+
 				fVM.terminate();
 			} catch (DebugException e) {
 				JDIDebugUIPlugin.log(e);
@@ -593,7 +593,7 @@
 			ScrapbookLauncher.getDefault().cleanup(target);
 		}
 	}
-	
+
 	/**
 	 * The VM has terminated, update state
 	 */
@@ -608,13 +608,13 @@
 		fEngine= null;
 		fireEvalStateChanged();
 	}
-	
+
 	public void addSnippetStateChangedListener(ISnippetStateChangedListener listener) {
 		if (fSnippetStateListeners != null && !fSnippetStateListeners.contains(listener)) {
 			fSnippetStateListeners.add(listener);
 		}
 	}
-	
+
 	public void removeSnippetStateChangedListener(ISnippetStateChangedListener listener) {
 		if (fSnippetStateListeners != null) {
 			fSnippetStateListeners.remove(listener);
@@ -640,7 +640,7 @@
 			getShell().getDisplay().asyncExec(r);
 		}
 	}
-	
+
 	protected void evaluate(String snippet) {
 		if (getThread() == null) {
 			WaitThread eThread= new WaitThread(Display.getCurrent(), this);
@@ -654,9 +654,9 @@
 			return;
 		}
 		boolean hitBreakpoints = Platform.getPreferencesService().getBoolean(
-				JDIDebugPlugin.getUniqueIdentifier(), 
-				JDIDebugModel.PREF_SUSPEND_FOR_BREAKPOINTS_DURING_EVALUATION, 
-				true, 
+				JDIDebugPlugin.getUniqueIdentifier(),
+				JDIDebugModel.PREF_SUSPEND_FOR_BREAKPOINTS_DURING_EVALUATION,
+				true,
 				null);
 		try {
 			getEvaluationEngine().evaluate(snippet,getThread(), this, hitBreakpoints);
@@ -666,7 +666,7 @@
 			evaluationEnds();
 		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.debug.eval.IEvaluationListener#evaluationComplete(org.eclipse.jdt.debug.eval.IEvaluationResult)
 	 */
@@ -680,7 +680,7 @@
 					showException(result.getException());
 				}
 				showAllErrors(errors);
-			} 
+			}
 			IJavaValue value= result.getValue();
 			if (value != null && !severeErrors) {
 				switch (fResultMode) {
@@ -698,7 +698,7 @@
 			}
 			evaluationEnds();
 	}
-	
+
 	/**
 	 * Make the expression view visible or open one
 	 * if required.
@@ -723,20 +723,20 @@
 				}
 			}
 		};
-		
+
 		async(r);
 	}
-		
+
 	protected void codeComplete(CompletionRequestor requestor) throws JavaModelException {
 		ITextSelection selection= (ITextSelection)getSelectionProvider().getSelection();
 		int start= selection.getOffset();
-		String snippet= getSourceViewer().getDocument().get();	
+		String snippet= getSourceViewer().getDocument().get();
 		IEvaluationContext e= getEvaluationContext();
 		if (e != null) {
 			e.codeComplete(snippet, start, requestor);
 		}
 	}
-		 
+
 	protected IJavaElement[] codeResolve() throws JavaModelException {
 		ISourceViewer viewer= getSourceViewer();
 		if (viewer == null) {
@@ -745,27 +745,27 @@
 		ITextSelection selection= (ITextSelection) getSelectionProvider().getSelection();
 		int start= selection.getOffset();
 		int len= selection.getLength();
-		
-		String snippet= viewer.getDocument().get();	
+
+		String snippet= viewer.getDocument().get();
 		IEvaluationContext e= getEvaluationContext();
 		if (e != null) {
 			return e.codeSelect(snippet, start, len);
 		}
 		return null;
-	}	
-	
+	}
+
 	protected void showError(IStatus status) {
 		evaluationEnds();
 		if (!status.isOK()) {
 			ErrorDialog.openError(getShell(), SnippetMessages.getString("SnippetEditor.error.evaluating2"), null, status); //$NON-NLS-1$
 		}
 	}
-	
+
 	protected void showError(String message) {
 		Status status= new Status(IStatus.ERROR, JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.ERROR, message, null);
 		showError(status);
 	}
-	
+
 	protected void displayResult(IJavaValue result) {
 		StringBuffer resultString= new StringBuffer();
 		try {
@@ -779,7 +779,7 @@
 						resultString.append(SnippetMessages.getFormattedString("SnippetEditor.typename", result.getReferenceTypeName())); //$NON-NLS-1$
 					} else {
 						resultString.append(" "); //$NON-NLS-1$
-					}   
+					}
                     resultString.append(DisplayAction.trimDisplayResult(evaluateToString(result)));
 				}
 			} else {
@@ -789,7 +789,7 @@
 			JDIDebugUIPlugin.log(e);
 			ErrorDialog.openError(getShell(), SnippetMessages.getString("SnippetEditor.error.toString"), null, e.getStatus()); //$NON-NLS-1$
 		}
-		
+
 		final String message = resultString.toString();
 		Runnable r = new Runnable() {
 			@Override
@@ -803,11 +803,11 @@
 		};
 		async(r);
 	}
-	
+
 	/**
 	 * Returns the result of evaluating 'toString' on the given
 	 * value.
-	 * 
+	 *
 	 * @param value object or primitive data type the 'toString'
 	 *  is required for
 	 * @return the result of evaluating toString
@@ -826,7 +826,7 @@
 		}
 		return fResult;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.ui.IValueDetailListener#detailComputed(org.eclipse.debug.core.model.IValue, java.lang.String)
 	 */
@@ -835,16 +835,16 @@
 		fResult= result;
 		this.notifyAll();
 	}
-	
+
 	protected void showAllErrors(final String[] errors) {
 		IDocument document = getSourceViewer().getDocument();
 		String delimiter = document.getLegalLineDelimiters()[0];
-		
+
 		final StringBuffer errorString = new StringBuffer();
 		for (int i = 0; i < errors.length; i++) {
 			errorString.append(errors[i] + delimiter);
 		}
-		
+
 		Runnable r = new Runnable() {
 			@Override
 			public void run() {
@@ -857,7 +857,7 @@
 		};
 		async(r);
 	}
-	
+
 	private void showExpression(final JavaInspectExpression expression) {
 	    Runnable r = new Runnable() {
 	        @Override
@@ -867,8 +867,8 @@
 	    };
 	    async(r);
 	}
-    
-	
+
+
 	protected void showException(Throwable exception) {
 		if (exception instanceof DebugException) {
 			DebugException de = (DebugException)exception;
@@ -882,7 +882,7 @@
 		ByteArrayOutputStream bos= new ByteArrayOutputStream();
 		PrintStream ps= new PrintStream(bos, true);
 		exception.printStackTrace(ps);
-		
+
 		final String message = bos.toString();
 		Runnable r = new Runnable() {
 			@Override
@@ -896,7 +896,7 @@
 		};
 		async(r);
 	}
-	
+
 	protected void showUnderlyingException(Throwable t) {
 		if (t instanceof InvocationException) {
 			InvocationException ie= (InvocationException)t;
@@ -918,7 +918,7 @@
 			showException(t);
 		}
 	}
-	
+
 	protected IJavaProject findJavaProject() throws CoreException {
 		IFile file = getFile();
 		if (file != null) {
@@ -929,7 +929,7 @@
 		}
 		return null;
 	}
-		
+
 	protected boolean classPathHasChanged() {
 		String[] classpath= getClassPath(getJavaProject());
 		if (fLaunchedClassPath != null && !classPathsEqual(fLaunchedClassPath, classpath)) {
@@ -938,7 +938,7 @@
 		}
 		return false;
 	}
-	
+
 	protected boolean workingDirHasChanged() {
 		String wd = getWorkingDirectoryAttribute();
 		boolean changed = false;
@@ -956,7 +956,7 @@
 		}
 		return changed;
 	}
-	
+
 	protected boolean vmArgsChanged() {
 		String args = getVMArgsAttribute();
 		boolean changed = false;
@@ -973,8 +973,8 @@
 			MessageDialog.openWarning(getShell(), SnippetMessages.getString("SnippetEditor.Warning_1"), SnippetMessages.getString("SnippetEditor.1")); //$NON-NLS-1$ //$NON-NLS-2$
 		}
 		return changed;
-	}	
-	
+	}
+
 	protected boolean vmHasChanged() {
 		IVMInstall vm = getVMInstall();
 		boolean changed = false;
@@ -992,7 +992,7 @@
 		}
 		return changed;
 	}
-			
+
 	protected boolean classPathsEqual(String[] path1, String[] path2) {
 		if (path1.length != path2.length) {
 			return false;
@@ -1004,7 +1004,7 @@
 		}
 		return true;
 	}
-		
+
 	protected synchronized void evaluationStarts() {
 		if (fThread != null) {
 			try {
@@ -1016,15 +1016,15 @@
 				showException(e);
 				return;
 			}
-		}		
+		}
 		fEvaluating = true;
 		setTitleImage();
 		fireEvalStateChanged();
 		showStatus(SnippetMessages.getString("SnippetEditor.evaluating")); //$NON-NLS-1$
 		getSourceViewer().setEditable(false);
 	}
-	
-	/** 
+
+	/**
 	 * Sets the tab image to indicate whether in the process of
 	 * evaluating or not.
 	 */
@@ -1041,7 +1041,7 @@
 			setTitleImage(image);
 		}
 	}
-		
+
 	protected void evaluationEnds() {
 		Runnable r = new Runnable() {
 			@Override
@@ -1055,13 +1055,13 @@
 		};
 		async(r);
 	}
-	
+
 	protected void showStatus(String message) {
 		IEditorSite site=(IEditorSite)getSite();
 		EditorActionBarContributor contributor= (EditorActionBarContributor)site.getActionBarContributor();
 		contributor.getActionBars().getStatusLineManager().setMessage(message);
 	}
-	
+
 	protected String[] getClassPath(IJavaProject project) {
 		try {
 			return JavaRuntime.computeDefaultRuntimeClassPath(project);
@@ -1070,14 +1070,14 @@
 			return new String[0];
 		}
 	}
-	
+
 	protected Shell getShell() {
 		return getSite().getShell();
 	}
-	
+
 	/**
 	 * @see IDebugEventFilter#filterDebugEvents(DebugEvent[])
-	 */	
+	 */
 	@Override
 	public DebugEvent[] filterDebugEvents(DebugEvent[] events) {
 		for (int i = 0; i < events.length; i++) {
@@ -1113,7 +1113,7 @@
 								int lineNumber = f.getLineNumber();
 								if (e.getDetail() == DebugEvent.STEP_END && (lineNumber == 28)
 									&& f.getDeclaringTypeName().equals("org.eclipse.jdt.internal.debug.ui.snippeteditor.ScrapbookMain1") //$NON-NLS-1$
-									&& jt.getDebugTarget() == fVM) { 
+									&& jt.getDebugTarget() == fVM) {
 								    // restore step filters
 								    target.setStepFiltersEnabled(fStepFiltersSetting);
 									setThread(jt);
@@ -1142,7 +1142,7 @@
 		}
 		return events;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.texteditor.AbstractTextEditor#affectsTextPresentation(org.eclipse.jface.util.PropertyChangeEvent)
 	 */
@@ -1151,7 +1151,7 @@
         JavaSourceViewerConfiguration sourceViewerConfiguration = (JavaSourceViewerConfiguration) getSourceViewerConfiguration();
         return sourceViewerConfiguration.affectsTextPresentation(event);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.texteditor.AbstractTextEditor#handlePreferenceStoreChanged(org.eclipse.jface.util.PropertyChangeEvent)
 	 */
@@ -1174,11 +1174,11 @@
 			super.handlePreferenceStoreChanged(event);
 		}
 	}
-	
+
 	protected IJavaThread getThread() {
 		return fThread;
 	}
-	
+
 	/**
 	 * Sets the thread to perform any evaluations in.
 	 * Notifies the WaitThread waiting on getting an evaluation thread
@@ -1188,7 +1188,7 @@
 		fThread= thread;
 		notifyAll();
 	}
-	
+
 	protected void launchVM() {
 		DebugPlugin.getDefault().addDebugEventFilter(this);
 		fLaunchedClassPath = getClassPath(getJavaProject());
@@ -1203,7 +1203,7 @@
 		};
 		BusyIndicator.showWhile(getShell().getDisplay(), r);
 	}
-	
+
 	/**
      * Return the <code>IFile</code> associated with the current
      * editor input. Will return <code>null</code> if the current
@@ -1213,7 +1213,7 @@
 		IEditorInput input= getEditorInput();
 		return input.getAdapter(IFile.class);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.texteditor.AbstractTextEditor#updateSelectionDependentActions()
 	 */
@@ -1222,7 +1222,7 @@
 		super.updateSelectionDependentActions();
 		fireEvalStateChanged();
 	}
-	
+
 	/**
      * Terminates existing VM on a rename of the editor
  	 */
@@ -1231,7 +1231,7 @@
 		cleanupOnRenameOrMove();
 		super.setPartName(title);
 	}
-	
+
 	/**
 	 * If the launch configuration has been copied, moved or
 	 * renamed, shut down any running VM and clear the relevant cached information.
@@ -1243,15 +1243,15 @@
 			fThread= null;
 			fEvaluationContext= null;
 			fLaunchedClassPath= null;
-			
+
 			if (fEngine != null) {
 				fEngine.dispose();
 				fEngine= null;
-			}	
+			}
 		}
 		fJavaProject= null;
 	}
-	
+
 	/**
 	 * Returns whether this editor has been opened on a resource that
 	 * is in a Java project.
@@ -1264,7 +1264,7 @@
 		}
 		return false;
 	}
-	
+
 	/**
 	 * Displays an error dialog indicating that evaluation
 	 * cannot occur outside of a Java Project.
@@ -1282,7 +1282,7 @@
 		}
 		showError(message + SnippetMessages.getString("JavaSnippetEditor.Unable_to_perform_evaluation_outside_of_a_Java_Project_2")); //$NON-NLS-1$
 	}
-	
+
 	/**
 	 * Asks the user for the workspace path
 	 * of a file resource and saves the document there.
@@ -1294,18 +1294,18 @@
 		SaveAsDialog dialog= new SaveAsDialog(shell);
 		dialog.open();
 		IPath path= dialog.getResult();
-		
+
 		if (path == null) {
 			if (progressMonitor != null) {
 				progressMonitor.setCanceled(true);
 			}
 			return;
 		}
-			
+
 		IWorkspace workspace= ResourcesPlugin.getWorkspace();
 		IFile file= workspace.getRoot().getFile(path);
 		final IEditorInput newInput= new FileEditorInput(file);
-		
+
 		WorkspaceModifyOperation op= new WorkspaceModifyOperation() {
 			@Override
 			public void execute(final IProgressMonitor monitor) throws CoreException {
@@ -1313,7 +1313,7 @@
 				dp.saveDocument(monitor, newInput, dp.getDocument(getEditorInput()), true);
 			}
 		};
-		
+
 		boolean success= false;
 		try {
 			getDocumentProvider().aboutToChange(newInput);
@@ -1331,12 +1331,12 @@
 				setInput(newInput);
 			}
 		}
-		
+
 		if (progressMonitor != null) {
 			progressMonitor.setCanceled(!success);
 		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.ISaveablePart#isSaveAsAllowed()
 	 */
@@ -1344,7 +1344,7 @@
 	public boolean isSaveAsAllowed() {
 		return true;
 	}
-	
+
 	protected IClassFileEvaluationEngine getEvaluationEngine() {
 		if (fEngine == null) {
 			IPath outputLocation =	getJavaProject().getProject().getWorkingLocation(JDIDebugUIPlugin.getUniqueIdentifier());
@@ -1358,7 +1358,7 @@
 		}
 		return fEngine;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.texteditor.AbstractTextEditor#createSourceViewer(org.eclipse.swt.widgets.Composite, org.eclipse.jface.text.source.IVerticalRuler, int)
 	 */
@@ -1374,7 +1374,7 @@
 
 		return viewer;
 	}
-	
+
 	/**
 	 * Returns the working directory attribute for this scrapbook
 	 */
@@ -1389,7 +1389,7 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Returns the working directory attribute for this scrapbook
 	 */
@@ -1403,8 +1403,8 @@
 			}
 		}
 		return null;
-	}	
-	
+	}
+
 	/**
 	 * Returns the vm install for this scrapbook
 	 */
@@ -1418,8 +1418,8 @@
 			}
 		}
 		return null;
-	}	
-	
+	}
+
 	/**
 	 * Executes the given runnable in the Display thread
 	 */
@@ -1427,9 +1427,9 @@
 		Control control= getVerticalRuler().getControl();
 		if (!control.isDisposed()) {
 			control.getDisplay().asyncExec(r);
-		}		
+		}
 	}
-	
+
 	protected void showAndSelect(final String text, final int offset) {
 		Runnable r = new Runnable() {
 			@Override
@@ -1442,7 +1442,7 @@
 				selectAndReveal(offset, text.length());
 			}
 		};
-		async(r);		
+		async(r);
 	}
 
 	@SuppressWarnings("unchecked")
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/JavaSnippetViewerConfiguration.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/JavaSnippetViewerConfiguration.java
index 7bab110..cc0f5e2 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/JavaSnippetViewerConfiguration.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/JavaSnippetViewerConfiguration.java
@@ -30,18 +30,18 @@
  *  The source viewer configuration for the Java snippet editor.
  */
 public class JavaSnippetViewerConfiguration extends JavaSourceViewerConfiguration {
-	
+
 	public JavaSnippetViewerConfiguration(JavaTextTools tools, IPreferenceStore preferenceStore, JavaSnippetEditor editor) {
 		super(tools.getColorManager(), preferenceStore, editor, IJavaPartitions.JAVA_PARTITIONING);
 	}
-	
+
 	/**
 	 * @see JDIViewerConfiguration#getContentAssistantProcessor()
 	 */
 	public IContentAssistProcessor getContentAssistantProcessor() {
 		return new JavaSnippetCompletionProcessor((JavaSnippetEditor)getEditor());
 	}
-	
+
 	/**
 	 * @see SourceViewerConfiguration#getContentAssistant(ISourceViewer)
 	 */
@@ -66,7 +66,7 @@
 
 		return assistant;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.text.source.SourceViewerConfiguration#getReconciler(org.eclipse.jface.text.source.ISourceViewer)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/NewSnippetFileCreationWizard.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/NewSnippetFileCreationWizard.java
index ad3449b..5ab943d 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/NewSnippetFileCreationWizard.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/NewSnippetFileCreationWizard.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -29,7 +29,7 @@
 
 	private NewSnippetFileWizardPage fPage;
 	private IStructuredSelection fSelection;
-	
+
 	public NewSnippetFileCreationWizard() {
 		setNeedsProgressMonitor(true);
 		setWindowTitle(SnippetMessages.getString("NewSnippetFileCreationWizard.title")); //$NON-NLS-1$
@@ -55,7 +55,7 @@
 
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.wizard.IWizard#performFinish()
-	 */	
+	 */
 	@Override
 	public boolean performFinish() {
 		return fPage.finish();
@@ -69,7 +69,7 @@
 		fSelection= selection;
 		setDefaultPageImageDescriptor(JavaDebugImages.getImageDescriptor(JavaDebugImages.IMG_WIZBAN_NEWSCRAPPAGE));
 	}
-	
+
 	/**
 	 * If the current active editor edits a Java element return it, else
 	 * return null
@@ -85,6 +85,6 @@
 				}
 			}
 		}
-		return null;	
+		return null;
 	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/NewSnippetFileWizardPage.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/NewSnippetFileWizardPage.java
index d65164f..c674bdb 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/NewSnippetFileWizardPage.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/NewSnippetFileWizardPage.java
@@ -37,9 +37,9 @@
  * Page to create a new Java snippet file.
  */
 public class NewSnippetFileWizardPage extends WizardNewFileCreationPage {
-	
+
 	private static final String fgDefaultExtension= ".jpage"; //$NON-NLS-1$
-	
+
 	public NewSnippetFileWizardPage(IStructuredSelection selection) {
 		super("createScrapBookPage", selection); //$NON-NLS-1$
 		setTitle(SnippetMessages.getString("NewSnippetFileWizardPage.title")); //$NON-NLS-1$
@@ -47,7 +47,7 @@
 	}
 
 	public boolean finish() {
-		// add extension if non is provided 
+		// add extension if non is provided
 		String fileName= getFileName();
 		if (fileName != null && !fileName.endsWith(fgDefaultExtension)) {
 			setFileName(fileName + fgDefaultExtension);
@@ -81,7 +81,7 @@
 		}
 		return false;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.dialogs.WizardNewFileCreationPage#validatePage()
 	 */
@@ -92,7 +92,7 @@
 		if (!valid) {
 			return false;
 		}
-		
+
 		IWorkspaceRoot workspaceRoot= ResourcesPlugin.getWorkspace().getRoot();
 		IPath containerPath= getContainerFullPath();
 		if (containerPath != null && containerPath.segmentCount() > 0) {
@@ -106,12 +106,12 @@
 				JDIDebugUIPlugin.log(e.getStatus());
 			}
 		}
-	
+
 		String fileName= getFileName();
-		if (fileName != null && !fileName.endsWith(fgDefaultExtension)) {		
+		if (fileName != null && !fileName.endsWith(fgDefaultExtension)) {
 			fileName= fileName + fgDefaultExtension;
 			IPath path= getContainerFullPath();
-			
+
 			if (path != null && workspaceRoot.exists(path.append(fileName))) {
 				setErrorMessage(SnippetMessages.getString("NewSnippetFileWizardPage.error.AlreadyExists")); //$NON-NLS-1$
 				return false;
@@ -119,13 +119,13 @@
 		}
 		return true;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
 	public void createControl(Composite parent) {
 		super.createControl(parent);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), IJavaDebugHelpContextIds.NEW_SNIPPET_WIZARD_PAGE);		
+		PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), IJavaDebugHelpContextIds.NEW_SNIPPET_WIZARD_PAGE);
 	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/ScrapbookLauncher.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/ScrapbookLauncher.java
index 12e9feb..e56af53 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/ScrapbookLauncher.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/ScrapbookLauncher.java
@@ -9,8 +9,8 @@
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui.snippeteditor;
- 
- 
+
+
 import java.io.File;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
@@ -69,62 +69,62 @@
  */
 
 public class ScrapbookLauncher implements IDebugEventSetListener {
-	
+
 	public static final String SCRAPBOOK_LAUNCH = IJavaDebugUIConstants.PLUGIN_ID + ".scrapbook_launch"; //$NON-NLS-1$
-	
+
 	public static final String SCRAPBOOK_FILE_PATH = IJavaDebugUIConstants.PLUGIN_ID + ".scrapbook_file_path"; //$NON-NLS-1$
-	
+
 	/**
 	 * Persistent property associated with snippet files specifying working directory.
 	 * Same format as the associated launch configuration attribute
 	 * <code>ATTR_WORKING_DIR</code>.
 	 */
 	public static final QualifiedName SNIPPET_EDITOR_LAUNCH_CONFIG_HANDLE_MEMENTO = new QualifiedName(IJavaDebugUIConstants.PLUGIN_ID, "snippet_editor_launch_config"); //$NON-NLS-1$
-		
+
 	private IJavaLineBreakpoint fMagicBreakpoint;
-	
-	private HashMap<IFile, IDebugTarget> fScrapbookToVMs = new HashMap<IFile, IDebugTarget>(10);
-	private HashMap<IDebugTarget, IBreakpoint> fVMsToBreakpoints = new HashMap<IDebugTarget, IBreakpoint>(10);
-	private HashMap<IDebugTarget, IFile> fVMsToScrapbooks = new HashMap<IDebugTarget, IFile>(10);
-	
+
+	private HashMap<IFile, IDebugTarget> fScrapbookToVMs = new HashMap<>(10);
+	private HashMap<IDebugTarget, IBreakpoint> fVMsToBreakpoints = new HashMap<>(10);
+	private HashMap<IDebugTarget, IFile> fVMsToScrapbooks = new HashMap<>(10);
+
 	private static ScrapbookLauncher fgDefault = null;
-	
+
 	private ScrapbookLauncher() {
 		//see getDefault()
 	}
-	
+
 	public static ScrapbookLauncher getDefault() {
 		if (fgDefault == null) {
 			fgDefault = new ScrapbookLauncher();
 		}
 		return fgDefault;
 	}
-	
+
 	/**
 	 * Launches a VM for the given scrapbook page, in debug mode.
 	 * Returns an existing launch if the page is already running.
 	 * @param page the scrapbook page file
-	 * 
+	 *
 	 * @return resulting launch, or <code>null</code> on failure
 	 */
 	protected ILaunch launch(IFile page) {
 
 		// clean up orphaned launch configurations
 		cleanupLaunchConfigurations();
-							
+
 		if (!page.getFileExtension().equals("jpage")) { //$NON-NLS-1$
 			showNoPageDialog();
 			return null;
 		}
-		
+
 		IDebugTarget vm = getDebugTarget(page);
 		if (vm != null) {
 			//already launched
 			return vm.getLaunch();
 		}
-		
+
 		IJavaProject javaProject= JavaCore.create(page.getProject());
-			
+
 		URL jarURL = null;
 		try {
 			jarURL = JDIDebugUIPlugin.getDefault().getBundle().getEntry("snippetsupport.jar"); //$NON-NLS-1$
@@ -136,8 +136,8 @@
 			JDIDebugUIPlugin.errorDialog("Unable to launch scrapbook VM", e); //$NON-NLS-1$
 			return null;
 		}
-		
-		List<IRuntimeClasspathEntry> cp = new ArrayList<IRuntimeClasspathEntry>(3);
+
+		List<IRuntimeClasspathEntry> cp = new ArrayList<>(3);
 		String jarFile = jarURL.getFile();
 		IRuntimeClasspathEntry supportEntry = JavaRuntime.newArchiveRuntimeClasspathEntry(new Path(jarFile));
 		cp.add(supportEntry);
@@ -150,7 +150,7 @@
 				}
 			}
 			IRuntimeClasspathEntry[] classPath = cp.toArray(new IRuntimeClasspathEntry[cp.size()]);
-			
+
 			return doLaunch(javaProject, page, classPath, jarFile);
 		} catch (CoreException e) {
 			JDIDebugUIPlugin.errorDialog("Unable to launch scrapbook VM", e); //$NON-NLS-1$
@@ -169,18 +169,18 @@
 			try {
 				config = getLaunchConfigurationTemplate(page);
 				if (config != null) {
-					wc = config.getWorkingCopy();		
+					wc = config.getWorkingCopy();
 				}
 			} catch (CoreException e) {
 				config = null;
 				JDIDebugUIPlugin.errorDialog("Unable to retrieve scrapbook settings", e); //$NON-NLS-1$
 			}
-			
+
 			if (config == null) {
 				config = createLaunchConfigurationTemplate(page);
 				wc = config.getWorkingCopy();
-			}							
-			
+			}
+
 			IPath outputLocation =	p.getProject().getWorkingLocation(JDIDebugUIPlugin.getUniqueIdentifier());
 			File f = outputLocation.toFile();
 			URL u = null;
@@ -210,9 +210,9 @@
 					return null;
 				}
 			}
-			
-			// convert to mementos 
-			List<String> classpathList= new ArrayList<String>(classPath.length);
+
+			// convert to mementos
+			List<String> classpathList= new ArrayList<>(classPath.length);
 			for (int i = 0; i < classPath.length; i++) {
 				classpathList.add(classPath[i].getMemento());
 			}
@@ -225,7 +225,7 @@
 			if (wc.getAttribute(IJavaLaunchConfigurationConstants.ATTR_SOURCE_PATH_PROVIDER, (String)null) == null) {
 				wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_SOURCE_PATH_PROVIDER, "org.eclipse.jdt.debug.ui.scrapbookSourcepathProvider"); //$NON-NLS-1$
 			}
-			
+
 			StringBuffer urlsString = new StringBuffer();
 			for (int i = 0; i < urls.length; i++) {
 				urlsString.append(' ');
@@ -233,9 +233,9 @@
 			}
 			wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROGRAM_ARGUMENTS, urlsString.toString());
 			wc.setAttribute(SCRAPBOOK_LAUNCH, SCRAPBOOK_LAUNCH);
-			
+
 			config = wc.doSave();
-			
+
 			ILaunch launch = config.launch(ILaunchManager.DEBUG_MODE, null);
 			if (launch != null) {
 				IDebugTarget dt = launch.getDebugTarget();
@@ -252,10 +252,10 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Creates an "invisible" line breakpoint.
-	 * 
+	 *
 	 * @param jarFile
 	 *            path to the snippetsupport.jar file
 	 * @return the new 'magic' breakpoint
@@ -297,37 +297,37 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Returns the debug target associated with the given
 	 * scrapbook page, or <code>null</code> if none.
-	 * 
+	 *
 	 * @param page file representing scrapbook page
 	 * @return associated debug target or <code>null</code>
 	 */
 	public IDebugTarget getDebugTarget(IFile page) {
 		return fScrapbookToVMs.get(page);
 	}
-	
+
 	/**
 	 * Returns the magic breakpoint associated with the given
 	 * scrapbook VM. The magic breakpoint is the location at
 	 * which an evaluation begins.
-	 * 
-	 * @param target a scrapbook debug target 
+	 *
+	 * @param target a scrapbook debug target
 	 * @return the breakpoint at which an evaluation begins
 	 *  or <code>null</code> if none
 	 */
 	public IBreakpoint getMagicBreakpoint(IDebugTarget target) {
 		return fVMsToBreakpoints.get(target);
 	}
-	
+
 	protected void showNoPageDialog() {
 		String title= SnippetMessages.getString("ScrapbookLauncher.error.title"); //$NON-NLS-1$
 		String msg= SnippetMessages.getString("ScrapbookLauncher.error.pagenotfound"); //$NON-NLS-1$
 		MessageDialog.openError(JDIDebugUIPlugin.getActiveWorkbenchShell(),title, msg);
 	}
-	
+
 	protected void cleanup(IDebugTarget target) {
 		Object page = fVMsToScrapbooks.get(target);
 		if (page != null) {
@@ -344,15 +344,15 @@
 			}
 		}
 	}
-	
+
 	protected URL getEncodedURL(File file) throws MalformedURLException, UnsupportedEncodingException {
-		//looking at File.toURL the delimiter is always '/' 
+		//looking at File.toURL the delimiter is always '/'
 		// NOT File.separatorChar
 		String urlDelimiter= "/"; //$NON-NLS-1$
 		String unencoded= file.toURL().toExternalForm();
 		StringBuffer encoded= new StringBuffer();
 		StringTokenizer tokenizer= new StringTokenizer(unencoded, urlDelimiter);
-		
+
 		encoded.append(tokenizer.nextToken()); //file:
 		encoded.append(urlDelimiter);
 		encoded.append(tokenizer.nextToken()); //drive letter and ':'
@@ -370,7 +370,7 @@
 		}
 		return new URL(encoded.toString());
 	}
-	
+
 	/**
 	 * Returns the launch configuration used as a template for launching the
 	 * given scrapbook file, or <code>null</code> if none. The template contains
@@ -386,7 +386,7 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Creates and saves template launch configuration for the given scrapbook file.
 	 * @param page the backing page
@@ -398,7 +398,7 @@
 		String name = NLS.bind(SnippetMessages.getString("ScrapbookLauncher.17"), new String[]{page.getName()}); //$NON-NLS-1$
 		ILaunchConfigurationWorkingCopy wc = lcType.newInstance(null, name);
 		wc.setAttribute(IDebugUIConstants.ATTR_PRIVATE, true);
-		wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME, "org.eclipse.jdt.internal.debug.ui.snippeteditor.ScrapbookMain"); //$NON-NLS-1$			
+		wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME, "org.eclipse.jdt.internal.debug.ui.snippeteditor.ScrapbookMain"); //$NON-NLS-1$
 		wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, page.getProject().getName());
 		wc.setAttribute(SCRAPBOOK_LAUNCH, SCRAPBOOK_LAUNCH);
 		wc.setAttribute(SCRAPBOOK_FILE_PATH, page.getFullPath().toString());
@@ -406,9 +406,9 @@
 		JavaMigrationDelegate.updateResourceMapping(wc);
 		ILaunchConfiguration config = wc.doSave();
 		setLaunchConfigMemento(page, config.getMemento());
-		return config;		
-	}	
-		
+		return config;
+	}
+
 	/**
 	 * Returns the handle memento for the given scrapbook's launch configuration
 	 * template, or <code>null</code> if none.
@@ -422,8 +422,8 @@
 			JDIDebugUIPlugin.log(e);
 		}
 		return null;
-	}	
-	
+	}
+
 	/**
 	 * Sets the handle memento for the given scrapbook's launch configuration
 	 * template.
@@ -436,7 +436,7 @@
 		} catch (CoreException e) {
 			JDIDebugUIPlugin.log(e);
 		}
-	}	
+	}
 
 	/**
 	 * Returns the launch manager.
@@ -445,13 +445,13 @@
 	protected static ILaunchManager getLaunchManager() {
 		return DebugPlugin.getDefault().getLaunchManager();
 	}
-	
+
 	/**
 	 * Returns the working directory attribute for the given snippet file,
 	 * possibly <code>null</code>.
 	 * @param file the backing file
 	 * @return the working directory
-	 * 
+	 *
 	 * @exception CoreException if unable to retrieve the attribute
 	 */
 	public static String getWorkingDirectoryAttribute(IFile file) throws CoreException {
@@ -461,13 +461,13 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Returns the VM arguments attribute for the given snippet file,
 	 * possibly <code>null</code>.
 	 * @param file the backing file
 	 * @return the VM arguments
-	 * 
+	 *
 	 * @exception CoreException if unable to retrieve the attribute
 	 */
 	public static String getVMArgsAttribute(IFile file) throws CoreException {
@@ -476,13 +476,13 @@
 			return config.getAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_ARGUMENTS, (String)null);
 		}
 		return null;
-	}	
-	
+	}
+
 	/**
 	 * Returns the VM install used to launch the given snippet file.
 	 * @param file the backing file
 	 * @return the VM install
-	 * 
+	 *
 	 * @exception CoreException if unable to retrieve the attribute
 	 */
 	public static IVMInstall getVMInstall(IFile file) throws CoreException {
@@ -492,8 +492,8 @@
 			return JavaRuntime.getVMInstall(pro);
 		}
 		return JavaRuntime.computeVMInstall(config);
-	}	
-	
+	}
+
 	/**
 	 * Deletes any scrapbook launch configurations for scrap books that
 	 * have been deleted. Rather than listening to all resource deltas,
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/ScrapbookSourcepathProvider.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/ScrapbookSourcepathProvider.java
index f95fb49..bb7c547 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/ScrapbookSourcepathProvider.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/ScrapbookSourcepathProvider.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SelectImportsAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SelectImportsAction.java
index 7d2a57b..bb2ea38 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SelectImportsAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SelectImportsAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,7 +18,7 @@
 import org.eclipse.ui.PlatformUI;
 
 public class SelectImportsAction extends SnippetAction {
-	
+
 	public SelectImportsAction(JavaSnippetEditor editor) {
 		super(editor);
 		setText(SnippetMessages.getString("SelectImports.label")); //$NON-NLS-1$
@@ -28,7 +28,7 @@
 		setImageDescriptor(sharedImages.getImageDescriptor(ISharedImages.IMG_OBJS_IMPCONT));
 		PlatformUI.getWorkbench().getHelpSystem().setHelp(this, IJavaDebugHelpContextIds.SCRAPBOOK_IMPORTS_ACTION);
 	}
-	
+
 	/**
 	 * @see IAction#run()
 	 */
@@ -39,14 +39,14 @@
 			return;
 		}
 		chooseImports();
-	} 
-	
+	}
+
 	private void chooseImports() {
 		String[] imports= getEditor().getImports();
 		Dialog dialog= new SelectImportsDialog(getEditor(), imports);
-		dialog.open();		
+		dialog.open();
 	}
-	
+
 	/**
 	 * @see ISnippetStateChangedListener#snippetStateChanged(JavaSnippetEditor)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SelectImportsDialog.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SelectImportsDialog.java
index 60b1556..c729e84 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SelectImportsDialog.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SelectImportsDialog.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui.snippeteditor;
 
- 
+
 import java.util.ArrayList;
 import java.util.List;
 
@@ -62,24 +62,24 @@
 	private TableViewer fImportsViewer;
 	private Table fImportsTable;
 	private JavaSnippetEditor fEditor;
-	
+
 	private ImportsContentProvider fImportContentProvider;
-	
+
 	/**
 	 * Content provider for the table.  Content consists of instances of Filter.
-	 */	
+	 */
 	protected class ImportsContentProvider implements IStructuredContentProvider {
-		
+
 		private TableViewer fViewer;
 		private List<Filter> fImportNames;
-		
+
 		public ImportsContentProvider(TableViewer viewer) {
 			fViewer = viewer;
 			populateImports();
 		}
-		
+
 		protected void populateImports() {
-			fImportNames= new ArrayList<Filter>(1);
+			fImportNames= new ArrayList<>(1);
 			if (fImports != null) {
 				for (int i = 0; i < fImports.length; i++) {
 					String name = fImports[i];
@@ -87,7 +87,7 @@
 				}
 			}
 		}
-		
+
 		protected void addImport(String name) {
 			Filter imprt = new Filter(name, false);
 			if (!fImportNames.contains(imprt)) {
@@ -95,8 +95,8 @@
 				fViewer.add(imprt);
 			}
 		}
-		
-		
+
+
 		protected void removeImports(Object[] imports) {
 			for (int i = 0; i < imports.length; i++) {
 				Filter imprt = (Filter)imports[i];
@@ -104,7 +104,7 @@
 			}
 			fViewer.remove(imports);
 		}
-		
+
 		/* (non-Javadoc)
 		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
 		 */
@@ -112,35 +112,35 @@
 		public Object[] getElements(Object inputElement) {
 			return fImportNames.toArray();
 		}
-		
+
 		/* (non-Javadoc)
 		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
 		 */
 		@Override
 		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
 		}
-		
+
 		/* (non-Javadoc)
 		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
 		 */
 		@Override
 		public void dispose() {
-		}		
+		}
 	}
-	
+
 	public SelectImportsDialog(JavaSnippetEditor editor, String[] imports) {
 		super(editor.getShell());
 		fEditor= editor;
 		fImports= imports;
 	}
-	
+
 	private void createImportButtons(Composite container) {
 		PlatformUI.getWorkbench().getHelpSystem().setHelp(container, IJavaDebugHelpContextIds.SNIPPET_IMPORTS_DIALOG);
 		Composite bcomp = SWTFactory.createComposite(container, container.getFont(), 1, 1, GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_FILL, 0, 0);
 		GridLayout gl = (GridLayout) bcomp.getLayout();
 		gl.verticalSpacing = 0;
 		// Add type button
-		fAddTypeButton = SWTFactory.createPushButton(bcomp, 
+		fAddTypeButton = SWTFactory.createPushButton(bcomp,
 				SnippetMessages.getString("SelectImportsDialog.Add_&Type_1"),  //$NON-NLS-1$
 				SnippetMessages.getString("SelectImportsDialog.Choose_a_Type_to_Add_as_an_Import_2"),  //$NON-NLS-1$
 				null);
@@ -153,9 +153,9 @@
 			public void widgetDefaultSelected(SelectionEvent se) {
 			}
 		});
-		
+
 		// Add package button
-		fAddPackageButton = SWTFactory.createPushButton(bcomp, 
+		fAddPackageButton = SWTFactory.createPushButton(bcomp,
 				SnippetMessages.getString("SelectImportsDialog.Add_&Package_3"),  //$NON-NLS-1$
 				SnippetMessages.getString("SelectImportsDialog.Choose_a_Package_to_Add_as_an_Import_4"),  //$NON-NLS-1$
 				null);
@@ -168,9 +168,9 @@
 			public void widgetDefaultSelected(SelectionEvent se) {
 			}
 		});
-		
+
 		// Remove button
-		fRemoveImportsButton = SWTFactory.createPushButton(bcomp, 
+		fRemoveImportsButton = SWTFactory.createPushButton(bcomp,
 				SnippetMessages.getString("SelectImportsDialog.&Remove_5"),  //$NON-NLS-1$
 				SnippetMessages.getString("SelectImportsDialog.Remove_All_Selected_Imports_6"),  //$NON-NLS-1$
 				null);
@@ -185,18 +185,18 @@
 		});
 		fRemoveImportsButton.setEnabled(false);
 	}
-	
+
 	private void removeImports() {
-		IStructuredSelection selection = (IStructuredSelection)fImportsViewer.getSelection();		
+		IStructuredSelection selection = (IStructuredSelection)fImportsViewer.getSelection();
 		fImportContentProvider.removeImports(selection.toArray());
 	}
-	
+
 	private void addPackage() {
 		Shell shell= fAddPackageButton.getDisplay().getActiveShell();
 		ElementListSelectionDialog dialog = null;
 		try {
 			IJavaProject project= fEditor.getJavaProject();
-			List<IJavaElement> projects= new ArrayList<IJavaElement>();
+			List<IJavaElement> projects= new ArrayList<>();
 			projects.add(project);
 			IPackageFragmentRoot[] roots= project.getAllPackageFragmentRoots();
 			for (int i = 0; i < roots.length; i++) {
@@ -208,7 +208,7 @@
 			String title= SnippetMessages.getString("SelectImportsDialog.Add_package_as_import_7"); //$NON-NLS-1$
 			String message= SnippetMessages.getString("SelectImportsDialog.Could_not_open_package_selection_dialog_8");  //$NON-NLS-1$
 			ExceptionHandler.handle(jme, title, message);
-			return;			
+			return;
 		}
 		if (dialog == null) {
 			return;
@@ -227,9 +227,9 @@
 				filter += ".*"; //$NON-NLS-1$
 				fImportContentProvider.addImport(filter);
 			}
-		}		
+		}
 	}
-				
+
 	private void addType() {
 		Shell shell= fAddTypeButton.getDisplay().getActiveShell();
 		SelectionDialog dialog= null;
@@ -242,20 +242,20 @@
 			ExceptionHandler.handle(jme, title, message);
 			return;
 		}
-	
+
 		dialog.setTitle(SnippetMessages.getString("SelectImportsDialog.Add_Type_as_Import_12")); //$NON-NLS-1$
 		dialog.setMessage(SnippetMessages.getString("SelectImportsDialog.&Select_a_type_to_add_to_add_as_an_import_15")); //$NON-NLS-1$
 		if (dialog.open() == IDialogConstants.CANCEL_ID) {
 			return;
 		}
-		
+
 		Object[] types= dialog.getResult();
 		if (types != null && types.length > 0) {
 			IType type = (IType)types[0];
 			fImportContentProvider.addImport(type.getFullyQualifiedName());
-		}		
+		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
 	 */
@@ -287,10 +287,10 @@
 				if (selection.isEmpty()) {
 					fRemoveImportsButton.setEnabled(false);
 				} else {
-					fRemoveImportsButton.setEnabled(true);					
+					fRemoveImportsButton.setEnabled(true);
 				}
 			}
-		});		
+		});
 		createImportButtons(outer);
 		applyDialogFont(outer);
 		return parent;
@@ -313,10 +313,10 @@
 		fEditor.setImports(imports);
 		super.okPressed();
 	}
-	
+
 	/**
 	 * Sets the title for the dialog and establishes the help context.
-	 * 
+	 *
 	 * @see org.eclipse.jface.window.Window#configureShell(Shell);
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/ShowInPackageViewAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/ShowInPackageViewAction.java
index 3b4f274..a4f480b 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/ShowInPackageViewAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/ShowInPackageViewAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     Sebastian Davids <sdavids@gmx.de> - initial API and implementation
  *     IBM Corporation - bug fixes
@@ -22,29 +22,29 @@
 import org.eclipse.ui.PlatformUI;
 
 /**
- * This action reveals the snippet editor in the package explorer. 
- * 
+ * This action reveals the snippet editor in the package explorer.
+ *
  * <p>
  * This class may be instantiated; it is not intended to be subclassed.
  * </p>
  * @since 3.0
  */
 public class ShowInPackageViewAction extends Action {
-	
+
 	private JavaSnippetEditor fEditor;
-	
+
 	/**
 	 * Creates a new <code>ShowInPackageViewAction</code>.
-	 * 
+	 *
 	 * @param site the site providing context information for this action
 	 */
 	public ShowInPackageViewAction() {
 		super(SnippetMessages.getString("ShowInPackageViewAction.label")); //$NON-NLS-1$
 		setDescription(SnippetMessages.getString("ShowInPackageViewAction.description")); //$NON-NLS-1$
 		setToolTipText(SnippetMessages.getString("ShowInPackageViewAction.tooltip")); //$NON-NLS-1$
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this, IJavaHelpContextIds.SHOW_IN_PACKAGEVIEW_ACTION);	
+		PlatformUI.getWorkbench().getHelpSystem().setHelp(this, IJavaHelpContextIds.SHOW_IN_PACKAGEVIEW_ACTION);
 	}
-	
+
 	/**
 	 * Note: This constructor is for internal use only. Clients should not call this constructor.
 	 */
@@ -52,7 +52,7 @@
 		this();
 		fEditor= editor;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.action.Action#run()
 	 */
@@ -84,7 +84,7 @@
 	private Object getSelectedElement(PackageExplorerPart view) {
 		return ((IStructuredSelection) view.getSite().getSelectionProvider().getSelection()).getFirstElement();
 	}
-	
+
 	private static String getDialogTitle() {
 		return SnippetMessages.getString("ShowInPackageViewAction.dialog.title"); //$NON-NLS-1$
 	}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetAction.java
index a6eb741..3595257 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -16,29 +16,29 @@
  * A base class for evaluation state dependent actions.
  */
 public abstract class SnippetAction extends Action implements ISnippetStateChangedListener {
-		
+
 	private JavaSnippetEditor fEditor;
-	
+
 	public SnippetAction(JavaSnippetEditor editor) {
 		setEditor(editor);
 	}
-		
+
 	public void setEditor(JavaSnippetEditor editor) {
 		if (fEditor != null) {
 			fEditor.removeSnippetStateChangedListener(this);
 		}
 		fEditor= editor;
-		
+
 		if (fEditor != null) {
 			if (fEditor.getFile() == null) { //external file
 				setEnabled(false);
 				return;
-			} 
+			}
 			fEditor.addSnippetStateChangedListener(this);
 		}
 		snippetStateChanged(fEditor);
-	} 
-	
+	}
+
 	protected JavaSnippetEditor getEditor() {
 		return fEditor;
 	}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetDocumentSetupParticipant.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetDocumentSetupParticipant.java
index 2334c91..2666eee 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetDocumentSetupParticipant.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetDocumentSetupParticipant.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - Initial implementation
  *******************************************************************************/
@@ -23,7 +23,7 @@
 
 	public SnippetDocumentSetupParticipant() {
 	}
-	
+
 	/*
 	 * @see org.eclipse.core.filebuffers.IDocumentSetupParticipant#setup(org.eclipse.jface.text.IDocument)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetEditorActionContributor.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetEditorActionContributor.java
index 19700ef..b6834e2 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetEditorActionContributor.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetEditorActionContributor.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui.snippeteditor;
 
- 
+
 import org.eclipse.jdt.debug.ui.IJavaDebugUIConstants;
 import org.eclipse.jdt.internal.ui.javaeditor.BasicCompilationUnitEditorActionContributor;
 import org.eclipse.jface.action.IMenuManager;
@@ -23,24 +23,24 @@
  * Contributions of the Java Snippet Editor to the Workbench's tool and menu bar.
  */
 public class SnippetEditorActionContributor extends BasicCompilationUnitEditorActionContributor {
- 	
+
 	protected JavaSnippetEditor fSnippetEditor;
-	
+
 	private StopAction fStopAction;
 	private SelectImportsAction fSelectImportsAction;
 	private SnippetOpenOnSelectionAction fOpenOnSelectionAction;
 	private SnippetOpenHierarchyOnSelectionAction fOpenOnTypeSelectionAction;
-	
+
 	public SnippetEditorActionContributor() {
 		super();
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.part.EditorActionBarContributor#contributeToToolBar(org.eclipse.jface.action.IToolBarManager)
 	 */
 	@Override
 	public void contributeToToolBar(IToolBarManager toolBarManager) {
-		
+
 		if (fStopAction == null) {
 			toolBarManager.add(new Separator(IJavaDebugUIConstants.EVALUATION_GROUP));
 			return;
@@ -49,7 +49,7 @@
 		toolBarManager.add(fSelectImportsAction);
 		toolBarManager.update(false);
 	}
-			
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.part.EditorActionBarContributor#contributeToMenu(org.eclipse.jface.action.IMenuManager)
 	 */
@@ -59,7 +59,7 @@
 			return;
 		}
 		super.contributeToMenu(menu);
-		
+
 		IMenuManager navigateMenu= menu.findMenuUsingPath(IWorkbenchActionConstants.M_NAVIGATE);
 		if (navigateMenu != null) {
 			navigateMenu.appendToGroup(IWorkbenchActionConstants.OPEN_EXT, fOpenOnSelectionAction);
@@ -67,13 +67,13 @@
 			navigateMenu.setVisible(true);
 		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.IEditorActionBarContributor#setActiveEditor(org.eclipse.ui.IEditorPart)
 	 */
 	@Override
 	public void setActiveEditor(IEditorPart part) {
-		
+
 		super.setActiveEditor(part);
 		fSnippetEditor= null;
 		if (part instanceof JavaSnippetEditor) {
@@ -86,32 +86,32 @@
 		}
 
 		if (fOpenOnSelectionAction != null) {
-			fStopAction.setEditor(fSnippetEditor);		
+			fStopAction.setEditor(fSnippetEditor);
 			fSelectImportsAction.setEditor(fSnippetEditor);
 			fOpenOnSelectionAction.setEditor(fSnippetEditor);
 			fOpenOnTypeSelectionAction.setEditor(fSnippetEditor);
 		}
-			
-		updateStatus(fSnippetEditor);			
+
+		updateStatus(fSnippetEditor);
 	}
-	 
+
 	protected void initializeActions() {
-		 
+
 		fOpenOnSelectionAction= new SnippetOpenOnSelectionAction(fSnippetEditor);
 		fOpenOnTypeSelectionAction= new SnippetOpenHierarchyOnSelectionAction(fSnippetEditor);
 		fStopAction= new StopAction(fSnippetEditor);
-		
+
 		fSelectImportsAction= new SelectImportsAction(fSnippetEditor);
 		if (fSnippetEditor.getFile() == null) {
 			fSelectImportsAction.setEnabled(false);
 		}
-	}	
-	
+	}
+
 	protected void updateStatus(JavaSnippetEditor editor) {
 		String message= ""; //$NON-NLS-1$
 		if (editor != null && editor.isEvaluating()) {
 			message= SnippetMessages.getString("SnippetActionContributor.evalMsg");  //$NON-NLS-1$
-		} 
+		}
 		getActionBars().getStatusLineManager().setMessage(message);
 	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetEditorPropertyPage.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetEditorPropertyPage.java
index a881aef..31cab71 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetEditorPropertyPage.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetEditorPropertyPage.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *     Remy Chi Jian Suen <remy.suen@gmail.com>
@@ -37,17 +37,17 @@
  * Page to set working directory property on scrapbook page.
  */
 public class SnippetEditorPropertyPage extends PropertyPage {
-	
+
 	private WorkingDirectoryBlock fWorkingDirBlock = new JavaWorkingDirectoryBlock();
-	
+
 	private JavaJRETab fJRETab = new JavaJRETab();
-	
+
 	private VMArgumentsBlock fVMArgumentsBlock = new VMArgumentsBlock();
-	
+
 	// launch config template for this scrapbook file
 	private ILaunchConfiguration fConfig;
 	private ILaunchConfigurationWorkingCopy fWorkingCopy;
-	
+
 	private Proxy fProxy;
 
 	class Proxy implements ILaunchConfigurationDialog {
@@ -95,7 +95,7 @@
 		 */
 		@Override
 		public void updateButtons() {
-			
+
 		}
 
 		/* (non-Javadoc)
@@ -129,7 +129,7 @@
 		public void setActiveTab(int index) {
 		}
 	}
-		
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
 	 */
@@ -139,11 +139,11 @@
 		GridLayout topLayout = new GridLayout();
 		topLayout.numColumns = 1;
 		comp.setLayout(topLayout);
-		comp.setFont(parent.getFont());		
-		
+		comp.setFont(parent.getFont());
+
 		// fake launch config dialog
 		fProxy = new Proxy();
-		
+
 		try {
 			fConfig = ScrapbookLauncher.getLaunchConfigurationTemplate(getFile());
 			if (fConfig != null) {
@@ -164,20 +164,20 @@
 				JDIDebugUIPlugin.statusDialog(SnippetMessages.getString("ScrapbookLauncher.Unable_to_retrieve_settings"), e.getStatus()); //$NON-NLS-1$
 			}
 		}
-				
+
 		fWorkingDirBlock.setLaunchConfigurationDialog(fProxy);
-		fWorkingDirBlock.createControl(comp);		
+		fWorkingDirBlock.createControl(comp);
 		fWorkingDirBlock.initializeFrom(fConfig);
-		
+
 		fVMArgumentsBlock.setLaunchConfigurationDialog(fProxy);
 		fVMArgumentsBlock.createControl(comp);
-		fVMArgumentsBlock.initializeFrom(fConfig);		
-		
+		fVMArgumentsBlock.initializeFrom(fConfig);
+
 		fJRETab.setLaunchConfigurationDialog(fProxy);
 		fJRETab.setVMSpecificArgumentsVisible(false);
 		fJRETab.createControl(comp);
 		fJRETab.initializeFrom(fConfig);
-		
+
 		return comp;
 	}
 
@@ -187,7 +187,7 @@
 	protected IFile getFile() {
 		return (IFile)getElement();
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.preference.PreferencePage#performDefaults()
 	 */
@@ -201,7 +201,7 @@
 		fJRETab.initializeFrom(fWorkingCopy);
 		fVMArgumentsBlock.initializeFrom(fWorkingCopy);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.preference.IPreferencePage#isValid()
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetEditorStorageDocumentProvider.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetEditorStorageDocumentProvider.java
index 6d142d8..bed8ebc 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetEditorStorageDocumentProvider.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetEditorStorageDocumentProvider.java
@@ -20,7 +20,7 @@
  * @since 3.0
  */
 public class SnippetEditorStorageDocumentProvider extends StorageDocumentProvider {
-	
+
 	/*
 	 * @see org.eclipse.ui.editors.text.StorageDocumentProvider#setupDocument(java.lang.Object,
 	 *      org.eclipse.jface.text.IDocument)
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetFileDocumentProvider.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetFileDocumentProvider.java
index 1ca0ba3..d7b719f 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetFileDocumentProvider.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetFileDocumentProvider.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetMessages.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetMessages.java
index a687c4f..4633455 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetMessages.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetMessages.java
@@ -31,10 +31,10 @@
 			return "!" + key + "!";//$NON-NLS-2$ //$NON-NLS-1$
 		}
 	}
-	
+
 	/**
 	 * Gets a string from the resource bundle and formats it with the argument
-	 * 
+	 *
 	 * @param key	the string used to get the bundle value, must not be null
 	 */
 	public static String getFormattedString(String key, Object arg) {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetOpenHierarchyOnSelectionAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetOpenHierarchyOnSelectionAction.java
index bb654e8..b858c69 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetOpenHierarchyOnSelectionAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetOpenHierarchyOnSelectionAction.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui.snippeteditor;
 
- 
+
 import java.util.ArrayList;
 import java.util.List;
 
@@ -30,15 +30,15 @@
 
 /**
  * This action opens a Java editor on the element represented by text selection of
- * the connected Java source editor. In addition, if the element is a type, it also 
+ * the connected Java source editor. In addition, if the element is a type, it also
  * opens shows the element in the type hierarchy viewer.
  */
 public class SnippetOpenHierarchyOnSelectionAction extends OpenTypeHierarchyAction {
-	
+
 	private JavaSnippetEditor fEditor;
 	private String fDialogTitle;
 	private String fDialogMessage;
-	
+
 	public SnippetOpenHierarchyOnSelectionAction(JavaSnippetEditor editor) {
 		super(editor.getSite());
 		fEditor= editor;
@@ -49,7 +49,7 @@
 		IHandlerService handlerService = editor.getSite().getService(IHandlerService.class);
 		handlerService.activateHandler(IJavaEditorActionDefinitionIds.OPEN_TYPE_HIERARCHY, handler);
 	}
-	
+
 	protected void setResources() {
 		setText(SnippetMessages.getString("SnippetOpenHierarchyOnSelectionAction.label")); //$NON-NLS-1$
 		setDescription(SnippetMessages.getString("SnippetOpenHierarchyOnSelectionAction.tooltip")); //$NON-NLS-1$
@@ -57,15 +57,15 @@
 		setDialogTitle(SnippetMessages.getString("SnippetOpenHierarchyOnSelectionDialog.title")); //$NON-NLS-1$
 		setDialogMessage(SnippetMessages.getString("SnippetOpenHierarchyOnSelectionDialog.message")); //$NON-NLS-1$
 	}
-	
+
 	protected void setDialogTitle(String title) {
 		fDialogTitle= title;
 	}
-	
+
 	protected void setDialogMessage(String message) {
 		fDialogMessage= message;
 	}
-	
+
 	@Override
 	public void run() {
 		if (fEditor == null) {
@@ -84,18 +84,18 @@
 			JDIDebugUIPlugin.log(x);
 		}
 	}
-	
+
 	protected void setEditor(JavaSnippetEditor contentEditor) {
 		fEditor= contentEditor;
 	}
-	
+
 	/**
 	 * Filters out source references from the given code resolve results.
-	 * A utility method that can be called by subclassers. 
+	 * A utility method that can be called by subclassers.
 	 */
 	protected List<IJavaElement> filterResolveResults(IJavaElement[] codeResolveResults) {
 		int nResults= codeResolveResults.length;
-		List<IJavaElement> refs= new ArrayList<IJavaElement>(nResults);
+		List<IJavaElement> refs= new ArrayList<>(nResults);
 		for (int i= 0; i < nResults; i++) {
 			if (codeResolveResults[i] instanceof ISourceReference) {
 				refs.add(codeResolveResults[i]);
@@ -103,33 +103,33 @@
 		}
 		return refs;
 	}
-			
+
 
 	/**
 	 * Shows a dialog for resolving an ambigous Java element.
 	 * Utility method that can be called by subclassers.
 	 */
 	protected IJavaElement selectJavaElement(List<IJavaElement> elements, Shell shell, String title, String message) {
-		
+
 		int nResults= elements.size();
-		
+
 		if (nResults == 0) {
 			return null;
 		}
-		
+
 		if (nResults == 1) {
 			return elements.get(0);
 		}
-		
+
 		int flags= JavaElementLabelProvider.SHOW_DEFAULT
 						| JavaElementLabelProvider.SHOW_QUALIFIED
 						| JavaElementLabelProvider.SHOW_ROOT;
-						
+
 		ElementListSelectionDialog dialog= new ElementListSelectionDialog(shell, new JavaElementLabelProvider(flags));
 		dialog.setTitle(title);
 		dialog.setMessage(message);
 		dialog.setElements(elements.toArray());
-		
+
 		if (dialog.open() == Window.OK) {
 			Object[] selection= dialog.getResult();
 			if (selection != null && selection.length > 0) {
@@ -141,7 +141,7 @@
 					}
 				}
 			}
-		}		
+		}
 		return null;
 	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetOpenOnSelectionAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetOpenOnSelectionAction.java
index 784eaf8..28e4e7b 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetOpenOnSelectionAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/SnippetOpenOnSelectionAction.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui.snippeteditor;
 
- 
+
 import java.util.ArrayList;
 import java.util.List;
 
@@ -36,11 +36,11 @@
  * the code snippet.
  */
 public class SnippetOpenOnSelectionAction extends OpenAction {
-	
+
 	protected JavaSnippetEditor fEditor;
 	private String fDialogTitle;
 	private String fDialogMessage;
-	
+
 	public SnippetOpenOnSelectionAction(JavaSnippetEditor editor) {
 		super(editor.getSite());
 		fEditor= editor;
@@ -51,7 +51,7 @@
 		IHandlerService service = editor.getSite().getService(IHandlerService.class);
 		service.activateHandler(IJavaEditorActionDefinitionIds.OPEN_EDITOR, handler);
 	}
-	
+
 	protected void setResources() {
 		setText(SnippetMessages.getString("SnippetOpenOnSelectionAction.label")); //$NON-NLS-1$
 		setDescription(SnippetMessages.getString("SnippetOpenOnSelectionAction.tooltip")); //$NON-NLS-1$
@@ -59,19 +59,19 @@
 		setDialogTitle(SnippetMessages.getString("SnippetOpenOnSelectionDialog.title")); //$NON-NLS-1$
 		setDialogMessage(SnippetMessages.getString("SnippetOpenOnSelectionDialog.message")); //$NON-NLS-1$
 	}
-	
+
 	protected void setDialogTitle(String title) {
 		fDialogTitle= title;
 	}
-	
+
 	protected void setDialogMessage(String message) {
 		fDialogMessage= message;
 	}
-	
+
 	protected void setEditor(JavaSnippetEditor contentEditor) {
 		fEditor= contentEditor;
 	}
-	
+
 	/**
 	 * Shows a dialog for resolving an ambiguous java element.
 	 * Utility method that can be called by sub-classes.
@@ -87,7 +87,7 @@
 		int flags= JavaElementLabelProvider.SHOW_DEFAULT
 						| JavaElementLabelProvider.SHOW_QUALIFIED
 						| JavaElementLabelProvider.SHOW_ROOT;
-						
+
 		ElementListSelectionDialog dialog= new ElementListSelectionDialog(shell, new JavaElementLabelProvider(flags));
 		dialog.setTitle(title);
 		dialog.setMessage(message);
@@ -103,18 +103,18 @@
 					}
 				}
 			}
-		}		
+		}
 		return null;
 	}
-	
-	
+
+
 	/**
 	 * Filters out source references from the given code resolve results.
-	 * A utility method that can be called by sub-classes. 
+	 * A utility method that can be called by sub-classes.
 	 */
 	protected List<IJavaElement> filterResolveResults(IJavaElement[] codeResolveResults) {
 		int nResults= codeResolveResults.length;
-		List<IJavaElement> refs= new ArrayList<IJavaElement>(nResults);
+		List<IJavaElement> refs= new ArrayList<>(nResults);
 		for (int i= 0; i < nResults; i++) {
 			if (codeResolveResults[i] instanceof ISourceReference) {
 				refs.add(codeResolveResults[i]);
@@ -122,7 +122,7 @@
 		}
 		return refs;
 	}
-			
+
 	@Override
 	public void run() {
 		if (fEditor == null) {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/StopAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/StopAction.java
index 3832501..6bf1347 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/StopAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/StopAction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -21,10 +21,10 @@
  *
  */
 public class StopAction extends SnippetAction {
-	
+
 	public StopAction(JavaSnippetEditor editor) {
 		super(editor);
-		
+
 		setText(SnippetMessages.getString("StopAction.label"));  //$NON-NLS-1$
 		setToolTipText(SnippetMessages.getString("StopAction.tooltip")); //$NON-NLS-1$
 		setDescription(SnippetMessages.getString("StopAction.description"));  //$NON-NLS-1$
@@ -34,7 +34,7 @@
 		setHoverImageDescriptor(JavaDebugImages.getImageDescriptor(JavaDebugImages.IMG_TOOL_TERMSNIPPET_HOVER));
 		PlatformUI.getWorkbench().getHelpSystem().setHelp(this, IJavaDebugHelpContextIds.TERMINATE_SCRAPBOOK_VM_ACTION);
 	}
-	
+
 	/**
 	 * @see IAction#run()
 	 */
@@ -42,7 +42,7 @@
 	public void run() {
 		getEditor().shutDownVM();
 	}
-	
+
 	/**
 	 * @see ISnippetStateChangedListener#snippetStateChanged(JavaSnippetEditor)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/ClasspathContainerSourceContainerBrowser.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/ClasspathContainerSourceContainerBrowser.java
index 093f257..b662b2f 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/ClasspathContainerSourceContainerBrowser.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/ClasspathContainerSourceContainerBrowser.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -26,7 +26,7 @@
 
 /**
  * Used to choose a classpath container.
- * 
+ *
  * @since 3.0
  */
 public class ClasspathContainerSourceContainerBrowser extends AbstractSourceContainerBrowser {
@@ -56,10 +56,10 @@
 		return editLibraries(shell, director, classpathEntry);
 		//, SourceLookupMessages.getString("ClasspathContainerSourceContainerBrowser.1")
 	}
-	
+
 	/**
 	 * Create or edit a container classpath entry.
-	 * 
+	 *
 	 * @param shell shell to open dialog on
 	 * @param director source lookup director
 	 * @param classpathEntry entry to edit, or <code>null</code> if creating
@@ -96,7 +96,7 @@
 				newContainers[i] = container;
 			}
 			return newContainers;
-		}			
+		}
 		return new ISourceContainer[0];
-	}	
+	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/ClasspathVariableSourceContainerBrowser.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/ClasspathVariableSourceContainerBrowser.java
index 07f0f9e..edd82de 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/ClasspathVariableSourceContainerBrowser.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/ClasspathVariableSourceContainerBrowser.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -20,7 +20,7 @@
 
 /**
  * Used to choose a classpath variable.
- * 
+ *
  * @since 3.0
  */
 public class ClasspathVariableSourceContainerBrowser extends AbstractSourceContainerBrowser {
@@ -38,7 +38,7 @@
 	public ISourceContainer[] editSourceContainers(Shell shell, ISourceLookupDirector director, ISourceContainer[] containers) {
 		ClasspathVariableSourceContainer container = (ClasspathVariableSourceContainer) containers[0];
 		IPath path = BuildPathDialogAccess.configureVariableEntry(shell, container.getPath(), new IPath[]{container.getPath()});
-		if (path != null) {			
+		if (path != null) {
 			containers = new ISourceContainer[1];
 			containers[0] = new ClasspathVariableSourceContainer(path);
 			return containers;
@@ -51,7 +51,7 @@
 	@Override
 	public ISourceContainer[] addSourceContainers(Shell shell, ISourceLookupDirector director) {
 		IPath[] paths = BuildPathDialogAccess.chooseVariableEntries(shell, new IPath[0]);
-		if (paths != null) {			
+		if (paths != null) {
 			ISourceContainer[] containers = new ISourceContainer[paths.length];
 			for (int i = 0; i < containers.length; i++) {
 				containers[i] = new ClasspathVariableSourceContainer(paths[i]);
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/JavaDebugShowInAdapterFactory.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/JavaDebugShowInAdapterFactory.java
index a7ccf91..1f823ef 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/JavaDebugShowInAdapterFactory.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/JavaDebugShowInAdapterFactory.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/JavaProjectSourceContainerBrowser.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/JavaProjectSourceContainerBrowser.java
index ac96631..ffd007e 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/JavaProjectSourceContainerBrowser.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/JavaProjectSourceContainerBrowser.java
@@ -43,19 +43,19 @@
 
 /**
  * Browser to select Java projects to add to the source lookup path.
- * 
+ *
  * @since 3.0
  */
 public class JavaProjectSourceContainerBrowser extends AbstractSourceContainerBrowser {
-	
+
 	class ContentProvider implements IStructuredContentProvider {
-		
+
 		private List<IJavaProject> fProjects;
-		
+
 		public ContentProvider(List<IJavaProject> projects) {
 			fProjects = projects;
 		}
-		
+
 		/**
 		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
 		 */
@@ -78,7 +78,7 @@
 		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
 		}
 
-	}		
+	}
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.internal.ui.sourcelookup.ISourceContainerBrowser#createSourceContainers(org.eclipse.swt.widgets.Shell, org.eclipse.debug.core.ILaunchConfiguration)
 	 */
@@ -86,13 +86,13 @@
 	public ISourceContainer[] addSourceContainers(Shell shell, ISourceLookupDirector director) {
 		List<IJavaProject> projects = getPossibleAdditions(director);
 		ProjectSelectionDialog dialog= new ProjectSelectionDialog(shell, projects);
-		dialog.setTitle(SourceLookupMessages.JavaProjectSourceContainerBrowser_1); 
+		dialog.setTitle(SourceLookupMessages.JavaProjectSourceContainerBrowser_1);
 		MultiStatus status = new MultiStatus(JDIDebugUIPlugin.getUniqueIdentifier(), IJavaDebugUIConstants.INTERNAL_ERROR, "Failed to add project(s)", null);  //$NON-NLS-1$
-				
-		List<ISourceContainer> sourceContainers = new ArrayList<ISourceContainer>();
-		if (dialog.open() == Window.OK) {			
+
+		List<ISourceContainer> sourceContainers = new ArrayList<>();
+		if (dialog.open() == Window.OK) {
 			Object[] selections = dialog.getResult();
-			List<IJavaProject> additions = new ArrayList<IJavaProject>(selections.length);
+			List<IJavaProject> additions = new ArrayList<>(selections.length);
 			try {
 				for (int i = 0; i < selections.length; i++) {
 					IJavaProject jp = (IJavaProject)selections[i];
@@ -105,7 +105,7 @@
 			} catch (JavaModelException e) {
 				status.add(e.getStatus());
 			}
-			
+
 			Iterator<IJavaProject> iter = additions.iterator();
 			while (iter.hasNext()) {
 				IJavaProject jp = iter.next();
@@ -118,8 +118,8 @@
 					}
 				}
 			}
-		}	
-		
+		}
+
 		if (!status.isOK()) {
 			JDIDebugUIPlugin.statusDialog(status);
 		}
@@ -128,7 +128,7 @@
 
 	/**
 	 * Returns the possible projects that can be added
-	 * 
+	 *
 	 * @param director the source lookup director currently being edited
 	 * @return the listing of {@link IJavaProject}s to add
 	 */
@@ -141,11 +141,11 @@
 			JDIDebugUIPlugin.log(e);
 			projects= new IJavaProject[0];
 		}
-		List<IJavaProject> remaining = new ArrayList<IJavaProject>();
+		List<IJavaProject> remaining = new ArrayList<>();
 		for (int i = 0; i < projects.length; i++) {
 			remaining.add(projects[i]);
 		}
-		List<IJavaProject> alreadySelected = new ArrayList<IJavaProject>();
+		List<IJavaProject> alreadySelected = new ArrayList<>();
 		ISourceContainer[] containers = director.getSourceContainers();
 		for (int i = 0; i < containers.length; i++) {
 			ISourceContainer container = containers[i];
@@ -154,13 +154,13 @@
 			}
 		}
 		remaining.removeAll(alreadySelected);
-		return remaining;		
+		return remaining;
 	}
 
 	/**
 	 * Adds all projects required by <code>proj</code> to the list
 	 * <code>res</code>
-	 * 
+	 *
 	 * @param proj the project for which to compute required
 	 *  projects
 	 * @param res the list to add all required projects too
@@ -169,9 +169,9 @@
 	protected void collectRequiredProjects(IJavaProject proj, List<IJavaProject> res) throws JavaModelException {
 		if (!res.contains(proj)) {
 			res.add(proj);
-			
+
 			IJavaModel model= proj.getJavaModel();
-			
+
 			IClasspathEntry[] entries= proj.getRawClasspath();
 			for (int i= 0; i < entries.length; i++) {
 				IClasspathEntry curr= entries[i];
@@ -183,12 +183,12 @@
 				}
 			}
 		}
-	}		
-	
+	}
+
 	/**
 	 * Adds all exported entries defined by <code>proj</code> to the list
 	 * <code>list</code>.
-	 * 
+	 *
 	 * @param proj the project to inspect
 	 * @param list the listing of containers
 	 * @throws CoreException if an exception occurs
@@ -233,5 +233,5 @@
 				}
 			}
 		}
-	}	
+	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/SourceElementLabelProviderAdapter.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/SourceElementLabelProviderAdapter.java
index 1f44485..dd77178 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/SourceElementLabelProviderAdapter.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/SourceElementLabelProviderAdapter.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -19,7 +19,7 @@
 
 /**
  * Class provides the Duplicate JavaElement labels and Images for SourceElementLabelProvider Objects while debugging
- * 
+ *
  * @since 3.7
  */
 @SuppressWarnings("restriction")
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/SourceElementLabelProviderAdapterFactory.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/SourceElementLabelProviderAdapterFactory.java
index 03a14c1..5d8e3ab 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/SourceElementLabelProviderAdapterFactory.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/SourceElementLabelProviderAdapterFactory.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -15,7 +15,7 @@
 
 /**
  * Adapter factory for duplicate source lookup elements.
- * 
+ *
  * @since 3.7
  */
 public class SourceElementLabelProviderAdapterFactory implements IAdapterFactory {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/SourceLookupMessages.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/SourceLookupMessages.java
index 65ba168..1b7ef70 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/SourceLookupMessages.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/SourceLookupMessages.java
@@ -3,8 +3,8 @@
  * program and the accompanying materials are made available under the terms of
  * the Eclipse Public License v1.0 which accompanies this distribution, and is
  * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
+ *
+ * Contributors:
  * IBM - Initial API and implementation
  **********************************************************************/
 package org.eclipse.jdt.internal.debug.ui.sourcelookup;
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/StackFrameShowInSourceAdapter.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/StackFrameShowInSourceAdapter.java
index e090149..860157e 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/StackFrameShowInSourceAdapter.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/StackFrameShowInSourceAdapter.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -24,11 +24,11 @@
  *
  */
 public class StackFrameShowInSourceAdapter implements IShowInSource {
-	
+
 	class LazyShowInContext extends ShowInContext {
 
 		boolean resolved = false;
-		
+
 		/**
 		 * Constructs a 'show in context' that resolves its selection lazily
 		 * since it requires a source lookup.
@@ -36,7 +36,7 @@
 		public LazyShowInContext() {
 			super(null, null);
 		}
-		
+
 		/* (non-Javadoc)
 		 * @see org.eclipse.ui.part.ShowInContext#getSelection()
 		 */
@@ -54,22 +54,22 @@
 			}
 			return super.getSelection();
 		}
-		
+
 	}
-	
+
 	private IJavaStackFrame fFrame;
-	
+
 	private ShowInContext fLazyContext = null;
 
 	/**
 	 * Constructs a new adapter on the given frame.
-	 * 
+	 *
 	 * @param frame
 	 */
 	public StackFrameShowInSourceAdapter(IJavaStackFrame frame) {
 		fFrame = frame;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.part.IShowInSource#getShowInContext()
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/StackFrameShowInTargetListAdapter.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/StackFrameShowInTargetListAdapter.java
index 2f2cdf0..121caf4 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/StackFrameShowInTargetListAdapter.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/StackFrameShowInTargetListAdapter.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/WorkbenchAdapter.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/WorkbenchAdapter.java
index eca73d8..93ada17 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/WorkbenchAdapter.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/WorkbenchAdapter.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -30,7 +30,7 @@
 /**
  * Workbench adapter for Java source containers and source container
  * types.
- * 
+ *
  * @since 3.0
  */
 public class WorkbenchAdapter implements IWorkbenchAdapter {
@@ -55,7 +55,7 @@
 			JavaProjectSourceContainer container = (JavaProjectSourceContainer) object;
 			IJavaProject javaProject = container.getJavaProject();
 			return getImageDescriptor(javaProject);
-		}		
+		}
 		if (object instanceof ClasspathVariableSourceContainer) {
 			return DebugUITools.getImageDescriptor(IDebugUIConstants.IMG_OBJS_ENV_VAR);
 		}
@@ -64,11 +64,11 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Returns an image descriptor for a java element, or <code>null</code>
 	 * if none.
-	 * 
+	 *
 	 * @param element java element
 	 * @return an image descriptor for a java element, or <code>null</code>
 	 * if none
@@ -77,10 +77,10 @@
 		IWorkbenchAdapter adapter = element.getAdapter(IWorkbenchAdapter.class);
 		if (adapter != null) {
 			return adapter.getImageDescriptor(element);
-		}	
+		}
 		return null;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.model.IWorkbenchAdapter#getLabel(java.lang.Object)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/WorkbenchAdapterFactory.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/WorkbenchAdapterFactory.java
index 87873d8..290588f 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/WorkbenchAdapterFactory.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/WorkbenchAdapterFactory.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/threadgroups/JavaDebugTargetProxy.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/threadgroups/JavaDebugTargetProxy.java
index 805c4bd..3a06ee0 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/threadgroups/JavaDebugTargetProxy.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/threadgroups/JavaDebugTargetProxy.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -37,14 +37,14 @@
 public class JavaDebugTargetProxy extends DebugTargetProxy {
 
 	private JavaThreadEventHandler fThreadEventHandler;
-	
+
 	/**
 	 * Whether this proxy is for a scrapbook.
 	 */
 	private boolean fIsScrapbook = false;
-	
+
 	private IDebugTarget fDebugTarget = null;
-	
+
 	/**
 	 * @param target the backing target
 	 */
@@ -77,7 +77,7 @@
 			return;
 		}
 		final Viewer finalViewer = viewer;
-		// Delay the auto-select-expand job to allow for transient suspend states to resolve. 
+		// Delay the auto-select-expand job to allow for transient suspend states to resolve.
 		// See bug 225377
 		Job job = new Job("Initialize Java Debug Session") { //$NON-NLS-1$
 			@Override
@@ -99,7 +99,7 @@
 	private void doInstalled(Viewer viewer) {
         // select any thread that is already suspended after installation
         IDebugTarget target = fDebugTarget;
-        
+
         if (target != null) {
             ModelDelta delta = getNextSuspendedThreadDelta(null, false);
             if (delta == null) {
@@ -114,17 +114,17 @@
                 } catch (DebugException e) {
                     // In case of exception do not fire delta
                     return;
-                }                     
+                }
             }
             // expand the target if no suspended thread
             fireModelChanged(delta);
-        }	    
-	}	
-	
+        }
+	}
+
 	private int getTargetChildCount(IDebugTarget target) throws DebugException{
 	    if (target instanceof IJavaDebugTarget) {
 	        IJavaDebugTarget javaTarget = (IJavaDebugTarget)target;
-	    
+
             if (JavaElementContentProvider.isDisplayThreadGroups()) {
                 if (javaTarget.isDisconnected() || javaTarget.isTerminated()) {
                     return 0;
@@ -135,5 +135,5 @@
 	    }
 	    return 0;
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/threadgroups/JavaThreadEventHandler.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/threadgroups/JavaThreadEventHandler.java
index b487ca2..6755f87 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/threadgroups/JavaThreadEventHandler.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/threadgroups/JavaThreadEventHandler.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -51,13 +51,13 @@
  *
  */
 public class JavaThreadEventHandler extends ThreadEventHandler implements IPropertyChangeListener, TreeListener {
-	
+
 	private boolean fDisplayMonitors;
 	private Tree fTree;
 
 	/**
 	 * Constructs and event handler for a Java thread.
-	 * 
+	 *
 	 * @param proxy
 	 */
 	public JavaThreadEventHandler(AbstractModelProxy proxy) {
@@ -66,7 +66,7 @@
 		preferenceStore.addPropertyChangeListener(this);
 		fDisplayMonitors= preferenceStore.getBoolean(IJavaDebugUIConstants.PREF_SHOW_MONITOR_THREAD_INFO);
 	}
-	
+
 	protected void init(Viewer viewer) {
 		Control control = viewer.getControl();
 		if (control instanceof Tree) {
@@ -79,7 +79,7 @@
 			});
 		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.internal.ui.viewers.update.ThreadEventHandler#dispose()
 	 */
@@ -101,7 +101,7 @@
 			Object[] launchChildren = launch.getChildren();
 			delta = delta.addNode(launch, indexOf(launches, launch), IModelDelta.NO_CHANGE, launchChildren.length);
 			IJavaDebugTarget debugTarget = (IJavaDebugTarget) thread.getDebugTarget();
-			List<IJavaThreadGroup> groups = new ArrayList<IJavaThreadGroup>();
+			List<IJavaThreadGroup> groups = new ArrayList<>();
 			try{
 				delta = delta.addNode(debugTarget, indexOf(launchChildren, debugTarget), IModelDelta.NO_CHANGE, debugTarget.getRootThreadGroups().length);
 				IJavaThread javaThread = (IJavaThread) thread;
@@ -133,7 +133,7 @@
 		}
 		return super.addPathToThread(delta, thread);
 	}
-	
+
 	@Override
 	public void propertyChange(PropertyChangeEvent event) {
 		if (event.getProperty().equals(IJavaDebugUIConstants.PREF_SHOW_MONITOR_THREAD_INFO)) {
@@ -143,8 +143,8 @@
 
 	protected boolean isDisplayMonitors() {
 	    return fDisplayMonitors;
-	}	
-	
+	}
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.internal.ui.viewers.update.ThreadEventHandler#indexOf(org.eclipse.debug.core.model.IStackFrame)
 	 */
@@ -168,10 +168,10 @@
 		}
 		return super.indexOf(frame);
 	}
-	
+
 	/**
 	 * Returns the number of children the given thread has in the view.
-	 * 
+	 *
 	 * @param thread thread
 	 * @return number of children
 	 */
@@ -195,8 +195,8 @@
 		} catch (DebugException e) {
 		}
 		return -1;
-	}	
-	
+	}
+
 
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.internal.ui.viewers.update.ThreadEventHandler#indexOf(org.eclipse.debug.core.model.IThread)
@@ -274,7 +274,7 @@
 				queueSuspendedThread((IJavaThread)data);
 			}
 		}
-	}	
+	}
 
 	/**
 	 * Do not update for quiet resume/suspend
@@ -286,12 +286,12 @@
 		}
 		super.handleOther(event);
 	}
-	
+
 	/**
 	 * Returns whether the given thread is missing its required thread group in order
-	 * to build a proper delta. See bug 274552. Returns <code>false</code> when not 
+	 * to build a proper delta. See bug 274552. Returns <code>false</code> when not
 	 * displaying thread groups.
-	 * 
+	 *
 	 * @param event thread start/death event
 	 * @return <code>true</code> if the thread group is missing
 	 */
@@ -313,7 +313,7 @@
 		}
 		return false;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.internal.ui.viewers.update.ThreadEventHandler#handleCreate(org.eclipse.debug.core.DebugEvent)
 	 */
@@ -325,7 +325,7 @@
 		}
 		super.handleCreate(event);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.internal.ui.viewers.update.ThreadEventHandler#handleTerminate(org.eclipse.debug.core.DebugEvent)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/threadgroups/JavaThreadGroupContentProvider.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/threadgroups/JavaThreadGroupContentProvider.java
index 2d76836..f927794 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/threadgroups/JavaThreadGroupContentProvider.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/threadgroups/JavaThreadGroupContentProvider.java
@@ -35,7 +35,7 @@
 				count += group.getThreadGroups().length;
 				count += group.getThreads().length;
 			}
-		} 
+		}
 		return count;
 	}
 
@@ -49,7 +49,7 @@
 		}
 		return EMPTY;
 	}
-	
+
 	protected Object[] getChildren(IJavaThreadGroup group) throws CoreException {
 		if (isAvailable(group)) {
 			IJavaThreadGroup[] threadGroups = group.getThreadGroups();
@@ -68,7 +68,7 @@
 		}
 		return EMPTY;
 	}
-	
+
 	protected boolean isAvailable(IJavaThreadGroup group) {
 		IDebugTarget debugTarget = group.getDebugTarget();
 		return !(debugTarget.isTerminated() || debugTarget.isDisconnected());
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/threadgroups/JavaThreadGroupLabelProvider.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/threadgroups/JavaThreadGroupLabelProvider.java
index 49033f6..fa772d3 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/threadgroups/JavaThreadGroupLabelProvider.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/threadgroups/JavaThreadGroupLabelProvider.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -23,7 +23,7 @@
  * @since 3.3
  */
 public class JavaThreadGroupLabelProvider extends ElementLabelProvider {
-	
+
 	private static ImageDescriptor fgImage = JavaDebugImages.getImageDescriptor(JavaDebugImages.IMG_OBJS_THREAD_GROUP);
 
 	/* (non-Javadoc)
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/threadgroups/TargetAdapterFactory.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/threadgroups/TargetAdapterFactory.java
index 15a0564..73b2c7d 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/threadgroups/TargetAdapterFactory.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/threadgroups/TargetAdapterFactory.java
@@ -17,11 +17,11 @@
 
 /**
  * Adapter factory for Java debug target.
- * 
+ *
  * @since 3.3
  */
 public class TargetAdapterFactory implements IAdapterFactory{
-	
+
 	private static IModelProxyFactory fgJavaModelProxyFactory = new JavaModelProxyFactory();
 	private static IElementContentProvider fgCPTarget = new JavaDebugTargetContentProvider();
 
@@ -43,7 +43,7 @@
 		}
 		return null;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/threadgroups/ThreadGroupAdapterFactory.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/threadgroups/ThreadGroupAdapterFactory.java
index b847729..86e1471 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/threadgroups/ThreadGroupAdapterFactory.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/threadgroups/ThreadGroupAdapterFactory.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -19,8 +19,8 @@
  * @since 3.3
  */
 public class ThreadGroupAdapterFactory implements IAdapterFactory{
-	
-	
+
+
 	private static IElementContentProvider fgCPThreadGroup = new JavaThreadGroupContentProvider();
 	private static IElementLabelProvider fgLPThreadGroup = new JavaThreadGroupLabelProvider();
 
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/threadgroups/ThreadGroupMessages.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/threadgroups/ThreadGroupMessages.java
index b0a9913..b2ac864 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/threadgroups/ThreadGroupMessages.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/threadgroups/ThreadGroupMessages.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/ColumnPresentationAdapterFactory.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/ColumnPresentationAdapterFactory.java
index c63166f..1503cd1 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/ColumnPresentationAdapterFactory.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/ColumnPresentationAdapterFactory.java
@@ -18,11 +18,11 @@
 
 /**
  * Adapter factory.
- * 
+ *
  * @since 3.2
  */
 public class ColumnPresentationAdapterFactory implements IAdapterFactory {
-	
+
 	private static final IColumnPresentationFactory fgColumnPresentation = new JavaVariableColumnPresentationFactory();
 	private static final IElementEditor fgEEJavaVariable = new JavaVariableEditor();
 
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaContentProviderFilter.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaContentProviderFilter.java
index bc9b81a..9613cad 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaContentProviderFilter.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaContentProviderFilter.java
@@ -24,7 +24,7 @@
  * Provides static methods for filtering the content in Java views.  By filtering in the
  * content provider rather than in the model the UI does not get updated until after the
  * filtering is done.
- * 
+ *
  * @since 3.4
  * @see JavaVariableContentProvider
  * @see JavaExpressionContentProvider
@@ -45,7 +45,7 @@
 		boolean filterConstants = !includeConstants(context);
 
 		if (filterStatics || filterConstants) {
-			List<Object> keep = new ArrayList<Object>(variables.length);
+			List<Object> keep = new ArrayList<>(variables.length);
 			for (int i = 0; i < variables.length; i++) {
 				boolean filter = false;
 				if (variables[i] instanceof IJavaVariable){
@@ -71,7 +71,7 @@
 	 * Returns whether static variables should be displayed in the view
 	 * identified by the given presentation context.  Checks for a preference
 	 * that is specific to the presentation context.
-	 * 
+	 *
 	 * @param context the context of the view being displayed
 	 * @return whether static variable should be displayed
 	 */
@@ -85,13 +85,13 @@
 	 * Returns whether constants should be displayed in the view
 	 * identified by the given presentation context.  Checks for a preference
 	 * that is specific to the presentation context.
-	 * 
+	 *
 	 * @param context the context of the view being displayed
 	 * @return whether constants should be displayed
 	 */
 	private static boolean includeConstants(IPresentationContext context){
 		IPreferenceStore store = JDIDebugUIPlugin.getDefault().getPreferenceStore();
 		String constants = context.getId() + "." + IJDIPreferencesConstants.PREF_SHOW_CONSTANTS; //$NON-NLS-1$
-		return store.getBoolean(constants); 
+		return store.getBoolean(constants);
 	}
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaDebugElementAdapterFactory.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaDebugElementAdapterFactory.java
index 2b88a4c..549397c 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaDebugElementAdapterFactory.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaDebugElementAdapterFactory.java
@@ -24,7 +24,7 @@
 
 /**
  * Provides provider adapters for IJavaVariables and IJavaStackFrames
- * 
+ *
  * @see IJavaVariable
  * @see JavaVariableLabelProvider
  * @see JavaVariableContentProvider
@@ -35,7 +35,7 @@
  * @since 3.3
  */
 public class JavaDebugElementAdapterFactory implements IAdapterFactory {
-	
+
 	private static final IElementLabelProvider fgLPVariable = new JavaVariableLabelProvider();
 	private static final IElementContentProvider fgCPVariable = new JavaVariableContentProvider();
 	private static final IElementLabelProvider fgLPExpression = new ExpressionLabelProvider();
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaExpressionContentProvider.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaExpressionContentProvider.java
index 5ba1f3d..d681112 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaExpressionContentProvider.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaExpressionContentProvider.java
@@ -26,10 +26,10 @@
 
 /**
  * Provides content for the result of an inspect operation that is displayed in the expressions view.
- * 
+ *
  * @since 3.3
  * @see JavaVariableContentProvider
- * @see JavaInspectExpression 
+ * @see JavaInspectExpression
  */
 public class JavaExpressionContentProvider extends ExpressionContentProvider{
 
@@ -50,7 +50,7 @@
         }
         return getElements(variables, index, length);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.internal.ui.model.elements.VariableContentProvider#getChildCount(java.lang.Object, org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext, org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate)
 	 */
@@ -65,7 +65,7 @@
 		}
 		return count;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.internal.ui.model.elements.ExpressionContentProvider#hasChildren(java.lang.Object, org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext, org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate)
 	 */
@@ -76,7 +76,7 @@
 		}
 		return super.hasChildren(element, context, monitor);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.internal.ui.model.elements.ExpressionContentProvider#getAllChildren(java.lang.Object, org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaStackFrameContentProvider.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaStackFrameContentProvider.java
index b76b47b..26c394d 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaStackFrameContentProvider.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaStackFrameContentProvider.java
@@ -22,9 +22,9 @@
 public class JavaStackFrameContentProvider extends StackFrameContentProvider {
 
 	/* (non-Javadoc)
-	 * 
+	 *
 	 * Cancels updates when thread is resumed.
-	 * 
+	 *
 	 * @see org.eclipse.debug.internal.ui.model.elements.StackFrameContentProvider#getAllChildren(java.lang.Object, org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext, org.eclipse.core.runtime.IProgressMonitor)
 	 */
 	@Override
@@ -40,6 +40,6 @@
 			throw e;
 		}
 	}
-	
+
 
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaStackFrameLabelProvider.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaStackFrameLabelProvider.java
index 2592e56..b3377ca 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaStackFrameLabelProvider.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaStackFrameLabelProvider.java
@@ -20,7 +20,7 @@
 /**
  * Provides labels for Java stack frames with a specific scheduling rule as
  * not to conflict with implicit evaluations in the variables view.
- * 
+ *
  * @since 3.4
  */
 public class JavaStackFrameLabelProvider extends DebugElementLabelProvider {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaStackFrameMementoProvider.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaStackFrameMementoProvider.java
index 0ed6404..504623e 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaStackFrameMementoProvider.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaStackFrameMementoProvider.java
@@ -19,7 +19,7 @@
 /**
  * Creates mementos for Java stack frames. Uses qualified names and signature rather than just
  * simple method name used by the default model.
- * 
+ *
  * @since 3.4
  */
 public class JavaStackFrameMementoProvider extends DebugElementMementoProvider implements IElementMementoProvider {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableCellModifier.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableCellModifier.java
index b369943..33b57c8 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableCellModifier.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableCellModifier.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,13 +18,13 @@
 
 /**
  * @since 3.2
- * 
+ *
  */
 public class JavaVariableCellModifier extends DefaultVariableCellModifier {
-	
+
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see org.eclipse.debug.internal.ui.elements.adapters.DefaultVariableCellModifier#canModify(java.lang.Object,
      *      java.lang.String)
      */
@@ -53,7 +53,7 @@
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see org.eclipse.debug.internal.ui.elements.adapters.DefaultVariableCellModifier#getValue(java.lang.Object,
      *      java.lang.String)
      */
@@ -108,7 +108,7 @@
 
     /**
      * Returns whether the given variable is a boolean.
-     * 
+     *
      * @param variable
      * @return
      */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableColumnPresentation.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableColumnPresentation.java
index d44754e..7ec8843 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableColumnPresentation.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableColumnPresentation.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -26,17 +26,17 @@
 	 * Instance ID column identifier
 	 */
 	public final static String COLUMN_INSTANCE_ID = JAVA_VARIABLE_COLUMN_PRESENTATION + ".COL_INSTANCE_ID"; //$NON-NLS-1$
-	
+
 	/**
 	 * Instance count column identifier
 	 */
 	public final static String COLUMN_INSTANCE_COUNT = JAVA_VARIABLE_COLUMN_PRESENTATION + ".COL_INSTANCE_COUNT"; //$NON-NLS-1$
-	
+
 	/**
 	 * Column ids
 	 */
 	private static String[] fgAllColumns = null;
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.internal.ui.elements.adapters.VariableColumnPresentation#getAvailableColumns()
 	 */
@@ -51,7 +51,7 @@
 		}
 		return fgAllColumns;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.internal.ui.elements.adapters.VariableColumnPresentation#getHeader(java.lang.String)
 	 */
@@ -65,7 +65,7 @@
 		}
 		return super.getHeader(id);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.internal.ui.elements.adapters.VariableColumnPresentation#getId()
 	 */
@@ -73,6 +73,6 @@
 	public String getId() {
 		return JAVA_VARIABLE_COLUMN_PRESENTATION;
 	}
-	
-	
+
+
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableColumnPresentationFactory.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableColumnPresentationFactory.java
index c77a81f..e1b0d4d 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableColumnPresentationFactory.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableColumnPresentationFactory.java
@@ -44,7 +44,7 @@
 		}
 		return null;
 	}
-	
+
 	private boolean isApplicable(IPresentationContext context, Object element) {
 		IJavaStackFrame frame = null;
 		if (IDebugUIConstants.ID_VARIABLE_VIEW.equals(context.getId())) {
@@ -53,7 +53,7 @@
 				frame = adaptable.getAdapter(IJavaStackFrame.class);
 			}
 		}
-		return frame != null;		
+		return frame != null;
 	}
 
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableContentProvider.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableContentProvider.java
index 63b1918..5da8e29 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableContentProvider.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableContentProvider.java
@@ -28,7 +28,7 @@
 
 /**
  * Determines the child content of an IJavaVariable.
- * 
+ *
  * @since 3.3
  * @see VariableContentProvider
  * @see IJavaVariable
@@ -60,7 +60,7 @@
 			throw e;
 		}
 	}
-		
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.internal.ui.model.elements.VariableContentProvider#getChildCount(java.lang.Object, org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext, org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate)
 	 */
@@ -80,7 +80,7 @@
 			throw e;
 		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.internal.ui.model.elements.VariableContentProvider#hasChildren(java.lang.Object, org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext, org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate)
 	 */
@@ -97,12 +97,12 @@
 				return false;
 			}
 			throw e;
-		}			
+		}
 	}
-	
+
 	/**
 	 * Determines if an all references variable should be added as a child to the passed object.
-	 * 
+	 *
 	 * @param parent element to display references as a child for
 	 * @return whether to display references as a child of the given parent
 	 * @throws DebugException
@@ -132,7 +132,7 @@
 		}
 		return false;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.internal.ui.model.elements.VariableContentProvider#getAllChildren(java.lang.Object, org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableEditor.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableEditor.java
index 17914d3..81e0b11 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableEditor.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableEditor.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -21,12 +21,12 @@
 
 /**
  * Editor for Java variable columns. Restricts edits to primitives and strings.
- * 
+ *
  * @since 3.2
  *
  */
 public class JavaVariableEditor extends VariableEditor {
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IElementEditor#getCellModifier(org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext, java.lang.Object)
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableLabelProvider.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableLabelProvider.java
index 4216025..e2e7a64 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableLabelProvider.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableLabelProvider.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -49,23 +49,23 @@
  * @since 3.2
  */
 public class JavaVariableLabelProvider extends VariableLabelProvider implements IPreferenceChangeListener {
-	
+
 	public static JDIModelPresentation fLabelProvider = new JDIModelPresentation();
 	/**
 	 * Map of view id to qualified name setting
 	 */
-	private Map<String, Boolean> fQualifiedNameSettings = new HashMap<String, Boolean>();
+	private Map<String, Boolean> fQualifiedNameSettings = new HashMap<>();
 	private boolean fQualifiedNames = false;
-	
+
 	/**
 	 * Whether to use a thread rule for a label update job (serialize on thread)
 	 */
 	private int fSerializeMode = SERIALIZE_NONE;
-	
+
 	private static final int SERIALIZE_ALL = 0; // no toString()'s in line, so serialize labels
 	private static final int SERIALIZE_NONE = 1; // all toString()'s in line, so don't serialize labels (evaluations will be serialized)
 	private static final int SERIALIZE_SOME = 2; // some - only serialize those that don't have formatters (ones with formatters will be serialized by evaluation)
-	
+
 	public JavaVariableLabelProvider() {
 		IEclipsePreferences prefs = InstanceScope.INSTANCE.getNode(JDIDebugUIPlugin.getUniqueIdentifier());
 		if(prefs != null) {
@@ -73,7 +73,7 @@
 			determineSerializationMode(prefs.get(IJDIPreferencesConstants.PREF_SHOW_DETAILS, IJDIPreferencesConstants.DETAIL_PANE));
 		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.internal.ui.elements.adapters.VariableLabelAdapter#getValueText(org.eclipse.debug.core.model.IVariable, org.eclipse.debug.core.model.IValue)
 	 */
@@ -112,7 +112,7 @@
 				return fLabelProvider.removeQualifierFromGenericName(typeName);
 			}
 		} catch (DebugException e) {}
-		return typeName;		
+		return typeName;
 	}
 
 	/**
@@ -182,10 +182,10 @@
 		fLabelProvider.setAttribute(JDIModelPresentation.DISPLAY_QUALIFIED_NAMES, showQ);
 		super.retrieveLabel(update);
 	}
-	
+
 	/**
 	 * Sets the serialization mode for label jobs based on the current preference setting.
-	 * 
+	 *
 	 * @param value preference value for PREF_SHOW_DETAILS
 	 */
 	private void determineSerializationMode(String value) {
@@ -212,7 +212,7 @@
 		}
 		return super.getLabel(elementPath, context, columnId);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.internal.ui.model.elements.ElementLabelProvider#getRule(org.eclipse.debug.internal.ui.viewers.model.provisional.ILabelUpdate)
 	 */
@@ -234,7 +234,7 @@
 					if (value instanceof IJavaValue) {
 						if (!fLabelProvider.isShowLabelDetails((IJavaValue)value)) {
 							input = update.getViewerInput();
-							frame = (IJavaStackFrame) DebugPlugin.getAdapter(input, IJavaStackFrame.class);			
+							frame = (IJavaStackFrame) DebugPlugin.getAdapter(input, IJavaStackFrame.class);
 						}
 					}
 				} catch (DebugException e) {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/VariableMessages.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/VariableMessages.java
index 1e75bdc..ede4a73 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/VariableMessages.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/VariableMessages.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/VariableOptionsAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/VariableOptionsAction.java
index bb722ec..14f479e 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/VariableOptionsAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/VariableOptionsAction.java
@@ -20,7 +20,7 @@
  * Action which opens preference settings for Java variables.
  */
 public class VariableOptionsAction implements IViewActionDelegate {
-	
+
     /* (non-Javadoc)
      * @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart)
      */
diff --git a/org.eclipse.jdt.debug/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.jdt.debug/.settings/org.eclipse.jdt.ui.prefs
index dd11fc7..c3c6981 100644
--- a/org.eclipse.jdt.debug/.settings/org.eclipse.jdt.ui.prefs
+++ b/org.eclipse.jdt.debug/.settings/org.eclipse.jdt.ui.prefs
@@ -52,7 +52,7 @@
 cleanup_profile=_Platform Debug Cleanups

 cleanup_settings_version=2

 eclipse.preferences.version=1

-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=false

+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true

 formatter_profile=_Platform Debug Formatting

 formatter_settings_version=12

 sp_cleanup.add_default_serial_version_id=true

@@ -89,8 +89,8 @@
 sp_cleanup.qualify_static_member_accesses_with_declaring_class=false

 sp_cleanup.qualify_static_method_accesses_with_declaring_class=false

 sp_cleanup.remove_private_constructors=true

-sp_cleanup.remove_redundant_type_arguments=false

-sp_cleanup.remove_trailing_whitespaces=false

+sp_cleanup.remove_redundant_type_arguments=true

+sp_cleanup.remove_trailing_whitespaces=true

 sp_cleanup.remove_trailing_whitespaces_all=true

 sp_cleanup.remove_trailing_whitespaces_ignore_empty=false

 sp_cleanup.remove_unnecessary_casts=true

diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/EvaluationManager.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/EvaluationManager.java
index 47da156..2daaa32 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/EvaluationManager.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/EvaluationManager.java
@@ -20,7 +20,7 @@
 /**
  * The evaluation manager provides factory methods for creating evaluation
  * engines.
- * 
+ *
  * @see org.eclipse.jdt.debug.eval.IEvaluationEngine
  * @see org.eclipse.jdt.debug.eval.IClassFileEvaluationEngine
  * @see org.eclipse.jdt.debug.eval.IAstEvaluationEngine
@@ -41,7 +41,7 @@
 	/**
 	 * Creates and returns a new evaluation engine that performs evaluations for
 	 * local Java applications by deploying class files.
-	 * 
+	 *
 	 * @param project
 	 *            the Java project in which expressions are to be compiled
 	 * @param target
@@ -61,7 +61,7 @@
 	 * compiling expressions into abstract syntax trees (ASTs), and interpreting
 	 * the AST over a JDI connection. This type of evaluation engine is capable
 	 * of performing remote evaluations.
-	 * 
+	 *
 	 * @param project
 	 *            the Java project in which expressions are to be compiled
 	 * @param target
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IAstEvaluationEngine.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IAstEvaluationEngine.java
index ee8a8db..cbbe5c2 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IAstEvaluationEngine.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IAstEvaluationEngine.java
@@ -20,7 +20,7 @@
  * An evaluation engine that performs evaluations by interpreting abstract
  * syntax trees. An AST evaluation engine is capable of creating compiled
  * expressions that can be evaluated multiple times in a given runtime context.
- * 
+ *
  * @since 2.0
  * @noimplement This interface is not intended to be implemented by clients.
  * @noextend This interface is not intended to be extended by clients.
@@ -36,7 +36,7 @@
 	 * evaluation with the given evaluation detail (@see
 	 * IJavaThread#runEvaluation(IEvaluationRunnable, IProgressMonitor, int)).
 	 * Compilation and runtime errors are reported in the evaluation result.
-	 * 
+	 *
 	 * @param expression
 	 *            expression to evaluate
 	 * @param frame
@@ -80,7 +80,7 @@
 	 * the given evaluation detail (@see
 	 * IJavaThread#runEvaluation(IEvaluationRunnable, IProgressMonitor, int)).
 	 * Compilation and runtime errors are reported in the evaluation result.
-	 * 
+	 *
 	 * @param expression
 	 *            the expression to evaluate
 	 * @param object
@@ -122,7 +122,7 @@
 	 * in the context of the specified stack frame. The generated expression can
 	 * be stored and evaluated later in a valid runtime context. Compilation
 	 * errors are reported in the returned compiled expression.
-	 * 
+	 *
 	 * @param expression
 	 *            expression to compile
 	 * @param frame
@@ -147,7 +147,7 @@
 	 * in the context of the specified object. The generated expression can be
 	 * stored and evaluated later in a valid runtime context. Compilation errors
 	 * are reported in the returned compiled expression.
-	 * 
+	 *
 	 * @param expression
 	 *            expression to compile
 	 * @param object
@@ -172,7 +172,7 @@
 	 * in the context of the specified type. The generated expression can be
 	 * stored and evaluated later in a valid runtime context. Compilation errors
 	 * are reported in the returned compiled expression.
-	 * 
+	 *
 	 * @param expression
 	 *            expression to compile
 	 * @param type
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IClassFileEvaluationEngine.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IClassFileEvaluationEngine.java
index c484404..50f2c1a 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IClassFileEvaluationEngine.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IClassFileEvaluationEngine.java
@@ -16,7 +16,7 @@
 /**
  * An evaluation engine that performs evaluations by deploying and executing
  * class files locally.
- * 
+ *
  * @since 2.0
  * @noimplement This interface is not intended to be implemented by clients.
  * @noextend This interface is not intended to be extended by clients.
@@ -28,7 +28,7 @@
 	 * corresponds to a fully qualified type name, or to an on-demand package
 	 * name as defined by ImportDeclaration (JLS2 7.5). For example,
 	 * <code>"java.util.Hashtable"</code> or <code>"java.util.*"</code>.
-	 * 
+	 *
 	 * @return the list of import names
 	 */
 	public String[] getImports();
@@ -39,7 +39,7 @@
 	 * a fully qualified type name, or to an on-demand package name as defined
 	 * by ImportDeclaration (JLS2 7.5). For example,
 	 * <code>"java.util.Hashtable"</code> or <code>"java.util.*"</code>.
-	 * 
+	 *
 	 * @param imports
 	 *            the list of import names
 	 */
@@ -55,7 +55,7 @@
 	 * evaluation completes, the thread will be suspened at this original
 	 * location. Compilation and runtime errors are reported in the evaluation
 	 * result.
-	 * 
+	 *
 	 * @param snippet
 	 *            code snippet to evaluate
 	 * @param thread
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/ICompiledExpression.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/ICompiledExpression.java
index 64e7986..3e5fedd 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/ICompiledExpression.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/ICompiledExpression.java
@@ -15,7 +15,7 @@
 /**
  * A compiled expression can be compiled once and evaluated multiple times in a
  * runtime context.
- * 
+ *
  * @see org.eclipse.jdt.debug.eval.IAstEvaluationEngine
  * @since 2.0
  * @noimplement This interface is not intended to be implemented by clients.
@@ -27,7 +27,7 @@
 	/**
 	 * Returns the source snippet from which this compiled expression was
 	 * created.
-	 * 
+	 *
 	 * @return the source snippet from which this compiled expression was
 	 *         created
 	 */
@@ -35,7 +35,7 @@
 
 	/**
 	 * Returns whether this compiled expression has any compilation errors.
-	 * 
+	 *
 	 * @return whether this compiled expression has any compilation errors
 	 */
 	public boolean hasErrors();
@@ -43,7 +43,7 @@
 	/**
 	 * Returns any errors which occurred while creating this compiled
 	 * expression.
-	 * 
+	 *
 	 * @return any errors which occurred while creating this compiled expression
 	 * @deprecated use getErrorMessages()
 	 */
@@ -53,7 +53,7 @@
 	/**
 	 * Returns an array of problem messages. Each message describes a problem
 	 * that occurred while while creating this compiled expression.
-	 * 
+	 *
 	 * @return error messages, or an empty array if no errors occurred
 	 * @since 2.1
 	 */
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IEvaluationEngine.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IEvaluationEngine.java
index d52328d..d51ac14 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IEvaluationEngine.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IEvaluationEngine.java
@@ -21,7 +21,7 @@
  * An evaluation engine performs an evaluation of a code snippet or expression
  * in a specified thread of a debug target. An evaluation engine is associated
  * with a specific debug target and Java project on creation.
- * 
+ *
  * @see IEvaluationResult
  * @see IEvaluationListener
  * @since 2.0
@@ -43,7 +43,7 @@
 	 * (@see IJavaThread#runEvaluation(IEvaluationRunnable, IProgressMonitor,
 	 * int)). Compilation and runtime errors are reported in the evaluation
 	 * result.
-	 * 
+	 *
 	 * @param snippet
 	 *            code snippet to evaluate
 	 * @param frame
@@ -88,7 +88,7 @@
 	 * thread runs the evaluation with the given evaluation detail (@see
 	 * IJavaThread#runEvaluation(IEvaluationRunnable, IProgressMonitor, int)).
 	 * Compilation and runtime errors are reported in the evaluation result.
-	 * 
+	 *
 	 * @param snippet
 	 *            code snippet to evaluate
 	 * @param thisContext
@@ -126,14 +126,14 @@
 
 	/**
 	 * Returns the Java project in which expressions are compiled.
-	 * 
+	 *
 	 * @return Java project context
 	 */
 	public IJavaProject getJavaProject();
 
 	/**
 	 * Returns the debug target for which evaluations are executed.
-	 * 
+	 *
 	 * @return Java debug target
 	 */
 	public IJavaDebugTarget getDebugTarget();
@@ -143,7 +143,7 @@
 	 * cleanup any resources (such as threads) that it maintains. Clients should
 	 * call this method when they are finished performing evaluations with this
 	 * engine.
-	 * 
+	 *
 	 * This engine must not be used to perform evaluations after it has been
 	 * disposed.
 	 */
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IEvaluationListener.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IEvaluationListener.java
index 67e065f..4d53858 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IEvaluationListener.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IEvaluationListener.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -17,7 +17,7 @@
  * <p>
  * Clients may implement this interface.
  * </p>
- * 
+ *
  * @see IEvaluationResult
  * @since 2.0
  */
@@ -27,7 +27,7 @@
 	/**
 	 * Notifies this listener that an evaluation has completed, with the given
 	 * result.
-	 * 
+	 *
 	 * @param result
 	 *            The result from the evaluation
 	 * @see IEvaluationResult
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IEvaluationResult.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IEvaluationResult.java
index bd7d575..65f4a1f 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IEvaluationResult.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IEvaluationResult.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,7 +18,7 @@
 /**
  * The result of an evaluation. An evaluation result may contain problems and/or
  * a result value.
- * 
+ *
  * @see IJavaValue
  * @since 2.0
  * @noimplement This interface is not intended to be implemented by clients.
@@ -36,7 +36,7 @@
 	 * Since 3.5, this method can also return null if the evaluation was
 	 * terminated before it completed.
 	 * </p>
-	 * 
+	 *
 	 * @return the resulting value, possibly <code>null</code>
 	 */
 	public IJavaValue getValue();
@@ -44,7 +44,7 @@
 	/**
 	 * Returns whether the evaluation had any problems or if an exception
 	 * occurred while performing the evaluation.
-	 * 
+	 *
 	 * @return whether there were any problems.
 	 * @see #getErrors()
 	 * @see #getException()
@@ -54,7 +54,7 @@
 	/**
 	 * Returns an array of problem messages. Each message describes a problem
 	 * that occurred while compiling the snippet.
-	 * 
+	 *
 	 * @return compilation error messages, or an empty array if no errors
 	 *         occurred
 	 * @deprecated use getErrorMessages()
@@ -65,7 +65,7 @@
 	/**
 	 * Returns an array of problem messages. Each message describes a problem
 	 * that occurred while compiling the snippet.
-	 * 
+	 *
 	 * @return compilation error messages, or an empty array if no errors
 	 *         occurred
 	 * @since 2.1
@@ -74,7 +74,7 @@
 
 	/**
 	 * Returns the snippet that was evaluated.
-	 * 
+	 *
 	 * @return The string code snippet.
 	 */
 	public String getSnippet();
@@ -85,7 +85,7 @@
 	 * debug exception or a debug exception that wrappers a JDI exception that
 	 * indicates a problem communicating with the target or with actually
 	 * performing some action in the target.
-	 * 
+	 *
 	 * @return The exception that occurred during the evaluation
 	 * @see com.sun.jdi.InvocationException
 	 * @see org.eclipse.debug.core.DebugException
@@ -94,21 +94,21 @@
 
 	/**
 	 * Returns the thread in which the evaluation was performed.
-	 * 
+	 *
 	 * @return the thread in which the evaluation was performed
 	 */
 	public IJavaThread getThread();
 
 	/**
 	 * Returns the evaluation engine used to evaluate the original snippet.
-	 * 
+	 *
 	 * @return the evaluation engine used to evaluate the original snippet
 	 */
 	public IEvaluationEngine getEvaluationEngine();
 
 	/**
 	 * Returns whether this evaluation was terminated before it completed.
-	 * 
+	 *
 	 * @return whether terminated.
 	 * @since 3.5
 	 */
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/EvaluationResult.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/EvaluationResult.java
index 42c06e2..7495e85 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/EvaluationResult.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/EvaluationResult.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -23,7 +23,7 @@
 
 /**
  * The result of an evaluation.
- * 
+ *
  * @see org.eclipse.jdt.debug.eval.IEvaluationResult
  */
 public class EvaluationResult implements IEvaluationResult {
@@ -72,7 +72,7 @@
 		setEvaluationEngine(engine);
 		setThread(thread);
 		setSnippet(snippet);
-		fErrors = new ArrayList<String>();
+		fErrors = new ArrayList<>();
 	}
 
 	/**
@@ -85,7 +85,7 @@
 
 	/**
 	 * Sets the result of an evaluation, possibly <code>null</code>.
-	 * 
+	 *
 	 * @param value
 	 *            result of an evaluation, possibly <code>null</code>
 	 */
@@ -134,7 +134,7 @@
 
 	/**
 	 * Sets the code snippet that was evaluated.
-	 * 
+	 *
 	 * @param snippet
 	 *            the source code that was evaluated
 	 */
@@ -153,7 +153,7 @@
 	/**
 	 * Sets an exception that occurred while attempting the associated
 	 * evaluation.
-	 * 
+	 *
 	 * @param e
 	 *            exception
 	 */
@@ -171,7 +171,7 @@
 
 	/**
 	 * Sets the thread this result was generated from.
-	 * 
+	 *
 	 * @param thread
 	 *            thread in which the associated evaluation was executed
 	 */
@@ -189,7 +189,7 @@
 
 	/**
 	 * Sets the evaluation that created this result.
-	 * 
+	 *
 	 * @param engine
 	 *            the evaluation that created this result
 	 */
@@ -206,7 +206,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.eval.IEvaluationResult#isTerminated()
 	 */
 	@Override
@@ -216,7 +216,7 @@
 
 	/**
 	 * Sets whether terminated.
-	 * 
+	 *
 	 * @param terminated
 	 *            whether terminated
 	 */
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/LocalEvaluationEngine.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/LocalEvaluationEngine.java
index 1aaee46..6f66a2f 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/LocalEvaluationEngine.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/LocalEvaluationEngine.java
@@ -121,7 +121,7 @@
 	/**
 	 * Array of modifier constants for visible local variables in the current
 	 * evaluation.
-	 * 
+	 *
 	 * XXX: constants should be 'default' or 'final'. Where are these constants
 	 * defined.
 	 */
@@ -178,7 +178,7 @@
 	 * specified project. Class files required for the evaluation will be
 	 * deployed to the specified directory (which must be on the class path of
 	 * the VM in order for evaluation to work).
-	 * 
+	 *
 	 * @param project
 	 *            context in which to compile snippets
 	 * @param vm
@@ -273,7 +273,7 @@
 	 * Initializes the value of instance variables in the 'code snippet object'
 	 * that are used as place-holders for locals and 'this' in the current stack
 	 * frame.
-	 * 
+	 *
 	 * @param object
 	 *            instance of code snippet class that will be run
 	 * @exception DebugException
@@ -322,7 +322,7 @@
 	 * Restores the value local variables from the instance variables in the
 	 * 'code snippet object' that are used as place-holders for locals in the
 	 * current stack frame.
-	 * 
+	 *
 	 * @param object
 	 *            instance of code snippet class that was run
 	 * @exception DebugException
@@ -374,7 +374,7 @@
 
 	/**
 	 * Sets the debug target in which snippets are executed.
-	 * 
+	 *
 	 * @param debugTarget
 	 *            the debug target in which snippets are executed
 	 */
@@ -392,7 +392,7 @@
 
 	/**
 	 * Sets the Java project in which snippets are compiled.
-	 * 
+	 *
 	 * @param javaProject
 	 *            the Java project in which snippets are compiled
 	 */
@@ -402,7 +402,7 @@
 
 	/**
 	 * Returns the directory in which snippet class files are deployed.
-	 * 
+	 *
 	 * @return the directory in which snippet class files are deployed.
 	 */
 	public File getOutputDirectory() {
@@ -411,7 +411,7 @@
 
 	/**
 	 * Sets the directory in which snippet class files are deployed.
-	 * 
+	 *
 	 * @param outputDirectory
 	 *            location to deploy snippet class files
 	 */
@@ -492,8 +492,8 @@
 			// set up local variables and 'this' context for evaluation
 			IJavaVariable[] locals = frame.getLocalVariables();
 
-			List<String> typeNames = new ArrayList<String>(locals.length);
-			List<String> varNames = new ArrayList<String>(locals.length);
+			List<String> typeNames = new ArrayList<>(locals.length);
+			List<String> varNames = new ArrayList<>(locals.length);
 
 			for (IJavaVariable var : locals) {
 				String typeName = getTranslatedTypeName(var
@@ -560,7 +560,7 @@
 
 	/**
 	 * Verifies the receiving type was resolved and is not an inner type.
-	 * 
+	 *
 	 * @param receivingType
 	 * @throws DebugException
 	 */
@@ -657,7 +657,7 @@
 
 	/**
 	 * Throws an exception if this engine has already been disposed.
-	 * 
+	 *
 	 * @exception DebugException
 	 *                if this engine has been disposed
 	 */
@@ -675,7 +675,7 @@
 
 	/**
 	 * Throws an exception if this engine is already in an evaluation.
-	 * 
+	 *
 	 * @exception DebugException
 	 *                if this engine is currently performing an evaluation
 	 */
@@ -692,7 +692,7 @@
 	/**
 	 * Throws an exception if this engine's current evaluation thread is not
 	 * suspended.
-	 * 
+	 *
 	 * @exception DebugException
 	 *                if this engine's current evaluation thread is not
 	 *                suspended
@@ -711,7 +711,7 @@
 
 	/**
 	 * Deletes deployed class files, and clears state.
-	 * 
+	 *
 	 * @see IEvaluationEngine#dispose()
 	 */
 	@Override
@@ -782,7 +782,7 @@
 
 	/**
 	 * Returns the listener to notify when the current evaluation is complete.
-	 * 
+	 *
 	 * @return the listener to notify when the current evaluation is complete
 	 */
 	protected IEvaluationListener getListener() {
@@ -791,7 +791,7 @@
 
 	/**
 	 * Sets the listener to notify when the current evaluation is complete.
-	 * 
+	 *
 	 * @param listener
 	 *            the listener to notify when the current evaluation is complete
 	 */
@@ -802,7 +802,7 @@
 	/**
 	 * Returns the stack frame context for the current evaluation, or
 	 * <code>null</code> if none.
-	 * 
+	 *
 	 * @return the stack frame context for the current evaluation, or
 	 *         <code>null</code> if none
 	 */
@@ -812,7 +812,7 @@
 
 	/**
 	 * Sets the stack frame context for the current evaluation.
-	 * 
+	 *
 	 * @param stackFrame
 	 *            stack frame context or <code>null</code> if none
 	 */
@@ -822,7 +822,7 @@
 
 	/**
 	 * Returns the thread in which the current evaluation is to be executed.
-	 * 
+	 *
 	 * @return the thread in which the current evaluation is to be executed
 	 */
 	protected IJavaThread getThread() {
@@ -831,7 +831,7 @@
 
 	/**
 	 * Returns the code snippet being evaluated.
-	 * 
+	 *
 	 * @return the code snippet being evaluated.
 	 */
 	protected String getSnippet() {
@@ -840,7 +840,7 @@
 
 	/**
 	 * Returns the current evaluation result.
-	 * 
+	 *
 	 * @return the current evaluation result
 	 */
 	protected EvaluationResult getResult() {
@@ -849,7 +849,7 @@
 
 	/**
 	 * Sets the current evaluation result.
-	 * 
+	 *
 	 * @param result
 	 *            the current evaluation result
 	 */
@@ -861,7 +861,7 @@
 	 * Deploys the given class files to this engine's output location, and adds
 	 * the files to this engines list of temporary files to be deleted when
 	 * disposed.
-	 * 
+	 *
 	 * @exception DebugException
 	 *                if this fails due to a lower level exception.
 	 */
@@ -907,13 +907,13 @@
 	/**
 	 * Adds the given file to this engine's collection of deployed snippet class
 	 * files, which are to be deleted when this engine is disposed.
-	 * 
+	 *
 	 * @param File
 	 *            snippet class file
 	 */
 	private void addSnippetFile(File file) {
 		if (fSnippetFiles == null) {
-			fSnippetFiles = new ArrayList<File>();
+			fSnippetFiles = new ArrayList<>();
 		}
 		fSnippetFiles.add(file);
 	}
@@ -921,13 +921,13 @@
 	/**
 	 * Adds the given file to this engine's collection of created directories,
 	 * which are to be deleted when this engine is disposed.
-	 * 
+	 *
 	 * @param file
 	 *            directory created for class file deployment
 	 */
 	private void addDirectory(File file) {
 		if (fDirectories == null) {
-			fDirectories = new ArrayList<File>();
+			fDirectories = new ArrayList<>();
 		}
 		fDirectories.add(file);
 	}
@@ -936,7 +936,7 @@
 	 * Returns an evaluation context for this evaluation engine. An evaluation
 	 * context is associated with a specific Java project. The evaluation context
 	 * is created lazily on the first access.
-	 * 
+	 *
 	 * @return evaluation context
 	 */
 	protected IEvaluationContext getEvaluationContext() {
@@ -948,7 +948,7 @@
 
 	/**
 	 * Sets the evaluation context for this evaluation engine.
-	 * 
+	 *
 	 * @param context
 	 *            evaluation context
 	 */
@@ -959,7 +959,7 @@
 	/**
 	 * Returns a collection of snippet class file deployed by this evaluation
 	 * engine, possibly empty.
-	 * 
+	 *
 	 * @return deployed class files
 	 */
 	protected List<File> getSnippetFiles() {
@@ -972,7 +972,7 @@
 	/**
 	 * Returns a collection of directories created by this evaluation engine,
 	 * possibly empty.
-	 * 
+	 *
 	 * @return directories created when deploying class files
 	 */
 	protected List<File> getDirectories() {
@@ -984,7 +984,7 @@
 
 	/**
 	 * Returns whether this evaluation engine has been disposed.
-	 * 
+	 *
 	 * @return whether this evaluation engine has been disposed
 	 */
 	protected boolean isDisposed() {
@@ -1049,7 +1049,7 @@
 	/**
 	 * Constructs and returns a new instance of the specified class on the
 	 * target VM.
-	 * 
+	 *
 	 * @param className
 	 *            fully qualified class name
 	 * @return a new instance on the target, as an <code>IJavaValue</code>
@@ -1112,7 +1112,7 @@
 	 * <code>java.lang.Integer</code>, to be interpreted as a
 	 * <code>java.lang.Integer</code>.
 	 * </p>
-	 * 
+	 *
 	 * @param resultType
 	 *            the class of the result
 	 * @param resultValue
@@ -1170,7 +1170,7 @@
 	/**
 	 * Returns the modifiers of the local variables visible in this evaluation,
 	 * possibly empty.
-	 * 
+	 *
 	 * @return array of modifiers
 	 */
 	private int[] getLocalVariableModifiers() {
@@ -1180,7 +1180,7 @@
 	/**
 	 * Sets the modifiers of the local variables visible in this evaluation,
 	 * possibly empty.
-	 * 
+	 *
 	 * @param localVariableModifiers
 	 *            array of modifiers
 	 */
@@ -1191,7 +1191,7 @@
 	/**
 	 * Returns the names of the local variables visible in this evaluation,
 	 * possibly empty.
-	 * 
+	 *
 	 * @param array
 	 *            of names
 	 */
@@ -1202,7 +1202,7 @@
 	/**
 	 * Sets the names of the local variables visible in this evaluation,
 	 * possibly empty.
-	 * 
+	 *
 	 * @param localVariableNames
 	 *            array of names
 	 */
@@ -1213,7 +1213,7 @@
 	/**
 	 * Returns the type names of the local variables visible in this evaluation,
 	 * possibly empty.
-	 * 
+	 *
 	 * @param array
 	 *            of type names
 	 */
@@ -1224,7 +1224,7 @@
 	/**
 	 * Sets the type names of the local variables visible in this evaluation,
 	 * possibly empty.
-	 * 
+	 *
 	 * @param localVariableTypeNames
 	 *            array of type names
 	 */
@@ -1236,7 +1236,7 @@
 	 * Sets the receiver context for the associated evaluation, possibly
 	 * <code>null</code> if the evaluation is in the context of a static method
 	 * or there is no object context.
-	 * 
+	 *
 	 * @param thisObject
 	 *            the receiver content of the associated evaluation, or
 	 *            <code>null</code>
@@ -1249,7 +1249,7 @@
 	 * Returns the receiver context for the associated evaluation, or
 	 * <code>null</code> if the evaluation is in the context of a static method
 	 * or there is no object context.
-	 * 
+	 *
 	 * @return the receiver context of the associated evaluation or
 	 *         <code>null</code>
 	 */
@@ -1261,7 +1261,7 @@
 	 * Returns a copy of the type name with '$' replaced by '.', or returns
 	 * <code>null</code> if the given type name refers to an anonymous inner
 	 * class.
-	 * 
+	 *
 	 * @param typeName
 	 *            a fully qualified type name
 	 * @return a copy of the type name with '$' replaced by '.', or returns
@@ -1290,7 +1290,7 @@
 	 * Returns an array of simple type names that are part of the given type's
 	 * qualified name. For example, if the given name is <code>x.y.A$B</code>,
 	 * an array with <code>["A", "B"]</code> is returned.
-	 * 
+	 *
 	 * @param typeName
 	 *            fully qualified type name
 	 * @return array of nested type names
@@ -1301,7 +1301,7 @@
 			typeName = typeName.substring(index + 1);
 		}
 		index = typeName.indexOf('$');
-		ArrayList<String> list = new ArrayList<String>(1);
+		ArrayList<String> list = new ArrayList<>(1);
 		while (index >= 0) {
 			list.add(typeName.substring(0, index));
 			typeName = typeName.substring(index + 1);
@@ -1330,7 +1330,7 @@
 	/**
 	 * Sets the name of the code snippet to instantiate to run the current
 	 * evaluation.
-	 * 
+	 *
 	 * @param name
 	 *            the name of the deployed code snippet to instantiate and run
 	 */
@@ -1341,7 +1341,7 @@
 	/**
 	 * Returns the name of the code snippet to instantiate to run the current
 	 * evaluation.
-	 * 
+	 *
 	 * @return the name of the deployed code snippet to instantiate and run
 	 */
 	protected String getCodeSnippetClassName() {
@@ -1357,7 +1357,7 @@
 
 	/**
 	 * Returns whether to hit breakpoints in the evaluation thread.
-	 * 
+	 *
 	 * @return whether to hit breakpoints in the evaluation thread
 	 */
 	protected boolean getHitBreakpoints() {
@@ -1366,7 +1366,7 @@
 
 	/**
 	 * Sets whether to hit breakpoints in the evaluation thread.
-	 * 
+	 *
 	 * @param hit
 	 *            whether to hit breakpoints in the evaluation thread
 	 */
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTEvaluationEngine.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTEvaluationEngine.java
index 0b3b5fc..4c1cae6 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTEvaluationEngine.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTEvaluationEngine.java
@@ -83,7 +83,7 @@
 
 		/*
 		 * (non-Javadoc)
-		 * 
+		 *
 		 * @see
 		 * org.eclipse.debug.core.IDebugEventFilter#filterDebugEvents(org.eclipse
 		 * .debug.core.DebugEvent[])
@@ -121,7 +121,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.eval.IEvaluationEngine#evaluate(java.lang.String,
 	 * org.eclipse.jdt.debug.core.IJavaStackFrame,
@@ -139,7 +139,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.eval.IEvaluationEngine#evaluate(java.lang.String,
 	 * org.eclipse.jdt.debug.core.IJavaObject,
@@ -159,7 +159,7 @@
 
 	/**
 	 * Writes a stack dump to trace the calling thread.
-	 * 
+	 *
 	 * @param snippet
 	 *            expression to evaluate
 	 * @param thread
@@ -186,7 +186,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.eval.IAstEvaluationEngine#evaluateExpression(org
 	 * .eclipse.jdt.debug.eval.ICompiledExpression,
@@ -205,7 +205,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.eval.IAstEvaluationEngine#evaluateExpression(org
 	 * .eclipse.jdt.debug.eval.ICompiledExpression,
@@ -267,7 +267,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.eval.IAstEvaluationEngine#getCompiledExpression
 	 * (java.lang.String, org.eclipse.jdt.debug.core.IJavaStackFrame)
@@ -290,7 +290,7 @@
 				innerClassFields = new IVariable[0];
 			}
 			int numLocalsVar = localsVar.length;
-			Set<String> names = new HashSet<String>();
+			Set<String> names = new HashSet<>();
 			// ******
 			// to hide problems with local variable declare as instance of Local
 			// Types
@@ -461,7 +461,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.eval.IAstEvaluationEngine#getCompiledExpression
 	 * (java.lang.String, org.eclipse.jdt.debug.core.IJavaObject)
@@ -486,7 +486,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.eval.IAstEvaluationEngine#getCompiledExpression
 	 * (java.lang.String, org.eclipse.jdt.debug.core.IJavaType)
@@ -520,7 +520,7 @@
 	/**
 	 * Creates a compiled expression for the given snippet using the given
 	 * mapper and compilation unit (AST).
-	 * 
+	 *
 	 * @param snippet
 	 *            the code snippet to be compiled
 	 * @param mapper
@@ -583,7 +583,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.eval.IEvaluationEngine#getJavaProject()
 	 */
 	@Override
@@ -593,7 +593,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.eval.IEvaluationEngine#getDebugTarget()
 	 */
 	@Override
@@ -603,7 +603,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.eval.IEvaluationEngine#dispose()
 	 */
 	@Override
@@ -815,7 +815,7 @@
 
 	/**
 	 * Replaces references to 'this' with the 'array_this' variable.
-	 * 
+	 *
 	 * @param snippet
 	 *            code snippet
 	 * @return snippet with 'this' references replaced
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTInstructionCompiler.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTInstructionCompiler.java
index 3f62171..0a293db 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTInstructionCompiler.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTInstructionCompiler.java
@@ -155,8 +155,8 @@
 	public ASTInstructionCompiler(int startPosition, String snippet) {
 		fStartPosition = startPosition;
 		fInstructions = new InstructionSequence(snippet);
-		fStack = new Stack<Instruction>();
-		fCompleteInstructions = new ArrayList<CompleteInstruction>();
+		fStack = new Stack<>();
+		fCompleteInstructions = new ArrayList<>();
 	}
 
 	/**
@@ -208,8 +208,8 @@
 		}
 		catch(EmptyStackException ese) {
 			JDIDebugPlugin.log(new Status(
-					IStatus.WARNING, 
-					JDIDebugPlugin.getUniqueIdentifier(), 
+					IStatus.WARNING,
+					JDIDebugPlugin.getUniqueIdentifier(),
 					NLS.bind(EvaluationEngineMessages.ASTInstructionCompiler_4, fCounter),
 					ese));
 		}
@@ -225,7 +225,7 @@
 
 	/**
 	 * Prints the given message to the console if verbose mode is on.
-	 * 
+	 *
 	 * @param message
 	 *            the message to display
 	 */
@@ -334,7 +334,7 @@
 
 	/**
 	 * Return the label associated with the given statement.
-	 * 
+	 *
 	 * @param statement
 	 *            the statement.
 	 * @return the associated label, or <code>null</code> if there is none.
@@ -352,7 +352,7 @@
 	 * instruction is added when the expression has a return value, i.e. all
 	 * expressions expect method invocation expressions which have
 	 * <code>void</code> as return type and variable declaration expression.
-	 * 
+	 *
 	 * @param expression
 	 *            the expression to test.
 	 */
@@ -383,7 +383,7 @@
 	}
 
 	/**
-	 * 
+	 *
 	 */
 	private void addPopInstruction() {
 		Instruction lastInstruction = fInstructions
@@ -511,7 +511,7 @@
 
 	/**
 	 * End visit methods
-	 * 
+	 *
 	 * There are two paths to ending a visit to a node:
 	 * <ol>
 	 * <li>For control statements, the necessary control instructions (jump,
@@ -731,7 +731,7 @@
 
 		/*
 		 * The structure of generated instructions is :
-		 * 
+		 *
 		 * -- | body -- -- |condition -- - jump to the first instruction of the
 		 * body if the condition is true.
 		 */
@@ -789,7 +789,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.core.dom.ASTVisitor#endVisit(org.eclipse.jdt.core.dom
 	 * .EnhancedForStatement)
@@ -801,12 +801,12 @@
 
 		/*
 		 * The structure of generated instructions is :
-		 * 
+		 *
 		 * For an array: -- | <ParameterType>[] a= Expression | int i= 0 |
 		 * <ParameterType> <ParameterName> -- -- | i < a.length - jump to the
 		 * instruction after the last jump if the condition is false. -- -- | s=
 		 * a[i] | Body -- -- - jump to the first instruction of the condition.
-		 * 
+		 *
 		 * For an Iterable: -- | Iterator i= Expression.iterator() |
 		 * <ParameterType> <ParameterName> -- -- | i.hasNext() - jump to the
 		 * instruction after the last jump if the condition is false. -- -- | s=
@@ -897,7 +897,7 @@
 
 		/*
 		 * The structure of generated instructions is :
-		 * 
+		 *
 		 * -- |initialization -- -- |condition -- - jump to the instruction
 		 * after the last jump if the condition is false. -- | body -- -- |
 		 * updaters -- - jump to the first instruction of the condition.
@@ -1391,7 +1391,7 @@
 
 		/*
 		 * The structure of generated instructions is :
-		 * 
+		 *
 		 * -- |condition -- - jump to the instruction after the last jump if the
 		 * condition is false. -- | body -- - jump to the first instruction of
 		 * the condition.
@@ -1445,7 +1445,7 @@
 
 	/*
 	 * Visit methods
-	 * 
+	 *
 	 * There are two variations of node visiting: <ol> <li>Push the instruction
 	 * corresponding to the node onto the stack and return <code>true</code> to
 	 * visit the children of the node.</li> <li>Push the instruction
@@ -1456,7 +1456,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * AnnotationTypeDeclaration)
 	 */
@@ -1467,7 +1467,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * AnnotationTypeMemberDeclaration)
 	 */
@@ -1831,7 +1831,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * BlockComment)
 	 */
@@ -1935,7 +1935,7 @@
 	/**
 	 * return false, visit expression, type name & arguments, don't visit body
 	 * declaration
-	 * 
+	 *
 	 * @see ASTVisitor#visit(ClassInstanceCreation)
 	 */
 	@Override
@@ -2129,7 +2129,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * EnhancedForStatement)
 	 */
@@ -2259,7 +2259,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * EnumConstantDeclaration)
 	 */
@@ -2275,7 +2275,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * EnumDeclaration)
 	 */
@@ -2312,7 +2312,7 @@
 
 	/**
 	 * return false, visit expression, don't visit name
-	 * 
+	 *
 	 * @see ASTVisitor#visit(FieldAccess)
 	 */
 	@Override
@@ -2427,7 +2427,7 @@
 
 	/**
 	 * return <code>false</code>, don't use the standard accept order.
-	 * 
+	 *
 	 * @see ASTVisitor#visit(InfixExpression)
 	 */
 	@Override
@@ -2662,10 +2662,10 @@
 		if (hasErrors()) {
 			return false;
 		}
-		
+
 		iterator = extendedOperands.iterator();
 
-		if ((char0 == '&' && char1 == '&') || (char0 == '|' && char1 == '|')) { 
+		if ((char0 == '&' && char1 == '&') || (char0 == '|' && char1 == '|')) {
 			boolean isOrOr = char0 == '|';
 
 			ConditionalJump[] conditionalJumps = new ConditionalJump[operatorNumber];
@@ -2814,7 +2814,7 @@
 	}
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * LineComment)
 	 */
@@ -2825,7 +2825,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * MarkerAnnotation)
 	 */
@@ -2836,7 +2836,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.MemberRef
 	 * )
@@ -2848,7 +2848,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * MemberValuePair)
 	 */
@@ -2872,7 +2872,7 @@
 
 	/**
 	 * return false, don't visit name, visit expression & arguments
-	 * 
+	 *
 	 * @see ASTVisitor#visit(MethodInvocation)
 	 */
 	@Override
@@ -2944,7 +2944,7 @@
 	/**
 	 * Pushes method arguments onto the stack for a method or constructor
 	 * invocation taking variable arguments and auto-boxing into consideration.
-	 * 
+	 *
 	 * @param methodBinding
 	 *            method or constructor being called
 	 * @param arguments
@@ -2962,8 +2962,8 @@
 				return;
 			}
 		}
-		if (methodBinding.isVarargs() && 
-				!(paramCount == argCount && 
+		if (methodBinding.isVarargs() &&
+				!(paramCount == argCount &&
 				parameterTypes[paramCount - 1].getDimensions() == lastArgBinding.getDimensions())) {
 			// if this method is a varargs, and if the method is invoked using
 			// the varargs syntax
@@ -3013,7 +3013,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.MethodRef
 	 * )
@@ -3025,7 +3025,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * MethodRefParameter)
 	 */
@@ -3036,7 +3036,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.Modifier
 	 * )
@@ -3048,7 +3048,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * NormalAnnotation)
 	 */
@@ -3123,7 +3123,7 @@
 	/**
 	 * Removes all preamble typing and underscores and returns the base integer
 	 * value
-	 * 
+	 *
 	 * @param token
 	 *            the token to parse
 	 * @return the int value of the token
@@ -3145,7 +3145,7 @@
 	/**
 	 * Removes all preamble typing and underscores and returns the base short
 	 * value
-	 * 
+	 *
 	 * @param token
 	 *            the token to parse
 	 * @return the short value of the token
@@ -3167,7 +3167,7 @@
 	/**
 	 * Removes all preamble typing and underscores and returns the base byte
 	 * value
-	 * 
+	 *
 	 * @param token
 	 *            the token to parse
 	 * @return the byte value of the token
@@ -3189,7 +3189,7 @@
 	/**
 	 * Removes all preamble typing and underscores and returns the base long
 	 * value
-	 * 
+	 *
 	 * @param token
 	 *            the token to parse
 	 * @return the long value of the token
@@ -3211,7 +3211,7 @@
 	/**
 	 * Returns the numeric base for the given token according to the Java
 	 * specification. Returns 8, 10, or 16.
-	 * 
+	 *
 	 * @param token
 	 *            the token to get the base from
 	 * @return the numeric base for the given token
@@ -3245,7 +3245,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * ParameterizedType)
 	 */
@@ -3567,7 +3567,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * QualifiedType)
 	 */
@@ -3644,7 +3644,7 @@
 
 	/**
 	 * return false, don't visit child
-	 * 
+	 *
 	 * @see ASTVisitor#visit(SimpleType)
 	 */
 	@Override
@@ -3662,7 +3662,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * SingleMemberAnnotation)
 	 */
@@ -3770,7 +3770,7 @@
 
 	/**
 	 * return false, don't visit name, visit arguments
-	 * 
+	 *
 	 * @see ASTVisitor#visit(SuperMethodInvocation)
 	 */
 	@Override
@@ -3826,8 +3826,8 @@
 				return false;
 			}
 		}
-		if (methodBinding.isVarargs() && 
-				!(paramCount == argCount && 
+		if (methodBinding.isVarargs() &&
+				!(paramCount == argCount &&
 				parameterTypes[paramCount - 1].getDimensions() == lastArgBinding.getDimensions())) {
 			// if this method is a varargs, and if the method is invoked using
 			// the varargs syntax
@@ -3889,7 +3889,7 @@
 		addErrorMessage(EvaluationEngineMessages.ASTInstructionCompiler_Reference_expressions_cannot_be_used_in_an_evaluation_expression);
 		return false;
 	}
-	
+
 	/**
 	 * @see ASTVisitor#visit(SwitchCase)
 	 */
@@ -3900,10 +3900,10 @@
 	}
 
 	class slot {
-		ArrayList<ConditionalJump> jumps = new ArrayList<ConditionalJump>();
+		ArrayList<ConditionalJump> jumps = new ArrayList<>();
 		ArrayList<Statement> stmts = null;
 	}
-	
+
 	/**
 	 * @see ASTVisitor#visit(SwitchStatement)
 	 */
@@ -3918,7 +3918,7 @@
 
 		ArrayList<Statement> statementsDefault = null;
 		Jump jumpDefault = null;
-		ArrayList<slot> jumpsStatements = new ArrayList<slot>();
+		ArrayList<slot> jumpsStatements = new ArrayList<>();
 		slot currentslot = new slot();
 		jumpsStatements.add(currentslot);
 
@@ -3930,7 +3930,7 @@
 					jumpDefault = new Jump();
 					push(jumpDefault);
 					storeInstruction(); // jump
-					statementsDefault = new ArrayList<Statement>();
+					statementsDefault = new ArrayList<>();
 				} else {
 					if (switchCase.getExpression() instanceof StringLiteral) {
 						push(new SendMessage(
@@ -3957,7 +3957,7 @@
 					statementsDefault.add(statement);
 				} else {
 					if (currentslot.stmts == null) {
-						currentslot.stmts = new ArrayList<Statement>();
+						currentslot.stmts = new ArrayList<>();
 					}
 					currentslot.stmts.add(statement);
 				}
@@ -4032,7 +4032,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.TagElement
 	 * )
@@ -4044,7 +4044,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * TextElement)
 	 */
@@ -4129,7 +4129,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * TypeParameter)
 	 */
@@ -4264,7 +4264,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * WildcardType)
 	 */
@@ -4421,7 +4421,7 @@
 	/**
 	 * Returns the method signature given the binding and the enclosing type
 	 * signature (if there is one)
-	 * 
+	 *
 	 * @param methodBinding
 	 *            the binding to get the signature for
 	 * @param enclosingTypeSignature
@@ -4486,7 +4486,7 @@
 	/**
 	 * Resolves and returns the type binding from the given expression reporting
 	 * an error if the binding is <code>null</code>.
-	 * 
+	 *
 	 * @param expression
 	 *            expression to resolve type binding for
 	 * @return type binding or <code>null</code> if not available
@@ -4505,7 +4505,7 @@
 	/**
 	 * Resolves and returns the type binding for the give type reporting an
 	 * error if the binding is <code>null</code>.
-	 * 
+	 *
 	 * @param type
 	 *            type to resolve binding for
 	 * @return type binding or <code>null</code> if not available
@@ -4524,7 +4524,7 @@
 	/**
 	 * Resolves and returns the binding for the given name reporting an error if
 	 * the binding is <code>null</code>.
-	 * 
+	 *
 	 * @param name
 	 *            name to resolve binding for
 	 * @return binding or <code>null</code> if not available
@@ -4543,7 +4543,7 @@
 	/**
 	 * Resolves and returns the type binding for the given name reporting an
 	 * error if the binding is <code>null</code>.
-	 * 
+	 *
 	 * @param name
 	 *            name to resolve type binding for
 	 * @return type binding or <code>null</code> if not available
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/AbstractRuntimeContext.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/AbstractRuntimeContext.java
index ccc5d52..c25ebef 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/AbstractRuntimeContext.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/AbstractRuntimeContext.java
@@ -31,7 +31,7 @@
 /**
  * Common runtime context code for class loading and cache of class
  * loader/java.lang.Class.
- * 
+ *
  * @since 3.2
  */
 
@@ -63,7 +63,7 @@
 	/**
 	 * Returns the class loader used to load classes for this runtime context or
 	 * <code>null</code> when loaded by the bootstrap loader
-	 * 
+	 *
 	 * @return the class loader used to load classes for this runtime context or
 	 *         <code>null</code> when loaded by the bootstrap loader
 	 * @throws CoreException
@@ -78,7 +78,7 @@
 
 	/**
 	 * Return the java.lang.Class type.
-	 * 
+	 *
 	 * @return the java.lang.Class type
 	 * @throws CoreException
 	 *             if unable to retrieve the type
@@ -104,7 +104,7 @@
 	/**
 	 * Invokes Class.classForName(String, boolean, ClassLoader) on the target to
 	 * force load the specified class.
-	 * 
+	 *
 	 * @param qualifiedName
 	 *            name of class to load
 	 * @param loader
@@ -164,7 +164,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.eval.ast.engine.IRuntimeContext#classForName
 	 * (java.lang.String)
@@ -176,7 +176,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.eval.ast.engine.IRuntimeContext#getProject
 	 * ()
@@ -190,7 +190,7 @@
 	 * Returns whether the class loaded by the <code>otherLoader</code> is
 	 * compatible with the receiver's class loader. To be compatible, the
 	 * other's loader must be the same or a parent of the receiver's loader.
-	 * 
+	 *
 	 * @param recLoader
 	 *            class loader of receiver
 	 * @param otherLoader
@@ -222,7 +222,7 @@
 	/**
 	 * Returns the parent class loader of the given class loader object or
 	 * <code>null</code> if none.
-	 * 
+	 *
 	 * @param loader
 	 *            class loader object
 	 * @return parent class loader or <code>null</code>
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ArrayRuntimeContext.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ArrayRuntimeContext.java
index c593886..301c60b 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ArrayRuntimeContext.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ArrayRuntimeContext.java
@@ -51,7 +51,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.eval.ast.engine.IRuntimeContext#getVM()
 	 */
@@ -62,7 +62,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.eval.ast.engine.IRuntimeContext#getThis()
 	 */
@@ -73,7 +73,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.internal.debug.eval.ast.engine.IRuntimeContext#
 	 * getReceivingType()
 	 */
@@ -96,7 +96,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.eval.ast.engine.IRuntimeContext#getLocals
 	 * ()
@@ -108,7 +108,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.eval.ast.engine.IRuntimeContext#getThread
 	 * ()
@@ -120,7 +120,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.eval.ast.engine.IRuntimeContext#isConstructor
 	 * ()
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/BinaryBasedSourceGenerator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/BinaryBasedSourceGenerator.java
index aa8a99a..8520276 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/BinaryBasedSourceGenerator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/BinaryBasedSourceGenerator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Holger Schill - Bug 455199 - [debug] Debugging doesn't work properly when inner classes are used
@@ -604,7 +604,7 @@
 	/**
 	 * Returns whether the source to be generated is greater than or equal to
 	 * the given source level.
-	 * 
+	 *
 	 * @param major
 	 *            major level - e.g. 1 from 1.4
 	 * @param minor
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/EvaluationSourceGenerator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/EvaluationSourceGenerator.java
index 212cec5..4e10c8d 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/EvaluationSourceGenerator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/EvaluationSourceGenerator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jesper Steen Moller - bug 341232
@@ -72,16 +72,16 @@
 		this(new String[0], new String[0], codeSnippet, javaProject);
 	}
 
-	
+
 	/**
 	 * Returns the completed codeSnippet by adding required semicolon and
-	 * return 
+	 * return
 	 */
 	protected String getCompleteSnippet(String codeSnippet) {
 		codeSnippet = codeSnippet.trim(); // remove whitespaces at the end
 		boolean inString = false;
 		byte[] chars = codeSnippet.getBytes();
-		
+
 		int semicolonIndex = -1;
 		int lastSemilcolonIndex = -1;
 		for (int i = 0, numChars = chars.length; i < numChars; i++) {
@@ -104,7 +104,7 @@
 			}
 		}
 		StringBuffer wordBuffer = new StringBuffer();
-		// if semicolon missing at the end 
+		// if semicolon missing at the end
 		if (lastSemilcolonIndex != chars.length-1)
 			semicolonIndex = lastSemilcolonIndex;
 		int i ;
@@ -119,7 +119,7 @@
 		String lastSentence  = codeSnippet.substring(i);
 		// don't add return if it there in some condition
 		String returnString = "return "; //$NON-NLS-1$
-		int index = codeSnippet.lastIndexOf(returnString); 
+		int index = codeSnippet.lastIndexOf(returnString);
 		if (index == -1){
 			if (needsReturn(lastSentence))
 				wordBuffer.append(returnString);
@@ -129,7 +129,7 @@
 				if (needsReturn(lastSentence))
 					wordBuffer.append(returnString);
 			}
-		} else if (chars[chars.length -1] !='}' && ( i+7 > chars.length || (i + 7 <= chars.length && !codeSnippet.substring(i, i+7).equals(returnString)))){ 
+		} else if (chars[chars.length -1] !='}' && ( i+7 > chars.length || (i + 7 <= chars.length && !codeSnippet.substring(i, i+7).equals(returnString)))){
 			// add return if last statement does not have return
 			if (needsReturn(lastSentence))
 				wordBuffer.append(returnString);
@@ -150,12 +150,12 @@
 		return wordBuffer.toString();
 	}
 
-	
+
 	/**
 	 * Returns <code>true</code> if the snippet required return to be added, or
 	 * <code>false</code> if the snippet does not require return to be added.
 	 */
-	
+
 	private boolean needsReturn(String codeSnippet){
 		if ( codeSnippet.length() == 0) {
 			return false;
@@ -167,7 +167,7 @@
 			token = scanner.getNextToken();
 			int count = 0;
 			while (token != ITerminalSymbols.TokenNameEOF) {
-				if (count == 0 && (token == ITerminalSymbols.TokenNameIdentifier || token == ITerminalSymbols.TokenNameint || token == ITerminalSymbols.TokenNamefloat || 
+				if (count == 0 && (token == ITerminalSymbols.TokenNameIdentifier || token == ITerminalSymbols.TokenNameint || token == ITerminalSymbols.TokenNamefloat ||
 						token == ITerminalSymbols.TokenNamedouble || token == ITerminalSymbols.TokenNameboolean || token == ITerminalSymbols.TokenNamechar ||
 						token == ITerminalSymbols.TokenNameshort || token == ITerminalSymbols.TokenNamelong)) {
 					int currentToken = token;
@@ -176,7 +176,7 @@
 						return true;
 					}
 					count = 1;
-				} 
+				}
 				else if ( count == 0 && (token == ITerminalSymbols.TokenNamestatic || token == ITerminalSymbols.TokenNamefinal || token == ITerminalSymbols.TokenNamepackage ||
 						token == ITerminalSymbols.TokenNameprivate || token == ITerminalSymbols.TokenNameprotected || token == ITerminalSymbols.TokenNamepublic)){
 					token = scanner.getNextToken();
@@ -220,19 +220,19 @@
 				else if ( (count == 3 || count == 1 ) && token == ITerminalSymbols.TokenNameIdentifier ){
 					 return false;
 				}
-				else { 
+				else {
 					return true;
 				}
-				
+
 			}
 		}
 		catch (InvalidInputException e) {
 			// ignore
 		}
-		
+
 		return true;
 	}
-	
+
 	public String getCompilationUnitName() {
 		return fCompilationUnitName;
 	}
@@ -302,7 +302,7 @@
 	 * Turns all errors and warnings into ignore and disables task tags. The
 	 * customizable set of compiler options only contains additional Eclipse
 	 * options. The standard JDK compiler options can't be changed anyway.
-	 * 
+	 *
 	 * @param element
 	 *            an element (not the Java model)
 	 * @return compiler options
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/IRuntimeContext.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/IRuntimeContext.java
index bf04301..e4987bd 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/IRuntimeContext.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/IRuntimeContext.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -31,7 +31,7 @@
 
 	/**
 	 * Returns the virtual machine in which to perform the evaluation.
-	 * 
+	 *
 	 * @return virtual machine
 	 */
 	IJavaDebugTarget getVM();
@@ -40,7 +40,7 @@
 	 * Returns the receiving object context in which to perform the evaluation -
 	 * equivalent to 'this'. Returns <code>null</code> if the context of an
 	 * evaluation is in a class rather than an object.
-	 * 
+	 *
 	 * @return 'this', or <code>null</code>
 	 * @exception EvaluationException
 	 *                if this method fails. Reasons include:
@@ -56,7 +56,7 @@
 	 * Returns the receiving type context in which to perform the evaluation.
 	 * The type of 'this', or in the case of a static context, the class or
 	 * interface in which the evaluation is being performed.
-	 * 
+	 *
 	 * @return receiving class
 	 * @exception EvaluationException
 	 *                if this method fails. Reasons include:
@@ -72,7 +72,7 @@
 	 * Returns the local variables visible for the evaluation. This includes
 	 * method arguments, if any. Does not return <code>null</code> returns an
 	 * empty collection if there are no locals.
-	 * 
+	 *
 	 * @return local variables
 	 * @exception EvaluationException
 	 *                if this method fails. Reasons include:
@@ -87,21 +87,21 @@
 	/**
 	 * Returns the Java project context in which this expression should be
 	 * compiled.
-	 * 
+	 *
 	 * @return project
 	 */
 	IJavaProject getProject();
 
 	/**
 	 * Returns the thread in which message sends may be performed.
-	 * 
+	 *
 	 * @return thread
 	 */
 	IJavaThread getThread();
 
 	/**
 	 * Returns whether the context of this evaluation is within a constructor.
-	 * 
+	 *
 	 * @return whether the context of this evaluation is within a constructor
 	 * @exception EvaluationException
 	 *                if this method fails. Reasons include:
@@ -117,7 +117,7 @@
 	 * Loads, prepares and returns the class with the given name in this runtime
 	 * context's receiving type's class loader. If the class is already loaded,
 	 * it is simply returned.
-	 * 
+	 *
 	 * @param name
 	 *            fully qualified class name
 	 * @return class object
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/Interpreter.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/Interpreter.java
index 3e81f2c..ee36651 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/Interpreter.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/Interpreter.java
@@ -54,7 +54,7 @@
 	public Interpreter(InstructionSequence instructions, IRuntimeContext context) {
 		fInstructions = instructions.getInstructions();
 		fContext = context;
-		fInternalVariables = new HashMap<String, IVariable>();
+		fInternalVariables = new HashMap<>();
 	}
 
 	public void execute() throws CoreException {
@@ -79,7 +79,7 @@
 	}
 
 	private void reset() {
-		fStack = new Stack<Object>();
+		fStack = new Stack<>();
 		fInstructionCounter = 0;
 	}
 
@@ -104,13 +104,13 @@
 
 	/**
 	 * Avoid garbage collecting interim results.
-	 * 
+	 *
 	 * @param value
 	 *            object to disable garbage collection for
 	 */
 	private void disableCollection(IJavaObject value) {
 		if (fPermStorage == null) {
-			fPermStorage = new ArrayList<IJavaObject>(5);
+			fPermStorage = new ArrayList<>(5);
 		}
 		try {
 			value.disableCollection();
@@ -193,7 +193,7 @@
 	/**
 	 * Create a new variable in the interpreter with the given name and the
 	 * given type.
-	 * 
+	 *
 	 * @param name
 	 *            the name of the variable to create.
 	 * @param type
@@ -211,7 +211,7 @@
 	 * Return the variable with the given name. This method only looks in the
 	 * list of internal variable (i.e. created by
 	 * Interpreter#createInternalVariable(String, IJavaType))
-	 * 
+	 *
 	 * @param name
 	 *            the name of the variable to retrieve.
 	 * @return the corresponding variable, or <code>null</code> if there is
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/InterpreterVariable.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/InterpreterVariable.java
index e306c23..1dabe7f 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/InterpreterVariable.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/InterpreterVariable.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -250,7 +250,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaVariable#getGenericSignature()
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/JavaObjectRuntimeContext.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/JavaObjectRuntimeContext.java
index 7a58bfc..712bae7 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/JavaObjectRuntimeContext.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/JavaObjectRuntimeContext.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -32,7 +32,7 @@
 
 	/**
 	 * ObjectValueRuntimeContext constructor.
-	 * 
+	 *
 	 * @param thisObject
 	 *            <code>this</code> object of this context.
 	 * @param javaProject
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/RuntimeContext.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/RuntimeContext.java
index cfacf37..d2cde91 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/RuntimeContext.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/RuntimeContext.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -28,7 +28,7 @@
 
 	/**
 	 * Creates a runtime context for the given java project and stack frame.
-	 * 
+	 *
 	 * @param project
 	 *            Java project context used to compile expressions in
 	 * @param frame
@@ -78,7 +78,7 @@
 
 	/**
 	 * Sets the stack frame context used to compile/run expressions
-	 * 
+	 *
 	 * @param frame
 	 *            the stack frame context used to compile/run expressions
 	 */
@@ -88,7 +88,7 @@
 
 	/**
 	 * Sets the stack frame context used to compile/run expressions
-	 * 
+	 *
 	 * @param frame
 	 *            the stack frame context used to compile/run expressions
 	 */
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/SignatureExt.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/SignatureExt.java
index 5c60291..d95d585 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/SignatureExt.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/SignatureExt.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -47,7 +47,7 @@
 					throw new IllegalArgumentException();
 				i++; // trailing '>'
 			}
-			ArrayList<char[]> superList = new ArrayList<char[]>();
+			ArrayList<char[]> superList = new ArrayList<>();
 			while (i < length) {
 				int superStart = i;
 				i = Util.scanTypeSignature(typeSignature, i);
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/SourceBasedSourceGenerator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/SourceBasedSourceGenerator.java
index ac64031..72bca4e 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/SourceBasedSourceGenerator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/SourceBasedSourceGenerator.java
@@ -155,7 +155,7 @@
 	private int fSourceMajorLevel;
 	private int fSourceMinorLevel;
 
-	private Stack<Map<String, String>> fTypeParameterStack = new Stack<Map<String, String>>();
+	private Stack<Map<String, String>> fTypeParameterStack = new Stack<>();
 	private Map<String, String> fMatchingTypeParameters = null;
 	private CompilationUnit fCompilationUnit;
 	{
@@ -166,7 +166,7 @@
 	 * if the <code>createInAnInstanceMethod</code> flag is set, the method
 	 * created which contains the code snippet is an no-static method, even if
 	 * <code>position</code> is in a static method.
-	 * 
+	 *
 	 * @param type
 	 *            the root {@link IType}
 	 * @param sourcePosition
@@ -202,7 +202,7 @@
 	/**
 	 * Returns the generated source or <code>null</code> if no source can be
 	 * generated.
-	 * 
+	 *
 	 * @return returns the backing source from the generator
 	 */
 	public String getSource() {
@@ -287,7 +287,7 @@
 
 	/**
 	 * Adds generic type parameters as needed to the given buffer
-	 * 
+	 *
 	 * @param buffer
 	 * @since 3.8.0
 	 */
@@ -309,11 +309,11 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Returns if the specified {@link ASTNode} has the 'correct' parent type to
 	 * match the current type name context
-	 * 
+	 *
 	 * @param node
 	 *            the {@link ASTNode} to check source ranges for
 	 * @return true if the parent type of the given node matches the current
@@ -337,7 +337,7 @@
 					ClassInstanceCreation decl = (ClassInstanceCreation) node;
 					Type type = decl.getType();
 					ISourceRange name = fType.getNameRange();
-					return name.getOffset() >= type.getStartPosition() && 
+					return name.getOffset() >= type.getStartPosition() &&
 							name.getOffset()+name.getLength() <= type.getStartPosition()+type.getLength();
 				}
 			}
@@ -398,7 +398,7 @@
 	/**
 	 * Builds up the given buffer with the source from each of
 	 * {@link BodyDeclaration}s in the given list
-	 * 
+	 *
 	 * @param buffer
 	 *            the buffer to clone and append to
 	 * @param list
@@ -706,7 +706,7 @@
 	 * Returns a method name that will be unique in the generated source. The
 	 * generated name is baseName plus as many '_' characters as necessary to
 	 * not duplicate an existing method name.
-	 * 
+	 *
 	 * @param methodName
 	 *            the method name to look for
 	 * @param bodyDeclarations
@@ -735,7 +735,7 @@
 	 * Returns a field name that will be unique in the generated source. The
 	 * generated name is baseName plus as many '_' characters as necessary to
 	 * not duplicate an existing method name.
-	 * 
+	 *
 	 * @param fieldName
 	 *            the name of the field to look for
 	 * @param bodyDeclarations
@@ -927,7 +927,7 @@
 	 * <br>
 	 * This method adds the new <code>___eval</code> method source to the root
 	 * {@link #fSource} variable directly
-	 * 
+	 *
 	 * @param isstatic
 	 *            if the keyword <code>static</code> should be added to the
 	 *            method source
@@ -964,7 +964,7 @@
 	 * Recursively finds the parent {@link Type} from the given type, in the
 	 * cases where the type is an {@link ArrayType} or a
 	 * {@link ParameterizedType}
-	 * 
+	 *
 	 * @param type
 	 *            the {@link Type}
 	 * @return the parent {@link Type}
@@ -996,7 +996,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.core.dom.ASTVisitor#endVisit(org.eclipse.jdt.core.dom
 	 * .EnumDeclaration)
@@ -1119,7 +1119,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * AnnotationTypeDeclaration)
 	 */
@@ -1130,7 +1130,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * AnnotationTypeMemberDeclaration)
 	 */
@@ -1229,7 +1229,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * BlockComment)
 	 */
@@ -1373,7 +1373,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * EnhancedForStatement)
 	 */
@@ -1387,7 +1387,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * EnumConstantDeclaration)
 	 */
@@ -1401,7 +1401,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * EnumDeclaration)
 	 */
@@ -1504,7 +1504,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * InstanceofExpression)
 	 */
@@ -1540,7 +1540,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * LineComment)
 	 */
@@ -1551,7 +1551,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * MarkerAnnotation)
 	 */
@@ -1562,7 +1562,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.MemberRef
 	 * )
@@ -1574,7 +1574,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * MemberValuePair)
 	 */
@@ -1590,7 +1590,7 @@
 	public boolean visit(MethodDeclaration node) {
 		int firstLine = fCompilationUnit.getLineNumber(node.getStartPosition());
 		int lastLine = fCompilationUnit.getLineNumber(node.getStartPosition() + node.getLength());
-		
+
 		List<TypeParameter> typeParameters = node.typeParameters();
 		pushTypeParameters(typeParameters);
 		if (isRightType(node.getParent()) && firstLine <= fLine && fLine <= lastLine) {
@@ -1604,7 +1604,7 @@
 
 	private void pushTypeParameters(List<TypeParameter> typeParameters) {
 		if (!typeParameters.isEmpty()) {
-			HashMap<String,String> newTypeParameters = new HashMap<String,String>(fTypeParameterStack.peek());
+			HashMap<String,String> newTypeParameters = new HashMap<>(fTypeParameterStack.peek());
 			Iterator<TypeParameter> iterator = typeParameters.iterator();
 			while (iterator.hasNext()) {
 				TypeParameter typeParameter = iterator.next();
@@ -1630,7 +1630,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.MethodRef
 	 * )
@@ -1642,7 +1642,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * MethodRefParameter)
 	 */
@@ -1653,7 +1653,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.Modifier
 	 * )
@@ -1665,7 +1665,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * NormalAnnotation)
 	 */
@@ -1709,7 +1709,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * ParameterizedType)
 	 */
@@ -1778,7 +1778,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * QualifiedType)
 	 */
@@ -1822,7 +1822,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * SingleMemberAnnotation)
 	 */
@@ -1921,7 +1921,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.TagElement
 	 * )
@@ -1933,7 +1933,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * TextElement)
 	 */
@@ -1977,7 +1977,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.UnionType
 	 * )
@@ -2028,7 +2028,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * TypeParameter)
 	 */
@@ -2083,7 +2083,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * WildcardType)
 	 */
@@ -2095,7 +2095,7 @@
 	/**
 	 * Returns whether the source to be generated is greater than or equal to
 	 * the given source level.
-	 * 
+	 *
 	 * @param major
 	 *            major level - e.g. 1 from 1.4
 	 * @param minor
@@ -2110,7 +2110,7 @@
 
 	/**
 	 * Appends type parameters to source.
-	 * 
+	 *
 	 * @param source
 	 *            the current buffer of source to append to
 	 * @param typeParameters
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/AndAssignmentOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/AndAssignmentOperator.java
index 5137a00..b4a7a91 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/AndAssignmentOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/AndAssignmentOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/AndOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/AndOperator.java
index 528d90d..a6c55ed 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/AndOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/AndOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/ArrayAccess.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/ArrayAccess.java
index 7e78e6b..df3ee6e 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/ArrayAccess.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/ArrayAccess.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -56,19 +56,13 @@
 	/**
 	 * Pops an array object off the top of the stack. Throws an exception if not
 	 * an array object or <code>null</code>.
-	 * 
+	 *
 	 * @return array object on top of the stack
 	 * @throws CoreException
 	 *             if not available
 	 */
 	protected IJavaArray popArray() throws CoreException {
-		Object popValue = popValue();
-		if (! (popValue instanceof IJavaValue)) {
-			throw new CoreException(new Status(IStatus.ERROR,
-					JDIDebugPlugin.getUniqueIdentifier(), IStatus.OK,
-					"Internal error: attempt to access non-java object", null)); //$NON-NLS-1$
-		}
-		IJavaValue value = (IJavaValue) popValue;
+		IJavaValue value = popValue();
 		if (value instanceof IJavaArray) {
 			return (IJavaArray) value;
 		} else if (value.isNull()) {
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/ArrayAllocation.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/ArrayAllocation.java
index da98d15..8c519c1 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/ArrayAllocation.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/ArrayAllocation.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -28,7 +28,7 @@
 
 	/**
 	 * Constructor for ArrayAllocation.
-	 * 
+	 *
 	 * @param start
 	 */
 	public ArrayAllocation(int dimension, int exprDimension,
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/ArrayInitializerInstruction.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/ArrayInitializerInstruction.java
index e812e51..01a2305 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/ArrayInitializerInstruction.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/ArrayInitializerInstruction.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -13,7 +13,6 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.jdt.debug.core.IJavaArray;
 import org.eclipse.jdt.debug.core.IJavaArrayType;
-import org.eclipse.jdt.debug.core.IJavaValue;
 
 public class ArrayInitializerInstruction extends ArrayInstruction {
 
@@ -25,7 +24,7 @@
 
 	/**
 	 * Constructor for ArrayInitializerInstruction.
-	 * 
+	 *
 	 * @param start
 	 */
 	public ArrayInitializerInstruction(String typeSignature, int length,
@@ -47,10 +46,7 @@
 		IJavaArray array = arrayType.newInstance(fLength);
 
 		for (int i = fLength - 1; i >= 0; i--) {
-			Object popValue = popValue();
-			if (popValue instanceof IJavaValue) {
-				array.setValue(i, (IJavaValue) popValue);
-			}
+			array.setValue(i, popValue());
 		}
 
 		push(array);
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/ArrayInstruction.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/ArrayInstruction.java
index b50a642..2f9707d 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/ArrayInstruction.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/ArrayInstruction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/AssignmentOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/AssignmentOperator.java
index 9b7f06e..b666d50 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/AssignmentOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/AssignmentOperator.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -31,10 +31,7 @@
 	 */
 	@Override
 	public void execute() throws CoreException {
-		Object popValue = popValue();
-		if (!(popValue instanceof IJavaValue))
-			return;
-		IJavaValue value = (IJavaValue) popValue;
+		IJavaValue value = popValue();
 		IJavaVariable variable = (IJavaVariable) pop();
 
 		if (value instanceof IJavaPrimitiveValue) {
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/BinaryOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/BinaryOperator.java
index 70151a6..8fcb7a1 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/BinaryOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/BinaryOperator.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -42,10 +42,7 @@
 	}
 
 	private void executeAssignment() throws CoreException {
-		Object popValue = popValue();
-		if (!(popValue instanceof IJavaValue))
-			return;
-		IJavaValue value = (IJavaValue) popValue;
+		IJavaValue value = popValue();
 		IJavaVariable variable = (IJavaVariable) pop();
 		IJavaValue variableValue = (IJavaValue) variable.getValue();
 
@@ -83,11 +80,8 @@
 	}
 
 	private void executeBinary() throws CoreException {
-		Object popValue = popValue();
-		if (!(popValue instanceof IJavaValue))
-			return;
-		IJavaValue right = (IJavaValue) popValue;
-		IJavaValue left = (IJavaValue) popValue();
+		IJavaValue right = popValue();
+		IJavaValue left = popValue();
 
 		switch (fResultTypeId) {
 		case T_String:
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/Cast.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/Cast.java
index 3007ad7..2ade4fa 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/Cast.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/Cast.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2012 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -34,7 +34,7 @@
 
 	/**
 	 * Cast instruction constructor.
-	 * 
+	 *
 	 * @param typeTypeId
 	 *            the id of the type to cast into.
 	 * @param baseTypeName
@@ -56,10 +56,7 @@
 	 */
 	@Override
 	public void execute() throws CoreException {
-		Object popValue = popValue();
-		if (!(popValue instanceof IJavaValue))
-			return;
-		IJavaValue value = (IJavaValue) popValue;
+		IJavaValue value = popValue();
 
 		if (value instanceof IJavaPrimitiveValue) {
 			IJavaPrimitiveValue primitiveValue = (IJavaPrimitiveValue) value;
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/CompoundInstruction.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/CompoundInstruction.java
index 7b3830a..ebcbd4e 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/CompoundInstruction.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/CompoundInstruction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -20,7 +20,7 @@
 
 	/**
 	 * Constructor for CompoundInstruction.
-	 * 
+	 *
 	 * @param start
 	 */
 	protected CompoundInstruction(int start) {
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/ConditionalJump.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/ConditionalJump.java
index c28b839..0f02f72 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/ConditionalJump.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/ConditionalJump.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2014 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jacob Saoumi - Bug 434722 error in ConditionalJump Instruction
@@ -28,10 +28,7 @@
 	 */
 	@Override
 	public void execute() throws CoreException {
-		Object popValue = popValue();
-		if (!(popValue instanceof IJavaValue))
-			return;
-		IJavaValue conditionValue = (IJavaValue) popValue;
+		IJavaValue conditionValue = popValue();
 		IJavaPrimitiveValue condition = null;
 		if (conditionValue instanceof IJavaPrimitiveValue) {
 			condition = (IJavaPrimitiveValue) conditionValue;
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/Constructor.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/Constructor.java
index 72f4911..27f9aff 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/Constructor.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/Constructor.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -34,10 +34,7 @@
 		IJavaValue[] args = new IJavaValue[fArgCount];
 		// args are in reverse order
 		for (int i = fArgCount - 1; i >= 0; i--) {
-			Object popValue = popValue();
-			if (popValue instanceof IJavaValue) {
-				args[i] = (IJavaValue) popValue;
-			}
+			args[i] = popValue();
 		}
 		IJavaClassType clazz = (IJavaClassType) pop();
 		IJavaValue result = clazz.newInstance(fSignature, args, getContext()
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/DivideAssignmentOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/DivideAssignmentOperator.java
index 858ddc9..a7e9eea 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/DivideAssignmentOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/DivideAssignmentOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/DivideOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/DivideOperator.java
index 19c0a8d..ec4cf86 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/DivideOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/DivideOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/Dup.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/Dup.java
index 06a9f69..6e3c949 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/Dup.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/Dup.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -14,19 +14,19 @@
 
 /**
  * Duplicate the top element of the stack
- * 
+ *
  * Element ...
- * 
+ *
  * ->
- * 
+ *
  * Element Element ...
- * 
+ *
  */
 public class Dup extends SimpleInstruction {
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.eval.ast.instructions.Instruction#execute
 	 * ()
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/DupX1.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/DupX1.java
index 9854a14..955f2ff 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/DupX1.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/DupX1.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -15,19 +15,19 @@
 /**
  * Duplicate the top element of the stack and put in it behind the second
  * element of the stack.
- * 
+ *
  * Element1 Element2 ...
- * 
+ *
  * ->
- * 
+ *
  * Element1 Element2 Element3 ...
- * 
+ *
  */
 public class DupX1 extends SimpleInstruction {
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.eval.ast.instructions.Instruction#execute
 	 * ()
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/GreaterEqualOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/GreaterEqualOperator.java
index e39e512..4e5fbe4 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/GreaterEqualOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/GreaterEqualOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/GreaterOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/GreaterOperator.java
index 1f7796f..4bfba7c 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/GreaterOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/GreaterOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/InstanceOfOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/InstanceOfOperator.java
index f4f04b4..4697334 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/InstanceOfOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/InstanceOfOperator.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2012 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -34,10 +34,7 @@
 	@Override
 	public void execute() throws CoreException {
 		IJavaType type = (IJavaType) pop();
-		Object popValue = popValue();
-		if (!(popValue instanceof IJavaValue))
-			return;
-		IJavaValue value = (IJavaValue) popValue;
+		IJavaValue value = popValue();
 		if (value instanceof JDINullValue) {
 			pushNewValue(false);
 			return;
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/Instruction.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/Instruction.java
index 9a9011c..68754e7 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/Instruction.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/Instruction.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2012 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -65,7 +65,7 @@
 
 	/**
 	 * Return the internal variable with the given name.
-	 * 
+	 *
 	 * @see Interpreter#getInternalVariable(String)
 	 */
 	protected IVariable getInternalVariable(String name) {
@@ -75,7 +75,7 @@
 	/**
 	 * Create and return a new internal variable with the given name and the
 	 * given type.
-	 * 
+	 *
 	 * @see Interpreter#createInternalVariable(String, String)
 	 */
 	protected IVariable createInternalVariable(String name,
@@ -105,12 +105,12 @@
 		return fInterpreter.pop();
 	}
 
-	protected Object popValue() throws CoreException {
+	protected IJavaValue popValue() throws CoreException {
 		Object element = fInterpreter.pop();
 		if (element instanceof IJavaVariable) {
-			return ((IJavaVariable) element).getValue();
+			return (IJavaValue) ((IJavaVariable) element).getValue();
 		}
-		return  element;
+		return (IJavaValue) element;
 	}
 
 	protected void pushNewValue(boolean value) {
@@ -215,7 +215,7 @@
 
 	/**
 	 * Returns the primitive type with the given name.
-	 * 
+	 *
 	 * @param name
 	 *            type name, for example - "int"
 	 * @return primitive type
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/InstructionSequence.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/InstructionSequence.java
index c4fd3c0..0a163f2 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/InstructionSequence.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/InstructionSequence.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -30,8 +30,8 @@
 	private CoreException fException;
 
 	public InstructionSequence(String snippet) {
-		fInstructions = new ArrayList<Instruction>(10);
-		fErrors = new ArrayList<String>();
+		fInstructions = new ArrayList<>(10);
+		fErrors = new ArrayList<>();
 		fSnippet = snippet;
 	}
 
@@ -131,7 +131,7 @@
 	 * Inserts the instruction at the given index. If the index is less than 0
 	 * or greater than the current instruction count, the instruction is added
 	 * at the end of the sequence.
-	 * 
+	 *
 	 * Instructs the instructions to update their program counters.
 	 */
 	public void insert(Instruction instruction, int index) {
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/InstructionsEvaluationMessages.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/InstructionsEvaluationMessages.java
index 15f3a7e..9ff135c 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/InstructionsEvaluationMessages.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/InstructionsEvaluationMessages.java
@@ -3,8 +3,8 @@
  * program and the accompanying materials are made available under the terms of
  * the Eclipse Public License v1.0 which accompanies this distribution, and is
  * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
+ *
+ * Contributors:
  * IBM - Initial API and implementation
  **********************************************************************/
 package org.eclipse.jdt.internal.debug.eval.ast.instructions;
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/Jump.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/Jump.java
index fadd501..b625e54 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/Jump.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/Jump.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/LeftShiftAssignmentOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/LeftShiftAssignmentOperator.java
index b1f009e..ef9e357 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/LeftShiftAssignmentOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/LeftShiftAssignmentOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/LeftShiftOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/LeftShiftOperator.java
index 727004e..49d533c 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/LeftShiftOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/LeftShiftOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/LessEqualOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/LessEqualOperator.java
index fe9ab30..53bf45b 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/LessEqualOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/LessEqualOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/LessOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/LessOperator.java
index 93ef365..5db8599 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/LessOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/LessOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/LocalVariableCreation.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/LocalVariableCreation.java
index e12c865..5c5491a 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/LocalVariableCreation.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/LocalVariableCreation.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2012 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -11,7 +11,6 @@
 package org.eclipse.jdt.internal.debug.eval.ast.instructions;
 
 import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.model.IValue;
 import org.eclipse.debug.core.model.IVariable;
 import org.eclipse.jdi.internal.PrimitiveTypeImpl;
 import org.eclipse.jdi.internal.VirtualMachineImpl;
@@ -52,7 +51,7 @@
 
 	/**
 	 * Constructor for LocalVariableCreation.
-	 * 
+	 *
 	 * @param name
 	 *            the name of the variable to create.
 	 * @param typeSignature
@@ -104,9 +103,7 @@
 		}
 		IVariable var = createInternalVariable(fName, type);
 		if (fHasInitializer) {
-			Object value = popValue();
-			if (value instanceof IValue)
-				var.setValue((IValue) value);
+			var.setValue(popValue());
 		}
 	}
 
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/MinusAssignmentOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/MinusAssignmentOperator.java
index 667bbc8..6b603b7 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/MinusAssignmentOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/MinusAssignmentOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/MinusOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/MinusOperator.java
index 44f87f4..6752486 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/MinusOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/MinusOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/MultiplyAssignmentOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/MultiplyAssignmentOperator.java
index 3ebfe3c..88864dd 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/MultiplyAssignmentOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/MultiplyAssignmentOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/MultiplyOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/MultiplyOperator.java
index 363597d..8879ebc 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/MultiplyOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/MultiplyOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/NoOp.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/NoOp.java
index 2211e4b..bc87b86 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/NoOp.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/NoOp.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/NotOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/NotOperator.java
index 52c718a..2976050 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/NotOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/NotOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/OrAssignmentOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/OrAssignmentOperator.java
index 220c490..daec899 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/OrAssignmentOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/OrAssignmentOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/OrOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/OrOperator.java
index 0321a47..334b77f 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/OrOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/OrOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PlusAssignmentOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PlusAssignmentOperator.java
index 33f9cd0..e5e8d30 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PlusAssignmentOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PlusAssignmentOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PlusOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PlusOperator.java
index 38e9b59..8390485 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PlusOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PlusOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/Pop.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/Pop.java
index 010f879..c02be29 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/Pop.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/Pop.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -39,7 +39,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.eval.ast.instructions.Instruction#getSize
 	 * ()
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PostfixMinusMinusOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PostfixMinusMinusOperator.java
index 3341d7d..ee2a843 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PostfixMinusMinusOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PostfixMinusMinusOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PostfixPlusPlusOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PostfixPlusPlusOperator.java
index d47c133..f9743e4 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PostfixPlusPlusOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PostfixPlusPlusOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PrefixMinusMinusOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PrefixMinusMinusOperator.java
index 5fa8da0..a541831 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PrefixMinusMinusOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PrefixMinusMinusOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PrefixPlusPlusOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PrefixPlusPlusOperator.java
index b456f90..915457d 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PrefixPlusPlusOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PrefixPlusPlusOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushArrayLength.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushArrayLength.java
index 7d157fb..5a77409 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushArrayLength.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushArrayLength.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushArrayType.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushArrayType.java
index 6694619..f3ec5a4 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushArrayType.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushArrayType.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushBoolean.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushBoolean.java
index 4f253ae..d2b84e2 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushBoolean.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushBoolean.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushChar.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushChar.java
index 1a3dcad..fbaeefb 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushChar.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushChar.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushClassLiteralValue.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushClassLiteralValue.java
index 73c2fd8..dfbe49e 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushClassLiteralValue.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushClassLiteralValue.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushDouble.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushDouble.java
index ee89be4..ac7a946 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushDouble.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushDouble.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushFieldVariable.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushFieldVariable.java
index ea7764f..2053618 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushFieldVariable.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushFieldVariable.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2015 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -17,7 +17,6 @@
 import org.eclipse.jdt.debug.core.IJavaObject;
 import org.eclipse.jdt.debug.core.IJavaVariable;
 import org.eclipse.jdt.internal.debug.core.JDIDebugPlugin;
-import org.eclipse.jdt.internal.debug.core.model.JDIClassType;
 import org.eclipse.jdt.internal.debug.core.model.JDINullValue;
 import org.eclipse.jdt.internal.debug.core.model.JDIObjectValue;
 import org.eclipse.jdt.internal.debug.eval.ast.engine.IRuntimeContext;
@@ -56,17 +55,15 @@
 					JDIDebugPlugin.getUniqueIdentifier(), IStatus.OK,
 					InstructionsEvaluationMessages.PushFieldVariable_0, null));
 		}
+		IJavaObject receiver = (IJavaObject) value;
+
 		IJavaVariable field = null;
-		if (value instanceof JDIClassType ) {
-			field = ((JDIClassType) value).getField(fName);
-		} else if (value instanceof IJavaObject){
-			IJavaObject receiver = (IJavaObject) value;
-			if (fDeclaringTypeSignature == null) {
-				field = ((JDIObjectValue) receiver).getField(fName,
-						fSuperClassLevel);
-			} else {
-				field = receiver.getField(fName, fDeclaringTypeSignature);
-			}
+
+		if (fDeclaringTypeSignature == null) {
+			field = ((JDIObjectValue) receiver).getField(fName,
+					fSuperClassLevel);
+		} else {
+			field = receiver.getField(fName, fDeclaringTypeSignature);
 		}
 
 		if (field == null) {
@@ -91,7 +88,7 @@
 							IStatus.OK,
 							NLS.bind(InstructionsEvaluationMessages.PushFieldVariable_Cannot_find_the_field__0__for_the_object__1__1,
 											new String[] { fName,
-													value.toString() }),
+													receiver.toString() }),
 							null)); //
 		}
 		push(field);
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushFloat.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushFloat.java
index 68169ed..04408a9 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushFloat.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushFloat.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushInt.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushInt.java
index 9489381..309df6d 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushInt.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushInt.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushLocalVariable.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushLocalVariable.java
index 827b31e..c91820a 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushLocalVariable.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushLocalVariable.java
@@ -72,7 +72,7 @@
 
 	/**
 	 * Returns the name of the variable to push onto the stack.
-	 * 
+	 *
 	 * @return the name of the variable to push onto the stack
 	 */
 	protected String getName() {
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushLong.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushLong.java
index 799a682..f1cf72d 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushLong.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushLong.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushNull.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushNull.java
index 670eb70..263002a 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushNull.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushNull.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushPrimitiveType.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushPrimitiveType.java
index eb81df0..2984963 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushPrimitiveType.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushPrimitiveType.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -14,7 +14,7 @@
 
 /**
  * Pushes a primitive type onto the stack.
- * 
+ *
  * @since 3.4
  */
 public class PushPrimitiveType extends SimpleInstruction {
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushString.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushString.java
index 48b1d45..e982e52 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushString.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushString.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushThis.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushThis.java
index f933ab0..3a53829 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushThis.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushThis.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushType.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushType.java
index 641101c..fb1c575 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushType.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/PushType.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/RemainderAssignmentOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/RemainderAssignmentOperator.java
index 684f808..9b69ca5 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/RemainderAssignmentOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/RemainderAssignmentOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/RemainderOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/RemainderOperator.java
index ef31878..1cfee87 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/RemainderOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/RemainderOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/ReturnInstruction.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/ReturnInstruction.java
index b34e97d..b5a8ccc 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/ReturnInstruction.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/ReturnInstruction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -14,7 +14,7 @@
 
 	/**
 	 * Constructor for ReturnInstruction.
-	 * 
+	 *
 	 * @param start
 	 */
 	public ReturnInstruction(int start) {
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/RightShiftAssignmentOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/RightShiftAssignmentOperator.java
index d007172..c0cfdee 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/RightShiftAssignmentOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/RightShiftAssignmentOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/RightShiftOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/RightShiftOperator.java
index 18ebf86..9c3c559 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/RightShiftOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/RightShiftOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/RuntimeSignature.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/RuntimeSignature.java
index cfe3b87..297e6d7 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/RuntimeSignature.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/RuntimeSignature.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/SendMessage.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/SendMessage.java
index cbcd065..02811f9 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/SendMessage.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/SendMessage.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2012 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -44,9 +44,7 @@
 		IJavaValue[] args = new IJavaValue[fArgCount];
 		// args are in reverse order
 		for (int i = fArgCount - 1; i >= 0; i--) {
-			Object popValue = popValue();
-			if ((popValue instanceof IJavaValue))
-				args[i] = (IJavaValue) popValue;
+			args[i] = popValue();
 		}
 		Object receiver = pop();
 		IJavaValue result = null;
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/SendStaticMessage.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/SendStaticMessage.java
index a26c735..75925f7 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/SendStaticMessage.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/SendStaticMessage.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2015 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -46,9 +46,7 @@
 		IJavaValue[] args = new IJavaValue[fArgCount];
 		// args are in reverse order
 		for (int i = fArgCount - 1; i >= 0; i--) {
-			Object popValue = popValue();
-			if ((popValue instanceof IJavaValue))
-				args[i] = (IJavaValue) popValue;
+			args[i] = popValue();
 		}
 
 		IJavaType receiver = getType(fTypeName);
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/SimpleInstruction.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/SimpleInstruction.java
index 8512282..7951e41 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/SimpleInstruction.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/SimpleInstruction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/ThrowInstruction.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/ThrowInstruction.java
index f45e2ae..b63bf7c 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/ThrowInstruction.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/ThrowInstruction.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/TwiddleOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/TwiddleOperator.java
index 85e4d67..3e3b856 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/TwiddleOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/TwiddleOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/UnaryMinusOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/UnaryMinusOperator.java
index 06041fa..fea8903 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/UnaryMinusOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/UnaryMinusOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/UnaryOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/UnaryOperator.java
index 1de1a11..7904cdc 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/UnaryOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/UnaryOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/UnaryPlusOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/UnaryPlusOperator.java
index 2dfc0be..99d03ff 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/UnaryPlusOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/UnaryPlusOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/UnsignedRightShiftAssignmentOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/UnsignedRightShiftAssignmentOperator.java
index 7008f96..e3d7bd6 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/UnsignedRightShiftAssignmentOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/UnsignedRightShiftAssignmentOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/UnsignedRightShiftOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/UnsignedRightShiftOperator.java
index e36f488..be51f24 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/UnsignedRightShiftOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/UnsignedRightShiftOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/Value.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/Value.java
index febf9a4..1229870 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/Value.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/Value.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -23,7 +23,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.eval.ast.instructions.Instruction#execute
 	 * ()
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/XfixOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/XfixOperator.java
index 2355cc8..036653d 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/XfixOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/XfixOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/XorAssignmentOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/XorAssignmentOperator.java
index 9b43567..e87e53e 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/XorAssignmentOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/XorAssignmentOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/XorOperator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/XorOperator.java
index 7beca7a..1323a44 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/XorOperator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/XorOperator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/AbsentInformationException.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/AbsentInformationException.java
index ca0625e..2609a46 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/AbsentInformationException.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/AbsentInformationException.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Accessible.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Accessible.java
index 5fc51fc..d10919c 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Accessible.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Accessible.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ArrayReference.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ArrayReference.java
index e0aa7e8..b5b7334 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ArrayReference.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ArrayReference.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ArrayType.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ArrayType.java
index 95214d5..72c4170 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ArrayType.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ArrayType.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/BooleanType.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/BooleanType.java
index b35d356..e8fe4ae 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/BooleanType.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/BooleanType.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/BooleanValue.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/BooleanValue.java
index a0224a8..6c44d97 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/BooleanValue.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/BooleanValue.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Bootstrap.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Bootstrap.java
index d259acc..af7efe9 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Bootstrap.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Bootstrap.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ByteType.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ByteType.java
index 224d65d..fdcbee5 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ByteType.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ByteType.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ByteValue.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ByteValue.java
index 2bc615a..6752466 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ByteValue.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ByteValue.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/CharType.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/CharType.java
index f868772..bb9375b 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/CharType.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/CharType.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/CharValue.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/CharValue.java
index 347756d..33ab55a 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/CharValue.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/CharValue.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ClassLoaderReference.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ClassLoaderReference.java
index 834cb58..4fdaca5 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ClassLoaderReference.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ClassLoaderReference.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ClassNotLoadedException.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ClassNotLoadedException.java
index 36c4e87..5289f99 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ClassNotLoadedException.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ClassNotLoadedException.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ClassNotPreparedException.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ClassNotPreparedException.java
index 40f8231..778df65 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ClassNotPreparedException.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ClassNotPreparedException.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ClassObjectReference.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ClassObjectReference.java
index ad8a8a4..0a378ef 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ClassObjectReference.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ClassObjectReference.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ClassType.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ClassType.java
index 963f02c..046e4b8 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ClassType.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ClassType.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/DoubleType.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/DoubleType.java
index e243a70..b7ea3e1 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/DoubleType.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/DoubleType.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/DoubleValue.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/DoubleValue.java
index 245974b..72fd483 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/DoubleValue.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/DoubleValue.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Field.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Field.java
index e0c0a82..fa84384 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Field.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Field.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/FloatType.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/FloatType.java
index 69cf955..e633176 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/FloatType.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/FloatType.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/FloatValue.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/FloatValue.java
index e57a786..40a50e0 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/FloatValue.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/FloatValue.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/IncompatibleThreadStateException.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/IncompatibleThreadStateException.java
index 18dc852..d87da64 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/IncompatibleThreadStateException.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/IncompatibleThreadStateException.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/InconsistentDebugInfoException.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/InconsistentDebugInfoException.java
index e9660fe..68ea2c5 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/InconsistentDebugInfoException.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/InconsistentDebugInfoException.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/IntegerType.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/IntegerType.java
index 7fa6c65..091d1b0 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/IntegerType.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/IntegerType.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/IntegerValue.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/IntegerValue.java
index 3785fc5..68d3cd5 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/IntegerValue.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/IntegerValue.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/InterfaceType.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/InterfaceType.java
index 9b73e01..7267cf6 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/InterfaceType.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/InterfaceType.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jesper Steen Møller <jesper@selskabet.org> - Bug 430839
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/InternalException.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/InternalException.java
index 3a3f6ba..89447ec 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/InternalException.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/InternalException.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/InvalidCodeIndexException.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/InvalidCodeIndexException.java
index 176e44c..ca81ff9 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/InvalidCodeIndexException.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/InvalidCodeIndexException.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/InvalidLineNumberException.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/InvalidLineNumberException.java
index 183d987..41d5318 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/InvalidLineNumberException.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/InvalidLineNumberException.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/InvalidStackFrameException.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/InvalidStackFrameException.java
index 1e3b0c6..4273777 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/InvalidStackFrameException.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/InvalidStackFrameException.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/InvalidTypeException.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/InvalidTypeException.java
index 9079e08..0373b01 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/InvalidTypeException.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/InvalidTypeException.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/InvocationException.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/InvocationException.java
index 3f01e2e..d6bf6e1 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/InvocationException.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/InvocationException.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/JDIPermission.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/JDIPermission.java
index ffa4b3a..9afb9bd 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/JDIPermission.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/JDIPermission.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/LocalVariable.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/LocalVariable.java
index f4d062e..6e0e3b5 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/LocalVariable.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/LocalVariable.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Locatable.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Locatable.java
index 1ff8e79..3429562 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Locatable.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Locatable.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Location.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Location.java
index 4bc3aba..829d260 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Location.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Location.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/LongType.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/LongType.java
index 2f28ae1..5aee0db 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/LongType.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/LongType.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/LongValue.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/LongValue.java
index 8e2a93f..f9e80fd 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/LongValue.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/LongValue.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Method.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Method.java
index a880703..7a111ce 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Method.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Method.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Mirror.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Mirror.java
index 2ea3f6a..4ca309c 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Mirror.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Mirror.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/MonitorInfo.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/MonitorInfo.java
index 02a937d..d5a5db8 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/MonitorInfo.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/MonitorInfo.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/NativeMethodException.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/NativeMethodException.java
index 6996a8b..fde6f91 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/NativeMethodException.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/NativeMethodException.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ObjectCollectedException.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ObjectCollectedException.java
index 8fec828..961cab4 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ObjectCollectedException.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ObjectCollectedException.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/PathSearchingVirtualMachine.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/PathSearchingVirtualMachine.java
index d4d304d..7dd4fdb 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/PathSearchingVirtualMachine.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/PathSearchingVirtualMachine.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/PrimitiveType.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/PrimitiveType.java
index 7b150af..7f0bb56 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/PrimitiveType.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/PrimitiveType.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/PrimitiveValue.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/PrimitiveValue.java
index ffd8367..9209367 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/PrimitiveValue.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/PrimitiveValue.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ShortType.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ShortType.java
index cf66fe4..2cfbd86 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ShortType.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ShortType.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ShortValue.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ShortValue.java
index 002c71e..a96889e 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ShortValue.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ShortValue.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/StringReference.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/StringReference.java
index 9b5d811..8ea8a83 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/StringReference.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/StringReference.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ThreadGroupReference.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ThreadGroupReference.java
index 8db51cc..ebcf2c6 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ThreadGroupReference.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/ThreadGroupReference.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Type.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Type.java
index 63d80be..311f56c 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Type.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Type.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/TypeComponent.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/TypeComponent.java
index 781e6bb..b4bebcb 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/TypeComponent.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/TypeComponent.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/VMCannotBeModifiedException.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/VMCannotBeModifiedException.java
index f5d4bc4..fff82ab 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/VMCannotBeModifiedException.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/VMCannotBeModifiedException.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/VMDisconnectedException.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/VMDisconnectedException.java
index 219053d..2887572 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/VMDisconnectedException.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/VMDisconnectedException.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/VMMismatchException.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/VMMismatchException.java
index 8148759..ff0032f 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/VMMismatchException.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/VMMismatchException.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/VMOutOfMemoryException.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/VMOutOfMemoryException.java
index be96116..e2ea443 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/VMOutOfMemoryException.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/VMOutOfMemoryException.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Value.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Value.java
index 54116e9..86f35fc 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Value.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/Value.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/VirtualMachineManager.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/VirtualMachineManager.java
index db1f3e2..7d043a3 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/VirtualMachineManager.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/VirtualMachineManager.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/VoidType.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/VoidType.java
index 0ab1a84..0033773 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/VoidType.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/VoidType.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/VoidValue.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/VoidValue.java
index 00a9740..cb78778 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/VoidValue.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/VoidValue.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/AttachingConnector.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/AttachingConnector.java
index 31b08d0..6a159d8 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/AttachingConnector.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/AttachingConnector.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/Connector.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/Connector.java
index 414353e..3cdd615 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/Connector.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/Connector.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/IllegalConnectorArgumentsException.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/IllegalConnectorArgumentsException.java
index db3981f..ef1e0f6 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/IllegalConnectorArgumentsException.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/IllegalConnectorArgumentsException.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -31,7 +31,7 @@
 
 	public IllegalConnectorArgumentsException(String message, String argName) {
 		super(message);
-		fNames = new ArrayList<String>(1);
+		fNames = new ArrayList<>(1);
 		fNames.add(argName);
 	}
 
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/LaunchingConnector.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/LaunchingConnector.java
index 3b77e88..4e8f11a 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/LaunchingConnector.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/LaunchingConnector.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/ListeningConnector.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/ListeningConnector.java
index 0584abc..d6d6d01 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/ListeningConnector.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/ListeningConnector.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/Transport.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/Transport.java
index 1d78c23..de19f31 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/Transport.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/Transport.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/TransportTimeoutException.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/TransportTimeoutException.java
index 6339c74..a0909d3 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/TransportTimeoutException.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/TransportTimeoutException.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/VMStartException.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/VMStartException.java
index 40ecc9e..35b685d 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/VMStartException.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/VMStartException.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/spi/ClosedConnectionException.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/spi/ClosedConnectionException.java
index e5182f4..a497fbb 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/spi/ClosedConnectionException.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/spi/ClosedConnectionException.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/spi/Connection.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/spi/Connection.java
index c61a5ee..6d13bff 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/spi/Connection.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/spi/Connection.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/spi/TransportService.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/spi/TransportService.java
index 609d7d0..b4db216 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/spi/TransportService.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/connect/spi/TransportService.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/AccessWatchpointEvent.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/AccessWatchpointEvent.java
index 220d2a7..496cc60 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/AccessWatchpointEvent.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/AccessWatchpointEvent.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/BreakpointEvent.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/BreakpointEvent.java
index e7a8923..7e6e073 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/BreakpointEvent.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/BreakpointEvent.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/ClassPrepareEvent.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/ClassPrepareEvent.java
index cc222ac..ccac13b 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/ClassPrepareEvent.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/ClassPrepareEvent.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/ClassUnloadEvent.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/ClassUnloadEvent.java
index 5b7cab2..42dd4b8 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/ClassUnloadEvent.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/ClassUnloadEvent.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/Event.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/Event.java
index 4a5134b..eda4e6b 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/Event.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/Event.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/EventIterator.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/EventIterator.java
index ea17178..c3ad8c9 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/EventIterator.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/EventIterator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/EventQueue.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/EventQueue.java
index bc74c07..520bac0 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/EventQueue.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/EventQueue.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/EventSet.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/EventSet.java
index deb72f4..40178e8 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/EventSet.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/EventSet.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/ExceptionEvent.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/ExceptionEvent.java
index 2385d76..6fa47c5 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/ExceptionEvent.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/ExceptionEvent.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/LocatableEvent.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/LocatableEvent.java
index cd779c3..4b8e162 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/LocatableEvent.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/LocatableEvent.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/MethodEntryEvent.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/MethodEntryEvent.java
index 849ad6d..b29d1a7 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/MethodEntryEvent.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/MethodEntryEvent.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/ModificationWatchpointEvent.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/ModificationWatchpointEvent.java
index 5c9cf26..b21b371 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/ModificationWatchpointEvent.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/ModificationWatchpointEvent.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/MonitorContendedEnterEvent.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/MonitorContendedEnterEvent.java
index b40453a..aaa9fba 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/MonitorContendedEnterEvent.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/MonitorContendedEnterEvent.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/MonitorContendedEnteredEvent.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/MonitorContendedEnteredEvent.java
index 6d08541..b254810 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/MonitorContendedEnteredEvent.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/MonitorContendedEnteredEvent.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/MonitorWaitEvent.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/MonitorWaitEvent.java
index abbac25..0bc7a2d 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/MonitorWaitEvent.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/MonitorWaitEvent.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/MonitorWaitedEvent.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/MonitorWaitedEvent.java
index d19decf..f6d051e 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/MonitorWaitedEvent.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/MonitorWaitedEvent.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/StepEvent.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/StepEvent.java
index 086b3ca..f371f5b 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/StepEvent.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/StepEvent.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/ThreadDeathEvent.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/ThreadDeathEvent.java
index 663bb87..b788258 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/ThreadDeathEvent.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/ThreadDeathEvent.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/ThreadStartEvent.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/ThreadStartEvent.java
index 5071afd..e386d98 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/ThreadStartEvent.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/ThreadStartEvent.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/VMDeathEvent.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/VMDeathEvent.java
index 10ed854..f19238a 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/VMDeathEvent.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/VMDeathEvent.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/VMDisconnectEvent.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/VMDisconnectEvent.java
index 2063a55..4dcf898 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/VMDisconnectEvent.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/VMDisconnectEvent.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/VMStartEvent.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/VMStartEvent.java
index e0f190e..8f97d74 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/VMStartEvent.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/VMStartEvent.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/WatchpointEvent.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/WatchpointEvent.java
index e2d986a..cac4b52 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/WatchpointEvent.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/event/WatchpointEvent.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/AccessWatchpointRequest.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/AccessWatchpointRequest.java
index 989194b..56060fb 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/AccessWatchpointRequest.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/AccessWatchpointRequest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/BreakpointRequest.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/BreakpointRequest.java
index 80261d7..94dc17d 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/BreakpointRequest.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/BreakpointRequest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/ClassUnloadRequest.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/ClassUnloadRequest.java
index 7162f55..fc4567a 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/ClassUnloadRequest.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/ClassUnloadRequest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/DuplicateRequestException.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/DuplicateRequestException.java
index d06a253..fe20e3e 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/DuplicateRequestException.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/DuplicateRequestException.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/EventRequest.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/EventRequest.java
index 0490569..08b39c7 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/EventRequest.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/EventRequest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/EventRequestManager.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/EventRequestManager.java
index 75134af..941de0e 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/EventRequestManager.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/EventRequestManager.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/ExceptionRequest.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/ExceptionRequest.java
index 16e1a4b..00b827a 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/ExceptionRequest.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/ExceptionRequest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/InvalidRequestStateException.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/InvalidRequestStateException.java
index 65c46a2..81dccfa 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/InvalidRequestStateException.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/InvalidRequestStateException.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/MethodEntryRequest.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/MethodEntryRequest.java
index b2298c0..8ee7324 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/MethodEntryRequest.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/MethodEntryRequest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/MethodExitRequest.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/MethodExitRequest.java
index 0649580..c76c461 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/MethodExitRequest.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/MethodExitRequest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/ModificationWatchpointRequest.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/ModificationWatchpointRequest.java
index 83431f4..e691d58 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/ModificationWatchpointRequest.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/ModificationWatchpointRequest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/MonitorContendedEnterRequest.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/MonitorContendedEnterRequest.java
index bb46e1f..92bce9a 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/MonitorContendedEnterRequest.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/MonitorContendedEnterRequest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/MonitorContendedEnteredRequest.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/MonitorContendedEnteredRequest.java
index eca31c6..301f5ae 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/MonitorContendedEnteredRequest.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/MonitorContendedEnteredRequest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/MonitorWaitRequest.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/MonitorWaitRequest.java
index 38ed2f8..ce7c029 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/MonitorWaitRequest.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/MonitorWaitRequest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/MonitorWaitedRequest.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/MonitorWaitedRequest.java
index 4b9819a..8db2231 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/MonitorWaitedRequest.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/MonitorWaitedRequest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/StepRequest.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/StepRequest.java
index 2a2ba5c..86d4e1d 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/StepRequest.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/StepRequest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/ThreadDeathRequest.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/ThreadDeathRequest.java
index 8dcb506..5a353a1 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/ThreadDeathRequest.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/ThreadDeathRequest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/ThreadStartRequest.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/ThreadStartRequest.java
index 669b6c5..9305e06 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/ThreadStartRequest.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/ThreadStartRequest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/VMDeathRequest.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/VMDeathRequest.java
index 86def1e..ab32de3 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/VMDeathRequest.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/VMDeathRequest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/WatchpointRequest.java b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/WatchpointRequest.java
index 7cfe279..c389cdf 100644
--- a/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/WatchpointRequest.java
+++ b/org.eclipse.jdt.debug/jdi interfaces/com/sun/jdi/request/WatchpointRequest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/Bootstrap.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/Bootstrap.java
index f0fec0b..216ec82 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/Bootstrap.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/Bootstrap.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/TimeoutException.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/TimeoutException.java
index 33403b6..33c53cb 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/TimeoutException.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/TimeoutException.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/VirtualMachine.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/VirtualMachine.java
index 6140a39..0879aad 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/VirtualMachine.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/VirtualMachine.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -13,7 +13,7 @@
 public interface VirtualMachine {
 	/**
 	 * Sets request timeout in milliseconds
-	 * 
+	 *
 	 * @param timeout the timeout for the request
 	 */
 	public void setRequestTimeout(int timeout);
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/EventRequestManager.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/EventRequestManager.java
index 1b44ae6..c160534 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/EventRequestManager.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/EventRequestManager.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -35,7 +35,7 @@
 	 * operation. This in recognition that the VM may be in an awkward state and
 	 * unable to comply. For example, execution is suspended in a native method
 	 * and the arguments would be unavailable on return .
-	 * 
+	 *
 	 * @param thread
 	 *            the thread in which to step
 	 * @return the created {@link ReenterStepRequest}
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/OperationRefusedException.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/OperationRefusedException.java
index 347bf97..85f4395 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/OperationRefusedException.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/OperationRefusedException.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/ReenterStepRequest.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/ReenterStepRequest.java
index c17b7c4..691dfc4 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/ReenterStepRequest.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/ReenterStepRequest.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -36,14 +36,14 @@
  * Note that other events may need to be reported as well (e.g., hit breakpoint
  * on first instruction). Execution does not reenter the caller at any point; so
  * no step out or step into events are reported.
- * 
+ *
  */
 public interface ReenterStepRequest extends StepRequest {
 	/**
 	 * Restricts the events generated by this request to those whose location is
 	 * in a class whose name does NOT match this restricted regular expression.
 	 * e.g. "java.*" or "*.Foo".
-	 * 
+	 *
 	 * @param classPattern
 	 *            the pattern String to filter against.
 	 */
@@ -53,7 +53,7 @@
 	/**
 	 * Restricts the events generated by this request to those whose location is
 	 * in this class..
-	 * 
+	 *
 	 * @param clazz
 	 *            the class to filter on.
 	 */
@@ -64,7 +64,7 @@
 	 * Restricts the events generated by this request to those whose location is
 	 * in a class whose name matches this restricted regular expression. e.g.
 	 * "java.*" or "*.Foo".
-	 * 
+	 *
 	 * @param classPattern
 	 *            the pattern String to filter for.
 	 */
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/ReferenceType.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/ReferenceType.java
index 935c657..b74deb3 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/ReferenceType.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/ReferenceType.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -54,16 +54,16 @@
 	 * <p>
 	 * @return the CRC-32 of the entire class file contents for this reference
 	 * type.
-	 * 
+	 *
 	 * @see org.eclipse.jdi.hcr.VirtualMachine#classesHaveChanged
 	 */
 	public int getClassFileVersion();
 
 	/**
 	 * Returns whether this reference type is eligible for hot code replacement.
-	 * 
+	 *
 	 * @return whether this reference type is eligible for hot code replacement
-	 * 
+	 *
 	 * @see org.eclipse.jdi.hcr.ReferenceType#getClassFileVersion
 	 */
 	public boolean isHCREligible();
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/ThreadReference.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/ThreadReference.java
index 4068992..735eeac 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/ThreadReference.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/ThreadReference.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -55,9 +55,9 @@
 	 * Note that a <code>finally</code> block manifests itself as (and is
 	 * indistinguishable from) a <code>catch Throwable</code> block.
 	 * <code>synchronized</code> statements also compile to a
-	 * <code> catch Throwable block<code>.The target program may inadventently 
-	 * end up catching this exception. 
-	 * 
+	 * <code> catch Throwable block<code>.The target program may inadventently
+	 * end up catching this exception.
+	 *
 	 * Since the choices each have their pros and cons, making the decision
 	 * is left to the debugger. However the later option is the  recommended choice.
 	 * <p>
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/VirtualMachine.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/VirtualMachine.java
index b28b81b..fb88bf1 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/VirtualMachine.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/VirtualMachine.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -24,7 +24,7 @@
 	/**
 	 * Determines if this implementation supports the early return of the top
 	 * stack frame of a thread.
-	 * 
+	 *
 	 * @return <code>true</code> if the feature is supported, <code>false</code>
 	 *         otherwise.
 	 */
@@ -33,7 +33,7 @@
 	/**
 	 * Determines if this implementation supports the retrieval of a class file
 	 * version.
-	 * 
+	 *
 	 * @return <code>true</code> if the feature is supported, <code>false</code>
 	 *         otherwise.
 	 */
@@ -41,7 +41,7 @@
 
 	/**
 	 * Determines if this implementation supports the reenter stepping.
-	 * 
+	 *
 	 * @return <code>true</code> if the feature is supported, <code>false</code>
 	 *         otherwise.
 	 */
@@ -50,7 +50,7 @@
 	/**
 	 * Determines if this implementation supports the replacement of classes on
 	 * the fly.
-	 * 
+	 *
 	 * @return <code>true</code> if the feature is supported, <code>false</code>
 	 *         otherwise.
 	 */
@@ -144,7 +144,7 @@
 	 * whether it was ignored (for example if the VM doesn't support this kind
 	 * of replacement), or whether the operation failed and the VM should be
 	 * restarted
-	 * 
+	 *
 	 */
 	public int classesHaveChanged(String[] arg1);
 }
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/AccessibleImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/AccessibleImpl.java
index c4e3464..7aedc04 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/AccessibleImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/AccessibleImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,7 +18,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public abstract class AccessibleImpl extends MirrorImpl implements Accessible {
 	/** Modifier bit flag: Is synthetic. see MODIFIER_ACC_SYNTHETIC. */
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ArrayReferenceImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ArrayReferenceImpl.java
index 81782f4..090eaf3 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ArrayReferenceImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ArrayReferenceImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -35,7 +35,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class ArrayReferenceImpl extends ObjectReferenceImpl implements
 		ArrayReference {
@@ -83,8 +83,8 @@
 
 	/**
 	 * Gets all of the values starting at firstIndex and ending at firstIndex+length
-	 *  
-	 * @param firstIndex the start 
+	 *
+	 * @param firstIndex the start
 	 * @param length the  number of values to return
 	 * @return the list of {@link Value}s
 	 * @throws IndexOutOfBoundsException if the index is outside the bounds of the array
@@ -182,14 +182,14 @@
 	/**
 	 * Reads the given length of objects from the given stream
 	 * @param length the number of objects to read
-	 * @param in the stream to read from 
+	 * @param in the stream to read from
 	 * @return the {@link List} of {@link ValueImpl}s
 	 * @throws IOException if the reading fails
 	 * @returns Returns sequence of object reference values.
 	 */
 	private List<Value> readObjectSequence(int length, DataInputStream in)
 			throws IOException {
-		List<Value> elements = new ArrayList<Value>(length);
+		List<Value> elements = new ArrayList<>(length);
 		for (int i = 0; i < length; i++) {
 			ValueImpl value = ObjectReferenceImpl
 					.readObjectRefWithTag(this, in);
@@ -211,7 +211,7 @@
 	 */
 	private List<Value> readPrimitiveSequence(int length, int type, DataInputStream in)
 			throws IOException {
-		List<Value> elements = new ArrayList<Value>(length);
+		List<Value> elements = new ArrayList<>(length);
 		for (int i = 0; i < length; i++) {
 			ValueImpl value = ValueImpl.readWithoutTag(this, type, in);
 			elements.add(value);
@@ -231,7 +231,7 @@
 						JdwpCommandPacket.AR_LENGTH, this);
 				defaultReplyErrorHandler(replyPacket.errorCode());
 				DataInputStream replyData = replyPacket.dataInStream();
-				fLength = readInt("length", replyData); //$NON-NLS-1$ 
+				fLength = readInt("length", replyData); //$NON-NLS-1$
 			} catch (IOException e) {
 				defaultIOExceptionHandler(e);
 				return 0;
@@ -244,7 +244,7 @@
 
 	/**
 	 * Replaces an array component with another value.
-	 * 
+	 *
 	 * @param index
 	 *            the index to set the value in
 	 * @param value
@@ -260,14 +260,14 @@
 	@Override
 	public void setValue(int index, Value value) throws InvalidTypeException,
 			ClassNotLoadedException {
-		ArrayList<Value> list = new ArrayList<Value>(1);
+		ArrayList<Value> list = new ArrayList<>(1);
 		list.add(value);
 		setValues(index, list, 0, 1);
 	}
 
 	/**
 	 * Replaces all array components with other values.
-	 * 
+	 *
 	 * @param values
 	 *            the new values to set in the array
 	 * @throws InvalidTypeException
@@ -286,7 +286,7 @@
 
 	/**
 	 * Replaces a range of array components with other values.
-	 * 
+	 *
 	 * @param index
 	 *            offset in this array to start replacing values at
 	 * @param values
@@ -383,7 +383,7 @@
 	/**
 	 * Check the type and the VM of the values. If the given type is a primitive
 	 * type, the values may be converted to match this type.
-	 * 
+	 *
 	 * @param values
 	 *            the value(s) to check
 	 * @param type
@@ -392,12 +392,12 @@
 	 * @throws InvalidTypeException
 	 *             if the underlying type of an object in the list is not
 	 *             compatible
-	 * 
+	 *
 	 * @see ValueImpl#checkValue(Value, Type, VirtualMachineImpl)
 	 */
 	private List<Value> checkValues(List<? extends Value> values, Type type)
 			throws InvalidTypeException {
-		List<Value> checkedValues = new ArrayList<Value>(values.size());
+		List<Value> checkedValues = new ArrayList<>(values.size());
 		Iterator<? extends Value> iterValues = values.iterator();
 		while (iterValues.hasNext()) {
 			checkedValues.add(ValueImpl.checkValue(iterValues.next(),
@@ -408,7 +408,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdi.internal.ObjectReferenceImpl#toString()
 	 */
 	@Override
@@ -423,7 +423,7 @@
 			return buf.toString();
 		} catch (ObjectCollectedException e) {
 			return JDIMessages.ArrayReferenceImpl__Garbage_Collected__ArrayReference_5
-					+ "[" + length() + "] " + idString(); //$NON-NLS-1$ //$NON-NLS-2$ 
+					+ "[" + length() + "] " + idString(); //$NON-NLS-1$ //$NON-NLS-2$
 		} catch (Exception e) {
 			return fDescription;
 		}
@@ -431,7 +431,7 @@
 
 	/**
 	 * Reads JDWP representation and returns new instance.
-	 * 
+	 *
 	 * @param target
 	 *            the target {@link Mirror} object
 	 * @param in
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ArrayTypeImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ArrayTypeImpl.java
index fb1f33f..a81b1a4 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ArrayTypeImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ArrayTypeImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -39,7 +39,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class ArrayTypeImpl extends ReferenceTypeImpl implements ArrayType {
 	/** JDWP Tag. */
@@ -216,7 +216,7 @@
 	@Override
 	public Map<Field, Value> getValues(List<? extends Field> fields) {
 		if (fields.isEmpty()) {
-			return new HashMap<Field, Value>();
+			return new HashMap<>();
 		}
 
 		throw new IllegalArgumentException(
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/BooleanTypeImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/BooleanTypeImpl.java
index 369d3b9..1c5fe01 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/BooleanTypeImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/BooleanTypeImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -16,7 +16,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class BooleanTypeImpl extends PrimitiveTypeImpl implements BooleanType {
 	/**
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/BooleanValueImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/BooleanValueImpl.java
index c858dee..69bcb34 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/BooleanValueImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/BooleanValueImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -22,7 +22,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class BooleanValueImpl extends PrimitiveValueImpl implements
 		BooleanValue {
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ByteTypeImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ByteTypeImpl.java
index 12d7fa2..8bb8b39 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ByteTypeImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ByteTypeImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -16,7 +16,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class ByteTypeImpl extends PrimitiveTypeImpl implements ByteType {
 	/**
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ByteValueImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ByteValueImpl.java
index bc37193..8a28c5d 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ByteValueImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ByteValueImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -22,7 +22,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class ByteValueImpl extends PrimitiveValueImpl implements ByteValue, Comparable<ByteValue> {
 	/** JDWP Tag. */
@@ -52,7 +52,7 @@
 	public int compareTo(ByteValue o) {
 		return ((Byte)byteValue()).compareTo(o.byteValue());
 	}
-	
+
 	/**
 	 * @returns type of value.
 	 */
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/CharTypeImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/CharTypeImpl.java
index b322805..939737c 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/CharTypeImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/CharTypeImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -16,7 +16,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class CharTypeImpl extends PrimitiveTypeImpl implements CharType {
 	/**
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/CharValueImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/CharValueImpl.java
index 06c4668..0203857 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/CharValueImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/CharValueImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -22,7 +22,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class CharValueImpl extends PrimitiveValueImpl implements CharValue, Comparable<CharValue> {
 	/** JDWP Tag. */
@@ -58,7 +58,7 @@
 	public int compareTo(CharValue o) {
 		return ((Character)charValue()).compareTo(o.charValue());
 	}
-	
+
 	/**
 	 * @returns Value.
 	 */
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ClassLoaderReferenceImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ClassLoaderReferenceImpl.java
index 460844f..047ae22 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ClassLoaderReferenceImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ClassLoaderReferenceImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -28,7 +28,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class ClassLoaderReferenceImpl extends ObjectReferenceImpl implements ClassLoaderReference {
 	/** JDWP Tag. */
@@ -58,7 +58,7 @@
 	public List<ReferenceType> definedClasses() {
 		// Note that this information should not be cached.
 		List<ReferenceType> visibleClasses = visibleClasses();
-		List<ReferenceType> result = new ArrayList<ReferenceType>(visibleClasses.size());
+		List<ReferenceType> result = new ArrayList<>(visibleClasses.size());
 		Iterator<ReferenceType> iter = visibleClasses.iterator();
 		while (iter.hasNext()) {
 			try {
@@ -87,7 +87,7 @@
 			defaultReplyErrorHandler(replyPacket.errorCode());
 			DataInputStream replyData = replyPacket.dataInStream();
 			int nrOfElements = readInt("elements", replyData); //$NON-NLS-1$
-			List<ReferenceType> elements = new ArrayList<ReferenceType>(nrOfElements);
+			List<ReferenceType> elements = new ArrayList<>(nrOfElements);
 			for (int i = 0; i < nrOfElements; i++) {
 				ReferenceTypeImpl elt = ReferenceTypeImpl.readWithTypeTag(this, replyData);
 				if (elt == null)
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ClassObjectReferenceImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ClassObjectReferenceImpl.java
index e235236..a812329 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ClassObjectReferenceImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ClassObjectReferenceImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -24,7 +24,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class ClassObjectReferenceImpl extends ObjectReferenceImpl implements
 		ClassObjectReference {
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ClassTypeImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ClassTypeImpl.java
index 9a20028..9989725 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ClassTypeImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ClassTypeImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jesper Steen Møller <jesper@selskabet.org> - Bug 430839
@@ -41,7 +41,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class ClassTypeImpl extends ReferenceTypeImpl implements ClassType {
 
@@ -274,7 +274,7 @@
 	@Override
 	public List<ClassType> subclasses() {
 		// Note that this information should not be cached.
-		List<ClassType> subclasses = new ArrayList<ClassType>();
+		List<ClassType> subclasses = new ArrayList<>();
 		Iterator<ReferenceType> itr = virtualMachineImpl().allRefTypes();
 		while (itr.hasNext()) {
 			try {
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/DoubleTypeImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/DoubleTypeImpl.java
index 0525ecf..a58f3a3 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/DoubleTypeImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/DoubleTypeImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -16,7 +16,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class DoubleTypeImpl extends PrimitiveTypeImpl implements DoubleType {
 	/**
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/DoubleValueImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/DoubleValueImpl.java
index c0ac822..25d3672 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/DoubleValueImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/DoubleValueImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -22,7 +22,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class DoubleValueImpl extends PrimitiveValueImpl implements DoubleValue, Comparable<DoubleValue> {
 	/** JDWP Tag. */
@@ -58,7 +58,7 @@
 	public int compareTo(DoubleValue o) {
 		return ((Double)doubleValue()).compareTo(o.doubleValue());
 	}
-	
+
 	/**
 	 * @returns Value.
 	 */
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/FieldImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/FieldImpl.java
index a8d4ebd..814f6a0 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/FieldImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/FieldImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -23,7 +23,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class FieldImpl extends TypeComponentImpl implements Field {
 	/** ID that corresponds to this reference. */
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/FloatTypeImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/FloatTypeImpl.java
index a421a4e..a16bfbe 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/FloatTypeImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/FloatTypeImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -16,7 +16,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class FloatTypeImpl extends PrimitiveTypeImpl implements FloatType {
 	/**
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/FloatValueImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/FloatValueImpl.java
index cef4ed5..6f6064e 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/FloatValueImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/FloatValueImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -22,7 +22,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class FloatValueImpl extends PrimitiveValueImpl implements FloatValue, Comparable<FloatValue> {
 	/** JDWP Tag. */
@@ -58,7 +58,7 @@
 	public int compareTo(FloatValue o) {
 		return ((Float)floatValue()).compareTo(o.floatValue());
 	}
-	
+
 	/**
 	 * @returns Value.
 	 */
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/GenericSignature.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/GenericSignature.java
index 46d21bc..bb9ec3c 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/GenericSignature.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/GenericSignature.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -43,7 +43,7 @@
 	}
 
 	private static List<String> getTypeSignatureList(String typeSignatureList) {
-		List<String> list = new ArrayList<String>();
+		List<String> list = new ArrayList<>();
 		int pos = 0;
 		while (pos < typeSignatureList.length()) {
 			int signatureLength = nextTypeSignatureLength(typeSignatureList, pos);
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/IntegerTypeImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/IntegerTypeImpl.java
index ad8e5b8..c33998a 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/IntegerTypeImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/IntegerTypeImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -16,7 +16,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class IntegerTypeImpl extends PrimitiveTypeImpl implements IntegerType {
 	/**
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/IntegerValueImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/IntegerValueImpl.java
index 6fd8234..fcdfbe6 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/IntegerValueImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/IntegerValueImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -22,7 +22,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class IntegerValueImpl extends PrimitiveValueImpl implements IntegerValue, Comparable<IntegerValue> {
 	/** JDWP Tag. */
@@ -58,7 +58,7 @@
 	public int compareTo(IntegerValue o) {
 		return ((Integer)intValue()).compareTo(o.intValue());
 	}
-	
+
 	/**
 	 * @returns Value.
 	 */
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/InterfaceTypeImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/InterfaceTypeImpl.java
index 868faf1..65137b9 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/InterfaceTypeImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/InterfaceTypeImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jesper Steen Møller <jesper@selskabet.org> - Bug 430839
@@ -37,7 +37,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class InterfaceTypeImpl extends ReferenceTypeImpl implements
 		InterfaceType {
@@ -104,7 +104,7 @@
 	@Override
 	public List<ClassType> implementors() {
 		// Note that this information should not be cached.
-		List<ClassType> implementors = new ArrayList<ClassType>();
+		List<ClassType> implementors = new ArrayList<>();
 		Iterator<ReferenceType> itr = virtualMachineImpl().allRefTypes();
 		while (itr.hasNext()) {
 			ReferenceType refType = itr.next();
@@ -129,7 +129,7 @@
 	@Override
 	public List<InterfaceType> subinterfaces() {
 		// Note that this information should not be cached.
-		List<InterfaceType> implementors = new ArrayList<InterfaceType>();
+		List<InterfaceType> implementors = new ArrayList<>();
 		Iterator<ReferenceType> itr = virtualMachineImpl().allRefTypes();
 		while (itr.hasNext()) {
 			try {
@@ -200,7 +200,7 @@
 		return null;
 	}
 
-	
+
 	/**
 	 * @return Returns true if this type has been initialized.
 	 */
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/LocalVariableImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/LocalVariableImpl.java
index 5af76a4..196d8d2 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/LocalVariableImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/LocalVariableImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -19,7 +19,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class LocalVariableImpl extends MirrorImpl implements LocalVariable, Comparable<LocalVariable> {
 	/** Method that holds local variable. */
@@ -65,7 +65,7 @@
 		fSlot = slot;
 		fIsArgument = isArgument;
 	}
-	
+
 	/**
 	 * @return Returns local variable's index in its frame.
 	 */
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/LocationImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/LocationImpl.java
index 3994014..be31ff8 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/LocationImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/LocationImpl.java
@@ -25,7 +25,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class LocationImpl extends MirrorImpl implements Location {
 	/** Line nr used if line numbers are not available. */
@@ -85,7 +85,7 @@
 		}
 		return false;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see java.lang.Comparable#compareTo(java.lang.Object)
 	 */
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/LongTypeImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/LongTypeImpl.java
index a7cc42f..d86d6a5 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/LongTypeImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/LongTypeImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -16,7 +16,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class LongTypeImpl extends PrimitiveTypeImpl implements LongType {
 	/**
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/LongValueImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/LongValueImpl.java
index 18f8f6d..6c9f734 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/LongValueImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/LongValueImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -22,7 +22,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class LongValueImpl extends PrimitiveValueImpl implements LongValue {
 	/** JDWP Tag. */
@@ -58,7 +58,7 @@
 	public int compareTo(LongValue o) {
 		return ((Long)longValue()).compareTo(o.longValue());
 	}
-	
+
 	/**
 	 * @returns Value.
 	 */
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/MethodImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/MethodImpl.java
index 7e8696c..b61d475 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/MethodImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/MethodImpl.java
@@ -173,8 +173,8 @@
 			fLowestValidCodeIndex = readLong("lowest index", replyData); //$NON-NLS-1$
 			fHighestValidCodeIndex = readLong("highest index", replyData); //$NON-NLS-1$
 			int nrOfElements = readInt("elements", replyData); //$NON-NLS-1$
-			fCodeIndexToLine = new HashMap<Long, Integer>();
-			fLineToCodeIndexes = new HashMap<Integer, List<Long>>();
+			fCodeIndexToLine = new HashMap<>();
+			fLineToCodeIndexes = new HashMap<>();
 			if (nrOfElements == 0) {
 				throw new AbsentInformationException(
 						JDIMessages.MethodImpl_Got_empty_line_number_table_for_this_method_3);
@@ -195,7 +195,7 @@
 
 				List<Long> lineNrEntry = fLineToCodeIndexes.get(lineNrInt);
 				if (lineNrEntry == null) {
-					lineNrEntry = new ArrayList<Long>();
+					lineNrEntry = new ArrayList<>();
 					fLineToCodeIndexes.put(lineNrInt, lineNrEntry);
 				}
 				lineNrEntry.add(lineCodeIndexLong);
@@ -267,7 +267,7 @@
 			return fArguments;
 		}
 
-		List<LocalVariable> result = new ArrayList<LocalVariable>();
+		List<LocalVariable> result = new ArrayList<>();
 		Iterator<LocalVariable> iter = variables().iterator();
 		while (iter.hasNext()) {
 			LocalVariable var = iter.next();
@@ -288,7 +288,7 @@
 			return fArgumentTypeNames;
 		}
 		List<String> argumentTypeSignatures = argumentTypeSignatures();
-		List<String> result = new ArrayList<String>();
+		List<String> result = new ArrayList<>();
 		for (Iterator<String> iter = argumentTypeSignatures.iterator(); iter.hasNext();) {
 			result.add(TypeImpl.signatureToName(iter.next()));
 		}
@@ -318,7 +318,7 @@
 		if (fArgumentTypes != null) {
 			return fArgumentTypes;
 		}
-		List<Type> result = new ArrayList<Type>();
+		List<Type> result = new ArrayList<>();
 		Iterator<String> iter = argumentTypeSignatures().iterator();
 		ClassLoaderReference classLoaderRef = declaringType().classLoader();
 		VirtualMachineImpl vm = virtualMachineImpl();
@@ -540,7 +540,7 @@
 			DataInputStream replyData = replyPacket.dataInStream();
 			fArgumentSlotsCount = readInt("arg count", replyData); //$NON-NLS-1$
 			int nrOfElements = readInt("elements", replyData); //$NON-NLS-1$
-			List<LocalVariable> variables = new ArrayList<LocalVariable>(nrOfElements);
+			List<LocalVariable> variables = new ArrayList<>(nrOfElements);
 			for (int i = 0; i < nrOfElements; i++) {
 				long codeIndex = readLong("code index", replyData); //$NON-NLS-1$
 				String name = readString("name", replyData); //$NON-NLS-1$
@@ -605,7 +605,7 @@
 		}
 		if (signatures.length > 0) {
 			fArgumentSlotsCount = signatures.length;
-			fVariables = new ArrayList<LocalVariable>(fArgumentSlotsCount);
+			fVariables = new ArrayList<>(fArgumentSlotsCount);
 			for (int i = 0; i < signatures.length; i++) {
 				String name = "arg" + i; //$NON-NLS-1$
 				LocalVariableImpl localVar = new LocalVariableImpl(virtualMachineImpl(), this, 0, name, signatures[i], genericSignatures[i], -1, slot, true);
@@ -625,7 +625,7 @@
 	@Override
 	public List<LocalVariable> variablesByName(String name) throws AbsentInformationException {
 		Iterator<LocalVariable> iter = variables().iterator();
-		List<LocalVariable> result = new ArrayList<LocalVariable>();
+		List<LocalVariable> result = new ArrayList<>();
 		while (iter.hasNext()) {
 			LocalVariable var = iter.next();
 			if (var.name().equals(name)) {
@@ -802,7 +802,7 @@
 
 	/**
 	 * @see Method#isObsolete()
-	 * 
+	 *
 	 *      The JDK 1.4.0 specification states that obsolete methods are given
 	 *      an ID of zero. It also states that when a method is redefined, the
 	 *      new method gets the ID of the old method. Thus, the JDWP query for
@@ -816,7 +816,7 @@
 		}
 		return false;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see com.sun.jdi.Method#allLineLocations(java.lang.String, java.lang.String)
 	 */
@@ -832,14 +832,14 @@
 		Map<String, List<Location>> sourceNameAllLineLocations = null;
 		if (fStratumAllLineLocations == null) { // the stratum map doesn't
 												// exist, create it
-			fStratumAllLineLocations = new HashMap<String, Map<String, List<Location>>>();
+			fStratumAllLineLocations = new HashMap<>();
 		} else {
 			// get the source name map
 			sourceNameAllLineLocations = fStratumAllLineLocations.get(stratum);
 		}
 		if (sourceNameAllLineLocations == null) { // the source name map doesn't
 													// exist, create it
-			sourceNameAllLineLocations = new HashMap<String, List<Location>>();
+			sourceNameAllLineLocations = new HashMap<>();
 			fStratumAllLineLocations.put(stratum, sourceNameAllLineLocations);
 		} else {
 			// get the line locations
@@ -873,7 +873,7 @@
 	 * the specified lines.
 	 */
 	protected List<Location> javaStratumLocationsOfLines(List<Integer> javaLines)	throws AbsentInformationException {
-		Set<Long> tmpLocations = new TreeSet<Long>();
+		Set<Long> tmpLocations = new TreeSet<>();
 		for (Iterator<Integer> iter = javaLines.iterator(); iter.hasNext();) {
 			Integer key = iter.next();
 			List<Long> indexes = javaStratumLineToCodeIndexes(key.intValue());
@@ -881,14 +881,14 @@
 				tmpLocations.addAll(indexes);
 			}
 		}
-		List<Location> locations = new ArrayList<Location>();
+		List<Location> locations = new ArrayList<>();
 		for (Iterator<Long> iter = tmpLocations.iterator(); iter.hasNext();) {
 			long index = iter.next().longValue();
 			int position = Arrays.binarySearch(fCodeIndexTable, index);
 			if(position < 0) {
 				//https://bugs.eclipse.org/bugs/show_bug.cgi?id=388172
-				//the key is not in the code index, we should not insert it as the line table is supposed to be 
-				//constant unless the parent class is redefined. 
+				//the key is not in the code index, we should not insert it as the line table is supposed to be
+				//constant unless the parent class is redefined.
 				//See http://docs.oracle.com/javase/6/docs/platform/jpda/jdwp/jdwp-protocol.html#JDWP_Method_LineTable for more information
 				continue;
 			}
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/MirrorImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/MirrorImpl.java
index c48176c..1fa24d6 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/MirrorImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/MirrorImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -39,7 +39,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class MirrorImpl implements Mirror {
 
@@ -177,7 +177,7 @@
 
 	/**
 	 * Performs a VM request.
-	 * 
+	 *
 	 * @return Returns reply data.
 	 */
 	public JdwpReplyPacket requestVM(int command, byte[] outData) {
@@ -220,7 +220,7 @@
 
 	/**
 	 * Performs a VM request.
-	 * 
+	 *
 	 * @return Returns reply data.
 	 */
 	public JdwpReplyPacket requestVM(int command, ByteArrayOutputStream outData) {
@@ -229,7 +229,7 @@
 
 	/**
 	 * Performs a VM request for a specified object.
-	 * 
+	 *
 	 * @return Returns reply data.
 	 */
 	public JdwpReplyPacket requestVM(int command, ObjectReferenceImpl object) {
@@ -245,7 +245,7 @@
 
 	/**
 	 * Performs a VM request for a specified object.
-	 * 
+	 *
 	 * @return Returns reply data.
 	 */
 	public JdwpReplyPacket requestVM(int command, ReferenceTypeImpl refType) {
@@ -261,7 +261,7 @@
 
 	/**
 	 * Performs a VM request.
-	 * 
+	 *
 	 * @return Returns reply data.
 	 */
 	public JdwpReplyPacket requestVM(int command) {
@@ -313,7 +313,7 @@
 
 	/**
 	 * Waits for a specified command packet from the VM.
-	 * 
+	 *
 	 * @return Returns Command Packet from VM.
 	 */
 	public final JdwpCommandPacket getCommandVM(int command, long timeout)
@@ -346,7 +346,7 @@
 
 	/**
 	 * Reads Jdwp data and, if verbose is on, outputs verbose info.
-	 * 
+	 *
 	 * @return Returns value that has been read.
 	 */
 	public byte readByte(String description, DataInputStream in)
@@ -360,7 +360,7 @@
 
 	/**
 	 * Reads Jdwp data and, if verbose is on, outputs verbose info.
-	 * 
+	 *
 	 * @return Returns value that has been read.
 	 */
 	public short readShort(String description, DataInputStream in)
@@ -374,7 +374,7 @@
 
 	/**
 	 * Reads Jdwp data and, if verbose is on, outputs verbose info.
-	 * 
+	 *
 	 * @return Returns value that has been read.
 	 */
 	public int readInt(String description, DataInputStream in)
@@ -388,7 +388,7 @@
 
 	/**
 	 * Reads Jdwp data and, if verbose is on, outputs verbose info.
-	 * 
+	 *
 	 * @return Returns value that has been read.
 	 */
 	public long readLong(String description, DataInputStream in)
@@ -402,7 +402,7 @@
 
 	/**
 	 * Reads Jdwp data and, if verbose is on, outputs verbose info.
-	 * 
+	 *
 	 * @return Returns value that has been read.
 	 */
 	public byte readByte(String description, Map<Integer, String> valueToString,
@@ -416,7 +416,7 @@
 
 	/**
 	 * Reads Jdwp data and, if verbose is on, outputs verbose info.
-	 * 
+	 *
 	 * @return Returns value that has been read.
 	 */
 	public short readShort(String description, Map<Integer, String> valueToString,
@@ -430,7 +430,7 @@
 
 	/**
 	 * Reads Jdwp data and, if verbose is on, outputs verbose info.
-	 * 
+	 *
 	 * @return Returns value that has been read.
 	 */
 	public int readInt(String description, Map<Integer, String> valueToString, DataInputStream in)
@@ -444,7 +444,7 @@
 
 	/**
 	 * Reads Jdwp data and, if verbose is on, outputs verbose info.
-	 * 
+	 *
 	 * @return Returns value that has been read.
 	 */
 	public String readString(String description, DataInputStream in)
@@ -458,7 +458,7 @@
 
 	/**
 	 * Reads Jdwp data and, if verbose is on, outputs verbose info.
-	 * 
+	 *
 	 * @return Returns value that has been read.
 	 */
 	public boolean readBoolean(String description, DataInputStream in)
@@ -472,7 +472,7 @@
 
 	/**
 	 * Reads Jdwp data and, if verbose is on, outputs verbose info.
-	 * 
+	 *
 	 * @return Returns value that has been read.
 	 */
 	public char readChar(String description, DataInputStream in)
@@ -486,7 +486,7 @@
 
 	/**
 	 * Reads Jdwp data and, if verbose is on, outputs verbose info.
-	 * 
+	 *
 	 * @return Returns value that has been read.
 	 */
 	public double readDouble(String description, DataInputStream in)
@@ -500,7 +500,7 @@
 
 	/**
 	 * Reads Jdwp data and, if verbose is on, outputs verbose info.
-	 * 
+	 *
 	 * @return Returns value that has been read.
 	 */
 	public float readFloat(String description, DataInputStream in)
@@ -514,7 +514,7 @@
 
 	/**
 	 * Reads Jdwp data and, if verbose is on, outputs verbose info.
-	 * 
+	 *
 	 * @return Returns value that has been read.
 	 */
 	public byte[] readByteArray(int length, String description,
@@ -683,7 +683,7 @@
 
 	/**
 	 * Reads Jdwp data and, if verbose is on, outputs verbose info.
-	 * 
+	 *
 	 * @return Returns value that has been read.
 	 */
 	public byte readByte(String description, String[] bitNames,
@@ -697,7 +697,7 @@
 
 	/**
 	 * Reads Jdwp data and, if verbose is on, outputs verbose info.
-	 * 
+	 *
 	 * @return Returns value that has been read.
 	 */
 	public short readShort(String description, String[] bitNames,
@@ -711,7 +711,7 @@
 
 	/**
 	 * Reads Jdwp data and, if verbose is on, outputs verbose info.
-	 * 
+	 *
 	 * @return Returns value that has been read.
 	 */
 	public int readInt(String description, String[] bitNames, DataInputStream in)
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/MonitorInfoImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/MonitorInfoImpl.java
index 09a3e07..52ce2c7 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/MonitorInfoImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/MonitorInfoImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,7 +18,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  * @since 3.3
  */
 public class MonitorInfoImpl extends MirrorImpl implements MonitorInfo {
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ObjectReferenceImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ObjectReferenceImpl.java
index 9314a7f..899b317 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ObjectReferenceImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ObjectReferenceImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -44,7 +44,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class ObjectReferenceImpl extends ValueImpl implements ObjectReference {
 	/** JDWP Tag. */
@@ -154,7 +154,7 @@
 			result.owner = ThreadReferenceImpl.read(this, replyData);
 			result.entryCount = readInt("entry count", replyData); //$NON-NLS-1$
 			int nrOfWaiters = readInt("nr of waiters", replyData); //$NON-NLS-1$
-			result.waiters = new ArrayList<ThreadReference>(nrOfWaiters);
+			result.waiters = new ArrayList<>(nrOfWaiters);
 			for (int i = 0; i < nrOfWaiters; i++)
 				result.waiters.add(ThreadReferenceImpl.read(this, replyData));
 			return result;
@@ -200,7 +200,7 @@
 	 */
 	@Override
 	public Value getValue(Field field) {
-		ArrayList<Field> list = new ArrayList<Field>(1);
+		ArrayList<Field> list = new ArrayList<>(1);
 		list.add(field);
 		return getValues(list).get(field);
 	}
@@ -212,7 +212,7 @@
 	 *         ways, such as from a local variable in a stack frame, or from a
 	 *         JNI global reference. Such non-object referrers are not returned
 	 *         by this method.
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	@Override
@@ -250,7 +250,7 @@
 			if (max > 0 && elements > max) {
 				elements = max;
 			}
-			ArrayList<ObjectReference> list = new ArrayList<ObjectReference>();
+			ArrayList<ObjectReference> list = new ArrayList<>();
 			for (int i = 0; i < elements; i++) {
 				list.add((ObjectReference)ValueImpl.readWithTag(this, replyData));
 			}
@@ -271,7 +271,7 @@
 	public Map<Field, Value> getValues(List<? extends Field> allFields) {
 		// if the field list is empty, nothing to do.
 		if (allFields.isEmpty()) {
-			return new HashMap<Field, Value>();
+			return new HashMap<>();
 		}
 		// Note that this information should not be cached.
 		initJdwpRequest();
@@ -283,8 +283,8 @@
 			 * Distinguish static fields from non-static fields: For static
 			 * fields ReferenceTypeImpl.getValues() must be used.
 			 */
-			List<Field> staticFields = new ArrayList<Field>();
-			List<FieldImpl> nonStaticFields = new ArrayList<FieldImpl>();
+			List<Field> staticFields = new ArrayList<>();
+			List<FieldImpl> nonStaticFields = new ArrayList<>();
 
 			// Separate static and non-static fields.
 			int allFieldsSize = allFields.size();
@@ -300,7 +300,7 @@
 			// First get values for the static fields.
 			Map<Field, Value> resultMap;
 			if (staticFields.isEmpty()) {
-				resultMap = new HashMap<Field, Value>();
+				resultMap = new HashMap<>();
 			} else {
 				resultMap = referenceType().getValues(staticFields);
 			}
@@ -381,7 +381,7 @@
 
 	/**
 	 * Invokes the specified static Method in the target VM.
-	 * 
+	 *
 	 * @return Returns a Value mirror of the invoked method's return value.
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/PrimitiveTypeImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/PrimitiveTypeImpl.java
index ac0e0ed..5845496 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/PrimitiveTypeImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/PrimitiveTypeImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -15,7 +15,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public abstract class PrimitiveTypeImpl extends TypeImpl implements
 		PrimitiveType {
@@ -75,7 +75,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see java.lang.Object#equals(java.lang.Object)
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/PrimitiveValueImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/PrimitiveValueImpl.java
index 69a915d..c43804b 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/PrimitiveValueImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/PrimitiveValueImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -21,7 +21,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public abstract class PrimitiveValueImpl extends ValueImpl implements PrimitiveValue {
 	/** Primitive value in wrapper. */
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ReferenceTypeImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ReferenceTypeImpl.java
index e65d1ce..5673199 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ReferenceTypeImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ReferenceTypeImpl.java
@@ -7,7 +7,7 @@
  *
  * Contributors:
  *     IBM Corporation - initial API and implementation
- *     Yavor Boyadzhiev <yavor.vasilev.boyadzhiev@sap.com> - Bug 162399  
+ *     Yavor Boyadzhiev <yavor.vasilev.boyadzhiev@sap.com> - Bug 162399
  *     Jesper Steen Møller <jesper@selskabet.org> - Bug 430839
  *******************************************************************************/
 package org.eclipse.jdi.internal;
@@ -60,7 +60,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public abstract class ReferenceTypeImpl extends TypeImpl implements
 		ReferenceType, org.eclipse.jdi.hcr.ReferenceType {
@@ -104,7 +104,7 @@
 
 		/**
 		 * FileInfo constructor.
-		 * 
+		 *
 		 * @param fileId
 		 *            the id.
 		 * @param fileName
@@ -116,13 +116,13 @@
 			fFileId = fileId;
 			fFileName = fileName;
 			fAbsoluteFileName = absoluteFileName;
-			fLineInfo = new HashMap<Integer, List<int[]>>();
+			fLineInfo = new HashMap<>();
 		}
 
 		/**
 		 * Add information about the mapping of one line. Associate a line in
 		 * the input source file to a snippet of code in the output source file.
-		 * 
+		 *
 		 * @param inputLine
 		 *            the line number in the input source file.
 		 * @param outputStartLine
@@ -137,7 +137,7 @@
 			Integer key = new Integer(inputLine);
 			List<int[]> outputLines = fLineInfo.get(key);
 			if (outputLines == null) {
-				outputLines = new ArrayList<int[]>();
+				outputLines = new ArrayList<>();
 				fLineInfo.put(key, outputLines);
 			}
 			outputLines.add(new int[] { outputStartLine, outputLineRange });
@@ -146,13 +146,13 @@
 		/**
 		 * Return a list of line information about the code in the output source
 		 * file associated to the given line in the input source file.
-		 * 
+		 *
 		 * @param lineNumber
 		 *            the line number in the input source file.
 		 * @return a List of int[2].
 		 */
 		public List<Integer> getOutputLinesForLine(int lineNumber) {
-			List<Integer> list = new ArrayList<Integer>();
+			List<Integer> list = new ArrayList<>();
 			List<int[]> outputLines = fLineInfo.get(new Integer(lineNumber));
 			if (outputLines != null) {
 				for (Iterator<int[]> iter = outputLines.iterator(); iter.hasNext();) {
@@ -211,20 +211,20 @@
 
 		/**
 		 * Stratum constructor.
-		 * 
+		 *
 		 * @param id
 		 *            The id of this stratum.
 		 */
 		public Stratum(String id) {
 			fId = id;
-			fFileInfos = new ArrayList<FileInfo>();
-			fOutputLineToInputLine = new HashMap<Integer, List<int[]>>();
+			fFileInfos = new ArrayList<>();
+			fOutputLineToInputLine = new HashMap<>();
 			fPrimaryFileId = -1;
 		}
 
 		/**
 		 * Add a file info to this stratum.
-		 * 
+		 *
 		 * @param fileId
 		 *            the id.
 		 * @param fileName
@@ -237,7 +237,7 @@
 
 		/**
 		 * Add a file info to this stratum.
-		 * 
+		 *
 		 * @param fileId
 		 *            the id.
 		 * @param fileName
@@ -261,7 +261,7 @@
 
 		/**
 		 * Add line mapping information.
-		 * 
+		 *
 		 * @param inputStartLine
 		 *            number of the first line in the input source file.
 		 * @param lineFileId
@@ -315,7 +315,7 @@
 			Integer key = new Integer(outputStartLine);
 			List<int[]> inputLines = fOutputLineToInputLine.get(key);
 			if (inputLines == null) {
-				inputLines = new ArrayList<int[]>();
+				inputLines = new ArrayList<>();
 				fOutputLineToInputLine.put(key, inputLines);
 			}
 			inputLines.add(new int[] { lineFileId, inputStartLine });
@@ -325,7 +325,7 @@
 		 * Return the FileInfo object for the specified source name. Return
 		 * <code>null</code> if the specified name is the source name of no file
 		 * info.
-		 * 
+		 *
 		 * @param sourceName
 		 *            the source name to search.
 		 */
@@ -488,7 +488,7 @@
 		// The interfaces are maintained in a set, to avoid duplicates.
 		// The interfaces of its own (own interfaces() command) are first
 		// inserted.
-		HashSet<InterfaceType> allInterfacesSet = new HashSet<InterfaceType>(interfaces());
+		HashSet<InterfaceType> allInterfacesSet = new HashSet<>(interfaces());
 
 		// All interfaces of the interfaces it implements.
 		Iterator<InterfaceType> interfaces = interfaces().iterator();
@@ -506,7 +506,7 @@
 			}
 		}
 
-		fAllInterfaces = new ArrayList<InterfaceType>(allInterfacesSet);
+		fAllInterfaces = new ArrayList<>(allInterfacesSet);
 		return fAllInterfaces;
 	}
 
@@ -574,8 +574,8 @@
 		 */
 		// The name+signature combinations of methods are maintained in a set,
 		// to avoid including methods that have been overridden.
-		Set<String> namesAndSignatures = new HashSet<String>();
-		List<Method> visibleMethods = new ArrayList<Method>();
+		Set<String> namesAndSignatures = new HashSet<>();
+		List<Method> visibleMethods = new ArrayList<>();
 
 		// The methods of its own (own methods() command).
 		for (Iterator<Method> iter = methods().iterator(); iter.hasNext();) {
@@ -621,7 +621,7 @@
 		 * methods of it's superclass.
 		 */
 		// The name+signature combinations of methods are maintained in a set.
-		HashSet<Method> resultSet = new HashSet<Method>();
+		HashSet<Method> resultSet = new HashSet<>();
 
 		// The methods of its own (own methods() command).
 		resultSet.addAll(methods());
@@ -641,7 +641,7 @@
 				resultSet.addAll(superclass.allMethods());
 		}
 
-		fAllMethods = new ArrayList<Method>(resultSet);
+		fAllMethods = new ArrayList<>(resultSet);
 		return fAllMethods;
 	}
 
@@ -668,7 +668,7 @@
 				defaultReplyErrorHandler(replyPacket.errorCode());
 			}
 			DataInputStream replyData = replyPacket.dataInStream();
-			List<InterfaceType> elements = new ArrayList<InterfaceType>();
+			List<InterfaceType> elements = new ArrayList<>();
 			int nrOfElements = readInt("elements", replyData); //$NON-NLS-1$
 			for (int i = 0; i < nrOfElements; i++) {
 				InterfaceTypeImpl ref = InterfaceTypeImpl.read(this, replyData);
@@ -720,10 +720,10 @@
 		 */
 		// The names of fields are maintained in a set, to avoid including
 		// fields that have been overridden.
-		HashSet<String> fieldNames = new HashSet<String>();
+		HashSet<String> fieldNames = new HashSet<>();
 
 		// The fields of its own (own fields() command).
-		List<Field> visibleFields = new ArrayList<Field>();
+		List<Field> visibleFields = new ArrayList<>();
 		addVisibleFields(fields(), fieldNames, visibleFields);
 
 		// All fields of the interfaces it implements.
@@ -763,7 +763,7 @@
 		 */
 		// The names of fields are maintained in a set, to avoid including
 		// fields that have been inherited double.
-		HashSet<Field> resultSet = new HashSet<Field>();
+		HashSet<Field> resultSet = new HashSet<>();
 
 		// The fields of its own (own fields() command).
 		resultSet.addAll(fields());
@@ -783,7 +783,7 @@
 				resultSet.addAll(superclass.allFields());
 		}
 
-		fAllFields = new ArrayList<Field>(resultSet);
+		fAllFields = new ArrayList<>(resultSet);
 		return fAllFields;
 	}
 
@@ -925,7 +925,7 @@
 			JdwpReplyPacket replyPacket = requestVM(jdwpCommand, this);
 			defaultReplyErrorHandler(replyPacket.errorCode());
 			DataInputStream replyData = replyPacket.dataInStream();
-			List<Field> elements = new ArrayList<Field>();
+			List<Field> elements = new ArrayList<>();
 			int nrOfElements = readInt("elements", replyData); //$NON-NLS-1$
 			for (int i = 0; i < nrOfElements; i++) {
 				FieldImpl elt = FieldImpl.readWithNameSignatureModifiers(this,
@@ -967,10 +967,10 @@
 		if (methodID.value() == 0) {
 			return new MethodImpl(virtualMachineImpl(), this, methodID,
 					JDIMessages.ReferenceTypeImpl_Obsolete_method_1,
-					"", null, -1); //$NON-NLS-1$ 
+					"", null, -1); //$NON-NLS-1$
 		}
 		if (fMethodTable == null) {
-			fMethodTable = new Hashtable<JdwpMethodID, Method>();
+			fMethodTable = new Hashtable<>();
 			Iterator<Method> iter = methods().iterator();
 			while (iter.hasNext()) {
 				MethodImpl method = (MethodImpl) iter.next();
@@ -985,7 +985,7 @@
 	 */
 	@Override
 	public Value getValue(Field field) {
-		ArrayList<Field> list = new ArrayList<Field>(1);
+		ArrayList<Field> list = new ArrayList<>(1);
 		list.add(field);
 		return getValues(list).get(field);
 	}
@@ -997,7 +997,7 @@
 	public Map<Field, Value> getValues(List<? extends Field> fields) {
 		// if the field list is empty, nothing to do
 		if (fields.isEmpty()) {
-			return new HashMap<Field, Value>();
+			return new HashMap<>();
 		}
 		// Note that this information should not be cached.
 		initJdwpRequest();
@@ -1018,7 +1018,7 @@
 			defaultReplyErrorHandler(replyPacket.errorCode());
 
 			DataInputStream replyData = replyPacket.dataInStream();
-			HashMap<Field, Value> map = new HashMap<Field, Value>();
+			HashMap<Field, Value> map = new HashMap<>();
 			int nrOfElements = readInt("elements", replyData); //$NON-NLS-1$
 			if (nrOfElements != fieldsSize)
 				throw new InternalError(
@@ -1126,7 +1126,7 @@
 			JdwpReplyPacket replyPacket = requestVM(jdwpCommand, this);
 			defaultReplyErrorHandler(replyPacket.errorCode());
 			DataInputStream replyData = replyPacket.dataInStream();
-			List<Method> elements = new ArrayList<Method>();
+			List<Method> elements = new ArrayList<>();
 			int nrOfElements = readInt("elements", replyData); //$NON-NLS-1$
 			for (int i = 0; i < nrOfElements; i++) {
 				MethodImpl elt = MethodImpl.readWithNameSignatureModifiers(
@@ -1152,7 +1152,7 @@
 	 */
 	@Override
 	public List<Method> methodsByName(String name) {
-		List<Method> elements = new ArrayList<Method>();
+		List<Method> elements = new ArrayList<>();
 		Iterator<Method> iter = visibleMethods().iterator();
 		while (iter.hasNext()) {
 			Method method = iter.next();
@@ -1169,7 +1169,7 @@
 	 */
 	@Override
 	public List<Method> methodsByName(String name, String signature) {
-		List<Method> elements = new ArrayList<Method>();
+		List<Method> elements = new ArrayList<>();
 		Iterator<Method> iter = visibleMethods().iterator();
 		while (iter.hasNext()) {
 			MethodImpl method = (MethodImpl) iter.next();
@@ -1225,7 +1225,7 @@
 		// Note that the VM gives an empty reply on RT_NESTED_TYPES, therefore
 		// we search for the
 		// nested types in the loaded types.
-		List<ReferenceType> result = new ArrayList<ReferenceType>();
+		List<ReferenceType> result = new ArrayList<>();
 		Iterator<ReferenceType> itr = virtualMachineImpl().allRefTypes();
 		while (itr.hasNext()) {
 			try {
@@ -1507,7 +1507,7 @@
 	 */
 	@Override
 	public List<String> sourceNames(String stratumId) throws AbsentInformationException {
-		List<String> list = new ArrayList<String>();
+		List<String> list = new ArrayList<>();
 		Stratum stratum = getStratum(stratumId);
 		if (stratum != null) {
 			// return the source names defined for this stratum in the SMAP.
@@ -1534,7 +1534,7 @@
 	 */
 	@Override
 	public List<String> sourcePaths(String stratumId) throws AbsentInformationException {
-		List<String> list = new ArrayList<String>();
+		List<String> list = new ArrayList<>();
 		Stratum stratum = getStratum(stratumId);
 		if (stratum != null) {
 			// return the source paths defined for this stratum in the SMAP.
@@ -1583,21 +1583,21 @@
 		Map<String, List<Location>> sourceNameAllLineLocations = null;
 		if (fStratumAllLineLocations == null) { // the stratum map doesn't
 												// exist, create it
-			fStratumAllLineLocations = new HashMap<String, Map<String, List<Location>>>();
+			fStratumAllLineLocations = new HashMap<>();
 		} else {
 			// get the source name map
 			sourceNameAllLineLocations = fStratumAllLineLocations.get(stratum);
 		}
 		if (sourceNameAllLineLocations == null) { // the source name map doesn't
 													// exist, create it
-			sourceNameAllLineLocations = new HashMap<String, List<Location>>();
+			sourceNameAllLineLocations = new HashMap<>();
 			fStratumAllLineLocations.put(stratum, sourceNameAllLineLocations);
 		} else {
 			// get the line locations
 			allLineLocations = sourceNameAllLineLocations.get(sourceName);
 		}
 		if (allLineLocations == null) { // the line locations are not known, compute and store them
-			allLineLocations = new ArrayList<Location>();
+			allLineLocations = new ArrayList<>();
 			boolean hasLineInformation = false;
 			AbsentInformationException exception = null;
 			while (allMethods.hasNext()) {
@@ -1626,7 +1626,7 @@
 	@Override
 	public List<Location> locationsOfLine(String stratum, String sourceName, int lineNumber) throws AbsentInformationException {
 		Iterator<Method> allMethods = methods().iterator();
-		List<Location> locations = new ArrayList<Location>();
+		List<Location> locations = new ArrayList<>();
 		boolean hasLineInformation = false;
 		AbsentInformationException exception = null;
 		while (allMethods.hasNext()) {
@@ -1655,7 +1655,7 @@
 	 */
 	@Override
 	public List<String> availableStrata() {
-		List<String> list = new ArrayList<String>();
+		List<String> list = new ArrayList<>();
 		// The strata defined in the SMAP.
 		if (isSourceDebugExtensionAvailable()) {
 			list.addAll(fStrata.keySet());
@@ -1717,7 +1717,7 @@
 
 	/**
 	 * Get the source debug extension from the VM.
-	 * 
+	 *
 	 * @throws AbsentInformationException
 	 */
 	private void getSourceDebugExtension() throws AbsentInformationException {
@@ -1747,13 +1747,13 @@
 					JDIMessages.ReferenceTypeImpl_31);
 		}
 		// parse the source map.
-		fStrata = new HashMap<String, Stratum>();
+		fStrata = new HashMap<>();
 		SourceDebugExtensionParser.parse(fSmap, this);
 	}
 
 	/**
 	 * Get the name of the Java source file from the VM.
-	 * 
+	 *
 	 * @throws AbsentInformationException
 	 */
 	private void getSourceName() throws AbsentInformationException {
@@ -1834,7 +1834,7 @@
 	 * part of the translation, for this stratum. If the code at the given index
 	 * is not a part of the translation of the given stratum code, return the
 	 * name of the primary input source file.
-	 * 
+	 *
 	 * @param codeIndex
 	 *            the index of the code.
 	 * @param method
@@ -1862,7 +1862,7 @@
 	 * code index is part of the translation, for this stratum. If the code at
 	 * the given index is not a part of the translation of the given stratum
 	 * code, return the FileInfo of the primary input source file.
-	 * 
+	 *
 	 * @param codeIndex
 	 *            the index of the code.
 	 * @param method
@@ -1895,7 +1895,7 @@
 	/**
 	 * Return the list of line number in the input files of the stratum
 	 * associated with the code at the given address.
-	 * 
+	 *
 	 * @param codeIndex
 	 *            the index of the code.
 	 * @param method
@@ -1921,7 +1921,7 @@
 	 * part of the translation, for this stratum. If the code at the given index
 	 * is not a part of the translation of the given stratum code, return the
 	 * path of the primary input source file.
-	 * 
+	 *
 	 * @param codeIndex
 	 *            the index of the code.
 	 * @param method
@@ -1951,7 +1951,7 @@
 	/**
 	 * Return the number of the line of which the given code index is part of
 	 * the translation, for this stratum.
-	 * 
+	 *
 	 * @param codeIndex
 	 *            the index of the code.
 	 * @param method
@@ -1984,7 +1984,7 @@
 	 * in the given stratum in the source file with the given source name. If
 	 * sourceName is <code>null</code>, return the locations for all source file
 	 * in the given stratum. The returned location are in the given method.
-	 * 
+	 *
 	 * @param stratumId
 	 *            the stratum id.
 	 * @param sourceName
@@ -1997,7 +1997,7 @@
 	 */
 	public List<Location> locationsOfLine(String stratumId, String sourceName, int lineNumber, MethodImpl method)	throws AbsentInformationException {
 		Stratum stratum = getStratum(stratumId);
-		List<Integer> javaLines = new ArrayList<Integer>();
+		List<Integer> javaLines = new ArrayList<>();
 		if (stratum != null) {
 			boolean found = false;
 			for (Iterator<FileInfo> iter = stratum.fFileInfos.iterator(); iter.hasNext() && !found;) {
@@ -2020,7 +2020,7 @@
 	 * stratum which are included in the given method. If sourceName is
 	 * <code>null</code>, return the locations for all source file in the given
 	 * stratum.
-	 * 
+	 *
 	 * @param stratumId
 	 *            the stratum id
 	 * @param sourceName
@@ -2077,7 +2077,7 @@
 					}
 				}
 			}
-			List<Location> locations = new ArrayList<Location>();
+			List<Location> locations = new ArrayList<>();
 			for (int i = 0, length = lineInfoTable.length; i < length; i++) {
 				if (lineInfoTable[i] != null) {
 					locations.add(new LocationImpl(virtualMachineImpl(), method, codeIndexTable[i]));
@@ -2086,7 +2086,7 @@
 			return locations;
 		}
 		// Java stratum
-		List<Location> result = new ArrayList<Location>();
+		List<Location> result = new ArrayList<>();
 		for (long element : codeIndexTable) {
 			result.add(new LocationImpl(virtualMachineImpl(), method, element));
 		}
@@ -2095,7 +2095,7 @@
 
 	/*
 	 * @since 3.0
-	 * 
+	 *
 	 * @since java 1.5
 	 */
 	@Override
@@ -2135,7 +2135,7 @@
 	 * no-generic-signature (genericSignature() will return null) if
 	 * genericSignature is an non-empty String, the generic signature is set to
 	 * the specified value (genericSignature() will return the specified value)
-	 * 
+	 *
 	 * @since 3.0
 	 */
 	public void setGenericSignature(String genericSignature) {
@@ -2190,7 +2190,7 @@
 			if (max > 0 && elements > max) {
 				elements = max;
 			}
-			ArrayList<ObjectReference> list = new ArrayList<ObjectReference>();
+			ArrayList<ObjectReference> list = new ArrayList<>();
 			for (int i = 0; i < elements; i++) {
 				list.add((ObjectReference) ValueImpl.readWithTag(this, replyData));
 			}
@@ -2361,7 +2361,7 @@
 			handledJdwpRequest();
 		}
 	}
-	
+
 	/**
 	 * @return Returns Jdwp version of given options.
 	 */
@@ -2371,11 +2371,11 @@
 			jdwpOptions |= MethodImpl.INVOKE_SINGLE_THREADED_JDWP;
 		return jdwpOptions;
 	}
-	
+
 
 	/**
 	 * Invoke static method on class or interface type
-	 * 
+	 *
 	 * @param thread the debugger thread in which to invoke
 	 * @param method the resolved chosed Method to invoke
 	 * @param arguments the list of Values to supply as arguments for the method, assigned to arguments in the order they appear in the method signature.
@@ -2448,7 +2448,7 @@
 			case JdwpReplyPacket.NOT_IMPLEMENTED:
 				throw new UnsupportedOperationException(JDIMessages.InterfaceTypeImpl_Static_interface_methods_require_newer_JVM);
 			}
-			
+
 			defaultReplyErrorHandler(replyPacket.errorCode());
 			DataInputStream replyData = replyPacket.dataInStream();
 			ValueImpl value = ValueImpl.readWithTag(this, replyData);
@@ -2464,5 +2464,5 @@
 			handledJdwpRequest();
 		}
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ShortTypeImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ShortTypeImpl.java
index d56db88..35de222 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ShortTypeImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ShortTypeImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -16,7 +16,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class ShortTypeImpl extends PrimitiveTypeImpl implements ShortType {
 	/**
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ShortValueImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ShortValueImpl.java
index 4303333..bde901a 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ShortValueImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ShortValueImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -22,7 +22,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class ShortValueImpl extends PrimitiveValueImpl implements ShortValue {
 	/** JDWP Tag. */
@@ -58,7 +58,7 @@
 	public int compareTo(ShortValue o) {
 		return ((Short)shortValue()).compareTo(o.shortValue());
 	}
-	
+
 	/**
 	 * @returns Value.
 	 */
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/SourceDebugExtensionParser.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/SourceDebugExtensionParser.java
index 170d365..07895fd 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/SourceDebugExtensionParser.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/SourceDebugExtensionParser.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,7 +18,7 @@
 import com.sun.jdi.AbsentInformationException;
 
 /**
- * 
+ *
  */
 public class SourceDebugExtensionParser {
 
@@ -62,7 +62,7 @@
 
 		/**
 		 * Compute the next lexem.
-		 * 
+		 *
 		 * @return the type of the next lexem.
 		 */
 		public int nextLexem() throws AbsentInformationException {
@@ -119,7 +119,7 @@
 		}
 
 		/**
-		 * 
+		 *
 		 */
 		private void startWithOtherChar() {
 			int lexemStart = fPointer;
@@ -164,7 +164,7 @@
 		}
 
 		/**
-		 * 
+		 *
 		 */
 		private void startWithAsterisk() throws AbsentInformationException {
 			nextChar();
@@ -203,7 +203,7 @@
 		}
 
 		/**
-		 * 
+		 *
 		 */
 		private void startWithCR() {
 			if (fChar == '\r') {
@@ -221,7 +221,7 @@
 		}
 
 		/**
-		 * 
+		 *
 		 */
 		private void consumeWhiteSpace() {
 			while (fChar == ' ' || fChar == '\t') {
@@ -268,12 +268,12 @@
 	 */
 	private SourceDebugExtensionParser(ReferenceTypeImpl referenceType) {
 		fReferenceType = referenceType;
-		fDefinedStrata = new ArrayList<String>();
+		fDefinedStrata = new ArrayList<>();
 		fDefinedStrata.add(VirtualMachineImpl.JAVA_STRATUM_NAME);
 	}
 
 	/**
-	 * 
+	 *
 	 */
 	private void parseSmap(String smap) throws AbsentInformationException {
 		Lexer lexer = new Lexer(smap);
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/StackFrameImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/StackFrameImpl.java
index 97dc649..e7a3615 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/StackFrameImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/StackFrameImpl.java
@@ -42,7 +42,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class StackFrameImpl extends MirrorImpl implements StackFrame, Locatable {
 	/** FrameID that corresponds to this reference. */
@@ -70,7 +70,7 @@
 	public Value getValue(LocalVariable variable)
 			throws IllegalArgumentException, InvalidStackFrameException,
 			VMMismatchException {
-		ArrayList<LocalVariable> list = new ArrayList<LocalVariable>(1);
+		ArrayList<LocalVariable> list = new ArrayList<>(1);
 		list.add(variable);
 		return getValues(list).get(variable);
 	}
@@ -82,7 +82,7 @@
 	public Map<LocalVariable, Value> getValues(List<? extends LocalVariable> variables) throws IllegalArgumentException,
 			InvalidStackFrameException, VMMismatchException {
 		// Note that this information should not be cached.
-		Map<LocalVariable, Value> map = new HashMap<LocalVariable, Value>(variables.size());
+		Map<LocalVariable, Value> map = new HashMap<>(variables.size());
 		// if the variable list is empty, nothing to do
 		if (variables.isEmpty()) {
 			return map;
@@ -169,7 +169,7 @@
 		}
 		try {
 			List<LocalVariable> list = location().method().variables();
-			ArrayList<Value> ret = new ArrayList<Value>();
+			ArrayList<Value> ret = new ArrayList<>();
 			LocalVariable var = null;
 			for (Iterator<LocalVariable> iter = list.iterator(); iter.hasNext();) {
 				var = iter.next();
@@ -294,7 +294,7 @@
 	public List<LocalVariable> visibleVariables() throws AbsentInformationException {
 		List<LocalVariable> variables = fLocation.method().variables();
 		Iterator<LocalVariable> iter = variables.iterator();
-		List<LocalVariable> visibleVars = new ArrayList<LocalVariable>(variables.size());
+		List<LocalVariable> visibleVars = new ArrayList<>(variables.size());
 		while (iter.hasNext()) {
 			LocalVariableImpl var = (LocalVariableImpl) iter.next();
 			// Only return local variables other than the this pointer.
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/StringReferenceImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/StringReferenceImpl.java
index db6bd98..9cfa492 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/StringReferenceImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/StringReferenceImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -24,7 +24,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class StringReferenceImpl extends ObjectReferenceImpl implements
 		StringReference {
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ThreadGroupReferenceImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ThreadGroupReferenceImpl.java
index 3551908..fe19d7b 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ThreadGroupReferenceImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ThreadGroupReferenceImpl.java
@@ -27,7 +27,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class ThreadGroupReferenceImpl extends ObjectReferenceImpl implements
 		ThreadGroupReference {
@@ -156,12 +156,12 @@
 			DataInputStream replyData = replyPacket.dataInStream();
 			ChildrenInfo result = new ChildrenInfo();
 			int nrThreads = readInt("nr threads", replyData); //$NON-NLS-1$
-			result.childThreads = new ArrayList<ThreadReference>(nrThreads);
+			result.childThreads = new ArrayList<>(nrThreads);
 			for (int i = 0; i < nrThreads; i++)
 				result.childThreads.add(ThreadReferenceImpl.read(this,
 						replyData));
 			int nrThreadGroups = readInt("nr thread groups", replyData); //$NON-NLS-1$
-			result.childThreadGroups = new ArrayList<ThreadGroupReference>(nrThreadGroups);
+			result.childThreadGroups = new ArrayList<>(nrThreadGroups);
 			for (int i = 0; i < nrThreadGroups; i++)
 				result.childThreadGroups.add(ThreadGroupReferenceImpl.read(
 						this, replyData));
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ThreadReferenceImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ThreadReferenceImpl.java
index 40651a8..d9e0b0c 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ThreadReferenceImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ThreadReferenceImpl.java
@@ -45,7 +45,7 @@
 /**
  * This class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class ThreadReferenceImpl extends ObjectReferenceImpl implements	ThreadReference, org.eclipse.jdi.hcr.ThreadReference {
 	/** ThreadStatus Constants. */
@@ -276,7 +276,7 @@
 
 			DataInputStream replyData = replyPacket.dataInStream();
 			int nrOfElements = readInt("elements", replyData); //$NON-NLS-1$
-			List<StackFrame> frames = new ArrayList<StackFrame>(nrOfElements);
+			List<StackFrame> frames = new ArrayList<>(nrOfElements);
 			for (int i = 0; i < nrOfElements; i++) {
 				StackFrameImpl frame = StackFrameImpl.readWithLocation(this,
 						this, replyData);
@@ -394,7 +394,7 @@
 			DataInputStream replyData = replyPacket.dataInStream();
 
 			int nrOfMonitors = readInt("nr of monitors", replyData); //$NON-NLS-1$
-			List<ObjectReference> result = new ArrayList<ObjectReference>(nrOfMonitors);
+			List<ObjectReference> result = new ArrayList<>(nrOfMonitors);
 			for (int i = 0; i < nrOfMonitors; i++) {
 				result.add(ObjectReferenceImpl.readObjectRefWithTag(this,
 						replyData));
@@ -436,7 +436,7 @@
 			DataInputStream replyData = replyPacket.dataInStream();
 
 			int owned = readInt("owned monitors", replyData); //$NON-NLS-1$
-			List<com.sun.jdi.MonitorInfo> result = new ArrayList<com.sun.jdi.MonitorInfo>(owned);
+			List<com.sun.jdi.MonitorInfo> result = new ArrayList<>(owned);
 			ObjectReference monitor = null;
 			int depth = -1;
 			for (int i = 0; i < owned; i++) {
@@ -456,7 +456,7 @@
 
 	/**
 	 * Resumes this thread.
-	 * 
+	 *
 	 * @see com.sun.jdi.ThreadReference#resume()
 	 */
 	@Override
@@ -524,7 +524,7 @@
 
 	/**
 	 * Stops this thread with an asynchronous exception.
-	 * 
+	 *
 	 * @see com.sun.jdi.ThreadReference#stop(com.sun.jdi.ObjectReference)
 	 */
 	@Override
@@ -558,7 +558,7 @@
 
 	/**
 	 * Suspends this thread.
-	 * 
+	 *
 	 * @see com.sun.jdi.ThreadReference#suspend()
 	 */
 	@Override
@@ -630,7 +630,7 @@
 	/**
 	 * Simulate the execution of a return instruction instead of executing the
 	 * next byte code in a method.
-	 * 
+	 *
 	 * @return Returns whether any finally or synchronized blocks are enclosing
 	 *         the current instruction.
 	 */
@@ -735,7 +735,7 @@
 		}
 
 		Field[] fields = ThreadReferenceImpl.class.getDeclaredFields();
-		fgThreadStatusMap = new HashMap<Integer, String>();
+		fgThreadStatusMap = new HashMap<>();
 		fgSuspendStatusStrings = new String[32]; // Int
 
 		for (Field field : fields) {
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/TypeComponentImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/TypeComponentImpl.java
index fecfed8..661d711 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/TypeComponentImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/TypeComponentImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -16,7 +16,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public abstract class TypeComponentImpl extends AccessibleImpl implements
 		TypeComponent {
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/TypeImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/TypeImpl.java
index 3dca1cd..edcd732 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/TypeImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/TypeImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -19,7 +19,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public abstract class TypeImpl extends AccessibleImpl implements Type {
 	/** Text representation of this type. */
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ValueCache.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ValueCache.java
index aa29cc4..37744f0 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ValueCache.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ValueCache.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -24,30 +24,30 @@
  * This class is used to cache values. It uses soft references to store cached
  * values. Once a value is garbage collected by the VM, the corresponding entry
  * is removed from the cache on the next invocation of put() or get().
- * 
+ *
  * Note that WeakHashMap can't be used for this purpose because in WeakHashMap
  * soft references are only used for the keys, and values may not have 'strong'
  * references to keys otherwise they will never be garbage collected.
- * 
+ *
  */
 public class ValueCache {
 	/**
 	 * Map to store <key, Reference> pairs, where Reference is a soft reference
 	 * to an Object.
 	 */
-	private Map<Object, SoftReference<Object>> cacheTable = new Hashtable<Object, SoftReference<Object>>();
+	private Map<Object, SoftReference<Object>> cacheTable = new Hashtable<>();
 	/**
 	 * Map to store <Reference, key> pairs, to find the cacheTable-key of a
 	 * garbage collected Reference.
 	 */
-	private Map<SoftReference<Object>, Object> refTable = new Hashtable<SoftReference<Object>, Object>();
+	private Map<SoftReference<Object>, Object> refTable = new Hashtable<>();
 
 	/**
 	 * The reference-queue that is registered with the soft references. The
 	 * garbage collector will enqueue soft references that are garbage
 	 * collected.
 	 */
-	private ReferenceQueue<Object> refQueue = new ReferenceQueue<Object>();
+	private ReferenceQueue<Object> refQueue = new ReferenceQueue<>();
 
 	/**
 	 * Clean up all entries from the table for which the values were garbage
@@ -68,14 +68,14 @@
 	 */
 	public void put(Object key, Object value) {
 		cleanup();
-		SoftReference<Object> ref = new SoftReference<Object>(value, refQueue);
+		SoftReference<Object> ref = new SoftReference<>(value, refQueue);
 		cacheTable.put(key, ref);
 		refTable.put(ref, key);
 	}
 
 	/**
 	 * Get entry from the cache.
-	 * 
+	 *
 	 * @return Returns value that is cached under the given key, or null of one
 	 *         of the following is true: - The value has not been cached. - The
 	 *         value had been cached but is garbage collected.
@@ -95,7 +95,7 @@
 	 */
 	public Collection<Object> values() {
 		cleanup();
-		List<Object> returnValues = new ArrayList<Object>();
+		List<Object> returnValues = new ArrayList<>();
 		synchronized (cacheTable) {
 			Iterator<SoftReference<Object>> iter = cacheTable.values().iterator();
 			SoftReference<Object> ref;
@@ -117,7 +117,7 @@
 	 */
 	public Collection<Object> valuesWithType(Class<?> type) {
 		cleanup();
-		List<Object> returnValues = new ArrayList<Object>();
+		List<Object> returnValues = new ArrayList<>();
 		synchronized (cacheTable) {
 			Iterator<SoftReference<Object>> iter = cacheTable.values().iterator();
 			SoftReference<Object> ref;
@@ -135,7 +135,7 @@
 
 	/**
 	 * Removes the key and its corresponding value from this cache.
-	 * 
+	 *
 	 * @return Returns The value to which the key had been mapped in this
 	 *         hashtable, or null if the key did not have a mapping.
 	 */
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ValueImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ValueImpl.java
index 2585b9a..d9e0ae0 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ValueImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ValueImpl.java
@@ -36,7 +36,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public abstract class ValueImpl extends MirrorImpl implements Value {
 	/**
@@ -154,13 +154,13 @@
 	 * Check the type and the vm of each values, according to the associated
 	 * type. For primitive values, convert the value for match the given type if
 	 * needed. The two list must have the same size.
-	 * 
+	 *
 	 * @return the (converted) values.
 	 * @see checkValue(Value, Type, VirtualMachineImpl)
 	 */
 	protected static List<Value> checkValues(List<?extends Value> values, List<Type> types,
 			VirtualMachineImpl vm) throws InvalidTypeException {
-		List<Value> result = new ArrayList<Value>(values.size());
+		List<Value> result = new ArrayList<>(values.size());
 		Iterator<? extends Value> iterValues = values.iterator();
 		Iterator<Type> iterTypes = types.iterator();
 		while (iterValues.hasNext()) {
@@ -174,7 +174,7 @@
 	/**
 	 * Check the type and the vm of the given value. In case of primitive value,
 	 * the value is converted if needed.
-	 * 
+	 *
 	 * @return the (converted) value.
 	 * @throws InvalidTypeException
 	 *             if the given value is no assignment compatible with the given
@@ -300,7 +300,7 @@
 	/**
 	 * Check the type of the given value, and convert the value to the given
 	 * type if needed (see Java Language Spec, section 5.2).
-	 * 
+	 *
 	 * @return the (converted) value.
 	 * @throws InvalidTypeException
 	 *             if the given value is no assignment compatible with the given
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/VerboseWriter.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/VerboseWriter.java
index f724f39..f2c0aed 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/VerboseWriter.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/VerboseWriter.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -44,7 +44,7 @@
 	 */
 	public VerboseWriter(PrintWriter out) {
 		fOutput = out;
-		fLineBuffer = new ArrayList<StringBuffer>();
+		fLineBuffer = new ArrayList<>();
 		fPosition = 0;
 		fLineBuffer.add(new StringBuffer());
 	}
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/VirtualMachineImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/VirtualMachineImpl.java
index 60f4748..557815f 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/VirtualMachineImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/VirtualMachineImpl.java
@@ -57,7 +57,7 @@
 /**
  * This class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class VirtualMachineImpl extends MirrorImpl implements VirtualMachine,
 		org.eclipse.jdi.hcr.VirtualMachine, org.eclipse.jdi.VirtualMachine {
@@ -374,7 +374,7 @@
 			defaultReplyErrorHandler(replyPacket.errorCode());
 			DataInputStream replyData = replyPacket.dataInStream();
 			int nrOfElements = readInt("elements", replyData); //$NON-NLS-1$
-			List<ReferenceType> elements = new ArrayList<ReferenceType>(nrOfElements);
+			List<ReferenceType> elements = new ArrayList<>(nrOfElements);
 			for (int i = 0; i < nrOfElements; i++) {
 				ReferenceTypeImpl elt = ReferenceTypeImpl
 						.readWithTypeTagAndSignature(this,
@@ -423,7 +423,7 @@
 			defaultReplyErrorHandler(replyPacket.errorCode());
 			DataInputStream replyData = replyPacket.dataInStream();
 			int nrOfElements = readInt("elements", replyData); //$NON-NLS-1$
-			List<ThreadReference> elements = new ArrayList<ThreadReference>(nrOfElements);
+			List<ThreadReference> elements = new ArrayList<>(nrOfElements);
 			for (int i = 0; i < nrOfElements; i++) {
 				ThreadReferenceImpl elt = ThreadReferenceImpl.read(this,
 						replyData);
@@ -654,7 +654,7 @@
 			defaultReplyErrorHandler(replyPacket.errorCode());
 			DataInputStream replyData = replyPacket.dataInStream();
 			int nrOfElements = readInt("elements", replyData); //$NON-NLS-1$
-			List<ReferenceType> elements = new ArrayList<ReferenceType>(nrOfElements);
+			List<ReferenceType> elements = new ArrayList<>(nrOfElements);
 			for (int i = 0; i < nrOfElements; i++) {
 				ReferenceTypeImpl elt = ReferenceTypeImpl.readWithTypeTag(this,
 						replyData);
@@ -908,7 +908,7 @@
 
 			DataInputStream replyData = replyPacket.dataInStream();
 			int nrGroups = readInt("nr of groups", replyData); //$NON-NLS-1$
-			ArrayList<ThreadGroupReference> result = new ArrayList<ThreadGroupReference>(nrGroups);
+			ArrayList<ThreadGroupReference> result = new ArrayList<>(nrGroups);
 			for (int i = 0; i < nrGroups; i++) {
 				ThreadGroupReferenceImpl threadGroup = ThreadGroupReferenceImpl.read(this, replyData);
 				result.add(threadGroup);
@@ -1184,7 +1184,7 @@
 		}
 
 		Field[] fields = VirtualMachineImpl.class.getDeclaredFields();
-		fgHCRResultMap = new HashMap<Integer, String>();
+		fgHCRResultMap = new HashMap<>();
 		for (Field field : fields) {
 			if ((field.getModifiers() & Modifier.PUBLIC) == 0
 					|| (field.getModifiers() & Modifier.STATIC) == 0
@@ -1236,7 +1236,7 @@
 	/**
 	 * Returns whether the JDWP version is greater than or equal to the
 	 * specified major/minor version numbers.
-	 * 
+	 *
 	 * @return whether the JDWP version is greater than or equal to the
 	 *         specified major/minor version numbers
 	 */
@@ -1494,7 +1494,7 @@
 
 	/**
 	 * Returns whether this VM is disconnected.
-	 * 
+	 *
 	 * @return whether this VM is disconnected
 	 */
 	public boolean isDisconnected() {
@@ -1503,7 +1503,7 @@
 
 	/**
 	 * Sets whether this VM is disconnected.
-	 * 
+	 *
 	 * @param disconected
 	 *            whether this VM is disconnected
 	 */
@@ -1593,7 +1593,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see com.sun.jdi.VirtualMachine#canBeModified()
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/VirtualMachineManagerImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/VirtualMachineManagerImpl.java
index f75fcdc..d983e73 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/VirtualMachineManagerImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/VirtualMachineManagerImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -52,7 +52,7 @@
 	 */
 	private PrintWriter fVerbosePrintWriter = null;
 	/** List of all VMs that are currently connected. */
-	List<VirtualMachine> fConnectedVMs = new ArrayList<VirtualMachine>();
+	List<VirtualMachine> fConnectedVMs = new ArrayList<>();
 	/** True if in verbose mode. */
 	private boolean fVerbose = false;
 	/** Name of verbose file. */
@@ -143,9 +143,9 @@
 			IPreferencesService srvc = Platform.getPreferencesService();
 			if(srvc != null) {
 				return Platform.getPreferencesService().getInt(
-						JDIDebugModel.getPluginIdentifier(), 
-						JDIDebugModel.PREF_REQUEST_TIMEOUT, 
-						JDIDebugModel.DEF_REQUEST_TIMEOUT, 
+						JDIDebugModel.getPluginIdentifier(),
+						JDIDebugModel.PREF_REQUEST_TIMEOUT,
+						JDIDebugModel.DEF_REQUEST_TIMEOUT,
 						null);
 			}
 		} catch (NoClassDefFoundError e) {
@@ -182,7 +182,7 @@
 	 */
 	@Override
 	public List<Connector> allConnectors() {
-		List<Connector> result = new ArrayList<Connector>(attachingConnectors());
+		List<Connector> result = new ArrayList<>(attachingConnectors());
 		result.addAll(launchingConnectors());
 		result.addAll(listeningConnectors());
 		return result;
@@ -193,7 +193,7 @@
 	 */
 	@Override
 	public List<AttachingConnector> attachingConnectors() {
-		ArrayList<AttachingConnector> list = new ArrayList<AttachingConnector>(1);
+		ArrayList<AttachingConnector> list = new ArrayList<>(1);
 		list.add(new SocketAttachingConnectorImpl(this));
 		return list;
 	}
@@ -203,7 +203,7 @@
 	 */
 	@Override
 	public List<LaunchingConnector> launchingConnectors() {
-		ArrayList<LaunchingConnector> list = new ArrayList<LaunchingConnector>(2);
+		ArrayList<LaunchingConnector> list = new ArrayList<>(2);
 		list.add(new SocketLaunchingConnectorImpl(this));
 		list.add(new SocketRawLaunchingConnectorImpl(this));
 		return list;
@@ -214,7 +214,7 @@
 	 */
 	@Override
 	public List<ListeningConnector> listeningConnectors() {
-		ArrayList<ListeningConnector> list = new ArrayList<ListeningConnector>(1);
+		ArrayList<ListeningConnector> list = new ArrayList<>(1);
 		list.add(new SocketListeningConnectorImpl(this));
 		return list;
 	}
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/VoidTypeImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/VoidTypeImpl.java
index 6a18f07..7b3d2e2 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/VoidTypeImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/VoidTypeImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -16,7 +16,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class VoidTypeImpl extends TypeImpl implements VoidType {
 	/**
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/VoidValueImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/VoidValueImpl.java
index b5daa51..214ea47 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/VoidValueImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/VoidValueImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -20,7 +20,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class VoidValueImpl extends ValueImpl implements VoidValue {
 	/** JDWP Tag. */
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/ConnectorImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/ConnectorImpl.java
index 69e5f0e..5bfffab 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/ConnectorImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/ConnectorImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Ivan Popov - Bug 184211: JDI connectors throw NullPointerException if used separately
@@ -27,7 +27,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public abstract class ConnectorImpl implements Connector {
 	/** Virtual machine manager that created this connector. */
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/PacketManager.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/PacketManager.java
index ea6786f..fb06e69 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/PacketManager.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/PacketManager.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -17,7 +17,7 @@
 /**
  * This class implements threads that receive/send packets from/to the Virtual
  * Machine.
- * 
+ *
  */
 public abstract class PacketManager implements Runnable {
 	/** Connector that performs IO to Virtual Machine. */
@@ -43,7 +43,7 @@
 	/**
 	 * Used to indicate that an IO exception occurred, closes connection to
 	 * Virtual Machine.
-	 * 
+	 *
 	 * @param disconnectException
 	 *            the IOException that occurred
 	 */
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/PacketReceiveManager.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/PacketReceiveManager.java
index 54423ac..2393096 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/PacketReceiveManager.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/PacketReceiveManager.java
@@ -60,9 +60,9 @@
 	public PacketReceiveManager(Connection connection, VirtualMachineImpl vmImpl) {
 		super(connection);
 		fVM = vmImpl;
-		fCommandPackets = new LinkedList<JdwpCommandPacket>();
-		fReplyPackets = new LinkedList<JdwpReplyPacket>();
-		fTimedOutPackets = new ArrayList<Integer>();
+		fCommandPackets = new LinkedList<>();
+		fReplyPackets = new LinkedList<>();
+		fTimedOutPackets = new ArrayList<>();
 	}
 
 	@Override
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/PacketSendManager.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/PacketSendManager.java
index 62b755a..4d67de6 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/PacketSendManager.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/PacketSendManager.java
@@ -23,7 +23,7 @@
 /**
  * This class implements a thread that sends available packets to the Virtual
  * Machine.
- * 
+ *
  */
 public class PacketSendManager extends PacketManager {
 	/** List of packets to be sent to Virtual Machine */
@@ -34,7 +34,7 @@
 	 */
 	public PacketSendManager(Connection connection) {
 		super(connection);
-		fOutgoingPackets = new LinkedList<JdwpPacket>();
+		fOutgoingPackets = new LinkedList<>();
 	}
 
 	@Override
@@ -103,7 +103,7 @@
 	 */
 	private void sendAvailablePackets() throws InterruptedException,
 			IOException {
-		LinkedList<JdwpPacket> packetsToSend = new LinkedList<JdwpPacket>();
+		LinkedList<JdwpPacket> packetsToSend = new LinkedList<>();
 		synchronized (fOutgoingPackets) {
 			while (fOutgoingPackets.size() == 0) {
 				fOutgoingPackets.wait();
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/SocketAttachingConnectorImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/SocketAttachingConnectorImpl.java
index bc63e3d..82d4dac 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/SocketAttachingConnectorImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/SocketAttachingConnectorImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -49,22 +49,22 @@
 	 */
 	@Override
 	public Map<String, Connector.Argument> defaultArguments() {
-		HashMap<String, Connector.Argument> arguments = new HashMap<String, Connector.Argument>(2);
+		HashMap<String, Connector.Argument> arguments = new HashMap<>(2);
 
 		// Host name
 		StringArgumentImpl strArg = new StringArgumentImpl(
-				"hostname", ConnectMessages.SocketAttachingConnectorImpl_Machine_name_to_which_to_attach_for_VM_connections_1, ConnectMessages.SocketAttachingConnectorImpl_Host_2, false); //$NON-NLS-1$  
+				"hostname", ConnectMessages.SocketAttachingConnectorImpl_Machine_name_to_which_to_attach_for_VM_connections_1, ConnectMessages.SocketAttachingConnectorImpl_Host_2, false); //$NON-NLS-1$
 		strArg.setValue("localhost"); //$NON-NLS-1$
 		arguments.put(strArg.name(), strArg);
 
 		// Port
 		IntegerArgumentImpl intArg = new IntegerArgumentImpl(
-				"port", ConnectMessages.SocketAttachingConnectorImpl_Port_number_to_which_to_attach_for_VM_connections_3, ConnectMessages.SocketAttachingConnectorImpl_Port_4, true, SocketTransportImpl.MIN_PORTNR, SocketTransportImpl.MAX_PORTNR); //$NON-NLS-1$  
+				"port", ConnectMessages.SocketAttachingConnectorImpl_Port_number_to_which_to_attach_for_VM_connections_3, ConnectMessages.SocketAttachingConnectorImpl_Port_4, true, SocketTransportImpl.MIN_PORTNR, SocketTransportImpl.MAX_PORTNR); //$NON-NLS-1$
 		arguments.put(intArg.name(), intArg);
 
 		// Timeout
 		IntegerArgumentImpl timeoutArg = new IntegerArgumentImpl(
-				"timeout", ConnectMessages.SocketAttachingConnectorImpl_1, ConnectMessages.SocketAttachingConnectorImpl_2, false, 0, Integer.MAX_VALUE); //$NON-NLS-1$  
+				"timeout", ConnectMessages.SocketAttachingConnectorImpl_1, ConnectMessages.SocketAttachingConnectorImpl_2, false, 0, Integer.MAX_VALUE); //$NON-NLS-1$
 		timeoutArg.setValue(0); // by default wait forever
 		arguments.put(timeoutArg.name(), timeoutArg);
 
@@ -136,7 +136,7 @@
 			connection = ((SocketTransportImpl) fTransport).attach(fHostname,
 					fPort, fTimeout, 0);
 		} catch (IllegalArgumentException e) {
-			List<String> args = new ArrayList<String>();
+			List<String> args = new ArrayList<>();
 			args.add("hostname"); //$NON-NLS-1$
 			args.add("port"); //$NON-NLS-1$
 			throw new IllegalConnectorArgumentsException(e.getMessage(), args);
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/SocketConnection.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/SocketConnection.java
index 858fcc1..4ae41ab 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/SocketConnection.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/SocketConnection.java
@@ -37,7 +37,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see com.sun.jdi.connect.spi.Connection#close()
 	 */
 	@Override
@@ -51,7 +51,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see com.sun.jdi.connect.spi.Connection#isOpen()
 	 */
 	@Override
@@ -61,7 +61,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see com.sun.jdi.connect.spi.Connection#readPacket()
 	 */
 	@Override
@@ -98,7 +98,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see com.sun.jdi.connect.spi.Connection#writePacket(byte[])
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/SocketLaunchingConnectorImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/SocketLaunchingConnectorImpl.java
index 439af3c..3be7c5c 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/SocketLaunchingConnectorImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/SocketLaunchingConnectorImpl.java
@@ -68,39 +68,39 @@
 	 */
 	@Override
 	public Map<String, Connector.Argument> defaultArguments() {
-		HashMap<String, Connector.Argument> arguments = new HashMap<String, Connector.Argument>(6);
+		HashMap<String, Connector.Argument> arguments = new HashMap<>(6);
 
 		// Home
 		StringArgumentImpl strArg = new StringArgumentImpl(
-				"home", ConnectMessages.SocketLaunchingConnectorImpl_Home_directory_of_the_SDK_or_runtime_environment_used_to_launch_the_application_1, ConnectMessages.SocketLaunchingConnectorImpl_Home_2, false); //$NON-NLS-1$  
+				"home", ConnectMessages.SocketLaunchingConnectorImpl_Home_directory_of_the_SDK_or_runtime_environment_used_to_launch_the_application_1, ConnectMessages.SocketLaunchingConnectorImpl_Home_2, false); //$NON-NLS-1$
 		strArg.setValue(System.getProperty("java.home")); //$NON-NLS-1$
 		arguments.put(strArg.name(), strArg);
 
 		// Options
 		strArg = new StringArgumentImpl(
-				"options", ConnectMessages.SocketLaunchingConnectorImpl_Launched_VM_options_3, ConnectMessages.SocketLaunchingConnectorImpl_Options_4, false); //$NON-NLS-1$  
+				"options", ConnectMessages.SocketLaunchingConnectorImpl_Launched_VM_options_3, ConnectMessages.SocketLaunchingConnectorImpl_Options_4, false); //$NON-NLS-1$
 		arguments.put(strArg.name(), strArg);
 
 		// Main
 		strArg = new StringArgumentImpl(
-				"main", ConnectMessages.SocketLaunchingConnectorImpl_Main_class_and_arguments__or_if__jar_is_an_option__the_main_jar_file_and_arguments_5, ConnectMessages.SocketLaunchingConnectorImpl_Main_6, true); //$NON-NLS-1$  
+				"main", ConnectMessages.SocketLaunchingConnectorImpl_Main_class_and_arguments__or_if__jar_is_an_option__the_main_jar_file_and_arguments_5, ConnectMessages.SocketLaunchingConnectorImpl_Main_6, true); //$NON-NLS-1$
 		arguments.put(strArg.name(), strArg);
 
 		// Suspend
 		BooleanArgumentImpl boolArg = new BooleanArgumentImpl(
-				"suspend", ConnectMessages.SocketLaunchingConnectorImpl_All_threads_will_be_suspended_before_execution_of_main_7, ConnectMessages.SocketLaunchingConnectorImpl_Suspend_8, false); //$NON-NLS-1$  
+				"suspend", ConnectMessages.SocketLaunchingConnectorImpl_All_threads_will_be_suspended_before_execution_of_main_7, ConnectMessages.SocketLaunchingConnectorImpl_Suspend_8, false); //$NON-NLS-1$
 		boolArg.setValue(true);
 		arguments.put(boolArg.name(), boolArg);
 
 		// Quote
 		strArg = new StringArgumentImpl(
-				"quote", ConnectMessages.SocketLaunchingConnectorImpl_Character_used_to_combine_space_delimited_text_into_a_single_command_line_argument_9, ConnectMessages.SocketLaunchingConnectorImpl_Quote_10, true); //$NON-NLS-1$  
+				"quote", ConnectMessages.SocketLaunchingConnectorImpl_Character_used_to_combine_space_delimited_text_into_a_single_command_line_argument_9, ConnectMessages.SocketLaunchingConnectorImpl_Quote_10, true); //$NON-NLS-1$
 		strArg.setValue("\""); //$NON-NLS-1$
 		arguments.put(strArg.name(), strArg);
 
 		// Launcher
 		strArg = new StringArgumentImpl(
-				"vmexec", ConnectMessages.SocketLaunchingConnectorImpl_Name_of_the_Java_VM_launcher_11, ConnectMessages.SocketLaunchingConnectorImpl_Launcher_12, true); //$NON-NLS-1$  
+				"vmexec", ConnectMessages.SocketLaunchingConnectorImpl_Name_of_the_Java_VM_launcher_11, ConnectMessages.SocketLaunchingConnectorImpl_Launcher_12, true); //$NON-NLS-1$
 		strArg.setValue("java"); //$NON-NLS-1$
 		arguments.put(strArg.name(), strArg);
 
@@ -207,7 +207,7 @@
 			proc.destroy();
 			String message = NLS.bind(ConnectMessages.SocketLaunchingConnectorImpl_VM_did_not_connect_within_given_time___0__ms_1,
 							new String[] { ((Connector.IntegerArgument) args
-									.get("timeout")).value() }); //$NON-NLS-1$ 
+									.get("timeout")).value() }); //$NON-NLS-1$
 			throw new VMStartException(message, proc);
 		}
 
@@ -218,7 +218,7 @@
 	/**
 	 * Returns a free port number on localhost, or -1 if unable to find a free
 	 * port.
-	 * 
+	 *
 	 * @return a free port number on localhost, or -1 if unable to find a free
 	 *         port
 	 * @since 3.2
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/SocketListeningConnectorImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/SocketListeningConnectorImpl.java
index ce62aa4..86ab266 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/SocketListeningConnectorImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/SocketListeningConnectorImpl.java
@@ -47,19 +47,19 @@
 	 */
 	@Override
 	public Map<String, Connector.Argument> defaultArguments() {
-		HashMap<String, Connector.Argument> arguments = new HashMap<String, Connector.Argument>(1);
+		HashMap<String, Connector.Argument> arguments = new HashMap<>(1);
 
 		// Port
 		IntegerArgumentImpl intArg = new IntegerArgumentImpl(
-				"port", ConnectMessages.SocketListeningConnectorImpl_Port_number_at_which_to_listen_for_VM_connections_1, ConnectMessages.SocketListeningConnectorImpl_Port_2, true, SocketTransportImpl.MIN_PORTNR, SocketTransportImpl.MAX_PORTNR); //$NON-NLS-1$  
+				"port", ConnectMessages.SocketListeningConnectorImpl_Port_number_at_which_to_listen_for_VM_connections_1, ConnectMessages.SocketListeningConnectorImpl_Port_2, true, SocketTransportImpl.MIN_PORTNR, SocketTransportImpl.MAX_PORTNR); //$NON-NLS-1$
 		arguments.put(intArg.name(), intArg);
 
 		// Timeout
 		intArg = new IntegerArgumentImpl(
-				"timeout", ConnectMessages.SocketListeningConnectorImpl_Timeout_before_accept_returns_3, ConnectMessages.SocketListeningConnectorImpl_Timeout_4, false, 0, Integer.MAX_VALUE); //$NON-NLS-1$  
+				"timeout", ConnectMessages.SocketListeningConnectorImpl_Timeout_before_accept_returns_3, ConnectMessages.SocketListeningConnectorImpl_Timeout_4, false, 0, Integer.MAX_VALUE); //$NON-NLS-1$
 		arguments.put(intArg.name(), intArg);
 
-		// FIXME: connectionLimit is not actually used in this class, but in the higher-level controller, SocketListenConnector.  
+		// FIXME: connectionLimit is not actually used in this class, but in the higher-level controller, SocketListenConnector.
 		// But IntegerArgumentImpl is package restricted so we must put it here.
 		intArg = new IntegerArgumentImpl("connectionLimit", ConnectMessages.SocketListeningConnectorImpl_Limit_incoming_connections, ConnectMessages.SocketListeningConnectorImpl_Limit, false, 0, Integer.MAX_VALUE); //$NON-NLS-1$
 		intArg.setValue(1);  // mimics previous behaviour, allowing a single connection
@@ -126,7 +126,7 @@
 
 	/**
 	 * Listens for one or more connections initiated by target VMs.
-	 * 
+	 *
 	 * @return Returns the address at which the connector is listening for a
 	 *         connection.
 	 */
@@ -154,7 +154,7 @@
 
 	/**
 	 * Waits for a target VM to attach to this connector.
-	 * 
+	 *
 	 * @return Returns a connected Virtual Machine.
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/SocketRawLaunchingConnectorImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/SocketRawLaunchingConnectorImpl.java
index 2634bb1..9986bb1 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/SocketRawLaunchingConnectorImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/SocketRawLaunchingConnectorImpl.java
@@ -56,21 +56,21 @@
 	 */
 	@Override
 	public Map<String, Connector.Argument> defaultArguments() {
-		HashMap<String, Connector.Argument> arguments = new HashMap<String, Connector.Argument>(3);
+		HashMap<String, Connector.Argument> arguments = new HashMap<>(3);
 
 		// Command
 		StringArgumentImpl strArg = new StringArgumentImpl(
-				"command", ConnectMessages.SocketRawLaunchingConnectorImpl_Raw_command_to_start_the_debugged_application_VM_1, ConnectMessages.SocketRawLaunchingConnectorImpl_Command_2, true); //$NON-NLS-1$  
+				"command", ConnectMessages.SocketRawLaunchingConnectorImpl_Raw_command_to_start_the_debugged_application_VM_1, ConnectMessages.SocketRawLaunchingConnectorImpl_Command_2, true); //$NON-NLS-1$
 		arguments.put(strArg.name(), strArg);
 
 		// Address
 		strArg = new StringArgumentImpl(
-				"address", ConnectMessages.SocketRawLaunchingConnectorImpl_Address_from_which_to_listen_for_a_connection_after_the_raw_command_is_run_3, ConnectMessages.SocketRawLaunchingConnectorImpl_Address_4, true); //$NON-NLS-1$  
+				"address", ConnectMessages.SocketRawLaunchingConnectorImpl_Address_from_which_to_listen_for_a_connection_after_the_raw_command_is_run_3, ConnectMessages.SocketRawLaunchingConnectorImpl_Address_4, true); //$NON-NLS-1$
 		arguments.put(strArg.name(), strArg);
 
 		// Quote
 		strArg = new StringArgumentImpl(
-				"quote", ConnectMessages.SocketRawLaunchingConnectorImpl_Character_used_to_combine_space_delimited_text_into_a_single_command_line_argument_5, ConnectMessages.SocketRawLaunchingConnectorImpl_Quote_6, true); //$NON-NLS-1$  
+				"quote", ConnectMessages.SocketRawLaunchingConnectorImpl_Character_used_to_combine_space_delimited_text_into_a_single_command_line_argument_5, ConnectMessages.SocketRawLaunchingConnectorImpl_Quote_6, true); //$NON-NLS-1$
 		strArg.setValue("\""); //$NON-NLS-1$
 		arguments.put(strArg.name(), strArg);
 
@@ -153,7 +153,7 @@
 			proc.destroy();
 			String message = NLS.bind(ConnectMessages.SocketLaunchingConnectorImpl_VM_did_not_connect_within_given_time___0__ms_1,
 							new String[] { ((Connector.IntegerArgument) args
-									.get("timeout")).value() }); //$NON-NLS-1$ 
+									.get("timeout")).value() }); //$NON-NLS-1$
 			throw new VMStartException(message, proc);
 		}
 
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/SocketTransportImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/SocketTransportImpl.java
index dcb12d3..624d3e6 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/SocketTransportImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/SocketTransportImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -33,7 +33,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see com.sun.jdi.connect.Transport#name()
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/SocketTransportService.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/SocketTransportService.java
index e8b2c75..f363e24 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/SocketTransportService.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/SocketTransportService.java
@@ -65,7 +65,7 @@
 
 		/*
 		 * (non-Javadoc)
-		 * 
+		 *
 		 * @see com.sun.jdi.connect.spi.TransportService.ListenKey#address()
 		 */
 		@Override
@@ -79,7 +79,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * com.sun.jdi.connect.spi.TransportService#accept(com.sun.jdi.connect.spi
 	 * .TransportService.ListenKey, long, long)
@@ -107,7 +107,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see com.sun.jdi.connect.spi.TransportService#attach(java.lang.String,
 	 * long, long)
 	 */
@@ -226,7 +226,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see com.sun.jdi.connect.spi.TransportService#capabilities()
 	 */
 	@Override
@@ -236,7 +236,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see com.sun.jdi.connect.spi.TransportService#description()
 	 */
 	@Override
@@ -246,7 +246,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see com.sun.jdi.connect.spi.TransportService#name()
 	 */
 	@Override
@@ -256,7 +256,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see com.sun.jdi.connect.spi.TransportService#startListening()
 	 */
 	@Override
@@ -267,7 +267,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * com.sun.jdi.connect.spi.TransportService#startListening(java.lang.String)
 	 */
@@ -298,7 +298,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * com.sun.jdi.connect.spi.TransportService#stopListening(com.sun.jdi.connect
 	 * .spi.TransportService.ListenKey)
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/TransportImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/TransportImpl.java
index 686a446..42af7ae 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/TransportImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/TransportImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -19,7 +19,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public abstract class TransportImpl implements Transport {
 	/** Name of Transport. */
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/AccessWatchpointEventImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/AccessWatchpointEventImpl.java
index 194115b..f0dac58 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/AccessWatchpointEventImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/AccessWatchpointEventImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -22,7 +22,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class AccessWatchpointEventImpl extends WatchpointEventImpl implements
 		AccessWatchpointEvent {
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/BreakpointEventImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/BreakpointEventImpl.java
index 7a99b8a..e4d81c5 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/BreakpointEventImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/BreakpointEventImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -23,7 +23,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class BreakpointEventImpl extends LocatableEventImpl implements
 		BreakpointEvent {
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/ClassPrepareEventImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/ClassPrepareEventImpl.java
index 0fdd93f..e7514aa 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/ClassPrepareEventImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/ClassPrepareEventImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -25,7 +25,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class ClassPrepareEventImpl extends EventImpl implements
 		ClassPrepareEvent {
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/ClassUnloadEventImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/ClassUnloadEventImpl.java
index a570b06..c8d4075 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/ClassUnloadEventImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/ClassUnloadEventImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -23,7 +23,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class ClassUnloadEventImpl extends EventImpl implements ClassUnloadEvent {
 	/** Jdwp Event Kind. */
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/EventImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/EventImpl.java
index bac2fe1..7a0df05 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/EventImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/EventImpl.java
@@ -28,7 +28,7 @@
 /**
  * This class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public abstract class EventImpl extends MirrorImpl implements Event {
 	/** Constants for EventKind. */
@@ -211,7 +211,7 @@
 			return;
 
 		java.lang.reflect.Field[] fields = EventImpl.class.getDeclaredFields();
-		fEventKindMap = new HashMap<Integer, String>();
+		fEventKindMap = new HashMap<>();
 		for (Field field : fields) {
 			if ((field.getModifiers() & java.lang.reflect.Modifier.PUBLIC) == 0
 					|| (field.getModifiers() & java.lang.reflect.Modifier.STATIC) == 0
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/EventIteratorImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/EventIteratorImpl.java
index 36ab027..02dceed 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/EventIteratorImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/EventIteratorImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,7 +18,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class EventIteratorImpl implements EventIterator {
 	/** List iterator implementation of iterator. */
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/EventQueueImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/EventQueueImpl.java
index 3f11ff8..393c1e2 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/EventQueueImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/EventQueueImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -26,7 +26,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class EventQueueImpl extends MirrorImpl implements EventQueue {
 	/** Flag used to see if a VMDisconnectEvent has already been generated. */
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/EventSetImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/EventSetImpl.java
index 4129b40..642e1a9 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/EventSetImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/EventSetImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -31,7 +31,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class EventSetImpl extends MirrorImpl implements EventSet {
 	/** Set that is used to store events. */
@@ -51,7 +51,7 @@
 	 */
 	public EventSetImpl(VirtualMachineImpl vmImpl, EventImpl[] events) {
 		this(vmImpl);
-		fEvents = new ArrayList<Event>(events.length);
+		fEvents = new ArrayList<>(events.length);
 		for (EventImpl event : events)
 			fEvents.add(event);
 	}
@@ -61,7 +61,7 @@
 	 */
 	public EventSetImpl(VirtualMachineImpl vmImpl, EventImpl event) {
 		this(vmImpl);
-		fEvents = new ArrayList<Event>(1);
+		fEvents = new ArrayList<>(1);
 		fEvents.add(event);
 	}
 
@@ -129,7 +129,7 @@
 			return;
 		}
 		Iterator<Event> iter = fEvents.iterator();
-		List<ThreadReference> resumedThreads = new ArrayList<ThreadReference>(fEvents.size());
+		List<ThreadReference> resumedThreads = new ArrayList<>(fEvents.size());
 		while (iter.hasNext()) {
 			EventImpl event = (EventImpl)iter.next();
 			ThreadReference thread = event.thread();
@@ -161,7 +161,7 @@
 		// Read size.
 		int size = target.readInt("size", in); //$NON-NLS-1$
 		// Create event list.
-		eventSet.fEvents = new ArrayList<Event>(size);
+		eventSet.fEvents = new ArrayList<>(size);
 
 		while (size-- > 0) {
 			EventImpl event = EventImpl.read(target, in);
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/ExceptionEventImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/ExceptionEventImpl.java
index 2a38360..9491d18 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/ExceptionEventImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/ExceptionEventImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -26,7 +26,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class ExceptionEventImpl extends LocatableEventImpl implements
 		ExceptionEvent {
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/LocatableEventImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/LocatableEventImpl.java
index f3d30a4..71e03f7 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/LocatableEventImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/LocatableEventImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -25,7 +25,7 @@
 /**
  * This class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public abstract class LocatableEventImpl extends EventImpl implements Locatable {
 	/** Location where event occurred. */
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/MethodEntryEventImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/MethodEntryEventImpl.java
index e2b2110..26965d0 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/MethodEntryEventImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/MethodEntryEventImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -23,7 +23,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class MethodEntryEventImpl extends LocatableEventImpl implements
 		MethodEntryEvent {
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/MethodExitEventImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/MethodExitEventImpl.java
index eb8a862..8b0c4be 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/MethodExitEventImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/MethodExitEventImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -25,7 +25,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class MethodExitEventImpl extends LocatableEventImpl implements
 		MethodExitEvent {
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/ModificationWatchpointEventImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/ModificationWatchpointEventImpl.java
index 7ce9dd3..3d4c4dd 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/ModificationWatchpointEventImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/ModificationWatchpointEventImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -24,7 +24,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class ModificationWatchpointEventImpl extends WatchpointEventImpl
 		implements ModificationWatchpointEvent {
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/MonitorContendedEnterEventImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/MonitorContendedEnterEventImpl.java
index f0587a7..7e3180b 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/MonitorContendedEnterEventImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/MonitorContendedEnterEventImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -26,7 +26,7 @@
 /**
  * This class provides an implementation of MonitorContendedEnterEvent according
  * to Sun's 1.6 specs
- * 
+ *
  * @since 3.3
  */
 public class MonitorContendedEnterEventImpl extends LocatableEventImpl
@@ -63,7 +63,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see com.sun.jdi.event.MonitorContendedEnterEvent#monitor()
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/MonitorContendedEnteredEventImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/MonitorContendedEnteredEventImpl.java
index 8ec51c6..318ab98 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/MonitorContendedEnteredEventImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/MonitorContendedEnteredEventImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -26,7 +26,7 @@
 /**
  * This class provides an implementation of MonitorContendedEnteredEvent
  * according to Sun's 1.6 specs
- * 
+ *
  * @since 3.3
  */
 public class MonitorContendedEnteredEventImpl extends LocatableEventImpl
@@ -63,7 +63,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see com.sun.jdi.event.MonitorContendedEnteredEvent#monitor()
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/MonitorWaitEventImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/MonitorWaitEventImpl.java
index 23ffbad..eb30843 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/MonitorWaitEventImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/MonitorWaitEventImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -62,7 +62,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see com.sun.jdi.event.MonitorWaitedEvent#monitor()
 	 */
 	@Override
@@ -72,7 +72,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see com.sun.jdi.event.MonitorWaitEvent#timeout()
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/MonitorWaitedEventImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/MonitorWaitedEventImpl.java
index dcebca7..8878e05 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/MonitorWaitedEventImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/MonitorWaitedEventImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -28,7 +28,7 @@
 /**
  * This class provides an implementation of MonitorContendedEnterEvent according
  * to Sun's 1.6 specs
- * 
+ *
  * @since 3.3
  */
 public class MonitorWaitedEventImpl extends LocatableEventImpl implements
@@ -70,7 +70,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see com.sun.jdi.event.MonitorWaitedEvent#monitor()
 	 */
 	@Override
@@ -80,7 +80,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see com.sun.jdi.event.MonitorWaitedEvent#timedout()
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/StepEventImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/StepEventImpl.java
index e6cfa2f..613f9c9 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/StepEventImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/StepEventImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -22,7 +22,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class StepEventImpl extends LocatableEventImpl implements StepEvent {
 	/** Jdwp Event Kind. */
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/ThreadDeathEventImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/ThreadDeathEventImpl.java
index dec9494..c3762df 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/ThreadDeathEventImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/ThreadDeathEventImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -23,7 +23,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class ThreadDeathEventImpl extends EventImpl implements ThreadDeathEvent {
 	/** Jdwp Event Kind. */
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/ThreadStartEventImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/ThreadStartEventImpl.java
index 62ab023..f78b7a0 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/ThreadStartEventImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/ThreadStartEventImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -23,7 +23,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class ThreadStartEventImpl extends EventImpl implements ThreadStartEvent {
 	/** Jdwp Event Kind. */
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/VMDeathEventImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/VMDeathEventImpl.java
index d32dee1..19486b9 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/VMDeathEventImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/VMDeathEventImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -21,7 +21,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class VMDeathEventImpl extends EventImpl implements VMDeathEvent {
 	/** Jdwp Event Kind. */
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/VMDisconnectEventImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/VMDisconnectEventImpl.java
index 6c37909..6de4b8b 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/VMDisconnectEventImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/VMDisconnectEventImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -21,7 +21,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class VMDisconnectEventImpl extends EventImpl implements
 		VMDisconnectEvent {
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/VMStartEventImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/VMStartEventImpl.java
index 85f4998..db3034d 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/VMStartEventImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/VMStartEventImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -23,7 +23,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class VMStartEventImpl extends EventImpl implements VMStartEvent {
 	/** Jdwp Event Kind. */
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/WatchpointEventImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/WatchpointEventImpl.java
index 2ef1db1..5325d42 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/WatchpointEventImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/event/WatchpointEventImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -27,7 +27,7 @@
 /**
  * This class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public abstract class WatchpointEventImpl extends LocatableEventImpl implements
 		WatchpointEvent {
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JDWPMessages.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JDWPMessages.java
index 8dcb07d..1ccc113 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JDWPMessages.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JDWPMessages.java
@@ -3,8 +3,8 @@
  * program and the accompanying materials are made available under the terms of
  * the Eclipse Public License v1.0 which accompanies this distribution, and is
  * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
+ *
+ * Contributors:
  * IBM - Initial API and implementation
  **********************************************************************/
 package org.eclipse.jdi.internal.jdwp;
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpArrayID.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpArrayID.java
index a394d9c..703b454 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpArrayID.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpArrayID.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -15,7 +15,7 @@
 /**
  * This class implements the corresponding Java Debug Wire Protocol (JDWP) ID
  * declared by the JDWP specification.
- * 
+ *
  */
 public class JdwpArrayID extends JdwpReferenceTypeID {
 	/**
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpClassID.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpClassID.java
index bb91a0f..1b2e1bb 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpClassID.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpClassID.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -15,7 +15,7 @@
 /**
  * This class implements the corresponding Java Debug Wire Protocol (JDWP) ID
  * declared by the JDWP specification.
- * 
+ *
  */
 public class JdwpClassID extends JdwpReferenceTypeID {
 	/**
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpClassLoaderID.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpClassLoaderID.java
index c3a8d58..04162fb 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpClassLoaderID.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpClassLoaderID.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -15,7 +15,7 @@
 /**
  * This class implements the corresponding Java Debug Wire Protocol (JDWP) ID
  * declared by the JDWP specification.
- * 
+ *
  */
 public class JdwpClassLoaderID extends JdwpObjectID {
 	/**
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpClassObjectID.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpClassObjectID.java
index 5d337dc..86c595a 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpClassObjectID.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpClassObjectID.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -15,7 +15,7 @@
 /**
  * This class implements the corresponding Java Debug Wire Protocol (JDWP) ID
  * declared by the JDWP specification.
- * 
+ *
  */
 public class JdwpClassObjectID extends JdwpObjectID {
 	/**
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpCommandPacket.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpCommandPacket.java
index ed2e326..103383c 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpCommandPacket.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpCommandPacket.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jesper Steen Møller <jesper@selskabet.org> - Bug 430839
@@ -20,7 +20,7 @@
 /**
  * This class implements the corresponding Java Debug Wire Protocol (JDWP)
  * packet declared by the JDWP specification.
- * 
+ *
  */
 public class JdwpCommandPacket extends JdwpPacket {
 	/** Command Sets. */
@@ -257,7 +257,7 @@
 		Field[] fields = JdwpCommandPacket.class.getDeclaredFields();
 
 		// First get the set names.
-		Map<Integer, String> setNames = new HashMap<Integer, String>(fields.length);
+		Map<Integer, String> setNames = new HashMap<>(fields.length);
 		for (Field field : fields) {
 			if ((field.getModifiers() & Modifier.PUBLIC) == 0
 					|| (field.getModifiers() & Modifier.STATIC) == 0
@@ -282,7 +282,7 @@
 		}
 
 		// Get the commands.
-		fgCommandMap = new HashMap<Integer, String>();
+		fgCommandMap = new HashMap<>();
 		for (Field field : fields) {
 			if ((field.getModifiers() & Modifier.PUBLIC) == 0
 					|| (field.getModifiers() & Modifier.STATIC) == 0
@@ -332,7 +332,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see java.lang.Object#toString()
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpFieldID.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpFieldID.java
index ea2e58b..5d36bad 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpFieldID.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpFieldID.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -15,7 +15,7 @@
 /**
  * This class implements the corresponding Java Debug Wire Protocol (JDWP) ID
  * declared by the JDWP specification.
- * 
+ *
  */
 public class JdwpFieldID extends JdwpID {
 	/**
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpFrameID.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpFrameID.java
index 102d499..acc725a 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpFrameID.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpFrameID.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -15,7 +15,7 @@
 /**
  * This class implements the corresponding Java Debug Wire Protocol (JDWP) ID
  * declared by the JDWP specification.
- * 
+ *
  */
 public class JdwpFrameID extends JdwpID {
 	/**
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpID.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpID.java
index 33d79a5..868f6ab 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpID.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpID.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -22,7 +22,7 @@
 /**
  * From this class all Java Debug Wire Protocol (JDWP) IDs declared by the JDWP
  * specification are derived.
- * 
+ *
  */
 public abstract class JdwpID {
 	/** Tag Constants. */
@@ -161,8 +161,8 @@
 			return;
 
 		java.lang.reflect.Field[] fields = JdwpID.class.getDeclaredFields();
-		fTagMap = new HashMap<Integer, String>();
-		fTypeTagMap = new HashMap<Integer, String>();
+		fTagMap = new HashMap<>();
+		fTypeTagMap = new HashMap<>();
 		for (Field field : fields) {
 			if ((field.getModifiers() & java.lang.reflect.Modifier.PUBLIC) == 0
 					|| (field.getModifiers() & java.lang.reflect.Modifier.STATIC) == 0
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpInterfaceID.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpInterfaceID.java
index c148622..77ee5e0 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpInterfaceID.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpInterfaceID.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -15,7 +15,7 @@
 /**
  * This class implements the corresponding Java Debug Wire Protocol (JDWP) ID
  * declared by the JDWP specification.
- * 
+ *
  */
 public class JdwpInterfaceID extends JdwpReferenceTypeID {
 	/**
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpMethodID.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpMethodID.java
index 630ac32..aa0a32d 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpMethodID.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpMethodID.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -15,7 +15,7 @@
 /**
  * This class implements the corresponding Java Debug Wire Protocol (JDWP) ID
  * declared by the JDWP specification.
- * 
+ *
  */
 public class JdwpMethodID extends JdwpID {
 	/**
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpObjectID.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpObjectID.java
index 3419a1c..417f5d0 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpObjectID.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpObjectID.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -15,7 +15,7 @@
 /**
  * This class implements the corresponding Java Debug Wire Protocol (JDWP) ID
  * declared by the JDWP specification.
- * 
+ *
  */
 public class JdwpObjectID extends JdwpID {
 	/**
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpPacket.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpPacket.java
index ed0f6ef..e47828d 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpPacket.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpPacket.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -19,7 +19,7 @@
 /**
  * This class implements the corresponding Java Debug Wire Protocol (JDWP)
  * packet declared by the JDWP specification.
- * 
+ *
  */
 public abstract class JdwpPacket {
 	/** General JDWP constants. */
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpReferenceTypeID.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpReferenceTypeID.java
index e351408..54dcab3 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpReferenceTypeID.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpReferenceTypeID.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -15,7 +15,7 @@
 /**
  * This class implements the corresponding Java Debug Wire Protocol (JDWP) ID
  * declared by the JDWP specification.
- * 
+ *
  */
 public class JdwpReferenceTypeID extends JdwpID {
 	/**
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpReplyPacket.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpReplyPacket.java
index 0622e15..90f333b 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpReplyPacket.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpReplyPacket.java
@@ -19,7 +19,7 @@
 /**
  * This class implements the corresponding Java Debug Wire Protocol (JDWP)
  * packet declared by the JDWP specification.
- * 
+ *
  */
 public class JdwpReplyPacket extends JdwpPacket {
 	/** Error code constants. */
@@ -139,7 +139,7 @@
 		}
 
 		Field[] fields = JdwpReplyPacket.class.getDeclaredFields();
-		fErrorMap = new HashMap<Integer, String>(fields.length);
+		fErrorMap = new HashMap<>(fields.length);
 		for (Field field : fields) {
 			if ((field.getModifiers() & Modifier.PUBLIC) == 0
 					|| (field.getModifiers() & Modifier.STATIC) == 0
@@ -169,7 +169,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see java.lang.Object#toString()
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpString.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpString.java
index 0bf384e..8b1af64 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpString.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpString.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,7 +18,7 @@
 /**
  * This class implements the corresponding Java Debug Wire Protocol (JDWP) ID
  * declared by the JDWP specification.
- * 
+ *
  */
 public class JdwpString {
 	/**
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpStringID.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpStringID.java
index 70c91f0..fd19a1a 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpStringID.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpStringID.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -15,7 +15,7 @@
 /**
  * This class implements the corresponding Java Debug Wire Protocol (JDWP) ID
  * declared by the JDWP specification.
- * 
+ *
  */
 public class JdwpStringID extends JdwpObjectID {
 	/**
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpThreadGroupID.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpThreadGroupID.java
index d634c32..f3e3de9 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpThreadGroupID.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpThreadGroupID.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -15,7 +15,7 @@
 /**
  * This class implements the corresponding Java Debug Wire Protocol (JDWP) ID
  * declared by the JDWP specification.
- * 
+ *
  */
 public class JdwpThreadGroupID extends JdwpObjectID {
 	/**
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpThreadID.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpThreadID.java
index 942bc64..2439c12 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpThreadID.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpThreadID.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -15,7 +15,7 @@
 /**
  * This class implements the corresponding Java Debug Wire Protocol (JDWP) ID
  * declared by the JDWP specification.
- * 
+ *
  */
 public class JdwpThreadID extends JdwpObjectID {
 	/**
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/AccessWatchpointRequestImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/AccessWatchpointRequestImpl.java
index 6adff9b..611e13a 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/AccessWatchpointRequestImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/AccessWatchpointRequestImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,7 +18,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class AccessWatchpointRequestImpl extends WatchpointRequestImpl
 		implements AccessWatchpointRequest {
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/BreakpointRequestImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/BreakpointRequestImpl.java
index dca970b..4458f6c 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/BreakpointRequestImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/BreakpointRequestImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -20,7 +20,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class BreakpointRequestImpl extends EventRequestImpl implements
 		BreakpointRequest, Locatable {
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/ClassPrepareRequestImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/ClassPrepareRequestImpl.java
index 9173d9a..dd14eb6 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/ClassPrepareRequestImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/ClassPrepareRequestImpl.java
@@ -18,7 +18,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class ClassPrepareRequestImpl extends EventRequestImpl implements
 		ClassPrepareRequest {
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/ClassUnloadRequestImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/ClassUnloadRequestImpl.java
index 3aae982..dc91026 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/ClassUnloadRequestImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/ClassUnloadRequestImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,7 +18,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class ClassUnloadRequestImpl extends EventRequestImpl implements
 		ClassUnloadRequest {
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/EventRequestImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/EventRequestImpl.java
index 21f43c6..c86bb83 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/EventRequestImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/EventRequestImpl.java
@@ -43,7 +43,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public abstract class EventRequestImpl extends MirrorImpl implements
 		EventRequest {
@@ -137,7 +137,7 @@
 	protected ArrayList<ObjectReference> fInstanceFilters = null;
 	/**
 	 * source name filters
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	protected ArrayList<String> fSourceNameFilters = null;
@@ -177,7 +177,7 @@
 	@Override
 	public void putProperty(Object key, Object value) {
 		if (fPropertyMap == null)
-			fPropertyMap = new HashMap<Object, Object>();
+			fPropertyMap = new HashMap<>();
 
 		if (value == null)
 			fPropertyMap.remove(key);
@@ -344,7 +344,7 @@
 	public void addCountFilter(int count) throws InvalidRequestStateException {
 		checkDisabled();
 		if (fCountFilters == null)
-			fCountFilters = new ArrayList<Integer>();
+			fCountFilters = new ArrayList<>();
 
 		fCountFilters.add(new Integer(count));
 	}
@@ -360,7 +360,7 @@
 		if (threadFilter.isCollected())
 			throw new ObjectCollectedException();
 		if (fThreadFilters == null)
-			fThreadFilters = new ArrayList<ThreadReference>();
+			fThreadFilters = new ArrayList<>();
 
 		fThreadFilters.add(threadFilter);
 	}
@@ -374,7 +374,7 @@
 		checkVM(filter);
 		checkDisabled();
 		if (fClassFilterRefs == null)
-			fClassFilterRefs = new ArrayList<ReferenceType>();
+			fClassFilterRefs = new ArrayList<>();
 
 		fClassFilterRefs.add(filter);
 	}
@@ -387,7 +387,7 @@
 			throws InvalidRequestStateException {
 		checkDisabled();
 		if (fClassFilters == null)
-			fClassFilters = new ArrayList<String>();
+			fClassFilters = new ArrayList<>();
 
 		fClassFilters.add(filter);
 	}
@@ -401,7 +401,7 @@
 			throws InvalidRequestStateException {
 		checkDisabled();
 		if (fClassExclusionFilters == null)
-			fClassExclusionFilters = new ArrayList<String>();
+			fClassExclusionFilters = new ArrayList<>();
 
 		fClassExclusionFilters.add(filter);
 	}
@@ -416,7 +416,7 @@
 		// Used in createBreakpointRequest.
 		checkVM(location);
 		if (fLocationFilters == null)
-			fLocationFilters = new ArrayList<LocationImpl>();
+			fLocationFilters = new ArrayList<>();
 
 		fLocationFilters.add(location);
 	}
@@ -434,7 +434,7 @@
 			checkVM(refType);
 
 		if (fExceptionFilters == null)
-			fExceptionFilters = new ArrayList<ExceptionFilter>();
+			fExceptionFilters = new ArrayList<>();
 
 		ExceptionFilter filter = new ExceptionFilter();
 		filter.fException = refType;
@@ -451,7 +451,7 @@
 		// Used in createXWatchpointRequest methods.
 		checkVM(field);
 		if (fFieldFilters == null)
-			fFieldFilters = new ArrayList<FieldImpl>();
+			fFieldFilters = new ArrayList<>();
 
 		fFieldFilters.add(field);
 	}
@@ -467,7 +467,7 @@
 		checkVM(thread);
 
 		if (fThreadStepFilters == null)
-			fThreadStepFilters = new ArrayList<ThreadStepFilter>();
+			fThreadStepFilters = new ArrayList<>();
 
 		ThreadStepFilter filter = new ThreadStepFilter();
 		filter.fThread = thread;
@@ -478,7 +478,7 @@
 
 	/**
 	 * Helper method which allows instance filters to be added
-	 * 
+	 *
 	 * @param instance
 	 *            the object ref instance to add to the listing
 	 */
@@ -486,7 +486,7 @@
 		checkDisabled();
 		checkVM(instance);
 		if (fInstanceFilters == null) {
-			fInstanceFilters = new ArrayList<ObjectReference>();
+			fInstanceFilters = new ArrayList<>();
 		}
 		fInstanceFilters.add(instance);
 	}
@@ -494,7 +494,7 @@
 	/**
 	 * Adds a source name filter to the request. An exact match or pattern
 	 * beginning OR ending in '*'.
-	 * 
+	 *
 	 * @param pattern
 	 *            source name pattern
 	 * @since 3.3
@@ -502,7 +502,7 @@
 	public void addSourceNameFilter(String pattern) {
 		checkDisabled();
 		if (fSourceNameFilters == null) {
-			fSourceNameFilters = new ArrayList<String>();
+			fSourceNameFilters = new ArrayList<>();
 		}
 		fSourceNameFilters.add(pattern);
 	}
@@ -714,7 +714,7 @@
 
 	/**
 	 * Returns whether JDWP supports source name filters (a 1.6 feature).
-	 * 
+	 *
 	 * @return whether JDWP supports source name filters
 	 */
 	private boolean supportsSourceNameFilters() {
@@ -731,10 +731,10 @@
 
 		java.lang.reflect.Field[] fields = EventRequestImpl.class
 				.getDeclaredFields();
-		fStepSizeMap = new HashMap<Integer, String>();
-		fStepDepthMap = new HashMap<Integer, String>();
-		fSuspendPolicyMap = new HashMap<Integer, String>();
-		fModifierKindMap = new HashMap<Integer, String>();
+		fStepSizeMap = new HashMap<>();
+		fStepDepthMap = new HashMap<>();
+		fSuspendPolicyMap = new HashMap<>();
+		fModifierKindMap = new HashMap<>();
 		for (Field field : fields) {
 			if ((field.getModifiers() & java.lang.reflect.Modifier.PUBLIC) == 0
 					|| (field.getModifiers() & java.lang.reflect.Modifier.STATIC) == 0
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/EventRequestManagerImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/EventRequestManagerImpl.java
index 1fb53fd..a86f15f 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/EventRequestManagerImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/EventRequestManagerImpl.java
@@ -83,36 +83,36 @@
 		private Hashtable<RequestID, RT> enabledrequests;
 
 		private EventRequestType() {
-			requests= new ArrayList<RT>();
-			enabledrequests= new Hashtable<RequestID, RT>();
+			requests= new ArrayList<>();
+			enabledrequests= new Hashtable<>();
 		}
-		
+
 		public List<RT> getUnmodifiableList() {
 			return Collections.unmodifiableList(requests);
 		}
-		
+
 		public void clear() {
 			requests.clear();
 			enabledrequests.clear();
 		}
 	}
-	
-	private EventRequestType<AccessWatchpointRequest> ACCESS_WATCHPOINT_TYPE= new EventRequestType<AccessWatchpointRequest>();
-	private EventRequestType<BreakpointRequest> BREAKPOINT_TYPE= new EventRequestType<BreakpointRequest>();
-	private EventRequestType<ClassPrepareRequest> CLASS_PREPARE_TYPE= new EventRequestType<ClassPrepareRequest>();
-	private EventRequestType<ClassUnloadRequest> CLASS_UNLOAD_TYPE= new EventRequestType<ClassUnloadRequest>();
-	private EventRequestType<MethodEntryRequest> METHOD_ENTRY_TYPE= new EventRequestType<MethodEntryRequest>();
-	private EventRequestType<MethodExitRequest> METHOD_EXIT_TYPE= new EventRequestType<MethodExitRequest>();
-	private EventRequestType<ExceptionRequest> EXCEPTION_TYPE= new EventRequestType<ExceptionRequest>();
-	private EventRequestType<ModificationWatchpointRequest> MODIFICATION_WATCHPOINT_TYPE= new EventRequestType<ModificationWatchpointRequest>();
-	private EventRequestType<StepRequest> STEP_TYPE= new EventRequestType<StepRequest>();
-	private EventRequestType<ThreadDeathRequest> THREAD_DEATH_TYPE= new EventRequestType<ThreadDeathRequest>();
-	private EventRequestType<ThreadStartRequest> THREAD_START_TYPE= new EventRequestType<ThreadStartRequest>();
-	private EventRequestType<VMDeathRequest> VM_DEATH_TYPE= new EventRequestType<VMDeathRequest>();
-	private EventRequestType<MonitorContendedEnteredRequest> MONITOR_CONTENDED_ENTERED_TYPE= new EventRequestType<MonitorContendedEnteredRequest>();
-	private EventRequestType<MonitorContendedEnterRequest> MONITOR_CONTENDED_ENTER_TYPE= new EventRequestType<MonitorContendedEnterRequest>();
-	private EventRequestType<MonitorWaitedRequest> MONITOR_WAITED_TYPE= new EventRequestType<MonitorWaitedRequest>();
-	private EventRequestType<MonitorWaitRequest> MONITOR_WAIT_TYPE= new EventRequestType<MonitorWaitRequest>();
+
+	private EventRequestType<AccessWatchpointRequest> ACCESS_WATCHPOINT_TYPE= new EventRequestType<>();
+	private EventRequestType<BreakpointRequest> BREAKPOINT_TYPE= new EventRequestType<>();
+	private EventRequestType<ClassPrepareRequest> CLASS_PREPARE_TYPE= new EventRequestType<>();
+	private EventRequestType<ClassUnloadRequest> CLASS_UNLOAD_TYPE= new EventRequestType<>();
+	private EventRequestType<MethodEntryRequest> METHOD_ENTRY_TYPE= new EventRequestType<>();
+	private EventRequestType<MethodExitRequest> METHOD_EXIT_TYPE= new EventRequestType<>();
+	private EventRequestType<ExceptionRequest> EXCEPTION_TYPE= new EventRequestType<>();
+	private EventRequestType<ModificationWatchpointRequest> MODIFICATION_WATCHPOINT_TYPE= new EventRequestType<>();
+	private EventRequestType<StepRequest> STEP_TYPE= new EventRequestType<>();
+	private EventRequestType<ThreadDeathRequest> THREAD_DEATH_TYPE= new EventRequestType<>();
+	private EventRequestType<ThreadStartRequest> THREAD_START_TYPE= new EventRequestType<>();
+	private EventRequestType<VMDeathRequest> VM_DEATH_TYPE= new EventRequestType<>();
+	private EventRequestType<MonitorContendedEnteredRequest> MONITOR_CONTENDED_ENTERED_TYPE= new EventRequestType<>();
+	private EventRequestType<MonitorContendedEnterRequest> MONITOR_CONTENDED_ENTER_TYPE= new EventRequestType<>();
+	private EventRequestType<MonitorWaitedRequest> MONITOR_WAITED_TYPE= new EventRequestType<>();
+	private EventRequestType<MonitorWaitRequest> MONITOR_WAIT_TYPE= new EventRequestType<>();
 
 	/**
 	 * Creates new EventRequestManager.
@@ -132,7 +132,7 @@
 		ACCESS_WATCHPOINT_TYPE.requests.add(req);
 		return req;
 	}
- 
+
 	/* (non-Javadoc)
 	 * @see com.sun.jdi.request.EventRequestManager#createBreakpointRequest(com.sun.jdi.Location)
 	 */
@@ -144,7 +144,7 @@
 		BREAKPOINT_TYPE.requests.add(req);
 		return req;
 	}
- 
+
 	/* (non-Javadoc)
 	 * @see com.sun.jdi.request.EventRequestManager#createClassPrepareRequest()
 	 */
@@ -153,8 +153,8 @@
 		ClassPrepareRequestImpl req = new ClassPrepareRequestImpl(virtualMachineImpl());
 		CLASS_PREPARE_TYPE.requests.add(req);
 		return req;
-	} 
-	
+	}
+
 	/* (non-Javadoc)
 	 * @see com.sun.jdi.request.EventRequestManager#createClassUnloadRequest()
 	 */
@@ -163,8 +163,8 @@
 		ClassUnloadRequestImpl req = new ClassUnloadRequestImpl(virtualMachineImpl());
 		CLASS_UNLOAD_TYPE.requests.add(req);
 		return req;
-	} 
- 	 
+	}
+
 	/* (non-Javadoc)
 	 * @see com.sun.jdi.request.EventRequestManager#createExceptionRequest(com.sun.jdi.ReferenceType, boolean, boolean)
 	 */
@@ -175,7 +175,7 @@
 		req.addExceptionFilter(refTypeImpl, notifyCaught, notifyUncaught);
 		EXCEPTION_TYPE.requests.add(req);
 		return req;
-	} 
+	}
 
 	/* (non-Javadoc)
 	 * @see com.sun.jdi.request.EventRequestManager#createMethodEntryRequest()
@@ -185,7 +185,7 @@
 		MethodEntryRequestImpl req = new MethodEntryRequestImpl(virtualMachineImpl());
 		METHOD_ENTRY_TYPE.requests.add(req);
 		return req;
-	} 
+	}
 
 	/* (non-Javadoc)
 	 * @see com.sun.jdi.request.EventRequestManager#createMethodExitRequest()
@@ -195,8 +195,8 @@
 		MethodExitRequestImpl req = new MethodExitRequestImpl(virtualMachineImpl());
 		METHOD_EXIT_TYPE.requests.add(req);
 		return req;
-	} 
-	
+	}
+
 	/* (non-Javadoc)
 	 * @see com.sun.jdi.request.EventRequestManager#createMonitorContendedEnteredRequest()
 	 */
@@ -206,7 +206,7 @@
 		MONITOR_CONTENDED_ENTERED_TYPE.requests.add(req);
 		return req;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see com.sun.jdi.request.EventRequestManager#createMonitorContendedEnterRequest()
 	 */
@@ -216,7 +216,7 @@
 		MONITOR_CONTENDED_ENTER_TYPE.requests.add(req);
 		return req;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see com.sun.jdi.request.EventRequestManager#createMonitorWaitedRequest()
 	 */
@@ -226,7 +226,7 @@
 		MONITOR_WAITED_TYPE.requests.add(req);
 		return req;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see com.sun.jdi.request.EventRequestManager#createMonitorWaitRequest()
 	 */
@@ -236,7 +236,7 @@
 		MONITOR_WAIT_TYPE.requests.add(req);
 		return req;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see com.sun.jdi.request.EventRequestManager#createModificationWatchpointRequest(com.sun.jdi.Field)
 	 */
@@ -247,19 +247,19 @@
 		req.addFieldFilter(fieldImpl);
 		MODIFICATION_WATCHPOINT_TYPE.requests.add(req);
 		return req;
-	} 
-	 
+	}
+
 	/* (non-Javadoc)
 	 * @see com.sun.jdi.request.EventRequestManager#createStepRequest(com.sun.jdi.ThreadReference, int, int)
 	 */
 	@Override
 	public StepRequest createStepRequest(ThreadReference thread, int size, int depth) throws DuplicateRequestException, ObjectCollectedException {
 	   	ThreadReferenceImpl threadImpl = (ThreadReferenceImpl)thread;
-		StepRequestImpl req = new StepRequestImpl(virtualMachineImpl());		
+		StepRequestImpl req = new StepRequestImpl(virtualMachineImpl());
 		req.addStepFilter(threadImpl, size, depth);
 		STEP_TYPE.requests.add(req);
 		return req;
-	} 
+	}
 
 	/* (non-Javadoc)
 	 * @see com.sun.jdi.request.EventRequestManager#createThreadDeathRequest()
@@ -269,7 +269,7 @@
 		ThreadDeathRequestImpl req = new ThreadDeathRequestImpl(virtualMachineImpl());
 		THREAD_DEATH_TYPE.requests.add(req);
 		return req;
-	} 
+	}
 
 	/* (non-Javadoc)
 	 * @see com.sun.jdi.request.EventRequestManager#createThreadStartRequest()
@@ -280,7 +280,7 @@
 		THREAD_START_TYPE.requests.add(req);
 		return req;
 	}
-	
+
 	/*
 	 * @see EventRequestManager#createVMDeathRequest()
 	 */
@@ -289,7 +289,7 @@
 		VMDeathRequestImpl req = new VMDeathRequestImpl(virtualMachineImpl());
 		VM_DEATH_TYPE.requests.add(req);
 		return req;
-	}	
+	}
 
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdi.hcr.EventRequestManager#createReenterStepRequest(com.sun.jdi.ThreadReference)
@@ -306,7 +306,7 @@
 		STEP_TYPE.requests.add(req);
 		return req;
 	}
-	
+
 	/**
 	 * Enables class prepare requests for all loaded classes.  This is
 	 * necessary for current versions of the KVM to function correctly.
@@ -323,11 +323,11 @@
 
 		requestPrepare.enable();
 	}
-	
+
 	/**
 	 * Creates ClassUnloadRequest for maintaining class information for within JDI.
 	 * Needed to known when to flush the cache.
-	 */ 
+	 */
 	public void enableInternalClasUnloadEvent(/* TBD: ReferenceTypeImpl refType*/) {
 		// Note that these requests are not stored in the set of outstanding requests because
 		// they must be invisible from outside.
@@ -342,7 +342,7 @@
 
 	/**
 	 * Checks if a steprequest is for the given thread is already enabled.
-	 */ 
+	 */
 	boolean existsEnabledStepRequest(ThreadReferenceImpl threadImpl) {
 		Enumeration<StepRequest> enumeration = STEP_TYPE.enabledrequests.elements();
 		StepRequestImpl step;
@@ -353,7 +353,7 @@
 		}
 		return false;
 	}
- 
+
 	/* (non-Javadoc)
 	 * @see com.sun.jdi.request.EventRequestManager#deleteAllBreakpoints()
 	 */
@@ -362,10 +362,10 @@
 		EventRequestImpl.clearAllBreakpoints(this);
 		BREAKPOINT_TYPE.clear();
 	}
- 
+
 	/**
 	 * Deletes an EventRequest.
-	 */ 
+	 */
 	private void deleteEventRequest(EventRequestType<? extends EventRequest> type, EventRequestImpl req) throws VMMismatchException {
 		// Remove request from list of requests and from the mapping of requestIDs to requests.
 		checkVM(req);
@@ -375,7 +375,7 @@
 			type.enabledrequests.remove(id);
 		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see com.sun.jdi.request.EventRequestManager#deleteEventRequest(com.sun.jdi.request.EventRequest)
 	 */
@@ -421,7 +421,7 @@
 			throw new InternalError(NLS.bind(RequestMessages.EventRequestManagerImpl_EventRequest_type_of__0__is_unknown_1, new String[]{req.toString()}));
 		}
 	}
- 
+
 	/* (non-Javadoc)
 	 * @see com.sun.jdi.request.EventRequestManager#deleteEventRequests(java.util.List)
 	 */
@@ -489,7 +489,7 @@
 	public List<MethodExitRequest> methodExitRequests() {
 		return METHOD_EXIT_TYPE.getUnmodifiableList();
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see com.sun.jdi.request.EventRequestManager#modificationWatchpointRequests()
 	 */
@@ -521,7 +521,7 @@
 	public List<ThreadStartRequest> threadStartRequests() {
 		return THREAD_START_TYPE.getUnmodifiableList();
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see com.sun.jdi.request.EventRequestManager#vmDeathRequests()
 	 */
@@ -545,7 +545,7 @@
 	public List<MonitorContendedEnteredRequest> monitorContendedEnteredRequests() {
     	return MONITOR_CONTENDED_ENTERED_TYPE.getUnmodifiableList();
     }
-    
+
     /* (non-Javadoc)
      * @see com.sun.jdi.request.EventRequestManager#monitorWaitRequests()
      */
@@ -561,7 +561,7 @@
 	public List<MonitorWaitedRequest> monitorWaitedRequests() {
     	return MONITOR_WAITED_TYPE.getUnmodifiableList();
     }
-	
+
 	public void removeRequestIDMapping(EventRequestImpl req) {
 		if (req instanceof AccessWatchpointRequestImpl) {
 			ACCESS_WATCHPOINT_TYPE.enabledrequests.remove(req.requestID());
@@ -597,10 +597,10 @@
 			VM_DEATH_TYPE.enabledrequests.remove(req.requestID());
 		}
 	}
-	
+
 	/**
 	 * Maps a request ID to requests.
-	 */ 
+	 */
 	public void addRequestIDMapping(EventRequestImpl req) {
 		if (req instanceof AccessWatchpointRequestImpl) {
 			ACCESS_WATCHPOINT_TYPE.enabledrequests.put(req.requestID(), (AccessWatchpointRequestImpl) req);
@@ -639,7 +639,7 @@
 
 	/**
 	 * Find Request that matches event.
-	 */ 
+	 */
 	public EventRequest findRequest(EventImpl event) {
 		if (event instanceof AccessWatchpointEventImpl) {
 			return ACCESS_WATCHPOINT_TYPE.enabledrequests.get(event.requestID());
@@ -674,6 +674,6 @@
 		} else if(event instanceof MonitorContendedEnteredEventImpl) {
 			return MONITOR_CONTENDED_ENTERED_TYPE.enabledrequests.get(event.requestID());
 		}
-		throw new InternalError(RequestMessages.EventRequestManagerImpl_Got_event_of_unknown_type_2); 
+		throw new InternalError(RequestMessages.EventRequestManagerImpl_Got_event_of_unknown_type_2);
 	}
 }
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/ExceptionRequestImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/ExceptionRequestImpl.java
index 8e45c61..f8cf47f 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/ExceptionRequestImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/ExceptionRequestImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -19,7 +19,7 @@
 /**
  * This class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class ExceptionRequestImpl extends EventRequestImpl implements
 		ExceptionRequest {
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/MethodEntryRequestImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/MethodEntryRequestImpl.java
index cbfa413..80d3949 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/MethodEntryRequestImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/MethodEntryRequestImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,7 +18,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class MethodEntryRequestImpl extends EventRequestImpl implements
 		MethodEntryRequest {
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/MethodExitRequestImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/MethodExitRequestImpl.java
index 1e0de02..f88e21d 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/MethodExitRequestImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/MethodExitRequestImpl.java
@@ -19,7 +19,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class MethodExitRequestImpl extends EventRequestImpl implements
 		MethodExitRequest {
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/ModificationWatchpointRequestImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/ModificationWatchpointRequestImpl.java
index 8f4d991..09566b7 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/ModificationWatchpointRequestImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/ModificationWatchpointRequestImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,7 +18,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class ModificationWatchpointRequestImpl extends WatchpointRequestImpl
 		implements ModificationWatchpointRequest {
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/MonitorContendedEnterRequestImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/MonitorContendedEnterRequestImpl.java
index a63d42d..41bc86e 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/MonitorContendedEnterRequestImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/MonitorContendedEnterRequestImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,7 +18,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  * @since 3.3
  */
 public class MonitorContendedEnterRequestImpl extends EventRequestImpl
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/MonitorContendedEnteredRequestImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/MonitorContendedEnteredRequestImpl.java
index 455dc28..bb481b8 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/MonitorContendedEnteredRequestImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/MonitorContendedEnteredRequestImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,7 +18,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  * @since 3.3
  */
 public class MonitorContendedEnteredRequestImpl extends EventRequestImpl
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/MonitorWaitRequestImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/MonitorWaitRequestImpl.java
index 2d431d9..7435960 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/MonitorWaitRequestImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/MonitorWaitRequestImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,7 +18,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  * @since 3.3
  */
 public class MonitorWaitRequestImpl extends EventRequestImpl implements
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/MonitorWaitedRequestImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/MonitorWaitedRequestImpl.java
index 37a9d64..ded2463 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/MonitorWaitedRequestImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/MonitorWaitedRequestImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -16,7 +16,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  * @since 3.3
  */
 public class MonitorWaitedRequestImpl extends EventRequestImpl implements
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/ReenterStepRequestImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/ReenterStepRequestImpl.java
index 7361a1b..e6cb949 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/ReenterStepRequestImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/ReenterStepRequestImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/RequestID.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/RequestID.java
index f2fcc56..4d35361 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/RequestID.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/RequestID.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/RequestMessages.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/RequestMessages.java
index 48352b2..150e7e1 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/RequestMessages.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/RequestMessages.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *  IBM - Initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/StepRequestImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/StepRequestImpl.java
index d83a50b..fe2334d 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/StepRequestImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/StepRequestImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -19,7 +19,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class StepRequestImpl extends EventRequestImpl implements StepRequest {
 	/**
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/ThreadDeathRequestImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/ThreadDeathRequestImpl.java
index ca133c1..30229c3 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/ThreadDeathRequestImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/ThreadDeathRequestImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,7 +18,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class ThreadDeathRequestImpl extends EventRequestImpl implements
 		ThreadDeathRequest {
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/ThreadStartRequestImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/ThreadStartRequestImpl.java
index b335d0c..8dc014e 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/ThreadStartRequestImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/ThreadStartRequestImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,7 +18,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public class ThreadStartRequestImpl extends EventRequestImpl implements
 		ThreadStartRequest {
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/VMDeathRequestImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/VMDeathRequestImpl.java
index 7086cdc..00d05a5 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/VMDeathRequestImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/VMDeathRequestImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/WatchpointRequestImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/WatchpointRequestImpl.java
index 3e7017a..53a8d8b 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/WatchpointRequestImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/WatchpointRequestImpl.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,7 +18,7 @@
 /**
  * this class implements the corresponding interfaces declared by the JDI
  * specification. See the com.sun.jdi package for more information.
- * 
+ *
  */
 public abstract class WatchpointRequestImpl extends EventRequestImpl implements
 		WatchpointRequest {
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/spy/JdwpCommandPacket.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/spy/JdwpCommandPacket.java
index 6940d32..d459ff1 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/spy/JdwpCommandPacket.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/spy/JdwpCommandPacket.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -21,7 +21,7 @@
 /**
  * This class implements the corresponding Java Debug Wire Protocol (JDWP)
  * packet declared by the JDWP specification.
- * 
+ *
  */
 public class JdwpCommandPacket extends JdwpPacket {
 	/** Command Sets. */
@@ -248,7 +248,7 @@
 		Field[] fields = JdwpCommandPacket.class.getDeclaredFields();
 
 		// First get the set names.
-		Map<Integer, String> setNames = new HashMap<Integer, String>(fields.length);
+		Map<Integer, String> setNames = new HashMap<>(fields.length);
 		for (Field field : fields) {
 			if ((field.getModifiers() & Modifier.PUBLIC) == 0
 					|| (field.getModifiers() & Modifier.STATIC) == 0
@@ -273,7 +273,7 @@
 		}
 
 		// Get the commands.
-		fgCommandMap = new HashMap<Integer, String>();
+		fgCommandMap = new HashMap<>();
 		for (Field field : fields) {
 			if ((field.getModifiers() & Modifier.PUBLIC) == 0
 					|| (field.getModifiers() & Modifier.STATIC) == 0
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/spy/JdwpPacket.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/spy/JdwpPacket.java
index 3bfd219..741748c 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/spy/JdwpPacket.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/spy/JdwpPacket.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -22,7 +22,7 @@
 /**
  * This class implements the corresponding Java Debug Wire Protocol (JDWP)
  * packet declared by the JDWP specification.
- * 
+ *
  */
 public abstract class JdwpPacket {
 	/** General JDWP constants. */
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/spy/JdwpReplyPacket.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/spy/JdwpReplyPacket.java
index a70c0cf..ac0df7e 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/spy/JdwpReplyPacket.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/spy/JdwpReplyPacket.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -21,7 +21,7 @@
 /**
  * This class implements the corresponding Java Debug Wire Protocol (JDWP)
  * packet declared by the JDWP specification.
- * 
+ *
  */
 public class JdwpReplyPacket extends JdwpPacket {
 	/** Error code constants. */
@@ -137,7 +137,7 @@
 		}
 
 		Field[] fields = JdwpReplyPacket.class.getDeclaredFields();
-		fErrorMap = new HashMap<Integer, String>(fields.length);
+		fErrorMap = new HashMap<>(fields.length);
 		for (Field field : fields) {
 			if ((field.getModifiers() & Modifier.PUBLIC) == 0
 					|| (field.getModifiers() & Modifier.STATIC) == 0
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/spy/TcpipSpy.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/spy/TcpipSpy.java
index efd9fba..074a6af 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/spy/TcpipSpy.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/spy/TcpipSpy.java
@@ -37,7 +37,7 @@
  * connects; 2) The name of the host on which the VM or proxy waits for a JDWP
  * connection; 3) The port number on which the VM or proxy waits for a JDWP
  * connection; 4) The file where the trace is written to.
- * 
+ *
  * Note that if this program is used for tracing JDWP activity of Leapfrog, the
  * 'debug remote program' option must be used, and the J9 proxy must first be
  * started up by hand on the port to which Leapfrog will connect. The J9 proxy
@@ -51,7 +51,7 @@
 	private DataOutputStream fDataOut;
 
 	private static VerbosePacketStream out = new VerbosePacketStream(System.out);
-	private static Map<Integer, JdwpConversation> fPackets = new HashMap<Integer, JdwpConversation>();
+	private static Map<Integer, JdwpConversation> fPackets = new HashMap<>();
 
 	private static int fFieldIDSize;
 	private static int fMethodIDSize;
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/spy/UnableToParseDataException.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/spy/UnableToParseDataException.java
index 2b402ed..1d54528 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/spy/UnableToParseDataException.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/spy/UnableToParseDataException.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/spy/VerbosePacketStream.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/spy/VerbosePacketStream.java
index 9d05da7..d5c133b 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/spy/VerbosePacketStream.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/spy/VerbosePacketStream.java
@@ -553,7 +553,7 @@
 			int cset = commandId >> 8;
 			int cmd = commandId & 0xFF;
 			println(MessageFormat
-					.format("Unknown command : {0} {1}", new Object[] { "" + cset, "" + cmd })); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ 
+					.format("Unknown command : {0} {1}", new Object[] { "" + cset, "" + cmd })); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 			break;
 		}
 	}
@@ -859,7 +859,7 @@
 			int cset = commandId >> 8;
 			int cmd = commandId & 0xFF;
 			println(MessageFormat
-					.format("Unknown command : {0} {1}", new Object[] { "" + cset, "" + cmd })); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ 
+					.format("Unknown command : {0} {1}", new Object[] { "" + cset, "" + cmd })); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 			break;
 		}
 	}
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IEvaluationRunnable.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IEvaluationRunnable.java
index fb28029..eb2a335 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IEvaluationRunnable.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IEvaluationRunnable.java
@@ -19,7 +19,7 @@
  * <p>
  * Clients are intended to implement this interface.
  * </p>
- * 
+ *
  * @see org.eclipse.jdt.debug.core.IJavaThread#runEvaluation(IEvaluationRunnable,
  *      IProgressMonitor, int, boolean)
  * @since 2.0
@@ -29,7 +29,7 @@
 	/**
 	 * Runs this evaluation in the specified thread, reporting progress to the
 	 * given progress monitor.
-	 * 
+	 *
 	 * @param thread
 	 *            the thread in which to run the evaluation
 	 * @param monitor
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaArray.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaArray.java
index 93b53a8..f3fab69 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaArray.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaArray.java
@@ -15,7 +15,7 @@
 
 /**
  * A value referencing an array on a target VM.
- * 
+ *
  * @see IJavaValue
  * @since 2.0
  * @noimplement This interface is not intended to be implemented by clients.
@@ -26,7 +26,7 @@
 
 	/**
 	 * Returns the values contained in this array.
-	 * 
+	 *
 	 * @return the values contained in this array
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -40,7 +40,7 @@
 
 	/**
 	 * Returns the value at the given index in this array.
-	 * 
+	 *
 	 * @param index
 	 *            the index of the value to return
 	 * @return the value at the given index
@@ -58,7 +58,7 @@
 
 	/**
 	 * Returns the length of this array.
-	 * 
+	 *
 	 * @return the length of this array
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -72,7 +72,7 @@
 
 	/**
 	 * Sets the value at the given index to the specified value.
-	 * 
+	 *
 	 * @param index
 	 *            the index at which to assign a new value
 	 * @param value
@@ -97,7 +97,7 @@
 	 * given array are replaced. If the given replacement values length is
 	 * longer than the length of this array, values in positions greater than
 	 * the length of this array are ignored.
-	 * 
+	 *
 	 * @param values
 	 *            replacement values
 	 * @exception DebugException
@@ -108,7 +108,7 @@
 
 	/**
 	 * Replaces a range of values in this array.
-	 * 
+	 *
 	 * @param offset
 	 *            offset in this array to start replacing values at
 	 * @param length
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaArrayType.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaArrayType.java
index 2c82779..73d3dc1 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaArrayType.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaArrayType.java
@@ -14,7 +14,7 @@
 
 /**
  * The type of an array on a Java debug target.
- * 
+ *
  * @see IJavaValue
  * @since 2.0
  * @noimplement This interface is not intended to be implemented by clients.
@@ -26,7 +26,7 @@
 	/**
 	 * Returns a new instance of an array of this type, with the specified
 	 * length.
-	 * 
+	 *
 	 * @param size
 	 *            the length of the new array
 	 * @return a new array of the specified length
@@ -42,7 +42,7 @@
 
 	/**
 	 * Returns the type of the elements in this array.
-	 * 
+	 *
 	 * @return type
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaBreakpoint.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaBreakpoint.java
index 4988e17..8964bb2 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaBreakpoint.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaBreakpoint.java
@@ -25,7 +25,7 @@
  * <li>an installed property that indicates a breakpoint was successfully
  * installed in a VM</li>
  * </ul>
- * 
+ *
  * @since 2.0
  * @noimplement This interface is not intended to be implemented by clients.
  * @noextend This interface is not intended to be extended by clients.
@@ -47,7 +47,7 @@
 	/**
 	 * Returns whether this breakpoint is installed in at least one debug
 	 * target.
-	 * 
+	 *
 	 * @return whether this breakpoint is installed
 	 * @exception CoreException
 	 *                if unable to access the property on this breakpoint's
@@ -59,7 +59,7 @@
 	 * Returns the fully qualified name of the type this breakpoint is located
 	 * in, or <code>null</code> if this breakpoint is not located in a specific
 	 * type - for example, a pattern breakpoint.
-	 * 
+	 *
 	 * @return the fully qualified name of the type this breakpoint is located
 	 *         in, or <code>null</code>
 	 * @exception CoreException
@@ -71,7 +71,7 @@
 	/**
 	 * Returns this breakpoint's hit count or, -1 if this breakpoint does not
 	 * have a hit count.
-	 * 
+	 *
 	 * @return this breakpoint's hit count, or -1
 	 * @exception CoreException
 	 *                if unable to access the property from this breakpoint's
@@ -83,7 +83,7 @@
 	 * Sets the hit count attribute of this breakpoint. If this breakpoint is
 	 * currently disabled and the hit count is set greater than -1, this
 	 * breakpoint is automatically enabled.
-	 * 
+	 *
 	 * @param count
 	 *            the new hit count
 	 * @exception CoreException
@@ -97,7 +97,7 @@
 	 * breakpoint is hit. When <code>SUSPEND_VM</code> the target VM is
 	 * suspended, and when <code>SUSPEND_THREAD</code> only the thread in which
 	 * this breakpoint occurred is suspended.
-	 * 
+	 *
 	 * @param suspendPolicy
 	 *            one of <code>SUSPEND_VM</code> or <code>SUSPEND_THREAD</code>
 	 * @exception CoreException
@@ -109,7 +109,7 @@
 	/**
 	 * Returns the suspend policy used by this breakpoint, one of
 	 * <code>SUSPEND_VM</code> or <code>SUSPEND_THREAD</code>.
-	 * 
+	 *
 	 * @return one of <code>SUSPEND_VM</code> or <code>SUSPEND_THREAD</code>
 	 * @exception CoreException
 	 *                if unable to access the property from this breakpoint's
@@ -123,10 +123,10 @@
 	 * restricted to one thread per target. Any previous thread filter for the
 	 * same target is lost. A thread filter is not persisted across workbench
 	 * invocations.
-	 * 
+	 *
 	 * @param thread
 	 *            the thread to add the filter to
-	 * 
+	 *
 	 * @exception CoreException
 	 *                if unable to set the thread filter
 	 */
@@ -135,7 +135,7 @@
 	/**
 	 * Removes this breakpoint's thread filter in the given target, if any. Has
 	 * no effect if this breakpoint does not have a filter in the given target.
-	 * 
+	 *
 	 * @param target
 	 *            the target whose thread filter will be removed
 	 * @exception CoreException
@@ -148,10 +148,10 @@
 	 * Returns the thread in the given target in which this breakpoint is
 	 * enabled or <code>null</code> if this breakpoint is enabled in all threads
 	 * in the given target.
-	 * 
+	 *
 	 * @param target
 	 *            the debug target
-	 * 
+	 *
 	 * @return the thread in the given target that this breakpoint is enabled
 	 *         for
 	 * @exception CoreException
@@ -162,7 +162,7 @@
 
 	/**
 	 * Returns all thread filters set on this breakpoint.
-	 * 
+	 *
 	 * @return the threads that this breakpoint is restricted to
 	 * @exception CoreException
 	 *                if unable to determine this breakpoint's thread filters
@@ -180,7 +180,7 @@
 	 * will never be hit in that target, as the current context cannot be two
 	 * different instances at the same time.
 	 * </p>
-	 * 
+	 *
 	 * @param object
 	 *            instance filter to add
 	 * @exception CoreException
@@ -193,7 +193,7 @@
 	 * Removes the given object from the list of objects in which this
 	 * breakpoint is restricted to suspend execution. Has no effect if the
 	 * object has not yet been added as an instance filter.
-	 * 
+	 *
 	 * @param object
 	 *            instance filter to remove
 	 * @exception CoreException
@@ -204,7 +204,7 @@
 
 	/**
 	 * Returns whether this breakpoints supports instance filters.
-	 * 
+	 *
 	 * @return whether this breakpoints supports instance filters
 	 * @since 3.0
 	 */
@@ -212,7 +212,7 @@
 
 	/**
 	 * Returns the current set of active instance filters.
-	 * 
+	 *
 	 * @return the current set of active instance filters.
 	 * @exception CoreException
 	 *                if unable to retrieve the list
@@ -222,7 +222,7 @@
 
 	/**
 	 * Returns whether this breakpoints supports thread filters.
-	 * 
+	 *
 	 * @return whether this breakpoints supports thread filters
 	 * @since 3.0
 	 */
@@ -231,7 +231,7 @@
 	/**
 	 * Returns a collection of identifiers of breakpoint listener extensions
 	 * registered for this breakpoint, possibly empty.
-	 * 
+	 *
 	 * @return breakpoint listener extension identifiers registered on this
 	 *         breakpoint
 	 * @throws CoreException
@@ -243,7 +243,7 @@
 	/**
 	 * Adds the breakpoint listener extension with specified identifier to this
 	 * breakpoint. Has no effect if an identical listener is already registered.
-	 * 
+	 *
 	 * @param identifier
 	 *            breakpoint listener extension identifier
 	 * @throws CoreException
@@ -255,7 +255,7 @@
 	/**
 	 * Removes the breakpoint listener extension with the specified identifier
 	 * from this breakpoint and returns whether the listener was removed.
-	 * 
+	 *
 	 * @param identifier
 	 *            breakpoint listener extension identifier
 	 * @return whether the listener was removed
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaBreakpointListener.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaBreakpointListener.java
index 6e16fcc..0c9a4d0 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaBreakpointListener.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaBreakpointListener.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -26,7 +26,7 @@
  * <p>
  * Clients are intended to implement this interface.
  * </p>
- * 
+ *
  * @since 2.0
  * @see JDIDebugModel
  * @see IJavaBreakpoint
@@ -36,35 +36,35 @@
 	/**
 	 * Return code in response to a "breakpoint hit" notification, indicating a
 	 * vote to suspend the associated thread.
-	 * 
+	 *
 	 * @since 3.0
 	 */
 	public static int SUSPEND = 0x0001;
 	/**
 	 * Return code in response to a "breakpoint hit" notification, indicating a
 	 * vote to not suspend (i.e. resume) the associated thread.
-	 * 
+	 *
 	 * @since 3.0
 	 */
 	public static int DONT_SUSPEND = 0x0002;
 	/**
 	 * Return code in response to an "installing" notification, indicating a
 	 * vote to install the associated breakpoint.
-	 * 
+	 *
 	 * @since 3.0
 	 */
 	public static int INSTALL = 0x0001;
 	/**
 	 * Return code in response to an "installing" notification, indicating a
 	 * vote to not install the associated breakpoint.
-	 * 
+	 *
 	 * @since 3.0
 	 */
 	public static int DONT_INSTALL = 0x0002;
 	/**
 	 * Return code indicating that this listener should not be considered in a
 	 * vote to suspend a thread or install a breakpoint.
-	 * 
+	 *
 	 * @since 3.0
 	 */
 	public static int DONT_CARE = 0x0004;
@@ -73,7 +73,7 @@
 	 * Notification that the given breakpoint is about to be added to the
 	 * specified target. This message is sent before the breakpoint is actually
 	 * added to the debut target (i.e. this is a pre-notification).
-	 * 
+	 *
 	 * @param target
 	 *            Java debug target
 	 * @param breakpoint
@@ -91,7 +91,7 @@
 	 * breakpoint, there must be at least one <code>DONT_INSTALL</code> vote to
 	 * cancel the installation. If all listeners vote <code>DONT_CARE</code>,
 	 * the breakpoint will be installed by default.
-	 * 
+	 *
 	 * @param target
 	 *            Java debug target
 	 * @param breakpoint
@@ -114,7 +114,7 @@
 	/**
 	 * Notification that the given breakpoint has been installed in the
 	 * specified target.
-	 * 
+	 *
 	 * @param target
 	 *            Java debug target
 	 * @param breakpoint
@@ -137,7 +137,7 @@
 	 * Listeners may query thread state and perform evaluations. All subsequent
 	 * breakpoints in this thread will be ignored until voting has completed.
 	 * </p>
-	 * 
+	 *
 	 * @param thread
 	 *            Java thread
 	 * @param breakpoint
@@ -152,7 +152,7 @@
 	/**
 	 * Notification that the given breakpoint has been removed from the
 	 * specified target.
-	 * 
+	 *
 	 * @param target
 	 *            Java debug target
 	 * @param breakpoint
@@ -164,7 +164,7 @@
 	/**
 	 * Notification that the given breakpoint had runtime errors in its
 	 * conditional expression.
-	 * 
+	 *
 	 * @param breakpoint
 	 *            the breakpoint
 	 * @param exception
@@ -177,7 +177,7 @@
 	/**
 	 * Notification that the given breakpoint has compilation errors in its
 	 * conditional expression.
-	 * 
+	 *
 	 * @param breakpoint
 	 *            the breakpoint
 	 * @param errors
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaClassObject.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaClassObject.java
index 63f04d9..f0a26f7 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaClassObject.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaClassObject.java
@@ -13,7 +13,7 @@
 /**
  * An object referencing an instance of <code>java.lang.Class</code> on a target
  * VM.
- * 
+ *
  * @see IJavaValue
  * @since 2.0
  * @noimplement This interface is not intended to be implemented by clients.
@@ -24,7 +24,7 @@
 
 	/**
 	 * Returns the type associated with instances of this class.
-	 * 
+	 *
 	 * @return the type associated with instances of this class
 	 */
 	IJavaType getInstanceType();
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaClassPrepareBreakpoint.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaClassPrepareBreakpoint.java
index 3bdf1f8..b44446d 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaClassPrepareBreakpoint.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaClassPrepareBreakpoint.java
@@ -14,7 +14,7 @@
 
 /**
  * A breakpoint that suspends execution when a class is prepared in a target VM.
- * 
+ *
  * @since 3.0
  * @noimplement This interface is not intended to be implemented by clients.
  * @noextend This interface is not intended to be extended by clients.
@@ -35,7 +35,7 @@
 	/**
 	 * Returns a constant indicating what kind of type this breakpoint is
 	 * associated with.
-	 * 
+	 *
 	 * @return one of <code>TYPE_CLASS</code> or <code>TYPE_INTERFACE</code>
 	 * @throws CoreException
 	 *             if unable to retrieve the attribute
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaClassType.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaClassType.java
index 8a6734c..e8115a5 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaClassType.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaClassType.java
@@ -14,7 +14,7 @@
 
 /**
  * The class of an object on a Java debug target.
- * 
+ *
  * @see IJavaValue
  * @since 2.0
  * @noimplement This interface is not intended to be implemented by clients.
@@ -29,7 +29,7 @@
 	 * location when this method invocation is complete. This method does not
 	 * return until the method invocation is complete. Resuming the specified
 	 * thread can result in breakpoints being hit, infinite loops, and deadlock.
-	 * 
+	 *
 	 * @param signature
 	 *            the JNI style signature of the method to be invoked
 	 * @param args
@@ -68,7 +68,7 @@
 	 * complete. This method does not return until the method invocation is
 	 * complete. Resuming the specified thread can result in breakpoints being
 	 * hit, infinite loops, and deadlock.
-	 * 
+	 *
 	 * @param selector
 	 *            the selector of the method to be invoked
 	 * @param signature
@@ -103,7 +103,7 @@
 	/**
 	 * Returns the superclass of this class type, or <code>null</code> if no
 	 * such class exists.
-	 * 
+	 *
 	 * @return the superclass of this class type, or <code>null</code>
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -119,7 +119,7 @@
 	 * Returns the interface objects associated with the interfaces this class
 	 * directly implements. Only those interfaces declared in the
 	 * <code>implements</code> clause for this class are included.
-	 * 
+	 *
 	 * @return the interface objects associated with the interfaces this class
 	 *         directly implements
 	 * @exception DebugException
@@ -136,7 +136,7 @@
 	/**
 	 * Returns the interface objects associated with <em>all</em> interfaces
 	 * this class implements, directly or indirectly.
-	 * 
+	 *
 	 * @return the interface objects associated with the interfaces this class
 	 *         directly implements, directly or indirectly
 	 * @exception DebugException
@@ -152,7 +152,7 @@
 
 	/**
 	 * Returns whether this type is declared as a type safe enumeration.
-	 * 
+	 *
 	 * @return <code>true</code> if this type is a type safe enumeration,
 	 *         <code>false</code> otherwise.
 	 * @exception DebugException
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaDebugTarget.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaDebugTarget.java
index 97d83ce..7c6c7ff 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaDebugTarget.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaDebugTarget.java
@@ -18,7 +18,7 @@
 
 /**
  * A Java virtual machine.
- * 
+ *
  * @see IDebugTarget
  * @see org.eclipse.core.runtime.IAdaptable
  * @noimplement This interface is not intended to be implemented by clients.
@@ -36,7 +36,7 @@
 	 * this debug target has no suspended threads, <code>null</code> is
 	 * returned.
 	 * </p>
-	 * 
+	 *
 	 * @param variableName
 	 *            name of the variable
 	 * @return a variable with the given name, or <code>null</code> if none
@@ -55,7 +55,7 @@
 	 * Returns the types loaded in this debug target with the given fully
 	 * qualified name, or <code>null</code> of no type with the given name is
 	 * loaded.
-	 * 
+	 *
 	 * @param name
 	 *            fully qualified name of type, for example
 	 *            <code>java.lang.String</code>
@@ -74,7 +74,7 @@
 	 * Returns a value from this target that corresponds to the given boolean.
 	 * The returned value can be used for setting and comparing against a value
 	 * retrieved from this debug target.
-	 * 
+	 *
 	 * @param value
 	 *            a boolean from which to create a value
 	 * @return a corresponding value from this target
@@ -85,7 +85,7 @@
 	 * Returns a value from this target that corresponds to the given byte. The
 	 * returned value can be used for setting and comparing against a value
 	 * retrieved from this debug target.
-	 * 
+	 *
 	 * @param value
 	 *            a byte from which to create a value
 	 * @return a corresponding value from this target
@@ -96,7 +96,7 @@
 	 * Returns a value from this target that corresponds to the given char. The
 	 * returned value can be used for setting and comparing against a value
 	 * retrieved from this debug target.
-	 * 
+	 *
 	 * @param value
 	 *            a char from which to create a value
 	 * @return a corresponding value from this target
@@ -107,7 +107,7 @@
 	 * Returns a value from this target that corresponds to the given double.
 	 * The returned value can be used for setting and comparing against a value
 	 * retrieved from this debug target.
-	 * 
+	 *
 	 * @param value
 	 *            a double from which to create a value
 	 * @return a corresponding value from this target
@@ -118,7 +118,7 @@
 	 * Returns a value from this target that corresponds to the given float. The
 	 * returned value can be used for setting and comparing against a value
 	 * retrieved from this debug target.
-	 * 
+	 *
 	 * @param value
 	 *            a float from which to create a value
 	 * @return a corresponding value from this target
@@ -129,7 +129,7 @@
 	 * Returns a value from this target that corresponds to the given int. The
 	 * returned value can be used for setting and comparing against a value
 	 * retrieved from this debug target.
-	 * 
+	 *
 	 * @param value
 	 *            an int from which to create a value
 	 * @return a corresponding value from this target
@@ -140,7 +140,7 @@
 	 * Returns a value from this target that corresponds to the given long. The
 	 * returned value can be used for setting and comparing against a value
 	 * retrieved from this debug target.
-	 * 
+	 *
 	 * @param value
 	 *            a long from which to create a value
 	 * @return a corresponding value from this target
@@ -151,7 +151,7 @@
 	 * Returns a value from this target that corresponds to the given short. The
 	 * returned value can be used for setting and comparing against a value
 	 * retrieved from this debug target.
-	 * 
+	 *
 	 * @param value
 	 *            a short from which to create a value
 	 * @return a corresponding value from this target
@@ -162,7 +162,7 @@
 	 * Returns a value from this target that corresponds to the given string.
 	 * The returned value can be used for setting and comparing against a value
 	 * retrieved from this debug target.
-	 * 
+	 *
 	 * @param value
 	 *            a string from which to create a value
 	 * @return a corresponding value from this target
@@ -173,7 +173,7 @@
 	 * Returns a value from this target that corresponds to <code>null</code>.
 	 * The returned value can be used for setting and comparing against a value
 	 * retrieved from this debug target.
-	 * 
+	 *
 	 * @return a value corresponding to <code>null</code>
 	 */
 	public abstract IJavaValue nullValue();
@@ -182,7 +182,7 @@
 	 * Returns a value from this target that corresponds to <code>void</code>.
 	 * The returned value can be used for setting and comparing against a value
 	 * retrieved from this debug target.
-	 * 
+	 *
 	 * @return a value corresponding to <code>void</code>
 	 */
 	public abstract IJavaValue voidValue();
@@ -191,7 +191,7 @@
 	 * Returns whether any of the threads associated with this debug target are
 	 * running code in the VM that is out of synch with the code in the
 	 * workspace.
-	 * 
+	 *
 	 * @return whether this debug target is out of synch with the workspace.
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -206,7 +206,7 @@
 	 * Returns whether any of the threads associated with this debug target may
 	 * be running code in the VM that is out of synch with the code in the
 	 * workspace.
-	 * 
+	 *
 	 * @return whether this debug target may be out of synch with the workspace.
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -219,14 +219,14 @@
 
 	/**
 	 * Returns whether this target supports hot code replace.
-	 * 
+	 *
 	 * @return whether this target supports hot code replace
 	 */
 	public boolean supportsHotCodeReplace();
 
 	/**
 	 * Returns whether this target is currently performing a hot code replace.
-	 * 
+	 *
 	 * @return whether this target is currently performing a hot code replace
 	 * @since 2.1
 	 */
@@ -234,7 +234,7 @@
 
 	/**
 	 * Returns whether this target supports instance breakpoints.
-	 * 
+	 *
 	 * @return whether this target supports instance breakpoints
 	 * @since 2.1
 	 */
@@ -243,14 +243,14 @@
 	/**
 	 * Returns whether synthetic methods are filtered when stepping, if step
 	 * filters are enabled.
-	 * 
+	 *
 	 * @return whether synthetic methods are filtered when stepping
 	 */
 	public abstract boolean isFilterSynthetics();
 
 	/**
 	 * Sets whether synthetic methods are filtered when stepping.
-	 * 
+	 *
 	 * @param filter
 	 *            whether to synthetic methods are filtered when stepping
 	 */
@@ -258,7 +258,7 @@
 
 	/**
 	 * Returns whether simple getters are filtered when stepping.
-	 * 
+	 *
 	 * @return true, if simple getters should be filtered when stepping
 	 * @since 3.7
 	 */
@@ -266,7 +266,7 @@
 
 	/**
 	 * Sets whether simple getters are filtered when stepping.
-	 * 
+	 *
 	 * @param filter
 	 *            whether to filter simple getters when stepping
 	 * @since 3.7
@@ -275,7 +275,7 @@
 
 	/**
 	 * Returns whether simple setters are filtered when stepping.
-	 * 
+	 *
 	 * @return true, if simple setters should be filtered when stepping
 	 * @since 3.7
 	 */
@@ -283,7 +283,7 @@
 
 	/**
 	 * Sets whether simple setters are filtered when stepping.
-	 * 
+	 *
 	 * @param filter
 	 *            whether to filter simple setters when stepping
 	 * @since 3.7
@@ -293,14 +293,14 @@
 	/**
 	 * Returns whether static initializers are filtered when stepping, if step
 	 * filters are enabled.
-	 * 
+	 *
 	 * @return whether static initializers are filtered when stepping
 	 */
 	public abstract boolean isFilterStaticInitializers();
 
 	/**
 	 * Sets whether to filter static initializers when stepping.
-	 * 
+	 *
 	 * @param filter
 	 *            whether to filter static initializers when stepping
 	 */
@@ -309,14 +309,14 @@
 	/**
 	 * Returns whether constructors are filtered when stepping, if step filters
 	 * are enabled.
-	 * 
+	 *
 	 * @return whether constructors are filtered when stepping
 	 */
 	public abstract boolean isFilterConstructors();
 
 	/**
 	 * Sets whether to filter constructors when stepping.
-	 * 
+	 *
 	 * @param filter
 	 *            whether to filter constructors when stepping
 	 */
@@ -327,7 +327,7 @@
 	 * collection of Strings. Each string is the fully qualified name/pattern of
 	 * a type/package to filter when stepping. For example
 	 * <code>java.lang.*</code> or <code>java.lang.String</code>.
-	 * 
+	 *
 	 * @return the list of active step filters, or <code>null</code>
 	 */
 	public abstract String[] getStepFilters();
@@ -337,7 +337,7 @@
 	 * collection of Strings. Each string is the fully qualified name/pattern of
 	 * a type/package to filter when stepping. For example
 	 * <code>java.lang.*</code> or <code>java.lang.String</code>.
-	 * 
+	 *
 	 * @param list
 	 *            active step filters, or <code>null</code>
 	 */
@@ -347,7 +347,7 @@
 	 * Sets whether a step that lands in a filtered location should continue
 	 * through to an un-filtered location, or return to where the step
 	 * originated.
-	 * 
+	 *
 	 * @param thru
 	 *            whether to step thru a filtered location or return to location
 	 *            where step originated
@@ -359,7 +359,7 @@
 	 * Returns whether a step that lands in a filtered location should proceed
 	 * through to an un-filtered location or return to the location where a step
 	 * originated.
-	 * 
+	 *
 	 * @return whether a step that lands in a filtered location should proceed
 	 *         through to an un-filtered location or return to the location
 	 *         where a step originated
@@ -371,7 +371,7 @@
 	 * Returns whether this debug target supports a request timeout - a maximum
 	 * time for a JDI request to receive a response. This option is only
 	 * supported by the Eclipse JDI implementation.
-	 * 
+	 *
 	 * @return whether this debug target supports a request timeout
 	 */
 	public boolean supportsRequestTimeout();
@@ -379,7 +379,7 @@
 	/**
 	 * Sets the timeout value for JDI requests in milliseconds. Has no effect if
 	 * this target does not support a request timeout.
-	 * 
+	 *
 	 * @param timeout
 	 *            the communication timeout, in milliseconds
 	 */
@@ -388,14 +388,14 @@
 	/**
 	 * Returns the timeout value for JDI requests in milliseconds, or -1 if not
 	 * supported.
-	 * 
+	 *
 	 * @return timeout value, in milliseconds, or -1 if not supported
 	 */
 	public int getRequestTimeout();
 
 	/**
 	 * Returns whether this target supports providing monitor information.
-	 * 
+	 *
 	 * @return whether this target supports providing monitor information.
 	 * @since 2.1
 	 */
@@ -403,7 +403,7 @@
 
 	/**
 	 * Returns whether this target supports access watchpoints.
-	 * 
+	 *
 	 * @return whether this target supports access watchpoints
 	 * @since 3.0
 	 */
@@ -411,7 +411,7 @@
 
 	/**
 	 * Returns whether this target supports modification watchpoints.
-	 * 
+	 *
 	 * @return whether this target supports modification watchpoints
 	 * @since 3.0
 	 */
@@ -419,7 +419,7 @@
 
 	/**
 	 * Set the default stratum used in this debug target.
-	 * 
+	 *
 	 * @param stratum
 	 *            the new default stratum, or <code>null</code> to indicate
 	 *            per-class default stratum
@@ -430,7 +430,7 @@
 	/**
 	 * Return the default stratum used in this the target, or <code>null</code>
 	 * to indicate a per-class default stratum.
-	 * 
+	 *
 	 * @return the default stratum, or <code>null</code> to indicate a per-class
 	 *         default stratum
 	 * @see #setDefaultStratum(String)
@@ -441,7 +441,7 @@
 	/**
 	 * Returns the top level thread groups in this target. Top level thread
 	 * groups do not have a parent.
-	 * 
+	 *
 	 * @return top level thread groups
 	 * @throws DebugException
 	 *             if an exception occurs
@@ -451,7 +451,7 @@
 
 	/**
 	 * Returns all thread groups in this target.
-	 * 
+	 *
 	 * @return all thread groups in this target
 	 * @throws DebugException
 	 *             if an exception occurs
@@ -462,7 +462,7 @@
 	/**
 	 * Returns whether this VM supports instance and reference retrieval for
 	 * types and objects.
-	 * 
+	 *
 	 * @return whether this VM supports instance and reference retrieval for
 	 *         types and objects
 	 * @since 3.3
@@ -472,7 +472,7 @@
 	/**
 	 * Returns whether this VM supports the ability to force an early return
 	 * from methods.
-	 * 
+	 *
 	 * @return whether this VM can force an early return from methods
 	 * @since 3.3
 	 * @see IJavaThread
@@ -482,7 +482,7 @@
 	/**
 	 * Returns whether this VM supports the ability to enable and disable
 	 * garbage collection of individual objects.
-	 * 
+	 *
 	 * @return whether this VM supports the ability to enable and disable
 	 *         garbage collection of individual objects
 	 * @see IJavaObject
@@ -493,7 +493,7 @@
 	/**
 	 * Returns the name of the underlying virtual machine as defined by the
 	 * system property <code>java.vm.name</code>.
-	 * 
+	 *
 	 * @return virtual machine name
 	 * @exception DebugException
 	 *                if retrieving the name fails
@@ -504,7 +504,7 @@
 	/**
 	 * Returns the version of the underlying virtual machine as defined by the
 	 * system property <code>java.version</code>.
-	 * 
+	 *
 	 * @return <code>java.version</code> system property
 	 * @exception DebugException
 	 *                if retrieving the version property fails
@@ -523,7 +523,7 @@
 	 * changes. For example, a thread would fire a resume event if it discovered
 	 * it was in a running state when it thought it was suspended.
 	 * </p>
-	 * 
+	 *
 	 * @throws DebugException
 	 *             if an exception occurs
 	 * @since 3.6
@@ -534,7 +534,7 @@
 	 * Sends a JDWP command to the back end and returns the JDWP reply packet as
 	 * bytes. This method creates an appropriate command header and packet id,
 	 * before sending to the back end.
-	 * 
+	 *
 	 * @param commandSet
 	 *            command set identifier as defined by JDWP
 	 * @param commandId
@@ -561,7 +561,7 @@
 	 * for that target. This allows a target to override general/default hot
 	 * code replace listeners/handlers.
 	 * </p>
-	 * 
+	 *
 	 * @param listener
 	 *            hot code replace listener
 	 * @since 3.6
@@ -571,7 +571,7 @@
 	/**
 	 * Removes the given listener from this target. Has no effect if an
 	 * identical listener is not already registered.
-	 * 
+	 *
 	 * @param listener
 	 *            hot code replace listener
 	 * @since 3.6
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaExceptionBreakpoint.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaExceptionBreakpoint.java
index c32e75b..bc7bda0 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaExceptionBreakpoint.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaExceptionBreakpoint.java
@@ -18,7 +18,7 @@
  * execution when the corresponding exception is thrown in a caught or uncaught
  * location. As well, the location can be filtered inclusively or exclusively by
  * type name patterns.
- * 
+ *
  * @since 2.0
  * @noimplement This interface is not intended to be implemented by clients.
  * @noextend This interface is not intended to be extended by clients.
@@ -28,7 +28,7 @@
 	 * Sets the inclusion filters that will define the scope for the associated
 	 * exception. Filters are a collection of strings of type name prefixes.
 	 * Default packages should be specified as the empty string.
-	 * 
+	 *
 	 * @param filters
 	 *            the array of filters to apply
 	 * @exception CoreException
@@ -41,7 +41,7 @@
 	/**
 	 * Returns the inclusive filters that define the scope for the associated
 	 * exception. Filters are a collection of strings of type name prefixes.
-	 * 
+	 *
 	 * @return the array of defined inclusive filters
 	 * @exception CoreException
 	 *                if unable to access the property on this breakpoint's
@@ -53,7 +53,7 @@
 	/**
 	 * Returns whether this breakpoint suspends execution when the associated
 	 * exception is thrown in a caught location (in a try/catch statement).
-	 * 
+	 *
 	 * @return <code>true</code> if this is a caught exception breakpoint
 	 * @exception CoreException
 	 *                if unable to access the property from this breakpoint's
@@ -65,7 +65,7 @@
 	 * Returns whether this breakpoint suspends execution when the associated
 	 * exception is thrown in an uncaught location (not caught by a try/catch
 	 * statement).
-	 * 
+	 *
 	 * @return <code>true</code> if this is an uncaught exception breakpoint.
 	 * @exception CoreException
 	 *                if unable to access the property from this breakpoint's
@@ -76,7 +76,7 @@
 	/**
 	 * Sets whether this breakpoint suspends execution when the associated
 	 * exception is thrown in a caught location (in a try/catch statement).
-	 * 
+	 *
 	 * @param caught
 	 *            whether or not this breakpoint suspends execution when the
 	 *            associated exception is thrown in a caught location
@@ -89,7 +89,7 @@
 	/**
 	 * Sets whether this breakpoint suspends execution when the associated
 	 * exception is thrown in an uncaught location.
-	 * 
+	 *
 	 * @param uncaught
 	 *            whether or not this breakpoint suspends execution when the
 	 *            associated exception is thrown in an uncaught location
@@ -102,7 +102,7 @@
 	/**
 	 * Returns whether the exception associated with this breakpoint is a
 	 * checked exception (compiler detected).
-	 * 
+	 *
 	 * @return <code>true</code> if the exception associated with this
 	 *         breakpoint is a checked exception
 	 * @exception CoreException
@@ -116,7 +116,7 @@
 	 * this breakpoint to suspend, of <code>null</code> if this breakpoint has
 	 * not caused a thread to suspend. Note that this name may be a sub type of
 	 * the exception that this breakpoint is associated with.
-	 * 
+	 *
 	 * @return fully qualified exception name or <code>null</code>
 	 */
 	public String getExceptionTypeName();
@@ -125,7 +125,7 @@
 	 * Sets the filters that will define the scope for the associated exception.
 	 * Filters are a collection of strings of type name prefixes. Default
 	 * packages should be specified as the empty string.
-	 * 
+	 *
 	 * @param filters
 	 *            the array of filters to apply
 	 * @param inclusive
@@ -145,7 +145,7 @@
 	 * Sets the exclusion filters that will define the scope for the associated
 	 * exception. Filters are a collection of strings of type name prefixes.
 	 * Default packages should be specified as the empty string.
-	 * 
+	 *
 	 * @param filters
 	 *            the array of filters to apply
 	 * @exception CoreException
@@ -158,7 +158,7 @@
 	/**
 	 * Returns the filters that define the scope for the associated exception.
 	 * Filters are a collection of strings of type name prefixes.
-	 * 
+	 *
 	 * @return the array of defined filters
 	 * @exception CoreException
 	 *                if unable to access the property on this breakpoint's
@@ -171,7 +171,7 @@
 	/**
 	 * Returns the exclusive filters that define the scope for the associated
 	 * exception. Filters are a collection of strings of type name prefixes.
-	 * 
+	 *
 	 * @return the array of defined inclusive filters
 	 * @exception CoreException
 	 *                if unable to access the property on this breakpoint's
@@ -182,7 +182,7 @@
 
 	/**
 	 * Returns whether any inclusive filters have been applied.
-	 * 
+	 *
 	 * @return <code>true</code> if the inclusive filters have been applied
 	 * @exception CoreException
 	 *                if unable to access the property on this breakpoint's
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaFieldVariable.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaFieldVariable.java
index e8dbe14..23577a0 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaFieldVariable.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaFieldVariable.java
@@ -14,7 +14,7 @@
 
 /**
  * A variable that contains the value of an instance or class variable.
- * 
+ *
  * @see org.eclipse.debug.core.model.IVariable
  * @since 2.0
  * @noimplement This interface is not intended to be implemented by clients.
@@ -24,7 +24,7 @@
 
 	/**
 	 * Returns whether this variable is declared as transient.
-	 * 
+	 *
 	 * @return whether this variable has been declared as transient
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -38,7 +38,7 @@
 
 	/**
 	 * Returns whether this variable is declared as volatile.
-	 * 
+	 *
 	 * @return whether this variable has been declared as volatile
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -52,7 +52,7 @@
 
 	/**
 	 * Returns the type that declares this variable.
-	 * 
+	 *
 	 * @return the type that declares this variable
 	 */
 	public IJavaType getDeclaringType();
@@ -61,7 +61,7 @@
 	 * Returns the object that contains this field variable, or
 	 * <code>null</code> if no object contains this field variable (static field
 	 * variable).
-	 * 
+	 *
 	 * @return the object that contains this field variable
 	 * @since 3.0
 	 */
@@ -69,7 +69,7 @@
 
 	/**
 	 * Returns the type that contains this field variable.
-	 * 
+	 *
 	 * @return the type that contains this field variable
 	 * @since 3.0
 	 */
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaHotCodeReplaceListener.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaHotCodeReplaceListener.java
index 2bc13bb..3d5bb0e 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaHotCodeReplaceListener.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaHotCodeReplaceListener.java
@@ -19,14 +19,14 @@
  * <p>
  * Clients may implement this interface
  * </p>
- * 
+ *
  * @since 2.0
  */
 public interface IJavaHotCodeReplaceListener {
 
 	/**
 	 * Notification that a hot code replace attempt failed in the given target.
-	 * 
+	 *
 	 * @param target
 	 *            the target in which the hot code replace failed
 	 * @param exception
@@ -40,7 +40,7 @@
 	/**
 	 * Notification that a hot code replace attempt succeeded in the given
 	 * target.
-	 * 
+	 *
 	 * @param target
 	 *            the target in which the hot code replace succeeded
 	 */
@@ -49,7 +49,7 @@
 	/**
 	 * Notification that obsolete methods remain on the stack in one or more
 	 * threads in the given target after a hot code replace.
-	 * 
+	 *
 	 * @param target
 	 *            the target in which obsolete methods remain after a hot code
 	 *            replace
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaInterfaceType.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaInterfaceType.java
index b5666d9..f78c3fa 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaInterfaceType.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaInterfaceType.java
@@ -15,7 +15,7 @@
 
 /**
  * An interface an object implements on a Java debug target.
- * 
+ *
  * @see IJavaValue
  * @since 2.0
  * @noimplement This interface is not intended to be implemented by clients.
@@ -26,7 +26,7 @@
 	/**
 	 * Returns the class objects associated with the implementors of this
 	 * interface type. Returns an empty array if there are none.
-	 * 
+	 *
 	 * @return the class objects associated with the implementors of this
 	 *         interface type
 	 * @exception DebugException
@@ -46,7 +46,7 @@
 	 * sub-interfaces are those interfaces that directly extend this interface,
 	 * that is, those interfaces that declared this interface in their
 	 * <code>extends</code> clause.
-	 * 
+	 *
 	 * @return the interface objects associated with the sub-interfaces of this
 	 *         interface type
 	 * @exception DebugException
@@ -66,7 +66,7 @@
 	 * super-interfaces are those interfaces that are directly extended by this
 	 * interface, that is, those interfaces that this interface declared to be
 	 * extended.
-	 * 
+	 *
 	 * @return the interface objects associated with the super-interfaces of
 	 *         this interface type
 	 * @exception DebugException
@@ -88,7 +88,7 @@
 	 * complete. This method does not return until the method invocation is
 	 * complete. Resuming the specified thread can result in breakpoints being
 	 * hit, infinite loops, and deadlock.
-	 * 
+	 *
 	 * @param selector
 	 *            the selector of the method to be invoked
 	 * @param signature
@@ -116,7 +116,7 @@
 	 *                <li>The given thread was explicitly suspended (status code
 	 *                <code>IJavaThread.ERR_INCOMPATIBLE_THREAD_STATE</code>)</li>
 	 *                </ul>
-	 *                
+	 *
 	 * @since 3.10
 	 */
 	public IJavaValue sendMessage(String selector, String signature,
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaLineBreakpoint.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaLineBreakpoint.java
index f85ad64..136c6c6 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaLineBreakpoint.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaLineBreakpoint.java
@@ -16,7 +16,7 @@
 /**
  * A breakpoint that suspends execution when a particular line of code is
  * reached.
- * 
+ *
  * @since 2.0
  * @noimplement This interface is not intended to be implemented by clients.
  * @noextend This interface is not intended to be extended by clients.
@@ -27,7 +27,7 @@
 	 * Returns whether this breakpoint supports a conditional expression.
 	 * Conditional breakpoints only suspend when their associated condition
 	 * evaluates to <code>true</code>.
-	 * 
+	 *
 	 * @return whether this breakpoint supports a condition
 	 */
 	public boolean supportsCondition();
@@ -35,7 +35,7 @@
 	/**
 	 * Returns the conditional expression associated with this breakpoint, or
 	 * <code>null</code> if this breakpoint does not have a condition.
-	 * 
+	 *
 	 * @return this breakpoint's conditional expression, or <code>null</code>
 	 * @exception CoreException
 	 *                if unable to access the property on this breakpoint's
@@ -52,7 +52,7 @@
 	 * If this breakpoint does not support conditions, setting the condition has
 	 * no effect.
 	 * </p>
-	 * 
+	 *
 	 * @param condition
 	 *            conditional expression
 	 * @exception CoreException
@@ -63,7 +63,7 @@
 
 	/**
 	 * Returns whether the condition on this breakpoint is enabled.
-	 * 
+	 *
 	 * @return whether this breakpoint's condition is enabled
 	 * @exception CoreException
 	 *                if unable to access the property on this breakpoint's
@@ -76,10 +76,10 @@
 	 * When enabled, this breakpoint will only suspend when its condition
 	 * evaluates to true. When disabled, this breakpoint will suspend as it
 	 * would with no condition defined.
-	 * 
+	 *
 	 * @param enabled
 	 *            the enabled state of the condition
-	 * 
+	 *
 	 * @exception CoreException
 	 *                if unable to set the property on this breakpoint's
 	 *                underlying marker
@@ -89,7 +89,7 @@
 	/**
 	 * Returns whether the breakpoint suspends when the value of the condition
 	 * is <code>true</code> or when the value of the condition changes.
-	 * 
+	 *
 	 * @return <code>true</code> if this breakpoint suspends when the value of
 	 *         the condition is <code>true</code>, <code>false</code> if this
 	 *         breakpoint suspends when the value of the condition changes.
@@ -105,10 +105,10 @@
 	 * <code>true</code>, the breakpoint will stop when the value of the
 	 * condition is <code>true</code>. If the value is <code>false</code>, the
 	 * breakpoint will stop when the value of the condition changes.
-	 * 
+	 *
 	 * @param suspendOnTrue
 	 *            if the condition should suspend when true
-	 * 
+	 *
 	 * @exception CoreException
 	 *                if unable to access the property on this breakpoint's
 	 *                underlying marker
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaMethodBreakpoint.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaMethodBreakpoint.java
index 2abd144..7dba6f2 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaMethodBreakpoint.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaMethodBreakpoint.java
@@ -15,7 +15,7 @@
 
 /**
  * A method breakpoint suspends execution when a method is entered or exited.
- * 
+ *
  * @since 2.0
  * @noimplement This interface is not intended to be implemented by clients.
  * @noextend This interface is not intended to be extended by clients.
@@ -26,7 +26,7 @@
 	 * Returns the name of the method(s) this breakpoint suspends execution in,
 	 * or <code>null</code> if this breakpoint does not suspend execution based
 	 * on method name.
-	 * 
+	 *
 	 * @return the name of the method(s) this breakpoint suspends execution in,
 	 *         or <code>null</code> if this breakpoint does not suspend
 	 *         execution based on method name
@@ -40,7 +40,7 @@
 	 * Returns the signature of the method(s) this breakpoint suspends execution
 	 * in, or <code>null</code> if this breakpoint does not suspend execution
 	 * based on method signature.
-	 * 
+	 *
 	 * @return the signature of the method(s) this breakpoint suspends execution
 	 *         in, or <code>null</code> if this breakpoint does not suspend
 	 *         execution based on method signature
@@ -54,7 +54,7 @@
 	 * Returns the pattern specifying the fully qualified name of type(s) this
 	 * breakpoint suspends execution in. Patterns are limited to exact matches
 	 * and patterns that begin or end with '*'.
-	 * 
+	 *
 	 * @return the pattern specifying the fully qualified name of type(s) this
 	 *         breakpoint suspends execution in
 	 * @exception CoreException
@@ -68,7 +68,7 @@
 	/**
 	 * Returns whether this breakpoint causes execution to suspend on entry to
 	 * methods.
-	 * 
+	 *
 	 * @return whether this breakpoint causes execution to suspend on entry to
 	 *         methods
 	 * @exception CoreException
@@ -80,7 +80,7 @@
 	/**
 	 * Returns whether this breakpoint causes execution to suspend on exit of
 	 * methods.
-	 * 
+	 *
 	 * @return whether this breakpoint causes execution to suspend on exit of
 	 *         methods
 	 * @exception CoreException
@@ -92,7 +92,7 @@
 	/**
 	 * Sets whether this breakpoint causes execution to suspend on entry to
 	 * methods.
-	 * 
+	 *
 	 * @param entry
 	 *            whether this breakpoint causes execution to suspend on entry
 	 *            to methods
@@ -105,7 +105,7 @@
 	/**
 	 * Sets whether this breakpoint causes execution to suspend on exit of
 	 * methods.
-	 * 
+	 *
 	 * @param exit
 	 *            whether this breakpoint causes execution to suspend on exit of
 	 *            methods
@@ -118,7 +118,7 @@
 	/**
 	 * Sets whether this breakpoint causes execution to suspend only on
 	 * entry/exit of native methods.
-	 * 
+	 *
 	 * @param nativeOnly
 	 *            whether this breakpoint causes execution to suspend only on
 	 *            entry/exit of native methods
@@ -131,7 +131,7 @@
 	/**
 	 * Returns whether this breakpoint causes execution to suspend only on
 	 * entry/exit of native methods.
-	 * 
+	 *
 	 * @return whether this breakpoint causes execution to suspend only on
 	 *         entry/exit of native methods
 	 * @exception CoreException
@@ -143,10 +143,10 @@
 	/**
 	 * Returns whether this breakpoint last suspended in the given target due to
 	 * a method entry (<code>true</code>) or exit (<code>false</code>).
-	 * 
+	 *
 	 * @param target
 	 *            the debug target
-	 * 
+	 *
 	 * @return <code>true</code> if this breakpoint last suspended the given
 	 *         target due to a method entry; <code>false</code> if this
 	 *         breakpoint last suspended in the given target due to a method
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaMethodEntryBreakpoint.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaMethodEntryBreakpoint.java
index 35a683c..171d651 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaMethodEntryBreakpoint.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaMethodEntryBreakpoint.java
@@ -23,7 +23,7 @@
  * the implementation is based on line breakpoints and does not require method
  * enter/exit tracing in the target VM.
  * </p>
- * 
+ *
  * @since 2.0
  * @noimplement This interface is not intended to be implemented by clients.
  * @noextend This interface is not intended to be extended by clients.
@@ -32,7 +32,7 @@
 
 	/**
 	 * Returns the name of the method this breakpoint suspends execution in.
-	 * 
+	 *
 	 * @return the name of the method this breakpoint suspends execution in
 	 * @exception CoreException
 	 *                if unable to access the property from this breakpoint's
@@ -43,7 +43,7 @@
 	/**
 	 * Returns the signature of the method this breakpoint suspends execution
 	 * in.
-	 * 
+	 *
 	 * @return the signature of the method this breakpoint suspends execution in
 	 * @exception CoreException
 	 *                if unable to access the property from this breakpoint's
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaModifiers.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaModifiers.java
index 21fe7ac..14e4314 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaModifiers.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaModifiers.java
@@ -16,7 +16,7 @@
  * Modifiers common to Java debug elements that have associated Java member
  * declarations. For example, the method associated with a stack frame, or the
  * field associated with a variable.
- * 
+ *
  * @noimplement This interface is not intended to be implemented by clients.
  * @noextend This interface is not intended to be extended by clients.
  */
@@ -24,7 +24,7 @@
 
 	/**
 	 * Returns whether the associated Java construct is declared as public.
-	 * 
+	 *
 	 * @return whether the associated Java construct is declared as public
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -38,7 +38,7 @@
 
 	/**
 	 * Returns whether the associated Java construct is declared as private.
-	 * 
+	 *
 	 * @return whether the associated Java construct is declared as private
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -52,7 +52,7 @@
 
 	/**
 	 * Returns whether the associated Java construct is declared as protected.
-	 * 
+	 *
 	 * @return whether the associated Java construct is declared as protected
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -67,7 +67,7 @@
 	/**
 	 * Returns whether the associated Java construct is declared with no
 	 * protection modifier (package private protection).
-	 * 
+	 *
 	 * @return whether the associated Java construct is declared as package
 	 *         private
 	 * @exception DebugException
@@ -82,7 +82,7 @@
 
 	/**
 	 * Returns whether the associated Java construct is declared as final.
-	 * 
+	 *
 	 * @return whether the associated Java construct is declared as final
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -96,7 +96,7 @@
 
 	/**
 	 * Returns whether the associated Java construct is declared as static.
-	 * 
+	 *
 	 * @return whether the associated Java construct is declared as static
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -111,7 +111,7 @@
 	/**
 	 * Returns whether the associated Java construct is synthetic. Synthetic
 	 * members are generated by the compiler and are not present in source code.
-	 * 
+	 *
 	 * @return whether the associated Java construct is synthetic
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaObject.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaObject.java
index f34c3b9..5345a91 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaObject.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaObject.java
@@ -14,7 +14,7 @@
 
 /**
  * A value referencing an object on a target VM.
- * 
+ *
  * @see IJavaValue
  * @since 2.0
  * @noimplement This interface is not intended to be implemented by clients.
@@ -30,7 +30,7 @@
 	 * return until the method invocation is complete. Invoking a method in the
 	 * target VM can result in breakpoints being hit, infinite loops, and
 	 * deadlock.
-	 * 
+	 *
 	 * @param selector
 	 *            the selector of the method to be invoked
 	 * @param signature
@@ -74,7 +74,7 @@
 	 * is complete. This method does not return until the method invocation is
 	 * complete. Invoking a method in the target VM can result in breakpoints
 	 * being hit, infinite loops, and deadlock.
-	 * 
+	 *
 	 * @param selector
 	 *            the selector of the method to be invoked
 	 * @param signature
@@ -116,7 +116,7 @@
 	 * Returns a variable representing the field in this object with the given
 	 * name, or <code>null</code> if there is no field with the given name, or
 	 * the name is ambiguous.
-	 * 
+	 *
 	 * @param name
 	 *            field name
 	 * @param superField
@@ -137,7 +137,7 @@
 	 * Returns a variable representing the field in this object with the given
 	 * name declared in the type with the given signature, or <code>null</code>
 	 * if there is no field with the given name, or the name is ambiguous.
-	 * 
+	 *
 	 * @param name
 	 *            field name
 	 * @param typeSignature
@@ -156,7 +156,7 @@
 	/**
 	 * Returns the threads waiting for the monitor associated to this object, or
 	 * <code>null</code> if no thread is waiting for the monitor.
-	 * 
+	 *
 	 * @return the thread waiting for the monitor, or <code>null</code>.
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -174,7 +174,7 @@
 	/**
 	 * Returns the threads which owns for the monitor associated to this object,
 	 * or <code>null</code> if no thread owns the monitor.
-	 * 
+	 *
 	 * @return the thread which owns the monitor, or <code>null</code>.
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -191,7 +191,7 @@
 
 	/**
 	 * Returns objects that directly reference this object.
-	 * 
+	 *
 	 * @param max
 	 *            the maximum number of references to retrieve or 0 for all
 	 *            references
@@ -206,7 +206,7 @@
 	 * Permits this object to be garbage collected. Has no effect if this VM
 	 * does not support enabling/disabling of garbage collection of specific
 	 * objects.
-	 * 
+	 *
 	 * @throws DebugException
 	 *             if request fails
 	 * @see IJavaDebugTarget
@@ -218,7 +218,7 @@
 	 * Prevents this object from being garbage collected. Has no effect if this
 	 * VM does not support enabling/disabling of garbage collection of specific
 	 * objects.
-	 * 
+	 *
 	 * @throws DebugException
 	 *             if request fails
 	 * @see IJavaDebugTarget
@@ -228,7 +228,7 @@
 
 	/**
 	 * Returns the unique id for this object.
-	 * 
+	 *
 	 * @return unique id or -1 if this value is <code>null</code>
 	 * @throws DebugException
 	 *             if the request fails
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaPatternBreakpoint.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaPatternBreakpoint.java
index cb98c4f..c8b8c5d 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaPatternBreakpoint.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaPatternBreakpoint.java
@@ -16,7 +16,7 @@
  * A line breakpoint installed in types associated with a specific source file
  * (based on source file name debug attribute) and whose fully qualified name
  * matches a specified pattern.
- * 
+ *
  * @since 2.0
  * @deprecated use <code>IJavaStratumLineBreakpoint</code> instead
  * @noimplement This interface is not intended to be implemented by clients.
@@ -28,7 +28,7 @@
 	/**
 	 * Returns the type name pattern this breakpoint uses to identify types in
 	 * which to install itself.
-	 * 
+	 *
 	 * @return the type name pattern this breakpoint uses to identify types in
 	 *         which to install itself
 	 * @exception CoreException
@@ -42,7 +42,7 @@
 	 * breakpoint specifies a source file name, this breakpoint is only
 	 * installed in types whose source file name debug attribute match this
 	 * value.
-	 * 
+	 *
 	 * @return the source file name in which this breakpoint is set
 	 * @exception CoreException
 	 *                if unable to access the property from this breakpoint's
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaPrimitiveValue.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaPrimitiveValue.java
index 425e3ba..7016b45 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaPrimitiveValue.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaPrimitiveValue.java
@@ -12,7 +12,7 @@
 
 /**
  * A primitive value on a Java debug target.
- * 
+ *
  * @since 2.0
  * @noimplement This interface is not intended to be implemented by clients.
  * @noextend This interface is not intended to be extended by clients.
@@ -21,56 +21,56 @@
 
 	/**
 	 * Returns this value as a boolean.
-	 * 
+	 *
 	 * @return this value as a boolean
 	 */
 	public boolean getBooleanValue();
 
 	/**
 	 * Returns this value as a byte
-	 * 
+	 *
 	 * @return this value as a byte
 	 */
 	public byte getByteValue();
 
 	/**
 	 * Returns this value as a char
-	 * 
+	 *
 	 * @return this value as a char
 	 */
 	public char getCharValue();
 
 	/**
 	 * Returns this value as a double
-	 * 
+	 *
 	 * @return this value as a double
 	 */
 	public double getDoubleValue();
 
 	/**
 	 * Returns this value as a float
-	 * 
+	 *
 	 * @return this value as a float
 	 */
 	public float getFloatValue();
 
 	/**
 	 * Returns this value as an int
-	 * 
+	 *
 	 * @return this value as an int
 	 */
 	public int getIntValue();
 
 	/**
 	 * Returns this value as a long
-	 * 
+	 *
 	 * @return this value as a long
 	 */
 	public long getLongValue();
 
 	/**
 	 * Returns this value as a short
-	 * 
+	 *
 	 * @return this value as a short
 	 */
 	public short getShortValue();
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaReferenceType.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaReferenceType.java
index 3d96605..9b2996a 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaReferenceType.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaReferenceType.java
@@ -15,7 +15,7 @@
 /**
  * Represents the type of an object in a virtual machine - including classes,
  * interfaces and array types.
- * 
+ *
  * @since 3.0
  * @noimplement This interface is not intended to be implemented by clients.
  * @noextend This interface is not intended to be extended by clients.
@@ -26,7 +26,7 @@
 	 * Returns a variable representing the static field in this type with the
 	 * given name, or <code>null</code> if there is no field with the given
 	 * name, or the name is ambiguous.
-	 * 
+	 *
 	 * @param name
 	 *            field name
 	 * @return the variable representing the static field, or <code>null</code>
@@ -42,7 +42,7 @@
 
 	/**
 	 * Returns the class object associated with this type.
-	 * 
+	 *
 	 * @return the class object associated with this type
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -56,7 +56,7 @@
 
 	/**
 	 * Returns a collection of strata available for this type.
-	 * 
+	 *
 	 * @return a collection of strata available for this type
 	 * @throws DebugException
 	 *             if unable to retrieve available strata
@@ -65,7 +65,7 @@
 
 	/**
 	 * Returns the default stratum for this type.
-	 * 
+	 *
 	 * @return the default stratum for this type
 	 * @throws DebugException
 	 *             if unable to retrieve the default stratum
@@ -74,7 +74,7 @@
 
 	/**
 	 * Returns a collection of the names of the fields declared in this type.
-	 * 
+	 *
 	 * @return a collection of the names of the field declared in this type
 	 * @throws DebugException
 	 *             if unable to retrieve declared field names
@@ -85,7 +85,7 @@
 	 * Returns a collection of the names of all of the fields declared in this
 	 * type, all of its super classes, implemented interfaces and super
 	 * interfaces.
-	 * 
+	 *
 	 * @return a collection of the names of all of the fields declared in this
 	 *         type, all of its super classes, implemented interfaces and super
 	 *         interfaces
@@ -98,7 +98,7 @@
 	 * Returns the class loader object that loaded the class corresponding to
 	 * this type, or <code>null</code> if this type was loaded by the bootstrap
 	 * loader.
-	 * 
+	 *
 	 * @return the class loader object that loaded the class corresponding to
 	 *         this type or <code>null</code>
 	 * @throws DebugException
@@ -110,7 +110,7 @@
 	/**
 	 * Returns the generic signature as defined in the JVM specification for
 	 * this type. Returns <code>null</code> if this type is not a generic type.
-	 * 
+	 *
 	 * @return signature, or <code>null</code> if generic signature not
 	 *         available
 	 * @exception DebugException
@@ -128,7 +128,7 @@
 	 * Returns the unqualified name of the source file corresponding to this
 	 * type, or <code>null</code> if source name debug attribute is not present.
 	 * The source name returned is based on this target's default stratum.
-	 * 
+	 *
 	 * @return unqualified source file name or <code>null</code>
 	 * @throws DebugException
 	 *             if an exception occurs retrieving the source name
@@ -140,7 +140,7 @@
 	 * Returns the unqualified names of the source files corresponding to this
 	 * type in the specified stratum, or <code>null</code> if the source name
 	 * debug attribute is not present.
-	 * 
+	 *
 	 * @param stratum
 	 *            stratum identifier or <code>null</code> to use this type's
 	 *            default stratum
@@ -155,7 +155,7 @@
 	 * Returns the qualified names of the source files corresponding to this
 	 * type in the specified stratum, or <code>null</code> if the source name
 	 * debug attribute is not present.
-	 * 
+	 *
 	 * @param stratum
 	 *            stratum identifier or <code>null</code> to use this type's
 	 *            default stratum
@@ -168,7 +168,7 @@
 
 	/**
 	 * Retrieves and returns instances of this reference type.
-	 * 
+	 *
 	 * @param max
 	 *            the maximum number of instances to retrieve or 0 to retrieve
 	 *            all instances
@@ -183,7 +183,7 @@
 	 * Returns the number of instances of this type currently allocated in the
 	 * target virtual machine, or -1 if instance counts are not supported by the
 	 * target.
-	 * 
+	 *
 	 * @return number of instances of this type, or -1 if unsupported
 	 * @throws DebugException
 	 *             on failure
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaStackFrame.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaStackFrame.java
index a4d66d5..e5f4b89 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaStackFrame.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaStackFrame.java
@@ -23,7 +23,7 @@
  * Since 3.1, <code>IJavaStackFrame</code> also implements
  * {@link org.eclipse.debug.core.model.IDropToFrame}.
  * </p>
- * 
+ *
  * @see org.eclipse.debug.core.model.IStackFrame
  * @noimplement This interface is not intended to be implemented by clients.
  * @noextend This interface is not intended to be extended by clients.
@@ -37,7 +37,7 @@
 	 * invalid when the thread containing the stack frame resumes. A stack frame
 	 * may or may not be valid if the thread subsequently suspends, depending on
 	 * the location where the thread suspends.
-	 * 
+	 *
 	 * @since 3.1
 	 */
 	public static final int ERR_INVALID_STACK_FRAME = 130;
@@ -45,7 +45,7 @@
 	/**
 	 * Returns whether this stack frame currently supports the drop to frame
 	 * operation. Note that not all VMs support the operation.
-	 * 
+	 *
 	 * @return whether this stack frame currently supports drop to frame
 	 * @deprecated since 3.1, IJavaStackFrame extends
 	 *             org.eclipse.debug.core.IDropToFrame which defines
@@ -57,7 +57,7 @@
 	/**
 	 * Returns whether the method associated with this stack frame is a
 	 * constructor.
-	 * 
+	 *
 	 * @return whether this stack frame is associated with a constructor
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -75,7 +75,7 @@
 	/**
 	 * Returns whether the method associated with this stack frame has been
 	 * declared as native.
-	 * 
+	 *
 	 * @return whether this stack frame has been declared as native
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -93,7 +93,7 @@
 	/**
 	 * Returns whether the method associated with this stack frame is a static
 	 * initializer.
-	 * 
+	 *
 	 * @return whether this stack frame is a static initializer
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -112,7 +112,7 @@
 	/**
 	 * Returns whether the method associated with this stack frame has been
 	 * declared as synchronized.
-	 * 
+	 *
 	 * @return whether this stack frame has been declared as synchronized
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -130,7 +130,7 @@
 	/**
 	 * Returns whether the method associated with this stack frame is running
 	 * code in the VM that is out of synch with the code in the workspace.
-	 * 
+	 *
 	 * @return whether this stack frame is out of synch with the workspace.
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -151,7 +151,7 @@
 	 * that is, it is running old byte codes that have been replaced in the VM.
 	 * This can occur when a hot code replace succeeds but the VM is unable to
 	 * pop a call to an affected method from the call stack.
-	 * 
+	 *
 	 * @return whether this stack frame's method is obsolete
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -170,7 +170,7 @@
 	/**
 	 * Returns the fully qualified name of the type that declares the method
 	 * associated with this stack frame.
-	 * 
+	 *
 	 * @return declaring type name
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -188,7 +188,7 @@
 	/**
 	 * Returns the fully qualified name of the type that is the receiving object
 	 * associated with this stack frame
-	 * 
+	 *
 	 * @return receiving type name
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -206,7 +206,7 @@
 	/**
 	 * Returns the JNI signature for the method this stack frame is associated
 	 * with.
-	 * 
+	 *
 	 * @return signature
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -224,7 +224,7 @@
 	/**
 	 * Returns a list of fully qualified type names of the arguments for the
 	 * method associated with this stack frame.
-	 * 
+	 *
 	 * @return argument type names, or an empty list if this method has no
 	 *         arguments
 	 * @exception DebugException
@@ -242,7 +242,7 @@
 
 	/**
 	 * Returns the name of the method associated with this stack frame
-	 * 
+	 *
 	 * @return method name
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -260,7 +260,7 @@
 	/**
 	 * Returns the local, static, or "this" variable with the given name, or
 	 * <code>null</code> if unable to resolve a variable with the name.
-	 * 
+	 *
 	 * @param variableName
 	 *            the name of the variable to search for
 	 * @return a variable, or <code>null</code> if none
@@ -283,7 +283,7 @@
 	 * that corresponds to the line in the associated source element in the
 	 * specified stratum, or <code>-1</code> if line number information is
 	 * unavailable.
-	 * 
+	 *
 	 * @param stratum
 	 *            the stratum to use.
 	 * @return line number of instruction pointer in this stack frame, or
@@ -295,7 +295,7 @@
 	 *                DebugException's status code contains the underlying
 	 *                exception responsible for the failure.</li>
 	 *                </ul>
-	 * 
+	 *
 	 * @since 3.0
 	 */
 	public int getLineNumber(String stratum) throws DebugException;
@@ -304,7 +304,7 @@
 	 * Returns the source name debug attribute associated with the declaring
 	 * type of this stack frame, or <code>null</code> if the source name debug
 	 * attribute not present.
-	 * 
+	 *
 	 * @return source name debug attribute, or <code>null</code>
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -323,7 +323,7 @@
 	 * Returns the source name debug attribute associated with the declaring
 	 * type of this stack frame in the specified stratum, or <code>null</code>
 	 * if the source name debug attribute not present.
-	 * 
+	 *
 	 * @param stratum
 	 *            the stratum to use.
 	 * @return source name debug attribute, or <code>null</code>
@@ -337,7 +337,7 @@
 	 *                thread containing this stack frame has since been resumed.
 	 *                </li>
 	 *                </ul>
-	 * 
+	 *
 	 * @since 3.0
 	 */
 	public String getSourceName(String stratum) throws DebugException;
@@ -346,7 +346,7 @@
 	 * Returns the source path debug attribute associated with this stack frame
 	 * in the specified stratum, or <code>null</code> if the source path is not
 	 * known.
-	 * 
+	 *
 	 * @param stratum
 	 *            the stratum to use.
 	 * @return source path debug attribute, or <code>null</code>
@@ -367,7 +367,7 @@
 	/**
 	 * Returns the source path debug attribute associated with this stack frame,
 	 * or <code>null</code> if the source path is not known.
-	 * 
+	 *
 	 * @return source path debug attribute, or <code>null</code>
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -386,7 +386,7 @@
 	/**
 	 * Returns a collection of local variables that are visible at the current
 	 * point of execution in this stack frame. The list includes arguments.
-	 * 
+	 *
 	 * @return collection of locals and arguments
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -406,7 +406,7 @@
 	 * Returns a reference to the receiver of the method associated with this
 	 * stack frame, or <code>null</code> if this stack frame represents a static
 	 * method.
-	 * 
+	 *
 	 * @return 'this' object, or <code>null</code>
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -423,7 +423,7 @@
 
 	/**
 	 * Returns the class in which this stack frame's method is declared.
-	 * 
+	 *
 	 * @return the class in which this stack frame's method is declared
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -447,7 +447,7 @@
 
 	/**
 	 * Returns the type in which this stack frame's method is declared.
-	 * 
+	 *
 	 * @return the type in which this stack frame's method is declared
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -468,11 +468,11 @@
 	 * variables were retrieved from the target for this frame. Returns
 	 * <code>true</code> if locals have never been retrieved. This data is
 	 * available after the fact, since variable retrieval is expensive.
-	 * 
+	 *
 	 * @return whether local variable information was available when variables
 	 *         were retrieved from the target. Returns <code>true</code> if
 	 *         locals have never been retrieved
-	 * 
+	 *
 	 * @since 2.0
 	 */
 	public boolean wereLocalsAvailable();
@@ -480,7 +480,7 @@
 	/**
 	 * Returns whether the method associated with this stack frame accepts a
 	 * variable number of arguments.
-	 * 
+	 *
 	 * @return <code>true</code> if the method associated with this stack frame
 	 *         accepts a variable number of arguments, <code>false</code>
 	 *         otherwise.
@@ -505,7 +505,7 @@
 	 * <p>
 	 * Force return is only available when a thread is suspended.
 	 * </p>
-	 * 
+	 *
 	 * @return whether force return can be performed currently
 	 * @since 3.3
 	 */
@@ -522,7 +522,7 @@
 	 * method's return type. Use a void value when a method return type is void
 	 * (see <code>IJavaDebugTarget.voidValue()</code>).</li>
 	 * </ul>
-	 * 
+	 *
 	 * @param value
 	 *            return value that must be assignment compatible with this
 	 *            frame's method's return value
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaStratumLineBreakpoint.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaStratumLineBreakpoint.java
index fd2d6a5..87a7991 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaStratumLineBreakpoint.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaStratumLineBreakpoint.java
@@ -15,7 +15,7 @@
 /**
  * A line breakpoint identified by its source file name and/or path, and stratum
  * that it is relative to.
- * 
+ *
  * @since 3.0
  * @noimplement This interface is not intended to be implemented by clients.
  * @noextend This interface is not intended to be extended by clients.
@@ -31,7 +31,7 @@
 	 * Multiple patterns can be specified in this breakpoint by delimiting the
 	 * patterns with a comma - e.g. "x.y.z,a.b.c".
 	 * </p>
-	 * 
+	 *
 	 * @return the type name patterns this breakpoint uses to identify types in
 	 *         which to install itself.
 	 * @exception CoreException
@@ -46,7 +46,7 @@
 	 * name, this breakpoint is only installed in types whose source file name
 	 * debug attribute matches this value, relative to this breakpoint's
 	 * stratum.
-	 * 
+	 *
 	 * @return the source file name in which this breakpoint is set, or
 	 *         <code>null</code>
 	 * @exception CoreException
@@ -59,7 +59,7 @@
 	 * Returns the stratum that this breakpoint's source name, source path, and
 	 * line number are relative to, or <code>null</code> if this breakpoint is
 	 * relative to a type's default stratum.
-	 * 
+	 *
 	 * @return the stratum that this breakpoint's source name, source path, and
 	 *         line number are relative to, or <code>null</code>
 	 * @throws CoreException
@@ -73,7 +73,7 @@
 	 * or <code>null</code>. When specified, this breakpoint is only installed
 	 * in types whose source file path debug attribute matches this value,
 	 * relative to this breakpoint's stratum.
-	 * 
+	 *
 	 * @return the qualified source file path in which this breakpoint is set,
 	 *         or <code>null</code>
 	 * @throws CoreException
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaTargetPatternBreakpoint.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaTargetPatternBreakpoint.java
index 47bde82..fcdfe9d 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaTargetPatternBreakpoint.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaTargetPatternBreakpoint.java
@@ -19,7 +19,7 @@
  * are not persisted with this breakpoint, as targets are transient. Clients
  * that use this type of breakpoint are intended to be breakpoint listeners that
  * set a pattern per target as each breakpoint is added to a target.
- * 
+ *
  * @see org.eclipse.jdt.debug.core.IJavaBreakpointListener
  * @since 2.0
  * @noimplement This interface is not intended to be implemented by clients.
@@ -30,7 +30,7 @@
 	/**
 	 * Returns the type name pattern this breakpoint uses to identify types in
 	 * which to install itself in the given target
-	 * 
+	 *
 	 * @param target
 	 *            debug target
 	 * @return the type name pattern this breakpoint uses to identify types in
@@ -41,7 +41,7 @@
 	/**
 	 * Sets the type name pattern this breakpoint uses to identify types in
 	 * which to install itself in the given target
-	 * 
+	 *
 	 * @param target
 	 *            debug target
 	 * @param pattern
@@ -57,7 +57,7 @@
 	 * breakpoint specifies a source file name, this breakpoint is only
 	 * installed in types whose source file name debug attribute match this
 	 * value.
-	 * 
+	 *
 	 * @return the source file name in which this breakpoint is set
 	 * @exception CoreException
 	 *                if unable to access the property from this breakpoint's
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaThread.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaThread.java
index 601f518..77d2963 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaThread.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaThread.java
@@ -17,7 +17,7 @@
 
 /**
  * A thread in a Java virtual machine.
- * 
+ *
  * @see org.eclipse.debug.core.model.IThread
  * @noimplement This interface is not intended to be implemented by clients.
  * @noextend This interface is not intended to be extended by clients.
@@ -34,7 +34,7 @@
 	/**
 	 * Status code indicating a request to perform a message send failed because
 	 * a thread was already performing a message send.
-	 * 
+	 *
 	 * @see IJavaObject#sendMessage(String, String, IJavaValue[], IJavaThread,
 	 *      boolean)
 	 * @see IJavaClassType#sendMessage(String, String, IJavaValue[],
@@ -48,7 +48,7 @@
 	 * a thread was not suspended by a step or breakpoint event. When a thread
 	 * is suspended explicitly via the <code>suspend()</code> method, it is not
 	 * able to perform method invocations (this is a JDI limitation).
-	 * 
+	 *
 	 * @see IJavaObject#sendMessage(String, String, IJavaValue[], IJavaThread,
 	 *      boolean)
 	 * @see IJavaClassType#sendMessage(String, String, IJavaValue[],
@@ -59,7 +59,7 @@
 
 	/**
 	 * Returns whether this thread is a system thread.
-	 * 
+	 *
 	 * @return whether this thread is a system thread
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -75,7 +75,7 @@
 	 * Returns whether any of the stack frames associated with this thread are
 	 * running code in the VM that is out of synch with the code in the
 	 * workspace.
-	 * 
+	 *
 	 * @return whether this thread is out of synch with the workspace.
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -90,7 +90,7 @@
 	/**
 	 * Returns whether this thread may be running code in the VM that is out of
 	 * synch with the code in the workspace.
-	 * 
+	 *
 	 * @return whether this thread may be out of synch with the workspace.
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -104,7 +104,7 @@
 
 	/**
 	 * Returns whether this thread is currently performing an evaluation.
-	 * 
+	 *
 	 * @return whether this thread is currently performing an evaluation
 	 * @since 2.0
 	 */
@@ -113,7 +113,7 @@
 	/**
 	 * Returns the name of the thread group this thread belongs to, or
 	 * <code>null</code> if none.
-	 * 
+	 *
 	 * @return thread group name, or <code>null</code> if none
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -134,7 +134,7 @@
 	 * performed in all stack frames, in a top-down order, returning the first
 	 * successful match, or <code>null</code> if no match is found.
 	 * </p>
-	 * 
+	 *
 	 * @param variableName
 	 *            the name of the variable to search for
 	 * @return a variable, or <code>null</code> if none
@@ -161,7 +161,7 @@
 	 * back. Suspend and resume events are not fired during listener call backs.
 	 * Unspecified model specific events are fired.
 	 * </p>
-	 * 
+	 *
 	 * @param evaluation
 	 *            the evaluation to perform
 	 * @param monitor
@@ -186,7 +186,7 @@
 	 * thread. Runnables are executed asynchronously in a separate thread. This
 	 * method should be used to execute any code which performs an operation
 	 * like a method invocation.
-	 * 
+	 *
 	 * @param runnable
 	 *            the runnable to execute.
 	 * @since 2.1
@@ -196,12 +196,12 @@
 	/**
 	 * Attempts to terminate the currently executing
 	 * <code>IEvaluationRunnable</code> in this thread, if any.
-	 * 
+	 *
 	 * Evaluations may be composed of a series of instructions. Terminating an
 	 * evaluation means stopping the evaluation after the current instruction
 	 * completes. A single instruction (such as a method invocation) cannot be
 	 * interrupted.
-	 * 
+	 *
 	 * @exception DebugException
 	 *                if an exception occurs while terminating the evaluation.
 	 * @since 2.1
@@ -212,7 +212,7 @@
 	 * Returns whether the currently executing <code>IEvaluationRunnable</code>
 	 * supports termination. An IEvaluationRunnable supports termination if it
 	 * implements <code>ITerminate</code>
-	 * 
+	 *
 	 * @return whether the current evaluation supports termination
 	 * @since 2.1
 	 */
@@ -221,7 +221,7 @@
 	/**
 	 * Returns a Java object for the monitor for which this thread is currently
 	 * waiting or <code>null</code>.
-	 * 
+	 *
 	 * @return IJavaObject the contended monitor object or <code>null</code> if
 	 *         this thread is not waiting on a monitor.
 	 * @exception DebugException
@@ -234,7 +234,7 @@
 	/**
 	 * Returns the monitors owned by this thread or <code>null</code> if this
 	 * thread owns no monitors.
-	 * 
+	 *
 	 * @return the owned monitors
 	 * @exception DebugException
 	 *                if an exception occurs while retrieving the owned monitors
@@ -245,7 +245,7 @@
 
 	/**
 	 * Returns whether this threads owns at least one monitor.
-	 * 
+	 *
 	 * @return boolean whether this thread owns a monitor
 	 * @exception DebugException
 	 *                if an exception occurs determining if there are owned
@@ -260,9 +260,9 @@
 	 * java.lang.Thread#stop(java.lang.Throwable).<br>
 	 * If the thread is suspended when the method is called, the thread must be
 	 * resumed to complete the action.<br>
-	 * 
+	 *
 	 * <em>exception</em> must represent an exception.
-	 * 
+	 *
 	 * @param exception
 	 *            the exception to throw.
 	 * @exception DebugException
@@ -275,7 +275,7 @@
 	/**
 	 * Returns the thread group this thread belongs to or <code>null</code> if
 	 * none.
-	 * 
+	 *
 	 * @return thread group or <code>null</code>
 	 * @throws DebugException
 	 *             if the thread group cannot be computed
@@ -285,7 +285,7 @@
 
 	/**
 	 * Returns whether this thread is a daemon thread.
-	 * 
+	 *
 	 * @return whether this thread is a daemon thread
 	 * @throws DebugException
 	 *             if an exception occurs while determining status
@@ -295,7 +295,7 @@
 
 	/**
 	 * Returns the number of frames in this thread.
-	 * 
+	 *
 	 * @return number of stack frames
 	 * @throws DebugException
 	 *             if an exception occurs while retrieving the count
@@ -305,7 +305,7 @@
 
 	/**
 	 * Returns the object reference associated with this thread.
-	 * 
+	 *
 	 * @return thread object reference
 	 * @throws DebugException
 	 *             if unable to retrieve an object reference
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaThreadGroup.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaThreadGroup.java
index 612eebe..26cfea3 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaThreadGroup.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaThreadGroup.java
@@ -15,7 +15,7 @@
 
 /**
  * Represents a thread group in the target VM.
- * 
+ *
  * @since 3.2
  * @noimplement This interface is not intended to be implemented by clients.
  * @noextend This interface is not intended to be extended by clients.
@@ -25,7 +25,7 @@
 	/**
 	 * Returns the threads in this thread group. Does not include threads in
 	 * subgroups.
-	 * 
+	 *
 	 * @return threads in this group
 	 * @throws DebugException
 	 *             if the request fails
@@ -34,7 +34,7 @@
 
 	/**
 	 * Returns whether this group contains any threads.
-	 * 
+	 *
 	 * @return whether this group contains any threads
 	 * @throws DebugException
 	 *             if the request fails
@@ -44,7 +44,7 @@
 	/**
 	 * Returns the thread group this thread group is contained in or
 	 * <code>null</code> if none.
-	 * 
+	 *
 	 * @return parent thread group or <code>null</code>
 	 * @throws DebugException
 	 *             if the request fails
@@ -53,7 +53,7 @@
 
 	/**
 	 * Returns whether this thread group contains subgroups.
-	 * 
+	 *
 	 * @return whether this thread group contains subgroups
 	 * @throws DebugException
 	 *             if the request fails
@@ -63,7 +63,7 @@
 	/**
 	 * Returns immediate thread groups contained in this thread. Does not
 	 * include subgroups of immediate groups.
-	 * 
+	 *
 	 * @return thread groups contained in this group
 	 * @throws DebugException
 	 *             if the request fails
@@ -72,7 +72,7 @@
 
 	/**
 	 * Returns the name of this thread group.
-	 * 
+	 *
 	 * @return thread group name
 	 * @throws DebugException
 	 *             if the request fails
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaType.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaType.java
index 52a2213..3a213b7 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaType.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaType.java
@@ -19,7 +19,7 @@
  * <p>
  * Since 3.2, an <code>IJavaType</code> is also a debug element
  * </p>
- * 
+ *
  * @see IJavaValue
  * @noimplement This interface is not intended to be implemented by clients.
  * @noextend This interface is not intended to be extended by clients.
@@ -27,7 +27,7 @@
 public interface IJavaType extends IDebugElement {
 	/**
 	 * Returns the JNI-style signature for this type.
-	 * 
+	 *
 	 * @return signature
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -42,7 +42,7 @@
 	/**
 	 * Returns the name of this type. For example,
 	 * <code>"java.lang.String"</code>.
-	 * 
+	 *
 	 * @return the name of this type
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaValue.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaValue.java
index 3620ba2..1769b46 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaValue.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaValue.java
@@ -15,7 +15,7 @@
 
 /**
  * An object, primitive data type, or array, on a Java virtual machine.
- * 
+ *
  * @see org.eclipse.debug.core.model.IValue
  * @noimplement This interface is not intended to be implemented by clients.
  * @noextend This interface is not intended to be extended by clients.
@@ -24,7 +24,7 @@
 	/**
 	 * Returns the JNI-style signature for the type of this value, or
 	 * <code>null</code> if the value is <code>null</code>.
-	 * 
+	 *
 	 * @return signature, or <code>null</code> if signature is <code>null</code>
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -42,7 +42,7 @@
 	 * Returns the generic signature as defined in the JVM specification for the
 	 * type of this value. Returns <code>null</code> if the value is
 	 * <code>null</code>, or if the type of this value is not a generic type.
-	 * 
+	 *
 	 * @return signature, or <code>null</code> if generic signature not
 	 *         available
 	 * @exception DebugException
@@ -61,19 +61,19 @@
 	/**
 	 * Returns the type of this value, or <code>null</code> if this value
 	 * represents the <code>null</code> value
-	 * 
+	 *
 	 * @return the type of this value, or <code>null</code> if this value
 	 *         represents the <code>null</code> value
 	 * @throws DebugException
 	 *             if the request fails
-	 * 
+	 *
 	 * @since 2.0
 	 */
 	public IJavaType getJavaType() throws DebugException;
 
 	/**
 	 * Returns whether this value represents <code>null</code>.
-	 * 
+	 *
 	 * @return whether this value represents <code>null</code>
 	 * @since 3.5
 	 */
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaVariable.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaVariable.java
index 67f069d..79ed5a0 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaVariable.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaVariable.java
@@ -15,7 +15,7 @@
 
 /**
  * A local variable, field slot, or receiver (this) in a Java virtual machine.
- * 
+ *
  * @see org.eclipse.debug.core.model.IVariable
  * @noimplement This interface is not intended to be implemented by clients.
  * @noextend This interface is not intended to be extended by clients.
@@ -26,7 +26,7 @@
 	 * Returns the JNI-style signature for the declared type of this variable,
 	 * or <code>null</code> if the type associated with the signature is not yet
 	 * loaded in the target VM.
-	 * 
+	 *
 	 * @return signature, or <code>null</code> if not accessible
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -46,7 +46,7 @@
 	 * associated with the signature is not yet loaded in the target VM. Returns
 	 * the same value as #getSignature() if the declared type of this variable
 	 * is not a generic type.
-	 * 
+	 *
 	 * @return generic signature, or <code>null</code> if not accessible
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -63,7 +63,7 @@
 
 	/**
 	 * Returns the declared type of this variable.
-	 * 
+	 *
 	 * @return the declared type of this variable
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -80,7 +80,7 @@
 
 	/**
 	 * Returns whether this variable is local.
-	 * 
+	 *
 	 * @return whether this variable is a local variable
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaWatchpoint.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaWatchpoint.java
index 70cb923..c18032c 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaWatchpoint.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaWatchpoint.java
@@ -23,7 +23,7 @@
  * Since 3.1, <code>IJavaWatchpoint</code> also implements
  * {@link org.eclipse.debug.core.model.IWatchpoint}.
  * </p>
- * 
+ *
  * @since 2.0
  * @noimplement This interface is not intended to be implemented by clients.
  * @noextend This interface is not intended to be extended by clients.
@@ -31,7 +31,7 @@
 public interface IJavaWatchpoint extends IJavaLineBreakpoint, IWatchpoint {
 	/**
 	 * Returns the name of the field associated with this watchpoint
-	 * 
+	 *
 	 * @return field the name of the field on which this watchpoint is installed
 	 * @exception CoreException
 	 *                if unable to access the property on this breakpoint's
@@ -42,10 +42,10 @@
 	/**
 	 * Returns whether this breakpoint last suspended in this target due to an
 	 * access (<code>true</code>) or modification (<code>false</code>).
-	 * 
+	 *
 	 * @param target
 	 *            the debug target
-	 * 
+	 *
 	 * @return <code>true</code> if this watchpoint last suspended the given
 	 *         target due to a field access; <code>false</code> if this
 	 *         watchpoint last suspended the given target due to a modification
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/JDIDebugModel.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/JDIDebugModel.java
index 1bfadb1..d1e64bf 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/JDIDebugModel.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/JDIDebugModel.java
@@ -58,7 +58,7 @@
  * <p>
  * This class provides static utility methods only.
  * </p>
- * 
+ *
  * @noinstantiate This class is not intended to be instantiated by clients.
  * @noextend This class is not intended to be subclassed by clients.
  */
@@ -87,7 +87,7 @@
 	 * evaluation operation. If true, breakpoints will be hit as usual during
 	 * evaluations. If false, the breakpoint manager will be automatically
 	 * disabled during evaluations.
-	 * 
+	 *
 	 * @since 3.0
 	 */
 	public static final String PREF_SUSPEND_FOR_BREAKPOINTS_DURING_EVALUATION = getPluginIdentifier()
@@ -100,7 +100,7 @@
 	 */
 	public static final String PREF_FILTER_BREAKPOINTS_FROM_UNRELATED_SOURCES = getPluginIdentifier()
 			+ ".do_not_install_breakpoints_from_unrelated_sources"; //$NON-NLS-1$
-	
+
 	/**
 	 * Preference key for specifying if the value returned or thrown should be displayed as variable after a "step return" or "step over" (if
 	 * supported by the vm)
@@ -125,7 +125,7 @@
 	 * <code>IDisconnect</code>). Launching the actual VM is a client
 	 * responsibility. By default, the target VM will be resumed on startup. The
 	 * debug target is added to the given launch.
-	 * 
+	 *
 	 * @param launch
 	 *            the launch the new debug target will be contained in
 	 * @param vm
@@ -164,7 +164,7 @@
 	 * when the connection to the VM was established). Launching the actual VM
 	 * is a client responsibility. The debug target is added to the given
 	 * launch.
-	 * 
+	 *
 	 * @param launch
 	 *            the launch the new debug target will be contained in
 	 * @param vm
@@ -211,7 +211,7 @@
 
 	/**
 	 * Returns the identifier for the JDI debug model plug-in
-	 * 
+	 *
 	 * @return plug-in identifier
 	 */
 	public static String getPluginIdentifier() {
@@ -227,7 +227,7 @@
 	 * class are not notified of hot code replace events for that target. This
 	 * allows a target to have custom hot code replace notification behavior.
 	 * </p>
-	 * 
+	 *
 	 * @param listener
 	 *            hot code replace listener
 	 * @see IJavaHotCodeReplaceListener
@@ -242,7 +242,7 @@
 	/**
 	 * Unregisters the given listener for hot code replace notifications. Has no
 	 * effect if an identical listener is not already registered.
-	 * 
+	 *
 	 * @param listener
 	 *            hot code replace listener
 	 * @see IJavaHotCodeReplaceListener
@@ -256,7 +256,7 @@
 	/**
 	 * Registers the given listener for breakpoint notifications. Has no effect
 	 * if an identical listener is already registered.
-	 * 
+	 *
 	 * @param listener
 	 *            breakpoint listener
 	 * @see IJavaBreakpointListener
@@ -270,7 +270,7 @@
 	/**
 	 * Unregisters the given listener for breakpoint notifications. Has no
 	 * effect if an identical listener is not already registered.
-	 * 
+	 *
 	 * @param listener
 	 *            breakpoint listener
 	 * @see IJavaBreakpointListener
@@ -288,7 +288,7 @@
 	 * is known, it may be specified by charStart/charEnd. If hitCount is > 0,
 	 * the breakpoint will suspend execution when it is "hit" the specified
 	 * number of times.
-	 * 
+	 *
 	 * @param resource
 	 *            the resource on which to create the associated breakpoint
 	 *            marker
@@ -337,7 +337,7 @@
 			int hitCount, boolean register, Map<String, Object> attributes)
 			throws CoreException {
 		if (attributes == null)
-			attributes = new HashMap<String, Object>(10);
+			attributes = new HashMap<>(10);
 		return new JavaLineBreakpoint(resource, typeName, lineNumber,
 				charStart, charEnd, hitCount, register, attributes);
 	}
@@ -347,7 +347,7 @@
 	 * given line number, which is installed in all classes whose fully
 	 * qualified name matches the given pattern. If hitCount > 0, the breakpoint
 	 * will suspend execution when it is "hit" the specified number of times.
-	 * 
+	 *
 	 * @param resource
 	 *            the resource on which to create the associated breakpoint
 	 *            marker
@@ -398,7 +398,7 @@
 			int lineNumber, int charStart, int charEnd, int hitCount,
 			boolean register, Map<String, Object> attributes) throws CoreException {
 		if (attributes == null)
-			attributes = new HashMap<String, Object>(10);
+			attributes = new HashMap<>(10);
 		return new JavaPatternBreakpoint(resource, sourceName, pattern,
 				lineNumber, charStart, charEnd, hitCount, register, attributes);
 	}
@@ -406,7 +406,7 @@
 	/**
 	 * Creates and returns a line breakpoint identified by its source file name
 	 * and/or path, and stratum that it is relative to.
-	 * 
+	 *
 	 * @param resource
 	 *            the resource on which to create the associated breakpoint
 	 *            marker
@@ -482,7 +482,7 @@
 			int charStart, int charEnd, int hitCount, boolean register,
 			Map<String, Object> attributes) throws CoreException {
 		if (attributes == null)
-			attributes = new HashMap<String, Object>(10);
+			attributes = new HashMap<>(10);
 		return new JavaStratumLineBreakpoint(resource, stratum, sourceName,
 				sourcePath, classNamePattern, lineNumber, charStart, charEnd,
 				hitCount, register, attributes);
@@ -493,7 +493,7 @@
 	 * the given line number. Clients must set the class name pattern per target
 	 * for this type of breakpoint. If hitCount > 0, the breakpoint will suspend
 	 * execution when it is "hit" the specified number of times.
-	 * 
+	 *
 	 * @param resource
 	 *            the resource on which to create the associated breakpoint
 	 *            marker
@@ -538,7 +538,7 @@
 			int charStart, int charEnd, int hitCount, boolean register,
 			Map<String, Object> attributes) throws CoreException {
 		if (attributes == null)
-			attributes = new HashMap<String, Object>(10);
+			attributes = new HashMap<>(10);
 		return new JavaTargetPatternBreakpoint(resource, sourceName,
 				lineNumber, charStart, charEnd, hitCount, register, attributes);
 	}
@@ -550,7 +550,7 @@
 	 * should cause thread suspensions - that is, in caught and/or uncaught
 	 * locations. Checked indicates if the given exception is a checked
 	 * exception.
-	 * 
+	 *
 	 * @param resource
 	 *            the resource on which to create the associated breakpoint
 	 *            marker
@@ -585,7 +585,7 @@
 			boolean uncaught, boolean checked, boolean register, Map<String, Object> attributes)
 			throws CoreException {
 		if (attributes == null)
-			attributes = new HashMap<String, Object>(10);
+			attributes = new HashMap<>(10);
 		return new JavaExceptionBreakpoint(resource, exceptionName, caught,
 				uncaught, checked, register, attributes);
 	}
@@ -595,7 +595,7 @@
 	 * with the given name. The marker associated with the breakpoint will be
 	 * created on the specified resource. If hitCount > 0, the breakpoint will
 	 * suspend execution when it is "hit" the specified number of times.
-	 * 
+	 *
 	 * @param resource
 	 *            the resource on which to create the associated breakpoint
 	 *            marker
@@ -647,14 +647,14 @@
 			int charEnd, int hitCount, boolean register, Map<String, Object> attributes)
 			throws CoreException {
 		if (attributes == null)
-			attributes = new HashMap<String, Object>(10);
+			attributes = new HashMap<>(10);
 		return new JavaWatchpoint(resource, typeName, fieldName, lineNumber,
 				charStart, charEnd, hitCount, register, attributes);
 	}
 
 	/**
 	 * Creates and returns a method breakpoint with the specified criteria.
-	 * 
+	 *
 	 * @param resource
 	 *            the resource on which to create the associated breakpoint
 	 *            marker
@@ -717,7 +717,7 @@
 			int hitCount, boolean register, Map<String, Object> attributes)
 			throws CoreException {
 		if (attributes == null)
-			attributes = new HashMap<String, Object>(10);
+			attributes = new HashMap<>(10);
 		return new JavaMethodBreakpoint(resource, typePattern, methodName,
 				methodSignature, entry, exit, nativeOnly, lineNumber,
 				charStart, charEnd, hitCount, register, attributes);
@@ -727,7 +727,7 @@
 	 * Creates and returns a method entry breakpoint with the specified
 	 * criteria. A method entry breakpoint will only be installed for methods
 	 * that have executable code (i.e. will not work for native methods).
-	 * 
+	 *
 	 * @param resource
 	 *            the resource on which to create the associated breakpoint
 	 *            marker
@@ -776,7 +776,7 @@
 			int hitCount, boolean register, Map<String, Object> attributes)
 			throws CoreException {
 		if (attributes == null)
-			attributes = new HashMap<String, Object>(10);
+			attributes = new HashMap<>(10);
 		return new JavaMethodEntryBreakpoint(resource, typeName, methodName,
 				methodSignature, lineNumber, charStart, charEnd, hitCount,
 				register, attributes);
@@ -786,7 +786,7 @@
 	 * Returns a Java line breakpoint that is already registered with the
 	 * breakpoint manager for a type with the given name at the given line
 	 * number.
-	 * 
+	 *
 	 * @param typeName
 	 *            fully qualified type name
 	 * @param lineNumber
@@ -826,7 +826,7 @@
 	 * Returns a Java line breakpoint that is already registered with the
 	 * breakpoint manager for a type with the given name at the given line
 	 * number in the given resource.
-	 * 
+	 *
 	 * @param resource
 	 *            the resource
 	 * @param typeName
@@ -873,14 +873,14 @@
 	 * convenience method. <br>
 	 * <br>
 	 * For example:
-	 * 
+	 *
 	 * <pre>
 	 * IEclipsePreferences node = InstanceScope.INSTANCE.getNode(JDIDebugPlugin.getUniqueIdentifier());
 	 * if(node != null) {
 	 * 	...
 	 * }
 	 * </pre>
-	 * 
+	 *
 	 * @return the preference store for this plug-in
 	 * @since 2.0
 	 * @deprecated the {@link Preferences} class has been deprecated, use the {@link IEclipsePreferences} accessors instead
@@ -896,7 +896,7 @@
 	/**
 	 * Saves the preference store for this plug-in.
 	 * <br><br>
-	 * The Preferences class has been deprecated and clients should directly be using the 
+	 * The Preferences class has been deprecated and clients should directly be using the
 	 * InstanceScope node for JDIDebugPlugin rather than this convenience method.
 	 * <br><br>
 	 * For example:
@@ -928,7 +928,7 @@
 	 * Creates and returns a class prepare breakpoint for a type with the given
 	 * name. The marker associated with the breakpoint will be created on the
 	 * specified resource.
-	 * 
+	 *
 	 * @param resource
 	 *            the resource on which to create the associated breakpoint
 	 *            marker
@@ -965,7 +965,7 @@
 			IResource resource, String typeName, int memberType, int charStart,
 			int charEnd, boolean register, Map<String, Object> attributes) throws CoreException {
 		if (attributes == null)
-			attributes = new HashMap<String, Object>(10);
+			attributes = new HashMap<>(10);
 		return new JavaClassPrepareBreakpoint(resource, typeName, memberType,
 				charStart, charEnd, register, attributes);
 	}
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/EventDispatcher.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/EventDispatcher.java
index c5af456..92c0328 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/EventDispatcher.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/EventDispatcher.java
@@ -76,24 +76,24 @@
 	 * Queue of debug model events to fire, created when processing events on
 	 * the target VM. Keyed by event sets, processed independently.
 	 */
-	private Map<EventSet, List<DebugEvent>> fSetToQueue = new HashMap<EventSet, List<DebugEvent>>();
+	private Map<EventSet, List<DebugEvent>> fSetToQueue = new HashMap<>();
 
 	/**
 	 * Constructs a new event dispatcher listening for events originating from
 	 * the specified debug target's underlying VM.
-	 * 
+	 *
 	 * @param target
 	 *            the target this event dispatcher belongs to
 	 */
 	public EventDispatcher(JDIDebugTarget target) {
-		fEventHandlers = new HashMap<EventRequest, IJDIEventListener>(10);
+		fEventHandlers = new HashMap<>(10);
 		fTarget = target;
 		fShutdown = false;
 	}
 
 	/**
 	 * Dispatch the given event set.
-	 * 
+	 *
 	 * @param eventSet
 	 *            events to dispatch
 	 */
@@ -139,7 +139,7 @@
 					try {
 						if (((IJavaLineBreakpoint) listener).isConditionEnabled()) {
 							if (deferredEvents == null) {
-								deferredEvents = new ArrayList<Event>(5);
+								deferredEvents = new ArrayList<>(5);
 							}
 							deferredEvents.add(event);
 							continue;
@@ -224,7 +224,7 @@
 	 * Continuously reads events that are coming from the event queue, until
 	 * this event dispatcher is shutdown. A debug target starts a thread on this
 	 * method on startup.
-	 * 
+	 *
 	 * @see #shutdown()
 	 */
 	@Override
@@ -287,7 +287,7 @@
 
 	/**
 	 * Returns whether this event dispatcher has been shutdown.
-	 * 
+	 *
 	 * @return whether this event dispatcher has been shutdown
 	 */
 	private boolean isShutdown() {
@@ -298,7 +298,7 @@
 	 * Registers the given listener for with the given event request. When an
 	 * event is received from the underlying VM, that is associated with the
 	 * given event request, the listener will be notified.
-	 * 
+	 *
 	 * @param listener
 	 *            the listener to register
 	 * @param request
@@ -314,7 +314,7 @@
 	 * De-registers the given listener and event request. The listener will no
 	 * longer be notified of events associated with the request. Listeners are
 	 * responsible for deleting the associated event request if required.
-	 * 
+	 *
 	 * @param listener
 	 *            the listener to de-register
 	 * @param request
@@ -327,7 +327,7 @@
 	/**
 	 * Adds the given event to the queue of debug events to fire when done
 	 * dispatching events from the given event set.
-	 * 
+	 *
 	 * @param event
 	 *            the event to queue
 	 * @param set
@@ -337,7 +337,7 @@
 		synchronized (fSetToQueue) {
 			List<DebugEvent> list = fSetToQueue.get(set);
 			if (list == null) {
-				list = new ArrayList<DebugEvent>(5);
+				list = new ArrayList<>(5);
 				fSetToQueue.put(set, list);
 			}
 			list.add(event);
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/HeapWalkingManager.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/HeapWalkingManager.java
index d21d357..bd1efa4 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/HeapWalkingManager.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/HeapWalkingManager.java
@@ -21,7 +21,7 @@
 /**
  * Controls preferences related to heap walking so that they are available in
  * java debug model code, but can be updated through the UI.
- * 
+ *
  * @since 3.3
  */
 public class HeapWalkingManager {
@@ -38,7 +38,7 @@
 	 * Returns whether the given parent object is a debug element with a debug
 	 * target that supports retrieval of instance and reference information from
 	 * the VM.
-	 * 
+	 *
 	 * @param object
 	 *            the object to test, can be <code>null</code>
 	 * @return whether the given object has a debug target that supports heap
@@ -76,8 +76,8 @@
 	public boolean isShowReferenceInVarView() {
 		return Platform.getPreferencesService().getBoolean(
 				JDIDebugPlugin.getUniqueIdentifier(),
-				JDIDebugPlugin.PREF_SHOW_REFERENCES_IN_VAR_VIEW, 
-				false, 
+				JDIDebugPlugin.PREF_SHOW_REFERENCES_IN_VAR_VIEW,
+				false,
 				null);
 	}
 
@@ -107,7 +107,7 @@
 
 	/**
 	 * Stores the passed vale in the preference store
-	 * 
+	 *
 	 * @param value
 	 *            whether to display references as variables in the variables
 	 *            view
@@ -126,7 +126,7 @@
 
 	/**
 	 * Stores the passed value in the preference store
-	 * 
+	 *
 	 * @param max
 	 *            the maximum number of references that should be displayed to
 	 *            the user
@@ -145,7 +145,7 @@
 
 	/**
 	 * Stores the passed value in the preference store
-	 * 
+	 *
 	 * @param max
 	 *            the maximum number of instances that should be displayed to
 	 *            the user
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/IJDIEventListener.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/IJDIEventListener.java
index f94242b..6032ebd 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/IJDIEventListener.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/IJDIEventListener.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -20,7 +20,7 @@
  * A jdi event listener is notified of events associated with a specific jdi
  * event request. A listener registers/deregisters event requests with a debug
  * target.
- * 
+ *
  * @see JDIDebugTarget#addJDIEventListener(IJDIEventListener, EventRequest)
  * @see JDIDebugTarget#removeJDIEventListener(IJDIEventListener, EventRequest)
  */
@@ -40,7 +40,7 @@
 	 * running its evaluation since the vote is already to suspend (if it
 	 * coincides with a step end).
 	 * </p>
-	 * 
+	 *
 	 * @param event
 	 *            the event to handle
 	 * @param target
@@ -57,7 +57,7 @@
 	/**
 	 * Notification that all event handlers for an event set have handled their
 	 * associated events and whether the event set will suspend.
-	 * 
+	 *
 	 * @param event
 	 *            event the listener was registered for/handled
 	 * @param target
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/JDIDebugMessages.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/JDIDebugMessages.java
index 9d3bfb2..ff6695f 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/JDIDebugMessages.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/JDIDebugMessages.java
@@ -3,8 +3,8 @@
  * program and the accompanying materials are made available under the terms of
  * the Eclipse Public License v1.0 which accompanies this distribution, and is
  * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
+ *
+ * Contributors:
  * IBM - Initial API and implementation
  **********************************************************************/
 package org.eclipse.jdt.internal.debug.core;
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/JDIDebugOptions.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/JDIDebugOptions.java
index 88549d2..062eddd 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/JDIDebugOptions.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/JDIDebugOptions.java
@@ -22,17 +22,17 @@
 
 /**
  * Debug flags in options file.
- * 
+ *
  * @since 3.5
  */
 public class JDIDebugOptions implements DebugOptionsListener {
-	
+
 	public static final String DEBUG_AST_EVALUATIONS_CALLING_THREADS_FLAG = "org.eclipse.jdt.debug/debug/astEvaluations/callingThreads"; //$NON-NLS-1$
 	public static final String DEBUG_AST_EVALUATIONS_FLAG = "org.eclipse.jdt.debug/debug/astEvaluations"; //$NON-NLS-1$
 	public static final String DEBUG_JDI_REQUEST_TIMES_FLAG = "org.eclipse.jdt.debug/debug/jdiRequestTimes"; //$NON-NLS-1$
 	public static final String DEBUG_JDI_EVENTS_FLAG = "org.eclipse.jdt.debug/debug/jdiEvents"; //$NON-NLS-1$
 	public static final String DEBUG_FLAG = "org.eclipse.jdt.debug/debug"; //$NON-NLS-1$
-	
+
 	public static boolean DEBUG = false;
 	public static boolean DEBUG_JDI_EVENTS = false;
 	public static boolean DEBUG_JDI_REQUEST_TIMES = false;
@@ -44,16 +44,16 @@
 	 * @since 3.8
 	 */
 	private static DebugTrace fgDebugTrace;
-	
+
 	/**
 	 * Constructor
 	 */
 	public JDIDebugOptions(BundleContext context) {
-		Hashtable<String, String> props = new Hashtable<String, String>(2);
+		Hashtable<String, String> props = new Hashtable<>(2);
 		props.put(org.eclipse.osgi.service.debug.DebugOptions.LISTENER_SYMBOLICNAME, JDIDebugPlugin.getUniqueIdentifier());
 		context.registerService(DebugOptionsListener.class.getName(), this, props);
 	}
-	
+
 	// used to format debug messages
 	public static final DateFormat FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); //$NON-NLS-1$
 
@@ -69,7 +69,7 @@
 		DEBUG_AST_EVAL = DEBUG && options.getBooleanOption(DEBUG_AST_EVALUATIONS_FLAG, false);
 		DEBUG_AST_EVAL_THREAD_TRACE = DEBUG && options.getBooleanOption(DEBUG_AST_EVALUATIONS_CALLING_THREADS_FLAG, false);
 	}
-	
+
 	/**
 	 * Prints the given message to System.out and to the OSGi tracing (if started)
 	 * @param option the option or <code>null</code>
@@ -83,10 +83,10 @@
 			fgDebugTrace.trace(option, message, throwable);
 		}
 	}
-	
+
 	/**
 	 * Prints the given message to System.out and to the OSGi tracing (if enabled)
-	 * 
+	 *
 	 * @param message the message or <code>null</code>
 	 * @since 3.8
 	 */
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/JDIDebugPlugin.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/JDIDebugPlugin.java
index 64520fa..5d92208 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/JDIDebugPlugin.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/JDIDebugPlugin.java
@@ -56,16 +56,16 @@
 
 	/**
 	 * Boolean preference controlling if hot code replace is enabled.
-	 * 
+	 *
 	 * @since 3.11
 	 */
 	public static final String PREF_ENABLE_HCR = JDIDebugPlugin
 			.getUniqueIdentifier() + ".enable_hcr"; //$NON-NLS-1$
-	
+
 	/**
 	 * integer preference controlling if we should, by default, suspend the VM
 	 * instead of the thread
-	 * 
+	 *
 	 * @since 3.2
 	 */
 	public static final String PREF_DEFAULT_BREAKPOINT_SUSPEND_POLICY = JDIDebugPlugin
@@ -74,7 +74,7 @@
 	/**
 	 * integer preference controlling which default suspend option to set on new
 	 * watchpoints
-	 * 
+	 *
 	 * @since 3.3.1
 	 */
 	public static final String PREF_DEFAULT_WATCHPOINT_SUSPEND_POLICY = JDIDebugPlugin
@@ -83,7 +83,7 @@
 	/**
 	 * Boolean preference controlling if references should be displayed as
 	 * variables in the variables and expressions view
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	public static final String PREF_SHOW_REFERENCES_IN_VAR_VIEW = JDIDebugPlugin
@@ -92,7 +92,7 @@
 	/**
 	 * Integer preference determining the maximum number of references that
 	 * should be returned to the user when displaying reference information
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	public static final String PREF_ALL_REFERENCES_MAX_COUNT = JDIDebugPlugin
@@ -101,7 +101,7 @@
 	/**
 	 * Integer preference determining the maximum number of instances that
 	 * should be returned to the user when displaying instance information
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	public static final String PREF_ALL_INSTANCES_MAX_COUNT = JDIDebugPlugin
@@ -109,14 +109,14 @@
 
 	/**
 	 * Extension point for java logical structures.
-	 * 
+	 *
 	 * @since 3.1
 	 */
 	public static final String EXTENSION_POINT_JAVA_LOGICAL_STRUCTURES = "javaLogicalStructures"; //$NON-NLS-1$
 
 	/**
 	 * Extension point for java breakpoint action delegates.
-	 * 
+	 *
 	 * @since 3.5
 	 */
 	public static final String EXTENSION_POINT_JAVA_BREAKPOINT_LISTENERS = "breakpointListeners"; //$NON-NLS-1$
@@ -165,7 +165,7 @@
 	 * evaluations, via a status handler. A status handler is contributed by the
 	 * Java debug UI. When not present, the debug model uses any suspended
 	 * thread.
-	 * 
+	 *
 	 * @since 3.0
 	 */
 	public static final int INFO_EVALUATION_THREAD = 110;
@@ -175,14 +175,14 @@
 	 */
 	public static final IStatus STATUS_GET_EVALUATION_THREAD = new Status(
 			IStatus.INFO, getUniqueIdentifier(), INFO_EVALUATION_THREAD,
-			"Provides thread context for an evaluation", null); //$NON-NLS-1$	
+			"Provides thread context for an evaluation", null); //$NON-NLS-1$
 
 	/**
 	 * Status code used by the debug model to retrieve a frame to use for
 	 * evaluations, via a status handler. A status handler is contributed by the
 	 * Java debug UI. When not present, the debug model uses any suspended
 	 * thread.
-	 * 
+	 *
 	 * @since 3.0
 	 */
 	public static final int INFO_EVALUATION_STACK_FRAME = 111;
@@ -201,7 +201,7 @@
 
 	/**
 	 * Returns whether the debug UI plug-in is in trace mode.
-	 * 
+	 *
 	 * @return whether the debug UI plug-in is in trace mode
 	 */
 	public boolean isTraceMode() {
@@ -210,7 +210,7 @@
 
 	/**
 	 * Logs the given message if in trace mode.
-	 * 
+	 *
 	 * @param message the string to log
 	 */
 	public static void logTraceMessage(String message) {
@@ -224,7 +224,7 @@
 
 	/**
 	 * Return the singleton instance of the JDI Debug Model plug-in.
-	 * 
+	 *
 	 * @return the singleton instance of JDIDebugPlugin
 	 */
 	public static JDIDebugPlugin getDefault() {
@@ -245,7 +245,7 @@
 	 * Returns the detected version of JDI support. This is intended to
 	 * distinguish between clients that support JDI 1.4 methods like hot code
 	 * replace.
-	 * 
+	 *
 	 * @return an array of version numbers, major followed by minor
 	 * @since 2.1
 	 */
@@ -262,7 +262,7 @@
 	/**
 	 * Returns if the JDI version being used is greater than or equal to the
 	 * given version (major, minor).
-	 * 
+	 *
 	 * @param version the array of version number identifiers to compare
 	 * @return boolean
 	 */
@@ -337,7 +337,7 @@
 
 	/**
 	 * Shutdown the HCR manager and the Java debug targets.
-	 * 
+	 *
 	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
 	 * @see org.eclipse.core.runtime.Plugin#shutdown()
 	 */
@@ -372,9 +372,9 @@
 	public void preferenceChange(PreferenceChangeEvent event) {
 		if (event.getKey().equals(JDIDebugModel.PREF_REQUEST_TIMEOUT)) {
 			int value = Platform.getPreferencesService().getInt(
-					JDIDebugPlugin.getUniqueIdentifier(), 
-					JDIDebugModel.PREF_REQUEST_TIMEOUT, 
-					JDIDebugModel.DEF_REQUEST_TIMEOUT, 
+					JDIDebugPlugin.getUniqueIdentifier(),
+					JDIDebugModel.PREF_REQUEST_TIMEOUT,
+					JDIDebugModel.DEF_REQUEST_TIMEOUT,
 					null);
 			IDebugTarget[] targets = DebugPlugin.getDefault().getLaunchManager().getDebugTargets();
 			for (IDebugTarget target : targets) {
@@ -384,10 +384,10 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Logs the specified {@link Throwable} with this plug-in's log.
-	 * 
+	 *
 	 * @param t {@link Throwable} to log
 	 */
 	public static void log(Throwable t) {
@@ -402,12 +402,12 @@
 		// this message is intentionally not internationalized, as an exception
 		// may be due to the resource bundle itself
 		log(new Status(IStatus.ERROR, getUniqueIdentifier(), INTERNAL_ERROR,
-				"Internal error logged from JDI Debug: ", top)); //$NON-NLS-1$		
+				"Internal error logged from JDI Debug: ", top)); //$NON-NLS-1$
 	}
 
 	/**
 	 * Logs the specified status with this plug-in's log.
-	 * 
+	 *
 	 * @param status
 	 *            status to log
 	 */
@@ -436,7 +436,7 @@
 
 	/**
 	 * Adds the given breakpoint listener to the JDI debug model.
-	 * 
+	 *
 	 * @param listener
 	 *            breakpoint listener
 	 */
@@ -446,7 +446,7 @@
 
 	/**
 	 * Removes the given breakpoint listener from the JDI debug model.
-	 * 
+	 *
 	 * @param listener
 	 *            breakpoint listener
 	 */
@@ -456,7 +456,7 @@
 
 	/**
 	 * Notifies listeners that the given breakpoint is about to be added.
-	 * 
+	 *
 	 * @param target
 	 *            Java debug target
 	 * @param breakpoint
@@ -469,7 +469,7 @@
 
 	/**
 	 * Notifies listeners that the given breakpoint has been installed.
-	 * 
+	 *
 	 * @param target
 	 *            Java debug target
 	 * @param breakpoint
@@ -483,7 +483,7 @@
 
 	/**
 	 * Notifies listeners that the given breakpoint has been removed.
-	 * 
+	 *
 	 * @param target
 	 *            Java debug target
 	 * @param breakpoint
@@ -497,7 +497,7 @@
 	/**
 	 * Notifies listeners that the given breakpoint has been hit. Returns
 	 * whether the thread should suspend.
-	 * 
+	 *
 	 * @param thread the current thread context
 	 * @param breakpoint Java breakpoint
 	 * @return if the thread should suspend
@@ -509,7 +509,7 @@
 	/**
 	 * Notifies listeners that the given breakpoint is about to be installed in
 	 * the given type. Returns whether the breakpoint should be installed.
-	 * 
+	 *
 	 * @param target
 	 *            Java debug target
 	 * @param breakpoint
@@ -576,7 +576,7 @@
 		/**
 		 * Returns the breakpoint for which notification is proceeding or
 		 * <code>null</code> if not in notification.
-		 * 
+		 *
 		 * @return breakpoint or <code>null</code>
 		 */
 		protected IJavaBreakpoint getBreakpoint() {
@@ -586,7 +586,7 @@
 		/**
 		 * Returns the listener for which notification is proceeding or
 		 * <code>null</code> if not in notification loop.
-		 * 
+		 *
 		 * @return breakpoint listener or <code>null</code>
 		 */
 		protected IJavaBreakpointListener getListener() {
@@ -636,7 +636,7 @@
 
 		/**
 		 * Notifies listeners of the given addition, install, or remove.
-		 * 
+		 *
 		 * @param target
 		 *            debug target
 		 * @param breakpoint
@@ -697,7 +697,7 @@
 		 * Notifies listeners that the given breakpoint is about to be installed
 		 * in the given type. Returns whether the breakpoint should be
 		 * installed.
-		 * 
+		 *
 		 * @param target
 		 *            Java debug target
 		 * @param breakpoint
@@ -757,7 +757,7 @@
 		/**
 		 * Notifies listeners that the given breakpoint has been hit. Returns
 		 * whether the thread should suspend.
-		 * 
+		 *
 		 * @param thread
 		 *            thread in which the breakpoint was hit
 		 * @param breakpoint
@@ -780,7 +780,7 @@
 	 * Returns an evaluation engine for the given project in the given debug
 	 * target or <code>null</code> if target does not have a IJavaDebugTarget
 	 * that is a JDIDebugTarget implementation.
-	 * 
+	 *
 	 * @param project java project
 	 * @param target the debug target
 	 * @return evaluation engine or <code>null</code>
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/JDIDebugPluginPreferenceInitializer.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/JDIDebugPluginPreferenceInitializer.java
index 080b144..ca27983 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/JDIDebugPluginPreferenceInitializer.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/JDIDebugPluginPreferenceInitializer.java
@@ -25,7 +25,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#
 	 * initializeDefaultPreferences()
 	 */
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/JavaDebugPropertyTester.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/JavaDebugPropertyTester.java
index db2d768..47831fd 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/JavaDebugPropertyTester.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/JavaDebugPropertyTester.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -22,7 +22,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object,
 	 * java.lang.String, java.lang.Object[], java.lang.Object)
 	 */
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/JavaDebugUtils.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/JavaDebugUtils.java
index 0cd5809..30ac59d 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/JavaDebugUtils.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/JavaDebugUtils.java
@@ -49,7 +49,7 @@
 
 /**
  * A Utilities class.
- * 
+ *
  * @since 3.2
  */
 public class JavaDebugUtils {
@@ -60,7 +60,7 @@
 	/**
 	 * Resolves and returns a type from the Java model that corresponds to the
 	 * declaring type of the given stack frame, or <code>null</code> if none.
-	 * 
+	 *
 	 * @param frame
 	 *            frame to resolve declaring type for
 	 * @return corresponding Java model type or <code>null</code>
@@ -80,7 +80,7 @@
 	/**
 	 * Resolves and returns a type from the Java model that corresponds to the
 	 * type of the given value, or <code>null</code> if none.
-	 * 
+	 *
 	 * @param value
 	 *            value to resolve type for
 	 * @return corresponding Java model type or <code>null</code>
@@ -98,7 +98,7 @@
 	/**
 	 * Resolves and returns the Java model type associated with the given Java
 	 * debug type, or <code>null</code> if none.
-	 * 
+	 *
 	 * @param type
 	 *            Java debug model type
 	 * @return Java model type or <code>null</code>
@@ -115,7 +115,7 @@
 	/**
 	 * Returns the source name associated with the given object, or
 	 * <code>null</code> if none.
-	 * 
+	 *
 	 * @param object
 	 *            an object with an <code>IJavaStackFrame</code> adapter, an
 	 *            IJavaValue or an IJavaType
@@ -184,7 +184,7 @@
 	 * Generates and returns a source file path based on a qualified type name.
 	 * For example, when <code>java.lang.String</code> is provided, the returned
 	 * source name is <code>java/lang/String.java</code>.
-	 * 
+	 *
 	 * @param qualifiedTypeName
 	 *            fully qualified type name that may contain inner types denoted
 	 *            with <code>$</code> character
@@ -212,7 +212,7 @@
 	/**
 	 * Resolves the type corresponding to the given name contained in the given
 	 * top-level Java element (class file, compilation unit, or type).
-	 * 
+	 *
 	 * @param qualifiedName
 	 *            fully qualified type name
 	 * @param javaElement
@@ -294,7 +294,7 @@
 	/**
 	 * Returns the Java element corresponding to the given object or
 	 * <code>null</code> if none, in the context of the given launch.
-	 * 
+	 *
 	 * @param launch
 	 *            provides source locator
 	 * @param object
@@ -316,7 +316,7 @@
 	/**
 	 * Returns the {@link IJavaElement} associated with the given source element
 	 * or <code>null</code> if none.
-	 * 
+	 *
 	 * @param sourceElement
 	 *            a java element, object that adapts to a java element, or a
 	 *            resource
@@ -344,7 +344,7 @@
 
 	/**
 	 * Returns the source element corresponding to the given object or <code>null</code> if none, in the context of the given launch.
-	 * 
+	 *
 	 * @param launch
 	 *            provides source locator
 	 * @param object
@@ -360,7 +360,7 @@
 	/**
 	 * Returns the source element corresponding to the given object in the given stratum or <code>null</code> if none, in the context of the given
 	 * launch.
-	 * 
+	 *
 	 * @param launch
 	 *            provides source locator
 	 * @param object
@@ -400,7 +400,7 @@
 
 	/**
 	 * Resolves the {@link IJavaProject} within the context of the given {@link IJavaStackFrame}
-	 * 
+	 *
 	 * @param frame
 	 * @return the {@link IJavaProject} or <code>null</code>
 	 * @since 3.8.0
@@ -435,12 +435,12 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Returns an array of simple type names that are part of the given type's
 	 * qualified name. For example, if the given name is <code>x.y.A$B</code>,
 	 * an array with <code>["A", "B"]</code> is returned.
-	 * 
+	 *
 	 * @param typeName
 	 *            fully qualified type name
 	 * @return array of nested type names
@@ -451,7 +451,7 @@
 			typeName = typeName.substring(index + 1);
 		}
 		index = typeName.indexOf('$');
-		List<String> list = new ArrayList<String>(1);
+		List<String> list = new ArrayList<>(1);
 		while (index >= 0) {
 			list.add(typeName.substring(0, index));
 			typeName = typeName.substring(index + 1);
@@ -465,7 +465,7 @@
 	 * Returns the class file or compilation unit containing the given fully
 	 * qualified name in the specified project. All registered java like file
 	 * extensions are considered.
-	 * 
+	 *
 	 * @param qualifiedTypeName
 	 *            fully qualified type name
 	 * @param project
@@ -481,7 +481,7 @@
 			path = path.substring(0, pos);
 		}
 		path = path.replace('.', IPath.SEPARATOR);
-		path += "."; //$NON-NLS-1$    	
+		path += "."; //$NON-NLS-1$
 		for (String ext : javaLikeExtensions) {
 			IJavaElement element = project.findElement(new Path(path + ext));
 			if (element != null) {
@@ -497,7 +497,7 @@
 	 * <li>The names are non-null and equal</li>
 	 * <li>The names are both null</li>
 	 * </ul>
-	 * 
+	 *
 	 * @param name1
 	 *            The first name
 	 * @param name2
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/BreakpointListenerManager.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/BreakpointListenerManager.java
index c15e4bf..f79ec37 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/BreakpointListenerManager.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/BreakpointListenerManager.java
@@ -34,7 +34,7 @@
 
 /**
  * Manages breakpoint listener extensions.
- * 
+ *
  * @since 3.5
  */
 public class BreakpointListenerManager {
@@ -69,7 +69,7 @@
 
 		/**
 		 * Returns the underlying delegate or <code>null</code> if none/error
-		 * 
+		 *
 		 * @return breakpoint listener extension
 		 */
 		private synchronized IJavaBreakpointListener getDelegate() {
@@ -87,7 +87,7 @@
 
 		/*
 		 * (non-Javadoc)
-		 * 
+		 *
 		 * @see
 		 * org.eclipse.jdt.debug.core.IJavaBreakpointListener#addingBreakpoint
 		 * (org.eclipse.jdt.debug.core.IJavaDebugTarget,
@@ -104,7 +104,7 @@
 
 		/**
 		 * Whether this listener is for all breakpoints.
-		 * 
+		 *
 		 * @return whether for all breakpoints
 		 */
 		boolean isGlobal() {
@@ -117,7 +117,7 @@
 
 		/*
 		 * (non-Javadoc)
-		 * 
+		 *
 		 * @see org.eclipse.jdt.debug.core.IJavaBreakpointListener#
 		 * breakpointHasCompilationErrors
 		 * (org.eclipse.jdt.debug.core.IJavaLineBreakpoint,
@@ -134,7 +134,7 @@
 
 		/*
 		 * (non-Javadoc)
-		 * 
+		 *
 		 * @see org.eclipse.jdt.debug.core.IJavaBreakpointListener#
 		 * breakpointHasRuntimeException
 		 * (org.eclipse.jdt.debug.core.IJavaLineBreakpoint,
@@ -151,7 +151,7 @@
 
 		/*
 		 * (non-Javadoc)
-		 * 
+		 *
 		 * @see
 		 * org.eclipse.jdt.debug.core.IJavaBreakpointListener#breakpointHit(
 		 * org.eclipse.jdt.debug.core.IJavaThread,
@@ -168,7 +168,7 @@
 
 		/*
 		 * (non-Javadoc)
-		 * 
+		 *
 		 * @see
 		 * org.eclipse.jdt.debug.core.IJavaBreakpointListener#breakpointInstalled
 		 * (org.eclipse.jdt.debug.core.IJavaDebugTarget,
@@ -185,7 +185,7 @@
 
 		/*
 		 * (non-Javadoc)
-		 * 
+		 *
 		 * @see
 		 * org.eclipse.jdt.debug.core.IJavaBreakpointListener#breakpointRemoved
 		 * (org.eclipse.jdt.debug.core.IJavaDebugTarget,
@@ -202,7 +202,7 @@
 
 		/*
 		 * (non-Javadoc)
-		 * 
+		 *
 		 * @see
 		 * org.eclipse.jdt.debug.core.IJavaBreakpointListener#installingBreakpoint
 		 * (org.eclipse.jdt.debug.core.IJavaDebugTarget,
@@ -226,8 +226,8 @@
 	 */
 	private synchronized void init() {
 		if (fgJavaBreakpointListenersMap == null) {
-			fgJavaBreakpointListenersMap = new HashMap<String, JavaBreakpointListenerProxy>();
-			List<JavaBreakpointListenerProxy> global = new ArrayList<JavaBreakpointListenerProxy>();
+			fgJavaBreakpointListenersMap = new HashMap<>();
+			List<JavaBreakpointListenerProxy> global = new ArrayList<>();
 			IExtensionPoint extensionPoint = Platform
 					.getExtensionRegistry()
 					.getExtensionPoint(
@@ -261,7 +261,7 @@
 	/**
 	 * Returns the listener registered with the given identifier or
 	 * <code>null</code> if none.
-	 * 
+	 *
 	 * @param id
 	 *            extension identifier
 	 * @return breakpoint listener or <code>null</code>
@@ -274,7 +274,7 @@
 	/**
 	 * Returns breakpoint listener extensions registered to listen for changes
 	 * to all breakpoints.
-	 * 
+	 *
 	 * @return global listeners
 	 */
 	public IJavaBreakpointListener[] getGlobalListeners() {
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/ConditionalBreakpointHandler.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/ConditionalBreakpointHandler.java
index 94c2465..3b74bcf 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/ConditionalBreakpointHandler.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/ConditionalBreakpointHandler.java
@@ -43,7 +43,7 @@
 
 /**
  * Breakpoint listener to handle breakpoint conditions.
- * 
+ *
  * @since 3.5
  */
 public class ConditionalBreakpointHandler implements IJavaBreakpointListener {
@@ -90,7 +90,7 @@
 
 		/**
 		 * Processes the result to determine whether to suspend or resume.
-		 * 
+		 *
 		 * @param result
 		 *            evaluation result
 		 * @return vote
@@ -108,10 +108,10 @@
 				if (wrappedException instanceof VMDisconnectedException) {
 					// VM terminated/disconnected during evaluation
 					return DONT_SUSPEND;
-				} 
+				}
 				fireConditionHasRuntimeErrors(fBreakpoint, exception);
 				return SUSPEND;
-			} 
+			}
 			try {
 				IValue value = result.getValue();
 				if (fBreakpoint.isConditionSuspendOnTrue()) {
@@ -122,7 +122,7 @@
 								.equals("boolean")) { //$NON-NLS-1$
 							if (javaValue.getBooleanValue()) {
 								return SUSPEND;
-							} 
+							}
 							return DONT_SUSPEND;
 						}
 					}
@@ -145,13 +145,13 @@
 					// result was not JDIValue
 					fireConditionHasRuntimeErrors(fBreakpoint, new DebugException(status));
 					return SUSPEND;
-				} 
+				}
 				IDebugTarget debugTarget = thread.getDebugTarget();
 				IValue lastValue = fBreakpoint
 						.setCurrentConditionValue(debugTarget, value);
 				if (!value.equals(lastValue)) {
 					return SUSPEND;
-				} 
+				}
 				return DONT_SUSPEND;
 			} catch (DebugException e) {
 				// Suspend when an error occurs
@@ -163,7 +163,7 @@
 		/**
 		 * Result of the conditional expression evaluation - to resume or not
 		 * resume, that is the question.
-		 * 
+		 *
 		 * @return vote result
 		 */
 		int getVote() {
@@ -172,7 +172,7 @@
 
 		/**
 		 * Returns the lock object to synchronize this evaluation.
-		 * 
+		 *
 		 * @return lock object
 		 */
 		Object getLock() {
@@ -331,7 +331,7 @@
 	/**
 	 * Returns whether errors were encountered when evaluating the condition
 	 * (compilation or runtime).
-	 * 
+	 *
 	 * @return whether errors were encountered when evaluating the condition
 	 */
 	public boolean hasErrors() {
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaBreakpoint.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaBreakpoint.java
index c8cff8f..cad7552 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaBreakpoint.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaBreakpoint.java
@@ -79,7 +79,7 @@
 	 * <code>"org.eclipse.jdt.debug.core.installCount"</code>). This attribute
 	 * is a <code>int</code>.
 	 */
-	protected static final String INSTALL_COUNT = "org.eclipse.jdt.debug.core.installCount"; //$NON-NLS-1$	
+	protected static final String INSTALL_COUNT = "org.eclipse.jdt.debug.core.installCount"; //$NON-NLS-1$
 
 	/**
 	 * Breakpoint attribute storing the fully qualified name of the type this
@@ -87,7 +87,7 @@
 	 * <code>"org.eclipse.jdt.debug.core.typeName"</code>). This attribute is a
 	 * <code>String</code>.
 	 */
-	protected static final String TYPE_NAME = "org.eclipse.jdt.debug.core.typeName"; //$NON-NLS-1$		
+	protected static final String TYPE_NAME = "org.eclipse.jdt.debug.core.typeName"; //$NON-NLS-1$
 
 	/**
 	 * Breakpoint attribute storing suspend policy code for this breakpoint.
@@ -96,13 +96,13 @@
 	 * <code>IJavaBreakpoint.SUSPEND_VM</code> or
 	 * <code>IJavaBreakpoint.SUSPEND_THREAD</code>.
 	 */
-	protected static final String SUSPEND_POLICY = "org.eclipse.jdt.debug.core.suspendPolicy"; //$NON-NLS-1$	
+	protected static final String SUSPEND_POLICY = "org.eclipse.jdt.debug.core.suspendPolicy"; //$NON-NLS-1$
 
 	/**
 	 * Breakpoint attribute storing a comma delimited list of extension
 	 * identifiers of breakpoint listeners. The listeners will be notified in
 	 * the order specified in the list.
-	 * 
+	 *
 	 * @since 3.5
 	 */
 	public static final String BREAKPOINT_LISTENERS = JDIDebugPlugin.EXTENSION_POINT_JAVA_BREAKPOINT_LISTENERS;
@@ -111,7 +111,7 @@
 	 * <code>"org.eclipse.jdt.debug.core.expiredTriggerPoint"</code>). This attribute is
 	 * stored as a <code>boolean</code>. Once a trigger point is hit, a
 	 * breakpoint is considered to be "expired" as trigger point for the session.
-	 * 
+	 *
 	 * @since 3.11
 	 */
 	public static final String EXPIRED_TRIGGER_POINT = "org.eclipse.jdt.debug.core.expiredTriggerPoint"; //$NON-NLS-1$
@@ -176,15 +176,15 @@
 	 */
 	protected static final String[] fgExpiredEnabledAttributes = new String[] {
 			EXPIRED, ENABLED };
-	
+
 	public JavaBreakpoint() {
-		fRequestsByTarget = new HashMap<JDIDebugTarget, List<EventRequest>>(1);
-		fFilteredThreadsByTarget = new HashMap<JDIDebugTarget, IJavaThread>(1);
+		fRequestsByTarget = new HashMap<>(1);
+		fFilteredThreadsByTarget = new HashMap<>(1);
 	}
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IBreakpoint#getModelIdentifier()
 	 */
 	@Override
@@ -194,7 +194,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.debug.core.model.Breakpoint#setMarker(org.eclipse.core.resources
 	 * .IMarker)
@@ -266,7 +266,7 @@
 	protected ArrayList<EventRequest> getRequests(JDIDebugTarget target) {
 		ArrayList<EventRequest> list = (ArrayList<EventRequest>) fRequestsByTarget.get(target);
 		if (list == null) {
-			list = new ArrayList<EventRequest>(2);
+			list = new ArrayList<>(2);
 		}
 		return list;
 	}
@@ -291,7 +291,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.core.IJDIEventListener#handleEvent(com
 	 * .sun.jdi.event.Event,
@@ -324,7 +324,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.core.IJDIEventListener#eventSetComplete
 	 * (com.sun.jdi.event.Event,
@@ -371,7 +371,7 @@
 	/**
 	 * Handle the given class prepare event, which was generated by the class
 	 * prepare event installed in the given target by this breakpoint.
-	 * 
+	 *
 	 * If the class which has been loaded is a class in which this breakpoint
 	 * should install, create a breakpoint request for that class.
 	 * @param event the event
@@ -395,7 +395,7 @@
 
 	/**
 	 * @see IJDIEventListener#handleEvent(Event, JDIDebugTarget)
-	 * 
+	 *
 	 *      Handle the given event, which was generated by the breakpoint
 	 *      request installed in the given target by this breakpoint.
 	 */
@@ -410,7 +410,7 @@
 	 * Delegates to the given thread to suspend, and returns whether the thread
 	 * suspended It is possible that the thread will not suspend as directed by
 	 * a Java breakpoint listener.
-	 * 
+	 *
 	 * @see IJavaBreakpointListener#breakpointHit(IJavaThread, IJavaBreakpoint)
 	 */
 	protected boolean suspend(JDIThread thread, boolean suspendVote) {
@@ -451,7 +451,7 @@
 	/**
 	 * Called when a breakpoint event is encountered. Expires the hit count in
 	 * the event's request and updates the marker.
-	 * 
+	 *
 	 * @param event
 	 *            the event whose request should have its hit count expired or
 	 *            <code>null</code> to only update the breakpoint marker.
@@ -476,7 +476,7 @@
 			}
 		}
 	}
-	
+
 	protected void disableTriggerPoint(Event event) {
 		try{
 			if (isTriggerPoint() && isEnabled()) {
@@ -487,14 +487,14 @@
 			}catch (CoreException ce) {
 				JDIDebugPlugin.log(ce);
 			}
-	
+
 	}
 
 	/**
 	 * Returns whether this breakpoint should be "skipped". Breakpoints are
 	 * skipped if the breakpoint manager is disabled and the breakpoint is
 	 * registered with the manager
-	 * 
+	 *
 	 * @return whether this breakpoint should be skipped
 	 */
 	public boolean shouldSkipBreakpoint() throws CoreException {
@@ -506,7 +506,7 @@
 	/**
 	 * Attempts to create a breakpoint request for this breakpoint in the given
 	 * reference type in the given target.
-	 * 
+	 *
 	 * @return Whether a request was created
 	 */
 	protected boolean createRequest(JDIDebugTarget target, ReferenceType type)
@@ -548,7 +548,7 @@
 	/**
 	 * Adds an instance filter to the given request. Since the implementation is
 	 * request specific, subclasses must override.
-	 * 
+	 *
 	 * @param request
 	 * @param object
 	 *            instance filter
@@ -598,7 +598,7 @@
 	/**
 	 * Creates, installs, and returns all event requests for this breakpoint in
 	 * the given reference type and and target.
-	 * 
+	 *
 	 * @return the event requests created or <code>null</code> if creation
 	 *         failed
 	 */
@@ -675,9 +675,9 @@
 	 * attempts to create a request when a breakpoint is being added to a target
 	 * fail, we must be dealing with a local type and therefore resort to
 	 * looking up all of the nested types of the top level enclosing type.
-	 * 
+	 *
 	 * @param target the target
-	 * @param enclosingTypeName the type name of the enclosing type 
+	 * @param enclosingTypeName the type name of the enclosing type
 	 * @throws CoreException if something bad happens
 	 */
 	protected void addToTargetForLocalType(JDIDebugTarget target, String enclosingTypeName) throws CoreException {
@@ -694,7 +694,7 @@
 	/**
 	 * Returns the JDI suspend policy that corresponds to this breakpoint's
 	 * suspend policy
-	 * 
+	 *
 	 * @return the JDI suspend policy that corresponds to this breakpoint's
 	 *         suspend policy
 	 * @exception CoreException
@@ -712,18 +712,18 @@
 	/**
 	 * returns the default suspend policy based on the pref setting on the
 	 * Java-Debug pref page
-	 * 
+	 *
 	 * @return the default suspend policy
 	 * @since 3.2
 	 */
 	protected int getDefaultSuspendPolicy() {
 		return Platform.getPreferencesService().getInt(
-				JDIDebugPlugin.getUniqueIdentifier(), 
-				JDIDebugPlugin.PREF_DEFAULT_BREAKPOINT_SUSPEND_POLICY, 
-				IJavaBreakpoint.SUSPEND_THREAD, 
+				JDIDebugPlugin.getUniqueIdentifier(),
+				JDIDebugPlugin.PREF_DEFAULT_BREAKPOINT_SUSPEND_POLICY,
+				IJavaBreakpoint.SUSPEND_THREAD,
 				null);
 	}
-	
+
 	/**
 	 * Returns whether the hitCount of this breakpoint is equal to the hitCount
 	 * of the associated request.
@@ -780,7 +780,7 @@
 		// removing was previously done is a workspace runnable, but that is
 		// not possible since it can be a resource callback (marker deletion)
 		// that causes a breakpoint to be removed
-		ArrayList<EventRequest> requests = new ArrayList<EventRequest>(getRequests(target));
+		ArrayList<EventRequest> requests = new ArrayList<>(getRequests(target));
 		// Iterate over a copy of the requests since this list of requests
 		// can be changed in other threads which would cause an
 		// ConcurrentModificationException
@@ -860,7 +860,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaBreakpoint#isInstalled()
 	 */
 	@Override
@@ -883,7 +883,7 @@
 	public int getInstallCount() throws CoreException {
 		return ensureMarker().getAttribute(INSTALL_COUNT, 0);
 	}
-	
+
 	/**
 	 * Returns whether this trigger breakpoint has expired.
 	 */
@@ -917,7 +917,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaBreakpoint#getTypeName()
 	 */
 	@Override
@@ -937,15 +937,15 @@
 	 */
 	private void configureAtStartup() throws CoreException {
 		List<String> attributes = null;
-		List<Object> values = new ArrayList<Object>(3);
+		List<Object> values = new ArrayList<>(3);
 		if (isInstalled()) {
-			attributes = new ArrayList<String>(3);
+			attributes = new ArrayList<>(3);
 			attributes.add(INSTALL_COUNT);
 			values.add(new Integer(0));
 		}
 		if (isExpired()) {
 			if (attributes == null) {
-				attributes = new ArrayList<String>(3);
+				attributes = new ArrayList<>(3);
 			}
 			// if breakpoint was auto-disabled, re-enable it
 			attributes.add(EXPIRED);
@@ -959,7 +959,7 @@
 		}
 		String[] listeners = readBreakpointListeners();
 		if (listeners.length > 0) {
-			fBreakpointListenerIds = new ArrayList<String>();
+			fBreakpointListenerIds = new ArrayList<>();
 			for (String listener : listeners) {
 				fBreakpointListenerIds.add(listener);
 			}
@@ -968,7 +968,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaBreakpoint#getHitCount()
 	 */
 	@Override
@@ -978,7 +978,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaBreakpoint#setHitCount(int)
 	 */
 	@Override
@@ -1024,7 +1024,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaBreakpoint#getSuspendPolicy()
 	 */
 	@Override
@@ -1035,7 +1035,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaBreakpoint#setSuspendPolicy(int)
 	 */
 	@Override
@@ -1048,7 +1048,7 @@
 
 	/**
 	 * Notifies listeners this breakpoint is to be added to the given target.
-	 * 
+	 *
 	 * @param target
 	 *            debug target
 	 */
@@ -1062,7 +1062,7 @@
 	/**
 	 * Notifies listeners this breakpoint has been removed from the given
 	 * target.
-	 * 
+	 *
 	 * @param target
 	 *            debug target
 	 */
@@ -1077,7 +1077,7 @@
 	/**
 	 * Notifies listeners this breakpoint has been installed in the given
 	 * target.
-	 * 
+	 *
 	 * @param target
 	 *            debug target
 	 */
@@ -1091,7 +1091,7 @@
 
 	/**
 	 * Returns whether this breakpoint is installed in the given target.
-	 * 
+	 *
 	 * @param target
 	 * @return whether this breakpoint is installed in the given target
 	 */
@@ -1101,7 +1101,7 @@
 
 	/**
 	 * Sets this breakpoint as installed in the given target
-	 * 
+	 *
 	 * @param target
 	 * @param installed
 	 *            whether installed
@@ -1109,7 +1109,7 @@
 	protected void setInstalledIn(IJavaDebugTarget target, boolean installed) {
 		if (installed) {
 			if (fInstalledTargets == null) {
-				fInstalledTargets = new HashSet<IJavaDebugTarget>();
+				fInstalledTargets = new HashSet<>();
 			}
 			fInstalledTargets.add(target);
 		} else {
@@ -1121,7 +1121,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaBreakpoint#setThreadFilter(org.eclipse
 	 * .jdt.debug.core.IJavaThread)
@@ -1150,7 +1150,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.debug.core.IDebugEventSetListener#handleDebugEvents(org.eclipse
 	 * .debug.core.DebugEvent[])
@@ -1177,9 +1177,9 @@
 
 	/**
 	 * Removes cached information relevant to this thread which has terminated.
-	 * 
+	 *
 	 * Remove thread filters for terminated threads
-	 * 
+	 *
 	 * Subclasses may override but need to call super.
 	 */
 	protected void cleanupForThreadTermination(JDIThread thread) {
@@ -1204,7 +1204,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaBreakpoint#getThreadFilter(org.eclipse
 	 * .jdt.debug.core.IJavaDebugTarget)
@@ -1216,7 +1216,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaBreakpoint#getThreadFilters()
 	 */
 	@Override
@@ -1230,7 +1230,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaBreakpoint#removeThreadFilter(org.eclipse
 	 * .jdt.debug.core.IJavaDebugTarget)
@@ -1252,7 +1252,7 @@
 	 * Returns whether this breakpoint should be installed in the given
 	 * reference type in the given target according to registered breakpoint
 	 * listeners.
-	 * 
+	 *
 	 * @param target
 	 *            debug target
 	 * @param type
@@ -1274,7 +1274,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaBreakpoint#addInstanceFilter(org.eclipse
 	 * .jdt.debug.core.IJavaObject)
@@ -1282,7 +1282,7 @@
 	@Override
 	public void addInstanceFilter(IJavaObject object) throws CoreException {
 		if (fInstanceFilters == null) {
-			fInstanceFilters = new ArrayList<IJavaObject>();
+			fInstanceFilters = new ArrayList<>();
 		}
 		if (!fInstanceFilters.contains(object)) {
 			fInstanceFilters.add(object);
@@ -1305,7 +1305,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaBreakpoint#getInstanceFilters()
 	 */
 	@Override
@@ -1319,7 +1319,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaBreakpoint#removeInstanceFilter(org.eclipse
 	 * .jdt.debug.core.IJavaObject)
@@ -1369,7 +1369,7 @@
 	/**
 	 * Recreate this breakpoint in the given target, as long as the target
 	 * already contains this breakpoint.
-	 * 
+	 *
 	 * @param target
 	 *            the target in which to re-create the breakpoint
 	 */
@@ -1382,7 +1382,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.Breakpoint#setEnabled(boolean)
 	 */
 	@Override
@@ -1393,7 +1393,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaBreakpoint#supportsInstanceFilters()
 	 */
 	@Override
@@ -1403,7 +1403,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaBreakpoint#supportsThreadFilters()
 	 */
 	@Override
@@ -1413,7 +1413,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaBreakpoint#addBreakpointListener(java
 	 * .lang.String)
@@ -1422,7 +1422,7 @@
 	public synchronized void addBreakpointListener(String identifier)
 			throws CoreException {
 		if (fBreakpointListenerIds == null) {
-			fBreakpointListenerIds = new ArrayList<String>();
+			fBreakpointListenerIds = new ArrayList<>();
 		}
 		if (!fBreakpointListenerIds.contains(identifier)) {
 			fBreakpointListenerIds.add(identifier);
@@ -1433,7 +1433,7 @@
 	/**
 	 * Writes the current breakpoint listener collection to the underlying
 	 * marker.
-	 * 
+	 *
 	 * @throws CoreException
 	 */
 	private void writeBreakpointListeners() throws CoreException {
@@ -1450,7 +1450,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaBreakpoint#removeBreakpointListener(java
 	 * .lang.String)
@@ -1469,7 +1469,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaBreakpoint#getBreakpointListeners()
 	 */
 	@Override
@@ -1484,7 +1484,7 @@
 
 	/**
 	 * Reads breakpoint listeners from the underlying marker.
-	 * 
+	 *
 	 * @return breakpoint listener identifiers stored in this breakpoint's
 	 *         marker
 	 * @throws CoreException
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaBreakpointImportParticipant.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaBreakpointImportParticipant.java
index f8f0064..7acaeaa 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaBreakpointImportParticipant.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaBreakpointImportParticipant.java
@@ -49,7 +49,7 @@
 
 /**
  * Default implementation covering the import of all platform Java breakpoints
- * 
+ *
  * @since 3.5
  */
 public class JavaBreakpointImportParticipant implements
@@ -69,7 +69,7 @@
 
 		/**
 		 * Constructor
-		 * 
+		 *
 		 * @param breakpoint
 		 * @param unit
 		 */
@@ -79,13 +79,13 @@
 			fSignature = getMemberSignature(breakpoint);
 			fBreakpoint = breakpoint;
 			fUnit = unit;
-			fTypeNameStack = new Stack<String>();
+			fTypeNameStack = new Stack<>();
 		}
 
 		/**
 		 * Returns the value of the {@link JavaBreakpoint#TYPE_NAME} attribute
 		 * from the breakpoint or <code>null</code>
-		 * 
+		 *
 		 * @param breakpoint
 		 * @return the value of the type name attribute
 		 */
@@ -101,7 +101,7 @@
 		 * {@link JavaMethodBreakpoint#METHOD_NAME} if the breakpoint is a
 		 * method or method entry breakpoint (3) <code>null</code> if there is
 		 * no member name
-		 * 
+		 *
 		 * @param breakpoint
 		 * @return the member name or <code>null</code>
 		 */
@@ -118,7 +118,7 @@
 		 * Returns the signature of the member, defined with the
 		 * {@link JavaMethodBreakpoint#METHOD_SIGNATURE} attribute, or
 		 * <code>null</code>
-		 * 
+		 *
 		 * @param breakpoint
 		 * @return the signature of the member or <code>null</code>
 		 */
@@ -130,7 +130,7 @@
 		/**
 		 * Returns the fully qualified name of the enclosing type for the given
 		 * node
-		 * 
+		 *
 		 * @param node
 		 * @return the fully qualified name of the enclosing type
 		 */
@@ -140,7 +140,7 @@
 
 		/**
 		 * Constructs the qualified name of the enclosing parent type
-		 * 
+		 *
 		 * @param node
 		 *            the node to get the parent name for
 		 * @param buffer
@@ -223,7 +223,7 @@
 
 		/**
 		 * Visits the type node and return if children should be visited
-		 * 
+		 *
 		 * @param node
 		 * @return true if child nodes should be visited false otherwise
 		 */
@@ -319,7 +319,7 @@
 
 		/**
 		 * Creates a method signature from a specified {@link MethodDeclaration}
-		 * 
+		 *
 		 * @param node
 		 * @return the signature for the given method node or <code>null</code>
 		 */
@@ -355,12 +355,12 @@
 
 		/**
 		 * Returns the listing of the signatures of the parameters passed in
-		 * 
+		 *
 		 * @param rawparams
 		 * @return a listing of signatures for the specified parameters
 		 */
 		private List<String> getParametersTypeNames(List<SingleVariableDeclaration> rawparams) {
-			List<String> rparams = new ArrayList<String>(rawparams.size());
+			List<String> rparams = new ArrayList<>(rawparams.size());
 			String pname = null;
 			for (SingleVariableDeclaration param : rawparams) {
 				pname = getTypeSignature(param.getType());
@@ -373,7 +373,7 @@
 
 		/**
 		 * Processes the signature for the given {@link Type}
-		 * 
+		 *
 		 * @param type
 		 *            the type to process
 		 * @return the signature for the type or <code>null</code> if one could
@@ -410,7 +410,7 @@
 		/**
 		 * Collects the synthetic parameter of the fully qualified name of the
 		 * enclosing context for a constructor of an inner type
-		 * 
+		 *
 		 * @param method
 		 *            the constructor declaration
 		 * @param rparams
@@ -454,7 +454,7 @@
 		/**
 		 * Determines if the given {@link MethodDeclaration} is present in a top
 		 * level type
-		 * 
+		 *
 		 * @param method
 		 * @return
 		 */
@@ -466,7 +466,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.debug.core.model.IBreakpointImportParticipant#matches(java
 	 * .util.Map, org.eclipse.debug.core.model.IBreakpoint)
@@ -524,7 +524,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.debug.core.model.IBreakpointImportParticipant#verify(org.
 	 * eclipse.debug.core.model.IBreakpoint)
@@ -584,7 +584,7 @@
 
 	/**
 	 * Compares two attributes in a <code>null</code> safe way
-	 * 
+	 *
 	 * @param attr1
 	 *            the first attribute
 	 * @param attr2
@@ -604,7 +604,7 @@
 
 	/**
 	 * Returns if the given map of attributes matches the given line breakpoint
-	 * 
+	 *
 	 * @param attributes
 	 * @param breakpoint
 	 * @return true if the attributes match the breakpoints' attributes, false
@@ -621,7 +621,7 @@
 	/**
 	 * Returns if the given map of attributes matches the given class prepare
 	 * breakpoint
-	 * 
+	 *
 	 * @param attributes
 	 * @param breakpoint
 	 * @return true if the attributes match the breakpoints' attributes, false
@@ -641,7 +641,7 @@
 	/**
 	 * Returns if the given map of attributes matches the given exception
 	 * breakpoint
-	 * 
+	 *
 	 * @param attributes
 	 * @param breakpoint
 	 * @return true if the attributes match the breakpoints' attributes, false
@@ -658,7 +658,7 @@
 	/**
 	 * Returns if the given map of attributes matches the given method
 	 * breakpoint
-	 * 
+	 *
 	 * @param attributes
 	 * @param breakpoint
 	 * @return true if the attributes match the breakpoints' attributes, false
@@ -678,7 +678,7 @@
 	/**
 	 * Returns if the given map of attributes matches the given method entry
 	 * breakpoint
-	 * 
+	 *
 	 * @param attributes
 	 * @param breakpoint
 	 * @return true if the attributes match the breakpoints' attributes, false
@@ -697,7 +697,7 @@
 
 	/**
 	 * Returns if the given map of attributes matches the given watchpoint
-	 * 
+	 *
 	 * @param attributes
 	 * @param breakpoint
 	 * @return true if the attributes match the watchpoints' attributes, false
@@ -715,7 +715,7 @@
 	/**
 	 * Returns if the given map of attributes matches the given stratum line
 	 * breakpoint
-	 * 
+	 *
 	 * @param attributes
 	 * @param breakpoint
 	 * @return true if the attributes match the breakpoints' attributes, false
@@ -738,7 +738,7 @@
 	/**
 	 * Returns if the given map of attributes matches the given pattern
 	 * breakpoint
-	 * 
+	 *
 	 * @param attributes
 	 * @param breakpoint
 	 * @return true if the attributes match the breakpoints' attributes, false
@@ -760,7 +760,7 @@
 	/**
 	 * Returns if the given map of attributes matches the given target pattern
 	 * breakpoint
-	 * 
+	 *
 	 * @param attributes
 	 * @param breakpoint
 	 * @return true if the attributes match the breakpoints' attributes, false
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaClassPrepareBreakpoint.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaClassPrepareBreakpoint.java
index 67d2cfb..0fc8c5e 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaClassPrepareBreakpoint.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaClassPrepareBreakpoint.java
@@ -39,7 +39,7 @@
 
 /**
  * Class prepare breakpoint.
- * 
+ *
  * @since 3.0
  */
 public class JavaClassPrepareBreakpoint extends JavaBreakpoint implements
@@ -57,7 +57,7 @@
 
 	/**
 	 * Creates and returns a Java class prepare breakpoint for the given type.
-	 * 
+	 *
 	 * @param resource
 	 *            the resource on which to create the associated breakpoint
 	 *            marker
@@ -157,9 +157,9 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * Not supported for class prepare breakpoints.
-	 * 
+	 *
 	 * @see org.eclipse.jdt.internal.debug.core.breakpoints.JavaBreakpoint#
 	 * addInstanceFilter(com.sun.jdi.request.EventRequest,
 	 * com.sun.jdi.ObjectReference)
@@ -171,9 +171,9 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * This method not used for class prepare breakpoints.
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.core.breakpoints.JavaBreakpoint#newRequest
 	 * (org.eclipse.jdt.internal.debug.core.model.JDIDebugTarget,
@@ -187,9 +187,9 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * Not supported for class prepare breakpoints.
-	 * 
+	 *
 	 * @see org.eclipse.jdt.internal.debug.core.breakpoints.JavaBreakpoint#
 	 * setRequestThreadFilter(com.sun.jdi.request.EventRequest,
 	 * com.sun.jdi.ThreadReference)
@@ -201,7 +201,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.internal.debug.core.breakpoints.JavaBreakpoint#
 	 * handleClassPrepareEvent(com.sun.jdi.event.ClassPrepareEvent,
 	 * org.eclipse.jdt.internal.debug.core.model.JDIDebugTarget)
@@ -226,7 +226,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.internal.debug.core.breakpoints.JavaBreakpoint#
 	 * classPrepareComplete(com.sun.jdi.event.Event,
 	 * org.eclipse.jdt.internal.debug.core.model.JDIThread, boolean)
@@ -239,7 +239,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaClassPrepareBreakpoint#getMemberType()
 	 */
@@ -251,7 +251,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaBreakpoint#supportsInstanceFilters()
 	 */
 	@Override
@@ -261,7 +261,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaBreakpoint#addInstanceFilter(org.eclipse
 	 * .jdt.debug.core.IJavaObject)
@@ -276,7 +276,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaBreakpoint#setThreadFilter(org.eclipse
 	 * .jdt.debug.core.IJavaThread)
@@ -291,7 +291,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaBreakpoint#supportsThreadFilters()
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaExceptionBreakpoint.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaExceptionBreakpoint.java
index 5a4ff4a..b82a9e4 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaExceptionBreakpoint.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaExceptionBreakpoint.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -65,14 +65,14 @@
 	 * <code>true</code>, an uncaught exception of the associated type will
 	 * cause execution to suspend.
 	 */
-	protected static final String UNCAUGHT = "org.eclipse.jdt.debug.core.uncaught"; //$NON-NLS-1$	
+	protected static final String UNCAUGHT = "org.eclipse.jdt.debug.core.uncaught"; //$NON-NLS-1$
 	/**
 	 * Exception breakpoint attribute storing the checked value (value
 	 * <code>"org.eclipse.jdt.debug.core.checked"</code>). This attribute is
 	 * stored as a <code>boolean</code>, indicating whether an exception is a
 	 * checked exception.
 	 */
-	protected static final String CHECKED = "org.eclipse.jdt.debug.core.checked"; //$NON-NLS-1$	
+	protected static final String CHECKED = "org.eclipse.jdt.debug.core.checked"; //$NON-NLS-1$
 
 	/**
 	 * Exception breakpoint attribute storing the String value (value
@@ -81,7 +81,7 @@
 	 * The filters are applied as inclusion or exclusion depending on
 	 * INCLUSIVE_FILTERS.
 	 */
-	protected static final String INCLUSION_FILTERS = "org.eclipse.jdt.debug.core.inclusion_filters"; //$NON-NLS-1$	
+	protected static final String INCLUSION_FILTERS = "org.eclipse.jdt.debug.core.inclusion_filters"; //$NON-NLS-1$
 
 	/**
 	 * Exception breakpoint attribute storing the String value (value
@@ -90,11 +90,11 @@
 	 * The filters are applied as inclusion or exclusion depending on
 	 * INCLUSIVE_FILTERS.
 	 */
-	protected static final String EXCLUSION_FILTERS = "org.eclipse.jdt.debug.core.exclusion_filters"; //$NON-NLS-1$	
+	protected static final String EXCLUSION_FILTERS = "org.eclipse.jdt.debug.core.exclusion_filters"; //$NON-NLS-1$
 	/**
 	 * Allows the user to specify whether we should suspend if subclasses of the
 	 * specified exception are thrown/caught
-	 * 
+	 *
 	 * @since 3.2
 	 */
 	protected static final String SUSPEND_ON_SUBCLASSES = "org.eclipse.jdt.debug.core.suspend_on_subclasses"; //$NON-NLS-1$
@@ -126,7 +126,7 @@
 	 * type. Caught and uncaught specify where the exception should cause thread
 	 * suspensions - that is, in caught and/or uncaught locations. Checked
 	 * indicates if the given exception is a checked exception.
-	 * 
+	 *
 	 * @param resource
 	 *            the resource on which to create the associated breakpoint
 	 *            marker
@@ -214,7 +214,7 @@
 
 	/**
 	 * Enable this exception breakpoint.
-	 * 
+	 *
 	 * If the exception breakpoint is not catching caught or uncaught, turn both
 	 * modes on. If this isn't done, the resulting state (enabled with caught
 	 * and uncaught both disabled) is ambiguous.
@@ -269,7 +269,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaExceptionBreakpoint#setSuspendOnSubclasses
 	 * (boolean)
@@ -283,7 +283,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaExceptionBreakpoint#isSuspendOnSubclasses
 	 * ()
@@ -337,7 +337,7 @@
 	/**
 	 * @see JavaBreakpoint#handleBreakpointEvent(Event, JDIDebugTarget,
 	 *      JDIThread) Decides how to handle an exception being thrown
-	 * 
+	 *
 	 * @return true if we do not want to suspend false otherwise
 	 */
 	@Override
@@ -407,7 +407,7 @@
 					}
 				}
 			}
-			
+
 			return !suspend(thread, suspendVote);
 		}
 		return true;
@@ -416,7 +416,7 @@
 	/**
 	 * Returns whether the given class type is a subclass of the classes with the
 	 * given name.
-	 * 
+	 *
 	 * @param type
 	 *            the class type reference
 	 * @return true if the specified the class type is a subclass of the class
@@ -436,7 +436,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.core.breakpoints.JavaBreakpoint#setInstalledIn
 	 * (org.eclipse.jdt.debug.core.IJavaDebugTarget, boolean)
@@ -451,7 +451,7 @@
 	/**
 	 * Determines of the filters for this exception include the default package
 	 * or not
-	 * 
+	 *
 	 * @param filters
 	 *            the list of filters to inspect
 	 * @return true if any one of the specified filters include the default
@@ -468,7 +468,7 @@
 
 	/**
 	 * Returns whether the given type is in the given filter set.
-	 * 
+	 *
 	 * @param filters
 	 *            the filter set
 	 * @param typeName
@@ -497,7 +497,7 @@
 
 	/**
 	 * Sets the name of the exception that was last hit
-	 * 
+	 *
 	 * @param name
 	 *            fully qualified exception name
 	 */
@@ -507,7 +507,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaExceptionBreakpoint#getExceptionTypeName
 	 * ()
@@ -550,7 +550,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.internal.debug.core.breakpoints.JavaBreakpoint#
 	 * configureRequest(com.sun.jdi.request.EventRequest,
 	 * org.eclipse.jdt.internal.debug.core.model.JDIDebugTarget)
@@ -584,7 +584,7 @@
 		if (list == null) {
 			return ""; //$NON-NLS-1$
 		}
-		Set<String> set = new HashSet<String>(list.length);
+		Set<String> set = new HashSet<>(list.length);
 		StringBuffer buffer = new StringBuffer();
 		for (int i = 0; i < list.length; i++) {
 			if (i > 0 && i < list.length) {
@@ -607,7 +607,7 @@
 	 * Parses the comma separated String into an array of Strings
 	 */
 	protected String[] parseList(String listString) {
-		List<String> list = new ArrayList<String>(10);
+		List<String> list = new ArrayList<>(10);
 		StringTokenizer tokenizer = new StringTokenizer(listString, ","); //$NON-NLS-1$
 		while (tokenizer.hasMoreTokens()) {
 			String token = tokenizer.nextToken();
@@ -750,9 +750,9 @@
 
 	/**
 	 * Returns the last exception object that was encountered by this exception
-	 * 
+	 *
 	 * TODO: make API in future release.
-	 * 
+	 *
 	 * @return
 	 */
 	public IJavaObject getLastException() {
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaLineBreakpoint.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaLineBreakpoint.java
index b56ae2b..44b4e2c 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaLineBreakpoint.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaLineBreakpoint.java
@@ -95,25 +95,25 @@
 	/**
 	 * Maps suspended threads to the suspend event that suspended them
 	 */
-	private Map<IJavaThread, ICompiledExpression> fSuspendEvents = new HashMap<IJavaThread, ICompiledExpression>();
+	private Map<IJavaThread, ICompiledExpression> fSuspendEvents = new HashMap<>();
 	/**
 	 * The map of cached compiled expressions (ICompiledExpression) for this
 	 * breakpoint, keyed by thread. This value must be cleared every time the
 	 * breakpoint is added to a target.
 	 */
-	private Map<IJavaThread, ICompiledExpression> fCompiledExpressions = new HashMap<IJavaThread, ICompiledExpression>();
+	private Map<IJavaThread, ICompiledExpression> fCompiledExpressions = new HashMap<>();
 
 	/**
 	 * Cache of projects for stack frames to avoid repetitive project resolution
 	 * on conditional breakpoints.
 	 */
-	private Map<IJavaStackFrame, IJavaProject> fProjectsByFrame = new HashMap<IJavaStackFrame, IJavaProject>();
+	private Map<IJavaStackFrame, IJavaProject> fProjectsByFrame = new HashMap<>();
 
 	/**
 	 * The map of the result value of the condition (IValue) for this
 	 * breakpoint, keyed by debug target.
 	 */
-	private Map<IDebugTarget, IValue> fConditionValues = new HashMap<IDebugTarget, IValue>();
+	private Map<IDebugTarget, IValue> fConditionValues = new HashMap<>();
 
 	/**
 	 * Status code indicating that a request to create a breakpoint in a type
@@ -165,7 +165,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.core.breakpoints.JavaBreakpoint#addToTarget
 	 * (org.eclipse.jdt.internal.debug.core.model.JDIDebugTarget)
@@ -178,7 +178,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.internal.debug.core.breakpoints.JavaBreakpoint#
 	 * removeFromTarget
 	 * (org.eclipse.jdt.internal.debug.core.model.JDIDebugTarget)
@@ -201,7 +201,7 @@
 
 	private void removeCachedThreads(Map<IJavaThread, ICompiledExpression> map, JDIDebugTarget target) {
 		Set<IJavaThread> threads = map.keySet();
-		List<IJavaThread> threadsToRemove = new ArrayList<IJavaThread>();
+		List<IJavaThread> threadsToRemove = new ArrayList<>();
 		Iterator<IJavaThread> iter = threads.iterator();
 		JDIThread thread;
 		while (iter.hasNext()) {
@@ -226,7 +226,7 @@
 		// clean up cached projects for stack frames
 		synchronized (fProjectsByFrame) {
 			Set<IJavaStackFrame> frames = fProjectsByFrame.keySet();
-			List<IJavaStackFrame> framesToRemove = new ArrayList<IJavaStackFrame>();
+			List<IJavaStackFrame> framesToRemove = new ArrayList<>();
 			Iterator<IJavaStackFrame> iter = frames.iterator();
 			JDIStackFrame frame;
 			while (iter.hasNext()) {
@@ -245,7 +245,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.ILineBreakpoint#getLineNumber()
 	 */
 	@Override
@@ -255,7 +255,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.ILineBreakpoint#getCharStart()
 	 */
 	@Override
@@ -265,7 +265,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.ILineBreakpoint#getCharEnd()
 	 */
 	@Override
@@ -282,7 +282,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.core.breakpoints.JavaBreakpoint#newRequest
 	 * (org.eclipse.jdt.internal.debug.core.model.JDIDebugTarget,
@@ -358,7 +358,7 @@
 			if (((type.modifiers() & (AccessibleImpl.MODIFIER_ACC_SYNTHETIC | AccessibleImpl.MODIFIER_SYNTHETIC)) != 0)||(type instanceof InterfaceType)) {
 				return null;
 			}
-			
+
 			IStatus status = new Status(
 					IStatus.ERROR,
 					JDIDebugPlugin.getUniqueIdentifier(),
@@ -399,7 +399,7 @@
 	 * <li>IMarker.CHAR_START</li>
 	 * <li>IMarker.CHAR_END</li>
 	 * </ol>
-	 * 
+	 *
 	 */
 	public void addLineBreakpointAttributes(Map<String, Object> attributes,
 			String modelIdentifier, boolean enabled, int lineNumber,
@@ -413,7 +413,7 @@
 
 	/**
 	 * Adds type name and hit count attributes to the given map.
-	 * 
+	 *
 	 * If <code>hitCount > 0</code>, adds the <code>HIT_COUNT</code> attribute
 	 * to the given breakpoint, and resets the <code>EXPIRED</code> attribute to
 	 * false (since, if the hit count is changed, the breakpoint should no
@@ -468,7 +468,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaLineBreakpoint#supportsCondition()
 	 */
 	@Override
@@ -478,7 +478,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaLineBreakpoint#getCondition()
 	 */
 	@Override
@@ -488,7 +488,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaLineBreakpoint#setCondition(java.lang
 	 * .String)
@@ -526,7 +526,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaLineBreakpoint#isConditionEnabled()
 	 */
 	@Override
@@ -536,7 +536,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaLineBreakpoint#setConditionEnabled(boolean
 	 * )
@@ -551,7 +551,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.internal.debug.core.breakpoints.JavaBreakpoint#
 	 * cleanupForThreadTermination
 	 * (org.eclipse.jdt.internal.debug.core.model.JDIThread)
@@ -565,7 +565,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.internal.debug.core.breakpoints.JavaBreakpoint#
 	 * addInstanceFilter(com.sun.jdi.request.EventRequest,
 	 * com.sun.jdi.ObjectReference)
@@ -580,7 +580,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaLineBreakpoint#isConditionSuspendOnTrue()
 	 */
@@ -591,7 +591,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaLineBreakpoint#setConditionSuspendOnTrue
 	 * (boolean)
@@ -610,7 +610,7 @@
 	/**
 	 * Returns existing compiled expression for the given thread or
 	 * <code>null</code>.
-	 * 
+	 *
 	 * @param thread
 	 *            thread the breakpoint was hit in
 	 * @return compiled expression or <code>null</code>
@@ -621,7 +621,7 @@
 
 	/**
 	 * Sets the compiled expression for a thread.
-	 * 
+	 *
 	 * @param thread
 	 *            thread the breakpoint was hit in
 	 * @param expression
@@ -636,7 +636,7 @@
 	 * Sets the current result value of the conditional expression evaluation
 	 * for this breakpoint in the given target, and returns the previous value
 	 * or <code>null</code> if none
-	 * 
+	 *
 	 * @param target
 	 *            debug target
 	 * @param value
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaMethodBreakpoint.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaMethodBreakpoint.java
index df30d52..7c25d2e 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaMethodBreakpoint.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaMethodBreakpoint.java
@@ -57,7 +57,7 @@
 	 * is contained. (value <code>"org.eclipse.jdt.debug.core.methodName"</code>
 	 * ). This attribute is a <code>String</code>.
 	 */
-	protected static final String METHOD_NAME = "org.eclipse.jdt.debug.core.methodName"; //$NON-NLS-1$	
+	protected static final String METHOD_NAME = "org.eclipse.jdt.debug.core.methodName"; //$NON-NLS-1$
 
 	/**
 	 * Breakpoint attribute storing the signature of the method in which a
@@ -65,21 +65,21 @@
 	 * <code>"org.eclipse.jdt.debug.core.methodSignature"</code>). This
 	 * attribute is a <code>String</code>.
 	 */
-	protected static final String METHOD_SIGNATURE = "org.eclipse.jdt.debug.core.methodSignature"; //$NON-NLS-1$	
+	protected static final String METHOD_SIGNATURE = "org.eclipse.jdt.debug.core.methodSignature"; //$NON-NLS-1$
 
 	/**
 	 * Breakpoint attribute storing whether this breakpoint is an entry
 	 * breakpoint. (value <code>"org.eclipse.jdt.debug.core.entry"</code>). This
 	 * attribute is a <code>boolean</code>.
 	 */
-	protected static final String ENTRY = "org.eclipse.jdt.debug.core.entry"; //$NON-NLS-1$	
+	protected static final String ENTRY = "org.eclipse.jdt.debug.core.entry"; //$NON-NLS-1$
 
 	/**
 	 * Breakpoint attribute storing whether this breakpoint is an exit
 	 * breakpoint. (value <code>"org.eclipse.jdt.debug.core.exit"</code>). This
 	 * attribute is a <code>boolean</code>.
 	 */
-	protected static final String EXIT = "org.eclipse.jdt.debug.core.exit"; //$NON-NLS-1$	
+	protected static final String EXIT = "org.eclipse.jdt.debug.core.exit"; //$NON-NLS-1$
 
 	/**
 	 * Breakpoint attribute storing whether this breakpoint only applies to
@@ -118,7 +118,7 @@
 	 * <li>Method exit (value <code>EXIT_EVENT</code>)</li>
 	 * </ol>
 	 */
-	private Map<IDebugTarget, Integer> fLastEventTypes = new HashMap<IDebugTarget, Integer>(10);
+	private Map<IDebugTarget, Integer> fLastEventTypes = new HashMap<>(10);
 
 	/**
 	 * Used to match type names
@@ -192,7 +192,7 @@
 
 	/**
 	 * Returns a new method entry request for this breakpoint's criteria
-	 * 
+	 *
 	 * @param the
 	 *            target in which to create the request
 	 * @param type
@@ -210,7 +210,7 @@
 
 	/**
 	 * Returns a new method exit request for this breakpoint's criteria
-	 * 
+	 *
 	 * @param target
 	 *            the target in which to create the request
 	 * @param type
@@ -228,7 +228,7 @@
 
 	/**
 	 * Returns a new method entry request for this breakpoint's criteria
-	 * 
+	 *
 	 * @param the
 	 *            target in which to create the request
 	 * @param type
@@ -245,7 +245,7 @@
 
 	/**
 	 * Returns a new method exit request for the given reference type
-	 * 
+	 *
 	 * @param target
 	 *            the target in which to create the request
 	 * @param type
@@ -265,11 +265,11 @@
 	 *      ReferenceType) or
 	 *      JavaMethodBreakpoint#createMethodExitRequest(JDIDebugTarget,
 	 *      ReferenceType)
-	 * 
+	 *
 	 *      Returns a <code>MethodEntryRequest</code> or
 	 *      <code>BreakpointRequest</code> if entry is <code>true</code>, a
 	 *      <code>MethodExitRequest</code> if entry is <code>false</code>.
-	 * 
+	 *
 	 * @param target
 	 *            the debug target in which to create the request
 	 * @param classFilter
@@ -533,7 +533,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaMethodEntryBreakpoint#getMethodName()
 	 */
@@ -544,7 +544,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaMethodEntryBreakpoint#getMethodSignature
 	 * ()
@@ -623,7 +623,7 @@
 
 	/**
 	 * Initialize cache of attributes
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IBreakpoint#setMarker(IMarker)
 	 */
 	@Override
@@ -646,7 +646,7 @@
 
 	/**
 	 * converts the specified string to one which has been formated to our needs
-	 * 
+	 *
 	 * @param stringMatcherPattern
 	 *            the initial pattern
 	 * @return the modified pattern
@@ -660,7 +660,7 @@
 
 	/**
 	 * If this breakpoint is not entry or exit enabled, set the default (entry)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IBreakpoint#setEnabled(boolean)
 	 */
 	@Override
@@ -689,7 +689,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaLineBreakpoint#supportsCondition()
 	 */
 	@Override
@@ -728,7 +728,7 @@
 
 	/**
 	 * Returns whether this breakpoint uses type name pattern matching.
-	 * 
+	 *
 	 * @return whether this breakpoint uses type name pattern matching
 	 */
 	protected boolean usesTypePattern() throws CoreException {
@@ -743,7 +743,7 @@
 	/**
 	 * Used when this breakpoint is for a specific type (i.e. not using type
 	 * name pattern matching).
-	 * 
+	 *
 	 * @see org.eclipse.jdt.internal.debug.core.breakpoints.JavaBreakpoint#createRequest(JDIDebugTarget,
 	 *      ReferenceType)
 	 */
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaMethodEntryBreakpoint.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaMethodEntryBreakpoint.java
index 4d05a03..81b1d7f 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaMethodEntryBreakpoint.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaMethodEntryBreakpoint.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -43,7 +43,7 @@
 	 * is contained. (value <code>"org.eclipse.jdt.debug.core.methodName"</code>
 	 * ). This attribute is a <code>String</code>.
 	 */
-	private static final String METHOD_NAME = "org.eclipse.jdt.debug.core.methodName"; //$NON-NLS-1$	
+	private static final String METHOD_NAME = "org.eclipse.jdt.debug.core.methodName"; //$NON-NLS-1$
 
 	/**
 	 * Breakpoint attribute storing the signature of the method in which a
@@ -51,7 +51,7 @@
 	 * <code>"org.eclipse.jdt.debug.core.methodSignature"</code>). This
 	 * attribute is a <code>String</code>.
 	 */
-	private static final String METHOD_SIGNATURE = "org.eclipse.jdt.debug.core.methodSignature"; //$NON-NLS-1$	
+	private static final String METHOD_SIGNATURE = "org.eclipse.jdt.debug.core.methodSignature"; //$NON-NLS-1$
 
 	/**
 	 * Cache of method name attribute
@@ -132,7 +132,7 @@
 
 	/**
 	 * Initialize cache of attributes
-	 * 
+	 *
 	 * @see IBreakpoint#setMarker(IMarker)
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaPatternBreakpoint.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaPatternBreakpoint.java
index 105323c..c4d6976 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaPatternBreakpoint.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaPatternBreakpoint.java
@@ -42,7 +42,7 @@
 	 * <code>"org.eclipse.jdt.debug.core.pattern"</code>). This attribute is a
 	 * <code>String</code>.
 	 */
-	protected static final String PATTERN = "org.eclipse.jdt.debug.core.pattern"; //$NON-NLS-1$	
+	protected static final String PATTERN = "org.eclipse.jdt.debug.core.pattern"; //$NON-NLS-1$
 
 	public JavaPatternBreakpoint() {
 	}
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaStratumLineBreakpoint.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaStratumLineBreakpoint.java
index 9b45923..03807f3 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaStratumLineBreakpoint.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaStratumLineBreakpoint.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -38,7 +38,7 @@
 /**
  * A line breakpoint identified by its source file name and/or path, and stratum
  * that it is relative to.
- * 
+ *
  * @since 3.0
  */
 public class JavaStratumLineBreakpoint extends JavaLineBreakpoint implements
@@ -58,7 +58,7 @@
 	/**
 	 * Creates and returns a line breakpoint identified by its source file name
 	 * and/or path, and stratum that it is relative to.
-	 * 
+	 *
 	 * @param resource
 	 *            the resource on which to create the associated breakpoint
 	 *            marker
@@ -188,7 +188,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.internal.debug.core.breakpoints.JavaBreakpoint#
 	 * installableReferenceType(com.sun.jdi.ReferenceType,
 	 * org.eclipse.jdt.internal.debug.core.model.JDIDebugTarget)
@@ -350,7 +350,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaStratumLineBreakpoint#getPattern()
 	 */
 	@Override
@@ -360,7 +360,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaStratumLineBreakpoint#getSourceName()
 	 */
@@ -371,7 +371,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaStratumLineBreakpoint#getStratum()
 	 */
 	@Override
@@ -381,7 +381,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaStratumLineBreakpoint#getSourcePath()
 	 */
@@ -444,7 +444,7 @@
 		String patterns = getPattern();
 
 		// delimit by ","
-		fTypeNamePatterns = patterns.split(","); //$NON-NLS-1$  
+		fTypeNamePatterns = patterns.split(","); //$NON-NLS-1$
 		fSuffix = new String[fTypeNamePatterns.length];
 		fPrefix = new String[fTypeNamePatterns.length];
 		for (int i = 0; i < fTypeNamePatterns.length; i++) {
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaTargetPatternBreakpoint.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaTargetPatternBreakpoint.java
index b9c002e..e6e470b 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaTargetPatternBreakpoint.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaTargetPatternBreakpoint.java
@@ -34,7 +34,7 @@
 public class JavaTargetPatternBreakpoint extends JavaLineBreakpoint implements
 		IJavaTargetPatternBreakpoint {
 
-	private static final String TARGET_PATTERN_BREAKPOINT = "org.eclipse.jdt.debug.javaTargetPatternBreakpointMarker"; //$NON-NLS-1$	
+	private static final String TARGET_PATTERN_BREAKPOINT = "org.eclipse.jdt.debug.javaTargetPatternBreakpointMarker"; //$NON-NLS-1$
 
 	/**
 	 * Table of targets to patterns
@@ -162,9 +162,9 @@
 				}
 				target.targetRequestFailed(
 						MessageFormat.format(
-								JDIDebugBreakpointMessages.JavaPatternBreakpoint_exception_source_name, 
-								e.toString(), 
-								type.name()), 
+								JDIDebugBreakpointMessages.JavaPatternBreakpoint_exception_source_name,
+								e.toString(),
+								type.name()),
 								e);
 				// execution will not reach this line, as
 				// #targetRequestFailed will throw an exception
@@ -235,7 +235,7 @@
 	public void setPattern(IJavaDebugTarget target, String pattern)
 			throws CoreException {
 		if (fPatterns == null) {
-			fPatterns = new HashMap<IJavaDebugTarget, String>(2);
+			fPatterns = new HashMap<>(2);
 		}
 		// if pattern is changing then remove and re-add
 		String oldPattern = getPattern(target);
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaWatchpoint.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaWatchpoint.java
index 56bc2bd..bbf34a3 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaWatchpoint.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaWatchpoint.java
@@ -62,7 +62,7 @@
 	 * is stored as a <code>boolean</code>, indicating whether a watchpoint is a
 	 * modification watchpoint.
 	 */
-	protected static final String MODIFICATION = "org.eclipse.jdt.debug.core.modification"; //$NON-NLS-1$	
+	protected static final String MODIFICATION = "org.eclipse.jdt.debug.core.modification"; //$NON-NLS-1$
 	/**
 	 * Watchpoint attribute storing the auto_disabled value (value
 	 * <code>"org.eclipse.jdt.debug.core.auto_disabled"</code>). This attribute
@@ -76,7 +76,7 @@
 	 * is set. (value <code>"org.eclipse.jdt.debug.core.fieldName"</code>). This
 	 * attribute is a <code>String</code>.
 	 */
-	protected static final String FIELD_NAME = "org.eclipse.jdt.debug.core.fieldName"; //$NON-NLS-1$		
+	protected static final String FIELD_NAME = "org.eclipse.jdt.debug.core.fieldName"; //$NON-NLS-1$
 	/**
 	 * Flag indicating that this breakpoint last suspended execution due to a
 	 * field access
@@ -95,7 +95,7 @@
 	 * <li>Field modification (value <code>MODIFICATION_EVENT</code>)</li>
 	 * </ol>
 	 */
-	private HashMap<JDIDebugTarget, Integer> fLastEventTypes = new HashMap<JDIDebugTarget, Integer>(10);
+	private HashMap<JDIDebugTarget, Integer> fLastEventTypes = new HashMap<>(10);
 
 	public JavaWatchpoint() {
 	}
@@ -135,7 +135,7 @@
 
 	/**
 	 * @see JavaBreakpoint#createRequest(JDIDebugTarget, ReferenceType)
-	 * 
+	 *
 	 *      Creates and installs an access and modification watchpoint request
 	 *      in the given reference type, configuring the requests as appropriate
 	 *      for this watchpoint. The requests are then enabled based on whether
@@ -187,7 +187,7 @@
 	/**
 	 * Either access or modification watchpoints are not supported. Throw an
 	 * appropriate exception.
-	 * 
+	 *
 	 * @param message
 	 *            the message that states that access or modification
 	 *            watchpoints are not supported
@@ -218,7 +218,7 @@
 
 	/**
 	 * Create a watchpoint for the given breakpoint and associated field.
-	 * 
+	 *
 	 * @param target
 	 *            the target in which the request will be installed
 	 * @param field
@@ -227,7 +227,7 @@
 	 *            <code>true</code> if an access watchpoint will be created.
 	 *            <code>false</code> if a modification watchpoint will be
 	 *            created.
-	 * 
+	 *
 	 * @return an WatchpointRequest (AccessWatchpointRequest if access is
 	 *         <code>true</code>; ModificationWatchpointRequest if access is
 	 *         <code>false</code>).
@@ -287,7 +287,7 @@
 
 	/**
 	 * @see IBreakpoint#setEnabled(boolean)
-	 * 
+	 *
 	 *      If the watchpoint is not watching access or modification, set the
 	 *      default values. If this isn't done, the resulting state (enabled
 	 *      with access and modification both disabled) is ambiguous.
@@ -315,7 +315,7 @@
 	 * field is accessed. If true and this watchpoint is disabled, this
 	 * watchpoint is automatically enabled. If both access and modification are
 	 * false, this watchpoint is automatically disabled.
-	 * 
+	 *
 	 * @param access
 	 *            whether to suspend on field access
 	 * @exception CoreException
@@ -350,7 +350,7 @@
 	 * field is modified. If true and this watchpoint is disabled, this
 	 * watchpoint is automatically enabled. If both access and modification are
 	 * false, this watchpoint is automatically disabled.
-	 * 
+	 *
 	 * @param modification
 	 *            whether to suspend on field modification
 	 * @exception CoreException
@@ -402,17 +402,17 @@
 	 * enabled</li>
 	 * </ul>
 	 * The default returned array is <code>{true, true}</code>
-	 * 
+	 *
 	 * @return an array of two boolean values representing the default access
 	 *         and modification settings
-	 * 
+	 *
 	 * @since 3.3.1
 	 */
 	protected boolean[] getDefaultAccessAndModificationValues() {
 		int value = Platform.getPreferencesService().getInt(
-				JDIDebugPlugin.getUniqueIdentifier(), 
-				JDIDebugPlugin.PREF_DEFAULT_WATCHPOINT_SUSPEND_POLICY, 
-				0, 
+				JDIDebugPlugin.getUniqueIdentifier(),
+				JDIDebugPlugin.PREF_DEFAULT_WATCHPOINT_SUSPEND_POLICY,
+				0,
 				null);
 		switch (value) {
 		case 0: {
@@ -467,7 +467,7 @@
 	 * superclass. This is useful for correctly generating the thread text when
 	 * asked (assumes thread text is requested after the event is passed to this
 	 * breakpoint.
-	 * 
+	 *
 	 * Also, @see JavaBreakpoint#handleEvent(Event, JDIDebugTarget)
 	 */
 	@Override
@@ -555,7 +555,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IWatchpoint#supportsAccess()
 	 */
 	@Override
@@ -565,7 +565,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IWatchpoint#supportsModification()
 	 */
 	@Override
@@ -575,7 +575,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.internal.debug.core.breakpoints.JavaBreakpoint#
 	 * installableReferenceType(com.sun.jdi.ReferenceType,
 	 * org.eclipse.jdt.internal.debug.core.model.JDIDebugTarget)
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/ValidBreakpointLocationLocator.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/ValidBreakpointLocationLocator.java
index 28c9c78..11f28bb 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/ValidBreakpointLocationLocator.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/ValidBreakpointLocationLocator.java
@@ -159,7 +159,7 @@
 	 * breakpoint location. If this locator makes a pass of the tree and
 	 * determines that binding information would be helpful but was not
 	 * available, this method returns <code>true</code>.
-	 * 
+	 *
 	 * @return whether binding information would be helpful in validating a
 	 *         breakpoint location
 	 */
@@ -169,7 +169,7 @@
 
 	/**
 	 * Return the type of the valid location found
-	 * 
+	 *
 	 * @return one of LOCATION_NOT_FOUND, LOCATION_LINE, LOCATION_METHOD or
 	 *         LOCATION_FIELD
 	 */
@@ -207,7 +207,7 @@
 	 * <br>
 	 * Delegates to the old method of computing the type name if bindings are
 	 * not available.
-	 * 
+	 *
 	 * @see #computeTypeName0(ASTNode)
 	 * @since 3.6
 	 */
@@ -231,7 +231,7 @@
 
 	/**
 	 * Fall back to compute the type name if bindings are not resolved
-	 * 
+	 *
 	 * @param node
 	 * @return the computed type name
 	 */
@@ -268,7 +268,7 @@
 	/**
 	 * Return <code>true</code> if this node children may contain a valid
 	 * location for the breakpoint.
-	 * 
+	 *
 	 * @param node
 	 *            the node.
 	 * @param isCode
@@ -403,7 +403,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * AnnotationTypeDeclaration)
 	 */
@@ -420,7 +420,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * AnnotationTypeMemberDeclaration)
 	 */
@@ -536,7 +536,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * BlockComment)
 	 */
@@ -643,7 +643,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * EnhancedForStatement)
 	 */
@@ -658,7 +658,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * EnumConstantDeclaration)
 	 */
@@ -679,7 +679,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * EnumDeclaration)
 	 */
@@ -780,7 +780,7 @@
 		}
 		return false;
 	}
-	
+
 	/**
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.ForStatement)
 	 */
@@ -911,7 +911,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.core.dom.ASTVisitor#endVisit(org.eclipse.jdt.core.dom
 	 * .LabeledStatement)
@@ -931,7 +931,7 @@
 
 	private void nestLabel(String label) {
 		if (fLabels == null) {
-			fLabels = new ArrayList<String>();
+			fLabels = new ArrayList<>();
 		}
 		fLabels.add(label);
 	}
@@ -945,7 +945,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * LineComment)
 	 */
@@ -956,7 +956,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * MarkerAnnotation)
 	 */
@@ -967,7 +967,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.MemberRef
 	 * )
@@ -979,7 +979,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * MemberValuePair)
 	 */
@@ -1028,7 +1028,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.MethodRef
 	 * )
@@ -1040,7 +1040,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * MethodRefParameter)
 	 */
@@ -1051,7 +1051,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.Modifier
 	 * )
@@ -1063,7 +1063,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * NormalAnnotation)
 	 */
@@ -1098,7 +1098,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * ParameterizedType)
 	 */
@@ -1160,7 +1160,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * QualifiedType)
 	 */
@@ -1196,7 +1196,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * SingleMemberAnnotation)
 	 */
@@ -1271,7 +1271,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.TagElement
 	 * )
@@ -1283,7 +1283,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * TextElement)
 	 */
@@ -1318,7 +1318,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.UnionType
 	 * )
@@ -1353,7 +1353,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * TypeParameter)
 	 */
@@ -1420,7 +1420,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * WildcardType)
 	 */
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/hcr/CompilationUnitDelta.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/hcr/CompilationUnitDelta.java
index 95dc262..bdf9089 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/hcr/CompilationUnitDelta.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/hcr/CompilationUnitDelta.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Yevgen Kogan - Bug 403475 - Hot Code Replace drops too much frames in some cases
@@ -172,7 +172,7 @@
 
 	/**
 	 * Returns an AST matcher
-	 * 
+	 *
 	 * @return AST matcher
 	 */
 	private ASTMatcher getMatcher() {
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/hcr/JavaHotCodeReplaceManager.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/hcr/JavaHotCodeReplaceManager.java
index 27facfb..c1b48cd 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/hcr/JavaHotCodeReplaceManager.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/hcr/JavaHotCodeReplaceManager.java
@@ -104,8 +104,8 @@
 	/**
 	 * The lists of hot swap targets which support HCR and those which don't
 	 */
-	private ArrayList<JDIDebugTarget> fHotSwapTargets = new ArrayList<JDIDebugTarget>(1);
-	private ArrayList<JDIDebugTarget> fNoHotSwapTargets = new ArrayList<JDIDebugTarget>(1);
+	private ArrayList<JDIDebugTarget> fHotSwapTargets = new ArrayList<>(1);
+	private ArrayList<JDIDebugTarget> fNoHotSwapTargets = new ArrayList<>(1);
 
 	/**
 	 * A mapping of the last time projects were built.
@@ -114,13 +114,13 @@
 	 * <li>value: build date (ProjectBuildTime)</li>
 	 * </ol>
 	 */
-	private Map<IProject, ProjectBuildTime> fProjectBuildTimes = new HashMap<IProject, ProjectBuildTime>();
+	private Map<IProject, ProjectBuildTime> fProjectBuildTimes = new HashMap<>();
 	private static Date fStartupDate = new Date();
 
 	/**
 	 * Cache of compilation unit deltas renewed on each HCR attempt.
 	 */
-	private Map<ICompilationUnit, CompilationUnitDelta> fDeltaCache = new HashMap<ICompilationUnit, CompilationUnitDelta>();
+	private Map<ICompilationUnit, CompilationUnitDelta> fDeltaCache = new HashMap<>();
 
 	/**
 	 * Utility object used for tracking build times of projects. The HCR manager
@@ -259,7 +259,7 @@
 		}
 		Object source = event.getSource();
 		if (source instanceof IProject) {
-			List<IProject> list = new ArrayList<IProject>();
+			List<IProject> list = new ArrayList<>();
 			list.add((IProject) source);
 			return list;
 		} else if (source instanceof IWorkspace) {
@@ -335,7 +335,7 @@
 	 * names if there is no type corresponding type loaded in the given debug
 	 * target. This method allows us to avoid bogus HCR attempts and
 	 * "HCR failed" notifications.
-	 * 
+	 *
 	 * @param target
 	 *            the debug target
 	 * @param resources
@@ -377,8 +377,8 @@
 				// Make a local copy of the resources/names to swap so we can
 				// filter
 				// unloaded types on a per-target basis.
-				List<IResource> resourcesToReplace = new ArrayList<IResource>(resources);
-				List<String> qualifiedNamesToReplace = new ArrayList<String>(qualifiedNames);
+				List<IResource> resourcesToReplace = new ArrayList<>(resources);
+				List<String> qualifiedNamesToReplace = new ArrayList<>(qualifiedNames);
 				filterUnloadedTypes(target, resourcesToReplace,
 						qualifiedNamesToReplace);
 
@@ -407,7 +407,7 @@
 	 * replace.
 	 */
 	protected synchronized List<JDIDebugTarget> getHotSwapTargets() {
-		return new ArrayList<JDIDebugTarget>(fHotSwapTargets);
+		return new ArrayList<>(fHotSwapTargets);
 	}
 
 	/**
@@ -415,7 +415,7 @@
 	 * code replace.
 	 */
 	protected synchronized List<JDIDebugTarget> getNoHotSwapTargets() {
-		return new ArrayList<JDIDebugTarget>(fNoHotSwapTargets);
+		return new ArrayList<>(fNoHotSwapTargets);
 	}
 
 	/**
@@ -436,7 +436,7 @@
 	 * reloading the given resources and then performing a step-into operation
 	 * on all threads which were affected by the class redefinition.</li>
 	 * </ol>
-	 * 
+	 *
 	 * @param targets
 	 *            the targets in which to perform HCR
 	 * @param resources
@@ -447,9 +447,9 @@
 
 		// Check whether hot code replace is enabled
 		if (!Platform.getPreferencesService().getBoolean(
-				JDIDebugPlugin.getUniqueIdentifier(), 
-				JDIDebugPlugin.PREF_ENABLE_HCR, 
-				true, 
+				JDIDebugPlugin.getUniqueIdentifier(),
+				JDIDebugPlugin.PREF_ENABLE_HCR,
+				true,
 				null)) {
 			return; // disabled
 		}
@@ -467,8 +467,8 @@
 			}
 			// Make a local copy of the resources/names to swap so we can filter
 			// unloaded types on a per-target basis.
-			List<IResource> resourcesToReplace = new ArrayList<IResource>(resources);
-			List<String> qualifiedNamesToReplace = new ArrayList<String>(qualifiedNames);
+			List<IResource> resourcesToReplace = new ArrayList<>(resources);
+			List<String> qualifiedNamesToReplace = new ArrayList<>(qualifiedNames);
 			filterUnloadedTypes(target, resourcesToReplace,
 					qualifiedNamesToReplace);
 			if (qualifiedNamesToReplace.isEmpty()) {
@@ -476,7 +476,7 @@
 				continue;
 			}
 
-			List<IThread> poppedThreads = new ArrayList<IThread>();
+			List<IThread> poppedThreads = new ArrayList<>();
 			target.setIsPerformingHotCodeReplace(true);
 			try {
 				boolean framesPopped = false;
@@ -556,9 +556,9 @@
 	/**
 	 * Replaces the given types in the given J9 debug target. A fully qualified
 	 * name of each type must be supplied.
-	 * 
+	 *
 	 * Breakpoints are reinstalled automatically when the new types are loaded.
-	 * 
+	 *
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
 	 *                <ul>
@@ -587,7 +587,7 @@
 				result = vm.classesHaveChanged(typeNames);
 			} catch (RuntimeException e) {
 				target.targetRequestFailed(
-						MessageFormat.format(JDIDebugHCRMessages.JavaHotCodeReplaceManager_exception_replacing_types, e.toString()), 
+						MessageFormat.format(JDIDebugHCRMessages.JavaHotCodeReplaceManager_exception_replacing_types, e.toString()),
 						e);
 			}
 			switch (result) {
@@ -613,7 +613,7 @@
 
 	/**
 	 * Replaces the given types in the given JDK-compliant debug target.
-	 * 
+	 *
 	 * This method is to be used for JDK hot code replace.
 	 */
 	private void redefineTypesJDK(JDIDebugTarget target, List<IResource> resources,
@@ -638,7 +638,7 @@
 							qualifiedNames,
 							MessageFormat.format(
 									JDIDebugHCRMessages.JavaHotCodeReplaceManager_hcr_unsupported_operation,
-									detail), 
+									detail),
 							exception);
 				} else {
 					redefineTypesFailedJDK(
@@ -692,7 +692,7 @@
 
 	/**
 	 * Error handling for JDK hot code replace.
-	 * 
+	 *
 	 * The given exception occurred when redefinition was attempted for the
 	 * given types.
 	 */
@@ -706,7 +706,7 @@
 	/**
 	 * Returns a mapping of class files to the bytes that make up those class
 	 * files.
-	 * 
+	 *
 	 * @param target
 	 *            the debug target to query
 	 * @param resources
@@ -720,7 +720,7 @@
 	 */
 	private Map<ReferenceType, byte[]> getTypesToBytes(JDIDebugTarget target, List<IResource> resources,
 			List<String> qualifiedNames) {
-		Map<ReferenceType, byte[]> typesToBytes = new HashMap<ReferenceType, byte[]>(resources.size());
+		Map<ReferenceType, byte[]> typesToBytes = new HashMap<>(resources.size());
 		Iterator<IResource> resourceIter = resources.iterator();
 		Iterator<String> nameIter = qualifiedNames.iterator();
 		IResource resource;
@@ -746,7 +746,7 @@
 	 * Return the listeners to notify for the given target. Target specific
 	 * listeners take precedence over generic listeners registered with the
 	 * debug model plug-in.
-	 * 
+	 *
 	 * @param target
 	 *            Java debug target
 	 * @return hot code replace listeners
@@ -796,7 +796,7 @@
 	/**
 	 * Looks for the deepest affected stack frame in the stack and forces a drop
 	 * to frame. Does this for all of the active stack frames in the target.
-	 * 
+	 *
 	 * @param target
 	 *            the debug target in which frames are to be dropped
 	 * @param replacedClassNames
@@ -827,7 +827,7 @@
 	/**
 	 * Looks for the deepest affected stack frame in the stack and forces a drop
 	 * to frame. Does this for all of the active stack frames in the target.
-	 * 
+	 *
 	 * @param target
 	 *            the debug target in which frames are to be dropped
 	 * @param replacedClassNames
@@ -885,7 +885,7 @@
 			List<String> replacedClassNames) throws DebugException {
 		JDIThread thread = null;
 		JDIStackFrame affectedFrame = null;
-		List<JDIStackFrame> popFrames = new ArrayList<JDIStackFrame>();
+		List<JDIStackFrame> popFrames = new ArrayList<>();
 		int numThreads = threads.length;
 		IResource[] resources = new IResource[resourceList.size()];
 		resourceList.toArray(resources);
@@ -947,10 +947,10 @@
 								.getProject();
 						delta = getDelta(compilationUnit,
 								getLastProjectBuildTime(project));
-						
+
 						String typeName = frame.getDeclaringTypeName();
 						typeName = typeName.replace('$', '.');
-						
+
 						if (!delta.hasChanged(typeName, frame.getName(),
 								frame.getSignature())) {
 							continue;
@@ -983,7 +983,7 @@
 
 	/**
 	 * Returns the delta object for the given compilation unit
-	 * 
+	 *
 	 * @param cu
 	 *            compilation unit
 	 * @param time
@@ -1197,9 +1197,9 @@
 								boolean hasBlockingErrors = false;
 								try {
 									if (!Platform.getPreferencesService().getBoolean(
-											JDIDebugPlugin.getUniqueIdentifier(), 
-											JDIDebugModel.PREF_HCR_WITH_COMPILATION_ERRORS, 
-											true, 
+											JDIDebugPlugin.getUniqueIdentifier(),
+											JDIDebugModel.PREF_HCR_WITH_COMPILATION_ERRORS,
+											true,
 											null)) {
 										// If the user doesn't want to replace
 										// classfiles containing
@@ -1259,8 +1259,8 @@
 		 * Resets the file collection to empty
 		 */
 		public void reset() {
-			fFiles = new ArrayList<IResource>();
-			fNames = new ArrayList<String>();
+			fFiles = new ArrayList<>();
+			fNames = new ArrayList<>();
 		}
 
 		/**
@@ -1273,7 +1273,7 @@
 		/**
 		 * Returns a collection of qualified type names corresponding to the
 		 * changed class files.
-		 * 
+		 *
 		 * @return List
 		 */
 		public List<String> getQualifiedNamesList() {
@@ -1283,7 +1283,7 @@
 		/**
 		 * Returns the source file associated with the given type, or
 		 * <code>null</code> if no source file could be found.
-		 * 
+		 *
 		 * @param project
 		 *            the java project containing the classfile
 		 * @param qualifiedName
@@ -1355,7 +1355,7 @@
 	/**
 	 * Begin listening for resource changes when a launch is registered with a
 	 * hot swap-able target.
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.ILaunchListener#launchAdded(org.eclipse.debug.core.ILaunch)
 	 */
 	@Override
@@ -1384,7 +1384,7 @@
 	/**
 	 * Begin listening for resource changes when a launch is registered with a
 	 * hot swap-able target.
-	 * 
+	 *
 	 * @see ILaunchListener#launchChanged(ILaunch)
 	 */
 	@Override
@@ -1394,7 +1394,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.debug.core.IDebugEventSetListener#handleDebugEvents(org.eclipse
 	 * .debug.core.DebugEvent[])
@@ -1442,7 +1442,7 @@
 	/**
 	 * Adds the given target to the list of hot-swap-able targets. Has no effect
 	 * if the target is already registered.
-	 * 
+	 *
 	 * @param target
 	 *            a target that supports hot swap
 	 */
@@ -1455,7 +1455,7 @@
 	/**
 	 * Adds the given target to the list of non hot-swap-able targets. Has no
 	 * effect if the target is already registered.
-	 * 
+	 *
 	 * @param target
 	 *            a target that does not support hot swap
 	 */
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/hcr/MethodSearchVisitor.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/hcr/MethodSearchVisitor.java
index 05e7c99..cd0821e 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/hcr/MethodSearchVisitor.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/hcr/MethodSearchVisitor.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Yevgen Kogan - Bug 403475 - Hot Code Replace drops too much frames in some cases
@@ -125,7 +125,7 @@
 
 	/**
 	 * Sets the signature of the method to search for
-	 * 
+	 *
 	 * @param methodName
 	 *            name of method to search for
 	 * @param methodSignature
@@ -147,7 +147,7 @@
 
 	/**
 	 * Returns the search result, or <code>null</code> if none
-	 * 
+	 *
 	 * @return matching method declartion or <code>null</code>
 	 */
 	public MethodDeclaration getMatch() {
@@ -156,7 +156,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
 	 * MethodDeclaration)
 	 */
@@ -206,7 +206,7 @@
 
 	/**
 	 * Returns whether this visitor is still searching for a match.
-	 * 
+	 *
 	 * @return whether this visitor is still searching for a match
 	 */
 	private boolean isSearching() {
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/IJavaStructuresListener.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/IJavaStructuresListener.java
index 2e5cab8..865b974 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/IJavaStructuresListener.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/IJavaStructuresListener.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JDIAllInstancesValue.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JDIAllInstancesValue.java
index 2fb46ee..f9506a0 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JDIAllInstancesValue.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JDIAllInstancesValue.java
@@ -29,7 +29,7 @@
 /**
  * Java value containing an array of java objects. This value is used to hold a
  * list of all instances of a specific java type.
- * 
+ *
  * @since 3.3
  * @see org.eclipse.jdt.internal.debug.ui.heapwalking.AllInstancesActionDelegate
  */
@@ -43,7 +43,7 @@
 	/**
 	 * Constructor, specifies whether there are more instances available than
 	 * should be displayed according to the user's preference settings.
-	 * 
+	 *
 	 * @param target
 	 *            the target VM
 	 * @param root
@@ -67,7 +67,7 @@
 	protected IJavaObject[] getInstances() {
 		if (fInstances != null) {
 			return fInstances;
-		} 
+		}
 		IJavaObject[] instances = new IJavaObject[0];
 		fIsMoreThanPreference = false;
 		if (fRoot != null) {
@@ -95,7 +95,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.internal.debug.core.model.JDIArrayValue#getLength()
 	 */
 	@Override
@@ -105,7 +105,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.internal.debug.core.model.JDIArrayValue#getSize()
 	 */
 	@Override
@@ -115,7 +115,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.core.model.JDIArrayValue#getValue(int)
 	 */
@@ -129,7 +129,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.internal.debug.core.model.JDIArrayValue#getValues()
 	 */
 	@Override
@@ -139,7 +139,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.core.model.JDIArrayValue#getVariable(int)
 	 */
@@ -160,7 +160,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.core.model.JDIArrayValue#getVariables(int,
 	 * int)
@@ -183,7 +183,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.internal.debug.core.model.JDIValue#getVariables()
 	 */
 	@Override
@@ -193,7 +193,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.core.model.JDIObjectValue#getReferringObjects
 	 * (long)
@@ -205,7 +205,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.internal.debug.core.model.JDIValue#isAllocated()
 	 */
 	@Override
@@ -215,7 +215,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.core.model.JDIArrayValue#getInitialOffset
 	 * ()
@@ -227,7 +227,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.core.model.JDIArrayValue#hasVariables()
 	 */
@@ -238,7 +238,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.internal.debug.core.model.JDIValue#getJavaType()
 	 */
 	@Override
@@ -248,7 +248,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.internal.debug.core.model.JDIValue#getSignature()
 	 */
 	@Override
@@ -258,7 +258,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.core.model.JDIObjectValue#getReferenceTypeName
 	 * ()
@@ -270,7 +270,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.internal.debug.core.model.JDIValue#getValueString()
 	 */
 	@Override
@@ -290,7 +290,7 @@
 	/**
 	 * Returns a string representation of this value intended to be displayed in
 	 * the detail pane of views. Lists the references on separate lines.
-	 * 
+	 *
 	 * @return a string representation of this value to display in the detail
 	 *         pane
 	 */
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JDIPlaceholderVariable.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JDIPlaceholderVariable.java
index 6f10c53..78b298c 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JDIPlaceholderVariable.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JDIPlaceholderVariable.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -24,7 +24,7 @@
  * Encapsulates a name and a value. Used when a variable is required (such as
  * for the VariablesView), but we only have a value available (such as the
  * result of an evaluation for an object browser).
- * 
+ *
  * @since 3.0
  */
 public class JDIPlaceholderVariable extends PlatformObject implements
@@ -37,7 +37,7 @@
 	 * When created for a logical structure we hold onto the original
 	 * non-logical value for purposes of equality. This way a logical
 	 * structure's children remain more stable in the variables view.
-	 * 
+	 *
 	 * This is <code>null</code> when not created for a logical structure.
 	 */
 	private IJavaValue fLogicalParent;
@@ -50,7 +50,7 @@
 	/**
 	 * Constructs a place holder with the given name and value originating from
 	 * the specified logical parent.
-	 * 
+	 *
 	 * @param name
 	 *            variable name
 	 * @param value
@@ -67,7 +67,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaVariable#getSignature()
 	 */
 	@Override
@@ -77,7 +77,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaVariable#getGenericSignature()
 	 */
 	@Override
@@ -87,7 +87,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaVariable#getJavaType()
 	 */
 	@Override
@@ -97,7 +97,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaVariable#isLocal()
 	 */
 	@Override
@@ -107,7 +107,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IVariable#getValue()
 	 */
 	@Override
@@ -117,7 +117,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IVariable#getName()
 	 */
 	@Override
@@ -127,7 +127,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IVariable#getReferenceTypeName()
 	 */
 	@Override
@@ -137,7 +137,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IVariable#hasValueChanged()
 	 */
 	@Override
@@ -147,7 +147,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaModifiers#isPublic()
 	 */
 	@Override
@@ -157,7 +157,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaModifiers#isPrivate()
 	 */
 	@Override
@@ -167,7 +167,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaModifiers#isProtected()
 	 */
 	@Override
@@ -177,7 +177,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaModifiers#isPackagePrivate()
 	 */
 	@Override
@@ -187,7 +187,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaModifiers#isFinal()
 	 */
 	@Override
@@ -197,7 +197,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaModifiers#isStatic()
 	 */
 	@Override
@@ -207,7 +207,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaModifiers#isSynthetic()
 	 */
 	@Override
@@ -217,7 +217,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IDebugElement#getModelIdentifier()
 	 */
 	@Override
@@ -227,7 +227,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IDebugElement#getDebugTarget()
 	 */
 	@Override
@@ -237,7 +237,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IDebugElement#getLaunch()
 	 */
 	@Override
@@ -247,7 +247,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.debug.core.model.IValueModification#setValue(java.lang.String
 	 * )
@@ -258,7 +258,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.debug.core.model.IValueModification#setValue(org.eclipse.
 	 * debug.core.model.IValue)
@@ -269,7 +269,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.debug.core.model.IValueModification#supportsValueModification
 	 * ()
@@ -281,7 +281,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.debug.core.model.IValueModification#verifyValue(java.lang
 	 * .String)
@@ -293,7 +293,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.debug.core.model.IValueModification#verifyValue(org.eclipse
 	 * .debug.core.model.IValue)
@@ -305,7 +305,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
 	 */
 	@Override
@@ -320,7 +320,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see java.lang.Object#equals(java.lang.Object)
 	 */
 	@Override
@@ -330,7 +330,7 @@
 			if (fLogicalParent != null) {
 				return var.getName().equals(getName())
 						&& fLogicalParent.equals(var.fLogicalParent);
-			} 
+			}
 			return var.getName().equals(getName())
 					&& var.getValue().equals(getValue());
 		}
@@ -339,7 +339,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see java.lang.Object#hashCode()
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JavaLogicalStructure.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JavaLogicalStructure.java
index f641004..2bbb232 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JavaLogicalStructure.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JavaLogicalStructure.java
@@ -88,7 +88,7 @@
 
 		/**
 		 * Constructor
-		 * 
+		 *
 		 * @param value
 		 * @param type
 		 * @param thread
@@ -104,7 +104,7 @@
 
 		/*
 		 * (non-Javadoc)
-		 * 
+		 *
 		 * @see
 		 * org.eclipse.jdt.debug.eval.IEvaluationListener#evaluationComplete
 		 * (org.eclipse.jdt.debug.eval.IEvaluationResult)
@@ -120,7 +120,7 @@
 		/**
 		 * Evaluates the specified snippet and returns the
 		 * <code>IJavaValue</code> from the evaluation
-		 * 
+		 *
 		 * @param snippet
 		 *            the snippet to evaluate
 		 * @return the <code>IJavaValue</code> from the evaluation
@@ -327,7 +327,7 @@
 	/**
 	 * Returns the <code>IJavaReferenceType</code> from the specified
 	 * <code>IJavaObject</code>
-	 * 
+	 *
 	 * @param value
 	 * @return the <code>IJavaReferenceType</code> from the specified
 	 *         <code>IJavaObject</code>
@@ -372,7 +372,7 @@
 	/**
 	 * Return the current stack frame context, or a valid stack frame for the
 	 * given value.
-	 * 
+	 *
 	 * @param value
 	 * @return the current stack frame context, or a valid stack frame for the
 	 *         given value.
@@ -404,7 +404,7 @@
 
 	/**
 	 * Returns the singleton stackframe provider
-	 * 
+	 *
 	 * @return the singleton stackframe provider
 	 */
 	private static IStatusHandler getStackFrameProvider() {
@@ -417,7 +417,7 @@
 
 	/**
 	 * Returns if this logical structure should be used for subtypes too.
-	 * 
+	 *
 	 * @return if this logical structure should be used for subtypes too.
 	 */
 	public boolean isSubtypes() {
@@ -426,7 +426,7 @@
 
 	/**
 	 * Sets if this logical structure should be used for subtypes or not.
-	 * 
+	 *
 	 * @param subtypes
 	 */
 	public void setSubtypes(boolean subtypes) {
@@ -435,7 +435,7 @@
 
 	/**
 	 * Returns the name of the type this logical structure should be used for.
-	 * 
+	 *
 	 * @return the name of the type this logical structure should be used for.
 	 */
 	public String getQualifiedTypeName() {
@@ -444,7 +444,7 @@
 
 	/**
 	 * Sets the name of the type this logical structure should be used for.
-	 * 
+	 *
 	 * @param type
 	 */
 	public void setType(String type) {
@@ -453,7 +453,7 @@
 
 	/**
 	 * Returns the code snippet to use to generate the logical structure.
-	 * 
+	 *
 	 * @return the code snippet to use to generate the logical structure.
 	 */
 	public String getValue() {
@@ -462,7 +462,7 @@
 
 	/**
 	 * Sets the code snippet to use to generate the logical structure.
-	 * 
+	 *
 	 * @param value
 	 */
 	public void setValue(String value) {
@@ -471,7 +471,7 @@
 
 	/**
 	 * Returns the variables of this logical structure.
-	 * 
+	 *
 	 * @return the variables of this logical structure.
 	 */
 	public String[][] getVariables() {
@@ -480,7 +480,7 @@
 
 	/**
 	 * Sets the variables of this logical structure.
-	 * 
+	 *
 	 * @param variables
 	 */
 	public void setVariables(String[][] variables) {
@@ -489,7 +489,7 @@
 
 	/**
 	 * Set the description of this logical structure.
-	 * 
+	 *
 	 * @param description
 	 */
 	public void setDescription(String description) {
@@ -498,7 +498,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.debug.core.model.ILogicalStructureTypeDelegate2#getDescription
 	 * (org.eclipse.debug.core.model.IValue)
@@ -510,7 +510,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.ILogicalStructureType#getDescription()
 	 */
 	@Override
@@ -521,7 +521,7 @@
 	/**
 	 * Indicates if this logical structure was contributed by a plug-in or
 	 * defined by a user.
-	 * 
+	 *
 	 * @return if this logical structure is contributed
 	 */
 	public boolean isContributed() {
@@ -532,7 +532,7 @@
 	 * Returns the plugin identifier of the plugin which contributed this
 	 * logical structure or <code>null</code> if this structure was defined by
 	 * the user.
-	 * 
+	 *
 	 * @return the plugin identifier of the plugin which contributed this
 	 *         structure or <code>null</code>
 	 */
@@ -542,7 +542,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.ILogicalStructureType#getId()
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JavaLogicalStructures.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JavaLogicalStructures.java
index b2989b9..772369a 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JavaLogicalStructures.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JavaLogicalStructures.java
@@ -64,11 +64,11 @@
 	/**
 	 * The list of java logical structures listeners.
 	 */
-	private static Set<IJavaStructuresListener> fListeners = new HashSet<IJavaStructuresListener>();
+	private static Set<IJavaStructuresListener> fListeners = new HashSet<>();
 
 	/**
 	 * Preference key for the list of user defined Java logical structures
-	 * 
+	 *
 	 * @since 3.1
 	 */
 	private static final String PREF_JAVA_LOGICAL_STRUCTURES = JDIDebugModel
@@ -109,7 +109,7 @@
 	}
 
 	private static void initJavaLogicalStructureMap() {
-		fJavaLogicalStructureMap = new HashMap<String, List<JavaLogicalStructure>>();
+		fJavaLogicalStructureMap = new HashMap<>();
 		addAllLogicalStructures(fPluginContributedJavaLogicalStructures);
 		addAllLogicalStructures(fUserDefinedJavaLogicalStructures);
 	}
@@ -132,7 +132,7 @@
 		String typeName = structure.getQualifiedTypeName();
 		List<JavaLogicalStructure> logicalStructure = fJavaLogicalStructureMap.get(typeName);
 		if (logicalStructure == null) {
-			logicalStructure = new ArrayList<JavaLogicalStructure>();
+			logicalStructure = new ArrayList<>();
 			fJavaLogicalStructureMap.put(typeName, logicalStructure);
 		}
 		logicalStructure.add(structure);
@@ -142,7 +142,7 @@
 	 * Get the configuration elements for the extension point.
 	 */
 	private static void initPluginContributedJavaLogicalStructure() {
-		fPluginContributedJavaLogicalStructures = new ArrayList<JavaLogicalStructure>();
+		fPluginContributedJavaLogicalStructures = new ArrayList<>();
 		IExtensionPoint extensionPoint = Platform.getExtensionRegistry()
 				.getExtensionPoint(JDIDebugPlugin.getUniqueIdentifier(),
 						JDIDebugPlugin.EXTENSION_POINT_JAVA_LOGICAL_STRUCTURES);
@@ -163,10 +163,10 @@
 	 * Get the user defined logical structures (from the preference store).
 	 */
 	private static void initUserDefinedJavaLogicalStructures() {
-		fUserDefinedJavaLogicalStructures = new ArrayList<JavaLogicalStructure>();
+		fUserDefinedJavaLogicalStructures = new ArrayList<>();
 		String logicalStructuresString = Platform.getPreferencesService().getString(
-				JDIDebugPlugin.getUniqueIdentifier(), 
-				PREF_JAVA_LOGICAL_STRUCTURES, 
+				JDIDebugPlugin.getUniqueIdentifier(),
+				PREF_JAVA_LOGICAL_STRUCTURES,
 				"",  //$NON-NLS-1$
 				null);
 		StringTokenizer tokenizer = new StringTokenizer(
@@ -280,7 +280,7 @@
 			return new ILogicalStructureType[0];
 		}
 		IJavaObject javaValue = (IJavaObject) value;
-		List<JavaLogicalStructure> logicalStructures = new ArrayList<JavaLogicalStructure>();
+		List<JavaLogicalStructure> logicalStructures = new ArrayList<>();
 		try {
 			IJavaType type = javaValue.getJavaType();
 			if (!(type instanceof IJavaClassType)) {
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JavaStructureErrorValue.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JavaStructureErrorValue.java
index d59d746..47a091b 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JavaStructureErrorValue.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JavaStructureErrorValue.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -19,7 +19,7 @@
 import org.eclipse.jdt.debug.core.JDIDebugModel;
 
 /**
- * 
+ *
  */
 public class JavaStructureErrorValue implements IJavaValue {
 
@@ -39,7 +39,7 @@
 	/**
 	 * Returns this error node's parent value. This is the value for which a
 	 * logical structure could not be calculated.
-	 * 
+	 *
 	 * @return the parent value of this error node
 	 */
 	public IJavaValue getParentValue() {
@@ -48,7 +48,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaValue#getSignature()
 	 */
 	@Override
@@ -58,7 +58,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaValue#getGenericSignature()
 	 */
 	@Override
@@ -68,7 +68,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaValue#getJavaType()
 	 */
 	@Override
@@ -78,7 +78,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IValue#getReferenceTypeName()
 	 */
 	@Override
@@ -88,7 +88,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IValue#getValueString()
 	 */
 	@Override
@@ -98,7 +98,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IValue#isAllocated()
 	 */
 	@Override
@@ -108,7 +108,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IValue#getVariables()
 	 */
 	@Override
@@ -131,7 +131,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IValue#hasVariables()
 	 */
 	@Override
@@ -141,7 +141,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IDebugElement#getModelIdentifier()
 	 */
 	@Override
@@ -151,7 +151,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IDebugElement#getDebugTarget()
 	 */
 	@Override
@@ -161,7 +161,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IDebugElement#getLaunch()
 	 */
 	@Override
@@ -171,7 +171,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
 	 */
 	@Override
@@ -181,7 +181,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaValue#isNull()
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/LogicalObjectStructureValue.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/LogicalObjectStructureValue.java
index 118ad63..5158f90 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/LogicalObjectStructureValue.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/LogicalObjectStructureValue.java
@@ -32,7 +32,7 @@
 	/**
 	 * Constructs a proxy to the given object, with the given variables as
 	 * children.
-	 * 
+	 *
 	 * @param object
 	 *            original object
 	 * @param variables
@@ -46,7 +46,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaObject#sendMessage(java.lang.String,
 	 * java.lang.String, org.eclipse.jdt.debug.core.IJavaValue[],
 	 * org.eclipse.jdt.debug.core.IJavaThread, boolean)
@@ -61,7 +61,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaObject#sendMessage(java.lang.String,
 	 * java.lang.String, org.eclipse.jdt.debug.core.IJavaValue[],
 	 * org.eclipse.jdt.debug.core.IJavaThread, java.lang.String)
@@ -76,7 +76,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaObject#getField(java.lang.String,
 	 * boolean)
 	 */
@@ -88,7 +88,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaObject#getField(java.lang.String,
 	 * java.lang.String)
 	 */
@@ -100,7 +100,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaValue#getSignature()
 	 */
 	@Override
@@ -110,7 +110,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaValue#getGenericSignature()
 	 */
 	@Override
@@ -120,7 +120,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaValue#getJavaType()
 	 */
 	@Override
@@ -130,7 +130,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IValue#getReferenceTypeName()
 	 */
 	@Override
@@ -140,7 +140,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IValue#getValueString()
 	 */
 	@Override
@@ -150,7 +150,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IValue#isAllocated()
 	 */
 	@Override
@@ -160,7 +160,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IValue#getVariables()
 	 */
 	@Override
@@ -170,7 +170,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IValue#hasVariables()
 	 */
 	@Override
@@ -180,7 +180,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IDebugElement#getModelIdentifier()
 	 */
 	@Override
@@ -190,7 +190,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IDebugElement#getDebugTarget()
 	 */
 	@Override
@@ -200,7 +200,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IDebugElement#getLaunch()
 	 */
 	@Override
@@ -210,7 +210,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
 	 */
 	@Override
@@ -220,7 +220,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaObject#getWaitingThreads()
 	 */
 	@Override
@@ -230,7 +230,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaObject#getOwningThread()
 	 */
 	@Override
@@ -240,7 +240,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaObject#getReferringObjects(long)
 	 */
 	@Override
@@ -250,7 +250,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaObject#disableCollection()
 	 */
 	@Override
@@ -260,7 +260,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaObject#enableCollection()
 	 */
 	@Override
@@ -270,7 +270,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaObject#getUniqueId()
 	 */
 	@Override
@@ -280,7 +280,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaValue#isNull()
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/LogicalStructuresMessages.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/LogicalStructuresMessages.java
index 33f02f6..04a948b 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/LogicalStructuresMessages.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/LogicalStructuresMessages.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *  IBM - Initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/ITimeoutListener.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/ITimeoutListener.java
index 840dccf..f7de799 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/ITimeoutListener.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/ITimeoutListener.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -12,7 +12,7 @@
 
 /**
  * A timeout listener is notified when a timer expires.
- * 
+ *
  * @see Timer
  */
 public interface ITimeoutListener {
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIArrayEntryVariable.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIArrayEntryVariable.java
index 7b391ea..b9eb162 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIArrayEntryVariable.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIArrayEntryVariable.java
@@ -51,14 +51,14 @@
 	 * When created for a logical structure we hold onto the original
 	 * non-logical object for purposes of equality. This way a logical
 	 * structure's children remain more stable in the variables view.
-	 * 
+	 *
 	 * This is <code>null</code> when not created for a logical structure.
 	 */
 	private IJavaValue fLogicalParent;
 
 	/**
 	 * Constructs an array entry at the given index in an array.
-	 * 
+	 *
 	 * @param target
 	 *            debug target containing the array entry
 	 * @param array
@@ -192,7 +192,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaVariable#getGenericSignature()
 	 */
 	@Override
@@ -240,7 +240,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see java.lang.Object#equals(java.lang.Object)
 	 */
 	@Override
@@ -262,7 +262,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see java.lang.Object#hashCode()
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIArrayValue.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIArrayValue.java
index ab5f2f9..3e8659a 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIArrayValue.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIArrayValue.java
@@ -33,7 +33,7 @@
 
 	/**
 	 * Constructs a value which is a reference to an array.
-	 * 
+	 *
 	 * @param target
 	 *            debug target on which the array exists
 	 * @param value
@@ -117,7 +117,7 @@
 
 	/**
 	 * Returns the underlying array reference for this array.
-	 * 
+	 *
 	 * @return underlying array reference
 	 */
 	@Override
@@ -128,7 +128,7 @@
 	/**
 	 * Returns the underlying value at the given index from the underlying array
 	 * reference.
-	 * 
+	 *
 	 * @param index
 	 *            the index at which to retrieve a value
 	 * @return value
@@ -158,7 +158,7 @@
 
 	/**
 	 * Returns the underlying values from the underlying array reference.
-	 * 
+	 *
 	 * @return list of values
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -186,7 +186,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IIndexedValue#getSize()
 	 */
 	@Override
@@ -196,7 +196,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IIndexedValue#getVariable(int)
 	 */
 	@Override
@@ -210,7 +210,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IIndexedValue#getVariables(int, int)
 	 */
 	@Override
@@ -234,7 +234,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IIndexedValue#getInitialOffset()
 	 */
 	@Override
@@ -244,7 +244,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IValue#hasVariables()
 	 */
 	@Override
@@ -254,7 +254,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaArray#setValues(int, int,
 	 * org.eclipse.jdt.debug.core.IJavaValue[], int)
 	 */
@@ -262,7 +262,7 @@
 	public void setValues(int offset, int length, IJavaValue[] values,
 			int startOffset) throws DebugException {
 		try {
-			List<Value> list = new ArrayList<Value>(values.length);
+			List<Value> list = new ArrayList<>(values.length);
 			for (IJavaValue value : values) {
 				list.add(((JDIValue) value).getUnderlyingValue());
 			}
@@ -290,7 +290,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaArray#setValues(org.eclipse.jdt.debug
 	 * .core.IJavaValue[])
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIClassObjectValue.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIClassObjectValue.java
index 5b05513..ad92b3b 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIClassObjectValue.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIClassObjectValue.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,7 +18,7 @@
 /**
  * An object on the target VM that is an instance of
  * <code>java.lang.Class</code>.
- * 
+ *
  * @see IJavaClassObject
  */
 public class JDIClassObjectValue extends JDIObjectValue implements
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIClassType.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIClassType.java
index 14f7e96..880653d 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIClassType.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIClassType.java
@@ -43,7 +43,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaClassType#newInstance(java.lang.String,
 	 * org.eclipse.jdt.debug.core.IJavaValue[],
@@ -88,7 +88,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaClassType#sendMessage(java.lang.String,
 	 * java.lang.String, org.eclipse.jdt.debug.core.IJavaValue[],
@@ -132,7 +132,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaClassType#getSuperclass()
 	 */
 	@Override
@@ -156,7 +156,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaClassType#getAllInterfaces()
 	 */
 	@Override
@@ -164,7 +164,7 @@
 		try {
 			List<InterfaceType> interfaceList = ((ClassType) getUnderlyingType())
 					.allInterfaces();
-			List<JDIType> javaInterfaceTypeList = new ArrayList<JDIType>(interfaceList.size());
+			List<JDIType> javaInterfaceTypeList = new ArrayList<>(interfaceList.size());
 			for(InterfaceType interfaceType : interfaceList) {
 				if (interfaceType != null) {
 					javaInterfaceTypeList.add(JDIType.createType(
@@ -187,14 +187,14 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaClassType#getInterfaces()
 	 */
 	@Override
 	public IJavaInterfaceType[] getInterfaces() throws DebugException {
 		try {
 			List<InterfaceType> interfaceList = ((ClassType) getUnderlyingType()).interfaces();
-			List<JDIType> javaInterfaceTypeList = new ArrayList<JDIType>(interfaceList.size());
+			List<JDIType> javaInterfaceTypeList = new ArrayList<>(interfaceList.size());
 			for(InterfaceType interfaceType : interfaceList) {
 				if (interfaceType != null) {
 					javaInterfaceTypeList.add(JDIType.createType(
@@ -217,7 +217,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaClassType#isEnum()
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIDebugElement.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIDebugElement.java
index 3d74718..2d5d5a8 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIDebugElement.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIDebugElement.java
@@ -42,7 +42,7 @@
 
 	/**
 	 * Creates a JDI debug element associated with the specified debug target.
-	 * 
+	 *
 	 * @param target
 	 *            The associated debug target
 	 */
@@ -101,7 +101,7 @@
 	/**
 	 * Queues a debug event with the event dispatcher to be fired as an event
 	 * set when all event processing is complete.
-	 * 
+	 *
 	 * @param event
 	 *            the event to queue
 	 * @param set
@@ -118,7 +118,7 @@
 	/**
 	 * Fires a debug event marking the SUSPEND of this element with the
 	 * associated detail.
-	 * 
+	 *
 	 * @param detail
 	 *            The int detail of the event
 	 * @see org.eclipse.debug.core.DebugEvent
@@ -132,7 +132,7 @@
 	/**
 	 * Queues a debug event marking the SUSPEND of this element with the
 	 * associated detail.
-	 * 
+	 *
 	 * @param detail
 	 *            The int detail of the event
 	 * @param set
@@ -147,7 +147,7 @@
 	/**
 	 * Throws a new debug exception with a status code of
 	 * <code>REQUEST_FAILED</code>.
-	 * 
+	 *
 	 * @param message
 	 *            Failure message
 	 * @param e
@@ -166,7 +166,7 @@
 	 * <code>TARGET_REQUEST_FAILED</code> with the given underlying exception.
 	 * If the underlying exception is not a JDI exception, the original
 	 * exception is thrown.
-	 * 
+	 *
 	 * @param message
 	 *            Failure message
 	 * @param e
@@ -187,7 +187,7 @@
 
 	/**
 	 * Throws a new debug exception with the given status code.
-	 * 
+	 *
 	 * @param message
 	 *            Failure message
 	 * @param e
@@ -205,7 +205,7 @@
 	/**
 	 * Throws a new debug exception with a status code of
 	 * <code>TARGET_REQUEST_FAILED</code>.
-	 * 
+	 *
 	 * @param message
 	 *            Failure message
 	 * @param e
@@ -223,7 +223,7 @@
 	 * Throws a new debug exception with a status code of
 	 * <code>TARGET_REQUEST_FAILED</code> with the given underlying exception.
 	 * The underlying exception is an exception thrown by a JDI request.
-	 * 
+	 *
 	 * @param message
 	 *            Failure message
 	 * @param e
@@ -240,7 +240,7 @@
 	/**
 	 * Throws a new debug exception with a status code of
 	 * <code>NOT_SUPPORTED</code>.
-	 * 
+	 *
 	 * @param message
 	 *            Failure message
 	 * @throws DebugException
@@ -267,7 +267,7 @@
 	/**
 	 * Logs the given exception if it is a JDI exception, otherwise throws the
 	 * runtime exception.
-	 * 
+	 *
 	 * @param e
 	 *            The internal runtime exception
 	 */
@@ -282,7 +282,7 @@
 	/**
 	 * Logs a debug exception with the given message, with a status code of
 	 * <code>INTERNAL_ERROR</code>.
-	 * 
+	 *
 	 * @param message
 	 *            The internal error message
 	 */
@@ -294,7 +294,7 @@
 
 	/**
 	 * Returns the common "&lt;unknown&gt;" message.
-	 * 
+	 *
 	 * @return the unknown String
 	 */
 	protected String getUnknownMessage() {
@@ -303,7 +303,7 @@
 
 	/**
 	 * Returns this elements debug target as its implementation class.
-	 * 
+	 *
 	 * @return Java debug target
 	 */
 	public JDIDebugTarget getJavaDebugTarget() {
@@ -313,7 +313,7 @@
 	/**
 	 * Returns the target VM associated with this element, or <code>null</code>
 	 * if none.
-	 * 
+	 *
 	 * @return target VM or <code>null</code> if none
 	 */
 	protected VirtualMachine getVM() {
@@ -323,7 +323,7 @@
 	/**
 	 * Returns the underlying VM's event request manager, or <code>null</code>
 	 * if none (disconnected/terminated)
-	 * 
+	 *
 	 * @return event request manager or <code>null</code>
 	 */
 	public EventRequestManager getEventRequestManager() {
@@ -338,7 +338,7 @@
 	 * Adds the given listener to this target's event dispatcher's table of
 	 * listeners for the specified event request. The listener will be notified
 	 * each time the event occurs.
-	 * 
+	 *
 	 * @param listener
 	 *            the listener to register
 	 * @param request
@@ -358,7 +358,7 @@
 	 * listeners for the specifed event request. The listener will no longer be
 	 * notified when the event occurs. Listeners are responsible for deleting
 	 * the event request if desired.
-	 * 
+	 *
 	 * @param listener
 	 *            the listener to remove
 	 * @param request
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIDebugTarget.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIDebugTarget.java
index 0d146d8..519f877 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIDebugTarget.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIDebugTarget.java
@@ -353,7 +353,7 @@
 		prepareBreakpointsSearchScope();
 		setBreakpoints(new ArrayList<IBreakpoint>(5));
 		setThreadList(new ArrayList<JDIThread>(5));
-		fGroups = new ArrayList<JDIThreadGroup>(5);
+		fGroups = new ArrayList<>(5);
 		setOutOfSynchTypes(new ArrayList<String>(0));
 		setHCROccurred(false);
 		initialize();
@@ -439,7 +439,7 @@
 		List<JDIThread> threadList;
 		synchronized (fThreads) {
 			//TODO investigate making fThreads be a synchronized collection, to remove all this copying
-			threadList = new ArrayList<JDIThread>(fThreads);
+			threadList = new ArrayList<>(fThreads);
 		}
 		return threadList.iterator();
 	}
@@ -927,7 +927,7 @@
 	 * Sets the list of out of synch types to the given list.
 	 */
 	private void setOutOfSynchTypes(List<String> qualifiedNames) {
-		fOutOfSynchTypes = new HashSet<String>();
+		fOutOfSynchTypes = new HashSet<>();
 		fOutOfSynchTypes.addAll(qualifiedNames);
 	}
 
@@ -1392,7 +1392,7 @@
 		if(projects == null){
 			return true;
 		}
-		
+
 		// Breakpoint from project known by the resource mapping
 		if (projects.contains(resource.getProject())) {
 			return true;
@@ -1905,7 +1905,7 @@
 	 * cleared.
 	 */
 	protected void removeAllBreakpoints() {
-		List<IBreakpoint> list = new ArrayList<IBreakpoint>(getBreakpoints());
+		List<IBreakpoint> list = new ArrayList<>(getBreakpoints());
 		for(IBreakpoint bp : list) {
 			JavaBreakpoint breakpoint = (JavaBreakpoint) bp;
 			try {
@@ -1922,7 +1922,7 @@
 	 * target.
 	 */
 	protected void reinstallAllBreakpoints() {
-		List<IBreakpoint> list = new ArrayList<IBreakpoint>(getBreakpoints());
+		List<IBreakpoint> list = new ArrayList<>(getBreakpoints());
 		for(IBreakpoint bp : list) {
 			JavaBreakpoint breakpoint = (JavaBreakpoint) bp;
 			try {
@@ -2788,7 +2788,7 @@
 	 */
 	public IAstEvaluationEngine getEvaluationEngine(IJavaProject project) {
 		if (fEngines == null) {
-			fEngines = new HashMap<IJavaProject, IAstEvaluationEngine>(2);
+			fEngines = new HashMap<>(2);
 		}
 		IAstEvaluationEngine engine = fEngines
 				.get(project);
@@ -2901,7 +2901,7 @@
 		if (!isAvailable()) {
 			return;
 		}
-		List<IBreakpoint> list = new ArrayList<IBreakpoint>(getBreakpoints());
+		List<IBreakpoint> list = new ArrayList<>(getBreakpoints());
 		for(IBreakpoint bp : list) {
 			JavaBreakpoint breakpoint = (JavaBreakpoint) bp;
 			try {
@@ -3000,7 +3000,7 @@
 				return new IJavaThreadGroup[0];
 			}
 			List<ThreadGroupReference> groups = vm.topLevelThreadGroups();
-			List<JDIThreadGroup> modelGroups = new ArrayList<JDIThreadGroup>(groups.size());
+			List<JDIThreadGroup> modelGroups = new ArrayList<>(groups.size());
 			for(ThreadGroupReference ref : groups) {
 				JDIThreadGroup group = findThreadGroup(ref);
 				if (group != null) {
@@ -3163,9 +3163,9 @@
 		}
 		boolean prevSuspend = isSuspended();
 		int running = 0;
-		List<JDIThread> toSuspend = new ArrayList<JDIThread>();
-		List<JDIThread> toResume = new ArrayList<JDIThread>();
-		List<JDIThread> toRefresh = new ArrayList<JDIThread>();
+		List<JDIThread> toSuspend = new ArrayList<>();
+		List<JDIThread> toResume = new ArrayList<>();
+		List<JDIThread> toRefresh = new ArrayList<>();
 		Iterator<JDIThread> iterator = getThreadIterator();
 		while (iterator.hasNext()) {
 			JDIThread thread = iterator.next();
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIFieldVariable.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIFieldVariable.java
index 054f11c..1880eb8 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIFieldVariable.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIFieldVariable.java
@@ -54,7 +54,7 @@
 	 * When created for a logical structure we hold onto the original
 	 * non-logical value for purposes of equality. This way a logical
 	 * structure's children remain more stable in the variables view.
-	 * 
+	 *
 	 * This is <code>null</code> when not created for a logical structure.
 	 */
 	private IJavaValue fLogicalParent;
@@ -263,7 +263,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaVariable#getGenericSignature()
 	 */
 	@Override
@@ -371,7 +371,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaFieldVariable#getObject()
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIInterfaceType.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIInterfaceType.java
index 1da333f..5e5cdcf 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIInterfaceType.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIInterfaceType.java
@@ -43,7 +43,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaInterfaceType#getImplementors()
 	 */
 	@Override
@@ -51,7 +51,7 @@
 		try {
 			List<ClassType> implementorList = ((InterfaceType) getUnderlyingType())
 					.implementors();
-			List<JDIType> javaClassTypeList = new ArrayList<JDIType>(implementorList.size());
+			List<JDIType> javaClassTypeList = new ArrayList<>(implementorList.size());
 			Iterator<ClassType> iterator = implementorList.iterator();
 			while (iterator.hasNext()) {
 				ClassType classType = iterator.next();
@@ -76,7 +76,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaInterfaceType#getSubInterfaces()
 	 */
 	@Override
@@ -84,7 +84,7 @@
 		try {
 			List<InterfaceType> subList = ((InterfaceType) getUnderlyingType())
 					.subinterfaces();
-			List<JDIType> javaInterfaceTypeList = new ArrayList<JDIType>(subList.size());
+			List<JDIType> javaInterfaceTypeList = new ArrayList<>(subList.size());
 			Iterator<InterfaceType> iterator = subList.iterator();
 			while (iterator.hasNext()) {
 				InterfaceType interfaceType = iterator.next();
@@ -109,7 +109,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaInterfaceType#getSuperInterfaces()
 	 */
 	@Override
@@ -117,7 +117,7 @@
 		try {
 			List<InterfaceType> superList = ((InterfaceType) getUnderlyingType())
 					.superinterfaces();
-			List<JDIType> javaInterfaceTypeList = new ArrayList<JDIType>(superList.size());
+			List<JDIType> javaInterfaceTypeList = new ArrayList<>(superList.size());
 			Iterator<InterfaceType> iterator = superList.iterator();
 			while (iterator.hasNext()) {
 				InterfaceType interfaceType = iterator.next();
@@ -142,7 +142,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaInterfaceType#sendMessage(java.lang.String,
 	 * java.lang.String, org.eclipse.jdt.debug.core.IJavaValue[],
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDILocalVariable.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDILocalVariable.java
index c41c798..84a4475 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDILocalVariable.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDILocalVariable.java
@@ -162,7 +162,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaVariable#getGenericSignature()
 	 */
 	@Override
@@ -232,7 +232,7 @@
 	}
 
 	/**
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaVariable#isLocal()
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIMethod.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIMethod.java
index 9686300..78cd97f 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIMethod.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIMethod.java
@@ -16,9 +16,9 @@
 
 /**
  * Class for analysing Java methods while debugging.
- * 
+ *
  * @author jmoeller2
- * 
+ *
  */
 public class JDIMethod {
 
@@ -45,7 +45,7 @@
 	/**
 	 * Determines if the opcode passes in is one of the value return
 	 * instructions.
-	 * 
+	 *
 	 * @param opCode
 	 *            opCode to check
 	 * @return If <code>opCode</code> is one of 'areturn', 'ireturn', etc.
@@ -58,7 +58,7 @@
 
 	/**
 	 * Determines if the opcode passes in is one of the 'loado_1' instruxtions.
-	 * 
+	 *
 	 * @param opCode
 	 *            opCode to check
 	 * @return If <code>opCode</code> is one of 'aload_1', 'iload_1', etc.
@@ -71,12 +71,12 @@
 
 	/**
 	 * Determines if the method in question is a simple getter, JavaBean style.
-	 * 
+	 *
 	 * Simple getters have byte code which look like this, and they start with
 	 * "get" or "is":
-	 * 
+	 *
 	 * 0 aload_0 1 getfield 4 Xreturn
-	 * 
+	 *
 	 * @param method
 	 *            Method to check
 	 * @return true if the method is a simple getter
@@ -94,12 +94,12 @@
 
 	/**
 	 * Determines if the method in question is a simple getter, JavaBean style.
-	 * 
+	 *
 	 * Simple setters have byte code which look like this, and they start with
 	 * "set":
-	 * 
+	 *
 	 * 0 aload_0 1 Xload_1 2 putfield 5 return
-	 * 
+	 *
 	 * @param method
 	 *            Method to check
 	 * @return true if the method is a simple setter
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIModificationVariable.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIModificationVariable.java
index 2e1f2e9..13fa3f3 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIModificationVariable.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIModificationVariable.java
@@ -31,7 +31,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.debug.core.model.IValueModification#supportsValueModification
 	 * ()
@@ -43,7 +43,7 @@
 
 	/**
 	 * Returns a value generated by the vm from the given expression
-	 * 
+	 *
 	 * @param expression
 	 *            the expression to produce a value from
 	 * @return generated value, <code>null</code> is a valid value
@@ -155,7 +155,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.debug.core.model.IValueModification#verifyValue(java.lang
 	 * .String)
@@ -169,7 +169,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.debug.core.model.IValueModification#verifyValue(org.eclipse
 	 * .debug.core.model.IValue)
@@ -191,7 +191,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.debug.core.model.IValueModification#setValue(java.lang.String
 	 * )
@@ -204,7 +204,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.core.model.JDIVariable#setValue(org.eclipse
 	 * .debug.core.model.IValue)
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDINullValue.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDINullValue.java
index 8e064ff..198e5af 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDINullValue.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDINullValue.java
@@ -32,7 +32,7 @@
 
 	/**
 	 * Constructor
-	 * 
+	 *
 	 * @param target
 	 */
 	public JDINullValue(JDIDebugTarget target) {
@@ -179,7 +179,7 @@
 
 	/**
 	 * Creates an artificial NPE for display to the user as an error message
-	 * 
+	 *
 	 * @param selector
 	 * @param signature
 	 * @return
@@ -207,7 +207,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.core.model.JDIObjectValue#disableCollection
 	 * ()
@@ -219,7 +219,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.core.model.JDIObjectValue#enableCollection
 	 * ()
@@ -231,7 +231,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.internal.debug.core.model.JDIValue#isNull()
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIObjectValue.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIObjectValue.java
index 7eba9fb..710de87 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIObjectValue.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIObjectValue.java
@@ -58,7 +58,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaObject#sendMessage(java.lang.String,
 	 * java.lang.String, org.eclipse.jdt.debug.core.IJavaValue[],
 	 * org.eclipse.jdt.debug.core.IJavaThread, boolean)
@@ -72,7 +72,7 @@
 		if (args == null) {
 			arguments = Collections.EMPTY_LIST;
 		} else {
-			arguments = new ArrayList<Value>(args.length);
+			arguments = new ArrayList<>(args.length);
 			for (IJavaValue arg : args) {
 				arguments.add(((JDIValue) arg).getUnderlyingValue());
 			}
@@ -104,7 +104,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaObject#sendMessage(java.lang.String,
 	 * java.lang.String, org.eclipse.jdt.debug.core.IJavaValue[],
 	 * org.eclipse.jdt.debug.core.IJavaThread, java.lang.String)
@@ -118,7 +118,7 @@
 		if (args == null) {
 			arguments = Collections.EMPTY_LIST;
 		} else {
-			arguments = new ArrayList<Value>(args.length);
+			arguments = new ArrayList<>(args.length);
 			for (IJavaValue arg : args) {
 				arguments.add(((JDIValue) arg).getUnderlyingValue());
 			}
@@ -168,7 +168,7 @@
 			if (m != null) {
 				return m;
 			}
-			
+
 			for (InterfaceType iface : ((ClassType) refType).allInterfaces()) {
 				List<Method> matches = iface.methodsByName(selector, signature);
 				for (Method ifaceMethod : matches) {
@@ -202,7 +202,7 @@
 
 	/**
 	 * Returns this object's the underlying object reference
-	 * 
+	 *
 	 * @return underlying object reference
 	 */
 	public ObjectReference getUnderlyingObject() {
@@ -211,7 +211,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaObject#getField(java.lang.String,
 	 * boolean)
 	 */
@@ -257,7 +257,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaObject#getField(java.lang.String,
 	 * java.lang.String)
 	 */
@@ -296,7 +296,7 @@
 	 * Returns a variable representing the field in this object with the given
 	 * name, or <code>null</code> if there is no field with the given name, or
 	 * the name is ambiguous.
-	 * 
+	 *
 	 * @param name
 	 *            field name
 	 * @param superClassLevel
@@ -335,7 +335,7 @@
 
 	/**
 	 * Returns the underlying reference type for this object.
-	 * 
+	 *
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
 	 *                <ul>
@@ -398,12 +398,12 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaObject#getWaitingThreads()
 	 */
 	@Override
 	public IJavaThread[] getWaitingThreads() throws DebugException {
-		List<JDIThread> waiting = new ArrayList<JDIThread>();
+		List<JDIThread> waiting = new ArrayList<>();
 		try {
 			List<ThreadReference> threads = getUnderlyingObject().waitingThreads();
 			JDIDebugTarget debugTarget = (JDIDebugTarget) getDebugTarget();
@@ -425,7 +425,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaObject#getOwningThread()
 	 */
 	@Override
@@ -449,7 +449,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.core.model.JDIValue#getReferenceTypeName()
 	 */
@@ -471,7 +471,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaObject#getUniqueId()
 	 */
 	@Override
@@ -480,7 +480,7 @@
 			ObjectReference underlyingObject = getUnderlyingObject();
 			if (underlyingObject != null) {
 				return underlyingObject.uniqueID();
-			} 
+			}
 			return -1L;
 		} catch (RuntimeException e) {
 			targetRequestFailed(
@@ -495,7 +495,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaObject#getReferringObjects(long)
 	 */
 	@Override
@@ -517,7 +517,7 @@
 	 * Returns true if references to this object have been calculated and
 	 * cached. This method will return true even if the cached references are
 	 * stale.
-	 * 
+	 *
 	 * @return true is references to this object have been calculated and
 	 *         cached, false otherwise
 	 */
@@ -528,7 +528,7 @@
 	/**
 	 * Gets the list of objects that reference this object from the VM,
 	 * overwriting the cached list (if one exists).
-	 * 
+	 *
 	 * @param max
 	 *            The maximum number of entries to return
 	 * @throws DebugException
@@ -553,7 +553,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaObject#disableCollection()
 	 */
 	@Override
@@ -574,7 +574,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaObject#enableCollection()
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIPlaceholderValue.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIPlaceholderValue.java
index 702545d..3929c9b 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIPlaceholderValue.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIPlaceholderValue.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -15,7 +15,7 @@
  * to the user. Currently used to inform users that references are not available
  * for the current VM. It extends <code>JDINullValue</code> so that most actions
  * will ignore it, but returns the message instead of "null" for it's value.
- * 
+ *
  * @since 3.3
  */
 public class JDIPlaceholderValue extends JDINullValue {
@@ -24,7 +24,7 @@
 
 	/**
 	 * Constructor, passes the debug target to the super class.
-	 * 
+	 *
 	 * @param target
 	 *            debug target this value belongs to
 	 */
@@ -54,7 +54,7 @@
 	/**
 	 * Returns signature for a java string object so that the string message
 	 * passed in the constructor is displayed in the detail pane.
-	 * 
+	 *
 	 * @return signature for a java string object
 	 * @see org.eclipse.jdt.internal.debug.core.model.JDINullValue#getSignature()
 	 */
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIPrimitiveValue.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIPrimitiveValue.java
index 6a58429..4fa7a29 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIPrimitiveValue.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIPrimitiveValue.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -22,7 +22,7 @@
 
 	/**
 	 * Constructs a new primitive value.
-	 * 
+	 *
 	 * @param target
 	 *            the Java debug target
 	 * @param value
@@ -34,7 +34,7 @@
 
 	/**
 	 * Returns this value's underlying primtive value
-	 * 
+	 *
 	 * @return underlying primtive value
 	 */
 	protected PrimitiveValue getUnderlyingPrimitiveValue() {
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIReferenceListEntryVariable.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIReferenceListEntryVariable.java
index e7dca31..99d7254 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIReferenceListEntryVariable.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIReferenceListEntryVariable.java
@@ -16,7 +16,7 @@
 /**
  * This variable is created as the child of <code>JDIReferenceListValue</code>.
  * It represents one reference to a root object stored in the parent value.
- * 
+ *
  * @see JDIReferenceListValue
  * @since 3.3
  */
@@ -24,7 +24,7 @@
 
 	/**
 	 * Constructor.
-	 * 
+	 *
 	 * @param name
 	 *            The name that this variable should use as its label
 	 * @param reference
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIReferenceListValue.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIReferenceListValue.java
index 7b2bd4c..06de5b5 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIReferenceListValue.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIReferenceListValue.java
@@ -31,7 +31,7 @@
  * <code>JDIReferenceListVariable</code>. The children of this value will be
  * <code>JDIReferenceListEntryVariable</code>, each representing one reference
  * to the root object.
- * 
+ *
  * @see JDIReferenceListVariable
  * @see JDIReferenceListEntryVariable
  * @since 3.3
@@ -45,7 +45,7 @@
 
 	/**
 	 * Constructor, initializes this value with its debug target and root object
-	 * 
+	 *
 	 * @param target
 	 *            The debug target associated with this value
 	 * @param root
@@ -107,7 +107,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.internal.debug.core.model.JDIValue#getVariables()
 	 */
 	@Override
@@ -132,7 +132,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.core.model.JDIObjectValue#getUnderlyingObject
 	 * ()
@@ -144,7 +144,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.internal.debug.core.model.JDIValue#hasVariables()
 	 */
 	@Override
@@ -157,7 +157,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.internal.debug.core.model.JDIValue#isAllocated()
 	 */
 	@Override
@@ -167,7 +167,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.internal.debug.core.model.JDIValue#getJavaType()
 	 */
 	@Override
@@ -177,7 +177,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.internal.debug.core.model.JDIValue#getSignature()
 	 */
 	@Override
@@ -187,7 +187,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.core.model.JDIObjectValue#getReferenceTypeName
 	 * ()
@@ -199,7 +199,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.internal.debug.core.model.JDIValue#getValueString()
 	 */
 	@Override
@@ -210,7 +210,7 @@
 	/**
 	 * Returns a string representation of this value intended to be displayed in
 	 * the detail pane of views. Lists the references on separate lines.
-	 * 
+	 *
 	 * @return a string representation of this value to display in the detail
 	 *         pane
 	 */
@@ -246,7 +246,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.internal.debug.core.model.JDIValue#toString()
 	 */
 	@Override
@@ -258,7 +258,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.core.model.JDIValue#equals(java.lang.Object
 	 * )
@@ -276,7 +276,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.internal.debug.core.model.JDIValue#hashCode()
 	 */
 	@Override
@@ -286,7 +286,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IIndexedValue#getInitialOffset()
 	 */
 	@Override
@@ -296,7 +296,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IIndexedValue#getSize()
 	 */
 	@Override
@@ -306,7 +306,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IIndexedValue#getVariable(int)
 	 */
 	@Override
@@ -321,7 +321,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IIndexedValue#getVariables(int, int)
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIReferenceListVariable.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIReferenceListVariable.java
index 45a7829..2c7a1b3 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIReferenceListVariable.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIReferenceListVariable.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,7 +18,7 @@
  * information collected from the vm using the 'all references' utility in Java
  * 6.0. This variable uses a <code>JDIReferenceListValue</code> as its value.
  * Its children will be <code>JDIReferenceListEntryVariable</code>.
- * 
+ *
  * @since 3.3
  * @see JDIReferenceListValue
  * @see JDIReferenceListEntryVariable
@@ -28,7 +28,7 @@
 	/**
 	 * Creates a new variable that stores a list of references, all referring to
 	 * the java object specified by the parameter root.
-	 * 
+	 *
 	 * @param name
 	 *            The name this variable should use
 	 * @param root
@@ -40,7 +40,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.core.logicalstructures.JDIPlaceholderVariable
 	 * #equals(java.lang.Object)
@@ -62,7 +62,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.core.logicalstructures.JDIPlaceholderVariable
 	 * #hashCode()
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIReferenceType.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIReferenceType.java
index d836a16..6dc2a16 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIReferenceType.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIReferenceType.java
@@ -50,7 +50,7 @@
 
 	/**
 	 * Constructs a new reference type in the given target.
-	 * 
+	 *
 	 * @param target
 	 *            associated VM
 	 * @param type
@@ -62,7 +62,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaReferenceType#getAvailableStrata()
 	 */
 	@Override
@@ -73,7 +73,7 @@
 
 	/**
 	 * Returns the underlying reference type.
-	 * 
+	 *
 	 * @return the underlying reference type
 	 */
 	protected ReferenceType getReferenceType() {
@@ -82,7 +82,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaReferenceType#getDefaultStratum()
 	 */
 	@Override
@@ -98,7 +98,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaReferenceType#getField(java.lang.String)
 	 */
@@ -122,7 +122,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaReferenceType#getClassObject()
 	 */
 	@Override
@@ -144,7 +144,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaReferenceType#getAllFieldNames()
 	 */
 	@Override
@@ -169,7 +169,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaReferenceType#getDeclaredFieldNames()
 	 */
@@ -195,7 +195,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaReferenceType#getSourcePaths(java.lang
 	 * .String)
@@ -216,7 +216,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaReferenceType#getSourceName()
 	 */
 	@Override
@@ -233,7 +233,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaReferenceType#getSourceNames(java.lang
 	 * .String)
@@ -254,7 +254,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaReferenceType#getClassLoaderObject()
 	 */
 	@Override
@@ -310,7 +310,7 @@
 
 	/**
 	 * Return the name from the given signature. Keep the '$' characters.
-	 * 
+	 *
 	 * @param genericTypeSignature
 	 *            the signature to derive the type name from
 	 * @return the type name
@@ -349,7 +349,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaReferenceType#getGenericSignature()
 	 */
 	@Override
@@ -359,7 +359,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaReferenceType#getInstances(long)
 	 */
 	@Override
@@ -380,7 +380,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaReferenceType#getInstanceCount()
 	 */
 	@Override
@@ -389,7 +389,7 @@
 		if (target.supportsInstanceRetrieval()) {
 			Type type = getUnderlyingType();
 			if(type instanceof ReferenceType) {
-				ArrayList<ReferenceType> list = new ArrayList<ReferenceType>(2);
+				ArrayList<ReferenceType> list = new ArrayList<>(2);
 				list.add((ReferenceType) type);
 				VirtualMachine vm = getVM();
 				try {
@@ -405,7 +405,7 @@
 
 	/**
 	 * Utility method to convert argument array to an argument list.
-	 * 
+	 *
 	 * @param args
 	 *            array of arguments, as <code>IJavaValue</code>s, possibly
 	 *            <code>null</code> or empty
@@ -416,7 +416,7 @@
 		if (args == null) {
 			arguments = Collections.EMPTY_LIST;
 		} else {
-			arguments = new ArrayList<Value>(args.length);
+			arguments = new ArrayList<>(args.length);
 			for (IJavaValue arg : args) {
 				arguments.add(((JDIValue) arg).getUnderlyingValue());
 			}
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIStackFrame.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIStackFrame.java
index a6b8275..73235e0 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIStackFrame.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIStackFrame.java
@@ -7,7 +7,7 @@
  *
  * Contributors:
  *     IBM Corporation - initial API and implementation
- *     Samrat Dhillon samrat.dhillon@gmail.com - Bug 384458 - debug shows value of variable in another scope 
+ *     Samrat Dhillon samrat.dhillon@gmail.com - Bug 384458 - debug shows value of variable in another scope
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.core.model;
 
@@ -130,7 +130,7 @@
 
 	/**
 	 * Creates a new stack frame in the given thread.
-	 * 
+	 *
 	 * @param thread
 	 *            The parent JDI thread
 	 * @param frame
@@ -149,7 +149,7 @@
 	 * returns a new frame representing the given frame. A frame can only be
 	 * re-bound to an underlying frame if it refers to the same depth on the
 	 * stack in the same method.
-	 * 
+	 *
 	 * @param frame
 	 *            underlying frame, or <code>null</code>
 	 * @param depth
@@ -308,7 +308,7 @@
 				}
 
 				Method method = getUnderlyingMethod();
-				fVariables = new ArrayList<IJavaVariable>();
+				fVariables = new ArrayList<>();
 				// #isStatic() does not claim to throw any exceptions - so it is
 				// not try/catch coded
 				if (method.isStatic()) {
@@ -430,7 +430,7 @@
 			// generic signature
 			String[] parameterTypes = Signature
 					.getParameterTypes(genericSignature);
-			List<String> argumentTypeNames = new ArrayList<String>();
+			List<String> argumentTypeNames = new ArrayList<>();
 			for (String parameterType : parameterTypes) {
 				argumentTypeNames.add(Signature.toString(parameterType)
 						.replace('/', '.'));
@@ -548,7 +548,7 @@
 
 	/**
 	 * Incrementally updates this stack frames variables.
-	 * 
+	 *
 	 * @see JDIDebugElement#targetRequestFailed(String, RuntimeException)
 	 */
 	protected void updateVariables() throws DebugException {
@@ -762,7 +762,7 @@
 			return null;
 		}
 		IVariable[] variables = getVariables();
-		List<IJavaVariable> possibleMatches = new ArrayList<IJavaVariable>();
+		List<IJavaVariable> possibleMatches = new ArrayList<>();
 		IJavaVariable thisVariable = null;
 		for (IVariable variable : variables) {
 			IJavaVariable var = (IJavaVariable) variable;
@@ -799,7 +799,7 @@
 	/**
 	 * Retrieves visible variables in this stack frame handling any exceptions.
 	 * Returns an empty list if there are no variables.
-	 * 
+	 *
 	 * @see JDIDebugElement#targetRequestFailed(String, RuntimeException)
 	 */
 	protected List<LocalVariable> getUnderlyingVisibleVariables() throws DebugException {
@@ -824,7 +824,7 @@
 	/**
 	 * Retrieves 'this' from the underlying stack frame. Returns
 	 * <code>null</code> for static stack frames.
-	 * 
+	 *
 	 * @see JDIDebugElement#targetRequestFailed(String, RuntimeException)
 	 */
 	protected ObjectReference getUnderlyingThisObject() throws DebugException {
@@ -1167,7 +1167,7 @@
 
 	/**
 	 * Returns this stack frame's underlying JDI frame.
-	 * 
+	 *
 	 * @exception DebugException
 	 *                if this stack frame does not currently have an underlying
 	 *                frame (is in an interim state where this frame's thread
@@ -1206,7 +1206,7 @@
 	/**
 	 * Sets the underlying JDI StackFrame. Called by a thread when incrementally
 	 * updating after a step has completed.
-	 * 
+	 *
 	 * @param frame
 	 *            The underlying stack frame
 	 */
@@ -1258,7 +1258,7 @@
 
 	/**
 	 * Java stack frames do not support registers
-	 * 
+	 *
 	 * @see IStackFrame#getRegisterGroups()
 	 */
 	@Override
@@ -1290,7 +1290,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaStackFrame#getReferenceType()
 	 */
 	@Override
@@ -1311,7 +1311,7 @@
 
 	/**
 	 * Expression level stepping not supported.
-	 * 
+	 *
 	 * @see IStackFrame#getCharEnd()
 	 */
 	@Override
@@ -1321,7 +1321,7 @@
 
 	/**
 	 * Expression level stepping not supported.
-	 * 
+	 *
 	 * @see IStackFrame#getCharStart()
 	 */
 	@Override
@@ -1349,7 +1349,7 @@
 	/**
 	 * Sets whether locals were available. If the setting is not the same as the
 	 * current value, a change event is fired such that a UI client can update.
-	 * 
+	 *
 	 * @param available
 	 *            whether local variable information is available for this stack
 	 *            frame.
@@ -1481,7 +1481,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaStackFrame#isVarargs()
 	 */
 	@Override
@@ -1491,7 +1491,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaStackFrame#canForceReturn()
 	 */
 	@Override
@@ -1518,7 +1518,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaStackFrame#forceReturn(org.eclipse.jdt
 	 * .debug.core.IJavaValue)
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIThisVariable.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIThisVariable.java
index fc78a77..f4d951e 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIThisVariable.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIThisVariable.java
@@ -74,7 +74,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaVariable#getGenericSignature()
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIThread.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIThread.java
index ea1d2fd..b8de172 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIThread.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIThread.java
@@ -166,7 +166,7 @@
 
 	/**
 	 * Whether this thread is a daemon thread
-	 * 
+	 *
 	 * @since 3.3
 	 */
 	private boolean fIsDaemon = false;
@@ -176,7 +176,7 @@
 	 * collection if the thread is not suspended or was not suspended by any
 	 * breakpoint(s).
 	 */
-	private List<IBreakpoint> fCurrentBreakpoints = new ArrayList<IBreakpoint>(2);
+	private List<IBreakpoint> fCurrentBreakpoints = new ArrayList<>(2);
 	/**
 	 * Non-null when this thread is executing an evaluation runnable. An
 	 * evaluation may involve a series of method invocations.
@@ -220,7 +220,7 @@
 	/**
 	 * Whether a suspend vote is currently in progress. While voting this thread
 	 * does not allow other breakpoints to be hit.
-	 * 
+	 *
 	 * @since 3.5
 	 */
 	private boolean fSuspendVoteInProgress = false;
@@ -297,7 +297,7 @@
 	/**
 	 * Creates a new thread on the underlying thread reference in the given
 	 * debug target.
-	 * 
+	 *
 	 * @param target
 	 *            the debug target in which this thread is contained
 	 * @param thread
@@ -321,13 +321,13 @@
 	 * <li>Determines suspended state from underlying thread</li>
 	 * <li>Sets this threads stack frames to an empty collection</li>
 	 * </ul>
-	 * 
+	 *
 	 * @exception ObjectCollectedException
 	 *                if the thread has been garbage collected and cannot be
 	 *                initialized
 	 */
 	protected void initialize() throws ObjectCollectedException {
-		fStackFrames = new ArrayList<IJavaStackFrame>();
+		fStackFrames = new ArrayList<>();
 		// system thread
 		try {
 			determineIfSystemThread();
@@ -407,7 +407,7 @@
 	/**
 	 * Adds the given breakpoint to the list of breakpoints this thread is
 	 * suspended at
-	 * 
+	 *
 	 * @param bp
 	 *            the breakpoint to add to the listing
 	 */
@@ -419,7 +419,7 @@
 	 * Removes the given breakpoint from the list of breakpoints this thread is
 	 * suspended at (called when a breakpoint is deleted, in case we are
 	 * suspended at that breakpoint)
-	 * 
+	 *
 	 * @param bp
 	 *            the breakpoint to remove from the listing
 	 */
@@ -429,7 +429,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IThread#getBreakpoints()
 	 */
 	@Override
@@ -440,7 +440,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.ISuspendResume#canResume()
 	 */
 	@Override
@@ -453,7 +453,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.ISuspendResume#canSuspend()
 	 */
 	@Override
@@ -465,7 +465,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.ITerminate#canTerminate()
 	 */
 	@Override
@@ -475,7 +475,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IStep#canStepInto()
 	 */
 	@Override
@@ -485,7 +485,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IStep#canStepOver()
 	 */
 	@Override
@@ -495,7 +495,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IStep#canStepReturn()
 	 */
 	@Override
@@ -505,7 +505,7 @@
 
 	/**
 	 * Returns whether this thread is in a valid state to step.
-	 * 
+	 *
 	 * @return whether this thread is in a valid state to step
 	 */
 	protected boolean canStep() {
@@ -522,7 +522,7 @@
 
 	/**
 	 * Determines and sets whether this thread represents a system thread.
-	 * 
+	 *
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
 	 *                <ul>
@@ -561,7 +561,7 @@
 
 	/**
 	 * Determines whether this is a daemon thread.
-	 * 
+	 *
 	 * @throws DebugException
 	 *             on failure
 	 */
@@ -592,7 +592,7 @@
 
 	/**
 	 * NOTE: this method returns a copy of this thread's stack frames.
-	 * 
+	 *
 	 * @see IThread#getStackFrames()
 	 */
 	@Override
@@ -603,7 +603,7 @@
 
 	/**
 	 * @see #computeStackFrames()
-	 * 
+	 *
 	 * @param refreshChildren
 	 *            whether or not this method should request new stack frames
 	 *            from the VM
@@ -683,7 +683,7 @@
 	 * Stack frames are cached until a subsequent call to preserve or dispose
 	 * stack frames.
 	 * </p>
-	 * 
+	 *
 	 * @return list of <code>IJavaStackFrame</code>
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -702,7 +702,7 @@
 	 * new stack frames from the VM. As this is an expensive operation, this
 	 * method should only be used by clients who know for certain that the stack
 	 * frames on the VM have changed.
-	 * 
+	 *
 	 * @see JDIThread#computeStackFrames()
 	 * @return the listing of stackframes or an empty list, never
 	 *         <code>null</code>
@@ -746,7 +746,7 @@
 
 	/**
 	 * Returns the number of frames on the stack from the underlying thread.
-	 * 
+	 *
 	 * @return number of frames on the stack
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -779,7 +779,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaThread#runEvaluation(org.eclipse.jdt.
 	 * debug.core.IEvaluationRunnable,
@@ -868,7 +868,7 @@
 
 	/**
 	 * Returns whether this thread is in a valid state to run an evaluation.
-	 * 
+	 *
 	 * @return whether this thread is in a valid state to run an evaluation
 	 */
 	protected boolean canRunEvaluation() {
@@ -887,7 +887,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaThread#queueRunnable(java.lang.Runnable)
 	 */
@@ -901,7 +901,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaThread#terminateEvaluation()
 	 */
 	@Override
@@ -916,7 +916,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaThread#canTerminateEvaluation()
 	 */
 	@Override
@@ -951,11 +951,11 @@
 	 * </p>
 	 * <p>
 	 * When performing an invocation, the communication timeout with
-	 * the target VM is set to infinite, as the invocation may not 
+	 * the target VM is set to infinite, as the invocation may not
 	 * complete in a timely fashion, if at all. The timeout value
 	 * is reset to its original value when the invocation completes.
 	 * </p>
-	 * 
+	 *
 	 * @param receiverClass
 	 *            the class in the target representing the receiver of a static
 	 *            message send, or <code>null</code>
@@ -1069,11 +1069,11 @@
 	 * </p>
 	 * <p>
 	 * When performing an invocation, the communication timeout with
-	 * the target VM is set to infinite, as the invocation may not 
+	 * the target VM is set to infinite, as the invocation may not
 	 * complete in a timely fashion, if at all. The timeout value
 	 * is reset to its original value when the invocation completes.
 	 * </p>
-	 * 
+	 *
 	 * @param receiverInterface
 	 *            the class in the target representing the receiver of a static
 	 *            message send, or <code>null</code>
@@ -1168,7 +1168,7 @@
 	 * fashion, if at all. The timeout value is reset to its original value when
 	 * the invocation completes.
 	 * </p>
-	 * 
+	 *
 	 * @param receiverClass
 	 *            the class in the target representing the receiver of the 'new'
 	 *            message send
@@ -1222,7 +1222,7 @@
 	/**
 	 * Called when an invocation fails. Performs cleanup and throws an
 	 * exception.
-	 * 
+	 *
 	 * @param e
 	 *            the exception that caused the failure
 	 * @param restoreTimeout
@@ -1248,7 +1248,7 @@
 	/**
 	 * Called when an invocation fails. Performs cleanup and throws an
 	 * exception.
-	 * 
+	 *
 	 * @param message
 	 *            error message
 	 * @param code
@@ -1281,7 +1281,7 @@
 	 * <li>Restores the communication timeout value</li>
 	 * <li>Computes the new set of stack frames for this thread</code>
 	 * </ul>
-	 * 
+	 *
 	 * @param restoreTimeout
 	 *            the communication timeout value, in milliseconds, that should
 	 *            be reset
@@ -1302,7 +1302,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IThread#getName()
 	 */
 	@Override
@@ -1334,7 +1334,7 @@
 	 * Returns the priority from the underlying {@link ReferenceType}, failing
 	 * that the backing {@link Value} for the underlying {@link ThreadReference}
 	 * is consulted
-	 * 
+	 *
 	 * @return the priority from the backing {@link ReferenceType} or
 	 *         {@link Value}
 	 * @throws DebugException
@@ -1372,7 +1372,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IThread#getTopStackFrame()
 	 */
 	@Override
@@ -1388,7 +1388,7 @@
 	 * A breakpoint has suspended execution of this thread. Aborts any step
 	 * currently in process and notifies listeners of the breakpoint to allow a
 	 * vote to determine if the thread should suspend.
-	 * 
+	 *
 	 * @param breakpoint
 	 *            the breakpoint that caused the suspend
 	 * @param suspendVote
@@ -1434,7 +1434,7 @@
 					fSuspendVoteInProgress = false;
 					return false;
 				}
-				
+
 			}
 		}
 		catch (CoreException e) {
@@ -1494,7 +1494,7 @@
 	 * Called after an event set with a breakpoint is done being processed.
 	 * Updates thread state based on the result of handling the event set.
 	 * Aborts any step in progress and fires a suspend event is suspending.
-	 * 
+	 *
 	 * @param breakpoint
 	 *            the breakpoint that was hit
 	 * @param suspend
@@ -1542,7 +1542,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.IStep#isStepping()
 	 */
 	@Override
@@ -1552,7 +1552,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.ISuspendResume#isSuspended()
 	 */
 	@Override
@@ -1562,7 +1562,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaThread#isSystemThread()
 	 */
 	@Override
@@ -1572,7 +1572,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaThread#isDaemon()
 	 */
 	@Override
@@ -1582,7 +1582,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaThread#getThreadGroupName()
 	 */
 	@Override
@@ -1612,7 +1612,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.ITerminate#isTerminated()
 	 */
 	@Override
@@ -1622,7 +1622,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaThread#isOutOfSynch()
 	 */
 	@Override
@@ -1643,7 +1643,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaThread#mayBeOutOfSynch()
 	 */
 	@Override
@@ -1656,7 +1656,7 @@
 
 	/**
 	 * Sets whether this thread is terminated
-	 * 
+	 *
 	 * @param terminated
 	 *            whether this thread is terminated
 	 */
@@ -1666,7 +1666,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.ISuspendResume#resume()
 	 */
 	@Override
@@ -1680,10 +1680,10 @@
 	}
 
 	/**
-	 * 
+	 *
 	 * Updates the state of this thread, but only fires notification to
 	 * listeners if <code>fireNotification</code> is <code>true</code>.
-	 * 
+	 *
 	 * @see ISuspendResume#resume()
 	 * @param fireNotification
 	 *            if a resume event should be fired
@@ -1717,7 +1717,7 @@
 	/**
 	 * Sets whether this thread is currently executing. When set to
 	 * <code>true</code>, this thread's current breakpoints are cleared.
-	 * 
+	 *
 	 * @param running
 	 *            whether this thread is executing
 	 */
@@ -1737,7 +1737,7 @@
 	 * through all current stack frames, setting their state as invalid. This
 	 * method should be called before this thread is resumed, when stack frames
 	 * are to be re-used when it later suspends.
-	 * 
+	 *
 	 * @see #computeStackFrames()
 	 */
 	protected synchronized void preserveStackFrames() {
@@ -1751,7 +1751,7 @@
 	 * Disposes stack frames, to be completely re-computed on the next suspend
 	 * event. This method should be called before this thread is resumed when
 	 * stack frames are not to be re-used on the next suspend.
-	 * 
+	 *
 	 * @see #computeStackFrames()
 	 */
 	protected synchronized void disposeStackFrames() {
@@ -1762,7 +1762,7 @@
 	/**
 	 * This method is synchronized, such that the step request begins before a
 	 * background evaluation can be performed.
-	 * 
+	 *
 	 * @see IStep#stepInto()
 	 */
 	@Override
@@ -1779,7 +1779,7 @@
 	/**
 	 * This method is synchronized, such that the step request begins before a
 	 * background evaluation can be performed.
-	 * 
+	 *
 	 * @see IStep#stepOver()
 	 */
 	@Override
@@ -1796,7 +1796,7 @@
 	/**
 	 * This method is synchronized, such that the step request begins before a
 	 * background evaluation can be performed.
-	 * 
+	 *
 	 * @see IStep#stepReturn()
 	 */
 	@Override
@@ -1844,7 +1844,7 @@
 	 * the current Location to the original Location when the user step into was
 	 * initiated. It also makes sure the stack depth now is the same as when the
 	 * step was initiated.
-	 * 
+	 *
 	 * @param location
 	 *            the location to consider
 	 * @return <code>true</code> if we should do an extra step,
@@ -1886,7 +1886,7 @@
 	 * Determines if a user did a step into and stepped through filtered code.
 	 * In this case, do a step return if the user has requested not to step thru
 	 * to an unfiltered location.
-	 * 
+	 *
 	 * @return <code>true</code> if we should do a step return
 	 * @throws DebugException
 	 *             if an exception occurs
@@ -1902,7 +1902,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.ISuspendResume#suspend()
 	 */
 	@Override
@@ -1929,7 +1929,7 @@
 	 * Prepares to suspend this thread as requested by a client. Terminates any
 	 * current evaluation (to stop after next instruction). Waits for any method
 	 * invocations to complete.
-	 * 
+	 *
 	 * @throws DebugException
 	 *             if thread does not suspend before timeout
 	 */
@@ -1949,9 +1949,9 @@
 				}
 				// wait for termination to complete
 				int timeout = Platform.getPreferencesService().getInt(
-						JDIDebugPlugin.getUniqueIdentifier(), 
-						JDIDebugModel.PREF_REQUEST_TIMEOUT, 
-						JDIDebugModel.DEF_REQUEST_TIMEOUT, 
+						JDIDebugPlugin.getUniqueIdentifier(),
+						JDIDebugModel.PREF_REQUEST_TIMEOUT,
+						JDIDebugModel.DEF_REQUEST_TIMEOUT,
 						null);
 				try {
 					fEvaluationLock.wait(timeout);
@@ -1969,9 +1969,9 @@
 		synchronized (fInvocationLock) {
 			if (isInvokingMethod()) {
 				int timeout = Platform.getPreferencesService().getInt(
-						JDIDebugPlugin.getUniqueIdentifier(), 
-						JDIDebugModel.PREF_REQUEST_TIMEOUT, 
-						JDIDebugModel.DEF_REQUEST_TIMEOUT, 
+						JDIDebugPlugin.getUniqueIdentifier(),
+						JDIDebugModel.PREF_REQUEST_TIMEOUT,
+						JDIDebugModel.DEF_REQUEST_TIMEOUT,
 						null);
 				try {
 					fInvocationLock.wait(timeout);
@@ -2005,9 +2005,9 @@
 				try {
 					fThread.suspend();
 					int timeout = Platform.getPreferencesService().getInt(
-							JDIDebugPlugin.getUniqueIdentifier(), 
-							JDIDebugModel.PREF_REQUEST_TIMEOUT, 
-							JDIDebugModel.DEF_REQUEST_TIMEOUT, 
+							JDIDebugPlugin.getUniqueIdentifier(),
+							JDIDebugModel.PREF_REQUEST_TIMEOUT,
+							JDIDebugModel.DEF_REQUEST_TIMEOUT,
 							null);
 					long stop = System.currentTimeMillis() + timeout;
 					boolean suspended = isUnderlyingThreadSuspended();
@@ -2062,7 +2062,7 @@
 
 	/**
 	 * Notifies this thread that is about to be resumed due to a VM resume.
-	 * 
+	 *
 	 * @throws DebugException
 	 *             if an exception occurs
 	 */
@@ -2103,10 +2103,10 @@
 
 	/**
 	 * Drops to the given stack frame
-	 * 
+	 *
 	 * @param frame
 	 *            the stack frame to try dropping to
-	 * 
+	 *
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
 	 *                <ul>
@@ -2187,7 +2187,7 @@
 	 * to step over/return in the non-top stack frame. This method is
 	 * synchronized, such that the step request begins before a background
 	 * evaluation can be performed.
-	 * 
+	 *
 	 * @param frame
 	 *            the stack frame to try and step to
 	 * @exception DebugException
@@ -2220,7 +2220,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaThread#findVariable(java.lang.String)
 	 */
@@ -2260,7 +2260,7 @@
 	/**
 	 * Returns this thread on the underlying VM which this model thread is a
 	 * proxy to.
-	 * 
+	 *
 	 * @return underlying thread
 	 */
 	public ThreadReference getUnderlyingThread() {
@@ -2269,7 +2269,7 @@
 
 	/**
 	 * Sets the underlying thread that this model object is a proxy to.
-	 * 
+	 *
 	 * @param thread
 	 *            underlying thread on target VM
 	 */
@@ -2279,7 +2279,7 @@
 
 	/**
 	 * Returns this thread's underlying thread group.
-	 * 
+	 *
 	 * @return thread group
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -2325,7 +2325,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaThread#isPerformingEvaluation()
 	 */
 	@Override
@@ -2335,7 +2335,7 @@
 
 	/**
 	 * Returns whether this thread is currently performing a method invocation
-	 * 
+	 *
 	 * @return if the thread is currently invoking a method
 	 */
 	public boolean isInvokingMethod() {
@@ -2344,7 +2344,7 @@
 
 	/**
 	 * Returns whether this thread is currently ignoring breakpoints.
-	 * 
+	 *
 	 * @return if the thread is currently ignoring breakpoints
 	 */
 	public boolean isIgnoringBreakpoints() {
@@ -2354,7 +2354,7 @@
 
 	/**
 	 * Returns whether a client has requested the target/thread to suspend.
-	 * 
+	 *
 	 * @return whether a client has requested the target/thread to suspend
 	 */
 	public boolean hasClientRequestedSuspend() {
@@ -2364,7 +2364,7 @@
 	/**
 	 * Sets whether this thread is currently invoking a method. Notifies any
 	 * threads waiting for the method invocation lock
-	 * 
+	 *
 	 * @param invoking
 	 *            whether this thread is currently invoking a method
 	 */
@@ -2379,7 +2379,7 @@
 
 	/**
 	 * Sets the step handler currently handling a step request.
-	 * 
+	 *
 	 * @param handler
 	 *            the current step handler, or <code>null</code> if none
 	 */
@@ -2390,7 +2390,7 @@
 	/**
 	 * Returns the step handler currently handling a step request, or
 	 * <code>null</code> if none.
-	 * 
+	 *
 	 * @return step handler, or <code>null</code> if none
 	 */
 	protected StepHandler getPendingStepHandler() {
@@ -2419,7 +2419,7 @@
 		 * thread.
 		 * </p>
 		 * Note this method does nothing if this thread has no stack frames.
-		 * 
+		 *
 		 * @exception DebugException
 		 *                if this method fails. Reasons include:
 		 *                <ul>
@@ -2457,7 +2457,7 @@
 		 * Resumes the underlying thread to initiate the step. By default the
 		 * thread is resumed. Step handlers that require other actions can
 		 * override this method.
-		 * 
+		 *
 		 * @exception DebugException
 		 *                if this method fails. Reasons include:
 		 *                <ul>
@@ -2485,7 +2485,7 @@
 		 * Creates and returns a step request specific to this step handler.
 		 * Subclasses must override <code>getStepKind()</code> to return the
 		 * kind of step it implements.
-		 * 
+		 *
 		 * @return step request
 		 * @exception DebugException
 		 *                if this method fails. Reasons include:
@@ -2501,7 +2501,7 @@
 
 		/**
 		 * Creates and returns a step request of the specified kind.
-		 * 
+		 *
 		 * @param kind
 		 *            of <code>StepRequest.STEP_INTO</code>,
 		 *            <code>StepRequest.STEP_OVER</code>,
@@ -2529,7 +2529,7 @@
 				request.addCountFilter(1);
 				attachFiltersToStepRequest(request);
 				request.enable();
-				
+
 				if (manager.virtualMachine().canGetMethodReturnValues() && showStepResultIsEnabled()) {
 					if (fCurrentMethodExitRequest != null) {
 						removeJDIEventListener(this, fCurrentMethodExitRequest);
@@ -2620,7 +2620,7 @@
 
 		/**
 		 * Returns the kind of step this handler implements.
-		 * 
+		 *
 		 * @return one of <code>StepRequest.STEP_INTO</code>,
 		 *         <code>StepRequest.STEP_OVER</code>,
 		 *         <code>StepRequest.STEP_OUT</code>
@@ -2629,7 +2629,7 @@
 
 		/**
 		 * Returns the detail for this step event.
-		 * 
+		 *
 		 * @return one of <code>DebugEvent.STEP_INTO</code>,
 		 *         <code>DebugEvent.STEP_OVER</code>,
 		 *         <code>DebugEvent.STEP_RETURN</code>
@@ -2640,7 +2640,7 @@
 		 * Sets the step request created by this handler in the underlying VM.
 		 * Set to <code>null<code> when
 		 * this handler deletes its request.
-		 * 
+		 *
 		 * @param request
 		 *            step request
 		 */
@@ -2651,7 +2651,7 @@
 		/**
 		 * Returns the step request created by this handler in the underlying
 		 * VM.
-		 * 
+		 *
 		 * @return step request
 		 */
 		protected StepRequest getStepRequest() {
@@ -2706,7 +2706,7 @@
 		/**
 		 * If step filters are currently switched on and the current location is
 		 * not a filtered location, set all active filters on the step request.
-		 * 
+		 *
 		 * @param request
 		 *            the request to augment
 		 */
@@ -2745,7 +2745,7 @@
 		 * Returns whether this step handler should use step filters when
 		 * creating its step request. By default, step filters can be used by
 		 * any step request. Subclasses must override if/when required.
-		 * 
+		 *
 		 * @return whether this step handler should use step filters when
 		 *         creating its step request
 		 */
@@ -2757,7 +2757,7 @@
 		 * Notification the step request has completed. If the current location
 		 * matches one of the user-specified step filter criteria (e.g.,
 		 * synthetic methods, static initializers), then continue stepping.
-		 * 
+		 *
 		 * @see IJDIEventListener#handleEvent(Event, JDIDebugTarget, boolean,
 		 *      EventSet)
 		 */
@@ -2857,7 +2857,7 @@
 
 		/*
 		 * (non-Javadoc)
-		 * 
+		 *
 		 * @see
 		 * org.eclipse.jdt.internal.debug.core.IJDIEventListener#eventSetComplete
 		 * (com.sun.jdi.event.Event,
@@ -2874,7 +2874,7 @@
 		 * that the user has indicated (via the step filter preferences) should
 		 * be filtered and the step was not initiated from a filtered location.
 		 * Returns <code>false</code> otherwise.
-		 * 
+		 *
 		 * @param location
 		 *            the location to check
 		 * @return if the given {@link Location} should be filtered
@@ -2896,11 +2896,11 @@
 		 * Returns <code>true</code> if the StepEvent's Location is a Method
 		 * that the user has indicated (via the step filter preferences) should
 		 * be filtered. Returns <code>false</code> otherwise.
-		 * 
+		 *
 		 * @param method
 		 *            the {@link Method} location to check
 		 * @param orig
-		 *            <code>true</code> if the {@link Method} {@link Location} is the JDI Location 
+		 *            <code>true</code> if the {@link Method} {@link Location} is the JDI Location
 		 *         from which an original user-requested step began, <code>false</code> otherwise
 		 * @return <code>true</code> if the {@link Method} {@link Location}
 		 *         should be filtered, <code>false</code> otherwise
@@ -2936,7 +2936,7 @@
 		 * <li>The step request is deleted and removed as and event listener</li>
 		 * <li>A suspend event is fired</li>
 		 * </ul>
-		 * 
+		 *
 		 * @param set
 		 *            the remaining {@link EventSet} to queue
 		 */
@@ -2956,7 +2956,7 @@
 		 * suspended threads. When a step is initiated it is registered with its
 		 * thread as a pending step. A pending step could be cancelled if a
 		 * breakpoint suspends execution during the step.
-		 * 
+		 *
 		 * @exception DebugException
 		 *                if this method fails. Reasons include:
 		 *                <ul>
@@ -2976,7 +2976,7 @@
 		 * suspended threads. When a step is initiated it is registered with its
 		 * thread as a pending step. A pending step could be cancelled if a
 		 * breakpoint suspends execution during the step.
-		 * 
+		 *
 		 * @param kind
 		 *            of <code>StepRequest.STEP_INTO</code>,
 		 *            <code>StepRequest.STEP_OVER</code>,
@@ -3017,7 +3017,7 @@
 
 		/*
 		 * (non-Javadoc)
-		 * 
+		 *
 		 * @see org.eclipse.jdt.internal.debug.core.model.JDIThread.StepHandler#
 		 * getStepKind()
 		 */
@@ -3028,7 +3028,7 @@
 
 		/*
 		 * (non-Javadoc)
-		 * 
+		 *
 		 * @see org.eclipse.jdt.internal.debug.core.model.JDIThread.StepHandler#
 		 * getStepDetail()
 		 */
@@ -3045,7 +3045,7 @@
 
 		/*
 		 * (non-Javadoc)
-		 * 
+		 *
 		 * @see org.eclipse.jdt.internal.debug.core.model.JDIThread.StepHandler#
 		 * getStepKind()
 		 */
@@ -3056,7 +3056,7 @@
 
 		/*
 		 * (non-Javadoc)
-		 * 
+		 *
 		 * @see org.eclipse.jdt.internal.debug.core.model.JDIThread.StepHandler#
 		 * getStepDetail()
 		 */
@@ -3073,7 +3073,7 @@
 	protected class StepReturnHandler extends StepHandler {
 		/*
 		 * (non-Javadoc)
-		 * 
+		 *
 		 * @see org.eclipse.jdt.internal.debug.core.model.JDIThread.StepHandler#
 		 * locationShouldBeFiltered(com.sun.jdi.Location)
 		 */
@@ -3090,7 +3090,7 @@
 
 		/*
 		 * (non-Javadoc)
-		 * 
+		 *
 		 * @see org.eclipse.jdt.internal.debug.core.model.JDIThread.StepHandler#
 		 * getStepKind()
 		 */
@@ -3101,7 +3101,7 @@
 
 		/*
 		 * (non-Javadoc)
-		 * 
+		 *
 		 * @see org.eclipse.jdt.internal.debug.core.model.JDIThread.StepHandler#
 		 * getStepDetail()
 		 */
@@ -3126,7 +3126,7 @@
 		/**
 		 * Constructs a step handler to step until the specified stack frame is
 		 * reached.
-		 * 
+		 *
 		 * @param frame
 		 *            the stack frame to step to
 		 * @exception DebugException
@@ -3145,7 +3145,7 @@
 		/**
 		 * Sets the number of frames that should be remaining on the stack when
 		 * done.
-		 * 
+		 *
 		 * @param num
 		 *            number of remaining frames
 		 */
@@ -3156,7 +3156,7 @@
 		/**
 		 * Returns number of frames that should be remaining on the stack when
 		 * done
-		 * 
+		 *
 		 * @return number of frames that should be left
 		 */
 		protected int getRemainingFrames() {
@@ -3167,7 +3167,7 @@
 		 * Notification the step request has completed. If in the desired frame,
 		 * complete the step request normally. If not in the desired frame,
 		 * another step request is created and this thread is resumed.
-		 * 
+		 *
 		 * @see IJDIEventListener#handleEvent(Event, JDIDebugTarget, boolean,
 		 *      EventSet)
 		 */
@@ -3207,7 +3207,7 @@
 
 		/**
 		 * Constructs a handler to drop to the specified stack frame.
-		 * 
+		 *
 		 * @param frame
 		 *            the stack frame to drop to
 		 * @exception DebugException
@@ -3225,7 +3225,7 @@
 
 		/**
 		 * Sets the number of frames to pop off the stack.
-		 * 
+		 *
 		 * @param num
 		 *            number of frames to pop
 		 */
@@ -3235,7 +3235,7 @@
 
 		/**
 		 * Returns the number of frames to pop off the stack.
-		 * 
+		 *
 		 * @return remaining number of frames to pop
 		 */
 		protected int getFramesToDrop() {
@@ -3246,7 +3246,7 @@
 		 * To drop a frame or re-enter, the underlying thread is instructed to
 		 * do a return. When the frame count is less than zero, the step being
 		 * performed is a "step return", so a regular invocation is performed.
-		 * 
+		 *
 		 * @throws DebugException
 		 *             if an exception occurs
 		 */
@@ -3274,7 +3274,7 @@
 		 * pop, keep going, otherwise re-enter the top frame. Returns false, as
 		 * this handler will resume this thread with a special invocation (
 		 * <code>doReturn</code>).
-		 * 
+		 *
 		 * @see IJDIEventListener#handleEvent(Event, JDIDebugTarget, boolean,
 		 *      EventSet)
 		 * @see #invokeThread()
@@ -3301,7 +3301,7 @@
 		/**
 		 * Pops a secondary frame off the stack, does a re-enter, or a
 		 * step-into.
-		 * 
+		 *
 		 * @exception DebugException
 		 *                if this method fails. Reasons include:
 		 *                <ul>
@@ -3321,7 +3321,7 @@
 		 * Creates and returns a step request. If there are no more frames to
 		 * drop, a re-enter request is made. If the re-enter is complete, a
 		 * step-into request is created.
-		 * 
+		 *
 		 * @return step request
 		 * @exception DebugException
 		 *                if this method fails. Reasons include:
@@ -3492,7 +3492,7 @@
 		public ThreadJob(JDIThread thread) {
 			super(JDIDebugModelMessages.JDIThread_39);
 			fJDIThread = thread;
-			fRunnables = new Vector<Runnable>(5);
+			fRunnables = new Vector<>(5);
 			setSystem(true);
 		}
 
@@ -3561,7 +3561,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.debug.core.IJavaThread#stop(org.eclipse.jdt.debug.core
 	 * .IJavaObject)
@@ -3579,7 +3579,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaThread#getThreadGroup()
 	 */
 	@Override
@@ -3593,7 +3593,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaThread#getFrameCount()
 	 */
 	@Override
@@ -3627,7 +3627,7 @@
 	 * Implementation of a scheduling rule for this thread, which defines how it
 	 * should behave when a request for content job tries to run while the
 	 * thread is evaluating
-	 * 
+	 *
 	 * @since 3.3.0
 	 */
 	class SerialPerObjectRule implements ISchedulingRule {
@@ -3640,7 +3640,7 @@
 
 		/*
 		 * (non-Javadoc)
-		 * 
+		 *
 		 * @see
 		 * org.eclipse.core.runtime.jobs.ISchedulingRule#contains(org.eclipse
 		 * .core.runtime.jobs.ISchedulingRule)
@@ -3652,7 +3652,7 @@
 
 		/*
 		 * (non-Javadoc)
-		 * 
+		 *
 		 * @see
 		 * org.eclipse.core.runtime.jobs.ISchedulingRule#isConflicting(org.eclipse
 		 * .core.runtime.jobs.ISchedulingRule)
@@ -3671,9 +3671,9 @@
 	/**
 	 * returns the scheduling rule for getting content while evaluations are
 	 * running
-	 * 
+	 *
 	 * @return the <code>ISchedulingRule</code> for this thread
-	 * 
+	 *
 	 * @since 3.3.0
 	 */
 	public ISchedulingRule getThreadRule() {
@@ -3693,7 +3693,7 @@
 
 	/**
 	 * Returns whether a suspend vote is currently in progress.
-	 * 
+	 *
 	 * @return whether a suspend vote is currently in progress
 	 */
 	public synchronized boolean isSuspendVoteInProgress() {
@@ -3702,7 +3702,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaThread#getThreadObject()
 	 */
 	@Override
@@ -3710,7 +3710,7 @@
 		return (IJavaObject) JDIValue
 				.createValue(getJavaDebugTarget(), fThread);
 	}
-	
+
 	protected StepIntoHandler createStepIntoHandler() {
         return new StepIntoHandler();
     }
@@ -3722,16 +3722,16 @@
     protected StepReturnHandler createStepReturnHandler() {
         return new StepReturnHandler();
     }
-    
+
     protected StepToFrameHandler createStepToFrameHandler(IStackFrame stackFrame) throws DebugException {
         return new StepToFrameHandler(stackFrame);
     }
-    
+
     protected DropToFrameHandler createDropToFrameHandler(IStackFrame stackFrame) throws DebugException {
         return new DropToFrameHandler(stackFrame);
     }
 	public static boolean showStepResultIsEnabled() {
 		return Platform.getPreferencesService().getBoolean(JDIDebugPlugin.getUniqueIdentifier(), JDIDebugModel.PREF_SHOW_STEP_RESULT, true, null);
 	}
-   
+
 }
\ No newline at end of file
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIThreadGroup.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIThreadGroup.java
index 56ee382..124c893 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIThreadGroup.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIThreadGroup.java
@@ -25,7 +25,7 @@
 
 /**
  * @since 3.2
- * 
+ *
  */
 public class JDIThreadGroup extends JDIDebugElement implements
 		IJavaThreadGroup, ITerminate {
@@ -36,7 +36,7 @@
 	/**
 	 * Constructs a new thread group in the given target based on the underlying
 	 * thread group reference.
-	 * 
+	 *
 	 * @param target
 	 *            debug target
 	 * @param group
@@ -49,14 +49,14 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaThreadGroup#getThreads()
 	 */
 	@Override
 	public synchronized IJavaThread[] getThreads() throws DebugException {
 		try {
 			List<ThreadReference> threads = fGroup.threads();
-			List<JDIThread> modelThreads = new ArrayList<JDIThread>(threads.size());
+			List<JDIThread> modelThreads = new ArrayList<>(threads.size());
 			Iterator<ThreadReference> iterator = threads.iterator();
 			while (iterator.hasNext()) {
 				ThreadReference ref = iterator.next();
@@ -78,7 +78,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaThreadGroup#getThreadGroup()
 	 */
 	@Override
@@ -96,14 +96,14 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaThreadGroup#getThreadGroups()
 	 */
 	@Override
 	public IJavaThreadGroup[] getThreadGroups() throws DebugException {
 		try {
 			List<ThreadGroupReference> groups = fGroup.threadGroups();
-			List<JDIThreadGroup> modelGroups = new ArrayList<JDIThreadGroup>(groups.size());
+			List<JDIThreadGroup> modelGroups = new ArrayList<>(groups.size());
 			Iterator<ThreadGroupReference> iterator = groups.iterator();
 			while (iterator.hasNext()) {
 				ThreadGroupReference ref = iterator
@@ -126,7 +126,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaThreadGroup#getName()
 	 */
 	@Override
@@ -147,7 +147,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaThreadGroup#hasThreadGroups()
 	 */
 	@Override
@@ -163,7 +163,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaThreadGroup#hasThreads()
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIType.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIType.java
index 518062c..2d03ea9 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIType.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIType.java
@@ -36,7 +36,7 @@
 	/**
 	 * Constructs a new type based on the specified underlying type, in the
 	 * given debug target
-	 * 
+	 *
 	 * @param target
 	 *            the debug target this type originated from
 	 * @param type
@@ -49,7 +49,7 @@
 
 	/**
 	 * Throws a new debug exception with the given status code.
-	 * 
+	 *
 	 * @param message
 	 *            Failure message
 	 * @param e
@@ -81,7 +81,7 @@
 	 * <code>TARGET_REQUEST_FAILED</code> with the given underlying exception.
 	 * If the underlying exception is not a JDI exception, the original
 	 * exception is thrown.
-	 * 
+	 *
 	 * @param message
 	 *            Failure message
 	 * @param e
@@ -137,7 +137,7 @@
 
 	/**
 	 * Returns the underlying type on the VM.
-	 * 
+	 *
 	 * @return the underlying type on the VM
 	 */
 	public Type getUnderlyingType() {
@@ -146,7 +146,7 @@
 
 	/**
 	 * Sets the underlying type on the VM.
-	 * 
+	 *
 	 * @param type
 	 *            the underlying type on the VM
 	 */
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIValue.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIValue.java
index 4167da0..c81761a 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIValue.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIValue.java
@@ -39,7 +39,7 @@
 
 /**
  * Represents the value of a java variable
- * 
+ *
  * @see IJavaValue
  */
 public class JDIValue extends JDIDebugElement implements IJavaValue {
@@ -56,14 +56,14 @@
 	 * When created for a logical structure we hold onto the original
 	 * non-logical value for purposes of equality. This way a logical
 	 * structure's children remain more stable in the variables view.
-	 * 
+	 *
 	 * This is <code>null</code> when not created for a logical structure.
 	 */
 	protected IJavaValue fLogicalParent;
 
 	/**
 	 * Constructor
-	 * 
+	 *
 	 * @param target
 	 *            debug target that this value belongs to
 	 * @param value
@@ -76,7 +76,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.jdt.internal.debug.core.model.JDIDebugElement#getAdapter(
 	 * java.lang.Class)
@@ -230,7 +230,7 @@
 	/**
 	 * Returns a list of variables that are children of this value. The result
 	 * is cached.
-	 * 
+	 *
 	 * @return list of variable children
 	 * @throws DebugException
 	 */
@@ -239,7 +239,7 @@
 			return fVariables;
 		} else if (fValue instanceof ObjectReference) {
 			ObjectReference object = (ObjectReference) fValue;
-			fVariables = new ArrayList<IJavaVariable>();
+			fVariables = new ArrayList<>();
 			if (isArray()) {
 				try {
 					int length = getArrayLength();
@@ -383,7 +383,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaValue#getGenericSignature()
 	 */
 	@Override
@@ -443,7 +443,7 @@
 
 	/**
 	 * Returns this value's underlying type.
-	 * 
+	 *
 	 * @return type
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
@@ -484,7 +484,7 @@
 	/**
 	 * Sets the value that is the original non-logical value that this child
 	 * value was computed for.
-	 * 
+	 *
 	 * @param logicalParent
 	 *            parent value
 	 */
@@ -495,7 +495,7 @@
 	/**
 	 * Returns the value that is the original non-logical value that this child
 	 * value was computed for or <code>null</code> if none
-	 * 
+	 *
 	 * @param logicalParent
 	 *            parent value or <code>null</code>
 	 */
@@ -505,7 +505,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.jdt.debug.core.IJavaValue#isNull()
 	 */
 	@Override
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIVariable.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIVariable.java
index 8f092ec..f9e2ef4 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIVariable.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIVariable.java
@@ -63,7 +63,7 @@
 	 * Returns this variable's current underlying jdi value. Subclasses must
 	 * implement #retrieveValue() and do not need to guard against JDI
 	 * exceptions, as this method handles them.
-	 * 
+	 *
 	 * @exception DebugException
 	 *                if unable to access the value
 	 */
@@ -88,7 +88,7 @@
 	/**
 	 * Returns the current value of this variable. The value is cached, but on
 	 * each access we see if the value has changed and update if required.
-	 * 
+	 *
 	 * @see IVariable#getValue()
 	 */
 	@Override
@@ -230,9 +230,9 @@
 
 	/**
 	 * Returns the underlying type of this variable
-	 * 
+	 *
 	 * @return the underlying type of this variable
-	 * 
+	 *
 	 * @exception DebugException
 	 *                if this method fails. Reasons include:
 	 *                <ul>
@@ -257,7 +257,7 @@
 
 	/**
 	 * Sets this variable's change counter to the specified value
-	 * 
+	 *
 	 * @param count
 	 *            new value
 	 */
@@ -268,7 +268,7 @@
 	/**
 	 * Returns this variable's change counter. This corresponds to the last time
 	 * this variable changed.
-	 * 
+	 *
 	 * @return this variable's change counter
 	 */
 	protected int getChangeCount() {
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIVoidType.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIVoidType.java
index d22fa33..fc58571 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIVoidType.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIVoidType.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/Timer.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/Timer.java
index d8e21e4..1ee2291 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/Timer.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/Timer.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -12,7 +12,7 @@
 
 /**
  * A timer notifies listeners when a specific amount of time has passed.
- * 
+ *
  * @see ITimeoutListener
  */
 public class Timer {
@@ -79,7 +79,7 @@
 	 * passed. A call to <code>stop</code>, before the time expires, will cancel
 	 * the the timer and timeout callback. This method can only be called if
 	 * this timer is idle (i.e. <code>isStarted() == false<code>).
-	 * 
+	 *
 	 * @param listener
 	 *            The timer listener
 	 * @param ms
@@ -121,7 +121,7 @@
 
 	/**
 	 * Returns whether this timer's thread is alive
-	 * 
+	 *
 	 * @return whether this timer's thread is alive
 	 */
 	private boolean isAlive() {
@@ -131,7 +131,7 @@
 	/**
 	 * Sets whether this timer's thread is alive. When set to <code>false</code>
 	 * this timer's thread will exit on its next iteration.
-	 * 
+	 *
 	 * @param alive
 	 *            whether this timer's thread should be alive
 	 * @see #dispose()
@@ -142,7 +142,7 @@
 
 	/**
 	 * Returns the current timeout listener
-	 * 
+	 *
 	 * @return timeout listener
 	 */
 	protected ITimeoutListener getListener() {
@@ -151,7 +151,7 @@
 
 	/**
 	 * Sets the listener to be notified if this timer times out.
-	 * 
+	 *
 	 * @param listener
 	 *            timeout listener
 	 */
@@ -162,7 +162,7 @@
 	/**
 	 * Returns whether this timer has been started, and has not yet timed out,
 	 * or been stopped.
-	 * 
+	 *
 	 * @return whether this timer has been started, and has not yet timed out,
 	 *         or been stopped
 	 */
@@ -173,7 +173,7 @@
 	/**
 	 * Sets whether this timer has been started, and has not yet timed out, or
 	 * been stopped.
-	 * 
+	 *
 	 * @param started
 	 *            whether this timer has been started, and has not yet timed
 	 *            out, or been stopped
@@ -184,7 +184,7 @@
 
 	/**
 	 * Returns this timer's thread
-	 * 
+	 *
 	 * @return thread that waits for a timeout
 	 */
 	private Thread getThread() {
@@ -193,7 +193,7 @@
 
 	/**
 	 * Sets this timer's thread used to perform timeout processing
-	 * 
+	 *
 	 * @param thread
 	 *            thread that waits for a timeout
 	 */
@@ -204,7 +204,7 @@
 	/**
 	 * Returns the amount of time, in milliseconds, that this timer is/was
 	 * waiting for.
-	 * 
+	 *
 	 * @return timeout value, in milliseconds
 	 */
 	protected int getTimeout() {
@@ -214,7 +214,7 @@
 	/**
 	 * Sets the amount of time, in milliseconds, that this timer will wait for
 	 * before timing out.
-	 * 
+	 *
 	 * @param timeout
 	 *            value, in milliseconds
 	 */
diff --git a/org.eclipse.jdt.launching/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.jdt.launching/.settings/org.eclipse.jdt.ui.prefs
index 69f7753..c9192ac 100644
--- a/org.eclipse.jdt.launching/.settings/org.eclipse.jdt.ui.prefs
+++ b/org.eclipse.jdt.launching/.settings/org.eclipse.jdt.ui.prefs
@@ -68,10 +68,12 @@
 sp_cleanup.always_use_parentheses_in_expressions=false

 sp_cleanup.always_use_this_for_non_static_field_access=false

 sp_cleanup.always_use_this_for_non_static_method_access=false

+sp_cleanup.convert_functional_interfaces=false

 sp_cleanup.convert_to_enhanced_for_loop=false

 sp_cleanup.correct_indentation=false

 sp_cleanup.format_source_code=true

 sp_cleanup.format_source_code_changes_only=true

+sp_cleanup.insert_inferred_type_arguments=false

 sp_cleanup.make_local_variable_final=false

 sp_cleanup.make_parameters_final=false

 sp_cleanup.make_private_fields_final=true

@@ -87,7 +89,8 @@
 sp_cleanup.qualify_static_member_accesses_with_declaring_class=false

 sp_cleanup.qualify_static_method_accesses_with_declaring_class=false

 sp_cleanup.remove_private_constructors=true

-sp_cleanup.remove_trailing_whitespaces=false

+sp_cleanup.remove_redundant_type_arguments=true

+sp_cleanup.remove_trailing_whitespaces=true

 sp_cleanup.remove_trailing_whitespaces_all=true

 sp_cleanup.remove_trailing_whitespaces_ignore_empty=false

 sp_cleanup.remove_unnecessary_casts=true

@@ -100,8 +103,10 @@
 sp_cleanup.remove_unused_private_types=true

 sp_cleanup.sort_members=false

 sp_cleanup.sort_members_all=false

+sp_cleanup.use_anonymous_class_creation=false

 sp_cleanup.use_blocks=true

 sp_cleanup.use_blocks_only_for_return_and_throw=false

+sp_cleanup.use_lambda=false

 sp_cleanup.use_parentheses_in_expressions=false

 sp_cleanup.use_this_for_non_static_field_access=false

 sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true

diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/AbstractRuntimeClasspathEntry.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/AbstractRuntimeClasspathEntry.java
index 10c64fb..1185ae0 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/AbstractRuntimeClasspathEntry.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/AbstractRuntimeClasspathEntry.java
@@ -4,10 +4,10 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
- *     Frits Jalvingh - Contribution for Bug 459831 - [launching] Support attaching 
+ *     Frits Jalvingh - Contribution for Bug 459831 - [launching] Support attaching
  *     	external annotations to a JRE container
  *******************************************************************************/
 package org.eclipse.jdt.internal.launching;
@@ -36,7 +36,7 @@
  * @since 3.0
  */
 public abstract class AbstractRuntimeClasspathEntry extends PlatformObject implements IRuntimeClasspathEntry2 {
-	
+
 	private IPath sourceAttachmentPath = null;
 	private IPath rootSourcePath = null;
 	private IPath externalAnnotationsPath = null;
@@ -46,20 +46,20 @@
 	 * Associated Java project, or <code>null</code>
 	 */
 	private IJavaProject fJavaProject;
-	
+
 	/* (non-Javadoc)
-	 * 
+	 *
 	 * Default implementation returns <code>false</code>.
 	 * Subclasses should override if required.
-	 * 
+	 *
 	 * @see org.eclipse.jdt.internal.launching.IRuntimeClasspathEntry2#isComposite()
 	 */
 	@Override
 	public boolean isComposite() {
 		return false;
 	}
-	
-	/** 
+
+	/**
 	 * Default implementation returns an empty collection.
 	 * Subclasses should override if required.
 	 * @return the array of entries
@@ -69,10 +69,10 @@
 	public IRuntimeClasspathEntry[] getRuntimeClasspathEntries() throws CoreException {
 		return new IRuntimeClasspathEntry[0];
 	}
-	
+
 	/**
 	 * Throws an exception with the given message and underlying exception.
-	 * 
+	 *
 	 * @param message error message
 	 * @param exception underlying exception or <code>null</code> if none
 	 * @throws CoreException the new {@link CoreException}
@@ -83,12 +83,12 @@
 	}
 
 	/* (non-Javadoc)
-	 * 
+	 *
 	 * Default implementation generates a string containing an XML
 	 * document. Subclasses should override <code>buildMemento</code>
 	 * to specify the contents of the required <code>memento</code>
 	 * node.
-	 * 
+	 *
 	 * @see org.eclipse.jdt.launching.IRuntimeClasspathEntry#getMemento()
 	 */
 	@Override
@@ -102,42 +102,42 @@
 		buildMemento(doc, memento);
 		return DebugPlugin.serializeDocument(doc);
 	}
-	
+
 	/**
-	 * Constructs a memento for this classpath entry in the given 
+	 * Constructs a memento for this classpath entry in the given
 	 * document and element. The memento element has already been
 	 * appended to the document.
-	 * 
+	 *
 	 * @param document XML document
 	 * @param memento element node for client specific attributes
-	 * @throws CoreException if unable to create a memento 
+	 * @throws CoreException if unable to create a memento
 	 */
 	protected abstract void buildMemento(Document document, Element memento) throws CoreException;
-	
+
 	/* (non-Javadoc)
-	 * 
+	 *
 	 * Default implementation returns <code>null</code>.
 	 * Subclasses should override if required.
-	 * 
+	 *
 	 * @see org.eclipse.jdt.launching.IRuntimeClasspathEntry#getPath()
 	 */
 	@Override
 	public IPath getPath() {
 		return null;
 	}
-	
+
 	/* (non-Javadoc)
-	 * 
+	 *
 	 * Default implementation returns <code>null</code>.
 	 * Subclasses should override if required.
-	 * 
+	 *
 	 * @see org.eclipse.jdt.launching.IRuntimeClasspathEntry#getResource()
 	 */
 	@Override
 	public IResource getResource() {
 		return null;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.IRuntimeClasspathEntry#getSourceAttachmentPath()
 	 */
@@ -191,19 +191,19 @@
 		classpathProperty = property;
 	}
 	/* (non-Javadoc)
-	 * 
+	 *
 	 * Default implementation returns <code>null</code>.
 	 * Subclasses should override if required.
-	 * 
+	 *
 	 * @see org.eclipse.jdt.launching.IRuntimeClasspathEntry#getLocation()
 	 */
 	@Override
 	public String getLocation() {
 		return null;
 	}
-	
+
 	/* (non-Javadoc)
-	 * 
+	 *
 	 * Default implementation returns <code>null</code>.
 	 * Subclasses should override if required.
 	 * @see org.eclipse.jdt.launching.IRuntimeClasspathEntry#getSourceAttachmentLocation()
@@ -213,7 +213,7 @@
 		return null;
 	}
 	/* (non-Javadoc)
-	 * 
+	 *
 	 * Default implementation returns <code>null</code>.
 	 * Subclasses should override if required.
 	 * @see org.eclipse.jdt.launching.IRuntimeClasspathEntry#getSourceAttachmentRootLocation()
@@ -223,10 +223,10 @@
 		return null;
 	}
 	/* (non-Javadoc)
-	 * 
+	 *
 	 * Default implementation returns <code>null</code>.
 	 * Subclasses should override if required.
-	 * 
+	 *
 	 * @see org.eclipse.jdt.launching.IRuntimeClasspathEntry#getVariableName()
 	 */
 	@Override
@@ -234,10 +234,10 @@
 		return null;
 	}
 	/* (non-Javadoc)
-	 * 
+	 *
 	 * Default implementation returns <code>null</code>.
 	 * Subclasses should override if required.
-	 * 
+	 *
 	 * @see org.eclipse.jdt.launching.IRuntimeClasspathEntry#getClasspathEntry()
 	 */
 	@Override
@@ -251,10 +251,10 @@
 	public IJavaProject getJavaProject() {
 		return fJavaProject;
 	}
-	
+
 	/**
 	 * Sets the Java project associated with this entry.
-	 * 
+	 *
 	 * @param javaProject the Java project context
 	 */
 	protected void setJavaProject(IJavaProject javaProject) {
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/ClasspathContainerSourceContainerTypeDelegate.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/ClasspathContainerSourceContainerTypeDelegate.java
index e84db9e..69ccf9d 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/ClasspathContainerSourceContainerTypeDelegate.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/ClasspathContainerSourceContainerTypeDelegate.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -21,11 +21,11 @@
 
 /**
  * Classpath container source container type.
- * 
+ *
  * @since 3.0
  */
 public class ClasspathContainerSourceContainerTypeDelegate extends AbstractSourceContainerTypeDelegate {
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainerTypeDelegate#createSourceContainer(java.lang.String)
 	 */
@@ -37,13 +37,13 @@
 			if ("classpathContainer".equals(element.getNodeName())) { //$NON-NLS-1$
 				String string = element.getAttribute("path"); //$NON-NLS-1$
 				if (string == null || string.length() == 0) {
-					abort(LaunchingMessages.ClasspathContainerSourceContainerTypeDelegate_5, null); 
+					abort(LaunchingMessages.ClasspathContainerSourceContainerTypeDelegate_5, null);
 				}
 				return new ClasspathContainerSourceContainer(new Path(string));
-			} 
-			abort(LaunchingMessages.ClasspathContainerSourceContainerTypeDelegate_6, null); 
+			}
+			abort(LaunchingMessages.ClasspathContainerSourceContainerTypeDelegate_6, null);
 		}
-		abort(LaunchingMessages.ClasspathContainerSourceContainerTypeDelegate_7, null); 
+		abort(LaunchingMessages.ClasspathContainerSourceContainerTypeDelegate_7, null);
 		return null;
 	}
 	/* (non-Javadoc)
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/ClasspathVariableSourceContainerTypeDelegate.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/ClasspathVariableSourceContainerTypeDelegate.java
index a7750ca..146bff0 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/ClasspathVariableSourceContainerTypeDelegate.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/ClasspathVariableSourceContainerTypeDelegate.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -21,11 +21,11 @@
 
 /**
  * Classpath variable source container type.
- * 
+ *
  * @since 3.0
  */
 public class ClasspathVariableSourceContainerTypeDelegate extends AbstractSourceContainerTypeDelegate {
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainerTypeDelegate#createSourceContainer(java.lang.String)
 	 */
@@ -37,13 +37,13 @@
 			if ("classpathVariable".equals(element.getNodeName())) { //$NON-NLS-1$
 				String string = element.getAttribute("path"); //$NON-NLS-1$
 				if (string == null || string.length() == 0) {
-					abort(LaunchingMessages.ClasspathVariableSourceContainerTypeDelegate_5, null); 
+					abort(LaunchingMessages.ClasspathVariableSourceContainerTypeDelegate_5, null);
 				}
 				return new ClasspathVariableSourceContainer(new Path(string));
-			} 
-			abort(LaunchingMessages.ClasspathVariableSourceContainerTypeDelegate_6, null); 
+			}
+			abort(LaunchingMessages.ClasspathVariableSourceContainerTypeDelegate_6, null);
 		}
-		abort(LaunchingMessages.ClasspathVariableSourceContainerTypeDelegate_7, null); 
+		abort(LaunchingMessages.ClasspathVariableSourceContainerTypeDelegate_7, null);
 		return null;
 	}
 	/* (non-Javadoc)
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/CompositeId.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/CompositeId.java
index 26f280f..12c0424 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/CompositeId.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/CompositeId.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -17,13 +17,13 @@
  */
 public class CompositeId {
 	private String[] fParts;
-	
+
 	public CompositeId(String[] parts) {
 		fParts= parts;
 	}
-	
+
 	public static CompositeId fromString(String idString) {
-		ArrayList<String> parts= new ArrayList<String>();
+		ArrayList<String> parts= new ArrayList<>();
 		int commaIndex= idString.indexOf(',');
 		while (commaIndex > 0) {
 			int length= Integer.valueOf(idString.substring(0, commaIndex)).intValue();
@@ -35,7 +35,7 @@
 		String[] result= parts.toArray(new String[parts.size()]);
 		return new CompositeId(result);
 	}
-	
+
 	@Override
 	public String toString() {
 		StringBuffer buf= new StringBuffer();
@@ -46,11 +46,11 @@
 		}
 		return buf.toString();
 	}
-	
+
 	public String get(int index) {
 		return fParts[index];
 	}
-	
+
 	public int getPartCount() {
 		return fParts.length;
 	}
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/DefaultEntryResolver.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/DefaultEntryResolver.java
index d9ed7e1..c2a33ed 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/DefaultEntryResolver.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/DefaultEntryResolver.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -34,7 +34,7 @@
 	public IRuntimeClasspathEntry[] resolveRuntimeClasspathEntry(IRuntimeClasspathEntry entry, ILaunchConfiguration configuration) throws CoreException {
 		IRuntimeClasspathEntry2 entry2 = (IRuntimeClasspathEntry2)entry;
 		IRuntimeClasspathEntry[] entries = entry2.getRuntimeClasspathEntries(configuration);
-		List<IRuntimeClasspathEntry> resolved = new ArrayList<IRuntimeClasspathEntry>();
+		List<IRuntimeClasspathEntry> resolved = new ArrayList<>();
 		for (int i = 0; i < entries.length; i++) {
 			IRuntimeClasspathEntry[] temp = JavaRuntime.resolveRuntimeClasspathEntry(entries[i], configuration);
 			for (int j = 0; j < temp.length; j++) {
@@ -50,7 +50,7 @@
 	public IRuntimeClasspathEntry[] resolveRuntimeClasspathEntry(IRuntimeClasspathEntry entry, IJavaProject project) throws CoreException {
 		IRuntimeClasspathEntry2 entry2 = (IRuntimeClasspathEntry2)entry;
 		IRuntimeClasspathEntry[] entries = entry2.getRuntimeClasspathEntries(null);
-		List<IRuntimeClasspathEntry> resolved = new ArrayList<IRuntimeClasspathEntry>();
+		List<IRuntimeClasspathEntry> resolved = new ArrayList<>();
 		for (int i = 0; i < entries.length; i++) {
 			IRuntimeClasspathEntry[] temp = JavaRuntime.resolveRuntimeClasspathEntry(entries[i], project);
 			for (int j = 0; j < temp.length; j++) {
@@ -59,7 +59,7 @@
 		}
 		return resolved.toArray(new IRuntimeClasspathEntry[resolved.size()]);
 	}
-		
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.IRuntimeClasspathEntryResolver#resolveVMInstall(org.eclipse.jdt.core.IClasspathEntry)
 	 */
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/DefaultProjectClasspathEntry.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/DefaultProjectClasspathEntry.java
index 7f5e1ee..472fbbd 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/DefaultProjectClasspathEntry.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/DefaultProjectClasspathEntry.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -39,30 +39,30 @@
  */
 @SuppressWarnings("deprecation")
 public class DefaultProjectClasspathEntry extends AbstractRuntimeClasspathEntry {
-	
+
 	public static final String TYPE_ID = "org.eclipse.jdt.launching.classpathentry.defaultClasspath"; //$NON-NLS-1$
-	
+
 	/**
 	 * Whether only exported entries should be on the runtime classpath.
 	 * By default all entries are on the runtime classpath.
 	 */
 	private boolean fExportedEntriesOnly = false;
-	
+
 	/**
 	 * Default constructor need to instantiate extensions
 	 */
 	public DefaultProjectClasspathEntry() {
 	}
-	
+
 	/**
 	 * Constructs a new classpath entry for the given project.
-	 * 
+	 *
 	 * @param project Java project
 	 */
 	public DefaultProjectClasspathEntry(IJavaProject project) {
 		setJavaProject(project);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.launching.AbstractRuntimeClasspathEntry#buildMemento(org.w3c.dom.Document, org.w3c.dom.Element)
 	 */
@@ -71,7 +71,7 @@
 		memento.setAttribute("project", getJavaProject().getElementName()); //$NON-NLS-1$
 		memento.setAttribute("exportedEntriesOnly", Boolean.toString(fExportedEntriesOnly)); //$NON-NLS-1$
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.IRuntimeClasspathEntry2#initializeFrom(org.w3c.dom.Element)
 	 */
@@ -79,8 +79,8 @@
 	public void initializeFrom(Element memento) throws CoreException {
 		String name = memento.getAttribute("project"); //$NON-NLS-1$
 		if (name == null) {
-			abort(LaunchingMessages.DefaultProjectClasspathEntry_3, null); 
-		}		
+			abort(LaunchingMessages.DefaultProjectClasspathEntry_3, null);
+		}
 		IJavaProject project = JavaCore.create(ResourcesPlugin.getWorkspace().getRoot().getProject(name));
 		setJavaProject(project);
 		name = memento.getAttribute("exportedEntriesOnly"); //$NON-NLS-1$
@@ -102,11 +102,11 @@
 	public int getType() {
 		return OTHER;
 	}
-	
+
 	protected IProject getProject() {
 		return getJavaProject().getProject();
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.IRuntimeClasspathEntry#getLocation()
 	 */
@@ -114,7 +114,7 @@
 	public String getLocation() {
 		return getProject().getLocation().toOSString();
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.IRuntimeClasspathEntry#getPath()
 	 */
@@ -122,7 +122,7 @@
 	public IPath getPath() {
 		return getProject().getFullPath();
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.IRuntimeClasspathEntry#getResource()
 	 */
@@ -130,15 +130,15 @@
 	public IResource getResource() {
 		return getProject();
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.IRuntimeClasspathEntry2#getRuntimeClasspathEntries(org.eclipse.debug.core.ILaunchConfiguration)
 	 */
 	@Override
 	public IRuntimeClasspathEntry[] getRuntimeClasspathEntries(ILaunchConfiguration configuration) throws CoreException {
 		IClasspathEntry entry = JavaCore.newProjectEntry(getJavaProject().getProject().getFullPath());
-		List<Object> classpathEntries = new ArrayList<Object>(5);
-		List<IClasspathEntry> expanding = new ArrayList<IClasspathEntry>(5);
+		List<Object> classpathEntries = new ArrayList<>(5);
+		List<IClasspathEntry> expanding = new ArrayList<>(5);
 		expandProject(entry, classpathEntries, expanding);
 		IRuntimeClasspathEntry[] runtimeEntries = new IRuntimeClasspathEntry[classpathEntries.size()];
 		for (int i = 0; i < runtimeEntries.length; i++) {
@@ -147,23 +147,23 @@
 				IClasspathEntry cpe = (IClasspathEntry)e;
 				runtimeEntries[i] = new RuntimeClasspathEntry(cpe);
 			} else {
-				runtimeEntries[i] = (IRuntimeClasspathEntry)e;				
+				runtimeEntries[i] = (IRuntimeClasspathEntry)e;
 			}
 		}
 		// remove bootpath entries - this is a default user classpath
-		List<IRuntimeClasspathEntry> ordered = new ArrayList<IRuntimeClasspathEntry>(runtimeEntries.length);
+		List<IRuntimeClasspathEntry> ordered = new ArrayList<>(runtimeEntries.length);
 		for (int i = 0; i < runtimeEntries.length; i++) {
 			if (runtimeEntries[i].getClasspathProperty() == IRuntimeClasspathEntry.USER_CLASSES) {
 				ordered.add(runtimeEntries[i]);
-			} 
+			}
 		}
-		return ordered.toArray(new IRuntimeClasspathEntry[ordered.size()]);		
+		return ordered.toArray(new IRuntimeClasspathEntry[ordered.size()]);
 	}
-	
+
 	/**
 	 * Returns the transitive closure of classpath entries for the
 	 * given project entry.
-	 * 
+	 *
 	 * @param projectEntry project classpath entry
 	 * @param expandedPath a list of entries already expanded, should be empty
 	 * to begin, and contains the result
@@ -188,9 +188,9 @@
 			expandedPath.add(projectEntry);
 			return;
 		}
-		
+
 		IClasspathEntry[] buildPath = project.getRawClasspath();
-		List<IClasspathEntry> unexpandedPath = new ArrayList<IClasspathEntry>(buildPath.length);
+		List<IClasspathEntry> unexpandedPath = new ArrayList<>(buildPath.length);
 		boolean projectAdded = false;
 		for (int i = 0; i < buildPath.length; i++) {
 			IClasspathEntry classpathEntry = buildPath[i];
@@ -233,13 +233,13 @@
 									break;
 								case IClasspathContainer.K_DEFAULT_SYSTEM:
 									property = IRuntimeClasspathEntry.STANDARD_CLASSES;
-									break;	
+									break;
 								case IClasspathContainer.K_SYSTEM:
 									property = IRuntimeClasspathEntry.BOOTSTRAP_CLASSES;
 									break;
 							}
 							IRuntimeClasspathEntry r = JavaRuntime.newRuntimeContainerClasspathEntry(entry.getPath(), property, project);
-							// check for duplicate/redundant entries 
+							// check for duplicate/redundant entries
 							boolean duplicate = false;
 							ClasspathContainerInitializer initializer = JavaCore.getClasspathContainerInitializer(r.getPath().segment(0));
 							for (int i = 0; i < expandedPath.size(); i++) {
@@ -281,7 +281,7 @@
 							}
 							if (!duplicate) {
 								expandedPath.add(r);
-							}	
+							}
 						}
 						break;
 					case IClasspathEntry.CPE_VARIABLE:
@@ -315,7 +315,7 @@
 			}
 		}
 		return;
-	}	
+	}
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.IRuntimeClasspathEntry2#isComposite()
 	 */
@@ -331,7 +331,7 @@
 		if (isExportedEntriesOnly()) {
 			return NLS.bind(LaunchingMessages.DefaultProjectClasspathEntry_2, new String[] {getJavaProject().getElementName()});
 		}
-		return NLS.bind(LaunchingMessages.DefaultProjectClasspathEntry_4, new String[] {getJavaProject().getElementName()}); 
+		return NLS.bind(LaunchingMessages.DefaultProjectClasspathEntry_4, new String[] {getJavaProject().getElementName()});
 	}
 	/* (non-Javadoc)
 	 * @see java.lang.Object#equals(java.lang.Object)
@@ -352,11 +352,11 @@
 	public int hashCode() {
 		return getJavaProject().hashCode();
 	}
-	
+
 	/**
 	 * Sets whether the runtime classpath computation should only
 	 * include exported entries in referenced projects.
-	 * 
+	 *
 	 * @param exportedOnly if the runtime classpath computation should only
 	 * include exported entries in referenced projects.
 	 * @since 3.2
@@ -364,20 +364,20 @@
 	public void setExportedEntriesOnly(boolean exportedOnly) {
 		fExportedEntriesOnly = exportedOnly;
 	}
-	
+
 	/**
 	 * Returns whether the classpath computation only includes exported
 	 * entries in referenced projects.
-	 * 
+	 *
 	 * @return if the classpath computation only includes exported
 	 * entries in referenced projects.
 	 * @since 3.2
 	 */
 	public boolean isExportedEntriesOnly() {
 		return fExportedEntriesOnly | Platform.getPreferencesService().getBoolean(
-				LaunchingPlugin.ID_PLUGIN, 
-				JavaRuntime.PREF_ONLY_INCLUDE_EXPORTED_CLASSPATH_ENTRIES, 
-				false, 
+				LaunchingPlugin.ID_PLUGIN,
+				JavaRuntime.PREF_ONLY_INCLUDE_EXPORTED_CLASSPATH_ENTRIES,
+				false,
 				null);
 	}
 }
\ No newline at end of file
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/EECompilationParticipant.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/EECompilationParticipant.java
index e995b10..246dac1 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/EECompilationParticipant.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/EECompilationParticipant.java
@@ -36,16 +36,16 @@
 
 /**
  * Creates build path errors related to execution environment bindings.
- * 
+ *
  * @since 3.5
  */
 public class EECompilationParticipant extends CompilationParticipant {
-	
+
 	/**
 	 * A set of projects that have been cleaned. When the build finishes for
 	 * a project that has been cleaned, we check for EE problems.
 	 */
-	private Set<IJavaProject> fCleaned = new HashSet<IJavaProject>();
+	private Set<IJavaProject> fCleaned = new HashSet<>();
 
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.core.compiler.CompilationParticipant#isActive(org.eclipse.jdt.core.IJavaProject)
@@ -54,7 +54,7 @@
 	public boolean isActive(IJavaProject project) {
 		return true;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.core.compiler.CompilationParticipant#cleanStarting(org.eclipse.jdt.core.IJavaProject)
 	 */
@@ -63,7 +63,7 @@
 		super.cleanStarting(project);
 		fCleaned.add(project);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.core.compiler.CompilationParticipant#buildFinished(org.eclipse.jdt.core.IJavaProject)
 	 */
@@ -91,14 +91,14 @@
 			if (container != null && eeId != null) {
 				IVMInstall vm = JREContainerInitializer.resolveVM(container);
 				validateEnvironment(eeId, project, vm);
-				
+
 			}
 		}
 	}
-	
+
 	/**
 	 * Validates the environment, creating a problem marker for the project as required.
-	 * 
+	 *
 	 * @param id execution environment ID
 	 * @param project associated project
 	 * @param vm VM binding resolved for the project
@@ -139,21 +139,21 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Returns the severity for the specific key from the given {@link IProject},
 	 * or -1 if the problem should be ignored.
 	 * If the project does not have project specific settings, the workspace preference
 	 * is returned. If <code>null</code> is passed in as the project the workspace
 	 * preferences are consulted.
-	 * 
+	 *
 	 * @param prefkey the given preference key
 	 * @param project the given project or <code>null</code>
 	 * @return the severity level for the given preference key or -1
 	 */
 	private int getSeverityLevel(String prefkey, IProject project) {
 		IPreferencesService service = Platform.getPreferencesService();
-		List<IScopeContext> scopes = new ArrayList<IScopeContext>();
+		List<IScopeContext> scopes = new ArrayList<>();
 		scopes.add(InstanceScope.INSTANCE);
 		if(project != null) {
 			scopes.add(new ProjectScope(project));
@@ -172,8 +172,8 @@
 			return IMarker.SEVERITY_INFO;
 		}
 		return -1;
-	}	
-	
+	}
+
 	/**
 	 * creates a problem marker for a JRE container problem
 	 * @param javaProject the {@link IJavaProject}
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/EEVMInstall.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/EEVMInstall.java
index 81dbb42..008e9b5 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/EEVMInstall.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/EEVMInstall.java
@@ -16,26 +16,26 @@
 
 /**
  * A VM install created from an execution environment description file.
- * 
+ *
  * @since 3.4
  */
 public class EEVMInstall extends StandardVM {
-	
+
 	/**
 	 * Attribute key for Java version property
 	 */
 	public static final String ATTR_JAVA_VERSION = "ATTR_JAVA_VERSION"; //$NON-NLS-1$
-	
+
 	/**
 	 * Attribute key for supported execution environment by this runtime
 	 */
 	public static final String ATTR_EXECUTION_ENVIRONMENT_ID = "ATTR_EXECUTION_ENVIRONMENT_ID"; //$NON-NLS-1$
-	
+
 	/**
 	 * Attribute key for Java executable used by this VM
 	 */
 	public static final String ATTR_JAVA_EXE = "ATTR_JAVA_EXE"; //$NON-NLS-1$
-	
+
 	/**
 	 * Attribute key for VM debug arguments
 	 */
@@ -45,10 +45,10 @@
 	 * Path to file used to define the JRE
 	 */
 	public static final String ATTR_DEFINITION_FILE = "ATTR_DEFINITION_FILE"; //$NON-NLS-1$
-	
+
 	/**
 	 * Constructs a VM install.
-	 * 
+	 *
 	 * @param type vm type
 	 * @param id unique id
 	 */
@@ -75,7 +75,7 @@
 		}
 		return null;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.launching.StandardVM#getDebugArgs()
 	 */
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/EEVMType.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/EEVMType.java
index c7883ca..8127345 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/EEVMType.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/EEVMType.java
@@ -27,11 +27,11 @@
 /**
  * Utility class for Standard VM type. Used to generate/retrieve information for
  * VMs defined by EE property file.
- * 
+ *
  * @since 3.4
  */
 public class EEVMType extends AbstractVMInstallType {
-	
+
 	/**
 	 * VM Type id
 	 */
@@ -42,22 +42,22 @@
 	 * to support absolute path names where needed.
 	 */
 	public static final String VAR_EE_HOME = "${ee.home}"; //$NON-NLS-1$
-	
+
 	private static final String[] REQUIRED_PROPERTIES = new String[]{
 		ExecutionEnvironmentDescription.EXECUTABLE,
 		ExecutionEnvironmentDescription.BOOT_CLASS_PATH,
 		ExecutionEnvironmentDescription.LANGUAGE_LEVEL,
 		ExecutionEnvironmentDescription.JAVA_HOME};
-		
+
 	/**
 	 * Returns the default javadoc location specified in the properties or <code>null</code>
 	 * if none.
-	 * 
+	 *
 	 * @param properties properties map
 	 * @return javadoc location specified in the properties or <code>null</code> if none
 	 */
 	public static URL getJavadocLocation(Map<String, String> properties) {
-		String javadoc = getProperty(ExecutionEnvironmentDescription.JAVADOC_LOC, properties); 
+		String javadoc = getProperty(ExecutionEnvironmentDescription.JAVADOC_LOC, properties);
 		if (javadoc != null && javadoc.length() > 0){
 			try{
 				URL url = new URL(javadoc);
@@ -79,18 +79,18 @@
 			return StandardVMType.getDefaultJavadocLocation(version);
 		}
 		return null;
-	}	
+	}
 
 	/**
 	 * Returns the default index location specified in the properties or <code>null</code>
 	 * if none.
-	 * 
+	 *
 	 * @param properties properties map
 	 * @return index location specified in the properties or <code>null</code> if none
 	 * @since 3.7.0
 	 */
 	public static URL getIndexLocation(Map<String, String> properties) {
-		String index = getProperty(ExecutionEnvironmentDescription.INDEX_LOC, properties); 
+		String index = getProperty(ExecutionEnvironmentDescription.INDEX_LOC, properties);
 		if (index != null && index.length() > 0){
 			try{
 				URL url = new URL(index);
@@ -109,10 +109,10 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Returns a status indicating if the given definition file is valid.
-	 * 
+	 *
 	 * @param description definition file
 	 * @return status indicating if the given definition file is valid
 	 */
@@ -131,7 +131,7 @@
 	/**
 	 * Returns the specified property value from the given map, as a {@link String},
 	 * or <code>null</code> if none.
-	 * 
+	 *
 	 * @param property the name of the property
 	 * @param properties property map
 	 * @return value or <code>null</code>
@@ -139,7 +139,7 @@
 	private static String getProperty(String property, Map<String, String> properties) {
 		return properties.get(property);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.AbstractVMInstallType#doCreateVMInstall(java.lang.String)
 	 */
@@ -182,5 +182,5 @@
 		}
 		return new Status(IStatus.ERROR, LaunchingPlugin.ID_PLUGIN, NLS.bind(LaunchingMessages.EEVMType_3, new String[]{installLocation.getPath()}));
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JREContainer.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JREContainer.java
index e1d780a..3c672af 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JREContainer.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JREContainer.java
@@ -7,7 +7,7 @@
  *
  * Contributors:
  *     IBM Corporation - initial API and implementation
- *     Frits Jalvingh - Contribution for Bug 459831 - [launching] Support attaching 
+ *     Frits Jalvingh - Contribution for Bug 459831 - [launching] Support attaching
  *     	external annotations to a JRE container
  *******************************************************************************/
 package org.eclipse.jdt.internal.launching;
@@ -36,7 +36,7 @@
 import org.eclipse.jdt.launching.environments.IExecutionEnvironment;
 import org.eclipse.osgi.util.NLS;
 
-/** 
+/**
  * JRE Container - resolves a classpath container variable to a JRE
  */
 public class JREContainer implements IClasspathContainer {
@@ -45,32 +45,32 @@
 	 * Corresponding JRE
 	 */
 	private IVMInstall fVMInstall = null;
-	
+
 	/**
 	 * Container path used to resolve to this JRE
 	 */
 	private IPath fPath = null;
-	
+
 	/**
 	 * The project this container is for
 	 */
 	private IJavaProject fProject = null;
-	
+
 	/**
 	 * Cache of classpath entries per VM install. Cleared when a VM changes.
 	 */
-	private static Map<IVMInstall, IClasspathEntry[]> fgClasspathEntries = new HashMap<IVMInstall, IClasspathEntry[]>(10);
-	
+	private static Map<IVMInstall, IClasspathEntry[]> fgClasspathEntries = new HashMap<>(10);
+
 	/**
 	 * Variable to return an empty array of <code>IAccessRule</code>s
 	 */
 	private static IAccessRule[] EMPTY_RULES = new IAccessRule[0];
-	
+
 	/**
-	 * Map of {IVMInstall -> Map of {{IExeuctionEnvironment, IAccessRule[][]} -> {IClasspathEntry[]}} 
+	 * Map of {IVMInstall -> Map of {{IExeuctionEnvironment, IAccessRule[][]} -> {IClasspathEntry[]}}
 	 */
-	private static Map<RuleKey, RuleEntry> fgClasspathEntriesWithRules = new HashMap<RuleKey, RuleEntry>(10);
-	
+	private static Map<RuleKey, RuleEntry> fgClasspathEntriesWithRules = new HashMap<>(10);
+
 	/**
 	 * A single key entry for the cache of access rules and classpath entries
 	 * A rule key is made up of an <code>IVMInstall</code> and an execution environment id
@@ -79,7 +79,7 @@
 	static class RuleKey {
 		private String fEnvironmentId = null;
 		private IVMInstall fInstall = null;
-		
+
 		/**
 		 * Constructor
 		 * @param install the VM
@@ -89,7 +89,7 @@
 			fInstall = install;
 			fEnvironmentId = environmentId;
 		}
-		
+
 		/* (non-Javadoc)
 		 * @see java.lang.Object#equals(java.lang.Object)
 		 */
@@ -101,7 +101,7 @@
 			}
 			return false;
 		}
-		
+
 		/* (non-Javadoc)
 		 * @see java.lang.Object#hashCode()
 		 */
@@ -110,16 +110,16 @@
 			return fEnvironmentId.hashCode() + fInstall.hashCode();
 		}
 	}
-	
+
 	/**
 	 * Holds an entry for the cache of access rules/classpath entries.
-	 * An entry is made up of an array of classpath entries and the collection of access rules. 
+	 * An entry is made up of an array of classpath entries and the collection of access rules.
 	 * @since 3.3
 	 */
 	static class RuleEntry {
 		private IAccessRule[][] fRules = null;
 		private IClasspathEntry[] fEntries = null;
-		
+
 		/**
 		 * Constructor
 		 * @param rules the rules
@@ -129,7 +129,7 @@
 			fRules = rules;
 			fEntries = entries;
 		}
-		
+
 		/**
 		 * Returns the collection of classpath entries for this RuleEntry
 		 * @return the cached array of classpath entries
@@ -137,7 +137,7 @@
 		public IClasspathEntry[] getClasspathEntries() {
 			return fEntries;
 		}
-		
+
 		/* (non-Javadoc)
 		 * @see java.lang.Object#equals(java.lang.Object)
 		 */
@@ -165,11 +165,11 @@
 			}
 			return false;
 		}
-		
+
 		/**
 		 * Checks if the two arrays of rules are equal (same rules in each position in the array)
-		 * 
-		 * @param a First list of rules to compare, must not be <code>null</code> 
+		 *
+		 * @param a First list of rules to compare, must not be <code>null</code>
 		 * @param b Second list of rules to compare, must not be <code>null</code>
 		 * @return <code>true</code> if the arrays are equal, <code>false</code> otherwise
 		 */
@@ -188,7 +188,7 @@
 			return true;
 		}
 	}
-	
+
 	/**
 	 * Add a VM changed listener to clear cached values when a VM changes or is removed
 	 */
@@ -200,7 +200,7 @@
 			 */
 			@Override
 			public void defaultVMInstallChanged(IVMInstall previous, IVMInstall current) {}
-			
+
 			/* (non-Javadoc)
 			 * @see org.eclipse.jdt.launching.IVMInstallChangedListener#vmAdded(org.eclipse.jdt.launching.IVMInstall)
 			 */
@@ -226,7 +226,7 @@
 				fgClasspathEntries.remove(removedVm);
 				removeRuleEntry(removedVm);
 			}
-			
+
 			/**
 			 * Removes all occurrences of the given VM found as part key members in the current
 			 * cache for classpath entries
@@ -236,7 +236,7 @@
 				if(obj instanceof IVMInstall) {
 					IVMInstall install = (IVMInstall) obj;
 					RuleKey key = null;
-					ArrayList<RuleKey> list = new ArrayList<RuleKey>();
+					ArrayList<RuleKey> list = new ArrayList<>();
 					for(Iterator<RuleKey> iter = fgClasspathEntriesWithRules.keySet().iterator(); iter.hasNext();) {
 						key  = iter.next();
 						if(key.fInstall.equals(install)) {
@@ -251,11 +251,11 @@
 		};
 		JavaRuntime.addVMInstallChangedListener(listener);
 	}
-	
+
 	/**
 	 * Returns the classpath entries associated with the given VM
 	 * in the context of the given path and project.
-	 * 
+	 *
 	 * @param vm the VM
 	 * @param containerPath the container path resolution is for
 	 * @param project project the resolution is for
@@ -280,11 +280,11 @@
 		}
 		return entries;
 	}
-	
+
 	/**
 	 * Computes the classpath entries associated with a VM - one entry per library
 	 * in the context of the given path and project.
-	 * 
+	 *
 	 * @param vm the VM
 	 * @param project the project the resolution is for
 	 * @param environmentId execution environment the resolution is for, or <code>null</code>
@@ -313,7 +313,7 @@
 				return entry.getClasspathEntries();
 			}
 		}
-		List<IClasspathEntry> entries = new ArrayList<IClasspathEntry>(libs.length);
+		List<IClasspathEntry> entries = new ArrayList<>(libs.length);
 		for (int i = 0; i < libs.length; i++) {
 			if (!libs[i].getSystemLibraryPath().isEmpty()) {
 				IPath sourcePath = libs[i].getSystemLibrarySourcePath();
@@ -339,12 +339,12 @@
 		if (key != null && rules != null) {
 			fgClasspathEntriesWithRules.put(key, new RuleEntry(rules, cpEntries));
 		}
-		return cpEntries;		
+		return cpEntries;
 	}
 
 	private static IClasspathAttribute[] buildClasspathAttributes(final IVMInstall vm, final LibraryLocation lib, final boolean overrideJavaDoc) {
-	
-		List<IClasspathAttribute> classpathAttributes = new LinkedList<IClasspathAttribute>();
+
+		List<IClasspathAttribute> classpathAttributes = new LinkedList<>();
 		// process the javadoc location
 		URL javadocLocation = lib.getJavadocLocation();
 		if (overrideJavaDoc && javadocLocation == null) {
@@ -368,10 +368,10 @@
 
 		return classpathAttributes.toArray(new IClasspathAttribute[classpathAttributes.size()]);
 	}
-	
+
 	/**
 	 * Constructs a JRE classpath container on the given VM install
-	 * 
+	 *
 	 * @param vm VM install - cannot be <code>null</code>
 	 * @param path container path used to resolve this JRE
 	 * @param project the project context
@@ -381,7 +381,7 @@
 		fPath = path;
 		fProject = project;
 	}
-	
+
 	/**
 	 * @see IClasspathContainer#getClasspathEntries()
 	 */
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JREContainerInitializer.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JREContainerInitializer.java
index 6590850..e8bb817 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JREContainerInitializer.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JREContainerInitializer.java
@@ -7,7 +7,7 @@
  *
  * Contributors:
  *     IBM Corporation - initial API and implementation
- *     Frits Jalvingh - Contribution for Bug 459831 - [launching] Support attaching 
+ *     Frits Jalvingh - Contribution for Bug 459831 - [launching] Support attaching
  *     	external annotations to a JRE container
  *******************************************************************************/
 package org.eclipse.jdt.internal.launching;
@@ -73,7 +73,7 @@
 			} else {
 				if (LaunchingPlugin.DEBUG_JRE_CONTAINER) {
 					LaunchingPlugin.trace("\t*** INVALID JRE CONTAINER PATH ***"); //$NON-NLS-1$
-				}	
+				}
 			}
 		} else {
 			if (LaunchingPlugin.DEBUG_JRE_CONTAINER) {
@@ -81,10 +81,10 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Sets the specified class path container for all of the given projects.
-	 *  
+	 *
 	 * @param containerPath JRE container path
 	 * @param projects projects set the container on
 	 * @throws CoreException on failure
@@ -112,7 +112,7 @@
 			} else {
 				if (LaunchingPlugin.DEBUG_JRE_CONTAINER) {
 					LaunchingPlugin.trace("\t*** INVALID JRE CONTAINER PATH ***"); //$NON-NLS-1$
-				}	
+				}
 			}
 		} else {
 			if (LaunchingPlugin.DEBUG_JRE_CONTAINER) {
@@ -120,7 +120,7 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Returns the VM install associated with the container path, or <code>null</code>
 	 * if it does not exist.
@@ -157,14 +157,14 @@
 		} else {
 			// workspace default JRE
 			vm = JavaRuntime.getDefaultVMInstall();
-		}		
+		}
 		return vm;
 	}
-	
+
 	/**
 	 * Returns the VM install bound to the given execution environment
 	 * or <code>null</code>.
-	 * 
+	 *
 	 * @param environment the environment
 	 * @return VM install or <code>null</code>
 	 * @since 3.2
@@ -209,11 +209,11 @@
 		}
 		return vm;
 	}
-	
+
 	/**
 	 * Returns the segment from the path containing the execution environment id
 	 * or <code>null</code>
-	 * 
+	 *
 	 * @param path container path
 	 * @return EE id
 	 */
@@ -229,54 +229,54 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Returns whether the given path identifies a VM by execution environment.
-	 * 
+	 *
 	 * @param path the path
 	 * @return whether the given path identifies a VM by execution environment
 	 */
 	public static boolean isExecutionEnvironment(IPath path) {
 		return getExecutionEnvironmentId(path) != null;
 	}
-	
+
 	/**
 	 * Escapes forward slashes in environment id.
-	 * 
+	 *
 	 * @param id the environment id
 	 * @return escaped name
 	 */
 	public static String encodeEnvironmentId(String id) {
 		return id.replace('/', '%');
 	}
-	
+
 	public static String decodeEnvironmentId(String id) {
 		return id.replace('%', '/');
 	}
-	
+
 	/**
 	 * Returns the VM type identifier from the given container ID path.
-	 * 
+	 *
 	 * @param path the path
 	 * @return the VM type identifier from the given container ID path
 	 */
 	public static String getVMTypeId(IPath path) {
 		return path.segment(1);
 	}
-	
+
 	/**
 	 * Returns the VM name from the given container ID path.
-	 * 
+	 *
 	 * @param path the path
 	 * @return the VM name from the given container ID path
 	 */
 	public static String getVMName(IPath path) {
 		return path.segment(2);
-	}	
-	
+	}
+
 	/**
 	 * The container can be updated if it refers to an existing VM.
-	 * 
+	 *
 	 * @see org.eclipse.jdt.core.ClasspathContainerInitializer#canUpdateClasspathContainer(org.eclipse.core.runtime.IPath, org.eclipse.jdt.core.IJavaProject)
 	 */
 	@Override
@@ -288,10 +288,10 @@
 		}
 		return false;
 	}
-	
+
 	private static final IStatus READ_ONLY= new Status(IStatus.ERROR, LaunchingPlugin.ID_PLUGIN, ClasspathContainerInitializer.ATTRIBUTE_READ_ONLY, new String(), null);
 	private static final IStatus NOT_SUPPORTED= new Status(IStatus.ERROR, LaunchingPlugin.ID_PLUGIN, ClasspathContainerInitializer.ATTRIBUTE_NOT_SUPPORTED, new String(), null);
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.core.ClasspathContainerInitializer#getAccessRulesStatus(org.eclipse.core.runtime.IPath, org.eclipse.jdt.core.IJavaProject)
 	 */
@@ -299,7 +299,7 @@
 	public IStatus getAccessRulesStatus(IPath containerPath, IJavaProject project) {
 		return READ_ONLY;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.core.ClasspathContainerInitializer#getSourceAttachmentStatus(org.eclipse.core.runtime.IPath, org.eclipse.jdt.core.IJavaProject)
 	 */
@@ -307,7 +307,7 @@
 	public IStatus getSourceAttachmentStatus(IPath containerPath, IJavaProject project) {
 		return Status.OK_STATUS;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.core.ClasspathContainerInitializer#getAttributeStatus(org.eclipse.core.runtime.IPath, org.eclipse.jdt.core.IJavaProject, java.lang.String)
 	 */
@@ -331,12 +331,12 @@
 	@Override
 	public void requestClasspathContainerUpdate(IPath containerPath, IJavaProject project, IClasspathContainer containerSuggestion) throws CoreException {
 		IVMInstall vm = resolveVM(containerPath);
-		if (vm == null) { 
-			IStatus status = new Status(IStatus.ERROR, LaunchingPlugin.getUniqueIdentifier(), IJavaLaunchConfigurationConstants.ERR_VM_INSTALL_DOES_NOT_EXIST, NLS.bind(LaunchingMessages.JREContainerInitializer_JRE_referenced_by_classpath_container__0__does_not_exist__1, new String[]{containerPath.toString()}), null); 
+		if (vm == null) {
+			IStatus status = new Status(IStatus.ERROR, LaunchingPlugin.getUniqueIdentifier(), IJavaLaunchConfigurationConstants.ERR_VM_INSTALL_DOES_NOT_EXIST, NLS.bind(LaunchingMessages.JREContainerInitializer_JRE_referenced_by_classpath_container__0__does_not_exist__1, new String[]{containerPath.toString()}), null);
 			throw new CoreException(status);
 		}
 		// update of the VM with new library locations
-		
+
 		IClasspathEntry[] entries = containerSuggestion.getClasspathEntries();
 		LibraryLocation[] libs = new LibraryLocation[entries.length];
 		for (int i = 0; i < entries.length; i++) {
@@ -380,11 +380,11 @@
 					}
 					libs[i] = new LibraryLocation(path, srcPath, rootPath, javadocLocation, null, externalAnnotations);
 				} else {
-					IStatus status = new Status(IStatus.ERROR, LaunchingPlugin.getUniqueIdentifier(), IJavaLaunchConfigurationConstants.ERR_INTERNAL_ERROR, NLS.bind(LaunchingMessages.JREContainerInitializer_Classpath_entry__0__does_not_refer_to_an_existing_library__2, new String[]{entry.getPath().toString()}), null); 
+					IStatus status = new Status(IStatus.ERROR, LaunchingPlugin.getUniqueIdentifier(), IJavaLaunchConfigurationConstants.ERR_INTERNAL_ERROR, NLS.bind(LaunchingMessages.JREContainerInitializer_Classpath_entry__0__does_not_refer_to_an_existing_library__2, new String[]{entry.getPath().toString()}), null);
 					throw new CoreException(status);
 				}
 			} else {
-				IStatus status = new Status(IStatus.ERROR, LaunchingPlugin.getUniqueIdentifier(), IJavaLaunchConfigurationConstants.ERR_INTERNAL_ERROR, NLS.bind(LaunchingMessages.JREContainerInitializer_Classpath_entry__0__does_not_refer_to_a_library__3, new String[]{entry.getPath().toString()}), null); 
+				IStatus status = new Status(IStatus.ERROR, LaunchingPlugin.getUniqueIdentifier(), IJavaLaunchConfigurationConstants.ERR_INTERNAL_ERROR, NLS.bind(LaunchingMessages.JREContainerInitializer_Classpath_entry__0__does_not_refer_to_a_library__3, new String[]{entry.getPath().toString()}), null);
 				throw new CoreException(status);
 			}
 		}
@@ -405,7 +405,7 @@
 		}
 		if (tag != null) {
 			return NLS.bind(LaunchingMessages.JREContainer_JRE_System_Library_1, new String[]{tag});
-		} 
-		return LaunchingMessages.JREContainerInitializer_Default_System_Library_1; 
+		}
+		return LaunchingMessages.JREContainerInitializer_Default_System_Library_1;
 	}
 }
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JREPreferenceModifyListener.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JREPreferenceModifyListener.java
index 2ca2ed2..723a34c 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JREPreferenceModifyListener.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JREPreferenceModifyListener.java
@@ -31,11 +31,11 @@
 
 /**
  * Manages import of installed JREs. Merges valid imported JREs with existing JREs.
- * 
+ *
  * @since 3.1
  */
 public class JREPreferenceModifyListener extends PreferenceModifyListener {
-	
+
 	class Visitor implements IPreferenceNodeVisitor {
 
 		@Override
@@ -46,8 +46,8 @@
 					VMDefinitionsContainer vms = new VMDefinitionsContainer();
 					String pref = InstanceScope.INSTANCE.getNode(LaunchingPlugin.ID_PLUGIN).get(JavaRuntime.PREF_VM_XML, ""); //$NON-NLS-1$
 					// names -> existing vm's
-					Map<String, IVMInstall> names = new HashMap<String, IVMInstall>();
-					Set<String> ids = new HashSet<String>();
+					Map<String, IVMInstall> names = new HashMap<>();
+					Set<String> ids = new HashSet<>();
 					if (pref.length() > 0) {
 						try {
 							VMDefinitionsContainer container = VMDefinitionsContainer.parseXMLIntoContainer(new ByteArrayInputStream(pref.getBytes("UTF8"))); //$NON-NLS-1$
@@ -83,12 +83,12 @@
 							boolean collision = ids.contains(vm.getId());
 							if (collision) {
 								// conflicting id, create a new one with unique id
-								long unique = System.currentTimeMillis();	
+								long unique = System.currentTimeMillis();
 								while(ids.contains(String.valueOf(unique))){
 									unique++;
 								}
 								vm = new VMStandin(vm, String.valueOf(unique));
-								ids.add(vm.getId()); 
+								ids.add(vm.getId());
 							}
 							vms.addVM(vm);
 						}
@@ -119,7 +119,7 @@
 			}
 			return true;
 		}
-		
+
 	}
 
 	@Override
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JRERuntimeClasspathEntryResolver.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JRERuntimeClasspathEntryResolver.java
index edc4767..381c0c9 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JRERuntimeClasspathEntryResolver.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JRERuntimeClasspathEntryResolver.java
@@ -38,7 +38,7 @@
  * Resolves for JRELIB_VARIABLE and JRE_CONTAINER
  */
 public class JRERuntimeClasspathEntryResolver implements IRuntimeClasspathEntryResolver2 {
-	
+
 	private static IAccessRule[] EMPTY_RULES = new IAccessRule[0];
 
 	/**
@@ -49,7 +49,7 @@
 		IVMInstall jre = null;
 		if (entry.getType() == IRuntimeClasspathEntry.CONTAINER && entry.getPath().segmentCount() > 1) {
 			// a specific VM
-			jre = JREContainerInitializer.resolveVM(entry.getPath()); 
+			jre = JREContainerInitializer.resolveVM(entry.getPath());
 		} else {
 			// default VM for config
 			jre = JavaRuntime.computeVMInstall(configuration);
@@ -60,7 +60,7 @@
 		}
 		return resolveLibraryLocations(jre, entry.getClasspathProperty());
 	}
-	
+
 	/**
 	 * @see IRuntimeClasspathEntryResolver#resolveRuntimeClasspathEntry(IRuntimeClasspathEntry, IJavaProject)
 	 */
@@ -69,7 +69,7 @@
 		IVMInstall jre = null;
 		if (entry.getType() == IRuntimeClasspathEntry.CONTAINER && entry.getPath().segmentCount() > 1) {
 			// a specific VM
-			jre = JREContainerInitializer.resolveVM(entry.getPath()); 
+			jre = JREContainerInitializer.resolveVM(entry.getPath());
 		} else {
 			// default VM for project
 			jre = JavaRuntime.getVMInstall(project);
@@ -77,7 +77,7 @@
 		if (jre == null) {
 			// cannot resolve JRE
 			return new IRuntimeClasspathEntry[0];
-		}		
+		}
 		return resolveLibraryLocations(jre, entry.getClasspathProperty());
 	}
 
@@ -98,7 +98,7 @@
 		} else if (!isSameArchives(libs, defaultLibs)) {
 			// determine if bootpath should be explicit
 			kind = IRuntimeClasspathEntry.BOOTSTRAP_CLASSES;
-		}		
+		}
 		if (kind == IRuntimeClasspathEntry.BOOTSTRAP_CLASSES) {
 			File vmInstallLocation= vm.getInstallLocation();
 			if (vmInstallLocation != null) {
@@ -107,11 +107,11 @@
 					// only return endorsed and bootstrap classpath entries if we have the info
 					// libraries in the 'ext' directories are not loaded by the boot class loader
 					String[] extensionDirsArray = libraryInfo.getExtensionDirs();
-					Set<String> extensionDirsSet = new HashSet<String>();
+					Set<String> extensionDirsSet = new HashSet<>();
 					for (int i = 0; i < extensionDirsArray.length; i++) {
 						extensionDirsSet.add(extensionDirsArray[i]);
 					}
-					List<IRuntimeClasspathEntry> resolvedEntries = new ArrayList<IRuntimeClasspathEntry>(libs.length);
+					List<IRuntimeClasspathEntry> resolvedEntries = new ArrayList<>(libs.length);
 					for (int i = 0; i < libs.length; i++) {
 						LibraryLocation location = libs[i];
 						IPath libraryPath = location.getSystemLibraryPath();
@@ -125,7 +125,7 @@
 				}
 			}
 		}
-		List<IRuntimeClasspathEntry> resolvedEntries = new ArrayList<IRuntimeClasspathEntry>(libs.length);
+		List<IRuntimeClasspathEntry> resolvedEntries = new ArrayList<>(libs.length);
 		for (int i = 0; i < libs.length; i++) {
 			IPath systemLibraryPath = libs[i].getSystemLibraryPath();
 			if (systemLibraryPath.toFile().exists()) {
@@ -134,11 +134,11 @@
 		}
 		return resolvedEntries.toArray(new IRuntimeClasspathEntry[resolvedEntries.size()]);
 	}
-		
+
 	/**
 	 * Return whether the given list of libraries refer to the same archives in the same
-	 * order. Only considers the binary archive (not source or javadoc locations). 
-	 *  
+	 * order. Only considers the binary archive (not source or javadoc locations).
+	 *
 	 * @param libs the locations
 	 * @param defaultLibs the default locations
 	 * @return whether the given list of libraries refer to the same archives in the same
@@ -207,10 +207,10 @@
 		}
 		return false;
 	}
-	
+
 	/**
 	 * Returns a runtime classpath entry for the given library in the specified VM.
-	 * 
+	 *
 	 * @param vm the VM
 	 * @param location the location
 	 * @param kind the classpath entry kind
@@ -223,7 +223,7 @@
 		URL javadocLocation = location.getJavadocLocation();
 		if (overrideJavaDoc && javadocLocation == null) {
 			javadocLocation = vm.getJavadocLocation();
-		}							
+		}
 		IClasspathAttribute[] attributes = null;
 		if (javadocLocation == null) {
 			attributes = new IClasspathAttribute[0];
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaAppletLaunchConfigurationDelegate.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaAppletLaunchConfigurationDelegate.java
index 936948a..9090022 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaAppletLaunchConfigurationDelegate.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaAppletLaunchConfigurationDelegate.java
@@ -43,19 +43,19 @@
 import org.eclipse.jdt.launching.JavaRuntime;
 
 public class JavaAppletLaunchConfigurationDelegate extends JavaLaunchDelegate implements IDebugEventSetListener {
-		
+
 	/**
 	 * Mapping of ILaunch objects to File objects that represent the HTML file
 	 * used to initiate the applet launch.  This is used to delete the HTML
 	 * file when the launch terminates.
 	 */
-	private static Map<ILaunch, File> fgLaunchToFileMap = new HashMap<ILaunch, File>();
-	
+	private static Map<ILaunch, File> fgLaunchToFileMap = new HashMap<>();
+
 	/**
 	 * Used to map temporary file to launch object.
 	 */
 	private ILaunch fLaunch;
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.core.model.ILaunchConfigurationDelegate#launch(org.eclipse.debug.core.ILaunchConfiguration, java.lang.String, org.eclipse.debug.core.ILaunch, org.eclipse.core.runtime.IProgressMonitor)
 	 */
@@ -73,12 +73,12 @@
 
 	/**
 	 * Returns the system property string for the policy file
-	 * 
+	 *
 	 * @param workingDir the working directory
 	 * @return system property for the policy file
 	 */
 	public String getJavaPolicyFile(File workingDir) {
-			File file = new File(workingDir, "java.policy.applet");//$NON-NLS-1$ 
+			File file = new File(workingDir, "java.policy.applet");//$NON-NLS-1$
 			if (!file.exists()) {
 				// copy it to the working directory
 				File test = LaunchingPlugin.getFileInPlugin(new Path("java.policy.applet")); //$NON-NLS-1$
@@ -94,7 +94,7 @@
 
 	/**
 	 * Using the specified launch configuration, build an HTML file that specifies the applet to launch. Return the name of the HTML file.
-	 * 
+	 *
 	 * @param configuration
 	 *            the launch config
 	 * @param dir
@@ -159,7 +159,7 @@
 			return '"' + convertToHTMLContent(string) + '"';
 		}
 	}
-	
+
 	private static int count(String string, char character) {
 		int count = 0;
 		for (int i = 0; i < string.length(); i++) {
@@ -206,7 +206,7 @@
 			DebugEvent event = events[i];
 			Object eventSource = event.getSource();
 			switch(event.getKind()) {
-				
+
 				// Delete the HTML file used for the launch
 				case DebugEvent.TERMINATE :
 					if (eventSource != null) {
@@ -226,10 +226,10 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Cleans up event listener and temporary file for the launch.
-	 * 
+	 *
 	 * @param launch the launch
 	 */
 	private void cleanup(ILaunch launch) {
@@ -243,7 +243,7 @@
 					DebugPlugin.getDefault().removeDebugEventListener(this);
 				}
 			}
-		}		
+		}
 	}
 
 	/**
@@ -257,7 +257,7 @@
 			return getInputStreamAsByteArray(stream, (int) file.length());
 		}
 	}
-	
+
 	/**
 	 * Returns the given input stream's contents as a byte array.
 	 * If a length is specified (ie. if length != -1), only length bytes
@@ -320,7 +320,7 @@
 
 		return contents;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate#getProgramArguments(org.eclipse.debug.core.ILaunchConfiguration)
 	 */
@@ -330,15 +330,15 @@
 		// Construct the HTML file and set its name as a program argument
 		File htmlFile = buildHTMLFile(configuration, workingDir);
 		if (htmlFile == null) {
-			abort(LaunchingMessages.JavaAppletLaunchConfigurationDelegate_Could_not_build_HTML_file_for_applet_launch_1, null, IJavaLaunchConfigurationConstants.ERR_COULD_NOT_BUILD_HTML); 
-		}			
-		// Add a debug listener if necessary 
+			abort(LaunchingMessages.JavaAppletLaunchConfigurationDelegate_Could_not_build_HTML_file_for_applet_launch_1, null, IJavaLaunchConfigurationConstants.ERR_COULD_NOT_BUILD_HTML);
+		}
+		// Add a debug listener if necessary
 		if (fgLaunchToFileMap.isEmpty()) {
 			DebugPlugin.getDefault().addDebugEventListener(this);
 		}
-		// Add a mapping of the launch to the html file 
-		fgLaunchToFileMap.put(fLaunch, htmlFile);		
-		return htmlFile.getName();		
+		// Add a mapping of the launch to the html file
+		fgLaunchToFileMap.put(fLaunch, htmlFile);
+		return htmlFile.getName();
 	}
 
 	/* (non-Javadoc)
@@ -364,7 +364,7 @@
 
 	/**
 	 * Returns the applet's main type name.
-	 * 
+	 *
 	 * @param configuration the config
 	 * @return the main type name
 	 * @throws CoreException if a problem occurs
@@ -389,8 +389,8 @@
 			//default to eclipse directory
 			return new File(System.getProperty("user.dir"));  //$NON-NLS-1$
 		}
-		return resource.getLocation().toFile(); 
+		return resource.getLocation().toFile();
 	}
-	
-	
+
+
 }
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaClasspathVariablesInitializer.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaClasspathVariablesInitializer.java
index 7aacdbc..f40a8db 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaClasspathVariablesInitializer.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaClasspathVariablesInitializer.java
@@ -4,13 +4,13 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jdt.internal.launching;
 
- 
+
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
@@ -28,7 +28,7 @@
 	 * May be null
 	 */
 	private IProgressMonitor fMonitor;
-	
+
 	/**
 	 * @see ClasspathVariableInitializer#initialize(String)
 	 */
@@ -78,11 +78,11 @@
 			}
 		}
 	}
-	
+
 	private void setJREVariable(IPath newPath, String var) throws CoreException {
 		JavaCore.setClasspathVariable(var, newPath, getMonitor());
 	}
-	
+
 	protected IProgressMonitor getMonitor() {
 		if (fMonitor == null) {
 			return new NullProgressMonitor();
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaLaunchableTester.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaLaunchableTester.java
index e746988..b7b539c 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaLaunchableTester.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaLaunchableTester.java
@@ -51,7 +51,7 @@
 
 /**
  * Property tester for context launching menu.
- * 
+ *
  * @since 3.2
  */
 public class JavaLaunchableTester extends PropertyTester {
@@ -60,68 +60,68 @@
 	 * name for the "has main" property
 	 */
 	private static final String PROPERTY_HAS_MAIN = "hasMain"; //$NON-NLS-1$
-	
+
 	/**
 	 * name for the "has method" property
 	 */
-	private static final String PROPERTY_HAS_METHOD = "hasMethod"; //$NON-NLS-1$	
-	
+	private static final String PROPERTY_HAS_METHOD = "hasMethod"; //$NON-NLS-1$
+
 	/**
 	 * name for the "has method with annotation" property
 	 */
-	private static final String PROPERTY_HAS_METHOD_WITH_ANNOTATION = "hasMethodWithAnnotation"; //$NON-NLS-1$	
+	private static final String PROPERTY_HAS_METHOD_WITH_ANNOTATION = "hasMethodWithAnnotation"; //$NON-NLS-1$
 
 	/**
 	 * name for the "has type with annotation" property
 	 */
-	private static final String PROPERTY_HAS_TYPE_WITH_ANNOTATION = "hasTypeWithAnnotation"; //$NON-NLS-1$	
-	
+	private static final String PROPERTY_HAS_TYPE_WITH_ANNOTATION = "hasTypeWithAnnotation"; //$NON-NLS-1$
+
 	/**
 	 * name for the "extends class" property
 	 */
 	private static final String PROPERTY_EXTENDS_CLASS = "extendsClass"; //$NON-NLS-1$
-	
+
 	/**
 	 * "is container" property
 	 */
 	private static final String PROPERTY_IS_CONTAINER = "isContainer"; //$NON-NLS-1$
-	
+
 	/**
 	 * "is package fragment" property
 	 * @since 3.3
 	 */
 	private static final String PROPERTY_IS_PACKAGE_FRAGMENT = "isPackageFragment"; //$NON-NLS-1$
-	
+
 	/**
 	 * "is package fragment root" property
 	 * @since 3.3
 	 */
-	private static final String PROPERTY_IS_PACKAGE_FRAGMENT_ROOT = "isPackageFragmentRoot"; //$NON-NLS-1$	
-	
+	private static final String PROPERTY_IS_PACKAGE_FRAGMENT_ROOT = "isPackageFragmentRoot"; //$NON-NLS-1$
+
 	/**
 	 * name for the PROPERTY_PROJECT_NATURE property
 	 */
 	private static final String PROPERTY_PROJECT_NATURE = "hasProjectNature"; //$NON-NLS-1$
-	
+
 	/**
 	 * name for the "extends interface" property
 	 */
 	private static final String PROPERTY_EXTENDS_INTERFACE = "extendsInterface"; //$NON-NLS-1$
-	
+
 	/**
 	 * name for the PROPERTY_HAS_SWT_ON_PATH property
 	 */
 	private static final String PROPERTY_BUILDPATH_REFERENCE = "buildpathReference"; //$NON-NLS-1$
-	
+
     /**
      * Map of modifier text to corresponding flag (Integer)
      */
-    private static Map<String, Integer> fgModifiers = new HashMap<String, Integer>();
-    
+    private static Map<String, Integer> fgModifiers = new HashMap<>();
+
     private static final int FLAGS_MASK= Flags.AccPublic | Flags.AccProtected | Flags.AccPrivate | Flags.AccStatic
     	| Flags.AccFinal | Flags.AccSynchronized | Flags.AccAbstract | Flags.AccNative;
-    
-    
+
+
     static {
         fgModifiers.put("public",       new Integer(Flags.AccPublic)); //$NON-NLS-1$
         fgModifiers.put("protected",    new Integer(Flags.AccProtected)); //$NON-NLS-1$
@@ -132,7 +132,7 @@
         fgModifiers.put("abstract",     new Integer(Flags.AccAbstract)); //$NON-NLS-1$
         fgModifiers.put("native",       new Integer(Flags.AccNative)); //$NON-NLS-1$
     }
-    	
+
 	/**
 	 * gets the type of the IJavaElement
 	 * @param element the element to inspect
@@ -154,11 +154,11 @@
         }
         return type;
     }
-	
+
 	/**
 	 * Determines is the java element contains a main method.
-	 * 
-	 * @param element the element to check for the method 
+	 *
+	 * @param element the element to check for the method
 	 * @return true if the method is found in the element, false otherwise
 	 */
 	private boolean hasMain(IJavaElement element) {
@@ -181,7 +181,7 @@
 		catch (CoreException ce){}
 		return false;
 	}
-	
+
 	/**
 	 * Returns if the specified <code>IType</code> has a main method
 	 * @param type the type to inspect for a main type
@@ -198,10 +198,10 @@
 		}
 		return false;
 	}
-	
+
 	/**
 	 * This method asks the specified <code>IType</code> if it has a main method, if not it recurses through all of its children
-	 * When recursing we only care about child <code>IType</code>s that are static. 
+	 * When recursing we only care about child <code>IType</code>s that are static.
 	 * @param type the <code>IType</code> to inspect for a main method
 	 * @return true if a main method was found in specified <code>IType</code>, false otherwise
 	 * @throws CoreException if there is an error
@@ -221,7 +221,7 @@
 		}
 		return false;
 	}
-	
+
 	/**
 	 * Determines is the java element contains a specific method.
      * <p>
@@ -236,7 +236,7 @@
      * <li>modifiers - optional space separated list of modifiers, for
      *  example, <code>public static</code>.</li>
      * </ol>
-	 * @param element the element to check for the method 
+	 * @param element the element to check for the method
 	 * @param args first arg is method name, secondary args are parameter types signatures
 	 * @return true if the method is found in the element, false otherwise
 	 */
@@ -277,7 +277,7 @@
 		catch (JavaModelException e) {}
 		return false;
 	}
-	
+
 	/**
 	 * Determines is the java element contains a type with a specific annotation.
      * <p>
@@ -285,12 +285,12 @@
      * <li>qualified or unqualified annotation name, required. For example,
      *  <code>org.junit.JUnit</code>.</li>
      * </ol>
-	 * @param element the element to check for the method 
+	 * @param element the element to check for the method
 	 * @param annotationType the qualified or unqualified name of the annotation kind to look for
 	 * @return true if the type is found in the element, false otherwise
 	 */
 	private boolean hasTypeWithAnnotation(IJavaElement element, String annotationType) {
-		try {			
+		try {
 			IType type= getType(element);
 			if (type == null || !type.exists()) {
 				return false;
@@ -306,7 +306,7 @@
 			if (buffer == null) {
 				return false;
 			}
-			
+
 			ISourceRange sourceRange= type.getSourceRange();
 			ISourceRange nameRange= type.getNameRange();
 			if (sourceRange != null && nameRange != null) {
@@ -317,13 +317,13 @@
 					return true;
 				}
 			}
-		} 
-		catch (JavaModelException e) {} 
+		}
+		catch (JavaModelException e) {}
 		catch (InvalidInputException e) {}
 		return false;
-	}	
+	}
 
-	
+
 	/**
 	 * Determines is the java element contains a method with a specific annotation.
      * <p>
@@ -333,7 +333,7 @@
      * <li>modifiers - optional space separated list of modifiers, for
      *  example, <code>public static</code>.</li>
      * </ol>
-	 * @param element the element to check for the method 
+	 * @param element the element to check for the method
 	 * @param args the arguments
 	 * @return true if the method is found in the element, false otherwise
 	 */
@@ -353,7 +353,7 @@
 			} else {
 				flags= -1;
 			}
-			
+
 			IType type= getType(element);
 			if (type == null || !type.exists()) {
 				return false;
@@ -374,14 +374,14 @@
 				return false;
 			}
 			IScanner scanner=null; // delay initialization
-			
+
 			for (int i= 0; i < methods.length; i++) {
 				IMethod curr= methods[i];
 				if (curr.isConstructor() || (flags != -1 && flags != (curr.getFlags() & FLAGS_MASK))) {
 					continue;
 				}
-				
-				
+
+
 				ISourceRange sourceRange= curr.getSourceRange();
 				ISourceRange nameRange= curr.getNameRange();
 				if (sourceRange != null && nameRange != null) {
@@ -399,8 +399,8 @@
 		} catch (InvalidInputException e) {
 		}
 		return false;
-	}	
-	
+	}
+
 	private boolean findAnnotation(IScanner scanner, String annotationName) throws InvalidInputException {
 		String simpleName= Signature.getSimpleName(annotationName);
 		StringBuffer buf= new StringBuffer();
@@ -453,7 +453,7 @@
         }
     	catch (CoreException e) {return false;}
     }
-	
+
 	/**
 	 * Determines if the element has qname as a parent class
 	 * @param element the element to check for the parent class definition
@@ -470,18 +470,18 @@
 						return true;
 					}
 				}
-			} 
+			}
 		}
 		catch(JavaModelException e) {}
-		return false; 
+		return false;
 	}
-	
+
 	/**
-	 * Determines if an item or list of items are found on the build path. 
-	 * Once any one single items matches though, the method returns true, this method is intended 
+	 * Determines if an item or list of items are found on the build path.
+	 * Once any one single items matches though, the method returns true, this method is intended
 	 * to be used in OR like situations, where we do not care if all of the items are on the build path, only that one
 	 * of them is.
-	 * 
+	 *
 	 * @param element the element whose build path should be checked
 	 * @param args the value(s) to search for on the build path
 	 * @return true if any one of the args is found on the build path
@@ -489,16 +489,16 @@
 	private boolean hasItemOnBuildPath(IJavaElement element, Object[] args) {
 		if(element != null && args != null) {
 			IJavaProject project = element.getJavaProject();
-			Set<IJavaProject> searched = new HashSet<IJavaProject>();
+			Set<IJavaProject> searched = new HashSet<>();
 			searched.add(project);
 			return hasItemsOnBuildPath(project, searched, args);
 		}
 		return false;
 	}
-	
+
 	private boolean hasItemsOnBuildPath(IJavaProject project, Set<IJavaProject> searched, Object[] args) {
 		try {
-			List<IJavaProject> projects = new ArrayList<IJavaProject>();
+			List<IJavaProject> projects = new ArrayList<>();
 	        if(project != null && project.exists()) {
 	            IClasspathEntry[] entries = project.getResolvedClasspath(true);
 	            for(int i = 0; i < entries.length; i++) {
@@ -532,7 +532,7 @@
 		} catch (JavaModelException e) {}
 		return false;
 	}
-	
+
 	/**
 	 * determines if the element implements a given interface
 	 * @param element the element to check for the interface
@@ -548,18 +548,18 @@
 					if(itypes[i].getFullyQualifiedName().equals(qname)) {
 						return true;
 					}
-				} 
+				}
 			}
 		}
 		catch(JavaModelException e) {}
 		return false;
 	}
-	
+
 	/**
 	 * Method runs the tests defined from extension points for Run As... and Debug As... menu items.
-	 * Currently this test optimistically considers everything not a source file. In this context we 
+	 * Currently this test optimistically considers everything not a source file. In this context we
 	 * consider an optimistic approach to mean that the test will always return true.
-	 * 
+	 *
 	 * There are many reasons for the optimistic choice some of them are outlined below.
 	 * <ul>
 	 * <li>Performance (in terms of time needed to display menu) cannot be preserved. To know what to allow
@@ -624,5 +624,5 @@
 		}
 		return false;
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaMigrationDelegate.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaMigrationDelegate.java
index ea94e5b..eaaa423 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaMigrationDelegate.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaMigrationDelegate.java
@@ -28,7 +28,7 @@
  * Delegate for migrating Java launch configurations.
  * The migration process involves a resource mapping being created such that launch configurations
  * can be filtered from the launch configuration dialog based on resource availability
- * 
+ *
  * @since 3.2
  */
 public class JavaMigrationDelegate implements ILaunchConfigurationMigrationDelegate {
@@ -37,12 +37,12 @@
 	 * represents the empty string
 	 */
 	protected static final String EMPTY_STRING = ""; //$NON-NLS-1$
-	
+
 	/**
 	 * Constructor needed for reflection
 	 */
 	public JavaMigrationDelegate() {}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.core.ILaunchConfigurationMigrationDelegate#isCandidate()
 	 */
@@ -68,10 +68,10 @@
 		}
 		return !target.equals(mapped[0]);
 	}
-	
+
 	/**
 	 * Returns whether the given project is available.
-	 * 
+	 *
 	 * @param projectName project name
 	 * @return whether the project exists and is open
 	 */
@@ -83,12 +83,12 @@
 	/**
 	 * Returns the associated <code>IResource</code> for the specified launch configuration
 	 * or <code>null</code> if none.
-	 * 
+	 *
 	 * @param candidate the candidate to get the backing resource for
 	 * @return associated <code>IResource</code> or <code>null</code>
-	 * 
+	 *
 	 * @since 3.3
-	 * 
+	 *
 	 * @throws CoreException if there is an error
 	 */
 	static IResource getResource(ILaunchConfiguration candidate) throws CoreException {
@@ -126,7 +126,7 @@
 		}
 		return resource;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.core.ILaunchConfigurationMigrationDelegate#migrate(org.eclipse.debug.core.ILaunchConfiguration)
 	 */
@@ -136,10 +136,10 @@
 		updateResourceMapping(wc);
 		wc.doSave();
 	}
-	
+
 	/**
 	 * Updates the resource mapping for the given launch configuration.
-	 * 
+	 *
 	 * @param wc working copy
 	 * @throws CoreException if an exception occurs updating resource mapping.
 	 */
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaProjectSourceContainerTypeDelegate.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaProjectSourceContainerTypeDelegate.java
index d6c441c..0d4f1c1 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaProjectSourceContainerTypeDelegate.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaProjectSourceContainerTypeDelegate.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -39,16 +39,16 @@
 			if ("javaProject".equals(element.getNodeName())) { //$NON-NLS-1$
 				String string = element.getAttribute("name"); //$NON-NLS-1$
 				if (string == null || string.length() == 0) {
-					abort(LaunchingMessages.JavaProjectSourceContainerTypeDelegate_5, null); 
+					abort(LaunchingMessages.JavaProjectSourceContainerTypeDelegate_5, null);
 				}
 				IWorkspace workspace = ResourcesPlugin.getWorkspace();
 				IProject project = workspace.getRoot().getProject(string);
 				IJavaProject javaProject = JavaCore.create(project);
 				return new JavaProjectSourceContainer(javaProject);
 			}
-			abort(LaunchingMessages.JavaProjectSourceContainerTypeDelegate_6, null); 
+			abort(LaunchingMessages.JavaProjectSourceContainerTypeDelegate_6, null);
 		}
-		abort(LaunchingMessages.JavaProjectSourceContainerTypeDelegate_7, null); 
+		abort(LaunchingMessages.JavaProjectSourceContainerTypeDelegate_7, null);
 		return null;
 	}
 	/* (non-Javadoc)
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaRemoteApplicationLaunchConfigurationDelegate.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaRemoteApplicationLaunchConfigurationDelegate.java
index 2176775..7269257 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaRemoteApplicationLaunchConfigurationDelegate.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaRemoteApplicationLaunchConfigurationDelegate.java
@@ -41,14 +41,14 @@
 			monitor = new NullProgressMonitor();
 		}
 
-		monitor.beginTask(NLS.bind(LaunchingMessages.JavaRemoteApplicationLaunchConfigurationDelegate_Attaching_to__0_____1, new String[]{configuration.getName()}), 3); 
+		monitor.beginTask(NLS.bind(LaunchingMessages.JavaRemoteApplicationLaunchConfigurationDelegate_Attaching_to__0_____1, new String[]{configuration.getName()}), 3);
 		// check for cancellation
 		if (monitor.isCanceled()) {
 			return;
-		}						
-		try {			
-			monitor.subTask(LaunchingMessages.JavaRemoteApplicationLaunchConfigurationDelegate_Verifying_launch_attributes____1); 
-							
+		}
+		try {
+			monitor.subTask(LaunchingMessages.JavaRemoteApplicationLaunchConfigurationDelegate_Verifying_launch_attributes____1);
+
 			String connectorId = getVMConnectorId(configuration);
 			IVMConnector connector = null;
 			if (connectorId == null) {
@@ -57,33 +57,33 @@
 				connector = JavaRuntime.getVMConnector(connectorId);
 			}
 			if (connector == null) {
-				abort(LaunchingMessages.JavaRemoteApplicationLaunchConfigurationDelegate_Connector_not_specified_2, null, IJavaLaunchConfigurationConstants.ERR_CONNECTOR_NOT_AVAILABLE); 
+				abort(LaunchingMessages.JavaRemoteApplicationLaunchConfigurationDelegate_Connector_not_specified_2, null, IJavaLaunchConfigurationConstants.ERR_CONNECTOR_NOT_AVAILABLE);
 			}
-			
+
 			Map<String, String> argMap = configuration.getAttribute(IJavaLaunchConfigurationConstants.ATTR_CONNECT_MAP, (Map<String, String>)null);
-	        
+
 	        int connectTimeout = Platform.getPreferencesService().getInt(
-	        		LaunchingPlugin.ID_PLUGIN, 
-	        		JavaRuntime.PREF_CONNECT_TIMEOUT, 
-	        		JavaRuntime.DEF_CONNECT_TIMEOUT, 
+	        		LaunchingPlugin.ID_PLUGIN,
+	        		JavaRuntime.PREF_CONNECT_TIMEOUT,
+	        		JavaRuntime.DEF_CONNECT_TIMEOUT,
 	        		null);
 	        argMap.put("timeout", Integer.toString(connectTimeout));  //$NON-NLS-1$
-	
+
 			// check for cancellation
 			if (monitor.isCanceled()) {
 				return;
 			}
-			
+
 			monitor.worked(1);
-			
-			monitor.subTask(LaunchingMessages.JavaRemoteApplicationLaunchConfigurationDelegate_Creating_source_locator____2); 
+
+			monitor.subTask(LaunchingMessages.JavaRemoteApplicationLaunchConfigurationDelegate_Creating_source_locator____2);
 			// set the default source locator if required
 			setDefaultSourceLocator(launch, configuration);
-			monitor.worked(1);		
-			
+			monitor.worked(1);
+
 			// connect to remote VM
 			connector.connect(argMap, monitor, launch);
-			
+
 			// check for cancellation
 			if (monitor.isCanceled()) {
 				IDebugTarget[] debugTargets = launch.getDebugTargets();
@@ -100,5 +100,5 @@
 			monitor.done();
 		}
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaSourceLookupDirector.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaSourceLookupDirector.java
index f539253..7ffdce2 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaSourceLookupDirector.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaSourceLookupDirector.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -22,21 +22,21 @@
 
 /**
  * Java source lookup director.
- * 
+ *
  * @since 3.0
  */
 public class JavaSourceLookupDirector extends AbstractSourceLookupDirector {
-	
+
 	private static Set<String> fFilteredTypes;
-	
+
 	static {
-		fFilteredTypes = new HashSet<String>();
+		fFilteredTypes = new HashSet<>();
 		fFilteredTypes.add(ProjectSourceContainer.TYPE_ID);
 		fFilteredTypes.add(WorkspaceSourceContainer.TYPE_ID);
 		// can't reference UI constant
 		fFilteredTypes.add("org.eclipse.debug.ui.containerType.workingSet"); //$NON-NLS-1$
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.internal.core.sourcelookup.ISourceLookupDirector#initializeParticipants()
 	 */
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaSourceLookupUtil.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaSourceLookupUtil.java
index 9e61150..ea47cb0 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaSourceLookupUtil.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaSourceLookupUtil.java
@@ -36,7 +36,7 @@
 /**
  * Private source lookup utilities. Translates runtime classpath entries
  * to source containers.
- * 
+ *
  * @since 3.0
  */
 public class JavaSourceLookupUtil {
@@ -44,12 +44,12 @@
 	/**
 	 * Translates the given runtime classpath entries into associated source
 	 * containers.
-	 * 
+	 *
 	 * @param entries entries to translate
 	 * @return source containers corresponding to the given runtime classpath entries
 	 */
 	public static ISourceContainer[] translate(IRuntimeClasspathEntry[] entries) {
-		List<ISourceContainer> containers = new ArrayList<ISourceContainer>(entries.length);
+		List<ISourceContainer> containers = new ArrayList<>(entries.length);
 		for (int i = 0; i < entries.length; i++) {
 			IRuntimeClasspathEntry entry = entries[i];
 			switch (entry.getType()) {
@@ -108,7 +108,7 @@
 		}
 		return containers.toArray(new ISourceContainer[containers.size()]);
 	}
-	
+
 	/**
 	 * Returns whether the source attachments of the given package fragment
 	 * root and runtime classpath entry are equal.
@@ -117,7 +117,7 @@
 	 * then it is considered equal. This way, the corresponding package fragment
 	 * root is used for source lookup if it has a source attachment or not.
 	 * </p>
-	 * 
+	 *
 	 * @param root package fragment root
 	 * @param entry runtime classpath entry
 	 * @return whether the source attachments of the given package fragment
@@ -135,14 +135,14 @@
 			return false;
 		}
 		return rootPath.equals(entryPath);
-		
+
 	}
-	
+
 	/**
 	 * Determines if the given archive runtime classpath entry exists
 	 * in the workspace as a package fragment root. Returns the associated
 	 * package fragment root or <code>null</code> if none.
-	 *  
+	 *
 	 * @param entry archive runtime classpath entry
 	 * @return package fragment root or <code>null</code>
 	 */
@@ -189,5 +189,5 @@
 			LaunchingPlugin.log(e);
 		}
 		return null;
-	}	
+	}
 }
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/LaunchingPlugin.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/LaunchingPlugin.java
index 7ff6286..6711557 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/LaunchingPlugin.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/LaunchingPlugin.java
@@ -98,7 +98,7 @@
 	 */
 	public static boolean DEBUG = false;
 	public static boolean DEBUG_JRE_CONTAINER = false;
-	
+
 	public static final String DEBUG_JRE_CONTAINER_FLAG = "org.eclipse.jdt.launching/debug/classpath/jreContainer"; //$NON-NLS-1$
 	public static final String DEBUG_FLAG = "org.eclipse.jdt.launching/debug"; //$NON-NLS-1$
 
@@ -107,43 +107,43 @@
 	 * @since 3.8
 	 */
 	private static DebugTrace fgDebugTrace;
-	
+
 	/**
 	 * The id of the JDT launching plug-in (value <code>"org.eclipse.jdt.launching"</code>).
 	 */
 	public static final String ID_PLUGIN= "org.eclipse.jdt.launching"; //$NON-NLS-1$
-	
+
 	/**
 	 * Identifier for 'vmConnectors' extension point
 	 */
 	public static final String ID_EXTENSION_POINT_VM_CONNECTORS = "vmConnectors"; //$NON-NLS-1$
-	
+
 	/**
 	 * Identifier for 'runtimeClasspathEntries' extension point
 	 */
 	public static final String ID_EXTENSION_POINT_RUNTIME_CLASSPATH_ENTRIES = "runtimeClasspathEntries"; //$NON-NLS-1$
-	
+
 	private static LaunchingPlugin fgLaunchingPlugin;
-	
+
 	private HashMap<String, IVMConnector> fVMConnectors = null;
-	
+
 	/**
 	 * Runtime classpath extensions
 	 */
 	private HashMap<String, IConfigurationElement> fClasspathEntryExtensions = null;
 
 	private String fOldVMPrefString = EMPTY_STRING;
-	
+
 	private boolean fIgnoreVMDefPropertyChangeEvents = false;
-		
+
 	private static final String EMPTY_STRING = "";    //$NON-NLS-1$
-			
+
 	/**
 	 * Mapping of top-level VM installation directories to library info for that
 	 * VM.
 	 */
 	private static Map<String, LibraryInfo> fgLibraryInfoMap = null;
-	
+
 	/**
 	 * Mapping of the last time the directory of a given SDK was modified.
 	 * <br><br>
@@ -153,17 +153,17 @@
 	private static Map<String, Long> fgInstallTimeMap = null;
 	/**
 	 * List of install locations that have been detected to have changed
-	 * 
+	 *
 	 * @since 3.7
 	 */
-	private static HashSet<String> fgHasChanged = new HashSet<String>();
+	private static HashSet<String> fgHasChanged = new HashSet<>();
 	/**
 	 * Mutex for checking the time stamp of an install location
-	 * 
+	 *
 	 * @since 3.7
 	 */
 	private static Object installLock = new Object();
-	
+
 	/**
 	 * Whether changes in VM preferences are being batched. When being batched
 	 * the plug-in can ignore processing and changes.
@@ -174,22 +174,22 @@
 	 * Shared XML parser
 	 */
 	private static DocumentBuilder fgXMLParser = null;
-	
+
 	/**
 	 * Stores VM changes resulting from a JRE preference change.
 	 */
 	class VMChanges implements IVMInstallChangedListener {
-		
+
 		// true if the default VM changes
 		private boolean fDefaultChanged = false;
-		
+
 		// old container ids to new
-		private HashMap<IPath, IPath> fRenamedContainerIds = new HashMap<IPath, IPath>();
-		
+		private HashMap<IPath, IPath> fRenamedContainerIds = new HashMap<>();
+
 		/**
 		 * Returns the JRE container id that the given VM would map to, or
 		 * <code>null</code> if none.
-		 * 
+		 *
 		 * @param vm the new path id of the {@link IVMInstall}
 		 * @return container id or <code>null</code>
 		 */
@@ -205,7 +205,7 @@
 			}
 			return null;
 		}
-		
+
 		/**
 		 * @see org.eclipse.jdt.launching.IVMInstallChangedListener#defaultVMInstallChanged(org.eclipse.jdt.launching.IVMInstall, org.eclipse.jdt.launching.IVMInstall)
 		 */
@@ -266,7 +266,7 @@
 		@Override
 		public void vmRemoved(IVMInstall vm) {
 		}
-	
+
 		/**
 		 * Re-bind classpath variables and containers affected by the JRE
 		 * changes.
@@ -275,7 +275,7 @@
 			JREUpdateJob job = new JREUpdateJob(this);
 			job.schedule();
 		}
-		
+
 		protected void doit(IProgressMonitor monitor) throws CoreException {
 			IWorkspaceRunnable runnable = new IWorkspaceRunnable() {
 				@Override
@@ -288,7 +288,7 @@
 			};
 			JavaCore.run(runnable, null, monitor);
 		}
-				
+
 		/**
 		 * Re-bind classpath variables and containers affected by the JRE
 		 * changes.
@@ -305,10 +305,10 @@
 				initializer.initialize(JavaRuntime.JRESRCROOT_VARIABLE);
 			}
 			monitor.worked(1);
-														
+
 			// re-bind all container entries
 			int length = projects.length;
-			Map<IPath, List<IJavaProject>> projectsMap = new HashMap<IPath, List<IJavaProject>>();
+			Map<IPath, List<IJavaProject>> projectsMap = new HashMap<>();
 			for (int i = 0; i < length; i++) {
 				IJavaProject project = projects[i];
 				IClasspathEntry[] entries = project.getRawClasspath();
@@ -334,7 +334,7 @@
 									// @see bug 310789 - batch updates by common container paths
 									List<IJavaProject> projectsList = projectsMap.get(reference);
 									if (projectsList == null) {
-										projectsMap.put(reference, projectsList = new ArrayList<IJavaProject>(length));
+										projectsMap.put(reference, projectsList = new ArrayList<>(length));
 									}
 									projectsList.add(project);
 								} else {
@@ -367,10 +367,10 @@
 		}
 
 	}
-	
+
 	class JREUpdateJob extends Job {
 		private VMChanges fChanges;
-		
+
 		public JREUpdateJob(VMChanges changes) {
 			super(LaunchingMessages.LaunchingPlugin_1);
 			fChanges = changes;
@@ -389,9 +389,9 @@
 			}
 			return Status.OK_STATUS;
 		}
-		
+
 	}
-	
+
 	/**
 	 * Constructor
 	 */
@@ -399,11 +399,11 @@
 		super();
 		fgLaunchingPlugin = this;
 	}
-	
+
 	/**
 	 * Returns the library info that corresponds to the specified JRE install
 	 * path, or <code>null</code> if none.
-	 * 
+	 *
 	 * @param javaInstallPath the absolute path to the java executable
 	 * @return the library info that corresponds to the specified JRE install
 	 * path, or <code>null</code> if none
@@ -414,11 +414,11 @@
 		}
 		return fgLibraryInfoMap.get(javaInstallPath);
 	}
-	
+
 	/**
 	 * Sets the library info that corresponds to the specified JRE install
 	 * path.
-	 * 
+	 *
 	 * @param javaInstallPath home location for a JRE
 	 * @param info the library information, or <code>null</code> to remove
 	 */
@@ -432,7 +432,7 @@
 				fgInstallTimeMap.remove(javaInstallPath);
 				writeInstallInfo();
 			}
-			
+
 		} else {
 			fgLibraryInfoMap.put(javaInstallPath, info);
 		}
@@ -440,11 +440,11 @@
 		fgHasChanged.remove(javaInstallPath);
 		saveLibraryInfo();
 	}
-		
+
 	/**
 	 * Return a <code>java.io.File</code> object that corresponds to the specified
 	 * <code>IPath</code> in the plug-in directory.
-	 * 
+	 *
 	 * @param path the path to look for in the launching bundle
 	 * @return the {@link File} from the bundle or <code>null</code>
 	 */
@@ -458,10 +458,10 @@
 			return null;
 		}
 	}
-		
+
 	/**
 	 * Convenience method which returns the unique identifier of this plug-in.
-	 * 
+	 *
 	 * @return the id of the {@link LaunchingPlugin}
 	 */
 	public static String getUniqueIdentifier() {
@@ -475,7 +475,7 @@
 	public static LaunchingPlugin getDefault() {
 		return fgLaunchingPlugin;
 	}
-	
+
 	/**
 	 * Logs the specified status
 	 * @param status the status to log
@@ -483,7 +483,7 @@
 	public static void log(IStatus status) {
 		getDefault().getLog().log(status);
 	}
-	
+
 	/**
 	 * Logs the specified message, by creating a new <code>Status</code>
 	 * @param message the message to log as an error status
@@ -491,7 +491,7 @@
 	public static void log(String message) {
 		log(new Status(IStatus.ERROR, getUniqueIdentifier(), IStatus.ERROR, message, null));
 	}
-		
+
 	/**
 	 * Logs the specified exception by creating a new <code>Status</code>
 	 * @param e the {@link Throwable} to log as an error
@@ -499,11 +499,11 @@
 	public static void log(Throwable e) {
 		log(new Status(IStatus.ERROR, getUniqueIdentifier(), IStatus.ERROR, e.getMessage(), e));
 	}
-	
+
 	/**
 	 * Clears zip file cache.
 	 * Shutdown the launch configuration helper.
-	 * 
+	 *
 	 * @see Plugin#stop(BundleContext)
 	 */
 	@Override
@@ -522,14 +522,14 @@
 			super.stop(context);
 		}
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.core.runtime.Plugin#start(org.osgi.framework.BundleContext)
 	 */
 	@Override
 	public void start(BundleContext context) throws Exception {
 		super.start(context);
-		Hashtable<String, String> props = new Hashtable<String, String>(2);
+		Hashtable<String, String> props = new Hashtable<>(2);
 		props.put(org.eclipse.osgi.service.debug.DebugOptions.LISTENER_SYMBOLICNAME, getUniqueIdentifier());
 		context.registerService(DebugOptionsListener.class.getName(), this, props);
 		ResourcesPlugin.getWorkspace().addSaveParticipant(ID_PLUGIN, new ISaveParticipant() {
@@ -546,7 +546,7 @@
 				} catch (BackingStoreException e) {
 					log(e);
 				}
-				//catch in case any install times are still cached for removed JREs 
+				//catch in case any install times are still cached for removed JREs
 				writeInstallInfo();
 			}
 		});
@@ -557,11 +557,11 @@
 		DebugPlugin.getDefault().getLaunchManager().addLaunchListener(this);
 		DebugPlugin.getDefault().addDebugEventListener(this);
 	}
-	
+
 	/**
 	 * Returns the VM connector with the specified id, or <code>null</code>
 	 * if none.
-	 * 
+	 *
 	 * @param id connector identifier
 	 * @return VM connector
 	 */
@@ -571,7 +571,7 @@
 		}
 		return fVMConnectors.get(id);
 	}
-	
+
 	/**
 	 * Returns all VM connector extensions.
 	 *
@@ -583,7 +583,7 @@
 		}
 		return fVMConnectors.values().toArray(new IVMConnector[fVMConnectors.size()]);
 	}
-	
+
 	/**
 	 * Loads VM connector extensions
 	 */
@@ -591,7 +591,7 @@
 		IExtensionPoint extensionPoint= Platform.getExtensionRegistry().getExtensionPoint(ID_PLUGIN, ID_EXTENSION_POINT_VM_CONNECTORS);
 		IConfigurationElement[] configs= extensionPoint.getConfigurationElements();
 		MultiStatus status= new MultiStatus(getUniqueIdentifier(), IStatus.OK, "Exception occurred reading vmConnectors extensions.", null);  //$NON-NLS-1$
-		fVMConnectors = new HashMap<String, IVMConnector>(configs.length);
+		fVMConnectors = new HashMap<>(configs.length);
 		for (int i= 0; i < configs.length; i++) {
 			try {
 				IVMConnector vmConnector= (IVMConnector)configs[i].createExecutableExtension("class"); //$NON-NLS-1$
@@ -604,10 +604,10 @@
 			LaunchingPlugin.log(status);
 		}
 	}
-	
+
 	/**
 	 * Returns a new runtime classpath entry of the specified type.
-	 * 
+	 *
 	 * @param id extension type id
 	 * @return new uninitialized runtime classpath entry
 	 * @throws CoreException if unable to create an entry
@@ -623,35 +623,35 @@
 		abort(NLS.bind(LaunchingMessages.LaunchingPlugin_32, new String[]{id}), null);
 		return null;
 	}
-	
+
 	/**
 	 * Loads runtime classpath extensions
 	 */
 	private void initializeRuntimeClasspathExtensions() {
 		IExtensionPoint extensionPoint= Platform.getExtensionRegistry().getExtensionPoint(LaunchingPlugin.ID_PLUGIN, ID_EXTENSION_POINT_RUNTIME_CLASSPATH_ENTRIES);
 		IConfigurationElement[] configs= extensionPoint.getConfigurationElements();
-		fClasspathEntryExtensions = new HashMap<String, IConfigurationElement>(configs.length);
+		fClasspathEntryExtensions = new HashMap<>(configs.length);
 		for (int i= 0; i < configs.length; i++) {
 			fClasspathEntryExtensions.put(configs[i].getAttribute("id"), configs[i]); //$NON-NLS-1$
 		}
 	}
-	
+
 	/**
 	 * Check for differences between the old & new sets of installed JREs.
 	 * Differences may include additions, deletions and changes.  Take
 	 * appropriate action for each type of difference.
-	 * 
+	 *
 	 * When importing preferences, TWO propertyChange events are fired.  The first
 	 * has an old value but an empty new value.  The second has a new value, but an empty
 	 * old value.  Normal user changes to the preferences result in a single propertyChange
 	 * event, with both old and new values populated.  This method handles both types
 	 * of notification.
-	 * 
+	 *
 	 * @param oldValue the old preference value
 	 * @param newValue the new preference value
 	 */
 	protected void processVMPrefsChanged(String oldValue, String newValue) {
-		
+
 		// batch changes
 		fBatchingChanges = true;
 		VMChanges vmChanges = null;
@@ -659,7 +659,7 @@
 
 			String oldPrefString;
 			String newPrefString;
-			
+
 			// If empty new value, save the old value and wait for 2nd propertyChange notification
 			if (newValue == null || newValue.equals(EMPTY_STRING)) {
 				fOldVMPrefString = oldValue;
@@ -676,21 +676,21 @@
 				oldPrefString = oldValue;
 				newPrefString = newValue;
 			}
-			
+
 			vmChanges = new VMChanges();
 			JavaRuntime.addVMInstallChangedListener(vmChanges);
-			
+
 			// Generate the previous VMs
 			VMDefinitionsContainer oldResults = getVMDefinitions(oldPrefString);
-			
+
 			// Generate the current
 			VMDefinitionsContainer newResults = getVMDefinitions(newPrefString);
-			
+
 			// Determine the deleted VMs
 			List<IVMInstall> deleted = oldResults.getVMList();
 			List<IVMInstall> current = newResults.getValidVMList();
 			deleted.removeAll(current);
-			
+
 			// Dispose deleted VMs.  The 'disposeVMInstall' method fires notification of the
 			// deletion.
 			Iterator<IVMInstall> deletedIterator = deleted.iterator();
@@ -698,7 +698,7 @@
 				VMStandin deletedVMStandin = (VMStandin) deletedIterator.next();
 				deletedVMStandin.getVMInstallType().disposeVMInstall(deletedVMStandin.getId());
 			}
-			
+
 			// Fire change notification for added and changed VMs. The 'convertToRealVM'
 			// fires the appropriate notification.
 			Iterator<IVMInstall> iter = current.iterator();
@@ -706,7 +706,7 @@
 				VMStandin standin = (VMStandin)iter.next();
 				standin.convertToRealVM();
 			}
-			
+
 			// set the new default VM install. This will fire a 'defaultVMChanged',
 			// if it in fact changed
 			String newDefaultId = newResults.getDefaultVMInstallCompositeID();
@@ -720,7 +720,7 @@
 					}
 				}
 			}
-			
+
 		} finally {
 			// stop batch changes
 			fBatchingChanges = false;
@@ -731,11 +731,11 @@
 		}
 
 	}
-	
+
 	/**
 	 * Parse the given XML into a VM definitions container, returning an empty
 	 * container if an exception occurs.
-	 * 
+	 *
 	 * @param xml the XML to parse for VM descriptions
 	 * @return VMDefinitionsContainer
 	 */
@@ -750,7 +750,7 @@
 		}
 		return new VMDefinitionsContainer();
 	}
-		
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.IVMInstallChangedListener#defaultVMInstallChanged(org.eclipse.jdt.launching.IVMInstall, org.eclipse.jdt.launching.IVMInstall)
 	 */
@@ -830,11 +830,11 @@
 	 * </ul>
 	 */
 	private static String getLibraryInfoAsXML() throws CoreException {
-		
+
 		Document doc = DebugPlugin.newDocument();
 		Element config = doc.createElement("libraryInfos");    //$NON-NLS-1$
 		doc.appendChild(config);
-						
+
 		// Create a node for each info in the table
 		Iterator<String> locations = fgLibraryInfoMap.keySet().iterator();
 		while (locations.hasNext()) {
@@ -844,14 +844,14 @@
 			locationElemnet.setAttribute("home", home); //$NON-NLS-1$
 			config.appendChild(locationElemnet);
 		}
-		
+
 		// Serialize the Document and return the resulting String
 		return DebugPlugin.serializeDocument(doc);
 	}
-	
+
 	/**
 	 * Creates an XML element for the given info.
-	 * 
+	 *
 	 * @param doc the backing {@link Document}
 	 * @param info the {@link LibraryInfo} to add to the {@link Document}
 	 * @return Element
@@ -864,11 +864,11 @@
 		appendPathElements(doc, "endorsedDirs", libraryElement, info.getEndorsedDirs()); //$NON-NLS-1$
 		return libraryElement;
 	}
-	
+
 	/**
 	 * Appends path elements to the given library element, rooted by an
 	 * element of the given type.
-	 * 
+	 *
 	 * @param doc the backing {@link Document}
 	 * @param elementType the kind of {@link Element} to create
 	 * @param libraryElement the {@link Element} describing a given {@link LibraryInfo} object
@@ -886,7 +886,7 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Saves the library info in a local workspace state location
 	 */
@@ -908,12 +908,12 @@
 			log(e);
 		}
 	}
-	
+
 	/**
 	 * Restores library information for VMs
 	 */
 	private static void restoreLibraryInfo() {
-		fgLibraryInfoMap = new HashMap<String, LibraryInfo>(10);
+		fgLibraryInfoMap = new HashMap<>(10);
 		IPath libPath = getDefault().getStateLocation();
 		libPath = libPath.append("libraryInfos.xml"); //$NON-NLS-1$
 		File file = libPath.toFile();
@@ -926,7 +926,7 @@
 				if(!root.getNodeName().equals("libraryInfos")) { //$NON-NLS-1$
 					return;
 				}
-				
+
 				NodeList list = root.getChildNodes();
 				int length = list.getLength();
 				for (int i = 0; i < length; ++i) {
@@ -957,16 +957,16 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Checks to see if the time stamp of the file describe by the given location string
-	 * has been modified since the last recorded time stamp. If there is no last recorded 
+	 * has been modified since the last recorded time stamp. If there is no last recorded
 	 * time stamp we assume it has changed. See https://bugs.eclipse.org/bugs/show_bug.cgi?id=266651 for more information
-	 * 
-	 * @param location the location of the SDK we want to check the time stamp for 
+	 *
+	 * @param location the location of the SDK we want to check the time stamp for
 	 * @return <code>true</code> if the time stamp has changed compared to the cached one or if there is
 	 * no recorded time stamp, <code>false</code> otherwise.
-	 * 
+	 *
 	 * @since 3.7
 	 */
 	public static boolean timeStampChanged(String location) {
@@ -996,15 +996,15 @@
 		}
 		return false;
 	}
-	
+
 	/**
 	 * Reads the file of saved time stamps and populates the {@link #fgInstallTimeMap}.
 	 * See https://bugs.eclipse.org/bugs/show_bug.cgi?id=266651 for more information
-	 * 
+	 *
 	 * @since 3.7
 	 */
 	private static void readInstallInfo() {
-		fgInstallTimeMap = new HashMap<String, Long>();
+		fgInstallTimeMap = new HashMap<>();
 		IPath libPath = getDefault().getStateLocation();
 		libPath = libPath.append(".install.xml"); //$NON-NLS-1$
 		File file = libPath.toFile();
@@ -1030,7 +1030,7 @@
 									fgInstallTimeMap.put(loc, l);
 								}
 								catch(NumberFormatException nfe) {
-								//do nothing	
+								//do nothing
 								}
 							}
 						}
@@ -1045,11 +1045,11 @@
 			}
 		}
 	}
-	
+
 	/**
-	 * Writes out the mappings of SDK install time stamps to disk. See 
+	 * Writes out the mappings of SDK install time stamps to disk. See
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=266651 for more information.
-	 * 
+	 *
 	 * @since 3.7
 	 */
 	private static void writeInstallInfo() {
@@ -1089,7 +1089,7 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Returns paths stored in XML
 	 * @param lib the library path in {@link Element} form
@@ -1097,7 +1097,7 @@
 	 * @return paths stored in XML
 	 */
 	private static String[] getPathsFromXML(Element lib, String pathType) {
-		List<String> paths = new ArrayList<String>();
+		List<String> paths = new ArrayList<>();
 		NodeList list = lib.getChildNodes();
 		int length = list.getLength();
 		for (int i = 0; i < length; ++i) {
@@ -1128,7 +1128,7 @@
 		}
 		return paths.toArray(new String[paths.size()]);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.core.ILaunchesListener#launchesRemoved(org.eclipse.debug.core.ILaunch[])
 	 */
@@ -1136,21 +1136,21 @@
 	public void launchesRemoved(ILaunch[] launches) {
 		ArchiveSourceLocation.closeArchives();
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.core.ILaunchesListener#launchesAdded(org.eclipse.debug.core.ILaunch[])
 	 */
 	@Override
 	public void launchesAdded(ILaunch[] launches) {
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.core.ILaunchesListener#launchesChanged(org.eclipse.debug.core.ILaunch[])
 	 */
 	@Override
 	public void launchesChanged(ILaunch[] launches) {
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.core.IDebugEventSetListener#handleDebugEvents(org.eclipse.debug.core.DebugEvent[])
 	 */
@@ -1166,10 +1166,10 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Returns a shared XML parser.
-	 * 
+	 *
 	 * @return an XML parser
 	 * @throws CoreException if unable to create a parser
 	 * @since 3.0
@@ -1187,10 +1187,10 @@
 		}
 		return fgXMLParser;
 	}
-	
+
 	/**
 	 * Throws an exception with the given message and underlying exception.
-	 * 
+	 *
 	 * @param message error message
 	 * @param exception underlying exception or <code>null</code> if none
 	 * @throws CoreException if an exception occurs
@@ -1199,13 +1199,13 @@
 		IStatus status = new Status(IStatus.ERROR, LaunchingPlugin.getUniqueIdentifier(), 0, message, exception);
 		throw new CoreException(status);
 	}
-	
+
 	/**
 	 * Compares two URL for equality, but do not connect to do DNS resolution
-	 * 
+	 *
 	 * @param url1 a given URL
 	 * @param url2 another given URL to compare to url1
-	 * 
+	 *
 	 * @since 3.5
 	 * @return <code>true</code> if the URLs are equal, <code>false</code> otherwise
 	 */
@@ -1233,7 +1233,7 @@
 	}
 
 	/**
-	 * Gets the external form of this URL. In particular, it trims any white space, 
+	 * Gets the external form of this URL. In particular, it trims any white space,
 	 * removes a trailing slash and creates a lower case string.
 	 * @param url the URL to get the {@link String} value of
 	 * @return the lower-case {@link String} form of the given URL
@@ -1274,7 +1274,7 @@
 		DEBUG = options.getBooleanOption(DEBUG_FLAG, false);
 		DEBUG_JRE_CONTAINER = DEBUG && options.getBooleanOption(DEBUG_JRE_CONTAINER_FLAG, false);
 	}
-	
+
 	/**
 	 * Prints the given message to System.out and to the OSGi tracing (if started)
 	 * @param option the option or <code>null</code>
@@ -1288,10 +1288,10 @@
 			fgDebugTrace.trace(option, message, throwable);
 		}
 	}
-	
+
 	/**
 	 * Prints the given message to System.out and to the OSGi tracing (if enabled)
-	 * 
+	 *
 	 * @param message the message or <code>null</code>
 	 * @since 3.8
 	 */
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/LaunchingPreferenceInitializer.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/LaunchingPreferenceInitializer.java
index 2e37837..70a7eb6 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/LaunchingPreferenceInitializer.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/LaunchingPreferenceInitializer.java
@@ -42,10 +42,10 @@
 		} catch (BackingStoreException e) {
 			LaunchingPlugin.log(e);
 		}
-				
+
 		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=255381
 		// NOTE: only the pref's default value is initialized to avoid deadlock (we don't set the
-		// associated JavaCore options, as this can trigger a job to touch the project (see 
+		// associated JavaCore options, as this can trigger a job to touch the project (see
 		// bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=260445)
 		String launchFilter = "*." + ILaunchConfiguration.LAUNCH_CONFIGURATION_FILE_EXTENSION; //$NON-NLS-1$
 		dnode = DefaultScope.INSTANCE.getNode(JavaCore.PLUGIN_ID);
@@ -78,7 +78,7 @@
 		else {
 			dnode.put(JavaCore.CORE_JAVA_BUILD_RESOURCE_COPY_FILTER, launchFilter);
 		}
-		
+
 		try {
 			dnode.flush();
 		} catch (BackingStoreException e) {
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/LibraryInfo.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/LibraryInfo.java
index d9774cf..1cc463f 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/LibraryInfo.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/LibraryInfo.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -20,44 +20,44 @@
 	private String[] fBootpath;
 	private String[] fExtensionDirs;
 	private String[] fEndorsedDirs;
-	
+
 	public LibraryInfo(String version, String[] bootpath, String[] extDirs, String[] endDirs) {
 		fVersion = version;
 		fBootpath = bootpath;
 		fExtensionDirs = extDirs;
 		fEndorsedDirs = endDirs;
 	}
-	
+
 	/**
 	 * Returns the version of this VM install.
-	 * 
+	 *
 	 * @return version
 	 */
 	public String getVersion() {
-		return fVersion; 
+		return fVersion;
 	}
-	
+
 	/**
 	 * Returns a collection of extension directory paths for this VM install.
-	 * 
+	 *
 	 * @return a collection of absolute paths
 	 */
 	public String[] getExtensionDirs() {
 		return fExtensionDirs;
 	}
-	
+
 	/**
 	 * Returns a collection of bootpath entries for this VM install.
-	 * 
+	 *
 	 * @return a collection of absolute paths
 	 */
 	public String[] getBootpath() {
 		return fBootpath;
 	}
-	
+
 	/**
 	 * Returns a collection of endorsed directory paths for this VM install.
-	 * 
+	 *
 	 * @return a collection of absolute paths
 	 */
 	public String[] getEndorsedDirs() {
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/MacInstalledJREs.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/MacInstalledJREs.java
index aaa7fc3..07a339c 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/MacInstalledJREs.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/MacInstalledJREs.java
@@ -37,7 +37,7 @@
  * Searches for installed JREs on the Mac.
  */
 public class MacInstalledJREs {
-	
+
 	/** The executable for 'java_home' */
 	private static final String JAVA_HOME_PLIST = "/usr/libexec/java_home"; //$NON-NLS-1$
 	/** The plist attribute describing the JRE home directory */
@@ -51,34 +51,34 @@
 	 * @since 3.8
 	 */
 	private static final String PLIST_JVM_BUNDLE_ID = "JVMBundleID"; //$NON-NLS-1$
-	
+
 	public static final VMStandin[] NO_VMS = new VMStandin[0];
-	
+
 	/**
 	 * Custom stand-in that allows us to provide a version
 	 * @since 3.7.0
 	 */
 	public static class MacVMStandin extends VMStandin {
-		
+
 		String version = null;
-		
+
 		public MacVMStandin(IVMInstallType type, File location, String name, String version, String id) {
 			super(type, id);
 			setInstallLocation(location);
 			setName(name);
 			this.version = version;
 		}
-		
+
 		@Override
 		public String getJavaVersion() {
 			return version;
 		}
 	}
-	
+
 	/**
 	 * Parses the XML output produced from "java_home -X" (see bug 325777), and return a collection
 	 * of descriptions of JRE installations.
-	 * 
+	 *
 	 * @param monitor the {@link IProgressMonitor} or <code>null</code>
 	 * @return array of {@link VMStandin}s installed in the OS
 	 * @exception CoreException if unable to parse the output or the executable does not exist
@@ -120,10 +120,10 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Parses the output from 'java_home -X'.
-	 * 
+	 *
 	 * @param process process with output from 'java_home -X'
 	 * @param the {@link IProgressMonitor} or <code>null</code>
 	 * @return array JRE descriptions installed in the OS
@@ -141,11 +141,11 @@
 		}
 		return NO_VMS;
 	}
-	
+
 	/**
-	 * Parse {@link JREDescriptor}s from the given input stream. The stream is expected to be in the 
+	 * Parse {@link JREDescriptor}s from the given input stream. The stream is expected to be in the
 	 * XML properties format.
-	 * 
+	 *
 	 * @param monitor the {@link IProgressMonitor} or <code>null</code>
 	 * @param stream
 	 * @return the array of {@link VMStandin}s or an empty array never <code>null</code>
@@ -158,7 +158,7 @@
 			if (result instanceof Object[]) {
 				Object[] maps = (Object[]) result;
 				smonitor.setWorkRemaining(maps.length);
-				List<VMStandin> jres= new ArrayList<VMStandin>();
+				List<VMStandin> jres= new ArrayList<>();
 				AbstractVMInstallType mactype = (AbstractVMInstallType) JavaRuntime.getVMInstallType("org.eclipse.jdt.internal.launching.macosx.MacOSXType"); //$NON-NLS-1$
 				if(mactype != null) {
 					for (int i = 0; i < maps.length; i++) {
@@ -185,9 +185,9 @@
 								vm.setLibraryLocations(mactype.getDefaultLibraryLocations(loc));
 								vm.setVMArgs(mactype.getDefaultVMArguments(loc));
 								if (!jres.contains(vm)) { // remove duplicates
-									jres.add(vm);	
+									jres.add(vm);
 								}
-							} 
+							}
 						}
 						smonitor.worked(1);
 					}
@@ -202,7 +202,7 @@
 		}
 		return NO_VMS;
 	}
-	
+
 	/**
 	 * Tries to compute the descriptor id using the {@link #PLIST_JVM_BUNDLE_ID}. If that is not defined
 	 * we fall back to using the version.
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/PListParser.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/PListParser.java
index 39f2cad..315574d 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/PListParser.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/PListParser.java
@@ -38,7 +38,7 @@
  * Parses an XML property list into its associated objects.
  */
 public class PListParser {
-	
+
 	/**
 	 * Constants for XML element names and attributes
 	 */
@@ -50,11 +50,11 @@
 	private static final String FALSE_ELEMENT = "false"; //$NON-NLS-1$
 	private static final String INT_ELEMENT = "integer"; //$NON-NLS-1$
 	private static final String STRING_ELEMENT = "string"; //$NON-NLS-1$
-	
+
 	/**
 	 * Parses the given input stream which corresponds to an XML plist. See the DTD
 	 * here: http://www.apple.com/DTDs/PropertyList-1.0.dtd
-	 * 
+	 *
 	 * @param stream XML plist input stream
 	 * @return Object(s) in the stream
 	 * @throws CoreException if an error occurs
@@ -64,25 +64,25 @@
 			stream = new BufferedInputStream(stream);
 			return parseXML(stream);
 		} catch (FileNotFoundException e) {
-			abort(e);					
+			abort(e);
 		} catch (SAXException e) {
-			abort(e);					
+			abort(e);
 		} catch (ParserConfigurationException e) {
-			abort(e);					
+			abort(e);
 		} catch (IOException e) {
-			abort(e);					
+			abort(e);
 		} finally {
 			if (stream != null) {
 				try {
 					stream.close();
 				} catch (IOException e) {
-					abort(e);					
+					abort(e);
 				}
 			}
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Return a LaunchConfigurationInfo object initialized from XML contained in
 	 * the specified stream.  Simply pass out any exceptions encountered so that
@@ -108,7 +108,7 @@
 		DocumentBuilder parser = documentBuilderFactory.newDocumentBuilder();
 		parser.setErrorHandler(new DefaultHandler());
 		root = parser.parse(new InputSource(stream)).getDocumentElement();
-		if (!root.getNodeName().equalsIgnoreCase(PLIST_ELEMENT)) { 
+		if (!root.getNodeName().equalsIgnoreCase(PLIST_ELEMENT)) {
 			throw getInvalidFormatException();
 		}
 		NodeList list = root.getChildNodes();
@@ -124,35 +124,35 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Returns an invalid format exception
-	 * 
+	 *
 	 * @return an invalid format exception
 	 */
 	private CoreException getInvalidFormatException() {
 		return new CoreException(new Status(IStatus.ERROR, LaunchingPlugin.ID_PLUGIN, "Invalid plist XML", null)); //$NON-NLS-1$
 	}
-	
+
 	/**
 	 * Parses and returns an object from the given root element, possibly <code>null</code>.
-	 * 
+	 *
 	 * @param element the root node from the XML document
 	 * @return parsed object or <code>null</code>
 	 * @throws CoreException if an error occurs
 	 */
 	private Object parseObject(Element element) throws CoreException {
 		String nodeName = element.getNodeName();
-		if (nodeName.equalsIgnoreCase(ARRAY_ELEMENT)) { 
+		if (nodeName.equalsIgnoreCase(ARRAY_ELEMENT)) {
 			return parseArray(element);
-		} else if (nodeName.equalsIgnoreCase(DICT_ELEMENT)) { 
+		} else if (nodeName.equalsIgnoreCase(DICT_ELEMENT)) {
 			return parseDictionary(element);
-		} else if (nodeName.equalsIgnoreCase(KEY_ELEMENT))  { 
+		} else if (nodeName.equalsIgnoreCase(KEY_ELEMENT))  {
 			return getText(element);
-		} else if (nodeName.equalsIgnoreCase(TRUE_ELEMENT)) {   
-			return Boolean.TRUE;			
-		} else if (nodeName.equalsIgnoreCase(FALSE_ELEMENT)) {    
-			return Boolean.FALSE;								
+		} else if (nodeName.equalsIgnoreCase(TRUE_ELEMENT)) {
+			return Boolean.TRUE;
+		} else if (nodeName.equalsIgnoreCase(FALSE_ELEMENT)) {
+			return Boolean.FALSE;
 		} else if(nodeName.equalsIgnoreCase(INT_ELEMENT)) {
 			try {
 				return new Integer(Integer.parseInt(getText(element)));
@@ -163,17 +163,17 @@
 			return getText(element);
 		}
 		return null;
-	}	
-	
+	}
+
 	/**
 	 * Parses and returns an array from the given root element, possibly empty.
-	 * 
+	 *
 	 * @param root the root array node from the XML document
 	 * @return parsed array or <code>null</code>
 	 * @throws CoreException if an error occurs
 	 */
 	private Object[] parseArray(Element root) throws CoreException {
-		List<Object> collection = new ArrayList<Object>();
+		List<Object> collection = new ArrayList<>();
 		NodeList list = root.getChildNodes();
 		Node node = null;
 		Element element = null;
@@ -189,17 +189,17 @@
 			}
 		}
 		return collection.toArray();
-	}	
-	
+	}
+
 	/**
 	 * Parses and returns a map from the given dictionary element, possibly empty.
-	 * 
+	 *
 	 * @param root the root dictionary node from the XML document
 	 * @return parsed map or <code>null</code>
 	 * @throws CoreException if an error occurs
 	 */
 	private Map<String, Object> parseDictionary(Element root) throws CoreException {
-		Map<String, Object> dict = new HashMap<String, Object>();
+		Map<String, Object> dict = new HashMap<>();
 		NodeList list = root.getChildNodes();
 		Node node = null;
 		Element element = null;
@@ -211,7 +211,7 @@
 			if (nodeType == Node.ELEMENT_NODE) {
 				element = (Element) node;
 				nodeName = element.getNodeName();
-				if (nodeName.equalsIgnoreCase(KEY_ELEMENT)) { 
+				if (nodeName.equalsIgnoreCase(KEY_ELEMENT)) {
 					key = getText(element);
 				} else {
 					dict.put(key, parseObject(element));
@@ -219,12 +219,12 @@
 			}
 		}
 		return dict;
-	}		
-	
+	}
+
 	/**
 	 * Returns the value of the first child text node from the given element,
 	 * or <code>null</code>.
-	 * 
+	 *
 	 * @param root the root element
 	 * @return its text or <code>null</code> if none
 	 */
@@ -240,7 +240,7 @@
 		}
 		return null;
 	}
-	
+
 	private void abort(Throwable t) throws CoreException {
 		throw new CoreException(new Status(IStatus.ERROR, LaunchingPlugin.ID_PLUGIN, "Exception occurred parsing property list", t)); //$NON-NLS-1$
 	}
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/PackageFragmentRootSourceContainerTypeDelegate.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/PackageFragmentRootSourceContainerTypeDelegate.java
index 880568b..570bcf8 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/PackageFragmentRootSourceContainerTypeDelegate.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/PackageFragmentRootSourceContainerTypeDelegate.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -23,7 +23,7 @@
 
 /**
  * Package fragment root source container type.
- * 
+ *
  * @since 3.0
  */
 public class PackageFragmentRootSourceContainerTypeDelegate extends AbstractSourceContainerTypeDelegate {
@@ -39,18 +39,18 @@
 			if ("packageFragmentRoot".equals(element.getNodeName())) { //$NON-NLS-1$
 				String string = element.getAttribute("handle"); //$NON-NLS-1$
 				if (string == null || string.length() == 0) {
-					abort(LaunchingMessages.PackageFragmentRootSourceContainerTypeDelegate_6, null); 
+					abort(LaunchingMessages.PackageFragmentRootSourceContainerTypeDelegate_6, null);
 				}
 				IJavaElement root = JavaCore.create(string);
 				if (root != null && root instanceof IPackageFragmentRoot) {
 					return new PackageFragmentRootSourceContainer((IPackageFragmentRoot)root);
 				}
-				abort(LaunchingMessages.PackageFragmentRootSourceContainerTypeDelegate_7, null); 
+				abort(LaunchingMessages.PackageFragmentRootSourceContainerTypeDelegate_7, null);
 			} else {
-				abort(LaunchingMessages.PackageFragmentRootSourceContainerTypeDelegate_8, null); 
+				abort(LaunchingMessages.PackageFragmentRootSourceContainerTypeDelegate_8, null);
 			}
 		}
-		abort(LaunchingMessages.JavaProjectSourceContainerTypeDelegate_7, null); 
+		abort(LaunchingMessages.JavaProjectSourceContainerTypeDelegate_7, null);
 		return null;
 	}
 	/* (non-Javadoc)
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/ProjectClasspathVariableResolver.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/ProjectClasspathVariableResolver.java
index a23b7a9..9980ff9 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/ProjectClasspathVariableResolver.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/ProjectClasspathVariableResolver.java
@@ -56,7 +56,7 @@
 		if (javaProject.exists()) {
 			IRuntimeClasspathEntry2 defClassPath = (IRuntimeClasspathEntry2) JavaRuntime.newDefaultProjectClasspathEntry(javaProject);
 			IRuntimeClasspathEntry[] entries = defClassPath.getRuntimeClasspathEntries(null);
-			List<IRuntimeClasspathEntry> collect = new ArrayList<IRuntimeClasspathEntry>();
+			List<IRuntimeClasspathEntry> collect = new ArrayList<>();
 			for (int i = 0; i < entries.length; i++) {
 				IRuntimeClasspathEntry[] children = JavaRuntime.resolveRuntimeClasspathEntry(entries[i], javaProject);
 				for (int j = 0; j < children.length; j++) {
@@ -75,13 +75,13 @@
 		}
 		throw new CoreException(new Status(IStatus.ERROR, LaunchingPlugin.ID_PLUGIN, NLS.bind(LaunchingMessages.ProjectClasspathVariableResolver_1, new String[]{argument})));
 	}
-	
+
 	/**
 	 * Returns the selected resource. Uses the ${selected_resource_path} variable
 	 * to determine the selected resource. This variable is provided by the debug.ui
 	 * plug-in. Selected resource resolution is only available when the debug.ui
 	 * plug-in is present.
-	 * 
+	 *
 	 * @return selected resource
 	 * @throws CoreException if there is no selection
 	 */
@@ -93,7 +93,7 @@
 		} catch (CoreException e) {
 			// unable to resolve a selection
 		}
-		throw new CoreException(new Status(IStatus.ERROR, LaunchingPlugin.ID_PLUGIN, LaunchingMessages.ProjectClasspathVariableResolver_3));	
+		throw new CoreException(new Status(IStatus.ERROR, LaunchingPlugin.ID_PLUGIN, LaunchingMessages.ProjectClasspathVariableResolver_3));
 	}
 
 }
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/RuntimeClasspathEntry.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/RuntimeClasspathEntry.java
index 66df845..df2e510 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/RuntimeClasspathEntry.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/RuntimeClasspathEntry.java
@@ -8,7 +8,7 @@
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     BEA - Daniel R Somerfield - Bug 88939
- *     Frits Jalvingh - Contribution for Bug 459831 - [launching] Support attaching 
+ *     Frits Jalvingh - Contribution for Bug 459831 - [launching] Support attaching
  *     	external annotations to a JRE container
  *******************************************************************************/
 package org.eclipse.jdt.internal.launching;
@@ -42,7 +42,7 @@
 /**
  * An entry on the runtime classpath that the user can manipulate
  * and share in a launch configuration.
- * 
+ *
  * @see org.eclipse.jdt.launching.IRuntimeClasspathEntry
  * @since 2.0
  */
@@ -52,36 +52,36 @@
 	 * This entry's type - must be set on creation.
 	 */
 	private int fType = -1;
-	
+
 	/**
 	 * This entry's classpath property.
 	 */
 	private int fClasspathProperty = -1;
-	
+
 	/**
 	 * This entry's associated build path entry.
 	 */
 	private IClasspathEntry fClasspathEntry = null;
-	
+
 	/**
 	 * The entry's resolved entry (lazily initialized)
 	 */
 	private IClasspathEntry fResolvedEntry = null;
-	
+
 	/**
 	 * Associated Java project, or <code>null</code>
 	 */
 	private IJavaProject fJavaProject = null;
-	
+
 	/**
 	 * The path if the entry was invalid and fClasspathEntry is null
 	 */
 	private IPath fInvalidPath;
-	
+
 	/**
 	 * Constructs a new runtime classpath entry based on the
 	 * (build) classpath entry.
-	 * 
+	 *
 	 * @param entry the associated classpath entry
 	 */
 	public RuntimeClasspathEntry(IClasspathEntry entry) {
@@ -96,15 +96,15 @@
 				setType(VARIABLE);
 				break;
 			default:
-				throw new IllegalArgumentException(NLS.bind(LaunchingMessages.RuntimeClasspathEntry_Illegal_classpath_entry__0__1, new String[] {entry.toString()})); 
+				throw new IllegalArgumentException(NLS.bind(LaunchingMessages.RuntimeClasspathEntry_Illegal_classpath_entry__0__1, new String[] {entry.toString()}));
 		}
 		setClasspathEntry(entry);
 		initializeClasspathProperty();
 	}
-	
+
 	/**
 	 * Constructs a new container entry in the context of the given project
-	 * 
+	 *
 	 * @param entry classpath entry
 	 * @param classpathProperty this entry's classpath property
 	 */
@@ -114,30 +114,30 @@
 				setType(CONTAINER);
 				break;
 			default:
-				throw new IllegalArgumentException(NLS.bind(LaunchingMessages.RuntimeClasspathEntry_Illegal_classpath_entry__0__1, new String[] {entry.toString()})); 
+				throw new IllegalArgumentException(NLS.bind(LaunchingMessages.RuntimeClasspathEntry_Illegal_classpath_entry__0__1, new String[] {entry.toString()}));
 		}
 		setClasspathEntry(entry);
 		setClasspathProperty(classpathProperty);
-	}	
+	}
 
 	/**
 	 * Reconstructs a runtime classpath entry from the given
 	 * XML document root not.
-	 * 
+	 *
 	 * @param root a memento root doc element created by this class
 	 * @exception CoreException if unable to restore from the given memento
 	 */
-	public RuntimeClasspathEntry(Element root) throws CoreException {									
+	public RuntimeClasspathEntry(Element root) throws CoreException {
 		try {
 			setType(Integer.parseInt(root.getAttribute("type"))); //$NON-NLS-1$
 		} catch (NumberFormatException e) {
-			abort(LaunchingMessages.RuntimeClasspathEntry_Unable_to_recover_runtime_class_path_entry_type_2, e); 
+			abort(LaunchingMessages.RuntimeClasspathEntry_Unable_to_recover_runtime_class_path_entry_type_2, e);
 		}
 		try {
 			setClasspathProperty(Integer.parseInt(root.getAttribute("path"))); //$NON-NLS-1$
 		} catch (NumberFormatException e) {
-			abort(LaunchingMessages.RuntimeClasspathEntry_Unable_to_recover_runtime_class_path_entry_location_3, e); 
-		}			
+			abort(LaunchingMessages.RuntimeClasspathEntry_Unable_to_recover_runtime_class_path_entry_location_3, e);
+		}
 
 		// source attachment
 		IPath sourcePath = null;
@@ -149,13 +149,13 @@
 		path = root.getAttribute("sourceRootPath"); //$NON-NLS-1$
 		if (path != null && path.length() > 0) {
 			rootPath = new Path(path);
-		}			
+		}
 
 		switch (getType()) {
 			case PROJECT :
 				String name = root.getAttribute("projectName"); //$NON-NLS-1$
 				if (isEmpty(name)) {
-					abort(LaunchingMessages.RuntimeClasspathEntry_Unable_to_recover_runtime_class_path_entry___missing_project_name_4, null); 
+					abort(LaunchingMessages.RuntimeClasspathEntry_Unable_to_recover_runtime_class_path_entry___missing_project_name_4, null);
 				} else {
 					IProject proj = ResourcesPlugin.getWorkspace().getRoot().getProject(name);
 					setClasspathEntry(JavaCore.newProjectEntry(proj.getFullPath()));
@@ -167,7 +167,7 @@
 					// internal
 					path = root.getAttribute("internalArchive"); //$NON-NLS-1$
 					if (isEmpty(path)) {
-						abort(LaunchingMessages.RuntimeClasspathEntry_Unable_to_recover_runtime_class_path_entry___missing_archive_path_5, null); 
+						abort(LaunchingMessages.RuntimeClasspathEntry_Unable_to_recover_runtime_class_path_entry___missing_archive_path_5, null);
 					} else {
 						setClasspathEntry(createLibraryEntry(sourcePath, rootPath, path));
 					}
@@ -179,7 +179,7 @@
 			case VARIABLE :
 				String var = root.getAttribute("containerPath"); //$NON-NLS-1$
 				if (isEmpty(var)) {
-					abort(LaunchingMessages.RuntimeClasspathEntry_Unable_to_recover_runtime_class_path_entry___missing_variable_name_6, null); 
+					abort(LaunchingMessages.RuntimeClasspathEntry_Unable_to_recover_runtime_class_path_entry___missing_variable_name_6, null);
 				} else {
 					setClasspathEntry(JavaCore.newVariableEntry(new Path(var), sourcePath, rootPath));
 				}
@@ -187,13 +187,13 @@
 			case CONTAINER :
 				var = root.getAttribute("containerPath"); //$NON-NLS-1$
 				if (isEmpty(var)) {
-					abort(LaunchingMessages.RuntimeClasspathEntry_Unable_to_recover_runtime_class_path_entry___missing_variable_name_6, null); 
+					abort(LaunchingMessages.RuntimeClasspathEntry_Unable_to_recover_runtime_class_path_entry___missing_variable_name_6, null);
 				} else {
 					setClasspathEntry(JavaCore.newContainerEntry(new Path(var)));
 				}
 				break;
-		}	
-		
+		}
+
 		String name = root.getAttribute("javaProject"); //$NON-NLS-1$
 		if (isEmpty(name)) {
 			fJavaProject = null;
@@ -209,11 +209,11 @@
 		{
 			fInvalidPath = p;
 			return null;
-			//abort("There was a problem with path \" " + path + "\": paths must be absolute.", null);			
+			//abort("There was a problem with path \" " + path + "\": paths must be absolute.", null);
 		}
 		return JavaCore.newLibraryEntry(p, sourcePath, rootPath);
 	}
-	
+
 	/**
 	 * Throws an internal error exception
 	 * @param message the message
@@ -222,7 +222,7 @@
 	 */
 	protected void abort(String message, Throwable e)	throws CoreException {
 		IStatus s = new Status(IStatus.ERROR, LaunchingPlugin.getUniqueIdentifier(), IJavaLaunchConfigurationConstants.ERR_INTERNAL_ERROR, message, e);
-		throw new CoreException(s);		
+		throw new CoreException(s);
 	}
 
 	/**
@@ -235,7 +235,7 @@
 
 	/**
 	 * Sets this entry's type
-	 * 
+	 *
 	 * @param type this entry's type
 	 */
 	private void setType(int type) {
@@ -287,7 +287,7 @@
 			case CONTAINER :
 				node.setAttribute("containerPath", getPath().toString()); //$NON-NLS-1$
 				break;
-		}		
+		}
 		if (getSourceAttachmentPath() != null) {
 			node.setAttribute("sourceAttachmentPath", getSourceAttachmentPath().toString()); //$NON-NLS-1$
 		}
@@ -325,12 +325,12 @@
 				return getResource(getPath());
 		}
 	}
-	
+
 	/**
 	 * Returns the resource in the workspace associated with the given
 	 * absolute path, or <code>null</code> if none. The path may have
 	 * a device.
-	 * 
+	 *
 	 * @param path absolute path, or <code>null</code>
 	 * @return resource or <code>null</code>
 	 */
@@ -351,8 +351,8 @@
 			if (path.getDevice() == null) {
 				// search relative to the workspace if no device present
 				return root.findMember(path);
-			} 
-		}		
+			}
+		}
 		return null;
 	}
 
@@ -404,7 +404,7 @@
 		}
 		updateClasspathEntry(getPath(), getSourceAttachmentPath(), getSourceAttachmentRootPath(), path);
 	}
-	
+
 	/**
 	 * @see IRuntimeClasspathEntry#getSourceAttachmentRootPath()
 	 */
@@ -428,7 +428,7 @@
 		}
 		updateClasspathEntry(getPath(), getSourceAttachmentPath(), path, getExternalAnnotationsPath());
 	}
-	
+
 	/**
 	 * Initializes the classpath property based on this entry's type.
 	 */
@@ -449,8 +449,8 @@
 				break;
 		}
 	}
-	
-	
+
+
 	/**
 	 * @see IRuntimeClasspathEntry#setClasspathProperty(int)
 	 */
@@ -499,7 +499,7 @@
 		}
 		return resolveToOSPath(path);
 	}
-	
+
 	/**
 	 * Returns the OS path for the given absolute or workspace relative path
 	 * @param path the path
@@ -514,13 +514,13 @@
 			}
 			if (res == null) {
 				return path.toOSString();
-			} 
+			}
 			IPath location = res.getLocation();
 			if (location != null) {
 				return location.toOSString();
 			}
 		}
-		return null;		
+		return null;
 	}
 
 	/**
@@ -578,7 +578,7 @@
 		}
 		return one.equals(two);
 	}
-	
+
 	/**
 	 * @see Object#hashCode()
 	 */
@@ -657,10 +657,10 @@
 				break;
 			default:
 				return;
-		}		
-		setClasspathEntry(entry);		
+		}
+		setClasspathEntry(entry);
 	}
-	
+
 	private static IClasspathAttribute[] setClasspathAttribute(IClasspathAttribute[] attributes, String name, String value) {
 		for (int i = attributes.length; --i >= 0;) {
 			if (name.equals(attributes[i].getName())) {
@@ -687,18 +687,18 @@
 		}
 		return fResolvedEntry;
 	}
-		
+
 	protected boolean isEmpty(String string) {
 		return string == null || string.length() == 0;
 	}
-	
+
 	@Override
 	public String toString() {
 		if (fClasspathEntry != null) {
 			return fClasspathEntry.toString();
 		}
 		return super.toString();
-		
+
 	}
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.IRuntimeClasspathEntry#getJavaProject()
@@ -707,10 +707,10 @@
 	public IJavaProject getJavaProject() {
 		return fJavaProject;
 	}
-	
+
 	/**
 	 * Sets the Java project associated with this classpath entry.
-	 * 
+	 *
 	 * @param project Java project
 	 */
 	public void setJavaProject(IJavaProject project) {
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/RuntimeClasspathEntryListComparator.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/RuntimeClasspathEntryListComparator.java
index f975091..aeb451f 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/RuntimeClasspathEntryListComparator.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/RuntimeClasspathEntryListComparator.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -26,7 +26,7 @@
 	public int compare(Object o1, Object o2) {
 		List<?> list1 = (List<?>)o1;
 		List<?> list2 = (List<?>)o2;
-		
+
 		if (list1.size() == list2.size()) {
 			for (int i = 0; i < list1.size(); i++) {
 				String memento1 = (String)list1.get(i);
@@ -39,7 +39,7 @@
 		}
 		return -1;
 	}
-	
+
 	protected boolean equalsIgnoreWhitespace(String one, String two) {
 		int i1 = 0;
 		int i2 = 0;
@@ -59,7 +59,7 @@
 			}
 			if (ch1 != ch2) {
 				return false;
-			}			
+			}
 			i1++;
 			i2++;
 		}
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/RuntimeClasspathEntryResolver.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/RuntimeClasspathEntryResolver.java
index cd1abdd..6906f1b 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/RuntimeClasspathEntryResolver.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/RuntimeClasspathEntryResolver.java
@@ -4,13 +4,13 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jdt.internal.launching;
 
- 
+
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.debug.core.ILaunchConfiguration;
@@ -27,9 +27,9 @@
 public class RuntimeClasspathEntryResolver implements IRuntimeClasspathEntryResolver2 {
 
 	private IConfigurationElement fConfigurationElement;
-	
+
 	private IRuntimeClasspathEntryResolver fDelegate;
-	
+
 	/**
 	 * Constructs a new resolver on the given configuration element
 	 * @param element the element
@@ -37,7 +37,7 @@
 	public RuntimeClasspathEntryResolver(IConfigurationElement element) {
 		fConfigurationElement = element;
 	}
-	
+
 	/**
 	 * @see IRuntimeClasspathEntryResolver#resolveRuntimeClasspathEntry(IRuntimeClasspathEntry, ILaunchConfiguration)
 	 */
@@ -45,11 +45,11 @@
 	public IRuntimeClasspathEntry[] resolveRuntimeClasspathEntry(IRuntimeClasspathEntry entry, ILaunchConfiguration configuration) throws CoreException {
 		return getResolver().resolveRuntimeClasspathEntry(entry, configuration);
 	}
-	
+
 	/**
-	 * Returns the resolver delegate (and creates if required) 
+	 * Returns the resolver delegate (and creates if required)
 	 * @return the resolver
-	 * @throws CoreException if an error occurs 
+	 * @throws CoreException if an error occurs
 	 */
 	protected IRuntimeClasspathEntryResolver getResolver() throws CoreException {
 		if (fDelegate == null) {
@@ -57,7 +57,7 @@
 		}
 		return fDelegate;
 	}
-	
+
 	/**
 	 * Returns the variable name this resolver is registered for, or <code>null</code>
 	 * @return the variable name or <code>null</code>
@@ -65,15 +65,15 @@
 	public String getVariableName() {
 		return fConfigurationElement.getAttribute("variable"); //$NON-NLS-1$
 	}
-	
+
 	/**
 	 * Returns the container id this resolver is registered for, or <code>null</code>
 	 * @return the id or <code>null</code>
 	 */
 	public String getContainerId() {
 		return fConfigurationElement.getAttribute("container"); //$NON-NLS-1$
-	}	
-	
+	}
+
 	/**
 	 * Returns the runtime classpath entry id this resolver is registered
 	 * for,or <code>null</code> if none.
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/RuntimeClasspathProvider.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/RuntimeClasspathProvider.java
index 4241fc9..571a474 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/RuntimeClasspathProvider.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/RuntimeClasspathProvider.java
@@ -4,13 +4,13 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jdt.internal.launching;
 
- 
+
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.debug.core.ILaunchConfiguration;
@@ -23,9 +23,9 @@
 public class RuntimeClasspathProvider implements IRuntimeClasspathProvider {
 
 	private IConfigurationElement fConfigurationElement;
-	
+
 	private IRuntimeClasspathProvider fDelegate;
-	
+
 	/**
 	 * Constructs a new resolver on the given configuration element
 	 * @param element the element
@@ -33,9 +33,9 @@
 	public RuntimeClasspathProvider(IConfigurationElement element) {
 		fConfigurationElement = element;
 	}
-		
+
 	/**
-	 * Returns the resolver delegate (and creates if required) 
+	 * Returns the resolver delegate (and creates if required)
 	 * @return the provider
 	 * @throws CoreException if an error occurs
 	 */
@@ -45,7 +45,7 @@
 		}
 		return fDelegate;
 	}
-	
+
 	public String getIdentifier() {
 		return fConfigurationElement.getAttribute("id"); //$NON-NLS-1$
 	}
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/SocketAttachConnector.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/SocketAttachConnector.java
index cabc0ad..2272091 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/SocketAttachConnector.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/SocketAttachConnector.java
@@ -45,10 +45,10 @@
  * A standard socket attaching connector
  */
 public class SocketAttachConnector implements IVMConnector {
-		
+
 	/**
 	 * Return the socket transport attaching connector
-	 * 
+	 *
 	 * @return the {@link AttachingConnector}
 	 * @exception CoreException if unable to locate the connector
 	 */
@@ -63,7 +63,7 @@
 			}
 		}
 		if (connector == null) {
-			abort(LaunchingMessages.SocketAttachConnector_Socket_attaching_connector_not_available_3, null, IJavaLaunchConfigurationConstants.ERR_SHARED_MEMORY_CONNECTOR_UNAVAILABLE); 
+			abort(LaunchingMessages.SocketAttachConnector_Socket_attaching_connector_not_available_3, null, IJavaLaunchConfigurationConstants.ERR_SHARED_MEMORY_CONNECTOR_UNAVAILABLE);
 		}
 		return connector;
 	}
@@ -81,13 +81,13 @@
 	 */
 	@Override
 	public String getName() {
-		return LaunchingMessages.SocketAttachConnector_Standard__Socket_Attach__4; 
+		return LaunchingMessages.SocketAttachConnector_Standard__Socket_Attach__4;
 	}
-	
+
 	/**
 	 * Throws a core exception with an error status object built from
 	 * the given message, lower level exception, and error code.
-	 * 
+	 *
 	 * @param message the status message
 	 * @param exception lower level exception associated with the
 	 *  error, or <code>null</code> if none
@@ -96,7 +96,7 @@
 	 */
 	protected static void abort(String message, Throwable exception, int code) throws CoreException {
 		throw new CoreException(new Status(IStatus.ERROR, LaunchingPlugin.getUniqueIdentifier(), code, message, exception));
-	}		
+	}
 
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.IVMConnector#connect(java.util.Map, org.eclipse.core.runtime.IProgressMonitor, org.eclipse.debug.core.ILaunch)
@@ -106,40 +106,40 @@
 		if (monitor == null) {
 			monitor = new NullProgressMonitor();
 		}
-		
+
 		IProgressMonitor subMonitor = new SubProgressMonitor(monitor, 1);
-		subMonitor.beginTask(LaunchingMessages.SocketAttachConnector_Connecting____1, 2); 
-		subMonitor.subTask(LaunchingMessages.SocketAttachConnector_Configuring_connection____1); 
-		
+		subMonitor.beginTask(LaunchingMessages.SocketAttachConnector_Connecting____1, 2);
+		subMonitor.subTask(LaunchingMessages.SocketAttachConnector_Configuring_connection____1);
+
 		AttachingConnector connector= getAttachingConnector();
 		String portNumberString = arguments.get("port"); //$NON-NLS-1$
 		if (portNumberString == null) {
-			abort(LaunchingMessages.SocketAttachConnector_Port_unspecified_for_remote_connection__2, null, IJavaLaunchConfigurationConstants.ERR_UNSPECIFIED_PORT); 
+			abort(LaunchingMessages.SocketAttachConnector_Port_unspecified_for_remote_connection__2, null, IJavaLaunchConfigurationConstants.ERR_UNSPECIFIED_PORT);
 		}
 		String host = arguments.get("hostname"); //$NON-NLS-1$
 		if (host == null) {
-			abort(LaunchingMessages.SocketAttachConnector_Hostname_unspecified_for_remote_connection__4, null, IJavaLaunchConfigurationConstants.ERR_UNSPECIFIED_HOSTNAME); 
+			abort(LaunchingMessages.SocketAttachConnector_Hostname_unspecified_for_remote_connection__4, null, IJavaLaunchConfigurationConstants.ERR_UNSPECIFIED_HOSTNAME);
 		}
 		Map<String, Connector.Argument> map= connector.defaultArguments();
-		
+
         Connector.Argument param= map.get("hostname"); //$NON-NLS-1$
 		param.setValue(host);
 		param= map.get("port"); //$NON-NLS-1$
 		param.setValue(portNumberString);
-        
+
         String timeoutString = arguments.get("timeout"); //$NON-NLS-1$
         if (timeoutString != null) {
             param= map.get("timeout"); //$NON-NLS-1$
             param.setValue(timeoutString);
         }
-        
+
 		ILaunchConfiguration configuration = launch.getLaunchConfiguration();
 		boolean allowTerminate = false;
 		if (configuration != null) {
 			allowTerminate = configuration.getAttribute(IJavaLaunchConfigurationConstants.ATTR_ALLOW_TERMINATE, false);
 		}
 		subMonitor.worked(1);
-		subMonitor.subTask(LaunchingMessages.SocketAttachConnector_Establishing_connection____2); 
+		subMonitor.subTask(LaunchingMessages.SocketAttachConnector_Establishing_connection____2);
 		try {
 			VirtualMachine vm = connector.attach(map);
 			String vmLabel = constructVMLabel(vm, host, portNumberString, configuration);
@@ -150,13 +150,13 @@
         } catch (TimeoutException e) {
             abort(LaunchingMessages.SocketAttachConnector_0, e, IJavaLaunchConfigurationConstants.ERR_REMOTE_VM_CONNECTION_FAILED);
 		} catch (UnknownHostException e) {
-			abort(NLS.bind(LaunchingMessages.SocketAttachConnector_Failed_to_connect_to_remote_VM_because_of_unknown_host____0___1, new String[]{host}), e, IJavaLaunchConfigurationConstants.ERR_REMOTE_VM_CONNECTION_FAILED); 
+			abort(NLS.bind(LaunchingMessages.SocketAttachConnector_Failed_to_connect_to_remote_VM_because_of_unknown_host____0___1, new String[]{host}), e, IJavaLaunchConfigurationConstants.ERR_REMOTE_VM_CONNECTION_FAILED);
 		} catch (ConnectException e) {
-			abort(LaunchingMessages.SocketAttachConnector_Failed_to_connect_to_remote_VM_as_connection_was_refused_2, e, IJavaLaunchConfigurationConstants.ERR_REMOTE_VM_CONNECTION_FAILED); 
+			abort(LaunchingMessages.SocketAttachConnector_Failed_to_connect_to_remote_VM_as_connection_was_refused_2, e, IJavaLaunchConfigurationConstants.ERR_REMOTE_VM_CONNECTION_FAILED);
 		} catch (IOException e) {
-			abort(LaunchingMessages.SocketAttachConnector_Failed_to_connect_to_remote_VM_1, e, IJavaLaunchConfigurationConstants.ERR_REMOTE_VM_CONNECTION_FAILED); 
+			abort(LaunchingMessages.SocketAttachConnector_Failed_to_connect_to_remote_VM_1, e, IJavaLaunchConfigurationConstants.ERR_REMOTE_VM_CONNECTION_FAILED);
 		} catch (IllegalConnectorArgumentsException e) {
-			abort(LaunchingMessages.SocketAttachConnector_Failed_to_connect_to_remote_VM_1, e, IJavaLaunchConfigurationConstants.ERR_REMOTE_VM_CONNECTION_FAILED); 
+			abort(LaunchingMessages.SocketAttachConnector_Failed_to_connect_to_remote_VM_1, e, IJavaLaunchConfigurationConstants.ERR_REMOTE_VM_CONNECTION_FAILED);
 		}
 	}
 
@@ -188,11 +188,11 @@
 		if(!"".equals(name)) { //$NON-NLS-1$
 			buffer.append(' ');
 		}
-		buffer.append('['); 
+		buffer.append('[');
 		buffer.append(host);
-		buffer.append(':'); 
+		buffer.append(':');
 		buffer.append(port);
-		buffer.append(']'); 
+		buffer.append(']');
 		return buffer.toString();
 	}
 
@@ -212,7 +212,7 @@
 	 */
 	@Override
 	public List<String> getArgumentOrder() {
-		List<String> list = new ArrayList<String>(2);
+		List<String> list = new ArrayList<>(2);
 		list.add("hostname"); //$NON-NLS-1$
 		list.add("port"); //$NON-NLS-1$
 		return list;
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/SocketListenConnector.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/SocketListenConnector.java
index 7ee5de3..967a56d 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/SocketListenConnector.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/SocketListenConnector.java
@@ -39,10 +39,10 @@
  * @see SocketListenConnectorProcess
  */
 public class SocketListenConnector implements IVMConnector {
-		
+
 	/**
 	 * Return the socket transport listening connector
-	 * 
+	 *
 	 * @return the new {@link ListeningConnector}
 	 * @exception CoreException if unable to locate the connector
 	 */
@@ -57,7 +57,7 @@
 			}
 		}
 		if (connector == null) {
-			abort(LaunchingMessages.SocketListenConnector_0, null, IJavaLaunchConfigurationConstants.ERR_SHARED_MEMORY_CONNECTOR_UNAVAILABLE); 
+			abort(LaunchingMessages.SocketListenConnector_0, null, IJavaLaunchConfigurationConstants.ERR_SHARED_MEMORY_CONNECTOR_UNAVAILABLE);
 		}
 		return connector;
 	}
@@ -75,9 +75,9 @@
 	 */
 	@Override
 	public String getName() {
-		return LaunchingMessages.SocketListenConnector_1; 
+		return LaunchingMessages.SocketListenConnector_1;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.IVMConnector#connect(java.util.Map, org.eclipse.core.runtime.IProgressMonitor, org.eclipse.debug.core.ILaunch)
 	 */
@@ -86,21 +86,21 @@
 		if (monitor == null) {
 			monitor = new NullProgressMonitor();
 		}
-		
+
 		monitor.subTask(LaunchingMessages.SocketListenConnector_2);
-		
+
 		ListeningConnector connector= getListeningConnector();
-		
+
 		String portNumberString = arguments.get("port"); //$NON-NLS-1$
 		if (portNumberString == null) {
-			abort(LaunchingMessages.SocketAttachConnector_Port_unspecified_for_remote_connection__2, null, IJavaLaunchConfigurationConstants.ERR_UNSPECIFIED_PORT); 
+			abort(LaunchingMessages.SocketAttachConnector_Port_unspecified_for_remote_connection__2, null, IJavaLaunchConfigurationConstants.ERR_UNSPECIFIED_PORT);
 		}
-	
+
 		Map<String, Connector.Argument> acceptArguments = connector.defaultArguments();
-		
+
         Connector.Argument param= acceptArguments.get("port"); //$NON-NLS-1$
 		param.setValue(portNumberString);
-        
+
 		// retain default behaviour to accept 1 connection only
 		int connectionLimit = 1;
 		if (arguments.containsKey("connectionLimit")) { //$NON-NLS-1$
@@ -113,9 +113,9 @@
 			SocketListenConnectorProcess process = new SocketListenConnectorProcess(launch, portNumberString, connectionLimit);
 			process.waitForConnection(connector, acceptArguments);
 		} catch (IOException e) {
-			abort(LaunchingMessages.SocketListenConnector_4, e, IJavaLaunchConfigurationConstants.ERR_REMOTE_VM_CONNECTION_FAILED); 
+			abort(LaunchingMessages.SocketListenConnector_4, e, IJavaLaunchConfigurationConstants.ERR_REMOTE_VM_CONNECTION_FAILED);
 		} catch (IllegalConnectorArgumentsException e) {
-			abort(LaunchingMessages.SocketListenConnector_4, e, IJavaLaunchConfigurationConstants.ERR_REMOTE_VM_CONNECTION_FAILED); 
+			abort(LaunchingMessages.SocketListenConnector_4, e, IJavaLaunchConfigurationConstants.ERR_REMOTE_VM_CONNECTION_FAILED);
 		}
 	}
 
@@ -137,7 +137,7 @@
 	 */
 	@Override
 	public List<String> getArgumentOrder() {
-		List<String> list = new ArrayList<String>(1);
+		List<String> list = new ArrayList<>(1);
 		list.add("port"); //$NON-NLS-1$
 		list.add("connectionLimit"); //$NON-NLS-1$
 		return list;
@@ -146,7 +146,7 @@
 	/**
 	 * Throws a core exception with an error status object built from
 	 * the given message, lower level exception, and error code.
-	 * 
+	 *
 	 * @param message the status message
 	 * @param exception lower level exception associated with the
 	 *  error, or <code>null</code> if none
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/SocketListenConnectorProcess.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/SocketListenConnectorProcess.java
index 75c539c..622628e 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/SocketListenConnectorProcess.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/SocketListenConnectorProcess.java
@@ -47,7 +47,7 @@
  * A process that represents a VM listening connector that is waiting for some VM(s) to remotely connect. Allows the user to see the status of the
  * connection and terminate it. If a successful connection occurs, the debug target is added to the launch and, if a configured number of connections
  * have been reached, then this process is removed.
- * 
+ *
  * @since 3.4
  * @see SocketListenConnector
  */
@@ -74,7 +74,7 @@
 	 * The system job that will wait for incoming VM connections.
 	 */
 	private WaitForConnectionJob fWaitForConnectionJob;
-	
+
 	/** Time when this instance was created (milliseconds) */
 	private long fStartTime;
 
@@ -90,14 +90,14 @@
 		fPort = port;
 		fConnectionLimit = connectionLimit;
 	}
-	
+
 	/**
-	 * Starts a job that will accept a VM remotely connecting to the 
+	 * Starts a job that will accept a VM remotely connecting to the
 	 * given connector.  The #startListening() method must have been
 	 * called on the connector with the same arguments before calling
 	 * this method.  The 'port' argument in the map should have the same
 	 * value as the port specified in this process' constructor.
-	 * 
+	 *
 	 * @param connector the connector that will accept incoming connections
 	 * @param arguments map of arguments that are used by the connector
 	 * @throws CoreException if a problem occurs trying to accept a connection
@@ -151,7 +151,7 @@
 
 	/**
 	 * Returns an error status using the passed parameters.
-	 * 
+	 *
 	 * @param message the status message
 	 * @param exception lower level exception associated with the
 	 *  error, or <code>null</code> if none
@@ -161,7 +161,7 @@
 	protected static IStatus getStatus(String message, Throwable exception, int code) {
 		return new Status(IStatus.ERROR, LaunchingPlugin.getUniqueIdentifier(), code, message, exception);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.core.model.IProcess#getExitValue()
 	 */
@@ -185,7 +185,7 @@
 	public ILaunch getLaunch() {
 		return fLaunch;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.core.model.ITerminate#canTerminate()
 	 */
@@ -218,7 +218,7 @@
 			fireTerminateEvent();
 		}
 	}
-	
+
 	/**
 	 * Fires a terminate event.
 	 */
@@ -228,7 +228,7 @@
 			manager.fireDebugEventSet(new DebugEvent[]{new DebugEvent(this, DebugEvent.TERMINATE)});
 		}
 	}
-	
+
 	/**
 	 * Fires a custom model specific event when this connector is ready to accept incoming
 	 * connections from a remote VM.
@@ -255,7 +255,7 @@
 	public String getAttribute(String key) {
 		return null;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.core.model.IProcess#setAttribute(java.lang.String, java.lang.String)
 	 */
@@ -299,13 +299,13 @@
 		 * to close the socket without generating an error.
 		 */
 		private boolean fListeningStopped = false;
-		
+
 		public WaitForConnectionJob(ListeningConnector connector, Map<String, Connector.Argument> arguments) {
 			super(getLabel());
 			fConnector = connector;
 			fArguments = arguments;
 		}
-		
+
 		@Override
 		protected IStatus run(IProgressMonitor monitor) {
 			try{
@@ -316,7 +316,7 @@
 				if (timeout != null){
 					timeout.setValue("3000"); //$NON-NLS-1$
 				}
-				
+
 				VirtualMachine vm = null;
 				while (vm == null && !monitor.isCanceled()){
 					try {
@@ -324,12 +324,12 @@
 					} catch (TransportTimeoutException e){
 					}
 				}
-				
+
 				if (monitor.isCanceled()){
 					fConnector.stopListening(fArguments);
 					return Status.CANCEL_STATUS;
 				}
-				
+
 				ILaunchConfiguration configuration = fLaunch.getLaunchConfiguration();
 				boolean allowTerminate = false;
 				if (configuration != null) {
@@ -351,10 +351,10 @@
 				}
 				return getStatus(LaunchingMessages.SocketListenConnectorProcess_4, e, IJavaLaunchConfigurationConstants.ERR_REMOTE_VM_CONNECTION_FAILED);
 			} catch (IllegalConnectorArgumentsException e) {
-				return getStatus(LaunchingMessages.SocketListenConnectorProcess_4, e, IJavaLaunchConfigurationConstants.ERR_REMOTE_VM_CONNECTION_FAILED); 
+				return getStatus(LaunchingMessages.SocketListenConnectorProcess_4, e, IJavaLaunchConfigurationConstants.ERR_REMOTE_VM_CONNECTION_FAILED);
 			}
 		}
-		
+
 		/* (non-Javadoc)
 		 * @see org.eclipse.core.runtime.jobs.Job#canceling()
 		 */
@@ -362,7 +362,7 @@
 		protected void canceling() {
 			stopListening();
 		}
-			
+
 		/**
 		 * Tells the listening connector to stop listening.  Ensures
 		 * that the socket is closed and the port released.  Sets a flag
@@ -375,18 +375,18 @@
 					fListeningStopped = true;
 					fConnector.stopListening(fArguments);
 				} catch (IOException e) {
-					done(getStatus(LaunchingMessages.SocketListenConnectorProcess_5, e, IJavaLaunchConfigurationConstants.ERR_REMOTE_VM_CONNECTION_FAILED)); 
+					done(getStatus(LaunchingMessages.SocketListenConnectorProcess_5, e, IJavaLaunchConfigurationConstants.ERR_REMOTE_VM_CONNECTION_FAILED));
 				} catch (IllegalConnectorArgumentsException e) {
-					done(getStatus(LaunchingMessages.SocketListenConnectorProcess_5, e, IJavaLaunchConfigurationConstants.ERR_REMOTE_VM_CONNECTION_FAILED)); 
+					done(getStatus(LaunchingMessages.SocketListenConnectorProcess_5, e, IJavaLaunchConfigurationConstants.ERR_REMOTE_VM_CONNECTION_FAILED));
 				}
 			}
 		}
-		
+
 		/**
 		 * Helper method that constructs a human-readable label for a remote VM.
 		 * @param vm the VM
 		 * @param port the port
-		 * @param configuration the configuration 
+		 * @param configuration the configuration
 		 * @return the new VM label
 		 */
 		protected String constructVMLabel(VirtualMachine vm, String port, ILaunchConfiguration configuration) {
@@ -411,11 +411,11 @@
 				// append the time when each connection was accepted
 				buffer.append('<').append(getRunningTime()).append('>');
 			}
-			buffer.append('['); 
+			buffer.append('[');
 			buffer.append(port);
-			buffer.append(']'); 
+			buffer.append(']');
 			return buffer.toString();
 		}
-		
+
 	}
 }
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/Standard11xVM.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/Standard11xVM.java
index bbc4aef..0e70c84 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/Standard11xVM.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/Standard11xVM.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/Standard11xVMRunner.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/Standard11xVMRunner.java
index 3f7dfe4..fb9f643 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/Standard11xVMRunner.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/Standard11xVMRunner.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -48,22 +48,22 @@
 			monitor = new NullProgressMonitor();
 		}
 		IProgressMonitor subMonitor = new SubProgressMonitor(monitor, 1);
-		subMonitor.beginTask(LaunchingMessages.StandardVMRunner_Launching_VM____1, 2); 
-		subMonitor.subTask(LaunchingMessages.StandardVMRunner_Constructing_command_line____2); //		
-		
+		subMonitor.beginTask(LaunchingMessages.StandardVMRunner_Launching_VM____1, 2);
+		subMonitor.subTask(LaunchingMessages.StandardVMRunner_Constructing_command_line____2); //
+
 		String program= constructProgramString(config);
-		
-		List<String> arguments= new ArrayList<String>();
+
+		List<String> arguments= new ArrayList<>();
 		arguments.add(program);
-				
+
 		// VM arguments are the first thing after the java program so that users can specify
 		// options like '-client' & '-server' which are required to be the first option
 		String[] vmArgs= combineVmArgs(config, fVMInstance);
 		addArguments(vmArgs, arguments);
-				
-		String[] bootCP= config.getBootClassPath();		
+
+		String[] bootCP= config.getBootClassPath();
 		String[] classPath = config.getClassPath();
-		
+
 		String[] combinedPath = null;
 		if (bootCP == null) {
 			LibraryLocation[] locs = JavaRuntime.getLibraryLocations(fVMInstance);
@@ -90,9 +90,9 @@
 			arguments.add(convertClassPath(combinedPath));
 		}
 		arguments.add(config.getClassToLaunch());
-		
+
 		String[] programArgs= config.getProgramArguments();
-		
+
 		String[] envp = prependJREPath(config.getEnvironment());
 		String[] newenvp = checkClasspath(arguments, classPath, envp);
 		if(newenvp != null) {
@@ -101,7 +101,7 @@
 			arguments.remove(cpidx);
 		}
 		addArguments(programArgs, arguments);
-				
+
 		String[] cmdLine= new String[arguments.size()];
 		arguments.toArray(cmdLine);
 
@@ -109,10 +109,10 @@
 		if (monitor.isCanceled()) {
 			return;
 		}
-		
+
 		subMonitor.worked(1);
-		subMonitor.subTask(LaunchingMessages.StandardVMRunner_Starting_virtual_machine____3); 
-		
+		subMonitor.subTask(LaunchingMessages.StandardVMRunner_Starting_virtual_machine____3);
+
 		Process p= null;
 		File workingDir = getWorkingDir(config);
 		String[] newCmdLine = validateCommandLine(launch.getLaunchConfiguration(), cmdLine);
@@ -123,12 +123,12 @@
 		if (p == null) {
 			return;
 		}
-		
+
 		// check for cancellation
 		if (monitor.isCanceled()) {
 			p.destroy();
 			return;
-		}		
+		}
 		String timestamp = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM).format(new Date(System.currentTimeMillis()));
 		IProcess process= DebugPlugin.newProcess(launch, p, renderProcessLabel(cmdLine, timestamp));
 		process.setAttribute(DebugPlugin.ATTR_PATH, cmdLine[0]);
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/Standard11xVMType.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/Standard11xVMType.java
index fffbd14..9841a34 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/Standard11xVMType.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/Standard11xVMType.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -23,7 +23,7 @@
  * JDK installion layout, and command line options.
  */
 public class Standard11xVMType extends StandardVMType {
-		
+
 	/**
 	 * @see org.eclipse.jdt.internal.launching.StandardVMType#getDefaultSystemLibrary(java.io.File)
 	 */
@@ -39,7 +39,7 @@
 	protected IVMInstall doCreateVMInstall(String id) {
 		return new Standard11xVM(this, id);
 	}
-	
+
 	/**
 	 * @see org.eclipse.jdt.internal.launching.StandardVMType#getDefaultSystemLibrarySource(java.io.File)
 	 */
@@ -48,25 +48,25 @@
 		setDefaultRootPath(""); //$NON-NLS-1$
 		return Path.EMPTY;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.IVMInstallType#getName()
 	 */
 	@Override
 	public String getName() {
-		return LaunchingMessages.Standard11xVMType_Standard_1_1_x_VM_1; 
-	}	
-	
+		return LaunchingMessages.Standard11xVMType_Standard_1_1_x_VM_1;
+	}
+
 	/**
 	 * Returns <code>null</code> - not supported.
-	 * 
+	 *
 	 * @see StandardVMType#getDefaultExtensionDirectory(File)
 	 */
 	@Override
 	protected File getDefaultExtensionDirectory(File installLocation) {
 		return null;
 	}
-	
+
 	/**
 	 * @see org.eclipse.jdt.internal.launching.StandardVMType#getDefaultEndorsedDirectory(java.io.File)
 	 */
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVM.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVM.java
index 2d408df..4d29c40 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVM.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVM.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -22,7 +22,7 @@
 
 	/**
 	 * If a StandardVM returns a string for #getDebugArgs(), the string may contain
-	 * the variable ${port}.  This will be replaced with the port that the vm is 
+	 * the variable ${port}.  This will be replaced with the port that the vm is
 	 * using when launching.
 	 */
 	public static final String VAR_PORT = "${port}"; //$NON-NLS-1$
@@ -71,10 +71,10 @@
         }
         return null;
     }
-    
+
     /**
      * Returns the java executable for this VM or <code>null</code> if cannot be found
-     * 
+     *
      * @return executable for this VM or <code>null</code> if none
      */
     File getJavaExecutable() {
@@ -83,17 +83,17 @@
             return StandardVMType.findJavaExecutable(installLocation);
         }
         return null;
-    }    
-    
+    }
+
     /**
-     * Returns arguments used to start this VM in debug mode or 
+     * Returns arguments used to start this VM in debug mode or
      * <code>null</code> if default arguments should be used.
-     * 
+     *
      * @return arguments used to start this VM in debug mode
      * or <code>null</code> if default arguments should be used
      */
     public String getDebugArgs() {
     	return null;
     }
-    
+
 }
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMDebugger.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMDebugger.java
index 3b811ab..ed11b38 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMDebugger.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMDebugger.java
@@ -53,51 +53,51 @@
 import com.sun.jdi.connect.ListeningConnector;
 
 /**
- * A launcher for debugging Java main classes. Uses JDI to launch a VM in debug 
+ * A launcher for debugging Java main classes. Uses JDI to launch a VM in debug
  * mode.
  */
 public class StandardVMDebugger extends StandardVMRunner {
-	
-	
+
+
 	/**
 	 * @since 3.3 OSX environment variable specifying JRE to use
 	 */
 	protected static final String JAVA_JVM_VERSION = "JAVA_JVM_VERSION"; //$NON-NLS-1$
-	
+
 	/**
 	 * JRE path segment descriptor
-	 * 
+	 *
 	 * String equals the word: <code>jre</code>
-	 * 
+	 *
 	 * @since 3.3.1
 	 */
 	protected static final String JRE = "jre"; //$NON-NLS-1$
 
 	/**
 	 * Bin path segment descriptor
-	 * 
+	 *
 	 * String equals the word: <code>bin</code>
-	 * 
+	 *
 	 * @since 3.3.1
 	 */
 	protected static final String BIN = "bin"; //$NON-NLS-1$
-	
+
 	/**
 	 * Used to attach to a VM in a separate thread, to allow for cancellation
 	 * and detect that the associated System process died before the connect
 	 * occurred.
 	 */
 	class ConnectRunnable implements Runnable {
-		
+
 		private VirtualMachine fVirtualMachine = null;
 		private ListeningConnector fConnector = null;
 		private Map<String, Connector.Argument> fConnectionMap = null;
 		private Exception fException = null;
-		
+
 		/**
 		 * Constructs a runnable to connect to a VM via the given connector
 		 * with the given connection arguments.
-		 * 
+		 *
 		 * @param connector the connector to use
 		 * @param map the argument map
 		 */
@@ -105,7 +105,7 @@
 			fConnector = connector;
 			fConnectionMap = map;
 		}
-		
+
 		@Override
 		public void run() {
 			try {
@@ -116,19 +116,19 @@
 				fException = e;
 			}
 		}
-		
+
 		/**
 		 * Returns the VM that was attached to, or <code>null</code> if none.
-		 * 
+		 *
 		 * @return the VM that was attached to, or <code>null</code> if none
 		 */
 		public VirtualMachine getVirtualMachine() {
 			return fVirtualMachine;
 		}
-		
+
 		/**
 		 * Returns any exception that occurred while attaching, or <code>null</code>.
-		 * 
+		 *
 		 * @return IOException or IllegalConnectorArgumentsException
 		 */
 		public Exception getException() {
@@ -153,31 +153,31 @@
 		if (monitor == null) {
 			monitor = new NullProgressMonitor();
 		}
-		
+
 		IProgressMonitor subMonitor = new SubProgressMonitor(monitor, 1);
-		subMonitor.beginTask(LaunchingMessages.StandardVMDebugger_Launching_VM____1, 4); 
-		subMonitor.subTask(LaunchingMessages.StandardVMDebugger_Finding_free_socket____2); 
+		subMonitor.beginTask(LaunchingMessages.StandardVMDebugger_Launching_VM____1, 4);
+		subMonitor.subTask(LaunchingMessages.StandardVMDebugger_Finding_free_socket____2);
 
 		int port= SocketUtil.findFreePort();
 		if (port == -1) {
-			abort(LaunchingMessages.StandardVMDebugger_Could_not_find_a_free_socket_for_the_debugger_1, null, IJavaLaunchConfigurationConstants.ERR_NO_SOCKET_AVAILABLE); 
+			abort(LaunchingMessages.StandardVMDebugger_Could_not_find_a_free_socket_for_the_debugger_1, null, IJavaLaunchConfigurationConstants.ERR_NO_SOCKET_AVAILABLE);
 		}
-		
+
 		subMonitor.worked(1);
-		
+
 		// check for cancellation
 		if (monitor.isCanceled()) {
 			return;
-		}		
-		
-		subMonitor.subTask(LaunchingMessages.StandardVMDebugger_Constructing_command_line____3); 
-				
+		}
+
+		subMonitor.subTask(LaunchingMessages.StandardVMDebugger_Constructing_command_line____3);
+
 		String program= constructProgramString(config);
-		
-		List<String> arguments= new ArrayList<String>(12);
+
+		List<String> arguments= new ArrayList<>(12);
 
 		arguments.add(program);
-		
+
 		if (fVMInstance instanceof StandardVM && ((StandardVM)fVMInstance).getDebugArgs() != null){
 			String debugArgString = ((StandardVM)fVMInstance).getDebugArgs().replaceAll("\\Q" + StandardVM.VAR_PORT + "\\E", Integer.toString(port));  //$NON-NLS-1$ //$NON-NLS-2$
 			String[] debugArgs = DebugPlugin.parseArguments(debugArgString);
@@ -192,23 +192,23 @@
 				arguments.add("-Xdebug"); //$NON-NLS-1$
 				arguments.add("-Xnoagent"); //$NON-NLS-1$
 			}
-			
+
 			//check if java 1.4 or greater
 			if (version < 1.4) {
 				arguments.add("-Djava.compiler=NONE"); //$NON-NLS-1$
 			}
-			if (version < 1.5) { 
+			if (version < 1.5) {
 				arguments.add("-Xrunjdwp:transport=dt_socket,suspend=y,address=localhost:" + port); //$NON-NLS-1$
 			} else {
 				arguments.add("-agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:" + port); //$NON-NLS-1$
 			}
-		
+
 		}
-		
+
 		String[] allVMArgs = combineVmArgs(config, fVMInstance);
 		addArguments(ensureEncoding(launch, allVMArgs), arguments);
 		addBootClassPathArguments(arguments, config);
-		
+
 		String[] cp= config.getClassPath();
 		int cpidx = -1;
 		if (cp.length > 0) {
@@ -216,39 +216,39 @@
 			arguments.add("-classpath"); //$NON-NLS-1$
 			arguments.add(convertClassPath(cp));
 		}
-		
+
 		arguments.add(config.getClassToLaunch());
 		addArguments(config.getProgramArguments(), arguments);
-		
+
 		//With the newer VMs and no backwards compatibility we have to always prepend the current env path (only the runtime one)
-		//with a 'corrected' path that points to the location to load the debug dlls from, this location is of the standard JDK installation 
+		//with a 'corrected' path that points to the location to load the debug dlls from, this location is of the standard JDK installation
 		//format: <jdk path>/jre/bin
 		String[] envp = prependJREPath(config.getEnvironment(), new Path(program));
-		
+
 		String[] newenvp = checkClasspath(arguments, cp, envp);
 		if(newenvp != null) {
 			envp = newenvp;
 			arguments.remove(cpidx);
 			arguments.remove(cpidx);
 		}
-		
+
 		String[] cmdLine= new String[arguments.size()];
 		arguments.toArray(cmdLine);
-		
+
 		// check for cancellation
 		if (monitor.isCanceled()) {
 			return;
-		}		
-		
+		}
+
 		subMonitor.worked(1);
-		subMonitor.subTask(LaunchingMessages.StandardVMDebugger_Starting_virtual_machine____4); 
+		subMonitor.subTask(LaunchingMessages.StandardVMDebugger_Starting_virtual_machine____4);
 
 		ListeningConnector connector= getConnector();
 		if (connector == null) {
-			abort(LaunchingMessages.StandardVMDebugger_Couldn__t_find_an_appropriate_debug_connector_2, null, IJavaLaunchConfigurationConstants.ERR_CONNECTOR_NOT_AVAILABLE); 
+			abort(LaunchingMessages.StandardVMDebugger_Couldn__t_find_an_appropriate_debug_connector_2, null, IJavaLaunchConfigurationConstants.ERR_CONNECTOR_NOT_AVAILABLE);
 		}
 		Map<String, Connector.Argument> map= connector.defaultArguments();
-		
+
 		specifyArguments(map, port);
 		Process p= null;
 		try {
@@ -256,25 +256,25 @@
 				// check for cancellation
 				if (monitor.isCanceled()) {
 					return;
-				}				
-				
+				}
+
 				connector.startListening(map);
-				
+
 				File workingDir = getWorkingDir(config);
 				String[] newCmdLine = validateCommandLine(launch.getLaunchConfiguration(), cmdLine);
 				if(newCmdLine != null) {
 					cmdLine = newCmdLine;
 				}
-				p = exec(cmdLine, workingDir, envp);				
+				p = exec(cmdLine, workingDir, envp);
 				if (p == null) {
 					return;
 				}
-				
+
 				// check for cancellation
 				if (monitor.isCanceled()) {
 					p.destroy();
 					return;
-				}				
+				}
 				String timestamp = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM).format(new Date(System.currentTimeMillis()));
 				IProcess process= newProcess(launch, p, renderProcessLabel(cmdLine, timestamp), getDefaultProcessMap());
 				process.setAttribute(DebugPlugin.ATTR_PATH, cmdLine[0]);
@@ -296,12 +296,12 @@
 					process.setAttribute(DebugPlugin.ATTR_ENVIRONMENT, buff.toString());
 				}
 				subMonitor.worked(1);
-				subMonitor.subTask(LaunchingMessages.StandardVMDebugger_Establishing_debug_connection____5); 
+				subMonitor.subTask(LaunchingMessages.StandardVMDebugger_Establishing_debug_connection____5);
 				int retryCount = 0;
 				boolean retry= false;
 				do  {
 					try {
-						
+
 						ConnectRunnable runnable = new ConnectRunnable(connector, map);
 						Thread connectThread = new Thread(runnable, "Listening Connector"); //$NON-NLS-1$
                         connectThread.setDaemon(true);
@@ -320,7 +320,7 @@
 								p.exitValue();
 								// process has terminated - stop waiting for a connection
 								try {
-									connector.stopListening(map); 
+									connector.stopListening(map);
 								} catch (IOException e) {
 									// expected
 								}
@@ -344,7 +344,7 @@
 						if (ex instanceof IOException) {
 							throw (IOException)ex;
 						}
-						
+
 						VirtualMachine vm= runnable.getVirtualMachine();
 						if (vm != null) {
 							createDebugTarget(config, launch, port, process, vm);
@@ -354,16 +354,16 @@
 						return;
 					} catch (InterruptedIOException e) {
 						checkErrorMessage(process);
-						
+
 						// timeout, consult status handler if there is one
 						IStatus status = new Status(IStatus.ERROR, LaunchingPlugin.getUniqueIdentifier(), IJavaLaunchConfigurationConstants.ERR_VM_CONNECT_TIMEOUT, "", e); //$NON-NLS-1$
 						IStatusHandler handler = DebugPlugin.getDefault().getStatusHandler(status);
-						
+
 						retry= false;
 						if (handler == null) {
 							// if there is no handler, throw the exception
 							throw new CoreException(status);
-						} 
+						}
 						Object result = handler.handleStatus(status, this);
 						if (result instanceof Boolean) {
 							retry = ((Boolean)result).booleanValue();
@@ -380,9 +380,9 @@
 				connector.stopListening(map);
 			}
 		} catch (IOException e) {
-			abort(LaunchingMessages.StandardVMDebugger_Couldn__t_connect_to_VM_4, e, IJavaLaunchConfigurationConstants.ERR_CONNECTION_FAILED);  
+			abort(LaunchingMessages.StandardVMDebugger_Couldn__t_connect_to_VM_4, e, IJavaLaunchConfigurationConstants.ERR_CONNECTION_FAILED);
 		} catch (IllegalConnectorArgumentsException e) {
-			abort(LaunchingMessages.StandardVMDebugger_Couldn__t_connect_to_VM_5, e, IJavaLaunchConfigurationConstants.ERR_CONNECTION_FAILED);  
+			abort(LaunchingMessages.StandardVMDebugger_Couldn__t_connect_to_VM_5, e, IJavaLaunchConfigurationConstants.ERR_CONNECTION_FAILED);
 		}
 		if (p != null) {
 			p.destroy();
@@ -392,12 +392,12 @@
 	/**
 	 * This method performs platform specific operations to modify the runtime path for JREs prior to launching.
 	 * Nothing is written back to the original system path.
-	 * 
+	 *
 	 * <p>
 	 * For Windows:
 	 * Prepends the location of the JRE bin directory for the given JDK path to the PATH variable in Windows.
 	 * This method assumes that the JRE is located within the JDK install directory
-	 * in: <code><JDK install dir>/jre/bin/</code> where the JRE itself would be located 
+	 * in: <code><JDK install dir>/jre/bin/</code> where the JRE itself would be located
 	 * in: <code><JDK install dir>/bin/</code>  where the JDK itself is located
 	 * </p>
 	 * <p>
@@ -405,7 +405,7 @@
 	 * Searches for and sets the correct state of the JAVA_VM_VERSION environment variable to ensure it matches
 	 * the currently chosen VM of the launch config
 	 * </p>
-	 * 
+	 *
 	 * @param env the current array of environment variables to run with
 	 * @param jdkpath the path to the executable (javaw).
 	 * @return the altered JRE path
@@ -461,14 +461,14 @@
 					}
 				}
 			}
-		} 
+		}
 		return super.prependJREPath(env);
 	}
-	
+
 	/**
 	 * Creates a new debug target for the given virtual machine and system process
 	 * that is connected on the specified port for the given launch.
-	 * 
+	 *
 	 * @param config run configuration used to launch the VM
 	 * @param launch launch to add the target to
 	 * @param port port the VM is connected to
@@ -479,7 +479,7 @@
 	protected IDebugTarget createDebugTarget(VMRunnerConfiguration config, ILaunch launch, int port, IProcess process, VirtualMachine vm) {
 		return JDIDebugModel.newDebugTarget(launch, vm, renderDebugTarget(config.getClassToLaunch(), port), process, true, false, config.isResumeOnStartup());
 	}
-	
+
 	/**
 	 * Returns the version of the current VM in use
 	 * @return the VM version
@@ -504,7 +504,7 @@
 		try {
 			if (index > 0 && nextIndex>index) {
 				return Double.parseDouble(version.substring(0,nextIndex));
-			} 
+			}
 			return Double.parseDouble(version);
 		} catch (NumberFormatException e) {
 			return 0D;
@@ -527,9 +527,9 @@
 			if (errorMessage.length() != 0) {
 				abort(errorMessage, null, IJavaLaunchConfigurationConstants.ERR_VM_LAUNCH_ERROR);
 			}
-		}										
+		}
 	}
-		
+
 	/**
 	 * Allows arguments to be specified
 	 * @param map argument map
@@ -539,13 +539,13 @@
 		// XXX: Revisit - allows us to put a quote (") around the classpath
 		Connector.IntegerArgument port= (Connector.IntegerArgument) map.get("port"); //$NON-NLS-1$
 		port.setValue(portNumber);
-		
+
 		Connector.IntegerArgument timeoutArg= (Connector.IntegerArgument) map.get("timeout"); //$NON-NLS-1$
 		if (timeoutArg != null) {
 			int timeout = Platform.getPreferencesService().getInt(
-					LaunchingPlugin.ID_PLUGIN, 
-					JavaRuntime.PREF_CONNECT_TIMEOUT, 
-					JavaRuntime.DEF_CONNECT_TIMEOUT, 
+					LaunchingPlugin.ID_PLUGIN,
+					JavaRuntime.PREF_CONNECT_TIMEOUT,
+					JavaRuntime.DEF_CONNECT_TIMEOUT,
 					null);
 			timeoutArg.setValue(timeout);
 		}
@@ -566,5 +566,5 @@
 		}
 		return null;
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMRunner.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMRunner.java
index eaa1c40..b120007 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMRunner.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMRunner.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -44,14 +44,14 @@
  * A launcher for running Java main classes.
  */
 public class StandardVMRunner extends AbstractVMRunner {
-	
+
 	/**
 	 * Constant representing the <code>-XstartOnFirstThread</code> VM argument
-	 * 
+	 *
 	 * @since 3.2.200
 	 */
 	public static final String XSTART_ON_FIRST_THREAD = "-XstartOnFirstThread"; //$NON-NLS-1$
-	
+
 	/**
 	 * The VM install instance
 	 */
@@ -64,7 +64,7 @@
 	public StandardVMRunner(IVMInstall vmInstance) {
 		fVMInstance= vmInstance;
 	}
-	
+
 	/**
 	 * Returns the 'rendered' name for the current target
 	 * @param classToRun the class
@@ -72,7 +72,7 @@
 	 * @return the name for the current target
 	 */
 	protected String renderDebugTarget(String classToRun, int host) {
-		String format= LaunchingMessages.StandardVMRunner__0__at_localhost__1__1; 
+		String format= LaunchingMessages.StandardVMRunner__0__at_localhost__1__1;
 		return NLS.bind(format, new String[] { classToRun, String.valueOf(host) });
 	}
 
@@ -83,10 +83,10 @@
 	 * @return the name for the process
 	 */
 	public static String renderProcessLabel(String[] commandLine, String timestamp) {
-		String format= LaunchingMessages.StandardVMRunner__0____1___2; 
+		String format= LaunchingMessages.StandardVMRunner__0____1___2;
 		return NLS.bind(format, new String[] { commandLine[0], timestamp });
 	}
-	
+
 	/**
 	 * Prepares the command line from the specified array of strings
 	 * @param commandLine the command line
@@ -94,8 +94,8 @@
 	 */
 	protected String renderCommandLine(String[] commandLine) {
 		return DebugPlugin.renderArguments(commandLine, null);
-	}	
-	
+	}
+
 	/**
 	 * Adds the array of {@link String}s to the given {@link List}
 	 * @param args the strings
@@ -109,14 +109,14 @@
 			v.add(args[i]);
 		}
 	}
-	
+
 	/**
-	 * This method allows consumers to have a last look at the command line that will be used 
+	 * This method allows consumers to have a last look at the command line that will be used
 	 * to start the runner just prior to launching. This method returns the new array of commands
 	 * to use to start the runner with or <code>null</code> if the existing command line should be used.
 	 * <br><br>
 	 * By default this method returns <code>null</code> indicating that the existing command line should be used to launch
-	 * 
+	 *
 	 * @param configuration the backing {@link ILaunchConfiguration}
 	 * @param cmdLine the existing command line
 	 * @return the new command line to launch with or <code>null</code> if the existing one should be used
@@ -131,29 +131,29 @@
 		}
 		return cmdLine;
 	}
-	
+
 	/**
-	 * Adds in special command line arguments if SWT or the <code>-ws</code> directive 
+	 * Adds in special command line arguments if SWT or the <code>-ws</code> directive
 	 * are used
-	 * 
+	 *
 	 * @param config the backing {@link ILaunchConfiguration}
 	 * @param cmdLine the original VM arguments
 	 * @return the (possibly) modified command line to launch with
-	 * @throws CoreException 
+	 * @throws CoreException
 	 */
 	private String[] wrap(ILaunchConfiguration config, String[] cmdLine) throws CoreException {
 		if(config != null && Platform.OS_MACOSX.equals(Platform.getOS())) {
 			for (int i= 0; i < cmdLine.length; i++) {
 				if ("-ws".equals(cmdLine[i]) || cmdLine[i].indexOf("swt.jar") > -1 || cmdLine[i].indexOf("org.eclipse.swt") > -1) {   //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
-					return createSWTlauncher(cmdLine, 
-							cmdLine[0], 
+					return createSWTlauncher(cmdLine,
+							cmdLine[0],
 							config.getAttribute(IJavaLaunchConfigurationConstants.ATTR_USE_START_ON_FIRST_THREAD, true));
 				}
 			}
 		}
 		return cmdLine;
 	}
-	
+
 	/**
 	 * Returns path to executable.
 	 * @param cmdLine the old command line
@@ -164,10 +164,10 @@
 	private String[] createSWTlauncher(String[] cmdLine, String vmVersion, boolean startonfirstthread) {
 		// the following property is defined if Eclipse is started via java_swt
 		String java_swt= System.getProperty("org.eclipse.swtlauncher");	//$NON-NLS-1$
-		if (java_swt == null) {	
+		if (java_swt == null) {
 			// not started via java_swt -> now we require that the VM supports the "-XstartOnFirstThread" option
 			boolean found = false;
-			ArrayList<String> args = new ArrayList<String>();
+			ArrayList<String> args = new ArrayList<>();
 			for (int i = 0; i < cmdLine.length; i++) {
 				if(XSTART_ON_FIRST_THREAD.equals(cmdLine[i])) {
 					found = true;
@@ -201,17 +201,17 @@
 		}
 		return newCmdLine;
 	}
-	
+
 	/**
 	 * Returns the working directory to use for the launched VM,
 	 * or <code>null</code> if the working directory is to be inherited
 	 * from the current process.
-	 * 
+	 *
 	 * @param config the VM configuration
 	 * @return the working directory to use
 	 * @exception CoreException if the working directory specified by
 	 *  the configuration does not exist or is not a directory
-	 */	
+	 */
 	protected File getWorkingDir(VMRunnerConfiguration config) throws CoreException {
 		String path = config.getWorkingDirectory();
 		if (path == null) {
@@ -219,11 +219,11 @@
 		}
 		File dir = new File(path);
 		if (!dir.isDirectory()) {
-			abort(NLS.bind(LaunchingMessages.StandardVMRunner_Specified_working_directory_does_not_exist_or_is_not_a_directory___0__3, new String[] {path}), null, IJavaLaunchConfigurationConstants.ERR_WORKING_DIRECTORY_DOES_NOT_EXIST); 
+			abort(NLS.bind(LaunchingMessages.StandardVMRunner_Specified_working_directory_does_not_exist_or_is_not_a_directory___0__3, new String[] {path}), null, IJavaLaunchConfigurationConstants.ERR_WORKING_DIRECTORY_DOES_NOT_EXIST);
 		}
 		return dir;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.AbstractVMRunner#getPluginIdentifier()
 	 */
@@ -231,12 +231,12 @@
 	protected String getPluginIdentifier() {
 		return LaunchingPlugin.getUniqueIdentifier();
 	}
-	
+
 	/**
 	 * Construct and return a String containing the full path of a java executable
 	 * command such as 'java' or 'javaw.exe'.  If the configuration specifies an
 	 * explicit executable, that is used.
-	 * 
+	 *
 	 * @param config the runner configuration
 	 * @return full path to java executable
 	 * @exception CoreException if unable to locate an executable
@@ -249,7 +249,7 @@
 		if (map != null) {
 			command = (String) map.get(IJavaLaunchConfigurationConstants.ATTR_JAVA_COMMAND);
 		}
-		
+
 		// If no java command was specified, use default executable
 		if (command == null) {
 			File exe = null;
@@ -259,16 +259,16 @@
 				exe = StandardVMType.findJavaExecutable(fVMInstance.getInstallLocation());
 			}
 			if (exe == null) {
-				abort(NLS.bind(LaunchingMessages.StandardVMRunner_Unable_to_locate_executable_for__0__1, new String[]{fVMInstance.getName()}), null, IJavaLaunchConfigurationConstants.ERR_INTERNAL_ERROR); 
+				abort(NLS.bind(LaunchingMessages.StandardVMRunner_Unable_to_locate_executable_for__0__1, new String[]{fVMInstance.getName()}), null, IJavaLaunchConfigurationConstants.ERR_INTERNAL_ERROR);
 			} else {
 				return exe.getAbsolutePath();
 			}
 		}
-				
+
 		// Build the path to the java executable.  First try 'bin', and if that
 		// doesn't exist, try 'jre/bin'
 		String installLocation = fVMInstance.getInstallLocation().getAbsolutePath() + File.separatorChar;
-		File exe = new File(installLocation + "bin" + File.separatorChar + command); //$NON-NLS-1$ 		
+		File exe = new File(installLocation + "bin" + File.separatorChar + command); //$NON-NLS-1$
 		if (fileExists(exe)){
 			return exe.getAbsolutePath();
 		}
@@ -278,19 +278,19 @@
 		}
 		exe = new File(installLocation + "jre" + File.separatorChar + "bin" + File.separatorChar + command); //$NON-NLS-1$ //$NON-NLS-2$
 		if (fileExists(exe)) {
-			return exe.getAbsolutePath(); 
+			return exe.getAbsolutePath();
 		}
 		exe = new File(exe.getAbsolutePath() + ".exe"); //$NON-NLS-1$
 		if (fileExists(exe)) {
-			return exe.getAbsolutePath(); 
-		}		
-		
+			return exe.getAbsolutePath();
+		}
+
 		// not found
-		abort(NLS.bind(LaunchingMessages.StandardVMRunner_Specified_executable__0__does_not_exist_for__1__4, new String[]{command, fVMInstance.getName()}), null, IJavaLaunchConfigurationConstants.ERR_INTERNAL_ERROR); 
+		abort(NLS.bind(LaunchingMessages.StandardVMRunner_Specified_executable__0__does_not_exist_for__1__4, new String[]{command, fVMInstance.getName()}), null, IJavaLaunchConfigurationConstants.ERR_INTERNAL_ERROR);
 		// NOTE: an exception will be thrown - null cannot be returned
-		return null;		
-	}	
-	
+		return null;
+	}
+
 	/**
 	 * Convenience method to determine if the specified file exists or not
 	 * @param file the file to check
@@ -319,18 +319,18 @@
 	/**
 	 * This method is used to ensure that the JVM file encoding matches that of the console preference for file encoding.
 	 * If the user explicitly declares a file encoding in the launch configuration, then that file encoding is used.
-	 * 
+	 *
 	 * @param launch the {@link Launch}
 	 * @param vmargs the original listing of JVM arguments
 	 * @return the listing of JVM arguments including file encoding if one was not specified
-	 * 
+	 *
 	 * @since 3.4
 	 */
 	protected String[] ensureEncoding(ILaunch launch, String[] vmargs) {
 		boolean foundencoding = false;
 		for(int i = 0; i < vmargs.length; i++) {
 			if(vmargs[i].startsWith("-Dfile.encoding=")) { //$NON-NLS-1$
-				foundencoding = true; 
+				foundencoding = true;
 			}
 		}
 		if(!foundencoding) {
@@ -345,7 +345,7 @@
 		}
 		return vmargs;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.IVMRunner#run(org.eclipse.jdt.launching.VMRunnerConfiguration, org.eclipse.debug.core.ILaunch, org.eclipse.core.runtime.IProgressMonitor)
 	 */
@@ -355,23 +355,23 @@
 		if (monitor == null) {
 			monitor = new NullProgressMonitor();
 		}
-		
+
 		IProgressMonitor subMonitor = new SubProgressMonitor(monitor, 1);
-		subMonitor.beginTask(LaunchingMessages.StandardVMRunner_Launching_VM____1, 2); 
+		subMonitor.beginTask(LaunchingMessages.StandardVMRunner_Launching_VM____1, 2);
 		subMonitor.subTask(LaunchingMessages.StandardVMRunner_Constructing_command_line____2);
-		
+
 		String program= constructProgramString(config);
-		
-		List<String> arguments= new ArrayList<String>();
+
+		List<String> arguments= new ArrayList<>();
 		arguments.add(program);
-				
+
 		// VM args are the first thing after the java program so that users can specify
 		// options like '-client' & '-server' which are required to be the first option
 		String[] allVMArgs = combineVmArgs(config, fVMInstance);
 		addArguments(ensureEncoding(launch, allVMArgs), arguments);
-		
+
 		addBootClassPathArguments(arguments, config);
-		
+
 		String[] cp= config.getClassPath();
 		int cpidx = -1;
 		if (cp.length > 0) {
@@ -380,30 +380,30 @@
 			arguments.add(convertClassPath(cp));
 		}
 		arguments.add(config.getClassToLaunch());
-		
+
 		String[] programArgs= config.getProgramArguments();
 		addArguments(programArgs, arguments);
-				
+
 		String[] envp = prependJREPath(config.getEnvironment());
-		
+
 		String[] newenvp = checkClasspath(arguments, cp, envp);
 		if(newenvp != null) {
 			envp = newenvp;
 			arguments.remove(cpidx);
 			arguments.remove(cpidx);
 		}
-		
+
 		String[] cmdLine= new String[arguments.size()];
 		arguments.toArray(cmdLine);
-		
+
 		subMonitor.worked(1);
 
 		// check for cancellation
 		if (monitor.isCanceled()) {
 			return;
 		}
-		
-		subMonitor.subTask(LaunchingMessages.StandardVMRunner_Starting_virtual_machine____3); 
+
+		subMonitor.subTask(LaunchingMessages.StandardVMRunner_Starting_virtual_machine____3);
 		Process p= null;
 		File workingDir = getWorkingDir(config);
 		String[] newCmdLine = validateCommandLine(launch.getLaunchConfiguration(), cmdLine);
@@ -414,12 +414,12 @@
 		if (p == null) {
 			return;
 		}
-		
+
 		// check for cancellation
 		if (monitor.isCanceled()) {
 			p.destroy();
 			return;
-		}		
+		}
 		String timestamp = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM).format(new Date(System.currentTimeMillis()));
 		IProcess process= newProcess(launch, p, renderProcessLabel(cmdLine, timestamp), getDefaultProcessMap());
 		process.setAttribute(DebugPlugin.ATTR_PATH, cmdLine[0]);
@@ -443,7 +443,7 @@
 		subMonitor.worked(1);
 		subMonitor.done();
 	}
-	
+
 	/**
 	 * Returns the index in the given array for the CLASSPATH variable
 	 * @param env the environment array or <code>null</code>
@@ -460,18 +460,18 @@
 		}
 		return -1;
 	}
-	
+
 	/**
 	 * Checks to see if the command / classpath needs to be shortened for Windows. Returns the modified
 	 * environment or <code>null</code> if no changes are needed.
-	 * 
+	 *
 	 * @param args the raw arguments from the runner
 	 * @param cp the raw classpath from the runner configuration
 	 * @param env the current environment
 	 * @return the modified environment or <code>null</code> if no changes were made
 	 * @sine 3.6.200
 	 */
-	String[] checkClasspath(List<String> args, String[] cp, String[] env) { 
+	String[] checkClasspath(List<String> args, String[] cp, String[] env) {
 		if(Platform.getOS().equals(Platform.OS_WIN32)) {
 			//count the complete command length
 			int size = 0;
@@ -525,10 +525,10 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Prepends the correct java version variable state to the environment path for Mac VMs
-	 * 
+	 *
 	 * @param env the current array of environment variables to run with
 	 * @return the new path segments
 	 * @since 3.3
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMType.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMType.java
index e2cd93b..ff2eec0 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMType.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMType.java
@@ -8,7 +8,7 @@
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Michael Allman - Bug 211648, Bug 156343 - Standard VM not supported on MacOS
- *     Thomas Schindl - Bug 399798, StandardVMType should allow to contribute default source and Javadoc locations for ext libraries 
+ *     Thomas Schindl - Bug 399798, StandardVMType should allow to contribute default source and Javadoc locations for ext libraries
  *     Mikhail Kalkov - Bug 414285, On systems with large RAM, evaluateSystemProperties and generateLibraryInfo fail for 64-bit JREs
  *******************************************************************************/
 package org.eclipse.jdt.internal.launching;
@@ -60,10 +60,10 @@
  * JDK installation layout.
  */
 public class StandardVMType extends AbstractVMInstallType {
-	
+
 	/**
 	 * Constants for common {@link String}s
-	 * @since 3.7 
+	 * @since 3.7
 	 */
 	private static final String RT_JAR = "rt.jar"; //$NON-NLS-1$
 	private static final String SRC = "src"; //$NON-NLS-1$
@@ -76,19 +76,19 @@
 	private static final String JAVA_VERSION = "JAVA_VERSION"; //$NON-NLS-1$
 
 	public static final String ID_STANDARD_VM_TYPE = "org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType"; //$NON-NLS-1$
-	
+
 	/**
 	 * The minimal -Xmx size for launching a JVM. <br>
 	 * <b>Note:</b> Must be omitted for Standard11xVM! <br>
 	 * <b>Note:</b> Must be at least -Xmx16m for JRockit, see <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=433455">bug 433455</a>.
-	 * 
+	 *
 	 * @since 3.7.100
 	 */
 	public static final String MIN_VM_SIZE = "-Xmx16m"; //$NON-NLS-1$
 
 	/**
 	 * Name filter for files ending in .jar or .zip
-	 * 
+	 *
 	 * @since 3.7.0
 	 */
 	private static FilenameFilter fgArchiveFilter = new FilenameFilter() {
@@ -97,36 +97,36 @@
 			return arg1.endsWith(".zip") || arg1.endsWith(".jar");  //$NON-NLS-1$//$NON-NLS-2$
 		}
 	};
-	
+
 	/**
 	 * The root path for the attached source
 	 */
 	private String fDefaultRootPath = ""; //$NON-NLS-1$
-	
+
 	/**
 	 * Map of the install path for which we were unable to generate
 	 * the library info during this session.
 	 */
-	private static Map<String, LibraryInfo> fgFailedInstallPath = new HashMap<String, LibraryInfo>();
+	private static Map<String, LibraryInfo> fgFailedInstallPath = new HashMap<>();
 
 	/**
 	 * Cache for default library locations. See {@link #getDefaultLibraryLocations(File)}
 	 * <br><br>
 	 * Map&lt;{@link String}, {@link LibraryLocation}&gt;
-	 * 
+	 *
 	 * @since 3.7
 	 */
-	private static Map<String, List<LibraryLocation>> fgDefaultLibLocs = new HashMap<String, List<LibraryLocation>>();
-	
+	private static Map<String, List<LibraryLocation>> fgDefaultLibLocs = new HashMap<>();
+
 	/**
 	 * The list of locations in which to look for the java executable in candidate
 	 * VM install locations, relative to the VM install location.
 	 */
 	private static final String[] fgCandidateJavaFiles = {"javaw", "javaw.exe", "java", "java.exe", "j9w", "j9w.exe", "j9", "j9.exe"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
-	private static final String[] fgCandidateJavaLocations = {"bin" + File.separatorChar, JRE + File.separatorChar + "bin" + File.separatorChar}; //$NON-NLS-1$ //$NON-NLS-2$ 
-	
+	private static final String[] fgCandidateJavaLocations = {"bin" + File.separatorChar, JRE + File.separatorChar + "bin" + File.separatorChar}; //$NON-NLS-1$ //$NON-NLS-2$
+
 	private static ILibraryLocationResolver[] fgLibraryLocationResolvers = null;
-	
+
 	/**
 	 * Starting in the specified VM install location, attempt to find the 'java' executable
 	 * file.  If found, return the corresponding <code>File</code> object, otherwise return
@@ -142,15 +142,15 @@
 				File javaFile = new File(vmInstallLocation, fgCandidateJavaLocations[j] + fgCandidateJavaFiles[i]);
 				if (javaFile.isFile()) {
 					return javaFile;
-				}				
+				}
 			}
-		}		
-		return null;							
+		}
+		return null;
 	}
-	
+
 	/**
 	 * Returns the listing of {@link ILibraryLocationResolver}s
-	 * 
+	 *
 	 * @return the known list of {@link ILibraryLocationResolver}s
 	 * @since 3.7.0
 	 */
@@ -166,7 +166,7 @@
 					return e1.getNamespaceIdentifier().compareTo(e2.getNamespaceIdentifier());
 				}
 			});
-			List<ILibraryLocationResolver> resolvers = new ArrayList<ILibraryLocationResolver>(configs.length);
+			List<ILibraryLocationResolver> resolvers = new ArrayList<>(configs.length);
 			for( int i = 0; i < configs.length; i++ ) {
 				IConfigurationElement e = configs[i];
 				try {
@@ -180,13 +180,13 @@
 		}
 		return fgLibraryLocationResolvers;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.IVMInstallType#getName()
 	 */
 	@Override
 	public String getName() {
-		return LaunchingMessages.StandardVMType_Standard_VM_3; 
+		return LaunchingMessages.StandardVMType_Standard_VM_3;
 	}
 
 	/* (non-Javadoc)
@@ -196,7 +196,7 @@
 	protected IVMInstall doCreateVMInstall(String id) {
 		return new StandardVM(this, id);
 	}
-	
+
 	/**
 	 * Return library information corresponding to the specified install
 	 * location. If the information does not exist, create it using the given Java
@@ -226,10 +226,10 @@
 					}
 				}
 			}
-		} 
+		}
 		return info;
-	}	
-	
+	}
+
 	/**
 	 * Return <code>true</code> if the appropriate system libraries can be found for the
 	 * specified java executable, <code>false</code> otherwise.
@@ -243,11 +243,11 @@
 		String version = getVMVersion(javaHome, javaExecutable);
 		return locations.length > 0 && !version.startsWith("1.1"); //$NON-NLS-1$
 	}
-	
+
 	/**
 	 * Returns the version of the VM at the given location, with the given
 	 * executable.
-	 * 
+	 *
 	 * @param javaHome the Java home folder
 	 * @param javaExecutable the Java executable file
 	 * @return String
@@ -256,7 +256,7 @@
 		LibraryInfo info = getLibraryInfo(javaHome, javaExecutable);
 		return info.getVersion();
 	}
-		
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.IVMInstallType#detectInstallLocation()
 	 */
@@ -272,16 +272,16 @@
 	/**
 	 * Returns the VM install location using the <code>java.home</code> system
 	 * property or <code>null</code>.
-	 * 
+	 *
 	 * @return the install location of this type of VM based off of the
 	 *  <code>java.home</code> system property, or <code>null</code> if not found
-	 * 
+	 *
 	 * @since 3.7
 	 */
 	protected File getJavaHomeLocation() {
-		// Retrieve the 'java.home' system property.  If that directory doesn't exist, 
+		// Retrieve the 'java.home' system property.  If that directory doesn't exist,
 		// return null.
-		File javaHome; 
+		File javaHome;
 		try {
 			javaHome= new File (System.getProperty("java.home")).getCanonicalFile(); //$NON-NLS-1$
 		} catch (IOException e) {
@@ -298,47 +298,47 @@
 		if (javaExecutable == null) {
 			return null;
 		}
-		
-		// If the reported java home directory terminates with 'jre', first see if 
+
+		// If the reported java home directory terminates with 'jre', first see if
 		// the parent directory contains the required libraries
 		boolean foundLibraries = false;
-		if (javaHome.getName().equalsIgnoreCase(JRE)) { 
-			File parent= new File(javaHome.getParent());			
+		if (javaHome.getName().equalsIgnoreCase(JRE)) {
+			File parent= new File(javaHome.getParent());
 			if (canDetectDefaultSystemLibraries(parent, javaExecutable)) {
 				javaHome = parent;
 				foundLibraries = true;
 			}
-		}	
-		
+		}
+
 		// If we haven't already found the libraries, look in the reported java home dir
 		if (!foundLibraries) {
 			if (!canDetectDefaultSystemLibraries(javaHome, javaExecutable)) {
 				return null;
-			}			
+			}
 		}
-		
+
 		return javaHome;
 	}
-	
+
 	/**
 	 * Return an <code>IPath</code> corresponding to the single library file containing the
 	 * standard Java classes for most VMs version 1.2 and above.
-	 * 
+	 *
 	 * @param javaHome the Java home folder
 	 * @return the {@link IPath} to the <code>rt.jar</code> file
 	 */
 	protected IPath getDefaultSystemLibrary(File javaHome) {
-		IPath jreLibPath= new Path(javaHome.getPath()).append(LIB).append(RT_JAR); 
+		IPath jreLibPath= new Path(javaHome.getPath()).append(LIB).append(RT_JAR);
 		if (jreLibPath.toFile().isFile()) {
 			return jreLibPath;
 		}
-		return new Path(javaHome.getPath()).append(JRE).append(LIB).append(RT_JAR); 
+		return new Path(javaHome.getPath()).append(JRE).append(LIB).append(RT_JAR);
 	}
-	
+
 	/**
 	 * Returns a path to the source attachment for the given library, or
 	 * an empty path if none.
-	 * 
+	 *
 	 * @param libLocation the {@link File} location of the library to find the source for
 	 * @return a path to the source attachment for the given library, or
 	 *  an empty path if none
@@ -380,7 +380,7 @@
 			}
 		}
 		setDefaultRootPath(""); //$NON-NLS-1$
-		return Path.EMPTY; 
+		return Path.EMPTY;
 	}
 
 	// J9 has a known/fixed structure for its libraries and source locations.  Here just
@@ -405,7 +405,7 @@
 
 	/**
 	 * Returns the package root path
-	 * 
+	 *
 	 * @return the package root path
 	 */
 	protected IPath getDefaultPackageRootPath() {
@@ -420,7 +420,7 @@
 		//NOTE: We do not add libraries from the "endorsed" directory explicitly, as
 		//the bootpath contains these entries already (if they exist).
 		// Determine the java executable that corresponds to the specified install location
-		// and use this to generate library information.  If no java executable was found, 
+		// and use this to generate library information.  If no java executable was found,
 		// the 'standard' libraries will be returned.
 		List<LibraryLocation> allLibs = fgDefaultLibLocs.get(installLocation.getAbsolutePath());
 		if(allLibs == null) {
@@ -431,9 +431,9 @@
 			} else {
 				libInfo = getLibraryInfo(installLocation, javaExecutable);
 			}
-			
+
 			// Add all endorsed libraries - they are first, as they replace
-			allLibs = new ArrayList<LibraryLocation>(gatherAllLibraries(libInfo.getEndorsedDirs()));
+			allLibs = new ArrayList<>(gatherAllLibraries(libInfo.getEndorsedDirs()));
 			URL url = getDefaultJavadocLocation(installLocation);
 			if (libInfo.getBootpath().length == 0) {
 				// TODO: Bug 489207: Temporary workaround for Jigsaw-previews that don't declare a bootpath.
@@ -458,20 +458,20 @@
 				if (!jrtfsJar.exists()) {
 					pathName = new Path(installLocation.getAbsolutePath()).append("jrt-fs.jar"); //$NON-NLS-1$
 				}
-				 
+
 				LibraryLocation libraryLocation = new LibraryLocation(pathName,
 						sourceRootPath, getDefaultPackageRootPath(),
 						getDefaultJavadocLocation(installLocation));
 				allLibs.add(libraryLocation);
 			}
-			
+
 			// next is the boot path libraries
 			String[] bootpath = libInfo.getBootpath();
-			List<LibraryLocation> boot = new ArrayList<LibraryLocation>(bootpath.length);
+			List<LibraryLocation> boot = new ArrayList<>(bootpath.length);
 
 			for (int i = 0; i < bootpath.length; i++) {
 				IPath path = new Path(bootpath[i]);
-				File lib = path.toFile(); 
+				File lib = path.toFile();
 				if (lib.exists() && lib.isFile()) {
 					LibraryLocation libraryLocation = new LibraryLocation(path,
 									getDefaultSystemLibrarySource(lib),
@@ -481,12 +481,12 @@
 				}
 			}
 			allLibs.addAll(boot);
-					
+
 			// Add all extension libraries
 			allLibs.addAll(gatherAllLibraries(libInfo.getExtensionDirs()));
-			
+
 			//remove duplicates
-			HashSet<String> set = new HashSet<String>();
+			HashSet<String> set = new HashSet<>();
 			LibraryLocation lib = null;
 			for(ListIterator<LibraryLocation> liter = allLibs.listIterator(); liter.hasNext();) {
 				lib = liter.next();
@@ -505,10 +505,10 @@
 		}
 		return allLibs.toArray(new LibraryLocation[allLibs.size()]);
 	}
-	
+
 	/**
 	 * Returns default library information for the given install location.
-	 * 
+	 *
 	 * @param installLocation the VM install location
 	 * @return LibraryInfo
 	 */
@@ -524,21 +524,21 @@
 		}
 		String[] endDirs = null;
 		if (endDir == null) {
-			endDirs = new String[0]; 
+			endDirs = new String[0];
 		} else {
 			endDirs = new String[] {endDir.getAbsolutePath()};
 		}
 		return new LibraryInfo("???", new String[] {rtjar.toOSString()}, dirs, endDirs);		 //$NON-NLS-1$
 	}
-	
+
 	/**
 	 * Returns a list of all zip's and jars contained in the given directories.
-	 * 
+	 *
 	 * @param dirPaths a list of absolute paths of directories to search
 	 * @return List of all zip's and jars
 	 */
 	public static List<LibraryLocation> gatherAllLibraries(String[] dirPaths) {
-		List<LibraryLocation> libraries = new ArrayList<LibraryLocation>();
+		List<LibraryLocation> libraries = new ArrayList<>();
 		for (int i = 0; i < dirPaths.length; i++) {
 			File extDir = new File(dirPaths[i]);
 			if (extDir.isDirectory()) {
@@ -574,27 +574,27 @@
 						}
 					}
 				}
-			}			
+			}
 		}
 		return libraries;
 	}
-		
+
 	/**
 	 * Returns the default location of the extension directory, based on the given
 	 * install location. The resulting file may not exist, or be <code>null</code>
 	 * if an extension directory is not supported.
-	 * 
+	 *
 	 * @param installLocation the VM install location
 	 * @return default extension directory or <code>null</code>
 	 */
 	protected File getDefaultExtensionDirectory(File installLocation) {
 		File jre = null;
-		if (installLocation.getName().equalsIgnoreCase(JRE)) { 
+		if (installLocation.getName().equalsIgnoreCase(JRE)) {
 			jre = installLocation;
 		} else {
-			jre = new File(installLocation, JRE); 
+			jre = new File(installLocation, JRE);
 		}
-		File lib = new File(jre, LIB); 
+		File lib = new File(jre, LIB);
 		File ext = new File(lib, "ext"); //$NON-NLS-1$
 		return ext;
 	}
@@ -603,12 +603,12 @@
 	 * Returns the default location of the endorsed directory, based on the
 	 * given install location. The resulting file may not exist, or be
 	 * <code>null</code> if an endorsed directory is not supported.
-	 * 
+	 *
 	 * @param installLocation the VM install location
 	 * @return default endorsed directory or <code>null</code>
 	 */
 	protected File getDefaultEndorsedDirectory(File installLocation) {
-		File lib = new File(installLocation, LIB); 
+		File lib = new File(installLocation, LIB);
 		File ext = new File(lib, "endorsed"); //$NON-NLS-1$
 		return ext;
 	}
@@ -620,7 +620,7 @@
 	protected void setDefaultRootPath(String defaultRootPath) {
 		fDefaultRootPath = defaultRootPath;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.IVMInstallType#validateInstallLocation(java.io.File)
 	 */
@@ -629,15 +629,15 @@
 		IStatus status = null;
 		File javaExecutable = findJavaExecutable(javaHome);
 		if (javaExecutable == null) {
-			status = new Status(IStatus.ERROR, LaunchingPlugin.getUniqueIdentifier(), 0, LaunchingMessages.StandardVMType_Not_a_JDK_Root__Java_executable_was_not_found_1, null); //			
+			status = new Status(IStatus.ERROR, LaunchingPlugin.getUniqueIdentifier(), 0, LaunchingMessages.StandardVMType_Not_a_JDK_Root__Java_executable_was_not_found_1, null); //
 		} else {
 			if (canDetectDefaultSystemLibraries(javaHome, javaExecutable)) {
-				status = new Status(IStatus.OK, LaunchingPlugin.getUniqueIdentifier(), 0, LaunchingMessages.StandardVMType_ok_2, null); 
+				status = new Status(IStatus.OK, LaunchingPlugin.getUniqueIdentifier(), 0, LaunchingMessages.StandardVMType_ok_2, null);
 			} else {
-				status = new Status(IStatus.ERROR, LaunchingPlugin.getUniqueIdentifier(), 0, LaunchingMessages.StandardVMType_Not_a_JDK_root__System_library_was_not_found__1, null); 
+				status = new Status(IStatus.ERROR, LaunchingPlugin.getUniqueIdentifier(), 0, LaunchingMessages.StandardVMType_Not_a_JDK_root__System_library_was_not_found__1, null);
 			}
 		}
-		return status;		
+		return status;
 	}
 
 	/**
@@ -646,17 +646,17 @@
 	 * LibraryDetector</code>), that dumps the system properties for bootpath
 	 * and extension directories. This output is then parsed and cached for
 	 * future reference.
-	 * 
+	 *
 	 * @param javaHome the Java home folder
 	 * @param javaExecutable the Java executable file
-	 * 
+	 *
 	 * @return library info or <code>null</code> if none
-	 */	
+	 */
 	protected LibraryInfo generateLibraryInfo(File javaHome, File javaExecutable) {
 		LibraryInfo info = null;
-		
-		// if this is 1.1.X, the properties will not exist		
-		IPath classesZip = new Path(javaHome.getAbsolutePath()).append(LIB).append("classes.zip"); //$NON-NLS-1$ 
+
+		// if this is 1.1.X, the properties will not exist
+		IPath classesZip = new Path(javaHome.getAbsolutePath()).append(LIB).append("classes.zip"); //$NON-NLS-1$
 		if (classesZip.toFile().exists()) {
 			return new LibraryInfo("1.1.x", new String[] {classesZip.toOSString()}, new String[0], new String[0]); //$NON-NLS-1$
 		}
@@ -665,7 +665,7 @@
 		if (file != null && file.exists()) {
 			String javaExecutablePath = javaExecutable.getAbsolutePath();
 			String[] cmdLine = new String[] { javaExecutablePath, MIN_VM_SIZE,
-					"-classpath", file.getAbsolutePath(), "org.eclipse.jdt.internal.launching.support.LibraryDetector" }; //$NON-NLS-1$ //$NON-NLS-2$ 
+					"-classpath", file.getAbsolutePath(), "org.eclipse.jdt.internal.launching.support.LibraryDetector" }; //$NON-NLS-1$ //$NON-NLS-2$
 			Process p = null;
 			try {
 				String envp[] = null;
@@ -709,10 +709,10 @@
 		}
 		return info;
 	}
-	
+
 	/**
 	 * Parses the output from 'LibraryDetector'.
-	 * 
+	 *
 	 * @param process the backing {@link IProcess} that was run
 	 * @return the new {@link LibraryInfo} object or <code>null</code>
 	 */
@@ -723,39 +723,39 @@
 			text = streamsProxy.getOutputStreamMonitor().getContents();
 		}
 		if (text != null && text.length() > 0) {
-			int index = text.indexOf(BAR); 
-			if (index > 0) { 
+			int index = text.indexOf(BAR);
+			if (index > 0) {
 				String version = text.substring(0, index);
 				text = text.substring(index + 1);
-				index = text.indexOf(BAR); 
+				index = text.indexOf(BAR);
 				if (index > 0) {
 					String bootPaths = text.substring(0, index);
 					String[] bootPath = parsePaths(bootPaths);
-					 
+
 					text = text.substring(index + 1);
-					index = text.indexOf(BAR); 
-					
+					index = text.indexOf(BAR);
+
 					if (index > 0) {
 						String extDirPaths = text.substring(0, index);
 						String endorsedDirsPath = text.substring(index + 1);
 						String[] extDirs = parsePaths(extDirPaths);
 						String[] endDirs = parsePaths(endorsedDirsPath);
 						return new LibraryInfo(version, bootPath, extDirs, endDirs);
-					} 
+					}
 				}
 			}
-		} 
+		}
 		return null;
 	}
-	
+
 	protected String[] parsePaths(String paths) {
-		List<String> list = new ArrayList<String>();
+		List<String> list = new ArrayList<>();
 		int pos = 0;
 		int index = paths.indexOf(File.pathSeparatorChar, pos);
 		while (index > 0) {
 			String path = paths.substring(pos, index);
 			list.add(path);
-			pos = index + 1;	
+			pos = index + 1;
 			index = paths.indexOf(File.pathSeparatorChar, pos);
 		}
 		String path = paths.substring(pos);
@@ -764,7 +764,7 @@
 		}
 		return list.toArray(new String[list.size()]);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.IVMInstallType#disposeVMInstall(java.lang.String)
 	 */
@@ -776,7 +776,7 @@
             LaunchingPlugin.setLibraryInfo(path, null);
             fgFailedInstallPath.remove(path);
             fgDefaultLibLocs.remove(path);
-		}		
+		}
 		super.disposeVMInstall(id);
 	}
 
@@ -798,7 +798,7 @@
 
 	/**
 	 * Returns a default Javadoc location for a language version, or <code>null</code>.
-	 * 
+	 *
 	 * @param version language version such as "1.4"
 	 * @return URL to default Javadoc location, or <code>null</code>
 	 */
@@ -838,8 +838,8 @@
 		}
 		catch (IOException e) {
 			e.printStackTrace();
-		} 
-		
+		}
+
 		return version;
 
 	}
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/VMDefinitionsContainer.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/VMDefinitionsContainer.java
index baaef1b..8f48cf3 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/VMDefinitionsContainer.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/VMDefinitionsContainer.java
@@ -7,7 +7,7 @@
  *
  * Contributors:
  *     IBM Corporation - initial API and implementation
- *     Frits Jalvingh - Contribution for Bug 459831 - [launching] Support attaching 
+ *     Frits Jalvingh - Contribution for Bug 459831 - [launching] Support attaching
  *     	external annotations to a JRE container
  *******************************************************************************/
 package org.eclipse.jdt.internal.launching;
@@ -56,7 +56,7 @@
 
 /**
  * This is a container for VM definitions such as the VM definitions that are
- * stored in the workbench preferences.  
+ * stored in the workbench preferences.
  * <p>
  * An instance of this class may be obtained from an XML document by calling
  * <code>parseXMLIntoContainer</code>.
@@ -68,51 +68,51 @@
  * <p>
  * Clients may instantiate this class; it is not intended to be subclassed.
  * </p>
- * 
+ *
  * @since 2.1
  */
 public class VMDefinitionsContainer {
-		
+
 	/**
 	 * Map of VMInstallTypes to Lists of corresponding VMInstalls.
 	 */
 	private Map<IVMInstallType, List<IVMInstall>> fVMTypeToVMMap;
-	
+
 	/**
 	 * Cached list of VMs in this container
 	 */
 	private List<IVMInstall> fVMList;
-	
+
 	/**
 	 * VMs managed by this container whose install locations don't actually exist.
 	 */
 	private List<IVMInstall> fInvalidVMList;
-			
+
 	/**
 	 * The composite identifier of the default VM.  This consists of the install type ID
 	 * plus an ID for the VM.
 	 */
 	private String fDefaultVMInstallCompositeID;
-	
+
 	/**
 	 * The identifier of the connector to use for the default VM.
 	 */
 	private String fDefaultVMInstallConnectorTypeID;
-	
+
 	/**
 	 * Contains any error/information status of parsing XML
 	 */
 	private MultiStatus fStatus;
-	
+
 	/**
-	 * Constructs an empty VM container 
+	 * Constructs an empty VM container
 	 */
 	public VMDefinitionsContainer() {
-		fVMTypeToVMMap = new HashMap<IVMInstallType, List<IVMInstall>>(10);
-		fInvalidVMList = new ArrayList<IVMInstall>(10);	
-		fVMList = new ArrayList<IVMInstall>(10);		
+		fVMTypeToVMMap = new HashMap<>(10);
+		fInvalidVMList = new ArrayList<>(10);
+		fVMList = new ArrayList<>(10);
 	}
-		
+
 	/**
 	 * Add the specified VM to the VM definitions managed by this container.
 	 * <p>
@@ -120,16 +120,16 @@
 	 * have already had its install location set.  An invalid VM is one whose install
 	 * location doesn't exist.
 	 * </p>
-	 * 
+	 *
 	 * @param vm the VM to be added to this container
 	 */
 	public void addVM(IVMInstall vm) {
-		if (!fVMList.contains(vm)) {	
+		if (!fVMList.contains(vm)) {
 			IVMInstallType vmInstallType = vm.getVMInstallType();
 			List<IVMInstall> vmList = fVMTypeToVMMap.get(vmInstallType);
 			if (vmList == null) {
-				vmList = new ArrayList<IVMInstall>(3);
-				fVMTypeToVMMap.put(vmInstallType, vmList);			
+				vmList = new ArrayList<>(3);
+				fVMTypeToVMMap.put(vmInstallType, vmList);
 			}
 			vmList.add(vm);
 			File installLocation = vm.getInstallLocation();
@@ -139,7 +139,7 @@
 			fVMList.add(vm);
 		}
 	}
-	
+
 	/**
 	 * Add all VM's in the specified list to the VM definitions managed by this container.
 	 * <p>
@@ -147,7 +147,7 @@
 	 * have already had their install locations set.  An invalid VM is one whose install
 	 * location doesn't exist.
 	 * </p>
-	 * 
+	 *
 	 * @param vmList a list of VMs to be added to this container
 	 */
 	public void addVMList(List<IVMInstall> vmList) {
@@ -160,81 +160,81 @@
 	/**
 	 * Return a mapping of VM install types to lists of VMs.  The keys of this map are instances of
 	 * <code>IVMInstallType</code>.  The values are instances of <code>java.util.List</code>
-	 * which contain instances of <code>IVMInstall</code>.  
-	 * 
+	 * which contain instances of <code>IVMInstall</code>.
+	 *
 	 * @return Map the mapping of VM install types to lists of VMs
 	 */
 	public Map<IVMInstallType, List<IVMInstall>> getVMTypeToVMMap() {
 		return fVMTypeToVMMap;
 	}
-	
+
 	/**
 	 * Return a list of all VMs in this container, including any invalid VMs.  An invalid
 	 * VM is one whose install location does not exist on the file system.
 	 * The order of the list is not specified.
-	 * 
+	 *
 	 * @return List the data structure containing all VMs managed by this container
 	 */
 	public List<IVMInstall> getVMList() {
 		return fVMList;
 	}
-	
+
 	/**
 	 * Return a list of all valid VMs in this container.  A valid VM is one whose install
 	 * location exists on the file system.  The order of the list is not specified.
-	 * 
-	 * @return List 
+	 *
+	 * @return List
 	 */
 	public List<IVMInstall> getValidVMList() {
 		List<IVMInstall> vms = getVMList();
-		List<IVMInstall> resultList = new ArrayList<IVMInstall>(vms.size());
+		List<IVMInstall> resultList = new ArrayList<>(vms.size());
 		resultList.addAll(vms);
 		resultList.removeAll(fInvalidVMList);
 		return resultList;
 	}
-	
+
 	/**
 	 * Returns the composite ID for the default VM.  The composite ID consists
 	 * of an ID for the VM install type together with an ID for VM.  This is
 	 * necessary because VM ids by themselves are not necessarily unique across
 	 * VM install types.
-	 * 
+	 *
 	 * @return String returns the composite ID of the current default VM
 	 */
 	public String getDefaultVMInstallCompositeID(){
 		return fDefaultVMInstallCompositeID;
 	}
-	
+
 	/**
 	 * Sets the composite ID for the default VM.  The composite ID consists
 	 * of an ID for the VM install type together with an ID for VM.  This is
 	 * necessary because VM ids by themselves are not necessarily unique across
 	 * VM install types.
-	 * 
+	 *
 	 * @param id identifies the new default VM using a composite ID
 	 */
 	public void setDefaultVMInstallCompositeID(String id){
 		fDefaultVMInstallCompositeID = id;
 	}
-	
+
 	/**
 	 * Return the default VM's connector type ID.
-	 * 
+	 *
 	 * @return String the current value of the default VM's connector type ID
 	 */
 	public String getDefaultVMInstallConnectorTypeID() {
 		return fDefaultVMInstallConnectorTypeID;
 	}
-	
+
 	/**
 	 * Set the default VM's connector type ID.
-	 * 
+	 *
 	 * @param id the new value of the default VM's connector type ID
 	 */
 	public void  setDefaultVMInstallConnectorTypeID(String id){
 		fDefaultVMInstallConnectorTypeID = id;
 	}
-	
+
 	/**
 	 * Return the VM definitions contained in this object as a String of XML.  The String
 	 * is suitable for storing in the workbench preferences.
@@ -245,22 +245,22 @@
 	 * @throws CoreException if serialization of the XML document failed
 	 */
 	public String getAsXML() throws CoreException {
-		
+
 		// Create the Document and the top-level node
 		Document doc = DebugPlugin.newDocument();
 		Element config = doc.createElement("vmSettings");    //$NON-NLS-1$
 		doc.appendChild(config);
-		
+
 		// Set the defaultVM attribute on the top-level node
 		if (getDefaultVMInstallCompositeID() != null) {
 			config.setAttribute("defaultVM", getDefaultVMInstallCompositeID()); //$NON-NLS-1$
 		}
-		
+
 		// Set the defaultVMConnector attribute on the top-level node
 		if (getDefaultVMInstallConnectorTypeID() != null) {
 			config.setAttribute("defaultVMConnector", getDefaultVMInstallConnectorTypeID()); //$NON-NLS-1$
 		}
-				
+
 		// Create a node for each install type represented in this container
 		Set<IVMInstallType> vmInstallTypeSet = getVMTypeToVMMap().keySet();
 		Iterator<IVMInstallType> keyIterator = vmInstallTypeSet.iterator();
@@ -269,24 +269,24 @@
 			Element vmTypeElement = vmTypeAsElement(doc, vmInstallType);
 			config.appendChild(vmTypeElement);
 		}
-		
+
 		// Serialize the Document and return the resulting String
 		return DebugPlugin.serializeDocument(doc);
 	}
-	
+
 	/**
 	 * Create and return a node for the specified VM install type in the specified Document.
-	 * 
+	 *
 	 * @param doc the backing {@link Document}
 	 * @param vmType the {@link IVMInstallType} to create an {@link Element} for
 	 * @return the new {@link Element}
 	 */
 	private Element vmTypeAsElement(Document doc, IVMInstallType vmType) {
-		
+
 		// Create a node for the VM type and set its 'id' attribute
 		Element element= doc.createElement("vmType");   //$NON-NLS-1$
 		element.setAttribute("id", vmType.getId());     //$NON-NLS-1$
-		
+
 		// For each VM of the specified type, create a subordinate node for it
 		List<IVMInstall> vmList = getVMTypeToVMMap().get(vmType);
 		Iterator<IVMInstall> vmIterator = vmList.iterator();
@@ -295,24 +295,24 @@
 			Element vmElement = vmAsElement(doc, vm);
 			element.appendChild(vmElement);
 		}
-		
+
 		return element;
 	}
-	
+
 	/**
 	 * Create and return a node for the specified VM in the specified Document.
-	 * 
+	 *
 	 * @param doc the backing {@link Document}
 	 * @param vm the {@link IVMInstall} to create an {@link Element} for
 	 * @return the new {@link Element} representing the given {@link IVMInstall}
 	 */
 	private Element vmAsElement(Document doc, IVMInstall vm) {
-		
+
 		// Create the node for the VM and set its 'id' & 'name' attributes
 		Element element= doc.createElement("vm");        //$NON-NLS-1$
 		element.setAttribute("id", vm.getId());	         //$NON-NLS-1$
 		element.setAttribute("name", vm.getName());      //$NON-NLS-1$
-		
+
 		// Determine and set the 'path' attribute for the VM
 		String installPath= "";                          //$NON-NLS-1$
 		File installLocation= vm.getInstallLocation();
@@ -320,20 +320,20 @@
 			installPath= installLocation.getAbsolutePath();
 		}
 		element.setAttribute("path", installPath);       //$NON-NLS-1$
-		
-		// If the 'libraryLocations' attribute is specified, create a node for it 
+
+		// If the 'libraryLocations' attribute is specified, create a node for it
 		LibraryLocation[] libraryLocations= vm.getLibraryLocations();
 		if (libraryLocations != null) {
 			Element libLocationElement = libraryLocationsAsElement(doc, libraryLocations);
 			element.appendChild(libLocationElement);
 		}
-		
+
 		// Java doc location
 		URL url = vm.getJavadocLocation();
 		if (url != null) {
 			element.setAttribute("javadocURL", url.toExternalForm()); //$NON-NLS-1$
 		}
-		
+
 		if (vm instanceof IVMInstall2) {
 			String vmArgs = ((IVMInstall2)vm).getVMArgs();
 			if (vmArgs != null && vmArgs.length() > 0) {
@@ -349,7 +349,7 @@
 				element.setAttribute("vmargs", buffer.toString()); //$NON-NLS-1$
 			}
 		}
-		
+
 		// VM attributes
 		if (vm instanceof AbstractVMInstall) {
 			Map<String, String> attributes = ((AbstractVMInstall)vm).getAttributes();
@@ -366,14 +366,14 @@
 				element.appendChild(attrElement);
 			}
 		}
-		
+
 		return element;
 	}
-	
+
 	/**
 	 * Create and return a 'libraryLocations' node.  This node owns subordinate nodes that
 	 * list individual library locations.
-	 * 
+	 *
 	 * @param doc the backing {@link Document}
 	 * @param locations the array of {@link LibraryLocation}s to create an {@link Element} for
 	 * @return the new {@link Element} for the given {@link LibraryLocation}s
@@ -388,12 +388,12 @@
 			if (null != annotationsPath && !annotationsPath.isEmpty()) {
 				element.setAttribute("jreExternalAnns", annotationsPath.toString()); //$NON-NLS-1$
 			}
-			
+
 			IPath packageRootPath = locations[i].getPackageRootPath();
             if (packageRootPath != null) {
                 element.setAttribute("pkgRoot", packageRootPath.toString()); //$NON-NLS-1$
             }
-            
+
 			URL javadocURL= locations[i].getJavadocLocation();
 			if (javadocURL != null) {
 				element.setAttribute("jreJavadoc", javadocURL.toExternalForm()); //$NON-NLS-1$
@@ -406,13 +406,13 @@
 		}
 		return root;
 	}
-	
+
 	public static VMDefinitionsContainer parseXMLIntoContainer(InputStream inputStream) throws IOException {
 		VMDefinitionsContainer container = new VMDefinitionsContainer();
 		parseXMLIntoContainer(inputStream, container);
 		return container;
 	}
-			
+
 	/**
 	 * Parse the VM definitions contained in the specified InputStream into the
 	 * specified container.
@@ -440,27 +440,27 @@
 
 
 		// Do the parsing and obtain the top-level node
-		Element config= null;		
+		Element config= null;
 		// Wrapper the stream for efficient parsing
 		try (InputStream stream = new BufferedInputStream(inputStream)) {
 			DocumentBuilder parser= DocumentBuilderFactory.newInstance().newDocumentBuilder();
 			parser.setErrorHandler(new DefaultHandler());
 			config = parser.parse(new InputSource(stream)).getDocumentElement();
 		} catch (SAXException e) {
-			throw new IOException(LaunchingMessages.JavaRuntime_badFormat); 
+			throw new IOException(LaunchingMessages.JavaRuntime_badFormat);
 		} catch (ParserConfigurationException e) {
-			throw new IOException(LaunchingMessages.JavaRuntime_badFormat); 
+			throw new IOException(LaunchingMessages.JavaRuntime_badFormat);
 		}
-		
+
 		// If the top-level node wasn't what we expected, bail out
 		if (!config.getNodeName().equalsIgnoreCase("vmSettings")) { //$NON-NLS-1$
-			throw new IOException(LaunchingMessages.JavaRuntime_badFormat); 
+			throw new IOException(LaunchingMessages.JavaRuntime_badFormat);
 		}
-		
+
 		// Populate the default VM-related fields
 		container.setDefaultVMInstallCompositeID(config.getAttribute("defaultVM")); //$NON-NLS-1$
 		container.setDefaultVMInstallConnectorTypeID(config.getAttribute("defaultVMConnector")); //$NON-NLS-1$
-		
+
 		// Traverse the parsed structure and populate the VMType to VM Map
 		NodeList list = config.getChildNodes();
 		int length = list.getLength();
@@ -475,11 +475,11 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * For the specified VM type node, parse all subordinate VM definitions and add them
 	 * to the specified container.
-	 * 
+	 *
 	 * @param vmTypeElement the {@link Element} to populate the {@link VMDefinitionsContainer} from
 	 * @param container the {@link VMDefinitionsContainer} to populate from the {@link Element}
 	 */
@@ -517,9 +517,9 @@
 	}
 
 	/**
-	 * Parse the specified VM node, create a VMStandin for it, and add this to the 
+	 * Parse the specified VM node, create a VMStandin for it, and add this to the
 	 * specified container.
-	 * 
+	 *
 	 * @param vmType VM type
 	 * @param vmElement XML element
 	 * @param container container to add VM to
@@ -527,7 +527,7 @@
 	private static void populateVMForType(IVMInstallType vmType, Element vmElement, VMDefinitionsContainer container) {
 		String id= vmElement.getAttribute("id"); //$NON-NLS-1$
 		if (id != null) {
-			
+
 			// Retrieve the 'path' attribute.  If none, skip this node.
 			String installPath= vmElement.getAttribute("path"); //$NON-NLS-1$
 			String name = vmElement.getAttribute("name"); //$NON-NLS-1$
@@ -545,7 +545,7 @@
 						NLS.bind(LaunchingMessages.VMDefinitionsContainer_5, new String[]{name})));
 				return;
 			}
-						
+
 			// Create a VMStandin for the node and set its 'name' & 'installLocation' attributes
 			VMStandin vmStandin = new VMStandin(vmType, id);
 			vmStandin.setName(name);
@@ -553,10 +553,10 @@
 			vmStandin.setInstallLocation(installLocation);
 			String install = installLocation.getAbsolutePath();
 			//only consider a VM changed it is a standard VM
-			boolean changed = StandardVMType.ID_STANDARD_VM_TYPE.equals(vmType.getId()) && 
+			boolean changed = StandardVMType.ID_STANDARD_VM_TYPE.equals(vmType.getId()) &&
 										LaunchingPlugin.timeStampChanged(install);
 			container.addVM(vmStandin);
-			
+
 			// Look for subordinate nodes.  These may be 'libraryLocation',
 			// 'libraryLocations' or 'versionInfo'.
 			if(!changed) {
@@ -588,7 +588,7 @@
 							}
 						}
 					}
-					
+
 					// javadoc URL
 					String externalForm = vmElement.getAttribute("javadocURL"); //$NON-NLS-1$
 					if (externalForm != null && externalForm.length() > 0) {
@@ -620,12 +620,12 @@
 					NLS.bind(LaunchingMessages.VMDefinitionsContainer_9, new String[]{vmType.getName()})));
 			}
 		}
-	}	
-	
+	}
+
 	/**
 	 * Create & return a LibraryLocation object populated from the attribute values
 	 * in the specified node.
-	 * 
+	 *
 	 * @param libLocationElement the {@link Element} to parse the {@link LibraryLocation} from
 	 * @return the new {@link LibraryLocation} or <code>null</code> if the {@link Element} was malformed
 	 */
@@ -657,7 +657,7 @@
 			} catch (MalformedURLException e) {
 				LaunchingPlugin.log("Library location jre index element is specified incorrectly.");  //$NON-NLS-1$
 			}
-		}		
+		}
 		if (jreJar != null && jreSrc != null && pkgRoot != null) {
 			return new LibraryLocation(new Path(jreJar), new Path(jreSrc), new Path(pkgRoot), javadocURL, indexURL
 					, externalAnns == null ? null : new Path(externalAnns));
@@ -665,18 +665,18 @@
 		LaunchingPlugin.log("Library location element is specified incorrectly.");  //$NON-NLS-1$
 		return null;
 	}
-	
+
 	/**
 	 * Set the LibraryLocations on the specified VM, by extracting the subordinate
 	 * nodes from the specified 'lirbaryLocations' node.
-	 * 
+	 *
 	 * @param vm the {@link IVMInstall} to populate from the given {@link Element}
 	 * @param libLocationsElement the {@link Element} to populate the {@link IVMInstall} with
 	 */
 	private static void setLibraryLocations(IVMInstall vm, Element libLocationsElement) {
 		NodeList list = libLocationsElement.getChildNodes();
 		int length = list.getLength();
-		List<LibraryLocation> locations = new ArrayList<LibraryLocation>(length);
+		List<LibraryLocation> locations = new ArrayList<>(length);
 		for (int i = 0; i < length; ++i) {
 			Node node = list.item(i);
 			short type = node.getNodeType();
@@ -686,13 +686,13 @@
 					locations.add(getLibraryLocation(libraryLocationElement));
 				}
 			}
-		}	
+		}
 		vm.setLibraryLocations(locations.toArray(new LibraryLocation[locations.size()]));
 	}
-	
+
 	/**
 	 * Removes the VM from this container.
-	 * 
+	 *
 	 * @param vm VM install
 	 */
 	public void removeVM(IVMInstall vm) {
@@ -703,7 +703,7 @@
 			list.remove(vm);
 		}
 	}
-		
+
 	private void addStatus(IStatus status) {
 		if (fStatus == null) {
 			fStatus = new MultiStatus(LaunchingPlugin.ID_PLUGIN, 0, LaunchingMessages.VMDefinitionsContainer_10, null);
@@ -713,7 +713,7 @@
 
 	/**
 	 * Returns status from parsing VM installs or <code>null</code> if none.
-	 * 
+	 *
 	 * @return status or <code>null</code>
 	 */
 	public IStatus getStatus() {
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/VMListener.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/VMListener.java
index 4ffad85..789bdc9 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/VMListener.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/VMListener.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -16,12 +16,12 @@
 
 /**
  * Simple VM listener that reports whether VM settings have changed.
- * 
+ *
  * @since 3.2
  *
  */
 public class VMListener implements IVMInstallChangedListener {
-	
+
 	private boolean fChanged = false;
 
 	/* (non-Javadoc)
@@ -55,7 +55,7 @@
 	public void vmRemoved(IVMInstall vm) {
 		fChanged = true;
 	}
-	
+
 	public boolean isChanged() {
 		return fChanged;
 	}
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/VariableClasspathEntry.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/VariableClasspathEntry.java
index 307a90e..273a69d 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/VariableClasspathEntry.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/VariableClasspathEntry.java
@@ -24,12 +24,12 @@
 public class VariableClasspathEntry extends AbstractRuntimeClasspathEntry {
 	public static final String TYPE_ID = "org.eclipse.jdt.launching.classpathentry.variableClasspathEntry"; //$NON-NLS-1$
 	private String variableString;
-	
+
 	/**
 	 * Constructor
 	 */
 	public VariableClasspathEntry() {}
-	
+
 	/**
 	 * Constructor
 	 * @param variableString the string value
@@ -37,7 +37,7 @@
 	public VariableClasspathEntry(String variableString) {
 		this.variableString = variableString;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.internal.launching.AbstractRuntimeClasspathEntry#buildMemento(org.w3c.dom.Document, org.w3c.dom.Element)
 	 */
@@ -46,7 +46,7 @@
 		memento.setAttribute("variableString", variableString); //$NON-NLS-1$
 		memento.setAttribute("path", Integer.toString(getClasspathProperty())); //$NON-NLS-1$
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.IRuntimeClasspathEntry2#initializeFrom(org.w3c.dom.Element)
 	 */
@@ -60,9 +60,9 @@
 			}
 			catch(NumberFormatException nfe) {/*do nothing, but don't throw an exception*/}
 		}
-		
+
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.IRuntimeClasspathEntry2#getTypeId()
 	 */
@@ -70,7 +70,7 @@
 	public String getTypeId() {
 		return TYPE_ID;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.IRuntimeClasspathEntry2#getRuntimeClasspathEntries(org.eclipse.debug.core.ILaunchConfiguration)
 	 */
@@ -78,21 +78,21 @@
 	public IRuntimeClasspathEntry[] getRuntimeClasspathEntries(ILaunchConfiguration configuration) throws CoreException {
 		return new IRuntimeClasspathEntry[0];
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.IRuntimeClasspathEntry2#getName()
 	 */
 	@Override
 	public String getName() {
-		return variableString; 
+		return variableString;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.IRuntimeClasspathEntry#getType()
 	 */
 	@Override
 	public int getType() {
-		return OTHER; 
+		return OTHER;
 	}
 	/**
 	 * @return Returns the variableString.
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/VariableClasspathResolver.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/VariableClasspathResolver.java
index dd4ee98..53350df 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/VariableClasspathResolver.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/VariableClasspathResolver.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -47,9 +47,9 @@
 		String strpath = VariablesPlugin.getDefault().getStringVariableManager().performStringSubstitution(variableString);
 		IPath path = new Path(strpath).makeAbsolute();
 		IRuntimeClasspathEntry archiveEntry = JavaRuntime.newArchiveRuntimeClasspathEntry(path);
-		return new IRuntimeClasspathEntry[] { archiveEntry };	
+		return new IRuntimeClasspathEntry[] { archiveEntry };
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.IRuntimeClasspathEntryResolver#resolveVMInstall(org.eclipse.jdt.core.IClasspathEntry)
 	 */
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/AccessRuleParticipant.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/AccessRuleParticipant.java
index 1db8251..eff9aab 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/AccessRuleParticipant.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/AccessRuleParticipant.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -22,27 +22,27 @@
 
 /**
  * Proxy to an access rule participant for an execution environment.
- * 
+ *
  * @since 3.3
  */
 class AccessRuleParticipant implements IAccessRuleParticipant {
 
 	private IConfigurationElement fElement;
-	
+
 	private IAccessRuleParticipant fDelegate;
-	
+
 	/**
-	 * Constructs a proxy to a rule participant contributed with the 
+	 * Constructs a proxy to a rule participant contributed with the
 	 * given configuration element. The element may be an
 	 * <code>executionEnvironment</code> element or a <code>ruleParticipant</code>
 	 * extension.
-	 * 
+	 *
 	 * @param element the configuration element
 	 */
 	AccessRuleParticipant(IConfigurationElement element) {
 		fElement = element;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.environments.IAccessRuleParticipant#getAccessRules(org.eclipse.jdt.launching.environments.IExecutionEnvironment, org.eclipse.jdt.launching.IVMInstall, org.eclipse.jdt.launching.LibraryLocation[], org.eclipse.jdt.core.IJavaProject)
 	 */
@@ -59,7 +59,7 @@
 		}
 		return rules;
 	}
-	
+
 	private IAccessRuleParticipant getDelegate() throws CoreException {
 		if (fDelegate == null) {
 			if (fElement.getName().equals(EnvironmentsManager.ENVIRONMENT_ELEMENT)) {
@@ -70,10 +70,10 @@
 		}
 		return fDelegate;
 	}
-	
+
 	/**
 	 * Returns the id of this participant.
-	 * 
+	 *
 	 * @return participant id
 	 */
 	String getId() {
@@ -82,7 +82,7 @@
 		}
 		return fElement.getAttribute("id"); //$NON-NLS-1$
 	}
-	
+
 	private String getDelegateClassName() {
 		if (fElement.getName().equals(EnvironmentsManager.ENVIRONMENT_ELEMENT)) {
 			return fElement.getAttribute(EnvironmentsManager.RULE_PARTICIPANT_ELEMENT);
@@ -101,7 +101,7 @@
 		}
 		return false;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see java.lang.Object#hashCode()
 	 */
@@ -109,7 +109,7 @@
 	public int hashCode() {
 		return getDelegateClassName().hashCode();
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see java.lang.Object#toString()
 	 */
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/Analyzer.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/Analyzer.java
index 007fd3d..a584aeb 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/Analyzer.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/Analyzer.java
@@ -19,16 +19,16 @@
 
 /**
  * Contributed analyzer.
- * 
+ *
  * @since 3.2
  *
  */
 class Analyzer implements IExecutionEnvironmentAnalyzerDelegate {
-	
+
 	private IConfigurationElement fElement;
-	
+
 	private IExecutionEnvironmentAnalyzerDelegate fDelegate;
-	
+
 	Analyzer(IConfigurationElement element) {
 		fElement = element;
 	}
@@ -43,7 +43,7 @@
 
 	/**
 	 * Instantiates and returns the contributed analyzer.
-	 * 
+	 *
 	 * @return analyzer
 	 * @throws CoreException if an error occurs
 	 */
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/DefaultAccessRuleParticipant.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/DefaultAccessRuleParticipant.java
index d97cbf8..df824ae 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/DefaultAccessRuleParticipant.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/DefaultAccessRuleParticipant.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -29,15 +29,15 @@
 /**
  * Creates default access rules for standard execution environments
  * based on OSGi profiles.
- * 
+ *
  * @since 3.3
  */
 public class DefaultAccessRuleParticipant implements IAccessRuleParticipant {
-	
+
 	/**
 	 * Cache of access rules per environment. Re-use rules between projects.
 	 */
-	private static Map<String, IAccessRule[][]> fgRules = new HashMap<String, IAccessRule[][]>();
+	private static Map<String, IAccessRule[][]> fgRules = new HashMap<>();
 
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.environments.IAccessRuleParticipant#getAccessRules(org.eclipse.jdt.launching.environments.IExecutionEnvironment, org.eclipse.jdt.launching.IVMInstall, org.eclipse.jdt.launching.LibraryLocation[], org.eclipse.jdt.core.IJavaProject)
@@ -62,7 +62,7 @@
 			}
 			allRules = new IAccessRule[libraries.length][];
 			for (int i = 0; i < allRules.length; i++) {
-				allRules[i] = packageRules;	
+				allRules[i] = packageRules;
 			}
 			fgRules.put(environment.getId(), allRules);
 		}
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/EnvironmentsManager.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/EnvironmentsManager.java
index fd00663..4e8dd20 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/EnvironmentsManager.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/EnvironmentsManager.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -52,7 +52,7 @@
 
 /**
  * Utility class for execution environments.
- * 
+ *
  * @since 3.2
  */
 public class EnvironmentsManager implements IExecutionEnvironmentsManager, IVMInstallChangedListener, IPreferenceChangeListener {
@@ -66,21 +66,21 @@
 	 * Extension configuration element name.
 	 */
 	static final String ENVIRONMENT_ELEMENT = "environment"; //$NON-NLS-1$
-	
+
 	/**
 	 * Extension configuration element name.
 	 */
-	static final String RULE_PARTICIPANT_ELEMENT = "ruleParticipant"; //$NON-NLS-1$	
+	static final String RULE_PARTICIPANT_ELEMENT = "ruleParticipant"; //$NON-NLS-1$
 
 	private static EnvironmentsManager fgManager = null;
-	
+
 	/**
 	 * Preference store key for XML storing default environments.
 	 */
 	private static final String PREF_DEFAULT_ENVIRONMENTS_XML = "org.eclipse.jdt.launching.PREF_DEFAULT_ENVIRONMENTS_XML"; //$NON-NLS-1$
-	
+
 	/**
-	 * List of environments 
+	 * List of environments
 	 */
 	private TreeSet<IExecutionEnvironment> fEnvironments = null;
 
@@ -88,22 +88,22 @@
 	 * List of access rule participants
 	 */
 	private Set<AccessRuleParticipant> fRuleParticipants = null;
-	
+
 	/**
 	 * Map of environments keyed by id
 	 */
 	private Map<String, IExecutionEnvironment> fEnvironmentsMap = null;
-	
+
 	/**
 	 * Map of analyzers keyed by id
 	 */
 	private Map<String, Analyzer> fAnalyzers = null;
-	
+
 	/**
 	 * <code>true</code> while updating the default settings preferences
 	 */
 	private boolean fIsUpdatingDefaults = false;
-	
+
 	/**
 	 * Whether compatible environments have been initialized
 	 */
@@ -128,10 +128,10 @@
 	 * XML document
 	 */
 	private static final String DEFAULT_ENVIRONMENTS = "defaultEnvironments"; //$NON-NLS-1$
-	
+
 	/**
 	 * Returns the singleton environments manager.
-	 * 
+	 *
 	 * @return environments manager
 	 */
 	public static EnvironmentsManager getDefault() {
@@ -140,7 +140,7 @@
 		}
 		return fgManager;
 	}
-	
+
 	/**
 	 * Constructs the new manager.
 	 */
@@ -157,10 +157,10 @@
 		initializeExtensions();
 		return fEnvironments.toArray(new IExecutionEnvironment[fEnvironments.size()]);
 	}
-	
+
 	/**
 	 * Returns all access rule participants that are not specific to an execution environment.
-	 * 
+	 *
 	 * @return all access rule participants that are not specific to an execution environment.
 	 * @since 3.3
 	 */
@@ -168,7 +168,7 @@
 		initializeExtensions();
 		return fRuleParticipants.toArray(new IAccessRuleParticipant[fRuleParticipants.size()]);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.environments.IExecutionEnvironmentsManager#getEnvironment(java.lang.String)
 	 */
@@ -177,31 +177,31 @@
 		initializeExtensions();
 		return fEnvironmentsMap.get(id);
 	}
-	
+
 	/**
-	 * Returns all registered analyzers 
-	 * 
+	 * Returns all registered analyzers
+	 *
 	 * @return all registered analyzers
 	 */
-	public synchronized Analyzer[] getAnalyzers() { 
+	public synchronized Analyzer[] getAnalyzers() {
 		initializeExtensions();
 		Collection<Analyzer> collection = fAnalyzers.values();
 		return collection.toArray(new Analyzer[collection.size()]);
-	}	
-	
+	}
+
 	private synchronized void initializeExtensions() {
 		if (fEnvironments == null) {
 			IExtensionPoint extensionPoint = Platform.getExtensionRegistry().getExtensionPoint(LaunchingPlugin.ID_PLUGIN, JavaRuntime.EXTENSION_POINT_EXECUTION_ENVIRONMENTS);
 			IConfigurationElement[] configs= extensionPoint.getConfigurationElements();
-			fEnvironments = new TreeSet<IExecutionEnvironment>(new Comparator<IExecutionEnvironment>() {
+			fEnvironments = new TreeSet<>(new Comparator<IExecutionEnvironment>() {
 				@Override
 				public int compare(IExecutionEnvironment o1, IExecutionEnvironment o2) {
 					return o1.getId().compareTo(o2.getId());
 				}
 			});
-			fRuleParticipants = new LinkedHashSet<AccessRuleParticipant>();
-			fEnvironmentsMap = new HashMap<String, IExecutionEnvironment>(configs.length);
-			fAnalyzers = new HashMap<String, Analyzer>(configs.length);
+			fRuleParticipants = new LinkedHashSet<>();
+			fEnvironmentsMap = new HashMap<>(configs.length);
+			fAnalyzers = new HashMap<>(configs.length);
 			for (int i = 0; i < configs.length; i++) {
 				IConfigurationElement element = configs[i];
 				String name = element.getName();
@@ -233,7 +233,7 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Initializes compatibility settings.
 	 */
@@ -255,7 +255,7 @@
         	}
         }
 	}
-	
+
 	/**
 	 * Reads persisted default VMs from the preference store
 	 */
@@ -264,7 +264,7 @@
 		try {
 			if (xml.length() > 0) {
 				DocumentBuilder parser = LaunchingPlugin.getParser();
-				
+
 				Document document = parser.parse(new ByteArrayInputStream(xml.getBytes()));
 				Element envs = document.getDocumentElement();
 				NodeList list = envs.getChildNodes();
@@ -286,7 +286,7 @@
 							}
 						}
 					}
-				}			
+				}
 			}
 		} catch (CoreException e) {
 			LaunchingPlugin.log(e);
@@ -299,7 +299,7 @@
 
 	/**
 	 * Returns an XML description of default VMs per environment. Returns
-	 * an empty string when there are none. 
+	 * an empty string when there are none.
 	 * @return an XML description of default VMs per environment. Returns
 	 * an empty string when there are none.
 	 */
@@ -329,10 +329,10 @@
 		}
 		return ""; //$NON-NLS-1$
 	}
-	
+
 	/**
 	 * Analyzes compatible execution environments for the given VM install.
-	 * 
+	 *
 	 * @param vm the {@link IVMInstall} to find environments for
 	 * @param monitor a progress monitor or <code>null</code>
 	 */
@@ -345,12 +345,12 @@
 				for (int j = 0; j < environments.length; j++) {
 					CompatibleEnvironment compatibleEnvironment = environments[j];
 					ExecutionEnvironment environment = (ExecutionEnvironment) compatibleEnvironment.getCompatibleEnvironment();
-					environment.add(vm, compatibleEnvironment.isStrictlyCompatbile());					
+					environment.add(vm, compatibleEnvironment.isStrictlyCompatbile());
 				}
 			} catch (CoreException e) {
 				LaunchingPlugin.log(e);
 			}
-		}	
+		}
 	}
 
 	/* (non-Javadoc)
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/ExecutionEnvironment.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/ExecutionEnvironment.java
index 6b0b998..06c30c6 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/ExecutionEnvironment.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/ExecutionEnvironment.java
@@ -1,13 +1,9 @@
 /*******************************************************************************
- *  Copyright (c) 2005, 2016 IBM Corporation and others.
+ *  Copyright (c) 2005, 2017 IBM Corporation and others.
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- * 
- * This is an implementation of an early-draft specification developed under the Java
- * Community Process (JCP) and is made available for testing and evaluation purposes
- * only. The code is not compatible with any specification of the JCP.
  *
  *  Contributors:
  *     IBM Corporation - initial API and implementation
@@ -55,11 +51,11 @@
 
 /**
  * A contributed execution environment.
- * 
+ *
  * @since 3.2
  */
 class ExecutionEnvironment implements IExecutionEnvironment {
-	
+
 	/**
 	 * Add a VM changed listener to clear cached values when a VM changes or is removed
 	 */
@@ -70,7 +66,7 @@
 		 */
 		@Override
 		public void defaultVMInstallChanged(IVMInstall previous, IVMInstall current) {}
-		
+
 		/* (non-Javadoc)
 		 * @see org.eclipse.jdt.launching.IVMInstallChangedListener#vmAdded(org.eclipse.jdt.launching.IVMInstall)
 		 */
@@ -97,73 +93,73 @@
 			fRuleCache.remove(removedVm);
 		}
 	};
-		
-	
+
+
 	/**
 	 * The backing <code>IConfigurationElement</code>
 	 */
 	private IConfigurationElement fElement;
-	
+
 	/**
 	 * Environment specific rule participant or <code>null</code> if none.
 	 */
 	private IAccessRuleParticipant fRuleParticipant;
-	
+
 	/**
 	 * OSGi profile properties or <code>null</code> if none.
 	 */
 	private Properties fProfileProperties;
-	
+
 	/**
 	 * Whether profile properties have been initialized
 	 */
 	private boolean fPropertiesInitialized;
-	
+
 	/**
 	 * Set of compatible vm's - just the strictly compatible ones
 	 */
-	private Set<IVMInstall> fStrictlyCompatible = new HashSet<IVMInstall>();
-	
-	/** 
+	private Set<IVMInstall> fStrictlyCompatible = new HashSet<>();
+
+	/**
 	 * All compatible vm's
 	 */
-	private List<IVMInstall> fCompatibleVMs = new ArrayList<IVMInstall>();
-	
+	private List<IVMInstall> fCompatibleVMs = new ArrayList<>();
+
 	/**
 	 * default VM install or <code>null</code> if none
 	 */
 	private IVMInstall fDefault = null;
-	
+
 	/**
 	 * Cache of access rule participants to consider for this environment.
 	 */
 	private IAccessRuleParticipant[] fParticipants = null;
-	
+
 	/**
 	 * Map of {IVMInstall -> Map of {participant -> IAccessRule[][]}}.
 	 * Caches access rules returned by each participant for a given VM.
 	 * @since 3.3
 	 */
-	private Map<IVMInstall, Map<IAccessRuleParticipant, IAccessRule[][]>> fParticipantMap = new HashMap<IVMInstall, Map<IAccessRuleParticipant, IAccessRule[][]>>();
-	
+	private Map<IVMInstall, Map<IAccessRuleParticipant, IAccessRule[][]>> fParticipantMap = new HashMap<>();
+
 	/**
 	 * Cache of VM -> IAccessRule[][] based on the current state of the participant
 	 * map. These are the union of the latest rules generated by the participants
-	 * for a specific VM. 
+	 * for a specific VM.
 	 * @since 3.3
 	 */
-	private Map<IVMInstall, IAccessRule[][]> fRuleCache = new HashMap<IVMInstall, IAccessRule[][]>();
-	
+	private Map<IVMInstall, IAccessRule[][]> fRuleCache = new HashMap<>();
+
 	/**
 	 * Wild card pattern matching all files
 	 */
 	private static final IPath ALL_PATTERN = new Path("**/*"); //$NON-NLS-1$
-	
+
 	/**
 	 * Prefix of compiler settings in properties file
 	 */
 	private static final String COMPILER_SETTING_PREFIX = JavaCore.PLUGIN_ID + ".compiler"; //$NON-NLS-1$
-	
+
 	/**
 	 * Constructor
 	 * @param element the backing {@link IConfigurationElement}
@@ -177,7 +173,7 @@
 		}
 		JavaRuntime.addVMInstallChangedListener(fListener);
 	}
-	
+
 	/**
 	 * Initializes the <code>EnvironmentsManager</code>
 	 */
@@ -246,14 +242,14 @@
 		rebindClasspathContainers();
 	}
 
-	/** 
+	/**
 	 * Updates Java projects referencing this environment, if any.
 	 */
 	private void rebindClasspathContainers() {
 		IJavaModel model = JavaCore.create(ResourcesPlugin.getWorkspace().getRoot());
 		if (model != null) {
 			try {
-				List<IJavaProject> updates = new ArrayList<IJavaProject>();
+				List<IJavaProject> updates = new ArrayList<>();
 				IJavaProject[] javaProjects = model.getJavaProjects();
 				IPath path = JavaRuntime.newJREContainerPath(this);
 				for (int i = 0; i < javaProjects.length; i++) {
@@ -269,7 +265,7 @@
 					}
 				}
 				if (!updates.isEmpty()) {
-					JavaCore.setClasspathContainer(path, 
+					JavaCore.setClasspathContainer(path,
 							updates.toArray(new IJavaProject[updates.size()]),
 							new IClasspathContainer[updates.size()],
 							new NullProgressMonitor());
@@ -296,7 +292,7 @@
 			fStrictlyCompatible.add(vm);
 		}
 	}
-	
+
 	/**
 	 * Removes the specified VM from the listings of VMs
 	 * @param vm the VM to remove
@@ -305,7 +301,7 @@
 		fCompatibleVMs.remove(vm);
 		fStrictlyCompatible.remove(vm);
 	}
-	
+
 	/**
 	 * Sets the default VM to be the one specified
 	 * @param vm the VM to set as the default
@@ -324,7 +320,7 @@
 		synchronized (this) {
 			Map<IAccessRuleParticipant, IAccessRule[][]> cachedRules = fParticipantMap.get(vm);
 			if (cachedRules == null || !cachedRules.equals(rulesByParticipant)) {
-				ArrayList<List<IAccessRule>> libLists = new ArrayList<List<IAccessRule>>(); // array of lists of access rules
+				ArrayList<List<IAccessRule>> libLists = new ArrayList<>(); // array of lists of access rules
 				for (int i = 0; i < libraries.length; i++) {
 					libLists.add(new ArrayList<IAccessRule>());
 				}
@@ -344,12 +340,12 @@
 			return fRuleCache.get(vm);
 		}
 	}
-	
+
 	/**
 	 * Returns all access rule participants to consider for this environment.
 	 * Includes any participant contributed with this environment and all other
 	 * stand alone participants.
-	 * 
+	 *
 	 * @return access rule participants to consider for this environment
 	 */
 	private synchronized IAccessRuleParticipant[] getParticipants() {
@@ -358,7 +354,7 @@
 			IAccessRuleParticipant[] participants = EnvironmentsManager.getDefault().getAccessRuleParticipants();
 			if (fRuleParticipant != null) {
 				// ensure environment specific provider is last and not duplicated
-				LinkedHashSet<IAccessRuleParticipant> set = new LinkedHashSet<IAccessRuleParticipant>();
+				LinkedHashSet<IAccessRuleParticipant> set = new LinkedHashSet<>();
 				for (int i = 0; i < participants.length; i++) {
 					set.add(participants[i]);
 				}
@@ -371,30 +367,30 @@
 		}
 		return fParticipants;
 	}
-	
+
 	/**
 	 * Returns a map of participant to the access rules for that participant for the given
 	 * VM, libraries, and project.
-	 * 
+	 *
 	 * @param participants access rule participants
 	 * @param vm the VM
-	 * @param libraries the {@link LibraryLocation}s 
+	 * @param libraries the {@link LibraryLocation}s
 	 * @param project the {@link IJavaProject} context
 	 * @return the mapping of {@link IAccessRuleParticipant} to {@link IAccessRule}s
 	 */
 	private Map<IAccessRuleParticipant, IAccessRule[][]> collectRulesByParticipant(IAccessRuleParticipant[] participants, IVMInstall vm, LibraryLocation[] libraries, IJavaProject project) {
-		Map<IAccessRuleParticipant, IAccessRule[][]> map = new HashMap<IAccessRuleParticipant, IAccessRule[][]>();
+		Map<IAccessRuleParticipant, IAccessRule[][]> map = new HashMap<>();
 		for (int i = 0; i < participants.length; i++) {
 			// TODO: use safe runnable
 			map.put(participants[i], participants[i].getAccessRules(this, vm, libraries, project));
 		}
 		return map;
 	}
-	
+
 	/**
-	 * Adds the access rules to each list in the given collection. If the last rule in a 
+	 * Adds the access rules to each list in the given collection. If the last rule in a
 	 * given collection is the wild card pattern then no more rules are added to that collection.
-	 * 
+	 *
 	 * @param accessRules the list of {@link IAccessRule}s
 	 * @param collect the array of lists to collect the {@link IAccessRule}s in
 	 */
@@ -438,11 +434,11 @@
 		}
 		return fProfileProperties;
 	}
-	
+
 	/**
 	 * Returns properties file contained in the specified bundle at the given
 	 * bundle relative path, or <code>null</code> if none.
-	 * 
+	 *
 	 * @param bundle bundle to locate file in
 	 * @param path bundle relative path to properties file
 	 * @return properties or <code>null</code> if none
@@ -484,7 +480,7 @@
 	@Override
 	public IExecutionEnvironment[] getSubEnvironments() {
 		Properties properties = getProfileProperties();
-		Set<IExecutionEnvironment> subenv = new LinkedHashSet<IExecutionEnvironment>();
+		Set<IExecutionEnvironment> subenv = new LinkedHashSet<>();
 		if (properties != null) {
 			@SuppressWarnings("deprecation")
 			String subsets = properties.getProperty(Constants.FRAMEWORK_EXECUTIONENVIRONMENT);
@@ -508,7 +504,7 @@
 	public Map<String, String> getComplianceOptions() {
 		Properties properties = getProfileProperties();
 		if (properties != null) {
-			Map<String, String> map = new HashMap<String, String>();
+			Map<String, String> map = new HashMap<>();
 			Iterator<?> iterator = properties.keySet().iterator();
 			while (iterator.hasNext()) {
 				String key = (String) iterator.next();
@@ -521,5 +517,5 @@
 			}
 		}
 		return null;
-	}	
+	}
 }
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/ExecutionEnvironmentAnalyzer.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/ExecutionEnvironmentAnalyzer.java
index 86ee5d3..980a141 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/ExecutionEnvironmentAnalyzer.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/ExecutionEnvironmentAnalyzer.java
@@ -34,11 +34,11 @@
 import org.eclipse.jdt.launching.environments.IExecutionEnvironmentsManager;
 /**
  * Environment analyzer for standard execution environments.
- * 
+ *
  * @since 3.3
  */
 public class ExecutionEnvironmentAnalyzer implements IExecutionEnvironmentAnalyzerDelegate {
-	
+
 	// XXX: Note that this string is not yet standardized by OSGi, see http://wiki.osgi.org/wiki/Execution_Environment
 	static final String JavaSE_9 = "JavaSE-9"; //$NON-NLS-1$
 	private static final String JavaSE_1_8 = "JavaSE-1.8"; //$NON-NLS-1$
@@ -50,21 +50,21 @@
 	private static final String J2SE_1_3 = "J2SE-1.3"; //$NON-NLS-1$
 	private static final String J2SE_1_2 = "J2SE-1.2"; //$NON-NLS-1$
 	private static final String JRE_1_1 = "JRE-1.1"; //$NON-NLS-1$
-	
+
 	private static final String CDC_FOUNDATION_1_1 = "CDC-1.1/Foundation-1.1"; //$NON-NLS-1$
 	private static final String CDC_FOUNDATION_1_0 = "CDC-1.0/Foundation-1.0"; //$NON-NLS-1$
-	
+
 	private static final String OSGI_MINIMUM_1_0 = "OSGi/Minimum-1.0"; //$NON-NLS-1$
 	private static final String OSGI_MINIMUM_1_1 = "OSGi/Minimum-1.1"; //$NON-NLS-1$
 	private static final String OSGI_MINIMUM_1_2 = "OSGi/Minimum-1.2"; //$NON-NLS-1$
-	
+
 	private static final String JAVA_SPEC_VERSION = "java.specification.version"; //$NON-NLS-1$
 	private static final String JAVA_SPEC_NAME = "java.specification.name"; //$NON-NLS-1$
 	private static final String JAVA_VERSION = "java.version"; //$NON-NLS-1$
-	
+
 	private static final String[] VM_PROPERTIES = {JAVA_SPEC_NAME, JAVA_SPEC_VERSION, JAVA_VERSION};
 	private static final String FOUNDATION = "foundation"; //$NON-NLS-1$
-	private static final Map<String, String[]> mappings = new HashMap<String, String[]>();
+	private static final Map<String, String[]> mappings = new HashMap<>();
 
 	static {
 		// table where the key is the EE and the value is an array of EEs that it is a super-set of
@@ -83,7 +83,7 @@
 	}
 	@Override
 	public CompatibleEnvironment[] analyze(IVMInstall vm, IProgressMonitor monitor) throws CoreException {
-		ArrayList<CompatibleEnvironment> result = new ArrayList<CompatibleEnvironment>();
+		ArrayList<CompatibleEnvironment> result = new ArrayList<>();
 		if (!(vm instanceof IVMInstall2)) {
 			return new CompatibleEnvironment[0];
 		}
@@ -178,10 +178,10 @@
 			result.add(new CompatibleEnvironment(env, strict));
 		}
 	}
-	
+
 	// first entry in the list is the perfect match
 	private List<String> getTypes(String type) {
-		List<String> result = new ArrayList<String>();
+		List<String> result = new ArrayList<>();
 		result.add(type);
 		String[] values = mappings.get(type);
 		if (values != null) {
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractJavaLaunchConfigurationDelegate.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractJavaLaunchConfigurationDelegate.java
index aea799c..d46cb52 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractJavaLaunchConfigurationDelegate.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractJavaLaunchConfigurationDelegate.java
@@ -58,7 +58,7 @@
  * Clients implementing Java launch configuration delegates should subclass this
  * class.
  * </p>
- * 
+ *
  * @since 2.0
  */
 public abstract class AbstractJavaLaunchConfigurationDelegate extends LaunchConfigurationDelegate implements IDebugEventSetListener {
@@ -68,7 +68,7 @@
 	private IProject[] fOrderedProjects;
 	/**
 	 * Convenience method to get the launch manager.
-	 * 
+	 *
 	 * @return the launch manager
 	 */
 	protected ILaunchManager getLaunchManager() {
@@ -77,7 +77,7 @@
 	/**
 	 * Throws a core exception with an error status object built from the given
 	 * message, lower level exception, and error code.
-	 * 
+	 *
 	 * @param message
 	 *            the status message
 	 * @param exception
@@ -96,7 +96,7 @@
 	/**
 	 * Returns the VM install specified by the given launch configuration, or
 	 * <code>null</code> if none.
-	 * 
+	 *
 	 * @param configuration
 	 *            launch configuration
 	 * @return the VM install specified by the given launch configuration, or
@@ -111,7 +111,7 @@
 	/**
 	 * Returns the VM install name specified by the given launch configuration,
 	 * or <code>null</code> if none.
-	 * 
+	 *
 	 * @param configuration
 	 *            launch configuration
 	 * @return the VM install name specified by the given launch configuration,
@@ -129,7 +129,7 @@
 	/**
 	 * Returns the VM install type specified by the given launch configuration,
 	 * or <code>null</code> if none.
-	 * 
+	 *
 	 * @param configuration
 	 *            launch configuration
 	 * @return the VM install type specified by the given launch configuration,
@@ -151,7 +151,7 @@
 	/**
 	 * Returns the VM install type identifier specified by the given launch
 	 * configuration, or <code>null</code> if none.
-	 * 
+	 *
 	 * @param configuration
 	 *            launch configuration
 	 * @return the VM install type identifier specified by the given launch
@@ -169,7 +169,7 @@
 	/**
 	 * Verifies the VM install specified by the given launch configuration
 	 * exists and returns the VM install.
-	 * 
+	 *
 	 * @param configuration
 	 *            launch configuration
 	 * @return the VM install specified by the given launch configuration
@@ -183,31 +183,31 @@
 		IVMInstall vm = getVMInstall(configuration);
 		if (vm == null) {
 			abort(
-					LaunchingMessages.AbstractJavaLaunchConfigurationDelegate_The_specified_JRE_installation_does_not_exist_4, 
+					LaunchingMessages.AbstractJavaLaunchConfigurationDelegate_The_specified_JRE_installation_does_not_exist_4,
 					null,
-					IJavaLaunchConfigurationConstants.ERR_VM_INSTALL_DOES_NOT_EXIST); 
+					IJavaLaunchConfigurationConstants.ERR_VM_INSTALL_DOES_NOT_EXIST);
 		}
 		File location = vm.getInstallLocation();
 		if (location == null) {
 			abort(
 					NLS.bind(LaunchingMessages.AbstractJavaLaunchConfigurationDelegate_JRE_home_directory_not_specified_for__0__5, new String[]{vm.getName()}),
 					null,
-					IJavaLaunchConfigurationConstants.ERR_VM_INSTALL_DOES_NOT_EXIST); 
+					IJavaLaunchConfigurationConstants.ERR_VM_INSTALL_DOES_NOT_EXIST);
 		}
 		if (!location.exists()) {
 			abort(
-					NLS.bind(LaunchingMessages.AbstractJavaLaunchConfigurationDelegate_JRE_home_directory_for__0__does_not_exist___1__6, 
+					NLS.bind(LaunchingMessages.AbstractJavaLaunchConfigurationDelegate_JRE_home_directory_for__0__does_not_exist___1__6,
 									new String[]{vm.getName(),
 											location.getAbsolutePath()}),
 					null,
-					IJavaLaunchConfigurationConstants.ERR_VM_INSTALL_DOES_NOT_EXIST); 
+					IJavaLaunchConfigurationConstants.ERR_VM_INSTALL_DOES_NOT_EXIST);
 		}
 		return vm;
 	}
 	/**
 	 * Returns the VM connector identifier specified by the given launch
 	 * configuration, or <code>null</code> if none.
-	 * 
+	 *
 	 * @param configuration
 	 *            launch configuration
 	 * @return the VM connector identifier specified by the given launch
@@ -227,7 +227,7 @@
 	 * resolved strings. The returned array is <code>null</code> if all
 	 * entries are standard (i.e. appear by default), or empty to represent an
 	 * empty bootpath.
-	 * 
+	 *
 	 * @param configuration
 	 *            launch configuration
 	 * @return the bootpath specified by the given launch configuration. An
@@ -249,7 +249,7 @@
 		IRuntimeClasspathEntry[] entries = JavaRuntime
 				.computeUnresolvedRuntimeClasspath(configuration);
 		entries = JavaRuntime.resolveRuntimeClasspath(entries, configuration);
-		List<String> bootEntries = new ArrayList<String>(entries.length);
+		List<String> bootEntries = new ArrayList<>(entries.length);
 		boolean empty = true;
 		boolean allStandard = true;
 		for (int i = 0; i < entries.length; i++) {
@@ -280,7 +280,7 @@
 	 * part of the boot classpath -<code>null</code> represents the default
 	 * bootclasspath. The third array represents the classpath that should be
 	 * appended to the boot classpath.
-	 * 
+	 *
 	 * @param configuration
 	 *            launch configuration
 	 * @return a description of the boot classpath specified by the given launch
@@ -294,7 +294,7 @@
 		String[][] bootpathInfo = new String[3][];
 		IRuntimeClasspathEntry[] entries = JavaRuntime
 				.computeUnresolvedRuntimeClasspath(configuration);
-		List<IRuntimeClasspathEntry> bootEntriesPrepend = new ArrayList<IRuntimeClasspathEntry>();
+		List<IRuntimeClasspathEntry> bootEntriesPrepend = new ArrayList<>();
 		int index = 0;
 		IRuntimeClasspathEntry jreEntry = null;
 		while (jreEntry == null && index < entries.length) {
@@ -321,7 +321,7 @@
 			}
 		}
 		if (jreEntry != null) {
-			List<IRuntimeClasspathEntry> bootEntriesAppend = new ArrayList<IRuntimeClasspathEntry>();
+			List<IRuntimeClasspathEntry> bootEntriesAppend = new ArrayList<>();
 			for (; index < entries.length; index++) {
 				IRuntimeClasspathEntry entry = entries[index];
 				if (entry.getClasspathProperty() == IRuntimeClasspathEntry.BOOTSTRAP_CLASSES) {
@@ -347,11 +347,11 @@
 				// TODO: this test does not tell us if the bootpath entries are different (could still be
 				// the same, as a non-bootpath entry on the JRE may have been removed/added)
 				// We really need a way to ask a VM type for its default bootpath library locations and
-				// compare that to the resolved entries for the "jreEntry" to see if they 
+				// compare that to the resolved entries for the "jreEntry" to see if they
 				// are different (requires explicit bootpath)
 				if (!JRERuntimeClasspathEntryResolver.isSameArchives(libraryLocations, install.getVMInstallType().getDefaultLibraryLocations(install.getInstallLocation()))) {
 					// resolve bootpath entries in JRE entry
-					IRuntimeClasspathEntry[] bootEntries = null; 
+					IRuntimeClasspathEntry[] bootEntries = null;
 					if (jreEntry.getType() == IRuntimeClasspathEntry.CONTAINER) {
 						IRuntimeClasspathEntry bootEntry = JavaRuntime.newRuntimeContainerClasspathEntry(
 								jreEntry.getPath(),
@@ -361,7 +361,7 @@
 					} else {
 						bootEntries = JavaRuntime.resolveRuntimeClasspathEntry(jreEntry, configuration);
 					}
-					
+
 					// non-default JRE libraries - use explicit bootpath only
 					String[] bootpath = new String[bootEntriesPrep.length
 							+ bootEntries.length + bootEntriesApp.length];
@@ -397,7 +397,7 @@
 	 * classpath as specified by the given launch configuration, as an array of
 	 * resolved strings. The returned array is empty if no classpath is
 	 * specified.
-	 * 
+	 *
 	 * @param configuration
 	 *            launch configuration
 	 * @return the classpath specified by the given launch configuration,
@@ -410,8 +410,8 @@
 		IRuntimeClasspathEntry[] entries = JavaRuntime
 				.computeUnresolvedRuntimeClasspath(configuration);
 		entries = JavaRuntime.resolveRuntimeClasspath(entries, configuration);
-		List<String> userEntries = new ArrayList<String>(entries.length);
-		Set<String> set = new HashSet<String>(entries.length);
+		List<String> userEntries = new ArrayList<>(entries.length);
+		Set<String> set = new HashSet<>(entries.length);
 		for (int i = 0; i < entries.length; i++) {
 			if (entries[i].getClasspathProperty() == IRuntimeClasspathEntry.USER_CLASSES) {
 				String location = entries[i].getLocation();
@@ -428,7 +428,7 @@
 	/**
 	 * Returns the Java project specified by the given launch configuration, or
 	 * <code>null</code> if none.
-	 * 
+	 *
 	 * @param configuration
 	 *            launch configuration
 	 * @return the Java project specified by the given launch configuration, or
@@ -455,7 +455,7 @@
 	/**
 	 * Returns the Java project name specified by the given launch
 	 * configuration, or <code>null</code> if none.
-	 * 
+	 *
 	 * @param configuration
 	 *            launch configuration
 	 * @return the Java project name specified by the given launch
@@ -472,7 +472,7 @@
 	/**
 	 * Returns the main type name specified by the given launch configuration,
 	 * or <code>null</code> if none.
-	 * 
+	 *
 	 * @param configuration
 	 *            launch configuration
 	 * @return the main type name specified by the given launch configuration,
@@ -495,7 +495,7 @@
 	 * Returns the program arguments specified by the given launch
 	 * configuration, as a string. The returned string is empty if no program
 	 * arguments are specified.
-	 * 
+	 *
 	 * @param configuration
 	 *            launch configuration
 	 * @return the program arguments specified by the given launch
@@ -513,7 +513,7 @@
 	/**
 	 * Returns the VM arguments specified by the given launch configuration, as
 	 * a string. The returned string is empty if no VM arguments are specified.
-	 * 
+	 *
 	 * @param configuration
 	 *            launch configuration
 	 * @return the VM arguments specified by the given launch configuration,
@@ -547,7 +547,7 @@
 	/**
 	 * Returns the Map of VM-specific attributes specified by the given launch
 	 * configuration, or <code>null</code> if none.
-	 * 
+	 *
 	 * @param configuration
 	 *            launch configuration
 	 * @return the <code>Map</code> of VM-specific attributes
@@ -556,7 +556,7 @@
 	 */
 	public Map<String, Object> getVMSpecificAttributesMap(ILaunchConfiguration configuration) throws CoreException {
 		Map<String, String> map = configuration.getAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_INSTALL_TYPE_SPECIFIC_ATTRS_MAP,(Map<String, String>) null);
-		Map<String, Object> attributes = new HashMap<String, Object>();
+		Map<String, Object> attributes = new HashMap<>();
 		if(map != null) {
 			attributes.putAll(map);
 		}
@@ -578,7 +578,7 @@
 	/**
 	 * Returns the working directory specified by the given launch
 	 * configuration, or <code>null</code> if none.
-	 * 
+	 *
 	 * @param configuration
 	 *            launch configuration
 	 * @return the working directory specified by the given launch
@@ -593,7 +593,7 @@
 	/**
 	 * Returns the working directory path specified by the given launch
 	 * configuration, or <code>null</code> if none.
-	 * 
+	 *
 	 * @param configuration
 	 *            launch configuration
 	 * @return the working directory path specified by the given launch
@@ -616,7 +616,7 @@
 	/**
 	 * Verifies a Java project is specified by the given launch configuration,
 	 * and returns the Java project.
-	 * 
+	 *
 	 * @param configuration
 	 *            launch configuration
 	 * @return the Java project specified by the given launch configuration
@@ -629,23 +629,23 @@
 		String name = getJavaProjectName(configuration);
 		if (name == null) {
 			abort(
-					LaunchingMessages.AbstractJavaLaunchConfigurationDelegate_Java_project_not_specified_9, 
+					LaunchingMessages.AbstractJavaLaunchConfigurationDelegate_Java_project_not_specified_9,
 					null,
-					IJavaLaunchConfigurationConstants.ERR_UNSPECIFIED_PROJECT); 
+					IJavaLaunchConfigurationConstants.ERR_UNSPECIFIED_PROJECT);
 		}
 		IJavaProject project = getJavaProject(configuration);
 		if (project == null) {
 			abort(
-					LaunchingMessages.AbstractJavaLaunchConfigurationDelegate_Project_does_not_exist_or_is_not_a_Java_project_10, 
+					LaunchingMessages.AbstractJavaLaunchConfigurationDelegate_Project_does_not_exist_or_is_not_a_Java_project_10,
 					null,
-					IJavaLaunchConfigurationConstants.ERR_NOT_A_JAVA_PROJECT); 
+					IJavaLaunchConfigurationConstants.ERR_NOT_A_JAVA_PROJECT);
 		}
 		return project;
 	}
 	/**
 	 * Verifies a main type name is specified by the given launch configuration,
 	 * and returns the main type name.
-	 * 
+	 *
 	 * @param configuration
 	 *            launch configuration
 	 * @return the main type name specified by the given launch configuration
@@ -658,9 +658,9 @@
 		String name = getMainTypeName(configuration);
 		if (name == null) {
 			abort(
-					LaunchingMessages.AbstractJavaLaunchConfigurationDelegate_Main_type_not_specified_11, 
+					LaunchingMessages.AbstractJavaLaunchConfigurationDelegate_Main_type_not_specified_11,
 					null,
-					IJavaLaunchConfigurationConstants.ERR_UNSPECIFIED_MAIN_TYPE); 
+					IJavaLaunchConfigurationConstants.ERR_UNSPECIFIED_MAIN_TYPE);
 		}
 		return name;
 	}
@@ -668,7 +668,7 @@
 	 * Verifies the working directory specified by the given launch
 	 * configuration exists, and returns the working directory, or
 	 * <code>null</code> if none is specified.
-	 * 
+	 *
 	 * @param configuration
 	 *            launch configuration
 	 * @return the working directory specified by the given launch
@@ -685,10 +685,10 @@
 				if (!dir.isDirectory()) {
 					abort(
 							NLS.bind(
-									LaunchingMessages.AbstractJavaLaunchConfigurationDelegate_Working_directory_does_not_exist___0__12, 
+									LaunchingMessages.AbstractJavaLaunchConfigurationDelegate_Working_directory_does_not_exist___0__12,
 									new String[]{dir.toString()}),
 									null,
-									IJavaLaunchConfigurationConstants.ERR_WORKING_DIRECTORY_DOES_NOT_EXIST); 
+									IJavaLaunchConfigurationConstants.ERR_WORKING_DIRECTORY_DOES_NOT_EXIST);
 				}
 				return dir;
 			}
@@ -707,10 +707,10 @@
 				}
 				abort(
 					NLS.bind(
-									LaunchingMessages.AbstractJavaLaunchConfigurationDelegate_Working_directory_does_not_exist___0__12, 
+									LaunchingMessages.AbstractJavaLaunchConfigurationDelegate_Working_directory_does_not_exist___0__12,
 									new String[]{path.toString()}),
 					null,
-					IJavaLaunchConfigurationConstants.ERR_WORKING_DIRECTORY_DOES_NOT_EXIST); 
+					IJavaLaunchConfigurationConstants.ERR_WORKING_DIRECTORY_DOES_NOT_EXIST);
 			} else {
 				IResource res = ResourcesPlugin.getWorkspace().getRoot()
 						.findMember(path);
@@ -719,10 +719,10 @@
 				}
 				abort(
 					NLS.bind(
-									LaunchingMessages.AbstractJavaLaunchConfigurationDelegate_Working_directory_does_not_exist___0__12, 
+									LaunchingMessages.AbstractJavaLaunchConfigurationDelegate_Working_directory_does_not_exist___0__12,
 									new String[]{path.toString()}),
 					null,
-					IJavaLaunchConfigurationConstants.ERR_WORKING_DIRECTORY_DOES_NOT_EXIST); 
+					IJavaLaunchConfigurationConstants.ERR_WORKING_DIRECTORY_DOES_NOT_EXIST);
 			}
 		}
 		return null;
@@ -730,7 +730,7 @@
 	/**
 	 * Returns whether the given launch configuration specifies that termination
 	 * is allowed.
-	 * 
+	 *
 	 * @param configuration
 	 *            launch configuration
 	 * @return whether termination is allowed
@@ -745,7 +745,7 @@
 	/**
 	 * Returns whether the given launch configuration specifies that execution
 	 * should suspend on entry of the main method.
-	 * 
+	 *
 	 * @param configuration
 	 *            launch configuration
 	 * @return whether execution should suspend in main
@@ -762,7 +762,7 @@
 	 * Assigns a default source locator to the given launch if a source locator
 	 * has not yet been assigned to it, and the associated launch configuration
 	 * does not specify a source locator.
-	 * 
+	 *
 	 * @param launch
 	 *            launch object
 	 * @param configuration
@@ -787,7 +787,7 @@
 	 * Determines if the given launch configuration specifies the "stop-in-main"
 	 * attribute, and sets up an event listener to handle the option if
 	 * required.
-	 * 
+	 *
 	 * @param configuration
 	 *            configuration being launched
 	 * @exception CoreException
@@ -806,7 +806,7 @@
 	}
 	/**
 	 * Handles the "stop-in-main" option.
-	 * 
+	 *
 	 * @param events
 	 *            the debug events.
 	 * @see org.eclipse.debug.core.IDebugEventSetListener#handleDebugEvents(DebugEvent[])
@@ -827,7 +827,7 @@
 							if (isStopInMain(configuration)) {
 								String mainType = getMainTypeName(configuration);
 								if (mainType != null) {
-									Map<String, Object> map = new HashMap<String, Object>();
+									Map<String, Object> map = new HashMap<>();
 									map
 											.put(
 													IJavaLaunchConfigurationConstants.ATTR_STOP_IN_MAIN,
@@ -840,7 +840,7 @@
 													mainType, "main", //$NON-NLS-1$
 													"([Ljava/lang/String;)V", //$NON-NLS-1$
 													true, false, false, -1, -1,
-													-1, 1, false, map); 
+													-1, 1, false, map);
 									bp.setPersisted(false);
 									target.breakpointAdded(bp);
 									DebugPlugin.getDefault()
@@ -855,10 +855,10 @@
 			}
 		}
 	}
-	
+
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.LaunchConfigurationDelegate#getBuildOrder(org.eclipse.debug.core.ILaunchConfiguration,
 	 *      java.lang.String)
 	 */
@@ -869,7 +869,7 @@
 	}
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.LaunchConfigurationDelegate#getProjectsForProblemSearch(org.eclipse.debug.core.ILaunchConfiguration,
 	 *      java.lang.String)
 	 */
@@ -879,7 +879,7 @@
 			throws CoreException {
 		return fOrderedProjects;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.core.model.LaunchConfigurationDelegate#isLaunchProblem(org.eclipse.core.resources.IMarker)
 	 */
@@ -889,7 +889,7 @@
 	}
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see org.eclipse.debug.core.model.ILaunchConfigurationDelegate2#preLaunchCheck(org.eclipse.debug.core.ILaunchConfiguration,
 	 *      java.lang.String, org.eclipse.core.runtime.IProgressMonitor)
 	 */
@@ -898,7 +898,7 @@
 			String mode, IProgressMonitor monitor) throws CoreException {
 		// build project list
 		if (monitor != null) {
-			monitor.subTask(LaunchingMessages.AbstractJavaLaunchConfigurationDelegate_20); 
+			monitor.subTask(LaunchingMessages.AbstractJavaLaunchConfigurationDelegate_20);
 		}
 		fOrderedProjects = null;
 		IJavaProject javaProject = JavaRuntime.getJavaProject(configuration);
@@ -909,7 +909,7 @@
 		// do generic launch checks
 		return super.preLaunchCheck(configuration, mode, monitor);
 	}
-    
+
      /* (non-Javadoc)
      * @see org.eclipse.debug.core.model.LaunchConfigurationDelegate#getBreakpoints(org.eclipse.debug.core.ILaunchConfiguration)
      */
@@ -922,11 +922,11 @@
          }
          return breakpointManager.getBreakpoints(JDIDebugModel.getPluginIdentifier());
      }
-	
+
 	/**
 	 * Returns the VM runner for the given launch mode to use when launching the
 	 * given configuration.
-	 *  
+	 *
 	 * @param configuration launch configuration
 	 * @param mode launch node
 	 * @return VM runner to use when launching the given configuration in the given mode
@@ -937,29 +937,29 @@
 		IVMInstall vm = verifyVMInstall(configuration);
 		IVMRunner runner = vm.getVMRunner(mode);
 		if (runner == null) {
-			abort(NLS.bind(LaunchingMessages.JavaLocalApplicationLaunchConfigurationDelegate_0, new String[]{vm.getName(), mode}), null, IJavaLaunchConfigurationConstants.ERR_VM_RUNNER_DOES_NOT_EXIST); 
+			abort(NLS.bind(LaunchingMessages.JavaLocalApplicationLaunchConfigurationDelegate_0, new String[]{vm.getName(), mode}), null, IJavaLaunchConfigurationConstants.ERR_VM_RUNNER_DOES_NOT_EXIST);
 		}
 		return runner;
 	}
-	
-	/** 
+
+	/**
 	 * Returns an array of environment variables to be used when
 	 * launching the given configuration or <code>null</code> if unspecified.
-	 * 
+	 *
 	 * @param configuration launch configuration
 	 * @return an array of environment variables to use when launching the given configuration or null if unspecified
 	 * @throws CoreException if unable to access associated attribute or if
 	 * unable to resolve a variable in an environment variable's value
 	 * @since 3.1
-	 */	
+	 */
 	public String[] getEnvironment(ILaunchConfiguration configuration) throws CoreException {
 		return DebugPlugin.getDefault().getLaunchManager().getEnvironment(configuration);
 	}
-	
+
 	/**
 	 * Returns an array of paths to be used for the <code>java.library.path</code>
 	 * system property, or <code>null</code> if unspecified.
-	 * 
+	 *
 	 * @param configuration the config
 	 * @return an array of paths to be used for the <code>java.library.path</code>
 	 * system property, or <code>null</code>
@@ -976,11 +976,11 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Returns the default working directory for the given launch configuration,
 	 * or <code>null</code> if none. Subclasses may override as necessary.
-	 * 
+	 *
 	 * @param configuration the config
 	 * @return default working directory or <code>null</code> if none
 	 * @throws CoreException if an exception occurs computing the default working
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractVMInstall.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractVMInstall.java
index d90f55a..ddaa77a 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractVMInstall.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractVMInstall.java
@@ -64,17 +64,17 @@
 	 * Map VM specific attributes that are persisted restored with a VM install.
 	 * @since 3.4
 	 */
-	private Map<String, String> fAttributeMap = new HashMap<String, String>();
-	
+	private Map<String, String> fAttributeMap = new HashMap<>();
+
 	// system properties are cached in user preferences prefixed with this key, followed
 	// by VM type, VM id, and system property name
 	private static final String PREF_VM_INSTALL_SYSTEM_PROPERTY = "PREF_VM_INSTALL_SYSTEM_PROPERTY"; //$NON-NLS-1$
 	// whether change events should be fired
 	private boolean fNotify = true;
-	
+
 	/**
 	 * Constructs a new VM install.
-	 * 
+	 *
 	 * @param	type	The type of this VM install.
 	 * 					Must not be <code>null</code>
 	 * @param	id		The unique identifier of this VM instance
@@ -85,10 +85,10 @@
 	public AbstractVMInstall(IVMInstallType type, String id) {
 		if (type == null) {
 			throw new IllegalArgumentException(LaunchingMessages.vmInstall_assert_typeNotNull);
-		} 
+		}
 		if (id == null) {
 			throw new IllegalArgumentException(LaunchingMessages.vmInstall_assert_idNotNull);
-		} 
+		}
 		fType= type;
 		fId= id;
 	}
@@ -185,13 +185,13 @@
 		}
 		LibraryLocation[] newLocations = locations;
 		if (newLocations == null) {
-			newLocations = getVMInstallType().getDefaultLibraryLocations(getInstallLocation()); 
+			newLocations = getVMInstallType().getDefaultLibraryLocations(getInstallLocation());
 		}
 		LibraryLocation[] prevLocations = fSystemLibraryDescriptions;
 		if (prevLocations == null) {
-			prevLocations = getVMInstallType().getDefaultLibraryLocations(getInstallLocation()); 
+			prevLocations = getVMInstallType().getDefaultLibraryLocations(getInstallLocation());
 		}
-		
+
 		if (newLocations.length == prevLocations.length) {
 			int i = 0;
 			boolean equal = true;
@@ -208,7 +208,7 @@
 		PropertyChangeEvent event = new PropertyChangeEvent(this, IVMInstallChangedListener.PROPERTY_LIBRARY_LOCATIONS, prevLocations, newLocations);
 		fSystemLibraryDescriptions = locations;
 		if (fNotify) {
-			JavaRuntime.fireVMChanged(event);		
+			JavaRuntime.fireVMChanged(event);
 		}
 	}
 
@@ -234,8 +234,8 @@
 				return;
 			}
 		}
-		
-		PropertyChangeEvent event = new PropertyChangeEvent(this, IVMInstallChangedListener.PROPERTY_JAVADOC_LOCATION, fJavadocLocation, url);		
+
+		PropertyChangeEvent event = new PropertyChangeEvent(this, IVMInstallChangedListener.PROPERTY_JAVADOC_LOCATION, fJavadocLocation, url);
 		fJavadocLocation = url;
 		if (fNotify) {
 			JavaRuntime.fireVMChanged(event);
@@ -244,7 +244,7 @@
 
 	/**
 	 * Whether this VM should fire property change notifications.
-	 * 
+	 *
 	 * @param notify if this VM should fire property change notifications.
 	 * @since 2.1
 	 */
@@ -274,7 +274,7 @@
 	public int hashCode() {
 		return getVMInstallType().hashCode() + getId().hashCode();
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.IVMInstall#getDefaultVMArguments()
 	 * @since 3.0
@@ -288,7 +288,7 @@
 		ExecutionArguments ex = new ExecutionArguments(args, ""); //$NON-NLS-1$
 		return ex.getVMArgumentsArray();
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.IVMInstall#setDefaultVMArguments(java.lang.String[])
 	 * @since 3.0
@@ -307,7 +307,7 @@
 			setVMArgs(buf.toString().trim());
 		}
 	}
-	
+
     /* (non-Javadoc)
      * @see org.eclipse.jdt.launching.IVMInstall2#getVMArgs()
      */
@@ -315,7 +315,7 @@
 	public String getVMArgs() {
         return fVMArgs;
     }
-    
+
     /* (non-Javadoc)
      * @see org.eclipse.jdt.launching.IVMInstall2#setVMArgs(java.lang.String)
      */
@@ -333,10 +333,10 @@
         PropertyChangeEvent event = new PropertyChangeEvent(this, IVMInstallChangedListener.PROPERTY_VM_ARGUMENTS, fVMArgs, vmArgs);
         fVMArgs = vmArgs;
 		if (fNotify) {
-			JavaRuntime.fireVMChanged(event);		
+			JavaRuntime.fireVMChanged(event);
 		}
-    }	
-    
+    }
+
     /* (non-Javadoc)
      * Subclasses should override.
      * @see org.eclipse.jdt.launching.IVMInstall2#getJavaVersion()
@@ -345,7 +345,7 @@
 	public String getJavaVersion() {
         return null;
     }
-    
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.IVMInstall3#evaluateSystemProperties(java.lang.String[], org.eclipse.core.runtime.IProgressMonitor)
 	 */
@@ -355,10 +355,10 @@
 		if (monitor == null) {
 			monitor = new NullProgressMonitor();
 		}
-		Map<String, String> map = new HashMap<String, String>();
-		
+		Map<String, String> map = new HashMap<>();
+
 		// first check cache (preference store) to avoid launching VM
-		boolean cached = true; 
+		boolean cached = true;
 		IEclipsePreferences prefs = InstanceScope.INSTANCE.getNode(LaunchingPlugin.ID_PLUGIN);
 		if(prefs != null) {
 			for (int i = 0; i < properties.length; i++) {
@@ -374,7 +374,7 @@
 				}
 			}
 		}
-		if (!cached) {		
+		if (!cached) {
 			// launch VM to evaluate properties
 			File file = LaunchingPlugin.getFileInPlugin(new Path("lib/launchingsupport.jar")); //$NON-NLS-1$
 			if (file != null && file.exists()) {
@@ -401,9 +401,9 @@
 				try {
 					int total = 0;
 					int max = Platform.getPreferencesService().getInt(
-							LaunchingPlugin.ID_PLUGIN, 
-							JavaRuntime.PREF_CONNECT_TIMEOUT, 
-							JavaRuntime.DEF_CONNECT_TIMEOUT, 
+							LaunchingPlugin.ID_PLUGIN,
+							JavaRuntime.PREF_CONNECT_TIMEOUT,
+							JavaRuntime.DEF_CONNECT_TIMEOUT,
 							null);
 					while (!process.isTerminated()) {
 						try {
@@ -424,7 +424,7 @@
 				if (monitor.isCanceled()) {
 					return map;
 				}
-				
+
 				monitor.subTask(LaunchingMessages.AbstractVMInstall_3);
 				IStreamsProxy streamsProxy = process.getStreamsProxy();
 				String text = null;
@@ -449,7 +449,7 @@
 									map.put(name, value);
 								}
 							}
-						}			
+						}
 					} catch (SAXException e) {
 						String commandLine = process.getAttribute(IProcess.ATTR_CMDLINE);
 						abort(NLS.bind(LaunchingMessages.AbstractVMInstall_4, commandLine), e, IJavaLaunchConfigurationConstants.ERR_INTERNAL_ERROR);
@@ -481,7 +481,7 @@
 	/**
 	 * Generates a key used to cache system property for this VM in this plug-ins
 	 * preference store.
-	 * 
+	 *
 	 * @param property system property name
 	 * @return preference store key
 	 */
@@ -496,11 +496,11 @@
 		buffer.append(property);
 		return buffer.toString();
 	}
-	
+
 	/**
 	 * Throws a core exception with an error status object built from the given
 	 * message, lower level exception, and error code.
-	 * 
+	 *
 	 * @param message the status message
 	 * @param exception lower level exception associated with the error, or
 	 *            <code>null</code> if none
@@ -511,13 +511,13 @@
 	protected void abort(String message, Throwable exception, int code) throws CoreException {
 		throw new CoreException(new Status(IStatus.ERROR, LaunchingPlugin
 				.getUniqueIdentifier(), code, message, exception));
-	}	
-	
+	}
+
 	/**
 	 * Sets a VM specific attribute. Attributes are persisted and restored with VM installs.
 	 * Specifying a value of <code>null</code> as a value removes the attribute. Change
 	 * notification is provided to {@link IVMInstallChangedListener} for VM attributes.
-	 * 
+	 *
 	 * @param key attribute key, cannot be <code>null</code>
 	 * @param value attribute value or <code>null</code> to remove the attribute
 	 * @since 3.4
@@ -540,11 +540,11 @@
 			JavaRuntime.fireVMChanged(event);
 		}
 	}
-    
+
 	/**
-	 * Returns a VM specific attribute associated with the given key or <code>null</code> 
+	 * Returns a VM specific attribute associated with the given key or <code>null</code>
 	 * if none.
-	 * 
+	 *
 	 * @param key attribute key, cannot be <code>null</code>
 	 * @return attribute value, or <code>null</code> if none
 	 * @since 3.4
@@ -552,16 +552,16 @@
 	public String getAttribute(String key) {
 		return fAttributeMap.get(key);
 	}
-	
+
 	/**
 	 * Returns a map of VM specific attributes stored with this VM install. Keys
 	 * and values are strings. Modifying the map does not modify the attributes
 	 * associated with this VM install.
-	 * 
+	 *
 	 * @return map of VM attributes
 	 * @since 3.4
 	 */
 	public Map<String, String> getAttributes() {
-		return new HashMap<String, String>(fAttributeMap);
+		return new HashMap<>(fAttributeMap);
 	}
 }
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractVMInstallType.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractVMInstallType.java
index aba3884..15b90a1 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractVMInstallType.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractVMInstallType.java
@@ -38,7 +38,7 @@
 public abstract class AbstractVMInstallType implements IVMInstallType, IExecutableExtension {
 	private List<IVMInstall> fVMs;
 	private String fId;
-	
+
 	/**
 	 * Constructs a new VM install type.
 	 */
@@ -100,14 +100,14 @@
 	@Override
 	public synchronized IVMInstall createVMInstall(String id) throws IllegalArgumentException {
 		if (findVMInstall(id) != null) {
-			String format= LaunchingMessages.vmInstallType_duplicateVM; 
+			String format= LaunchingMessages.vmInstallType_duplicateVM;
 			throw new IllegalArgumentException(NLS.bind(format, new String[] { id }));
 		}
 		IVMInstall vm = doCreateVMInstall(id);
 		fVMs.add(vm);
 		return vm;
 	}
-	
+
 	/**
 	 * Subclasses should return a new instance of the appropriate
 	 * <code>IVMInstall</code> subclass from this method.
@@ -122,14 +122,14 @@
 	 * Initializes the id parameter from the "id" attribute
 	 * in the configuration markup.
 	 * Subclasses should not override this method.
-	 * @param config the configuration element used to trigger this execution. 
+	 * @param config the configuration element used to trigger this execution.
 	 *		It can be queried by the executable extension for specific
 	 *		configuration properties
 	 * @param propertyName the name of an attribute of the configuration element
 	 *		used on the <code>createExecutableExtension(String)</code> call. This
 	 *		argument can be used in the cases where a single configuration element
 	 *		is used to define multiple executable extensions.
-	 * @param data adapter data in the form of a <code>String</code>, 
+	 * @param data adapter data in the form of a <code>String</code>,
 	 *		a <code>Hashtable</code>, or <code>null</code>.
 	 * @see org.eclipse.core.runtime.IExecutableExtension#setInitializationData(org.eclipse.core.runtime.IConfigurationElement, java.lang.String, java.lang.Object)
 	 */
@@ -174,15 +174,15 @@
 	 * it has been added to the abstract base class that VM install types should
 	 * subclass.
 	 * </p>
-	 * 
+	 *
 	 * @param installLocation home location
 	 * @return default javadoc location or <code>null</code>
 	 * @since 2.1
 	 */
 	public URL getDefaultJavadocLocation(File installLocation) {
-		return null;		
+		return null;
 	}
-	
+
 	/**
 	 * Returns a string of default VM arguments for a VM installed at the
 	 * given home location, or <code>null</code> if none.
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractVMRunner.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractVMRunner.java
index de1dc8a..3c7dfff 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractVMRunner.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractVMRunner.java
@@ -42,7 +42,7 @@
 	/**
 	 * Throws a core exception with an error status object built from
 	 * the given message, lower level exception, and error code.
-	 * 
+	 *
 	 * @param message the status message
 	 * @param exception lower level exception associated with the
 	 *  error, or <code>null</code> if none
@@ -52,18 +52,18 @@
 	protected void abort(String message, Throwable exception, int code) throws CoreException {
 		throw new CoreException(new Status(IStatus.ERROR, getPluginIdentifier(), code, message, exception));
 	}
-	
+
 	/**
-	 * Returns the identifier of the plug-in this VM runner 
+	 * Returns the identifier of the plug-in this VM runner
 	 * originated from.
-	 * 
+	 *
 	 * @return plug-in identifier
 	 */
 	protected abstract String getPluginIdentifier();
-	
+
 	/**
 	 * Executes the given command line using the given working directory
-	 * 
+	 *
 	 * @param cmdLine the command line
 	 * @param workingDirectory the working directory
 	 * @return the {@link Process}
@@ -74,10 +74,10 @@
 		cmdLine = quoteWindowsArgs(cmdLine);
 		return DebugPlugin.exec(cmdLine, workingDirectory);
 	}
-	
+
 	/**
 	 * Executes the given command line using the given working directory and environment
-	 * 
+	 *
 	 * @param cmdLine the command line
 	 * @param workingDirectory the working directory
 	 * @param envp the environment
@@ -89,7 +89,7 @@
 	protected Process exec(String[] cmdLine, File workingDirectory, String[] envp) throws CoreException {
 		cmdLine = quoteWindowsArgs(cmdLine);
 		return DebugPlugin.exec(cmdLine, workingDirectory, envp);
-	}	
+	}
 
 	private static String[] quoteWindowsArgs(String[] cmdLine) {
 		// see https://bugs.eclipse.org/387504 , workaround for http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6511002
@@ -105,8 +105,8 @@
 		}
 		return cmdLine;
 	}
-	
-	
+
+
 	private static boolean needsQuoting(String s) {
 		int len = s.length();
 		if (len == 0) // empty string has to be quoted
@@ -129,10 +129,10 @@
 		s = s.replaceAll("([\\\\]*)\\z", "$1$1"); //$NON-NLS-1$ //$NON-NLS-2$
 		return "\"" + s + "\""; //$NON-NLS-1$ //$NON-NLS-2$
 	}
-	
+
 	/**
 	 * Returns the given array of strings as a single space-delimited string.
-	 * 
+	 *
 	 * @param cmdLine array of strings
 	 * @return a single space-delimited string
 	 */
@@ -140,22 +140,22 @@
 		StringBuffer buff= new StringBuffer();
 		for (int i = 0, numStrings= cmdLine.length; i < numStrings; i++) {
 			buff.append(cmdLine[i]);
-			buff.append(' ');	
-		} 
+			buff.append(' ');
+		}
 		return buff.toString().trim();
 	}
-	
+
 	/**
 	 * Returns the default process attribute map for Java processes.
-	 * 
+	 *
 	 * @return default process attribute map for Java processes
 	 */
 	protected Map<String, String> getDefaultProcessMap() {
-		Map<String, String> map = new HashMap<String, String>();
+		Map<String, String> map = new HashMap<>();
 		map.put(IProcess.ATTR_PROCESS_TYPE, IJavaLaunchConfigurationConstants.ID_JAVA_PROCESS_TYPE);
 		return map;
 	}
-	
+
 	/**
 	 * Returns a new process aborting if the process could not be created.
 	 * @param launch the launch the process is contained in
@@ -170,15 +170,15 @@
 		IProcess process= DebugPlugin.newProcess(launch, p, label, attributes);
 		if (process == null) {
 			p.destroy();
-			abort(LaunchingMessages.AbstractVMRunner_0, null, IJavaLaunchConfigurationConstants.ERR_INTERNAL_ERROR); 
+			abort(LaunchingMessages.AbstractVMRunner_0, null, IJavaLaunchConfigurationConstants.ERR_INTERNAL_ERROR);
 		}
 		return process;
 	}
-	
+
 	/**
 	 * Combines and returns VM arguments specified by the runner configuration,
 	 * with those specified by the VM install, if any.
-	 * 
+	 *
 	 * @param configuration runner configuration
 	 * @param vmInstall VM install
 	 * @return combined VM arguments specified by the runner configuration
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/ExecutionArguments.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/ExecutionArguments.java
index 0a5100f..1363ab3 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/ExecutionArguments.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/ExecutionArguments.java
@@ -15,7 +15,7 @@
 
 /**
  * The execution arguments for running a Java VM. The execution arguments are
- * separated into two parts: arguments to the VM itself, and arguments to the Java 
+ * separated into two parts: arguments to the VM itself, and arguments to the Java
  * main program. This class provides convenience methods for parsing a string
  * of arguments into separate components.
  * <p>
@@ -26,7 +26,7 @@
 public class ExecutionArguments {
 	private String fVMArgs;
 	private String fProgramArgs;
-		
+
 	/**
 	 * Creates a new execution arguments object.
 	 *
@@ -39,7 +39,7 @@
 		fVMArgs= vmArgs;
 		fProgramArgs= programArgs;
 	}
-	
+
 	/**
 	 * Returns the VM arguments as one string.
 	 *
@@ -48,7 +48,7 @@
 	public String getVMArguments() {
 		return fVMArgs;
 	}
-	
+
 	/**
 	 * Returns the program arguments as one string.
 	 *
@@ -57,7 +57,7 @@
 	public String getProgramArguments() {
 		return fProgramArgs;
 	}
-	
+
 	/**
 	 * Returns the VM arguments as an array of individual arguments.
 	 *
@@ -66,7 +66,7 @@
 	public String[] getVMArgumentsArray() {
 		return DebugPlugin.parseArguments(fVMArgs);
 	}
-	
+
 	/**
 	 * Returns the program arguments as an array of individual arguments.
 	 *
@@ -74,6 +74,6 @@
 	 */
 	public String[] getProgramArgumentsArray() {
 		return DebugPlugin.parseArguments(fProgramArgs);
-	}	
-			
+	}
+
 }
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IJavaLaunchConfigurationConstants.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IJavaLaunchConfigurationConstants.java
index bc8e121..e471ffc 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IJavaLaunchConfigurationConstants.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IJavaLaunchConfigurationConstants.java
@@ -12,7 +12,7 @@
 
 import org.eclipse.jdt.internal.launching.LaunchingPlugin;
 
- 
+
 /**
  * Constant definitions for Java launch configurations.
  * <p>
@@ -29,40 +29,40 @@
 	 * (value <code>"org.eclipse.jdt.launching.localJavaApplication"</code>).
 	 */
 	public static final String ID_JAVA_APPLICATION = LaunchingPlugin.getUniqueIdentifier() + ".localJavaApplication"; //$NON-NLS-1$
-	
+
 	/**
 	 * Identifier for the Remote Java Application launch configuration type
 	 * (value <code>"org.eclipse.jdt.launching.remoteJavaApplication"</code>).
 	 */
-	public static final String ID_REMOTE_JAVA_APPLICATION = LaunchingPlugin.getUniqueIdentifier() + ".remoteJavaApplication"; //$NON-NLS-1$	
+	public static final String ID_REMOTE_JAVA_APPLICATION = LaunchingPlugin.getUniqueIdentifier() + ".remoteJavaApplication"; //$NON-NLS-1$
 
 	/**
 	 * Identifier for the Java Applet launch configuration type
 	 * (value <code>"org.eclipse.jdt.launching.javaApplet"</code>).
 	 */
-	public static final String ID_JAVA_APPLET = LaunchingPlugin.getUniqueIdentifier() + ".javaApplet"; //$NON-NLS-1$	
+	public static final String ID_JAVA_APPLET = LaunchingPlugin.getUniqueIdentifier() + ".javaApplet"; //$NON-NLS-1$
 
 	/**
 	 * Identifier for the standard Socket Attaching VM connector
 	 * (value <code>"org.eclipse.jdt.launching.socketAttachConnector"</code>).
 	 */
-	public static final String ID_SOCKET_ATTACH_VM_CONNECTOR = LaunchingPlugin.getUniqueIdentifier() + ".socketAttachConnector"; //$NON-NLS-1$	
-	
+	public static final String ID_SOCKET_ATTACH_VM_CONNECTOR = LaunchingPlugin.getUniqueIdentifier() + ".socketAttachConnector"; //$NON-NLS-1$
+
 	/**
 	 * Identifier for the standard Socket Listening VM connector
 	 * (value <code>"org.eclipse.jdt.launching.socketListenConnector"</code>).
 	 * @since 3.4
 	 */
 	public static final String ID_SOCKET_LISTEN_VM_CONNECTOR = LaunchingPlugin.getUniqueIdentifier() + ".socketListenConnector"; //$NON-NLS-1$
-	
+
 	/**
 	 * Identifier for the java process type, which is annotated on processes created
 	 * by the local java application launch delegate.
-	 * 
+	 *
 	 * (value <code>"java"</code>).
 	 */
-	public static final String ID_JAVA_PROCESS_TYPE = "java"; //$NON-NLS-1$ 
-			
+	public static final String ID_JAVA_PROCESS_TYPE = "java"; //$NON-NLS-1$
+
 	/**
 	 * Launch configuration attribute key. The value is a name of
 	 * a Java project associated with a Java launch configuration.
@@ -72,36 +72,36 @@
 	 * @see org.eclipse.jdt.internal.debug.core.model.JDIDebugTarget#prepareBreakpointsSearchScope()
 	 */
 	public static final String ATTR_PROJECT_NAME = LaunchingPlugin.getUniqueIdentifier() + ".PROJECT_ATTR"; //$NON-NLS-1$
-	
+
 	/**
 	 * Launch configuration attribute key. The value is a fully qualified name
 	 * of a main type to launch.
 	 */
 	public static final String ATTR_MAIN_TYPE_NAME = LaunchingPlugin.getUniqueIdentifier() + ".MAIN_TYPE";	 //$NON-NLS-1$
-		
+
 	/**
 	 * Launch configuration attribute key. The value is a boolean specifying
 	 * whether execution should stop when main is entered. The default value
 	 * is <code>false</code>.
-	 * 
+	 *
 	 * @since 2.1
 	 */
 	public static final String ATTR_STOP_IN_MAIN = LaunchingPlugin.getUniqueIdentifier() + ".STOP_IN_MAIN";	 //$NON-NLS-1$
-	
+
 	/**
 	 * Launch configuration attribute key. The value is a string specifying
 	 * program arguments for a Java launch configuration, as they should appear
 	 * on the command line.
 	 */
 	public static final String ATTR_PROGRAM_ARGUMENTS = LaunchingPlugin.getUniqueIdentifier() + ".PROGRAM_ARGUMENTS"; //$NON-NLS-1$
-	
+
 	/**
 	 * Launch configuration attribute key. The value is a string specifying
 	 * VM arguments for a Java launch configuration, as they should appear
 	 * on the command line.
 	 */
 	public static final String ATTR_VM_ARGUMENTS = LaunchingPlugin.getUniqueIdentifier() + ".VM_ARGUMENTS";	 //$NON-NLS-1$
-	
+
 	/**
 	 * Launch configuration attribute key. The value is a string specifying a
 	 * path to the working directory to use when launching a local VM.
@@ -113,7 +113,7 @@
 	 * process.
 	 */
 	public static final String ATTR_WORKING_DIRECTORY = LaunchingPlugin.getUniqueIdentifier() + ".WORKING_DIRECTORY";	 //$NON-NLS-1$
-	
+
 	/**
 	 * Launch configuration attribute key. The value is a path identifying the JRE used
 	 * when launching a local VM. The path is a classpath container corresponding
@@ -127,30 +127,30 @@
 	 * @since 3.2
 	 */
 	public static final String ATTR_JRE_CONTAINER_PATH = JavaRuntime.JRE_CONTAINER;
-	
+
 	/**
 	 * Launch configuration attribute key. The value is a name of a VM install
 	 * to use when launching a local VM. This attribute must be qualified
 	 * by a VM install type, via the <code>ATTR_VM_INSTALL_TYPE</code>
 	 * attribute. When unspecified, the default VM is used.
-	 * 
+	 *
 	 * @deprecated use <code>ATTR_JRE_CONTAINER_PATH</code>
 	 */
 	@Deprecated
 	public static final String ATTR_VM_INSTALL_NAME = LaunchingPlugin.getUniqueIdentifier() + ".VM_INSTALL_NAME"; //$NON-NLS-1$
-		
+
 	/**
 	 * Launch configuration attribute key. The value is an identifier of
-	 * a VM install type. Used in conjunction with a VM install name, to 
+	 * a VM install type. Used in conjunction with a VM install name, to
 	 * specify the VM to use when launching a local Java application.
 	 * The associated VM install name is specified via the attribute
 	 * <code>ATTR_VM_INSTALL_NAME</code>.
-	 * 
+	 *
 	 * @deprecated use <code>ATTR_JRE_CONTAINER_PATH</code>
 	 */
 	@Deprecated
 	public static final String ATTR_VM_INSTALL_TYPE = LaunchingPlugin.getUniqueIdentifier() + ".VM_INSTALL_TYPE_ID"; //$NON-NLS-1$
-	
+
 	/**
 	 * Launch configuration attribute key. The value is a Map of attributes specific
 	 * to a particular VM install type, used when launching a local Java
@@ -159,14 +159,14 @@
 	 * and are limited to String keys and values.
 	 */
 	public static final String ATTR_VM_INSTALL_TYPE_SPECIFIC_ATTRS_MAP = LaunchingPlugin.getUniqueIdentifier() + "VM_INSTALL_TYPE_SPECIFIC_ATTRS_MAP"; //$NON-NLS-1$
-	
+
 	/**
 	 * Launch configuration attribute key. The value is an identifier of
 	 * a VM connector, specifying a connector to use when attaching to
 	 * a remote VM.
 	 */
 	public static final String ATTR_VM_CONNECTOR= LaunchingPlugin.getUniqueIdentifier() + ".VM_CONNECTOR_ID"; //$NON-NLS-1$
-		
+
 	/**
 	 * Launch configuration attribute key. The attribute value is an ordered list of strings
 	 * which are mementos for runtime class path entries. When unspecified, a default
@@ -174,7 +174,7 @@
 	 * configuration (via the <code>ATTR_CLASSPATH_PROVIDER</code> attribute).
 	 */
 	public static final String ATTR_CLASSPATH = LaunchingPlugin.getUniqueIdentifier() + ".CLASSPATH";	 //$NON-NLS-1$
-	
+
 	/**
 	 * Launch configuration attribute key. The value is a boolean specifying
 	 * whether a default classpath should be used when launching a local
@@ -196,7 +196,7 @@
 	 * provider is used - <code>StandardClasspathProvider</code>.
 	 */
 	public static final String ATTR_CLASSPATH_PROVIDER = LaunchingPlugin.getUniqueIdentifier() + ".CLASSPATH_PROVIDER";	 //$NON-NLS-1$
-	
+
 	/**
 	 * Launch configuration attribute key. The value is an ordered list of
 	 * strings which are mementos for associated runtime classpath entries
@@ -206,7 +206,7 @@
 	 * <code>ATTR_SOURCE_PATH_PROVIDER</code> attribute).
 	 */
 	public static final String ATTR_SOURCE_PATH = LaunchingPlugin.getUniqueIdentifier() + ".SOURCE_PATH";	 //$NON-NLS-1$
-		
+
 	/**
 	 * Launch configuration attribute key. The value is a boolean specifying
 	 * whether a default source lookup path should be used. When
@@ -224,14 +224,14 @@
 	 * path provider is used - <code>StandardSourcePathProvider</code>.
 	 */
 	public static final String ATTR_SOURCE_PATH_PROVIDER = LaunchingPlugin.getUniqueIdentifier() + ".SOURCE_PATH_PROVIDER";	 //$NON-NLS-1$
-			
+
 	/**
 	 * Launch configuration attribute key. The value is a boolean, indicating
 	 * whether a VM will support/allow the terminate action.
 	 * This attribute is used for remote debugging.
 	 */
 	public static final String ATTR_ALLOW_TERMINATE = LaunchingPlugin.getUniqueIdentifier() + ".ALLOW_TERMINATE";	 //$NON-NLS-1$
-	
+
 	/**
 	 * Attribute key for VM specific attributes found in the
 	 * <code>ATTR_VM_INSTALL_TYPE_SPECIFIC_ATTRS_MAP</code>. The value is a String,
@@ -240,18 +240,18 @@
 	public static final String ATTR_JAVA_COMMAND = LaunchingPlugin.getUniqueIdentifier() + ".JAVA_COMMAND";	 //$NON-NLS-1$
 
 	/**
-	 * Launch configuration attribute key. The value is 
+	 * Launch configuration attribute key. The value is
 	 * a map. Keys in the map correspond to arguments names
 	 * returned by <code>IVMConnector#getDefaultArguments()</code>.
 	 * Values are strings corresponding to the values to use when
 	 * establishing a connection to a remote VM.
 	 */
 	public static final String ATTR_CONNECT_MAP = LaunchingPlugin.getUniqueIdentifier() + ".CONNECT_MAP";	 //$NON-NLS-1$
-	
+
 	/**
 	 * Launch configuration attribute key. The value is an integer
 	 * indicating the width of the applet viewing area.
-	 * 
+	 *
 	 * @since 2.1
 	 */
 	public static final String ATTR_APPLET_WIDTH = LaunchingPlugin.getUniqueIdentifier() + ".APPLET_WIDTH";	 //$NON-NLS-1$
@@ -259,7 +259,7 @@
 	/**
 	 * Launch configuration attribute key. The value is an integer
 	 * indicating the height of the applet viewing area.
-	 * 
+	 *
 	 * @since 2.1
 	 */
 	public static final String ATTR_APPLET_HEIGHT = LaunchingPlugin.getUniqueIdentifier() + ".APPLET_HEIGHT";	 //$NON-NLS-1$
@@ -267,7 +267,7 @@
 	/**
 	 * Launch configuration attribute key. The value is a String indicating the
 	 * HTML name of the applet.
-	 * 
+	 *
 	 * @since 2.1
 	 */
 	public static final String ATTR_APPLET_NAME = LaunchingPlugin.getUniqueIdentifier() + ".APPLET_NAME";	 //$NON-NLS-1$
@@ -276,7 +276,7 @@
 	 * Launch configuration attribute key. The value is a Map. Keys in the map
 	 * represent applet parameter names and the values in the map are the
 	 * corresponding parameter values
-	 * 
+	 *
 	 * @since 2.1
 	 */
 	public static final String ATTR_APPLET_PARAMETERS = LaunchingPlugin.getUniqueIdentifier() + ".APPLET_PARAMETERS";	 //$NON-NLS-1$
@@ -284,19 +284,19 @@
 	/**
 	 * Launch configuration attribute key. The value is a String indicating the
 	 * fully qualified name of the applet viewer utility class to use.
-	 * 
+	 *
 	 * @since 2.1
 	 */
 	public static final String ATTR_APPLET_APPLETVIEWER_CLASS = LaunchingPlugin.getUniqueIdentifier() + ".APPLET_APPLETVIEWER_CLASS";	 //$NON-NLS-1$
-	
+
 	/**
 	 * Attribute key for a VM specific argument. Value is an array
 	 * of strings describing paths in the local file system that
 	 * should be prepended to the bootpath, or <code>null</code>
 	 * if none. The value is computed dynamically at launch time
-	 * and placed in the VM specific arguments map by the Java 
+	 * and placed in the VM specific arguments map by the Java
 	 * application launch delegate.
-	 * 
+	 *
 	 * @since 3.0
 	 */
 	public static final String ATTR_BOOTPATH_PREPEND = LaunchingPlugin.getUniqueIdentifier() + ".-Xbootclasspath/p:";	 //$NON-NLS-1$
@@ -306,30 +306,30 @@
 	 * of strings describing paths in the local file system that
 	 * should be placed on the bootpath explicitly, or <code>null</code>
 	 * if none. The value is computed dynamically at launch time
-	 * and placed in the VM specific arguments map by the Java 
+	 * and placed in the VM specific arguments map by the Java
 	 * application launch delegate.
-	 * 
+	 *
 	 * @since 3.0
 	 */
 	public static final String ATTR_BOOTPATH = LaunchingPlugin.getUniqueIdentifier() + ".-Xbootclasspath:";	 //$NON-NLS-1$
-	
+
 	/**
 	 * Attribute key for a VM specific argument. Value is an array
 	 * of strings describing paths in the local file system that
 	 * should be appended to the bootpath, or <code>null</code>
 	 * if none. The value is computed dynamically at launch time
-	 * and placed in the VM specific arguments map by the Java 
+	 * and placed in the VM specific arguments map by the Java
 	 * application launch delegate.
-	 * 
+	 *
 	 * @since 3.0
-	 */	
+	 */
 	public static final String ATTR_BOOTPATH_APPEND = LaunchingPlugin.getUniqueIdentifier() + ".-Xbootclasspath/a:";	 //$NON-NLS-1$
 
 	/**
 	 * Attribute key for a Mac OSX VM-specific argument. Value is a boolean
-	 * indicating if the <code>-XStartOnFirstThread</code> argument should be used 
+	 * indicating if the <code>-XStartOnFirstThread</code> argument should be used
 	 * when launching.
-	 * 
+	 *
 	 * @since 3.7
 	 */
 	public static final String ATTR_USE_START_ON_FIRST_THREAD = LaunchingPlugin.getUniqueIdentifier() + ".ATTR_USE_START_ON_FIRST_THREAD"; //$NON-NLS-1$
@@ -337,20 +337,20 @@
 	 * Status code indicating a launch configuration does not
 	 * specify a project when a project is required.
 	 */
-	public static final int ERR_UNSPECIFIED_PROJECT = 100;	
-		
+	public static final int ERR_UNSPECIFIED_PROJECT = 100;
+
 	/**
 	 * Status code indicating a launch configuration does not
 	 * specify a main type to launch.
 	 */
-	public static final int ERR_UNSPECIFIED_MAIN_TYPE = 101;	
-		
+	public static final int ERR_UNSPECIFIED_MAIN_TYPE = 101;
+
 	/**
 	 * Status code indicating a launch configuration does not
 	 * specify a VM Install Type.
 	 */
 	public static final int ERR_UNSPECIFIED_VM_INSTALL_TYPE = 102;
-	
+
 	/**
 	 * Status code indicating a launch configuration does not
 	 * specify a VM Install
@@ -362,31 +362,31 @@
 	 * type could not be found.
 	 */
 	public static final int ERR_VM_INSTALL_TYPE_DOES_NOT_EXIST = 104;
-		
+
 	/**
 	 * Status code indicating a launch configuration's VM install
 	 * could not be found.
 	 */
 	public static final int ERR_VM_INSTALL_DOES_NOT_EXIST = 105;
-	
+
 	/**
 	 * Status code indicating a VM runner could not be located
 	 * for the VM install specified by a launch configuration.
 	 */
-	public static final int ERR_VM_RUNNER_DOES_NOT_EXIST = 106;	
-	
+	public static final int ERR_VM_RUNNER_DOES_NOT_EXIST = 106;
+
 	/**
 	 * Status code indicating the project associated with
 	 * a launch configuration is not a Java project.
 	 */
-	public static final int ERR_NOT_A_JAVA_PROJECT = 107;	
-	
+	public static final int ERR_NOT_A_JAVA_PROJECT = 107;
+
 	/**
 	 * Status code indicating the specified working directory
 	 * does not exist.
 	 */
-	public static final int ERR_WORKING_DIRECTORY_DOES_NOT_EXIST = 108;	
-		
+	public static final int ERR_WORKING_DIRECTORY_DOES_NOT_EXIST = 108;
+
 	/**
 	 * Status code indicating a launch configuration does not
 	 * specify a host name value
@@ -423,7 +423,7 @@
 	 * connector could not be found.
 	 */
 	public static final int ERR_SHARED_MEMORY_CONNECTOR_UNAVAILABLE = 114;
-	
+
 	/**
 	 * Status code indicating that the Eclipse runtime does not support
 	 * launching a program with a working directory. This feature is only
@@ -434,15 +434,15 @@
 	 * should be relaunched with the default working directory.
 	 * </p>
 	 */
-	public static final int ERR_WORKING_DIRECTORY_NOT_SUPPORTED = 115;	
-	
+	public static final int ERR_WORKING_DIRECTORY_NOT_SUPPORTED = 115;
+
 	/**
 	 * Status code indicating that an error occurred launching a VM.
 	 * The status error message is the text that
 	 * the VM wrote to standard error before exiting.
 	 */
-	public static final int ERR_VM_LAUNCH_ERROR = 116;	
-	
+	public static final int ERR_VM_LAUNCH_ERROR = 116;
+
 	/**
 	 * Status code indicating that a timeout has occurred waiting for
 	 * the VM to connect with the debugger.
@@ -453,74 +453,74 @@
 	 * timeout period.
 	 * </p>
 	 */
-	public static final int ERR_VM_CONNECT_TIMEOUT = 117;	
-	
+	public static final int ERR_VM_CONNECT_TIMEOUT = 117;
+
 	/**
 	 * Status code indicating that a free socket was not available to
 	 * communicate with the VM.
 	 */
-	public static final int ERR_NO_SOCKET_AVAILABLE = 118;		
-	
+	public static final int ERR_NO_SOCKET_AVAILABLE = 118;
+
 	/**
 	 * Status code indicating that the JDI connector required for a
 	 * debug launch was not available.
 	 */
-	public static final int ERR_CONNECTOR_NOT_AVAILABLE = 119;	
-	
+	public static final int ERR_CONNECTOR_NOT_AVAILABLE = 119;
+
 	/**
 	 * Status code indicating that the debugger failed to connect
 	 * to the VM.
 	 */
-	public static final int ERR_CONNECTION_FAILED = 120;		
+	public static final int ERR_CONNECTION_FAILED = 120;
 
 	/**
 	 * Status code indicating that the applet launcher was asked to
 	 * launch a resource that did not extend <code>java.applet.Applet</code>.
-	 * 
+	 *
 	 * @since 2.1
 	 */
-	public static final int ERR_NOT_AN_APPLET = 121;		
+	public static final int ERR_NOT_AN_APPLET = 121;
 
 	/**
 	 * Status code indicating that no launch configuration was specified.
-	 * 
+	 *
 	 * @since 2.1
 	 */
-	public static final int ERR_UNSPECIFIED_LAUNCH_CONFIG = 122;		
+	public static final int ERR_UNSPECIFIED_LAUNCH_CONFIG = 122;
 
 	/**
 	 * Status code indicating that the .html file used to initiate an applet
 	 * launch could not be built.
-	 * 
+	 *
 	 * @since 2.1
 	 */
-	public static final int ERR_COULD_NOT_BUILD_HTML = 123;		
-	
+	public static final int ERR_COULD_NOT_BUILD_HTML = 123;
+
 	/**
 	 * Status code indicating that the project referenced by a launch configuration
 	 * is closed.
-	 * 
+	 *
 	 * @since 3.0
 	 */
-	public static final int ERR_PROJECT_CLOSED = 124;			
+	public static final int ERR_PROJECT_CLOSED = 124;
 
 	/**
 	 * Status code indicating an unexpected internal error.
 	 */
-	public static final int ERR_INTERNAL_ERROR = 150;		
+	public static final int ERR_INTERNAL_ERROR = 150;
 
 	/**
 	 * Default value for the 'ATTR_APPLET_APPLETVIEWER' attribute.
-	 * 
+	 *
 	 * @since 2.1
-	 */	
+	 */
 	public static final String DEFAULT_APPLETVIEWER_CLASS = "sun.applet.AppletViewer";	 //$NON-NLS-1$
-	
-	
+
+
 	/**
 	 * Detail code for a custom debug event that is fired when a remote debug configuration with
 	 * a standard socket listen connector is ready to accept connections from a remote VM.
-	 * 
+	 *
 	 * @since 3.4
 	 * @see org.eclipse.jdt.internal.launching.SocketListenConnector
 	 * @see org.eclipse.jdt.internal.launching.SocketListenConnectorProcess
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/ILibraryLocationResolver.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/ILibraryLocationResolver.java
index 5dc75cf..92f7f56 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/ILibraryLocationResolver.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/ILibraryLocationResolver.java
@@ -17,51 +17,51 @@
 import org.eclipse.core.runtime.Path;
 
 /**
- * This resolver allows contributors to provide {@link LibraryLocation} information for 
- * non-standard JRE / JDK libraries. 
+ * This resolver allows contributors to provide {@link LibraryLocation} information for
+ * non-standard JRE / JDK libraries.
  * <br><br>
- * For example this resolver could be used to provide 
+ * For example this resolver could be used to provide
  * Javadoc and source locations for jars in the <code>/ext</code> location of a JRE / JDK
- * 
+ *
  * @see JavaRuntime#EXTENSION_POINT_LIBRARY_LOCATION_RESOLVERS
- * 
+ *
  * @since 3.7
  */
 public interface ILibraryLocationResolver {
 
 	/**
-	 * Returns the path inside the <code>source</code> zip file where packages names begin, must not be 
+	 * Returns the path inside the <code>source</code> zip file where packages names begin, must not be
 	 * <code>null</code> - use {@link Path#EMPTY}
 	 * <br><br>
-	 * For example, if the source for <code>java.lang.Object</code> source is found at <code>src/java/lang/Object.java</code> in the zip file, the package root 
+	 * For example, if the source for <code>java.lang.Object</code> source is found at <code>src/java/lang/Object.java</code> in the zip file, the package root
 	 * would be <code>src</code>.
-	 * 
+	 *
 	 * @param libraryPath the path to the library
 	 * @return the {@link IPath} to the root of the source or the empty path, never <code>null</code>
 	 */
 	public IPath getPackageRoot(IPath libraryPath);
-	
+
 	/**
 	 * Returns the {@link IPath} of the <code>zip</code> or <code>jar</code> file containing the sources for <code>library</code>.
 	 * <br><br>
 	 * Must not be <code>null</code> - use {@link Path#EMPTY}
-	 * 
+	 *
 	 * @param libraryPath the path to the library, must not be <code>null</code>
 	 * @return the {@link IPath} to the source or the empty path, never <code>null</code>
 	 */
 	public IPath getSourcePath(IPath libraryPath);
-	
+
 	/**
 	 * Returns the {@link URL} of the Javadoc for this library or <code>null</code>
-	 * 
+	 *
 	 * @param libraryPath the path to the library, must not be <code>null</code>
 	 * @return the Javadoc {@link URL} or <code>null</code>
 	 */
 	public URL getJavadocLocation(IPath libraryPath);
-	
+
 	/**
 	 * Returns the {@link URL} of the index for the given library or <code>null</code>.
-	 * 
+	 *
 	 * @param libraryPath the path to the library, must not be <code>null</code>
 	 * @return the index {@link URL} or <code>null</code>
 	 */
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IRuntimeClasspathEntry.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IRuntimeClasspathEntry.java
index 498d76a..165632b 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IRuntimeClasspathEntry.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IRuntimeClasspathEntry.java
@@ -7,7 +7,7 @@
  *
  * Contributors:
  *     IBM Corporation - initial API and implementation
- *     Frits Jalvingh - Contribution for Bug 459831 - [launching] Support attaching 
+ *     Frits Jalvingh - Contribution for Bug 459831 - [launching] Support attaching
  *     	external annotations to a JRE container
  *******************************************************************************/
 package org.eclipse.jdt.launching;
@@ -29,7 +29,7 @@
  * 	<li>An archive (type <code>ARCHIVE</code>) - an archive refers to a jar, zip, or
  * 		folder in the workspace or in the local file system containing class
  * 		files. An archive may have attached source.</li>
- * 	<li>A variable (type <code>VARIABLE</code>) - a variable refers to a 
+ * 	<li>A variable (type <code>VARIABLE</code>) - a variable refers to a
  * 		classpath variable, which may refer to a jar.</li>
  * 	<li>A library (type <code>CONTAINER</code>) - a container refers to classpath
  * 		container variable which refers to a collection of archives derived
@@ -50,51 +50,51 @@
  * @noextend This interface is not intended to be extended by clients.
  */
 public interface IRuntimeClasspathEntry {
-	
+
 	/**
 	 * Type identifier for project entries.
 	 */
 	public static final int PROJECT = 1;
-	
+
 	/**
 	 * Type identifier for archive entries.
 	 */
-	public static final int ARCHIVE = 2;	
-		
+	public static final int ARCHIVE = 2;
+
 	/**
 	 * Type identifier for variable entries.
 	 */
 	public static final int VARIABLE = 3;
-	
+
 	/**
 	 * Type identifier for container entries.
 	 */
 	public static final int CONTAINER = 4;
-	
+
 	/**
 	 * Type identifier for contributed entries.
 	 * @since 3.0
 	 */
-	public static final int OTHER = 5;	
+	public static final int OTHER = 5;
 
 	/**
 	 * Classpath property identifier for entries that appear on the
 	 * bootstrap path by default.
 	 */
-	public static final int STANDARD_CLASSES = 1;	
-	
+	public static final int STANDARD_CLASSES = 1;
+
 	/**
 	 * Classpath property identifier for entries that should appear on the
 	 * bootstrap path explicitly.
 	 */
-	public static final int BOOTSTRAP_CLASSES = 2;	
-		
+	public static final int BOOTSTRAP_CLASSES = 2;
+
 	/**
 	 * Classpath property identifier for entries that should appear on the
 	 * user classpath.
 	 */
-	public static final int USER_CLASSES = 3;	
-	
+	public static final int USER_CLASSES = 3;
+
 	/**
 	 * Returns this classpath entry's type. The type of a runtime classpath entry is
 	 * identified by one of the following constants:
@@ -111,7 +111,7 @@
 	 * @return this classpath entry's type
 	 */
 	public int getType();
-	
+
 	/**
 	 * Returns a memento for this classpath entry.
 	 * <p>
@@ -131,15 +131,15 @@
 	 * point <code>org.eclipse.jdt.launching.runtimeClasspathEntries</code>.
 	 * The <code>memento</code> element will be used to initialize a
 	 * restored runtime classpath entry, via the method
-	 * <code>IRuntimeClasspathEntry2.initializeFrom(Element memento)</code>. The 
+	 * <code>IRuntimeClasspathEntry2.initializeFrom(Element memento)</code>. The
 	 * attributes of the <code>memento</code> element are client defined.
 	 * </p>
-	 * 
+	 *
 	 * @return a memento for this classpath entry
 	 * @exception CoreException if an exception occurs generating a memento
 	 */
 	public String getMemento() throws CoreException;
-	
+
 	/**
 	 * Returns the path associated with this entry, or <code>null</code>
 	 * if none. The format of the
@@ -162,16 +162,16 @@
 	 * @see org.eclipse.jdt.core.IClasspathEntry#getPath()
 	 */
 	public IPath getPath();
-		
+
 	/**
 	 * Returns the resource associated with this entry, or <code>null</code>
 	 * if none. A project, archive, or folder entry may be associated
 	 * with a resource.
-	 * 
+	 *
 	 * @return the resource associated with this entry, or <code>null</code>
-	 */ 
+	 */
 	public IResource getResource();
-	
+
 	/**
 	 * Returns the path to the source archive associated with this
 	 * entry, or <code>null</code> if this classpath entry has no
@@ -180,7 +180,7 @@
 	 * Only archive and variable entries may have source attachments.
 	 * For archive entries, the path (if present) locates a source
 	 * archive. For variable entries, the path (if present) has
-	 * an analogous form and meaning as the variable path, namely the first segment 
+	 * an analogous form and meaning as the variable path, namely the first segment
 	 * is the name of a classpath variable.
 	 * </p>
 	 *
@@ -207,19 +207,19 @@
 	 * @param path the path to the source archive, or <code>null</code> if none
 	 */
 	public void setSourceAttachmentPath(IPath path);
-	
+
 	/**
 	 * Returns the path within the source archive where package fragments
 	 * are located. An empty path indicates that packages are located at
 	 * the root of the source archive. Returns a non-<code>null</code> value
-	 * if and only if <code>getSourceAttachmentPath</code> returns 
+	 * if and only if <code>getSourceAttachmentPath</code> returns
 	 * a non-<code>null</code> value.
 	 *
 	 * @return root path within the source archive, or <code>null</code> if
 	 *    not applicable
 	 */
 	public IPath getSourceAttachmentRootPath();
-	
+
 	/**
 	 * Sets the path within the source archive where package fragments
 	 * are located. A root path indicates that packages are located at
@@ -229,32 +229,32 @@
 	 * Note that an empty path (<code>Path.EMPTY</code>) is considered
 	 * <code>null</code>.
 	 * </p>
-	 * 
+	 *
 	 * @param path root path within the source archive, or <code>null</code>
-	 */	
+	 */
 	public void setSourceAttachmentRootPath(IPath path);
-	
+
 	/**
-	 * Returns the path to the external annotations file or directory, or <code>null</code> 
+	 * Returns the path to the external annotations file or directory, or <code>null</code>
 	 * if no external annotations are associated with this classpath entry.
-	 * 
+	 *
 	 * @since 3.8
-	 * @return The path to the external annotations file or directory, or <code>null</code> 
+	 * @return The path to the external annotations file or directory, or <code>null</code>
 	 * 		if not present.
 	 */
 	public IPath getExternalAnnotationsPath();
 
 	/**
 	 * Sets the path to the external annotations file or directory. It should be set to
-	 * <code>null</code> if no annotations are associated with this entry. 
-	 * 
+	 * <code>null</code> if no annotations are associated with this entry.
+	 *
 	 * @since 3.8
 	 * @param path The file or directory holding external annotations.
 	 */
 	public void setExternalAnnotationsPath(IPath path);
 
 	/**
-	 * Returns a constant indicating where this entry should appear on the 
+	 * Returns a constant indicating where this entry should appear on the
 	 * runtime classpath by default.
 	 * The value returned is one of the following:
 	 * <ul>
@@ -265,11 +265,11 @@
 	 * <li><code>USER_CLASSES</code> - a user entry should appear on the path
 	 * 		containing user or application classes</li>
 	 * </ul>
-	 * 
+	 *
 	 * @return where this entry should appear on the runtime classpath
 	 */
 	public int getClasspathProperty();
-	
+
 	/**
 	 * Sets whether this entry should appear on the bootstrap classpath,
 	 * the user classpath, or whether this entry is a standard bootstrap entry
@@ -283,47 +283,47 @@
 	 * <li><code>USER_CLASSES</code> - a user entry should appear on the path
 	 * 		conatining user or application classes</li>
 	 * </ul>
-	 * 
+	 *
 	 * @param location a classpat property constant
 	 */
-	public void setClasspathProperty(int location);	
-	
+	public void setClasspathProperty(int location);
+
 	/**
 	 * Returns an absolute path in the local file system for this entry,
 	 * or <code>null</code> if none, or if this entry is of type <code>CONTAINER</code>.
-	 * 
+	 *
 	 * @return an absolute path in the local file system for this entry,
 	 *  or <code>null</code> if none
 	 */
 	public String getLocation();
-		
+
 	/**
 	 * Returns an absolute path in the local file system for the source
 	 * attachment associated with this entry entry, or <code>null</code> if none.
-	 * 
+	 *
 	 * @return an absolute path in the local file system for the source
 	 *  attachment associated with this entry entry, or <code>null</code> if none
 	 */
-	public String getSourceAttachmentLocation();	
-	
+	public String getSourceAttachmentLocation();
+
 	/**
 	 * Returns a path relative to this entry's source attachment path for the
 	 * root location containing source, or <code>null</code> if none.
-	 * 
+	 *
 	 * @return a path relative to this entry's source attachment path for the
 	 *  root location containing source, or <code>null</code> if none
 	 */
-	public String getSourceAttachmentRootLocation();		
-	
+	public String getSourceAttachmentRootLocation();
+
 	/**
 	 * Returns the first segment of the path associated with this entry, or <code>null</code>
 	 * if this entry is not of type <code>VARIABLE</code> or <code>CONTAINER</code>.
-	 * 
+	 *
 	 * @return the first segment of the path associated with this entry, or <code>null</code>
 	 *  if this entry is not of type <code>VARIABLE</code> or <code>CONTAINER</code>
 	 */
 	public String getVariableName();
-	
+
 	/**
 	 * Returns a classpath entry equivalent to this runtime classpath entry,
 	 * or <code>null</code> if none.
@@ -335,13 +335,13 @@
 	 * @since 2.1
 	 */
 	public IClasspathEntry getClasspathEntry();
-	
+
 	/**
 	 * Returns the Java project associated with this runtime classpath entry
 	 * or <code>null</code> if none. Runtime classpath entries of type
 	 * <code>CONTAINER</code> may be associated with a project for the
-	 * purposes of resolving the entries in a container. 
-	 * 
+	 * purposes of resolving the entries in a container.
+	 *
 	 * @return the Java project associated with this runtime classpath entry
 	 * or <code>null</code> if none
 	 * @since 3.0
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IRuntimeClasspathEntry2.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IRuntimeClasspathEntry2.java
index 5592c5b..ad33f57 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IRuntimeClasspathEntry2.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IRuntimeClasspathEntry2.java
@@ -23,55 +23,55 @@
  * New types of runtime classpath entries are only intended to be contributed
  * by the Java debugger.
  * </p>
- * @since 3.0 
+ * @since 3.0
  * @see org.eclipse.jdt.launching.IRuntimeClasspathEntry
  * @noimplement This interface is not intended to be implemented by clients.
  * @noextend This interface is not intended to be extended by clients.
  */
 public interface IRuntimeClasspathEntry2 extends IRuntimeClasspathEntry {
-	
+
 	/**
 	 * Initializes this runtime classpath entry from the given memento.
-	 * 
+	 *
 	 * @param memento memento created by a classpath entry of the same type
 	 * @throws CoreException if unable to initialize from the given memento
 	 */
 	public void initializeFrom(Element memento) throws CoreException;
-	
+
 	/**
 	 * Returns the unique identifier of the extension that contributed
 	 * this classpath entry type, or <code>null</code> if this classpath
 	 * entry type was not contributed.
-	 * 
+	 *
 	 * @return the unique identifier of the extension that contributed
 	 *  this classpath entry type, or <code>null</code> if this classpath
 	 *  entry type was not contributed
 	 */
 	public String getTypeId();
-	
+
 	/**
 	 * Returns whether this classpath entry is composed of other entries.
-	 * 
+	 *
 	 * @return whether this classpath entry is composed of other entries
 	 */
 	public boolean isComposite();
-	
+
 	/**
 	 * Returns the classpath entries this entry is composed of, or an
 	 * empty collection if this entry is not a composite entry.
-	 * 
+	 *
 	 * @param configuration the context (launch configuration) in which
 	 *  this runtime classpath entry is being queried for contained
-	 * 	entries, possibly <code>null</code> 
+	 * 	entries, possibly <code>null</code>
 	 * @return the classpath entries this entry is composed of, or an
 	 * empty collection if this entry is not a composite entry
 	 * @throws CoreException if unable to retrieve contained entries
 	 */
 	public IRuntimeClasspathEntry[] getRuntimeClasspathEntries(ILaunchConfiguration configuration) throws CoreException;
-	
+
 	/**
 	 * Returns a human readable name for this classpath entry.
-	 * 
+	 *
 	 * @return a human readable name for this classpath entry
 	 */
 	public String getName();
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IRuntimeClasspathEntryResolver.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IRuntimeClasspathEntryResolver.java
index cb86a99..95a86f9 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IRuntimeClasspathEntryResolver.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IRuntimeClasspathEntryResolver.java
@@ -31,7 +31,7 @@
  * resolver extension.
  * <pre>
  * &lt;extension point="org.eclipse.jdt.launching.runtimeClasspathEntryResolvers"&gt;
- *   &lt;runtimeClasspathEntryResolver 
+ *   &lt;runtimeClasspathEntryResolver
  *      id="com.example.ExampleResolver"
  *      class="com.example.ExampleResolverImpl"
  *      variable="VAR_NAME"
@@ -58,37 +58,37 @@
  * @since 2.0
  */
 public interface IRuntimeClasspathEntryResolver {
-	
+
 	/**
 	 * Returns resolved runtime classpath entries for the given runtime classpath entry,
 	 * in the context of the given launch configuration.
-	 * 
+	 *
 	 * @param entry runtime classpath entry to resolve, of type
 	 * 	<code>VARIABLE</code> or <code>CONTAINTER</code>
 	 * @param configuration the context in which the runtime classpath entry
 	 * 	needs to be resolved
 	 * @return resolved entries (zero or more)
-	 * @exception CoreException if unable to resolve the entry  
+	 * @exception CoreException if unable to resolve the entry
 	 */
 	public IRuntimeClasspathEntry[] resolveRuntimeClasspathEntry(IRuntimeClasspathEntry entry, ILaunchConfiguration configuration) throws CoreException;
-	
+
 	/**
 	 * Returns resolved runtime classpath entries for the given runtime classpath entry,
 	 * in the context of the given Java project.
-	 * 
+	 *
 	 * @param entry runtime classpath entry to resolve, of type
 	 * 	<code>VARIABLE</code> or <code>CONTAINTER</code>
 	 * @param project context in which the runtime classpath entry
 	 * 	needs to be resolved
 	 * @return resolved entries (zero or more)
-	 * @exception CoreException if unable to resolve the entry  
+	 * @exception CoreException if unable to resolve the entry
 	 */
-	public IRuntimeClasspathEntry[] resolveRuntimeClasspathEntry(IRuntimeClasspathEntry entry, IJavaProject project) throws CoreException;	
-	
+	public IRuntimeClasspathEntry[] resolveRuntimeClasspathEntry(IRuntimeClasspathEntry entry, IJavaProject project) throws CoreException;
+
 	/**
 	 * Returns a VM install associated with the given classpath entry,
 	 * or <code>null</code> if none.
-	 * 
+	 *
 	 * @param entry classpath entry
 	 * @return vm install associated with entry or <code>null</code> if none
 	 * @exception CoreException if unable to resolve a VM
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IRuntimeClasspathEntryResolver2.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IRuntimeClasspathEntryResolver2.java
index 6e2b65f..4b5a486 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IRuntimeClasspathEntryResolver2.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IRuntimeClasspathEntryResolver2.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -21,10 +21,10 @@
  * @since 3.2
  */
 public interface IRuntimeClasspathEntryResolver2 extends IRuntimeClasspathEntryResolver {
-	
+
 	/**
 	 * Returns whether the given classpath entry references a VM install.
-	 * 
+	 *
 	 * @param entry classpath entry
 	 * @return whether the given classpath entry references a VM install
 	 */
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IRuntimeClasspathProvider.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IRuntimeClasspathProvider.java
index cf65c70..e416023 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IRuntimeClasspathProvider.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IRuntimeClasspathProvider.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -17,7 +17,7 @@
 /**
  * A classpath provider computes an unresolved classpath for a launch
  * configuration, and resolves classpath entries for a launch configuration.
- * A classpath provider is defined as an extension of type 
+ * A classpath provider is defined as an extension of type
  * <code>org.eclipse.jdt.launching.classpathProviders</code>.
  * <p>
  * A provider is registered with an identifier that can be
@@ -34,7 +34,7 @@
  * extension.
  * <pre>
  * &lt;extension point="org.eclipse.jdt.launching.classpathProviders"&gt;
- *   &lt;classpathProvider&gt; 
+ *   &lt;classpathProvider&gt;
  *      id="com.example.ExampleClasspathProvider"
  *      class="com.example.ExampleClasspathProviderImpl"
  *   &lt;/classpathProvider&gt;
@@ -42,7 +42,7 @@
  * </pre>
  * The attributes are specified as follows:
  * <ul>
- * <li><code>id</code> specifies a unique identifier for this extension. This 
+ * <li><code>id</code> specifies a unique identifier for this extension. This
  * 	identifier may be used to reference a provider on one of the launch
  *  configuration attributes mentioned above.</li>
  * <li><code>class</code> specifies the fully qualified name of the Java class
@@ -52,27 +52,27 @@
  * <p>
  * Clients may implement this interface.
  * </p>
- * 
+ *
  * @since 2.0
  */
 public interface IRuntimeClasspathProvider {
-	
+
 	/**
 	 * Computes and returns an unresolved classpath for the given launch configuration.
 	 * Variable and container entries are not resolved.
-	 * 
+	 *
 	 * @param configuration launch configuration
 	 * @return unresolved path
 	 * @exception CoreException if unable to compute a path
 	 */
 	public IRuntimeClasspathEntry[] computeUnresolvedClasspath(ILaunchConfiguration configuration) throws CoreException;
-	
+
 	/**
 	 * Returns the resolved path corresponding to the given path, in the context of the
 	 * given launch configuration. Variable and container entries are resolved. The returned
 	 * (resolved) path need not have the same number of entries as the given (unresolved)
 	 * path.
-	 * 
+	 *
 	 * @param entries entries to resolve
 	 * @param configuration launch configuration context to resolve in
 	 * @return resolved path
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IRuntimeContainerComparator.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IRuntimeContainerComparator.java
index b181bbf..1da291f 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IRuntimeContainerComparator.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IRuntimeContainerComparator.java
@@ -18,23 +18,23 @@
  * classpath. If an <code>IClasspathContianer</code> implements this interface,
  * the <code>isDuplicate</code> method is used to determine if containers are
  * duplicates/redundant. Otherwise, containers with the same identifier are
- * considered duplicates. 
- * 
+ * considered duplicates.
+ *
  * @since 2.0.1
  * @deprecated support has been added to <code>ClasspathContainerInitializer</code>
  *  to handle comparison of classpath containers. Use
  *  <code>ClasspathContainerInitializer.getComparisonID(IPath,IJavaProject)</code>.
  *  When a classpath container implements this interface, this interface is
  *  used to determine equality before using the support defined in
- *  <code>ClasspathContainerInitializer</code>. 
+ *  <code>ClasspathContainerInitializer</code>.
  */
 @Deprecated
 public interface IRuntimeContainerComparator {
-	
+
 	/**
 	 * Returns whether this container is a duplicate of the container
 	 * identified by the given path.
-	 * 
+	 *
 	 * @param containerPath the container to compare against
 	 * @return whether this container is a duplicate of the container
 	 * identified by the given path
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IVMConnector.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IVMConnector.java
index 2e12867..7042cfe 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IVMConnector.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IVMConnector.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.jdt.launching;
 
- 
+
 import java.util.List;
 import java.util.Map;
 
@@ -29,7 +29,7 @@
  * Following is an example definition of a VM connector extension.
  * <pre>
  * &lt;extension point="org.eclipse.jdt.launching.vmConnectors"&gt;
- *   &lt;vmConnector 
+ *   &lt;vmConnector
  *      id="com.example.VMConnector"
  *      class="com.example.VMConnectorClass"
  *   &lt;/vmConnector&gt;
@@ -46,12 +46,12 @@
  */
 
 public interface IVMConnector {
-	
+
 	/**
 	 * Establishes a JDI connection with a debuggable VM using the arguments
 	 * specified in the given map, contributing results (debug targets and processes),
 	 * to the given launch.
-	 * 
+	 *
 	 * @param arguments Argument map to use in establishing a connection. The keys of
 	 * 	the map are strings corresponding to the names of arguments returned by this
 	 * 	connector's <code>getDefaultAgruments()</code> method. The values of the map
@@ -62,40 +62,40 @@
 	 * @exception CoreException if unable to establish a connection with the target VM
 	 */
 	public void connect(Map<String, String> arguments, IProgressMonitor monitor, ILaunch launch) throws CoreException;
-		
+
 	/**
 	 * Returns the name of this connector.
-	 * 
+	 *
 	 * @return the name of this connector
 	 */
 	public String getName();
-	
+
 	/**
 	 * Returns a unique identifier for this kind of connector.
-	 * 
+	 *
 	 * @return a unique identifier for this kind of connector
 	 */
 	public String getIdentifier();
-	
+
 	/**
-	 * Returns a map of default arguments used by this connector. 
+	 * Returns a map of default arguments used by this connector.
 	 * The keys of the map are names of arguments used by this
 	 * connector, and the values are of type
 	 * <code>com.sun.jdi.connect.Connector.Argument</code>.
-	 * 
+	 *
 	 * @return argument map with default values
 	 * @exception CoreException if unable to retrieve a default argument map
 	 */
 	public Map<String, Connector.Argument> getDefaultArguments() throws CoreException;
-	
+
 	/**
 	 * Returns a list of argument names found in this connector's
 	 * default argument map, defining the order in which arguments
 	 * should be presented to the user. Since a map is not ordered,
-	 * this provides control on how arguments will be presented to 
+	 * this provides control on how arguments will be presented to
 	 * the user.
-	 * 
+	 *
 	 * @return list of argument names
 	 */
-	public List<String> getArgumentOrder();	
+	public List<String> getArgumentOrder();
 }
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IVMInstall.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IVMInstall.java
index 8de1eb9..f5a4c82 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IVMInstall.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IVMInstall.java
@@ -17,7 +17,7 @@
 /**
  * Represents a particular installation of a VM. A VM instance holds all parameters
  * specific to a VM installation. Unlike VM types, VM instances can be created and
- * configured dynamically at run-time. This is typically done by the user 
+ * configured dynamically at run-time. This is typically done by the user
  * interactively in the UI.
  * <p>
  * A VM install is responsible for creating VM runners to launch a Java program
@@ -37,7 +37,7 @@
 public interface IVMInstall {
 	/**
 	 * Returns a VM runner that runs this installed VM in the given mode.
-	 * 
+	 *
 	 * @param mode the mode the VM should be launched in; one of the constants
 	 *   declared in <code>org.eclipse.debug.core.ILaunchManager</code>
 	 * @return 	a VMRunner for a given mode May return <code>null</code> if the given mode
@@ -46,60 +46,60 @@
 	 */
 	IVMRunner getVMRunner(String mode);
 	/**
-	 * Returns the id for this VM. VM IDs are unique within the VMs 
+	 * Returns the id for this VM. VM IDs are unique within the VMs
 	 * of a given VM type. The VM id is not intended to be presented to users.
-	 * 
+	 *
 	 * @return the VM identifier. Must not return <code>null</code>.
 	 */
 	String getId();
 	/**
 	 * Returns the display name of this VM.
 	 * The VM name is intended to be presented to users.
-	 * 
+	 *
 	 * @return the display name of this VM. May return <code>null</code>.
 	 */
 	String getName();
 	/**
 	 * Sets the display name of this VM.
 	 * The VM name is intended to be presented to users.
-	 * 
+	 *
 	 * @param name the display name of this VM
 	 */
 	void setName(String name);
 	/**
 	 * Returns the root directory of the install location of this VM.
-	 * 
+	 *
 	 * @return the root directory of this VM installation. May
 	 * 			return <code>null</code>.
 	 */
 	File getInstallLocation();
 	/**
 	 * Sets the root directory of the install location of this VM.
-	 * 
+	 *
 	 * @param installLocation the root directory of this VM installation
 	 */
 	void setInstallLocation(File installLocation);
-		
+
 	/**
 	 * Returns the VM type of this VM.
-	 * 
+	 *
 	 * @return the VM type that created this IVMInstall instance
 	 */
 	IVMInstallType getVMInstallType();
-	
+
 	/**
 	 * Returns the library locations of this IVMInstall. Generally,
 	 * clients should use <code>JavaRuntime.getLibraryLocations(IVMInstall)</code>
 	 * to determine the libraries associated with this VM install.
-	 * 
+	 *
 	 * @see IVMInstall#setLibraryLocations(LibraryLocation[])
 	 * @return 	The library locations of this IVMInstall.
 	 * 			Returns <code>null</code> to indicate that this VM install uses
 	 * 			the default library locations associated with this VM's install type.
 	 * @since 2.0
 	 */
-	LibraryLocation[] getLibraryLocations();	
-	
+	LibraryLocation[] getLibraryLocations();
+
 	/**
 	 * Sets the library locations of this IVMInstall.
 	 * @param	locations The <code>LibraryLocation</code>s to associate
@@ -108,44 +108,44 @@
 	 * 			the default library locations associated with this VM's install type.
 	 * @since 2.0
 	 */
-	void setLibraryLocations(LibraryLocation[] locations);	
-	
+	void setLibraryLocations(LibraryLocation[] locations);
+
 	/**
 	 * Sets the Javadoc location associated with this VM install.
-	 * 
+	 *
 	 * @param url a url pointing to the Javadoc location associated with
 	 * 	this VM install
 	 * @since 2.0
 	 */
 	public void setJavadocLocation(URL url);
-	
+
 	/**
 	 * Returns the Javadoc location associated with this VM install.
-	 * 
+	 *
 	 * @return a url pointing to the Javadoc location associated with
 	 * 	this VM install, or <code>null</code> if none
 	 * @since 2.0
 	 */
 	public URL getJavadocLocation();
-	
+
 	/**
 	 * Returns VM arguments to be used with this vm install whenever this
 	 * VM is launched as they should be passed to the command line, or
 	 * <code>null</code> if none.
-	 * 
+	 *
 	 * @return VM arguments to be used with this vm install whenever this
 	 * VM is launched as they should be passed to the command line, or
 	 * <code>null</code> if none
 	 * @since 3.0
 	 */
 	public String[] getVMArguments();
-	
+
 	/**
 	 * Sets VM arguments to be used with this vm install whenever this
 	 * VM is launched, possibly <code>null</code>. This is equivalent
 	 * to <code>setVMArgs(String)</code> with whitespace character delimited
-	 * arguments.  
-	 * 
+	 * arguments.
+	 *
 	 * @param vmArgs VM arguments to be used with this vm install whenever this
 	 * VM is launched, possibly <code>null</code>
 	 * @since 3.0
@@ -154,5 +154,5 @@
 	 */
 	@Deprecated
 	public void setVMArguments(String[] vmArgs);
-	    
+
 }
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IVMInstall2.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IVMInstall2.java
index b9d68a2..25dff4d 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IVMInstall2.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IVMInstall2.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -17,14 +17,14 @@
  * {@link org.eclipse.jdt.launching.IVMInstall}.
  * <p>
  * When an <code>IVMInstall</code> implements this interface,
- * clients must call <code>getVMArgs()</code> in place of 
+ * clients must call <code>getVMArgs()</code> in place of
  * <code>getVMArguments()</code> and <code>setVMArgs(String)</code> in place of
  * <code>setVMArguments(String[])</code>. This avoids the problem noted
  * in bug 73493.
  * </p>
  * <p>
  * Additionally, this interface optionally provides the Java version
- * associated with a VM install. 
+ * associated with a VM install.
  * </p>
  * <p>
  * Clients that implement {@link org.eclipse.jdt.launching.IVMInstall} may additionally
@@ -35,29 +35,29 @@
  * @since 3.1
  */
 public interface IVMInstall2 {
-	
+
 	/**
 	 * Returns VM arguments to be used with this vm install whenever this
 	 * VM is launched as a raw string, or <code>null</code> if none.
-	 * 
+	 *
 	 * @return VM arguments to be used with this vm install whenever this
 	 * VM is launched as a raw string, or <code>null</code> if none
-	 */	
+	 */
 	public String getVMArgs();
-	
+
 	/**
 	 * Sets VM arguments to be used with this vm install whenever this
 	 * VM is launched as a raw string, possibly <code>null</code>.
-	 * 
+	 *
 	 * @param vmArgs VM arguments to be used with this vm install whenever this
 	 * VM is launched as a raw string, possibly <code>null</code>
 	 */
 	public void setVMArgs(String vmArgs);
-    
+
     /**
      * Returns a string representing the <code>java.version</code> system property
      * of this VM install, or <code>null</code> if unknown.
-     * 
+     *
      * @return a string representing the <code>java.version</code> system property
      * of this VM install, or <code>null</code> if unknown.
      */
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IVMInstall3.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IVMInstall3.java
index aa5cec1..696fa36 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IVMInstall3.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IVMInstall3.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -32,7 +32,7 @@
 	/**
 	 * Evaluates the specified system properties in this VM, returning the result
 	 * as a map of property names to property values.
-	 * 
+	 *
 	 * @param properties the property names to evaluate, for example <code>{"user.home"}</code>
 	 * @param monitor progress monitor or <code>null</code>
 	 * @return map of system property names to associated property values
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IVMInstallChangedListener.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IVMInstallChangedListener.java
index 0fad3d9..b93c119 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IVMInstallChangedListener.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IVMInstallChangedListener.java
@@ -4,13 +4,13 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jdt.launching;
 
- 
+
 import org.eclipse.jdt.internal.launching.LaunchingPlugin;
 
 /**
@@ -24,7 +24,7 @@
  * @since 2.0
  */
 public interface IVMInstallChangedListener {
-	
+
 	/**
 	 * Property constant indicating the library locations associated
 	 * with a VM install have changed.
@@ -36,13 +36,13 @@
 	 * with a VM install has changed.
 	 */
 	public static final String PROPERTY_NAME = LaunchingPlugin.getUniqueIdentifier() + ".PROPERTY_NAME"; //$NON-NLS-1$
-	
+
 	/**
 	 * Property constant indicating the install location of
 	 * a VM install has changed.
 	 */
 	public static final String PROPERTY_INSTALL_LOCATION = LaunchingPlugin.getUniqueIdentifier() + ".PROPERTY_INSTALL_LOCATION";	 //$NON-NLS-1$
-			
+
 	/**
 	 * Property constant indicating the Javadoc location associated
 	 * with a VM install has changed.
@@ -52,7 +52,7 @@
 	/**
 	 * Property constant indicating the VM arguments associated
 	 * with a VM install has changed.
-     * 
+     *
      * @since 3.2
 	 */
 	public static final String PROPERTY_VM_ARGUMENTS = LaunchingPlugin.getUniqueIdentifier() + ".PROPERTY_VM_ARGUMENTS"; //$NON-NLS-1$
@@ -60,34 +60,34 @@
 	/**
 	 * Notification that the workspace default VM install
 	 * has changed.
-	 * 
+	 *
 	 * @param previous the VM install that was previously assigned
 	 * 	to the workspace, possibly <code>null</code>
 	 * @param current the VM install that is currently assigned to the
 	 * 	workspace, possibly <code>null</code>
 	 */
 	public void defaultVMInstallChanged(IVMInstall previous, IVMInstall current);
-	
+
 	/**
 	 * Notification that a property of a VM install has changed.
-	 * 
+	 *
 	 * @param event event describing the change. The VM that has changed
 	 * 	is the source object associated with the event.
 	 */
-	public void vmChanged(PropertyChangeEvent event);	
-	
+	public void vmChanged(PropertyChangeEvent event);
+
 	/**
 	 * Notification that a VM has been created.
-	 * 
+	 *
 	 * @param vm the vm that has been created
 	 */
-	public void vmAdded(IVMInstall vm);		
-	
+	public void vmAdded(IVMInstall vm);
+
 	/**
 	 * Notification that a VM has been disposed.
-	 * 
+	 *
 	 * @param vm the vm that has been disposed
 	 */
-	public void vmRemoved(IVMInstall vm);			
-	
+	public void vmRemoved(IVMInstall vm);
+
 }
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IVMInstallType.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IVMInstallType.java
index 78794f3..f158b70 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IVMInstallType.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IVMInstallType.java
@@ -18,86 +18,86 @@
 /**
  * Represents a particular type of VM for which there may be
  * any number of VM installations. An example of a VM type
- * is the standard JRE which might have instances corresponding 
+ * is the standard JRE which might have instances corresponding
  * to different installed versions such as JRE 1.2.2 and
  * JRE 1.3.
  * <p>
  * This interface is intended to be implemented by clients that contribute
  * to the <code>"org.eclipse.jdt.launching.vmInstallTypes"</code> extension point.
  * </p>
- * 
+ *
  * @see	IVMInstall
  */
 public interface IVMInstallType {
 	/**
 	 * Creates a new instance of this VM Install type.
 	 * The newly created IVMInstall is managed by this IVMInstallType.
-	 * 
+	 *
 	 * @param	id	An id String that must be unique within this IVMInstallType.
-	 * 
+	 *
 	 * @return the newly created VM instance
-	 * 
+	 *
 	 * @throws	IllegalArgumentException	If the id exists already.
 	 */
 	IVMInstall createVMInstall(String id);
 	/**
 	 * Finds the VM with the given id.
-	 * 
+	 *
 	 * @param id the VM id
 	 * @return a VM instance, or <code>null</code> if not found
 	 */
 	IVMInstall findVMInstall(String id);
 	/**
 	 * Finds the VM with the given name.
-	 * 
+	 *
 	 * @param name the VM name
 	 * @return a VM instance, or <code>null</code> if not found
 	 * @since 2.0
 	 */
-	IVMInstall findVMInstallByName(String name);	
-	
+	IVMInstall findVMInstallByName(String name);
+
 	/**
 	 * Remove the VM associated with the given id from the set of VMs managed by
 	 * this VM type. Has no effect if a VM with the given id is not currently managed
 	 * by this type.
 	 * A VM install that is disposed may not be used anymore.
-	 * 
+	 *
 	 * @param id the id of the VM to be disposed.
 	 */
 	void disposeVMInstall(String id);
 	/**
 	 * Returns all VM instances managed by this VM type.
-	 * 
+	 *
 	 * @return the list of VM instances managed by this VM type
 	 */
 	IVMInstall[] getVMInstalls();
 	/**
 	 * Returns the display name of this VM type.
-	 * 
+	 *
 	 * @return the name of this IVMInstallType
-	 */ 
+	 */
 	String getName();
-	
+
 	/**
 	 * Returns the globally unique id of this VM type.
 	 * Clients are responsible for providing a unique id.
-	 * 
+	 *
 	 * @return the id of this IVMInstallType
-	 */ 
+	 */
 	String getId();
 	/**
 	 * Validates the given location of a VM installation.
 	 * <p>
-	 * For example, an implementation might check whether the VM executable 
+	 * For example, an implementation might check whether the VM executable
 	 * is present.
 	 * </p>
-	 * 
+	 *
 	 * @param installLocation the root directory of a potential installation for
 	 *   this type of VM
 	 * @return a status object describing whether the install location is valid
 	 */
 	IStatus validateInstallLocation(File installLocation);
-	
+
 	/**
 	 * Tries to detect an installed VM that matches this VM install type.
 	 * Typically, this method will detect the VM installation the
@@ -108,20 +108,20 @@
 	 * 			to locate an installed VM.
 	 */
 	File detectInstallLocation();
-		
+
 	/**
 	 * Returns a collection of <code>LibraryLocation</code>s that represent the
 	 * default system libraries of this VM install type, if a VM was installed
 	 * at the given <code>installLocation</code>.
 	 * The returned <code>LibraryLocation</code>s may not exist if the
 	 * <code>installLocation</code> is not a valid install location.
-	 * 
+	 *
 	 * @param installLocation home location
 	 * @see LibraryLocation
 	 * @see IVMInstallType#validateInstallLocation(File)
-	 * 
+	 *
 	 * @return default library locations based on the given <code>installLocation</code>.
 	 * @since 2.0
 	 */
-	LibraryLocation[] getDefaultLibraryLocations(File installLocation);	
+	LibraryLocation[] getDefaultLibraryLocations(File installLocation);
 }
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IVMRunner.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IVMRunner.java
index b892165..0bb24ee 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IVMRunner.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/IVMRunner.java
@@ -24,7 +24,7 @@
  * </p>
  */
 public interface IVMRunner {
-		
+
 	/**
 	 * Launches a Java VM as specified in the given configuration,
 	 * contributing results (debug targets and processes), to the
@@ -34,11 +34,11 @@
 	 * @param launch the launch to contribute to
 	 * @param monitor progress monitor or <code>null</code> A cancelable progress monitor is provided by the Job
 	 *  framework. It should be noted that the setCanceled(boolean) method should never be called on the provided
-	 *  monitor or the monitor passed to any delegates from this method; due to a limitation in the progress monitor 
-	 *  framework using the setCanceled method can cause entire workspace batch jobs to be canceled, as the canceled flag 
-	 *  is propagated up the top-level parent monitor. The provided monitor is not guaranteed to have been started. 
+	 *  monitor or the monitor passed to any delegates from this method; due to a limitation in the progress monitor
+	 *  framework using the setCanceled method can cause entire workspace batch jobs to be canceled, as the canceled flag
+	 *  is propagated up the top-level parent monitor. The provided monitor is not guaranteed to have been started.
 	 * @exception CoreException if an exception occurs while launching
 	 */
-	public void run(VMRunnerConfiguration configuration, ILaunch launch, IProgressMonitor monitor) throws CoreException;	
-	
+	public void run(VMRunnerConfiguration configuration, ILaunch launch, IProgressMonitor monitor) throws CoreException;
+
 }
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaLaunchDelegate.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaLaunchDelegate.java
index f3782f0..089ed83 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaLaunchDelegate.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaLaunchDelegate.java
@@ -35,42 +35,42 @@
 	 */
 	@Override
 	public void launch(ILaunchConfiguration configuration, String mode, ILaunch launch, IProgressMonitor monitor) throws CoreException {
-		
+
 		if (monitor == null) {
 			monitor = new NullProgressMonitor();
 		}
-		
+
 		monitor.beginTask(NLS.bind("{0}...", new String[]{configuration.getName()}), 3); //$NON-NLS-1$
 		// check for cancellation
 		if (monitor.isCanceled()) {
 			return;
 		}
 		try {
-			monitor.subTask(LaunchingMessages.JavaLocalApplicationLaunchConfigurationDelegate_Verifying_launch_attributes____1); 
-							
+			monitor.subTask(LaunchingMessages.JavaLocalApplicationLaunchConfigurationDelegate_Verifying_launch_attributes____1);
+
 			String mainTypeName = verifyMainTypeName(configuration);
 			IVMRunner runner = getVMRunner(configuration, mode);
-	
+
 			File workingDir = verifyWorkingDirectory(configuration);
 			String workingDirName = null;
 			if (workingDir != null) {
 				workingDirName = workingDir.getAbsolutePath();
 			}
-			
+
 			// Environment variables
 			String[] envp= getEnvironment(configuration);
-			
+
 			// Program & VM arguments
 			String pgmArgs = getProgramArguments(configuration);
 			String vmArgs = getVMArguments(configuration);
 			ExecutionArguments execArgs = new ExecutionArguments(vmArgs, pgmArgs);
-			
+
 			// VM-specific attributes
 			Map<String, Object> vmAttributesMap = getVMSpecificAttributesMap(configuration);
-			
+
 			// Classpath
 			String[] classpath = getClasspath(configuration);
-			
+
 			// Create VM config
 			VMRunnerConfiguration runConfig = new VMRunnerConfiguration(mainTypeName, classpath);
 			runConfig.setProgramArguments(execArgs.getProgramArgumentsArray());
@@ -78,33 +78,33 @@
 			runConfig.setVMArguments(execArgs.getVMArgumentsArray());
 			runConfig.setWorkingDirectory(workingDirName);
 			runConfig.setVMSpecificAttributesMap(vmAttributesMap);
-	
+
 			// Bootpath
 			runConfig.setBootClassPath(getBootpath(configuration));
-			
+
 			// check for cancellation
 			if (monitor.isCanceled()) {
 				return;
-			}		
-			
+			}
+
 			// stop in main
 			prepareStopInMain(configuration);
-			
+
 			// done the verification phase
 			monitor.worked(1);
-			
-			monitor.subTask(LaunchingMessages.JavaLocalApplicationLaunchConfigurationDelegate_Creating_source_locator____2); 
+
+			monitor.subTask(LaunchingMessages.JavaLocalApplicationLaunchConfigurationDelegate_Creating_source_locator____2);
 			// set the default source locator if required
 			setDefaultSourceLocator(launch, configuration);
-			monitor.worked(1);		
-			
+			monitor.worked(1);
+
 			// Launch the configuration - 1 unit of work
 			runner.run(runConfig, launch, monitor);
-			
+
 			// check for cancellation
 			if (monitor.isCanceled()) {
 				return;
-			}	
+			}
 		}
 		finally {
 			monitor.done();
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaRuntime.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaRuntime.java
index 508a51c..660a104 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaRuntime.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaRuntime.java
@@ -6,8 +6,8 @@
  * http://www.eclipse.org/legal/epl-v10.html
  *
  * Contributors:
- *     IBM Corporation - initial API and implementation 
- *     Frits Jalvingh - Contribution for Bug 459831 - [launching] Support attaching 
+ *     IBM Corporation - initial API and implementation
+ *     Frits Jalvingh - Contribution for Bug 459831 - [launching] Support attaching
  *     	external annotations to a JRE container
  *******************************************************************************/
 package org.eclipse.jdt.launching;
@@ -104,7 +104,7 @@
  * @noinstantiate This class is not intended to be instantiated by clients.
  */
 public final class JavaRuntime {
-	
+
 	/**
 	 * Classpath variable name used for the default JRE's library
 	 * (value <code>"JRE_LIB"</code>).
@@ -116,53 +116,53 @@
 	 * (value <code>"JRE_SRC"</code>).
 	 */
 	public static final String JRESRC_VARIABLE= "JRE_SRC"; //$NON-NLS-1$
-	
+
 	/**
 	 * Classpath variable name used for the default JRE's library source root
 	 * (value <code>"JRE_SRCROOT"</code>).
 	 */
 	public static final String JRESRCROOT_VARIABLE= "JRE_SRCROOT"; //$NON-NLS-1$
-	
+
 	/**
 	 * Simple identifier constant (value <code>"runtimeClasspathEntryResolvers"</code>) for the
 	 * runtime classpath entry resolvers extension point.
-	 * 
+	 *
 	 * @since 2.0
 	 */
 	public static final String EXTENSION_POINT_RUNTIME_CLASSPATH_ENTRY_RESOLVERS= "runtimeClasspathEntryResolvers";	 //$NON-NLS-1$
-	
+
 	/**
 	 * Simple identifier constant (value <code>"classpathProviders"</code>) for the
 	 * runtime classpath providers extension point.
-	 * 
+	 *
 	 * @since 2.0
 	 */
 	public static final String EXTENSION_POINT_RUNTIME_CLASSPATH_PROVIDERS= "classpathProviders";	 //$NON-NLS-1$
-	
+
 	/**
 	 * Simple identifier constant (value <code>"executionEnvironments"</code>) for the
 	 * execution environments extension point.
-	 * 
+	 *
 	 * @since 3.2
 	 */
 	public static final String EXTENSION_POINT_EXECUTION_ENVIRONMENTS= "executionEnvironments";	 //$NON-NLS-1$
-	
+
 	/**
 	 * Simple identifier constant (value <code>"vmInstalls"</code>) for the
 	 * VM installs extension point.
-	 * 
+	 *
 	 * @since 3.2
 	 */
 	public static final String EXTENSION_POINT_VM_INSTALLS = "vmInstalls";	 //$NON-NLS-1$
-	
+
 	/**
 	 * Simple identifier constant (value <code>"libraryLocationResolvers"</code>) for the
 	 * Library Resolvers extension point
-	 * 
+	 *
 	 * @since 3.7
 	 */
 	public static final String EXTENSION_POINT_LIBRARY_LOCATION_RESOLVERS = "libraryLocationResolvers"; //$NON-NLS-1$
-	
+
 	/**
 	 * Classpath container used for a project's JRE
 	 * (value <code>"org.eclipse.jdt.launching.JRE_CONTAINER"</code>). A
@@ -191,14 +191,14 @@
 	 * @since 2.0
 	 */
 	public static final String JRE_CONTAINER = LaunchingPlugin.getUniqueIdentifier() + ".JRE_CONTAINER"; //$NON-NLS-1$
-	
+
 	/**
 	 * Marker type identifier for JRE container problems.
-	 * 
+	 *
 	 * @since 3.6
 	 */
 	public static final String JRE_CONTAINER_MARKER = LaunchingPlugin.getUniqueIdentifier() + ".jreContainerMarker"; //$NON-NLS-1$
-	
+
 	/**
 	 * A status code indicating that a JRE could not be resolved for a project.
 	 * When a JRE cannot be resolved for a project by this plug-in's container
@@ -207,52 +207,52 @@
 	 * to the status handler is the Java project for which the path could not be
 	 * resolved. The status handler must return an <code>IVMInstall</code> or <code>null</code>.
 	 * The container resolver will re-set the project's classpath if required.
-	 * 
+	 *
 	 * @since 2.0
 	 */
 	public static final int ERR_UNABLE_TO_RESOLVE_JRE = 160;
-	
+
 	/**
 	 * Preference key for launch/connect timeout. VM Runners should honor this timeout
 	 * value when attempting to launch and connect to a debuggable VM. The value is
 	 * an int, indicating a number of milliseconds.
-	 * 
+	 *
 	 * @since 2.0
 	 */
 	public static final String PREF_CONNECT_TIMEOUT = LaunchingPlugin.getUniqueIdentifier() + ".PREF_CONNECT_TIMEOUT"; //$NON-NLS-1$
-	
+
 	/**
 	 * Preference key for the String of XML that defines all installed VMs.
-	 * 
+	 *
 	 * @since 2.1
 	 */
 	public static final String PREF_VM_XML = LaunchingPlugin.getUniqueIdentifier() + ".PREF_VM_XML"; //$NON-NLS-1$
-	
+
 	/**
 	 * Preference key for the default problem severity when an execution environment is bound
 	 * to a project's build path for which there is no strictly compatible JRE available in the
 	 * workspace. Value is one of {@link JavaCore#ERROR}, {@link JavaCore#WARNING}, or
 	 * {@link JavaCore#IGNORE}
-	 * 
+	 *
 	 * @since 3.5
 	 */
 	public static final String PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE = LaunchingPlugin.getUniqueIdentifier() + ".PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE"; //$NON-NLS-1$
-	
+
 	/**
 	 * Unique identifier constant (value <code>"org.eclipse.jdt.launching"</code>)
 	 * for the Java launching plug-in.
-	 * 
+	 *
 	 * @since 3.5
 	 */
 	public static final String ID_PLUGIN = LaunchingPlugin.ID_PLUGIN;
-	
+
 	/**
 	 * Default launch/connect timeout (milliseconds).
-	 * 
+	 *
 	 * @since 2.0
 	 */
 	public static final int DEF_CONNECT_TIMEOUT = 20000;
-	
+
 	/**
 	 * Attribute key for a process property. The class
 	 * <code>org.eclipse.debug.core.model.IProcess</code> allows attaching
@@ -260,18 +260,18 @@
 	 * The value of this attribute is the command line a process
 	 * was launched with. Implementers of <code>IVMRunner</code> should use
 	 * this attribute key to attach the command lines to the processes they create.
-	 * 
+	 *
 	 * @deprecated - use <code>IProcess.ATTR_CMDLINE</code>
 	 */
 	@Deprecated
 	public final static String ATTR_CMDLINE= LaunchingPlugin.getUniqueIdentifier() + ".launcher.cmdLine"; //$NON-NLS-1$
-	
+
 	/**
 	 * Boolean preference controlling whether only exported entries should even be included when the runtime classpath is computed
 	 * @since 3.7
 	 */
 	public static final String PREF_ONLY_INCLUDE_EXPORTED_CLASSPATH_ENTRIES = ID_PLUGIN + ".only_include_exported_classpath_entries"; //$NON-NLS-1$
-	
+
 	/**
 	 * Attribute key for a classpath attribute referencing a
 	 * list of shared libraries that should appear on the
@@ -294,15 +294,15 @@
 	 * @see org.eclipse.jdt.core.IClasspathAttribute
 	 */
 	public static final String CLASSPATH_ATTR_LIBRARY_PATH_ENTRY =  LaunchingPlugin.getUniqueIdentifier() + ".CLASSPATH_ATTR_LIBRARY_PATH_ENTRY"; //$NON-NLS-1$
-	
+
 	// lock for VM initialization
 	private static Object fgVMLock = new Object();
 	private static boolean fgInitializingVMs = false;
-	
+
 	private static HashSet<Object> fgVMTypes = null;
 	private static String fgDefaultVMId = null;
 	private static String fgDefaultVMConnectorId = null;
-	
+
 	/**
 	 * Resolvers keyed by variable name, container id,
 	 * and runtime classpath entry id.
@@ -310,35 +310,35 @@
 	private static Map<String, IRuntimeClasspathEntryResolver> fgVariableResolvers = null;
 	private static Map<String, IRuntimeClasspathEntryResolver> fgContainerResolvers = null;
 	private static Map<String, RuntimeClasspathEntryResolver> fgRuntimeClasspathEntryResolvers = null;
-	
+
 	/**
 	 * Path providers keyed by id
 	 */
 	private static Map<String, RuntimeClasspathProvider> fgPathProviders = null;
-	
+
 	/**
 	 * Default classpath and source path providers.
 	 */
 	private static IRuntimeClasspathProvider fgDefaultClasspathProvider = new StandardClasspathProvider();
 	private static IRuntimeClasspathProvider fgDefaultSourcePathProvider = new StandardSourcePathProvider();
-	
+
 	/**
 	 * VM change listeners
 	 */
 	private static ListenerList<IVMInstallChangedListener> fgVMListeners = new ListenerList<>();
-	
+
 	/**
 	 * Cache of already resolved projects in container entries. Used to avoid
 	 * cycles in project dependencies when resolving classpath container entries.
 	 * Counters used to know when entering/exiting to clear cache
 	 */
-	private static ThreadLocal<List<IJavaProject>> fgProjects = new ThreadLocal<List<IJavaProject>>(); // Lists
-	private static ThreadLocal<Integer> fgEntryCount = new ThreadLocal<Integer>(); // Integers
-	
+	private static ThreadLocal<List<IJavaProject>> fgProjects = new ThreadLocal<>(); // Lists
+	private static ThreadLocal<Integer> fgEntryCount = new ThreadLocal<>(); // Integers
+
     /**
      *  Set of IDs of VMs contributed via vmInstalls extension point.
      */
-    private static Set<String> fgContributedVMs = new HashSet<String>();
+    private static Set<String> fgContributedVMs = new HashSet<>();
 
 	/**
 	 * This class contains only static methods, and is not intended
@@ -355,7 +355,7 @@
 		if(extensionPoint != null) {
 			IConfigurationElement[] configs = extensionPoint.getConfigurationElements();
 			MultiStatus status = new MultiStatus(LaunchingPlugin.getUniqueIdentifier(), IStatus.OK, "Exceptions occurred", null);  //$NON-NLS-1$
-			fgVMTypes = new HashSet<Object>();
+			fgVMTypes = new HashSet<>();
 			for (int i= 0; i < configs.length; i++) {
 				try {
 					fgVMTypes.add(configs[i].createExecutableExtension("class")); //$NON-NLS-1$
@@ -376,7 +376,7 @@
 	 * Returns the VM assigned to build the given Java project.
 	 * The project must exist. The VM assigned to a project is
 	 * determined from its build path.
-	 * 
+	 *
 	 * @param project the project to retrieve the VM from
 	 * @return the VM instance that is assigned to build the given Java project
 	 * 		   Returns <code>null</code> if no VM is referenced on the project's build path.
@@ -410,7 +410,7 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Returns the VM install type with the given unique id.
 	 * @param id the VM install type unique id
@@ -426,11 +426,11 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Sets a VM as the system-wide default VM, and notifies registered VM install
 	 * change listeners of the change.
-	 * 
+	 *
 	 * @param vm	The VM to make the default. May be <code>null</code> to clear
 	 * 				the default.
 	 * @param monitor progress monitor or <code>null</code>
@@ -439,11 +439,11 @@
 	public static void setDefaultVMInstall(IVMInstall vm, IProgressMonitor monitor) throws CoreException {
 		setDefaultVMInstall(vm, monitor, true);
 	}
-	
+
 	/**
 	 * Sets a VM as the system-wide default VM, and notifies registered VM install
 	 * change listeners of the change.
-	 * 
+	 *
 	 * @param vm	The VM to make the default. May be <code>null</code> to clear
 	 * 				the default.
 	 * @param monitor progress monitor or <code>null</code>
@@ -469,7 +469,7 @@
 			notifyDefaultVMChanged(previous, current);
 		}
 	}
-	
+
 	/**
 	 * Sets a VM connector as the system-wide default VM. This setting is persisted when
 	 * saveVMConfiguration is called.
@@ -483,7 +483,7 @@
 		fgDefaultVMConnectorId= connector.getIdentifier();
 		saveVMConfiguration();
 	}
-	
+
 	/**
 	 * Return the default VM set with <code>setDefaultVM()</code>.
 	 * @return	Returns the default VM. May return <code>null</code> when no default
@@ -510,7 +510,7 @@
 		}
 		return getVMFromCompositeId(getDefaultVMId());
 	}
-	
+
 	/**
 	 * Return the default VM connector.
 	 * @return	Returns the default VM connector.
@@ -527,19 +527,19 @@
 		}
 		return connector;
 	}
-	
+
 	/**
 	 * Returns the list of registered VM types. VM types are registered via
 	 * <code>"org.eclipse.jdt.launching.vmTypes"</code> extension point.
 	 * Returns an empty list if there are no registered VM types.
-	 * 
+	 *
 	 * @return the list of registered VM types
 	 */
 	public static IVMInstallType[] getVMInstallTypes() {
 		initializeVMs();
 		return fgVMTypes.toArray(new IVMInstallType[fgVMTypes.size()]);
 	}
-	
+
 	/**
 	 * Returns the default VM id determined during the initialization of the VM types
 	 * @return the id of the default VM
@@ -548,7 +548,7 @@
 		initializeVMs();
 		return fgDefaultVMId;
 	}
-	
+
 	/**
 	 * Returns the default VM connector id determined during the initialization of the VM types
 	 * @return the id of the default VM connector
@@ -557,13 +557,13 @@
 		initializeVMs();
 		return fgDefaultVMConnectorId;
 	}
-	
+
 	/**
 	 * Returns a String that uniquely identifies the specified VM across all VM types.
-	 * 
+	 *
 	 * @param vm the instance of IVMInstallType to be identified
 	 * @return the unique identifier for the specified VM
-	 * 
+	 *
 	 * @since 2.1
 	 */
 	public static String getCompositeIdFromVM(IVMInstall vm) {
@@ -575,14 +575,14 @@
 		CompositeId id = new CompositeId(new String[] { typeID, vm.getId() });
 		return id.toString();
 	}
-	
+
 	/**
 	 * Return the VM corresponding to the specified composite Id.  The id uniquely
 	 * identifies a VM across all VM types.
-	 * 
+	 *
 	 * @param idString the composite id that specifies an instance of IVMInstall
 	 * @return the VM corresponding to the specified composite Id.
-	 * 
+	 *
 	 * @since 2.1
 	 */
 	public static IVMInstall getVMFromCompositeId(String idString) {
@@ -603,7 +603,7 @@
 	 * Returns a new runtime classpath entry for the given expression that
 	 * may contain string substitution variable references. The resulting expression
 	 * refers to an archive (jar or directory) containing class files.
-	 * 
+	 *
 	 * @param expression an expression that resolves to the location of an archive
 	 * @return runtime classpath entry
 	 * @since 3.0
@@ -611,11 +611,11 @@
 	public static IRuntimeClasspathEntry newStringVariableClasspathEntry(String expression) {
 		return new VariableClasspathEntry(expression);
 	}
-	
+
 	/**
 	 * Returns a new runtime classpath entry containing the default classpath
 	 * for the specified Java project.
-	 * 
+	 *
 	 * @param project Java project
 	 * @return runtime classpath entry
 	 * @since 3.0
@@ -623,10 +623,10 @@
 	public static IRuntimeClasspathEntry newDefaultProjectClasspathEntry(IJavaProject project) {
 		return new DefaultProjectClasspathEntry(project);
 	}
-	
+
 	/**
 	 * Returns a new runtime classpath entry for the given project.
-	 * 
+	 *
 	 * @param project Java project
 	 * @return runtime classpath entry
 	 * @since 2.0
@@ -634,11 +634,11 @@
 	public static IRuntimeClasspathEntry newProjectRuntimeClasspathEntry(IJavaProject project) {
 		return newRuntimeClasspathEntry(JavaCore.newProjectEntry(project.getProject().getFullPath()));
 	}
-	
-	
+
+
 	/**
 	 * Returns a new runtime classpath entry for the given archive.
-	 * 
+	 *
 	 * @param resource archive resource
 	 * @return runtime classpath entry
 	 * @since 2.0
@@ -646,11 +646,11 @@
 	public static IRuntimeClasspathEntry newArchiveRuntimeClasspathEntry(IResource resource) {
 		return newRuntimeClasspathEntry(JavaCore.newLibraryEntry(resource.getFullPath(), null, null));
 	}
-	
+
 	/**
 	 * Returns a new runtime classpath entry for the given archive (possibly
 	 * external).
-	 * 
+	 *
 	 * @param path absolute path to an archive
 	 * @return runtime classpath entry
 	 * @since 2.0
@@ -662,7 +662,7 @@
 	/**
 	 * Returns a new runtime classpath entry for the classpath
 	 * variable with the given path.
-	 * 
+	 *
 	 * @param path variable path; first segment is the name of the variable;
 	 * 	trailing segments are appended to the resolved variable value
 	 * @return runtime classpath entry
@@ -675,7 +675,7 @@
 	/**
 	 * Returns a runtime classpath entry for the given container path with the given
 	 * classpath property.
-	 * 
+	 *
 	 * @param path container path
 	 * @param classpathProperty the type of entry - one of <code>USER_CLASSES</code>,
 	 * 	<code>BOOTSTRAP_CLASSES</code>, or <code>STANDARD_CLASSES</code>
@@ -686,11 +686,11 @@
 	public static IRuntimeClasspathEntry newRuntimeContainerClasspathEntry(IPath path, int classpathProperty) throws CoreException {
 		return newRuntimeContainerClasspathEntry(path, classpathProperty, null);
 	}
-	
+
 	/**
 	 * Returns a runtime classpath entry for the given container path with the given
 	 * classpath property to be resolved in the context of the given Java project.
-	 * 
+	 *
 	 * @param path container path
 	 * @param classpathProperty the type of entry - one of <code>USER_CLASSES</code>,
 	 * 	<code>BOOTSTRAP_CLASSES</code>, or <code>STANDARD_CLASSES</code>
@@ -706,10 +706,10 @@
 		entry.setJavaProject(project);
 		return entry;
 	}
-		
+
 	/**
 	 * Returns a runtime classpath entry constructed from the given memento.
-	 * 
+	 *
 	 * @param memento a memento for a runtime classpath entry
 	 * @return runtime classpath entry
 	 * @exception CoreException if unable to construct a runtime classpath entry
@@ -722,7 +722,7 @@
 			StringReader reader = new StringReader(memento);
 			InputSource source = new InputSource(reader);
 			root = parser.parse(source).getDocumentElement();
-												
+
 			String id = root.getAttribute("id"); //$NON-NLS-1$
 			if (id == null || id.length() == 0) {
 				// assume an old format
@@ -750,12 +750,12 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Returns a runtime classpath entry that corresponds to the given
 	 * classpath entry. The classpath entry may not be of type <code>CPE_SOURCE</code>
 	 * or <code>CPE_CONTAINER</code>.
-	 * 
+	 *
 	 * @param entry a classpath entry
 	 * @return runtime classpath entry
 	 * @since 2.0
@@ -763,11 +763,11 @@
 	private static IRuntimeClasspathEntry newRuntimeClasspathEntry(IClasspathEntry entry) {
 		return new RuntimeClasspathEntry(entry);
 	}
-			
+
 	/**
 	 * Computes and returns the default unresolved runtime classpath for the
 	 * given project.
-	 * 
+	 *
 	 * @param project the {@link IJavaProject} to compute the unresolved runtime classpath for
 	 * @return runtime classpath entries
 	 * @exception CoreException if unable to compute the runtime classpath
@@ -776,7 +776,7 @@
 	 */
 	public static IRuntimeClasspathEntry[] computeUnresolvedRuntimeClasspath(IJavaProject project) throws CoreException {
 		IClasspathEntry[] entries = project.getRawClasspath();
-		List<IRuntimeClasspathEntry> classpathEntries = new ArrayList<IRuntimeClasspathEntry>(3);
+		List<IRuntimeClasspathEntry> classpathEntries = new ArrayList<>(3);
 		for (int i = 0; i < entries.length; i++) {
 			IClasspathEntry entry = entries[i];
 			switch (entry.getEntryKind()) {
@@ -810,11 +810,11 @@
 		classpathEntries.add(newDefaultProjectClasspathEntry(project));
 		return classpathEntries.toArray(new IRuntimeClasspathEntry[classpathEntries.size()]);
 	}
-	
+
 	/**
 	 * Computes and returns the unresolved source lookup path for the given launch
 	 * configuration.
-	 * 
+	 *
 	 * @param configuration launch configuration
 	 * @return runtime classpath entries
 	 * @exception CoreException if unable to compute the source lookup path
@@ -823,11 +823,11 @@
 	public static IRuntimeClasspathEntry[] computeUnresolvedSourceLookupPath(ILaunchConfiguration configuration) throws CoreException {
 		return getSourceLookupPathProvider(configuration).computeUnresolvedClasspath(configuration);
 	}
-	
+
 	/**
 	 * Resolves the given source lookup path, returning the resolved source lookup path
 	 * in the context of the given launch configuration.
-	 * 
+	 *
 	 * @param entries unresolved entries
 	 * @param configuration launch configuration
 	 * @return resolved entries
@@ -837,10 +837,10 @@
 	public static IRuntimeClasspathEntry[] resolveSourceLookupPath(IRuntimeClasspathEntry[] entries, ILaunchConfiguration configuration) throws CoreException {
 		return getSourceLookupPathProvider(configuration).resolveClasspath(entries, configuration);
 	}
-	
+
 	/**
 	 * Returns the classpath provider for the given launch configuration.
-	 * 
+	 *
 	 * @param configuration launch configuration
 	 * @return classpath provider
 	 * @exception CoreException if unable to resolve the path provider
@@ -859,10 +859,10 @@
 		}
 		return provider;
 	}
-		
+
 	/**
 	 * Returns the source lookup path provider for the given launch configuration.
-	 * 
+	 *
 	 * @param configuration launch configuration
 	 * @return source lookup path provider
 	 * @exception CoreException if unable to resolve the path provider
@@ -881,7 +881,7 @@
 		}
 		return provider;
 	}
-		
+
 	/**
 	 * Returns resolved entries for the given entry in the context of the given
 	 * launch configuration. If the entry is of kind
@@ -978,7 +978,7 @@
 	/**
 	 * Default resolution for a classpath variable - resolve to an archive. Only
 	 * one of project/configuration can be non-null.
-	 * 
+	 *
 	 * @param entry the {@link IRuntimeClasspathEntry} to try and resolve
 	 * @param project the project context or <code>null</code>
 	 * @param configuration configuration context or <code>null</code>
@@ -1025,19 +1025,19 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Returns runtime classpath entries corresponding to the output locations
 	 * of the given project, or null if the project only uses the default
 	 * output location.
-	 * 
+	 *
 	 * @param project the {@link IJavaProject} to resolve the output locations for
 	 * @param classpathProperty the type of classpath entries to create
 	 * @return IRuntimeClasspathEntry[] or <code>null</code>
 	 * @throws CoreException if output resolution encounters a problem
 	 */
 	private static IRuntimeClasspathEntry[] resolveOutputLocations(IJavaProject project, int classpathProperty) throws CoreException {
-		List<IPath> nonDefault = new ArrayList<IPath>();
+		List<IPath> nonDefault = new ArrayList<>();
 		if (project.exists() && project.getProject().isOpen()) {
 			IClasspathEntry entries[] = project.getRawClasspath();
 			for (int i = 0; i < entries.length; i++) {
@@ -1066,7 +1066,7 @@
 		}
 		return locations;
 	}
-	
+
 	/**
 	 * Returns resolved entries for the given entry in the context of the given
 	 * Java project. If the entry is of kind
@@ -1131,7 +1131,7 @@
 		}
 		return new IRuntimeClasspathEntry[] {entry};
 	}
-		
+
 	/**
 	 * Performs default resolution for a container entry.
 	 * Delegates to the Java model.
@@ -1147,7 +1147,7 @@
 		}
 		return computeDefaultContainerEntries(entry, project);
 	}
-	
+
 	/**
 	 * Performs default resolution for a container entry.
 	 * Delegates to the Java model.
@@ -1180,11 +1180,11 @@
 				property = IRuntimeClasspathEntry.BOOTSTRAP_CLASSES;
 				break;
 		}
-		List<IRuntimeClasspathEntry> resolved = new ArrayList<IRuntimeClasspathEntry>(cpes.length);
+		List<IRuntimeClasspathEntry> resolved = new ArrayList<>(cpes.length);
 		List<IJavaProject> projects = fgProjects.get();
 		Integer count = fgEntryCount.get();
 		if (projects == null) {
-			projects = new ArrayList<IJavaProject>();
+			projects = new ArrayList<>();
 			fgProjects.set(projects);
 			count = new Integer(0);
 		}
@@ -1232,11 +1232,11 @@
 		}
 		return result;
 	}
-			
+
 	/**
 	 * Computes and returns the unresolved class path for the given launch configuration.
 	 * Variable and container entries are unresolved.
-	 * 
+	 *
 	 * @param configuration launch configuration
 	 * @return unresolved runtime classpath entries
 	 * @exception CoreException if unable to compute the classpath
@@ -1245,7 +1245,7 @@
 	public static IRuntimeClasspathEntry[] computeUnresolvedRuntimeClasspath(ILaunchConfiguration configuration) throws CoreException {
 		return getClasspathProvider(configuration).computeUnresolvedClasspath(configuration);
 	}
-	
+
 	/**
 	 * Resolves the given classpath, returning the resolved classpath
 	 * in the context of the given launch configuration.
@@ -1259,12 +1259,12 @@
 	public static IRuntimeClasspathEntry[] resolveRuntimeClasspath(IRuntimeClasspathEntry[] entries, ILaunchConfiguration configuration) throws CoreException {
 		return getClasspathProvider(configuration).resolveClasspath(entries, configuration);
 	}
-	
+
 	/**
 	 * Return the <code>IJavaProject</code> referenced in the specified configuration or
 	 * <code>null</code> if none. This method looks for the existence of the {@link IJavaLaunchConfigurationConstants#ATTR_PROJECT_NAME}
 	 * attribute in the given configuration.
-	 * 
+	 *
 	 * @param configuration the {@link ILaunchConfiguration} to try and compute the {@link IJavaProject} from
 	 * @return the referenced {@link IJavaProject} or <code>null</code>
 	 * @exception CoreException if the referenced Java project does not exist
@@ -1284,7 +1284,7 @@
 		}
 		return javaProject;
 	}
-				
+
 	/**
 	 * Convenience method to get the java model.
 	 * @return the {@link IJavaModel} made against the {@link IWorkspaceRoot}
@@ -1292,7 +1292,7 @@
 	private static IJavaModel getJavaModel() {
 		return JavaCore.create(ResourcesPlugin.getWorkspace().getRoot());
 	}
-	
+
 	/**
 	 * Returns the VM install for the given launch configuration.
 	 * The VM install is determined in the following prioritized way:
@@ -1307,7 +1307,7 @@
 	 * <li>If no project is specified, or the project does not specify a custom
 	 * 	VM install, the workspace default VM install is returned.</li>
 	 * </ol>
-	 * 
+	 *
 	 * @param configuration launch configuration
 	 * @return VM install
 	 * @exception CoreException if unable to compute a VM install
@@ -1343,12 +1343,12 @@
 				return resolver.resolveVMInstall(entry);
 			}
 		}
-		
+
 		return getDefaultVMInstall();
 	}
 	/**
 	 * Returns the VM of the given type with the specified name.
-	 * 
+	 *
 	 * @param type VM type identifier
 	 * @param name VM name
 	 * @param configuration the backing {@link ILaunchConfiguration}
@@ -1380,10 +1380,10 @@
 		// won't reach here
 		return null;
 	}
-	
+
 	/**
 	 * Throws a core exception with an internal error status.
-	 * 
+	 *
 	 * @param message the status message
 	 * @param exception lower level exception associated with the
 	 *  error, or <code>null</code> if none
@@ -1392,26 +1392,26 @@
 	private static void abort(String message, Throwable exception) throws CoreException {
 		abort(message, IJavaLaunchConfigurationConstants.ERR_INTERNAL_ERROR, exception);
 	}
-		
-		
+
+
 	/**
 	 * Throws a core exception with an internal error status.
-	 * 
+	 *
 	 * @param message the status message
 	 * @param code status code
 	 * @param exception lower level exception associated with the
-	 * 
+	 *
 	 *  error, or <code>null</code> if none
 	 * @throws CoreException a {@link CoreException} wrapper
 	 */
 	private static void abort(String message, int code, Throwable exception) throws CoreException {
 		throw new CoreException(new Status(IStatus.ERROR, LaunchingPlugin.getUniqueIdentifier(), code, message, exception));
 	}
-		
+
 	/**
 	 * Computes the default application classpath entries for the given
 	 * project.
-	 * 
+	 *
 	 * @param	jproject The project to compute the classpath for
 	 * @return	The computed classpath. May be empty, but not null.
 	 * @throws	CoreException if unable to compute the default classpath
@@ -1420,7 +1420,7 @@
 		IRuntimeClasspathEntry[] unresolved = computeUnresolvedRuntimeClasspath(jproject);
 		// 1. remove bootpath entries
 		// 2. resolve & translate to local file system paths
-		List<String> resolved = new ArrayList<String>(unresolved.length);
+		List<String> resolved = new ArrayList<>(unresolved.length);
 		for (int i = 0; i < unresolved.length; i++) {
 			IRuntimeClasspathEntry entry = unresolved[i];
 			if (entry.getClasspathProperty() == IRuntimeClasspathEntry.USER_CLASSES) {
@@ -1435,7 +1435,7 @@
 		}
 		return resolved.toArray(new String[resolved.size()]);
 	}
-		
+
 	/**
 	 * Saves the VM configuration information to the preferences. This includes
 	 * the following information:
@@ -1456,7 +1456,7 @@
 		InstanceScope.INSTANCE.getNode(LaunchingPlugin.ID_PLUGIN).put(PREF_VM_XML, xml);
 		savePreferences();
 	}
-	
+
 	/**
 	 * Returns the listing of currently installed VMs as a single XML file
 	 * @return an XML representation of all of the currently installed VMs
@@ -1476,12 +1476,12 @@
 		}
 		return container.getAsXML();
 	}
-	
+
 	/**
 	 * This method loads installed JREs based an existing user preference
 	 * or old VM configurations file. The VMs found in the preference
 	 * or VM configurations file are added to the given VM definitions container.
-	 * 
+	 *
 	 * Returns whether the user preferences should be set - i.e. if it was
 	 * not already set when initialized.
 	 * @param vmDefs the container to add persisted VM information to
@@ -1491,7 +1491,7 @@
 	private static boolean addPersistedVMs(VMDefinitionsContainer vmDefs) throws IOException {
 		// Try retrieving the VM preferences from the preference store
 		String vmXMLString = InstanceScope.INSTANCE.getNode(LaunchingPlugin.ID_PLUGIN).get(PREF_VM_XML, ""); //$NON-NLS-1$
-		
+
 		// If the preference was found, load VMs from it into memory
 		if (vmXMLString.length() > 0) {
 			try {
@@ -1506,7 +1506,7 @@
 			IPath stateLocation= LaunchingPlugin.getDefault().getStateLocation();
 			IPath stateFile= stateLocation.append("vmConfiguration.xml"); //$NON-NLS-1$
 			File file = new File(stateFile.toOSString());
-			
+
 			if (file.exists()) {
 				// If file exists, load VM definitions from it into memory and write the definitions to
 				// the preference store WITHOUT triggering any processing of the new value
@@ -1516,7 +1516,7 @@
 		}
 		return true;
 	}
-	
+
 	/**
 	 * Loads contributed VM installs
 	 * @param vmDefs the container to add contributed VM install information to
@@ -1651,10 +1651,10 @@
 			}
 		}
 	}
-    
+
     /**
      * Performs string substitution on the given expression.
-     * 
+     *
      * @param expression the expression to evaluate
      * @return expression after string substitution
      * @throws CoreException if the substitution encounters a problem
@@ -1663,11 +1663,11 @@
     private static String substitute(String expression) throws CoreException {
         return VariablesPlugin.getDefault().getStringVariableManager().performStringSubstitution(expression);
     }
-    
+
     /**
      * Returns whether the VM install with the specified id was contributed via
      * the vmInstalls extension point.
-     * 
+     *
      * @param id VM id
      * @return whether the VM install was contributed via extension point
      * @since 3.2
@@ -1676,7 +1676,7 @@
         getVMInstallTypes(); // ensure VMs are initialized
         return fgContributedVMs.contains(id);
     }
-	
+
 	/**
 	 * Evaluates library locations for a IVMInstall. If no library locations are set on the install, a default
 	 * location is evaluated and checked if it exists.
@@ -1716,7 +1716,7 @@
 				if (!libraryPaths[i].toFile().isFile()) {
 					libraryPaths[i]= Path.EMPTY;
 				}
-				
+
 				annotationPaths[i] = Path.EMPTY;
 
 				sourcePaths[i]= dflts[i].getSystemLibrarySourcePath();
@@ -1749,10 +1749,10 @@
 		}
 		return locations;
 	}
-	
+
 	/**
 	 * Detect the VM that Eclipse is running on.
-	 * 
+	 *
 	 * @return a VM stand-in representing the VM that Eclipse is running on, or
 	 * <code>null</code> if unable to detect the runtime VM
 	 */
@@ -1791,7 +1791,7 @@
 		for (int i = 0; i < vmTypes.length; i++) {
 			File detectedLocation= vmTypes[i].detectInstallLocation();
 			if (detectedLocation != null) {
-				
+
 				// Make sure the VM id is unique
 				long unique = System.currentTimeMillis();
 				IVMInstallType vmType = vmTypes[i];
@@ -1818,19 +1818,19 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Returns whether the specified option is the same in the given
 	 * map and preference store.
-	 * 
+	 *
 	 * <p>
 	 * Notes:
 	 * <ul>
 	 * <li>Returns <code>false</code> if the option is only contained in one map</li>
 	 * <li>Returns <code>true</code> if the option is not contained in either map</li>
-	 * </ul> 
+	 * </ul>
 	 * </p>
-	 * 
+	 *
 	 * @param optionName name of option to test
 	 * @param options map of options
 	 * @param prefStore preferences node
@@ -1845,10 +1845,10 @@
 		}
 		return !options.containsKey(optionName);
 	}
-	
+
 	/**
 	 * Returns whether the objects are equal or both <code>null</code>
-	 * 
+	 *
 	 * @param o1 an object
 	 * @param o2 an object
 	 * @return whether the objects are equal or both <code>null</code>
@@ -1859,7 +1859,7 @@
 		}
 		return o1.equals(o2);
 	}
-	
+
 	/**
 	 * Make the name of a detected VM stand out.
 	 * @param vm the VM to generate a name for
@@ -1873,11 +1873,11 @@
 		}
 		return name;
 	}
-	
+
 	/**
 	 * Creates and returns a classpath entry describing
 	 * the JRE_LIB classpath variable.
-	 * 
+	 *
 	 * @return a new IClasspathEntry that describes the JRE_LIB classpath variable
 	 */
 	public static IClasspathEntry getJREVariableEntry() {
@@ -1887,33 +1887,33 @@
 			new Path(JRESRCROOT_VARIABLE)
 		);
 	}
-	
+
 	/**
 	 * Creates and returns a classpath entry describing
 	 * the default JRE container entry.
-	 * 
+	 *
 	 * @return a new IClasspathEntry that describes the default JRE container entry
 	 * @since 2.0
 	 */
 	public static IClasspathEntry getDefaultJREContainerEntry() {
 		return JavaCore.newContainerEntry(newDefaultJREContainerPath());
 	}
-	
+
 	/**
 	 * Returns a path for the JRE classpath container identifying the
 	 * default VM install.
-	 * 
+	 *
 	 * @return classpath container path
 	 * @since 3.2
 	 */
 	public static IPath newDefaultJREContainerPath() {
 		return new Path(JRE_CONTAINER);
 	}
-	
+
 	/**
 	 * Returns a path for the JRE classpath container identifying the
 	 * specified VM install by type and name.
-	 * 
+	 *
 	 * @param vm VM install
 	 * @return classpath container path
 	 * @since 3.2
@@ -1921,11 +1921,11 @@
 	public static IPath newJREContainerPath(IVMInstall vm) {
 		return newJREContainerPath(vm.getVMInstallType().getId(), vm.getName());
 	}
-	
+
 	/**
 	 * Returns a path for the JRE classpath container identifying the
 	 * specified VM install by type and name.
-	 * 
+	 *
 	 * @param typeId VM install type identifier
 	 * @param name VM install name
 	 * @return classpath container path
@@ -1937,11 +1937,11 @@
 		path = path.append(name);
 		return path;
 	}
-	
+
 	/**
 	 * Returns a path for the JRE classpath container identifying the
 	 * specified execution environment.
-	 * 
+	 *
 	 * @param environment execution environment
 	 * @return classpath container path
 	 * @since 3.2
@@ -1952,11 +1952,11 @@
 		path = path.append(JREContainerInitializer.encodeEnvironmentId(environment.getId()));
 		return path;
 	}
-	
+
 	/**
 	 * Returns the JRE referenced by the specified JRE classpath container
 	 * path or <code>null</code> if none.
-	 * 
+	 *
 	 * @param jreContainerPath the path to the container to try and resolve the {@link IVMInstall} from
 	 * @return JRE referenced by the specified JRE classpath container
 	 *  path or <code>null</code>
@@ -1965,11 +1965,11 @@
 	public static IVMInstall getVMInstall(IPath jreContainerPath) {
 		return JREContainerInitializer.resolveVM(jreContainerPath);
 	}
-	
+
 	/**
 	 * Returns the identifier of the VM install type referenced by the
 	 * given JRE classpath container path, or <code>null</code> if none.
-	 * 
+	 *
 	 * @param jreContainerPath the path to the container to try and resolve the {@link IVMInstallType} id from
 	 * @return VM install type identifier or <code>null</code>
 	 * @since 3.2
@@ -1984,7 +1984,7 @@
 	/**
 	 * Returns the name of the VM install referenced by the
 	 * given JRE classpath container path, or <code>null</code> if none.
-	 * 
+	 *
 	 * @param jreContainerPath the path to the container to try an resolve the {@link IVMInstall} name from
 	 * @return VM name or <code>null</code>
 	 * @since 3.2
@@ -1995,11 +1995,11 @@
 		}
 		return JREContainerInitializer.getVMName(jreContainerPath);
 	}
-	
+
 	/**
 	 * Returns the execution environment identifier in the following JRE
 	 * classpath container path, or <code>null</code> if none.
-	 * 
+	 *
 	 * @param jreContainerPath classpath container path
 	 * @return execution environment identifier or <code>null</code>
 	 * @since 3.2
@@ -2007,7 +2007,7 @@
 	public static String getExecutionEnvironmentId(IPath jreContainerPath) {
 		return JREContainerInitializer.getExecutionEnvironmentId(jreContainerPath);
 	}
-	
+
 	/**
 	 * Returns a runtime classpath entry identifying the JRE to use when launching the specified
 	 * configuration or <code>null</code> if none is specified. The entry returned represents a
@@ -2061,12 +2061,12 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Returns a runtime classpath entry identifying the JRE referenced by the specified
 	 * project, or <code>null</code> if none. The entry returned represents a either a
 	 * classpath variable or classpath container that resolves to a JRE.
-	 * 
+	 *
 	 * @param project Java project
 	 * @return JRE runtime classpath entry or <code>null</code>
 	 * @exception org.eclipse.core.runtime.CoreException if an exception occurs
@@ -2106,14 +2106,14 @@
 					}
 					break;
 			}
-			
+
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Returns whether the given runtime classpath entry refers to a VM install.
-	 * 
+	 *
 	 * @param entry the entry to check
 	 * @return whether the given runtime classpath entry refers to a VM install
 	 * @since 3.2
@@ -2138,11 +2138,11 @@
 		}
 		return false;
 	}
-	
+
 	/**
 	 * Returns the VM connector defined with the specified identifier,
 	 * or <code>null</code> if none.
-	 * 
+	 *
 	 * @param id VM connector identifier
 	 * @return VM connector or <code>null</code> if none
 	 * @since 2.0
@@ -2150,7 +2150,7 @@
 	public static IVMConnector getVMConnector(String id) {
 		return LaunchingPlugin.getDefault().getVMConnector(id);
 	}
-	
+
 	/**
 	 * Returns all VM connector extensions.
 	 *
@@ -2160,10 +2160,10 @@
 	public static IVMConnector[] getVMConnectors() {
 		return LaunchingPlugin.getDefault().getVMConnectors();
 	}
-	
+
 	/**
 	 * Returns the preference store for the launching plug-in.
-	 * 
+	 *
 	 * @return the preference store for the launching plug-in
 	 * @since 2.0
 	 */
@@ -2171,10 +2171,10 @@
 	public static Preferences getPreferences() {
 		return LaunchingPlugin.getDefault().getPluginPreferences();
 	}
-	
+
 	/**
 	 * Saves the preferences for the launching plug-in.
-	 * 
+	 *
 	 * @since 2.0
 	 */
 	public static void savePreferences() {
@@ -2185,10 +2185,10 @@
 			LaunchingPlugin.log(e);
 		}
 	}
-	
+
 	/**
 	 * Registers the given resolver for the specified variable.
-	 * 
+	 *
 	 * @param resolver runtime classpath entry resolver
 	 * @param variableName variable name to register for
 	 * @since 2.0
@@ -2197,10 +2197,10 @@
 		Map<String, IRuntimeClasspathEntryResolver> map = getVariableResolvers();
 		map.put(variableName, resolver);
 	}
-	
+
 	/**
 	 * Registers the given resolver for the specified container.
-	 * 
+	 *
 	 * @param resolver runtime classpath entry resolver
 	 * @param containerIdentifier identifier of the classpath container to register for
 	 * @since 2.0
@@ -2209,7 +2209,7 @@
 		Map<String, IRuntimeClasspathEntryResolver> map = getContainerResolvers();
 		map.put(containerIdentifier, resolver);
 	}
-	
+
 	/**
 	 * Returns all registered variable resolvers.
 	 * @return the initialized map of {@link RuntimeClasspathEntryResolver}s for variables
@@ -2220,7 +2220,7 @@
 		}
 		return fgVariableResolvers;
 	}
-	
+
 	/**
 	 * Returns all registered container resolvers.
 	 * @return the initialized map of {@link RuntimeClasspathEntryResolver}s for containers
@@ -2231,7 +2231,7 @@
 		}
 		return fgContainerResolvers;
 	}
-	
+
 	/**
 	 * Returns all registered runtime classpath entry resolvers.
 	 * @return the initialized map of {@link RuntimeClasspathEntryResolver}s for classpath entries
@@ -2249,9 +2249,9 @@
 	private static void initializeResolvers() {
 		IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint(LaunchingPlugin.ID_PLUGIN, EXTENSION_POINT_RUNTIME_CLASSPATH_ENTRY_RESOLVERS);
 		IConfigurationElement[] extensions = point.getConfigurationElements();
-		fgVariableResolvers = new HashMap<String, IRuntimeClasspathEntryResolver>(extensions.length);
-		fgContainerResolvers = new HashMap<String, IRuntimeClasspathEntryResolver>(extensions.length);
-		fgRuntimeClasspathEntryResolvers = new HashMap<String, RuntimeClasspathEntryResolver>(extensions.length);
+		fgVariableResolvers = new HashMap<>(extensions.length);
+		fgContainerResolvers = new HashMap<>(extensions.length);
+		fgRuntimeClasspathEntryResolvers = new HashMap<>(extensions.length);
 		for (int i = 0; i < extensions.length; i++) {
 			RuntimeClasspathEntryResolver res = new RuntimeClasspathEntryResolver(extensions[i]);
 			String variable = res.getVariableName();
@@ -2279,24 +2279,24 @@
 		}
 		return fgPathProviders;
 	}
-		
+
 	/**
 	 * Initializes the listing of classpath providers
 	 */
 	private static void initializeProviders() {
 		IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint(LaunchingPlugin.ID_PLUGIN, EXTENSION_POINT_RUNTIME_CLASSPATH_PROVIDERS);
 		IConfigurationElement[] extensions = point.getConfigurationElements();
-		fgPathProviders = new HashMap<String, RuntimeClasspathProvider>(extensions.length);
+		fgPathProviders = new HashMap<>(extensions.length);
 		for (int i = 0; i < extensions.length; i++) {
 			RuntimeClasspathProvider res = new RuntimeClasspathProvider(extensions[i]);
 			fgPathProviders.put(res.getIdentifier(), res);
 		}
 	}
-		
+
 	/**
 	 * Returns the resolver registered for the given variable, or
 	 * <code>null</code> if none.
-	 * 
+	 *
 	 * @param variableName the variable to determine the resolver for
 	 * @return the resolver registered for the given variable, or
 	 * <code>null</code> if none
@@ -2304,11 +2304,11 @@
 	private static IRuntimeClasspathEntryResolver2 getVariableResolver(String variableName) {
 		return (IRuntimeClasspathEntryResolver2)getVariableResolvers().get(variableName);
 	}
-	
+
 	/**
 	 * Returns the resolver registered for the given container id, or
 	 * <code>null</code> if none.
-	 * 
+	 *
 	 * @param containerId the container to determine the resolver for
 	 * @return the resolver registered for the given container id, or
 	 * <code>null</code> if none
@@ -2316,11 +2316,11 @@
 	private static IRuntimeClasspathEntryResolver2 getContainerResolver(String containerId) {
 		return (IRuntimeClasspathEntryResolver2)getContainerResolvers().get(containerId);
 	}
-	
+
 	/**
 	 * Returns the resolver registered for the given contributed classpath
 	 * entry type.
-	 * 
+	 *
 	 * @param typeId the id of the contributed classpath entry
 	 * @return the resolver registered for the given classpath entry
 	 */
@@ -2331,29 +2331,29 @@
 		}
 		return resolver;
 	}
-	
+
 	/**
 	 * Adds the given listener to the list of registered VM install changed
 	 * listeners. Has no effect if an identical listener is already registered.
-	 * 
+	 *
 	 * @param listener the listener to add
 	 * @since 2.0
 	 */
 	public static void addVMInstallChangedListener(IVMInstallChangedListener listener) {
 		fgVMListeners.add(listener);
 	}
-	
+
 	/**
 	 * Removes the given listener from the list of registered VM install changed
 	 * listeners. Has no effect if an identical listener is not already registered.
-	 * 
+	 *
 	 * @param listener the listener to remove
 	 * @since 2.0
 	 */
 	public static void removeVMInstallChangedListener(IVMInstallChangedListener listener) {
 		fgVMListeners.remove(listener);
 	}
-	
+
 	/**
 	 * Notifies registered listeners that the default VM has changed
 	 * @param previous the previous VM
@@ -2364,10 +2364,10 @@
 			listener.defaultVMInstallChanged(previous, current);
 		}
 	}
-	
+
 	/**
 	 * Notifies all VM install changed listeners of the given property change.
-	 * 
+	 *
 	 * @param event event describing the change.
 	 * @since 2.0
 	 */
@@ -2376,10 +2376,10 @@
 			listener.vmChanged(event);
 		}
 	}
-	
+
 	/**
 	 * Notifies all VM install changed listeners of the VM addition
-	 * 
+	 *
 	 * @param vm the VM that has been added
 	 * @since 2.0
 	 */
@@ -2390,10 +2390,10 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Notifies all VM install changed listeners of the VM removal
-	 * 
+	 *
 	 * @param vm the VM that has been removed
 	 * @since 2.0
 	 */
@@ -2402,13 +2402,13 @@
 			listener.vmRemoved(vm);
 		}
 	}
-	
+
 	/**
 	 * Return the String representation of the default output directory of the
 	 * launch config's project or <code>null</code> if there is no configuration, no
 	 * project or some sort of problem.
 	 * @param config the {@link ILaunchConfiguration}
-	 * 
+	 *
 	 * @return the default output directory for the specified launch
 	 * configuration's project
 	 * @since 2.1
@@ -2433,7 +2433,7 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Returns a collection of source containers corresponding to the given
 	 * resolved runtime classpath entries.
@@ -2448,7 +2448,7 @@
 	public static ISourceContainer[] getSourceContainers(IRuntimeClasspathEntry[] entries) {
 		return JavaSourceLookupUtil.translate(entries);
 	}
-	
+
 	/**
 	 * Returns a collection of paths that should be appended to the given project's
 	 * <code>java.library.path</code> system property when launched. Entries are
@@ -2465,10 +2465,10 @@
 	 * @see JavaRuntime#CLASSPATH_ATTR_LIBRARY_PATH_ENTRY
 	 */
 	public static String[] computeJavaLibraryPath(IJavaProject project, boolean requiredProjects) throws CoreException {
-		Set<IJavaProject> visited = new HashSet<IJavaProject>();
-		List<String> entries = new ArrayList<String>();
+		Set<IJavaProject> visited = new HashSet<>();
+		List<String> entries = new ArrayList<>();
 		gatherJavaLibraryPathEntries(project, requiredProjects, visited, entries);
-		List<String> resolved = new ArrayList<String>(entries.size());
+		List<String> resolved = new ArrayList<>(entries.size());
 		Iterator<String> iterator = entries.iterator();
 		IStringVariableManager manager = VariablesPlugin.getDefault().getStringVariableManager();
 		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
@@ -2495,7 +2495,7 @@
 	/**
 	 * Gathers all Java library entries for the given project and optionally its required
 	 * projects.
-	 * 
+	 *
 	 * @param project project to gather entries for
 	 * @param requiredProjects whether to consider required projects
 	 * @param visited projects already considered
@@ -2528,12 +2528,12 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Adds all java library path extra classpath entry values to the given entries collection
 	 * specified on the given project's classpath, and returns a collection of required
 	 * projects, or <code>null</code>.
-	 * 
+	 *
 	 * @param project project being processed
 	 * @param collectRequired whether to collect required projects
 	 * @param classpathEntries the project's raw classpath
@@ -2561,7 +2561,7 @@
 					IClasspathEntry[] requiredProjects = processJavaLibraryPathEntries(project, collectRequired, container.getClasspathEntries(), entries);
 					if (requiredProjects != null) {
 						if (req == null) {
-							req = new ArrayList<IClasspathEntry>();
+							req = new ArrayList<>();
 						}
 						for (int j = 0; j < requiredProjects.length; j++) {
 							req.add(requiredProjects[j]);
@@ -2570,7 +2570,7 @@
 				}
 			} else if (collectRequired && entry.getEntryKind() == IClasspathEntry.CPE_PROJECT) {
 				if (req == null) {
-					req = new ArrayList<IClasspathEntry>();
+					req = new ArrayList<>();
 				}
 				req.add(entry);
 			}
@@ -2580,7 +2580,7 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Creates a new classpath attribute referencing a list of shared libraries that should
 	 * appear on the <code>-Djava.library.path</code> system property at runtime
@@ -2609,7 +2609,7 @@
 		}
 		return JavaCore.newClasspathAttribute(CLASSPATH_ATTR_LIBRARY_PATH_ENTRY, value.toString());
 	}
-	
+
 	/**
 	 * Returns an array of strings referencing shared libraries that should
 	 * appear on the <code>-Djava.library.path</code> system property at runtime
@@ -2638,21 +2638,21 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Returns the execution environments manager.
-	 * 
+	 *
 	 * @return execution environments manager
 	 * @since 3.2
 	 */
 	public static IExecutionEnvironmentsManager getExecutionEnvironmentsManager() {
 		return EnvironmentsManager.getDefault();
 	}
-	
+
 	/**
 	 * Perform VM type and VM install initialization. Does not hold locks
 	 * while performing change notification.
-	 * 
+	 *
 	 * @since 3.2
 	 */
 	private static void initializeVMs() {
@@ -2684,7 +2684,7 @@
 								LaunchingPlugin.log(status);
 							}
 						}
-						
+
 						// 3. if there are none, detect the eclipse runtime
 						if (vmDefs.getValidVMList().isEmpty()) {
 							// calling out to detectEclipseRuntime() could allow clients to change
@@ -2733,7 +2733,7 @@
 						}
 						fgDefaultVMId = vmDefs.getDefaultVMInstallCompositeID();
 						fgDefaultVMConnectorId = vmDefs.getDefaultVMInstallConnectorTypeID();
-						
+
 						// Create the underlying VMs for each valid VM
 						List<IVMInstall> vmList = vmDefs.getValidVMList();
 						Iterator<IVMInstall> vmListIterator = vmList.iterator();
@@ -2741,7 +2741,7 @@
 							VMStandin vmStandin = (VMStandin) vmListIterator.next();
 							vmStandin.convertToRealVM();
 						}
-						
+
 
 					} catch (IOException e) {
 						LaunchingPlugin.log(e);
@@ -2761,7 +2761,7 @@
 					fireVMAdded(installs[j]);
 				}
 			}
-			
+
 			// save settings if required
 			if (setPref) {
 				try {
@@ -2777,10 +2777,10 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Update compiler compliance settings based on the given VM.
-	 * 
+	 *
 	 * @param vm the backing {@link IVMInstall}
 	 */
 	private static void updateCompliance(IVMInstall vm) {
@@ -2823,12 +2823,12 @@
             }
         }
 	}
-	
+
 	/**
 	 * Creates a new VM based on the attributes specified in the given execution
 	 * environment description file. The format of the file is defined by
 	 * <code>http://wiki.eclipse.org/Execution_Environment_Descriptions</code>.
-	 * 
+	 *
 	 * @param eeFile VM definition file
 	 * @param name name for the VM, or <code>null</code> if a default name should be assigned
 	 * @param id id to assign to the new VM
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/LibraryLocation.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/LibraryLocation.java
index 6e0850a..7afabad 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/LibraryLocation.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/LibraryLocation.java
@@ -7,7 +7,7 @@
  *
  * Contributors:
  *     IBM Corporation - initial API and implementation
- *     Frits Jalvingh - Contribution for Bug 459831 - [launching] Support attaching 
+ *     Frits Jalvingh - Contribution for Bug 459831 - [launching] Support attaching
  *     	external annotations to a JRE container
  *******************************************************************************/
 package org.eclipse.jdt.launching;
@@ -33,55 +33,55 @@
 	private IPath fPackageRootPath;
 	private URL fJavadocLocation;
 	private URL fIndexLocation;
-	
+
 	/**
 	 * Creates a new library location.
-	 * 
+	 *
 	 * @param libraryPath	The location of the JAR containing java.lang.Object
 	 * 					Must not be <code>null</code>.
 	 * @param sourcePath	The location of the zip file containing the sources for <code>library</code>
 	 * 					Must not be <code>null</code> (Use Path.EMPTY instead)
 	 * @param packageRoot The path inside the <code>source</code> zip file where packages names
-	 * 					  begin. If the source for java.lang.Object source is found at 
-	 * 					  "src/java/lang/Object.java" in the zip file, the 
+	 * 					  begin. If the source for java.lang.Object source is found at
+	 * 					  "src/java/lang/Object.java" in the zip file, the
 	 * 					  packageRoot should be "src"
 	 * 					  Must not be <code>null</code>. (Use Path.EMPTY or IPath.ROOT)
 	 * @throws	IllegalArgumentException	If the library path is <code>null</code>.
-	 */	
+	 */
 	public LibraryLocation(IPath libraryPath, IPath sourcePath, IPath packageRoot) {
 		this(libraryPath, sourcePath, packageRoot, null);
 	}
 
 	/**
 	 * Creates a new library location.
-	 * 
+	 *
 	 * @param libraryPath	The location of the JAR containing java.lang.Object
 	 * 					Must not be <code>null</code>.
 	 * @param sourcePath	The location of the zip file containing the sources for <code>library</code>
 	 * 					Must not be <code>null</code> (Use Path.EMPTY instead)
 	 * @param packageRoot The path inside the <code>source</code> zip file where packages names
-	 * 					  begin. If the source for java.lang.Object source is found at 
-	 * 					  "src/java/lang/Object.java" in the zip file, the 
+	 * 					  begin. If the source for java.lang.Object source is found at
+	 * 					  "src/java/lang/Object.java" in the zip file, the
 	 * 					  packageRoot should be "src"
 	 * 					  Must not be <code>null</code>. (Use Path.EMPTY or IPath.ROOT)
 	 * @param javadocLocation The location of the javadoc for <code>library</code>
 	 * @throws	IllegalArgumentException	If the library path is <code>null</code>.
 	 * @since 3.1
-	 */	
+	 */
 	public LibraryLocation(IPath libraryPath, IPath sourcePath, IPath packageRoot, URL javadocLocation) {
 		this(libraryPath, sourcePath, packageRoot, javadocLocation, null, null);
 	}
 
 	/**
 	 * Creates a new library location.
-	 * 
+	 *
 	 * @param libraryPath	The location of the JAR containing java.lang.Object
 	 * 					Must not be <code>null</code>.
 	 * @param sourcePath	The location of the zip file containing the sources for <code>library</code>
 	 * 					Must not be <code>null</code> (Use Path.EMPTY instead)
 	 * @param packageRoot The path inside the <code>source</code> zip file where packages names
-	 * 					  begin. If the source for java.lang.Object source is found at 
-	 * 					  "src/java/lang/Object.java" in the zip file, the 
+	 * 					  begin. If the source for java.lang.Object source is found at
+	 * 					  "src/java/lang/Object.java" in the zip file, the
 	 * 					  packageRoot should be "src"
 	 * 					  Must not be <code>null</code>. (Use Path.EMPTY or IPath.ROOT)
 	 * @param javadocLocation The location of the javadoc for <code>library</code>
@@ -91,18 +91,18 @@
 	 */
 	public LibraryLocation(IPath libraryPath, IPath sourcePath, IPath packageRoot, URL javadocLocation, URL indexLocation) {
 		this(libraryPath, sourcePath, packageRoot, javadocLocation, indexLocation, null);
-	}		
+	}
 
 	/**
 	 * Creates a new library location.
-	 * 
+	 *
 	 * @param libraryPath	The location of the JAR containing java.lang.Object
 	 * 					Must not be <code>null</code>.
 	 * @param sourcePath	The location of the zip file containing the sources for <code>library</code>
 	 * 					Must not be <code>null</code> (Use Path.EMPTY instead)
 	 * @param packageRoot The path inside the <code>source</code> zip file where packages names
-	 * 					  begin. If the source for java.lang.Object source is found at 
-	 * 					  "src/java/lang/Object.java" in the zip file, the 
+	 * 					  begin. If the source for java.lang.Object source is found at
+	 * 					  "src/java/lang/Object.java" in the zip file, the
 	 * 					  packageRoot should be "src"
 	 * 					  Must not be <code>null</code>. (Use Path.EMPTY or IPath.ROOT)
 	 * @param javadocLocation The location of the javadoc for <code>library</code>
@@ -113,7 +113,7 @@
 	 */
 	public LibraryLocation(IPath libraryPath, IPath sourcePath, IPath packageRoot, URL javadocLocation, URL indexLocation, IPath externalAnnotations) {
 		if (libraryPath == null) {
-			throw new IllegalArgumentException(LaunchingMessages.libraryLocation_assert_libraryNotNull); 
+			throw new IllegalArgumentException(LaunchingMessages.libraryLocation_assert_libraryNotNull);
 		}
 		fSystemLibrary= libraryPath;
 		fSystemLibrarySource= sourcePath;
@@ -122,28 +122,28 @@
 		fIndexLocation = indexLocation;
 		fExternalAnnotations = externalAnnotations == null ? Path.EMPTY : externalAnnotations;
 	}
-	
+
 	/**
 	 * Returns the JRE library jar location.
-	 * 
+	 *
 	 * @return The JRE library jar location.
 	 */
 	public IPath getSystemLibraryPath() {
 		return fSystemLibrary;
 	}
-	
+
 	/**
 	 * Returns the JRE library source zip location.
-	 * 
+	 *
 	 * @return The JRE library source zip location.
 	 */
 	public IPath getSystemLibrarySourcePath() {
 		return fSystemLibrarySource;
-	}	
-	
+	}
+
 	/**
 	 * Return the JRE library external annotations location.
-	 * 
+	 *
 	 * @since 3.8
 	 * @return The file or directory holding external annotations, or Path.EMPTY if not applicable. This will never be null.
 	 */
@@ -153,16 +153,16 @@
 
 	/**
 	 * Returns the path to the default package in the sources zip file
-	 * 
+	 *
 	 * @return The path to the default package in the sources zip file.
 	 */
 	public IPath getPackageRootPath() {
 		return fPackageRootPath;
 	}
-	
+
 	/**
 	 * Returns the Javadoc location associated with this Library location.
-	 * 
+	 *
 	 * @return a {@link URL} pointing to the Javadoc location associated with
 	 * 	this Library location, or <code>null</code> if none
 	 * @since 3.1
@@ -170,10 +170,10 @@
 	public URL getJavadocLocation() {
 		return fJavadocLocation;
 	}
-	
+
 	/**
 	 * Returns the index location associated with this library location.
-	 * 
+	 *
 	 * @return a {@link URL} pointing to the index location associated with
 	 * 	this Library location, or <code>null</code> if none
 	 * @since 3.7
@@ -181,7 +181,7 @@
 	public URL getIndexLocation() {
 		return fIndexLocation;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see java.lang.Object#equals(java.lang.Object)
 	 */
@@ -189,15 +189,15 @@
 	public boolean equals(Object obj) {
 		if (obj instanceof LibraryLocation) {
 			LibraryLocation lib = (LibraryLocation)obj;
-			return getSystemLibraryPath().equals(lib.getSystemLibraryPath()) 
+			return getSystemLibraryPath().equals(lib.getSystemLibraryPath())
 				&& equals(getSystemLibrarySourcePath(), lib.getSystemLibrarySourcePath())
 				&& equals(getExternalAnnotationsPath(), lib.getExternalAnnotationsPath())
 				&& equals(getPackageRootPath(), lib.getPackageRootPath())
 				&& LaunchingPlugin.sameURL(getJavadocLocation(), lib.getJavadocLocation());
-		} 
+		}
 		return false;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see java.lang.Object#hashCode()
 	 */
@@ -205,7 +205,7 @@
 	public int hashCode() {
 		return getSystemLibraryPath().hashCode();
 	}
-	
+
 	/**
 	 * Returns whether the given paths are equal - either may be <code>null</code>.
 	 * @param path1 path to be compared
@@ -215,14 +215,14 @@
 	protected boolean equals(IPath path1, IPath path2) {
 		return equalsOrNull(path1, path2);
 	}
-	
+
 	/**
 	 * Returns whether the given objects are equal - either may be <code>null</code>.
 	 * @param o1 object to be compared
 	 * @param o2 object to be compared
 	 * @return whether the given objects are equal or both null
 	 * @since 3.1
-	 */	
+	 */
 	private boolean equalsOrNull(Object o1, Object o2) {
 		if (o1 == null) {
 			return o2 == null;
@@ -235,7 +235,7 @@
 
 	/**
 	 * Sets the JRE library source zip location.
-	 * 
+	 *
 	 * @param source the source to set
 	 * @since 3.4
 	 */
@@ -245,7 +245,7 @@
 
 	/**
 	 * Sets the index location to the given {@link URL}.
-	 * 
+	 *
 	 * @param indexLoc
 	 * @since 3.7
 	 */
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/PropertyChangeEvent.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/PropertyChangeEvent.java
index 996e1c8..f69f1bc 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/PropertyChangeEvent.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/PropertyChangeEvent.java
@@ -24,7 +24,7 @@
  * @noextend This class is not intended to be subclassed by clients.
  */
 public class PropertyChangeEvent extends EventObject {
-    
+
     /**
      * All serializable objects should have a stable serialVersionUID
      */
@@ -34,28 +34,28 @@
 	 * The name of the changed property.
 	 */
 	private String propertyName;
-	
+
 	/**
 	 * The old value of the changed property, or <code>null</code> if
 	 * not known or not relevant.
 	 */
 	private Object oldValue;
-	
+
 	/**
 	 * The new value of the changed property, or <code>null</code> if
 	 * not known or not relevant.
 	 */
 	private Object newValue;
-	
+
 	/**
 	 * Creates a new property change event.
 	 *
 	 * @param source the object whose property has changed
-	 * @param property the property that has changed (must not be 
+	 * @param property the property that has changed (must not be
 	 *    <code>null</code>)
-	 * @param oldValue the old value of the property, or 
+	 * @param oldValue the old value of the property, or
 	 *    <code>null</code> if none
-	 * @param newValue the new value of the property, or 
+	 * @param newValue the new value of the property, or
 	 *    <code>null</code> if none
 	 */
 	public PropertyChangeEvent(
@@ -63,7 +63,7 @@
 		String property,
 		Object oldValue,
 		Object newValue) {
-	
+
 		super(source);
 		if (property == null) {
 			throw new IllegalArgumentException();
@@ -72,7 +72,7 @@
 		this.oldValue = oldValue;
 		this.newValue = newValue;
 	}
-	
+
 	/**
 	 * Returns the name of the property that changed.
 	 *
@@ -81,7 +81,7 @@
 	public String getProperty() {
 		return propertyName;
 	}
-	
+
 	/**
 	 * Returns the new value of the property.
 	 *
@@ -91,7 +91,7 @@
 	public Object getNewValue() {
 		return newValue;
 	}
-	
+
 	/**
 	 * Returns the old value of the property.
 	 *
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/SocketUtil.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/SocketUtil.java
index 3e9a4ea..46b0ce4 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/SocketUtil.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/SocketUtil.java
@@ -24,13 +24,13 @@
  */
 public class SocketUtil {
 	private static final Random fgRandom= new Random(System.currentTimeMillis());
-	
+
 	/**
 	 * Returns a free port number on the specified host within the given range,
 	 * or -1 if none found.
-	 * 
+	 *
 	 * @param host name or IP address of host on which to find a free port
-	 * @param searchFrom the port number from which to start searching 
+	 * @param searchFrom the port number from which to start searching
 	 * @param searchTo the port number at which to stop searching
 	 * @return a free port in the specified range, or -1 of none found
 	 * @deprecated Use <code>findFreePort()</code> instead. It is possible that this
@@ -46,26 +46,26 @@
 			} catch (ConnectException e) {
 				return port;
 			} catch (IOException e) {
-			} 
+			}
 		}
 		return -1;
 	}
-	
+
 	private static int getRandomPort(int low, int high) {
 		return (int)(fgRandom.nextFloat() * (high-low)) + low;
 	}
-	
+
 	/**
 	 * Returns a free port number on localhost, or -1 if unable to find a free port.
-	 * 
+	 *
 	 * @return a free port number on localhost, or -1 if unable to find a free port
 	 * @since 3.0
 	 */
 	public static int findFreePort() {
 		try (ServerSocket socket = new ServerSocket(0)) {
 			return socket.getLocalPort();
-		} catch (IOException e) { 
+		} catch (IOException e) {
 		}
-		return -1;		
-	}	
+		return -1;
+	}
 }
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/StandardClasspathProvider.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/StandardClasspathProvider.java
index b1cd757..dbf7779 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/StandardClasspathProvider.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/StandardClasspathProvider.java
@@ -44,7 +44,7 @@
 				if (jreEntry == null) {
 					return new IRuntimeClasspathEntry[0];
 				}
-				return new IRuntimeClasspathEntry[]{jreEntry};				
+				return new IRuntimeClasspathEntry[]{jreEntry};
 			}
 			IRuntimeClasspathEntry[] entries = JavaRuntime.computeUnresolvedRuntimeClasspath(proj);
 			// replace project JRE with config's JRE
@@ -72,7 +72,7 @@
 	@Override
 	public IRuntimeClasspathEntry[] resolveClasspath(IRuntimeClasspathEntry[] entries, ILaunchConfiguration configuration) throws CoreException {
 		// use an ordered set to avoid duplicates
-		Set<IRuntimeClasspathEntry> all = new LinkedHashSet<IRuntimeClasspathEntry>(entries.length);
+		Set<IRuntimeClasspathEntry> all = new LinkedHashSet<>(entries.length);
 		for (int i = 0; i < entries.length; i++) {
 			IRuntimeClasspathEntry[] resolved =JavaRuntime.resolveRuntimeClasspathEntry(entries[i], configuration);
 			for (int j = 0; j < resolved.length; j++) {
@@ -81,12 +81,12 @@
 		}
 		return all.toArray(new IRuntimeClasspathEntry[all.size()]);
 	}
-	
+
 	/**
 	 * Returns a collection of runtime classpath entries that are defined in the
 	 * specified attribute of the given launch configuration. When present,
 	 * the attribute must contain a list of runtime classpath entry mementos.
-	 * 
+	 *
 	 * @param configuration launch configuration
 	 * @param attribute attribute name containing the list of entries
 	 * @return collection of runtime classpath entries that are defined in the
@@ -102,7 +102,7 @@
 			rtes[i] = JavaRuntime.newRuntimeClasspathEntry(iter.next());
 			i++;
 		}
-		return rtes;		
-	}	
+		return rtes;
+	}
 
 }
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/StandardSourcePathProvider.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/StandardSourcePathProvider.java
index 77c96aa..0d32cfb 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/StandardSourcePathProvider.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/StandardSourcePathProvider.java
@@ -35,7 +35,7 @@
  * @since 2.0
  */
 public class StandardSourcePathProvider extends StandardClasspathProvider {
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.IRuntimeClasspathProvider#computeUnresolvedClasspath(org.eclipse.debug.core.ILaunchConfiguration)
 	 */
@@ -101,7 +101,7 @@
 
     /**
      * If the given entry is an archive, adds any archives referenced by the associated manifest.
-     * 
+     *
      * @param entry runtime classpath entry
      * @param all list to add references to
      */
@@ -144,10 +144,10 @@
     class UniqueList extends ArrayList<IRuntimeClasspathEntry> {
         private static final long serialVersionUID = -7402160651027036270L;
         HashSet<IRuntimeClasspathEntry> set;
-        
+
         public UniqueList(int length) {
             super(length);
-            set = new HashSet<IRuntimeClasspathEntry>(length);
+            set = new HashSet<>(length);
         }
 
         @Override
@@ -218,7 +218,7 @@
 				return super.set(index, element);
 			}
             return null; //should not happen.
-        }        
+        }
     }
 
 }
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/VMRunnerConfiguration.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/VMRunnerConfiguration.java
index d749324..86037ae 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/VMRunnerConfiguration.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/VMRunnerConfiguration.java
@@ -11,7 +11,7 @@
 
 package org.eclipse.jdt.launching;
 
- 
+
 import java.util.Map;
 
 import org.eclipse.jdt.internal.launching.LaunchingMessages;
@@ -34,9 +34,9 @@
 	private String fWorkingDirectory;
 	private Map<String, Object> fVMSpecificAttributesMap;
 	private boolean fResume = true;
-	
+
 	private static final String[] fgEmpty= new String[0];
-	
+
 	/**
 	 * Creates a new configuration for launching a VM to run the given main class
 	 * using the given class path.
@@ -46,10 +46,10 @@
 	 */
 	public VMRunnerConfiguration(String classToLaunch, String[] classPath) {
 		if (classToLaunch == null) {
-			throw new IllegalArgumentException(LaunchingMessages.vmRunnerConfig_assert_classNotNull); 
+			throw new IllegalArgumentException(LaunchingMessages.vmRunnerConfig_assert_classNotNull);
 		}
 		if (classPath == null) {
-			throw new IllegalArgumentException(LaunchingMessages.vmRunnerConfig_assert_classPathNotNull); 
+			throw new IllegalArgumentException(LaunchingMessages.vmRunnerConfig_assert_classPathNotNull);
 		}
 		fClassToLaunch= classToLaunch;
 		fClassPath= classPath;
@@ -58,7 +58,7 @@
 	/**
 	 * Sets the <code>Map</code> that contains String name/value pairs that represent
 	 * VM-specific attributes.
-	 * 
+	 *
 	 * @param map the <code>Map</code> of VM-specific attributes.
 	 * @since 2.0
 	 */
@@ -67,7 +67,7 @@
 	}
 
 	/**
-	 * Sets the custom VM arguments. These arguments will be appended to the list of 
+	 * Sets the custom VM arguments. These arguments will be appended to the list of
 	 * VM arguments that a VM runner uses when launching a VM. Typically, these VM arguments
 	 * are set by the user.
 	 * These arguments will not be interpreted by a VM runner, the client is responsible for
@@ -77,31 +77,31 @@
 	 */
 	public void setVMArguments(String[] args) {
 		if (args == null) {
-			throw new IllegalArgumentException(LaunchingMessages.vmRunnerConfig_assert_vmArgsNotNull); 
+			throw new IllegalArgumentException(LaunchingMessages.vmRunnerConfig_assert_vmArgsNotNull);
 		}
 		fVMArgs= args;
 	}
-	
+
 	/**
-	 * Sets the custom program arguments. These arguments will be appended to the list of 
-	 * program arguments that a VM runner uses when launching a VM (in general: none). 
+	 * Sets the custom program arguments. These arguments will be appended to the list of
+	 * program arguments that a VM runner uses when launching a VM (in general: none).
 	 * Typically, these VM arguments are set by the user.
 	 * These arguments will not be interpreted by a VM runner, the client is responsible for
 	 * passing arguments compatible with a particular VM runner.
 	 *
-	 * @param args the list of arguments	
+	 * @param args the list of arguments
 	 */
 	public void setProgramArguments(String[] args) {
 		if (args == null) {
-			throw new IllegalArgumentException(LaunchingMessages.vmRunnerConfig_assert_programArgsNotNull); 
+			throw new IllegalArgumentException(LaunchingMessages.vmRunnerConfig_assert_programArgsNotNull);
 		}
 		fProgramArgs= args;
 	}
-	
+
 	/**
 	 * Sets the environment for the Java program. The Java VM will be
 	 * launched in the given environment.
-	 * 
+	 *
 	 * @param environment the environment for the Java program specified as an array
 	 *  of strings, each element specifying an environment variable setting in the
 	 *  format <i>name</i>=<i>value</i>
@@ -110,9 +110,9 @@
 	public void setEnvironment(String[] environment) {
 		fEnvironment= environment;
 	}
-		
+
 	/**
-	 * Sets the boot classpath. Note that the boot classpath will be passed to the 
+	 * Sets the boot classpath. Note that the boot classpath will be passed to the
 	 * VM "as is". This means it has to be complete. Interpretation of the boot class path
 	 * is up to the VM runner this object is passed to.
 	 * <p>
@@ -128,18 +128,18 @@
 	public void setBootClassPath(String[] bootClassPath) {
 		fBootClassPath= bootClassPath;
 	}
-	
+
 	/**
 	 * Returns the <code>Map</code> that contains String name/value pairs that represent
 	 * VM-specific attributes.
-	 * 
+	 *
 	 * @return The <code>Map</code> of VM-specific attributes or <code>null</code>.
 	 * @since 2.0
 	 */
 	public Map<String, Object> getVMSpecificAttributesMap() {
 		return fVMSpecificAttributesMap;
 	}
-	
+
 	/**
 	 * Returns the name of the class to launch.
 	 *
@@ -148,7 +148,7 @@
 	public String getClassToLaunch() {
 		return fClassToLaunch;
 	}
-	
+
 	/**
 	 * Returns the classpath.
 	 *
@@ -157,14 +157,14 @@
 	public String[] getClassPath() {
 		return fClassPath;
 	}
-	
+
 	/**
 	 * Returns the boot classpath. An empty array indicates an empty
 	 * bootpath and <code>null</code> indicates a default bootpath.
 	 * <p>
 	 * In 3.0, support has been added for prepending and appending to the
 	 * boot classpath. The new attributes are stored in the VM specific
-	 * attributes map using the following keys defined in 
+	 * attributes map using the following keys defined in
 	 * <code>IJavaLaunchConfigurationConstants</code>:
 	 * <ul>
 	 * <li>ATTR_BOOTPATH_PREPEND</li>
@@ -193,7 +193,7 @@
 		}
 		return fVMArgs;
 	}
-	
+
 	/**
 	 * Returns the arguments to the Java program.
 	 *
@@ -206,20 +206,20 @@
 		}
 		return fProgramArgs;
 	}
-	
+
 	/**
 	 * Returns the environment for the Java program or <code>null</code>
-	 * 
+	 *
 	 * @return The Java program environment. Default is <code>null</code>
 	 * @since 3.0
 	 */
 	public String[] getEnvironment() {
 		return fEnvironment;
 	}
-	
+
 	/**
 	 * Sets the working directory for a launched VM.
-	 * 
+	 *
 	 * @param path the absolute path to the working directory
 	 *  to be used by a launched VM, or <code>null</code> if
 	 *  the default working directory is to be inherited from the
@@ -229,10 +229,10 @@
 	public void setWorkingDirectory(String path) {
 		fWorkingDirectory = path;
 	}
-	
+
 	/**
 	 * Returns the working directory of a launched VM.
-	 * 
+	 *
 	 * @return the absolute path to the working directory
 	 *  of a launched VM, or <code>null</code> if the working
 	 *  directory is inherited from the current process
@@ -240,24 +240,24 @@
 	 */
 	public String getWorkingDirectory() {
 		return fWorkingDirectory;
-	}	
-	
+	}
+
 	/**
 	 * Sets whether the VM is resumed on startup when launched in
 	 * debug mode. Has no effect when not in debug mode.
-	 *  
+	 *
 	 * @param resume whether to resume the VM on startup
 	 * @since 3.0
 	 */
 	public void setResumeOnStartup(boolean resume) {
 		fResume = resume;
 	}
-	
+
 	/**
 	 * Returns whether the VM is resumed on startup when launched
 	 * in debug mode. Has no effect when no in debug mode. Default
 	 * value is <code>true</code> for backwards compatibility.
-	 * 
+	 *
 	 * @return whether to resume the VM on startup
 	 * @since 3.0
 	 */
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/VMStandin.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/VMStandin.java
index 407f3eb..12bc05d 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/VMStandin.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/VMStandin.java
@@ -15,10 +15,10 @@
 import java.util.Map.Entry;
 
 /**
- * An implementation of IVMInstall that is used for manipulating VMs without necessarily 
+ * An implementation of IVMInstall that is used for manipulating VMs without necessarily
  * committing changes.
  * <p>
- * Instances of this class act like wrappers.  All other instances of IVMInstall represent 
+ * Instances of this class act like wrappers.  All other instances of IVMInstall represent
  * 'real live' VMs that may be used for building or launching.  Instances of this class
  * behave like 'temporary' VMs that are not visible and not available for building or launching.
  * </p>
@@ -32,12 +32,12 @@
  * <p>
  * Clients may instantiate this class.
  * </p>
- * 
+ *
  * @since 2.1
  * @noextend This class is not intended to be sub-classed by clients.
  */
 public class VMStandin extends AbstractVMInstall {
-    
+
     /**
      * <code>java.version</code> system property, or <code>null</code>
      * @since 3.1
@@ -51,11 +51,11 @@
 		super(type, id);
 		setNotify(false);
 	}
-	
+
 	/**
 	 * Constructs a copy of the specified VM with the given identifier.
-	 * 
-	 * @param sourceVM the original VM 
+	 *
+	 * @param sourceVM the original VM
 	 * @param id the new ID to use
 	 * @since 3.2
 	 */
@@ -64,12 +64,12 @@
 		setNotify(false);
 		init(sourceVM);
 	}
-	
+
 	/**
 	 * Construct a <code>VMStandin</code> instance based on the specified <code>IVMInstall</code>.
 	 * Changes to this stand-in will not be reflected in the 'real' VM until <code>convertToRealVM</code>
 	 * is called.
-	 * 
+	 *
 	 * @param realVM the 'real' VM from which to construct this stand-in VM
 	 */
 	public VMStandin(IVMInstall realVM) {
@@ -80,7 +80,7 @@
 	/**
 	 * Initializes the settings of this stand-in based on the settings in the given
 	 * VM install.
-	 * 
+	 *
 	 * @param realVM VM to copy settings from
 	 */
 	private void init(IVMInstall realVM) {
@@ -91,7 +91,7 @@
 		if (realVM instanceof IVMInstall2) {
 			IVMInstall2 vm2 = (IVMInstall2) realVM;
 			setVMArgs(vm2.getVMArgs());
-	        fJavaVersion = vm2.getJavaVersion();			
+	        fJavaVersion = vm2.getJavaVersion();
 		} else {
 			setVMArguments(realVM.getVMArguments());
 			fJavaVersion = null;
@@ -106,11 +106,11 @@
 			}
 		}
 	}
-	
+
 	/**
-	 * If no corresponding 'real' VM exists, create one and populate it from this stand-in instance. 
+	 * If no corresponding 'real' VM exists, create one and populate it from this stand-in instance.
 	 * If a corresponding VM exists, update its attributes from this stand-in instance.
-	 * 
+	 *
 	 * @return IVMInstall the 'real' corresponding to this stand-in VM
 	 */
 	@SuppressWarnings("deprecation")
@@ -118,7 +118,7 @@
 		IVMInstallType vmType= getVMInstallType();
 		IVMInstall realVM= vmType.findVMInstall(getId());
 		boolean notify = true;
-		
+
 		if (realVM == null) {
 			realVM= vmType.createVMInstall(getId());
 			notify = false;
@@ -137,7 +137,7 @@
 		} else {
 			realVM.setVMArguments(getVMArguments());
 		}
-		
+
 		if (realVM instanceof AbstractVMInstall) {
 			AbstractVMInstall avm = (AbstractVMInstall) realVM;
 			Iterator<Entry<String, String>> iterator = getAttributes().entrySet().iterator();
@@ -146,13 +146,13 @@
 				avm.setAttribute(entry.getKey(), entry.getValue());
 			}
 			avm.setNotify(true);
-		}		
+		}
 		if (!notify) {
 			JavaRuntime.fireVMAdded(realVM);
 		}
 		return realVM;
 	}
-		
+
     /* (non-Javadoc)
      * @see org.eclipse.jdt.launching.IVMInstall#getJavaVersion()
      */
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/environments/CompatibleEnvironment.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/environments/CompatibleEnvironment.java
index 9ec8920..ecfb182 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/environments/CompatibleEnvironment.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/environments/CompatibleEnvironment.java
@@ -32,11 +32,11 @@
 
 	private IExecutionEnvironment fEnvironment;
 	private boolean fIsStrictlyCompatible;
-	
+
 	/**
 	 * Constructs a new compatible environment result from an execution environment
 	 * analysis.
-	 * 
+	 *
 	 * @param environment the environment a vm install is compatible with
 	 * @param strict whether the vm install is strictly compatible with the
 	 *  environment or represents a superset of the environment
@@ -45,23 +45,23 @@
 		fEnvironment = environment;
 		fIsStrictlyCompatible = strict;
 	}
-	
+
 	/**
 	 * Returns an environment compatible with the vm being analyzed.
-	 *  
+	 *
 	 * @return compatible execution environment
 	 */
 	public IExecutionEnvironment getCompatibleEnvironment() {
 		return fEnvironment;
 	}
-	
+
 	/**
 	 * Returns whether the analyzed vm install is strictly compatible with the compatible
 	 * environment or represents a superset of the environment. Returning <code>true</code>
 	 * indicates the analyzed vm install is strictly contained within the environment. Returning
 	 * <code>false</code> indicates that the analyzed vm install represents more a superset of
 	 * the environment.
-	 * 
+	 *
 	 * @return whether the analyzed vm install is strictly contained within the environment
 	 */
 	public boolean isStrictlyCompatbile() {
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/environments/ExecutionEnvironmentDescription.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/environments/ExecutionEnvironmentDescription.java
index 1786f17..eb08641 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/environments/ExecutionEnvironmentDescription.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/environments/ExecutionEnvironmentDescription.java
@@ -46,7 +46,7 @@
  * files. An execution environment description file can be used to define attributes relevant
  * the launching of a specific JRE configuration. The format of the file is defined by
  * code>http://wiki.eclipse.org/Execution_Environment_Descriptions</code>.
- * 
+ *
  * @since 3.5
  */
 public final class ExecutionEnvironmentDescription {
@@ -57,13 +57,13 @@
 	public static final String ENDORSED_DIRS = "-Dee.endorsed.dirs";  //$NON-NLS-1$
 	/**
 	 * Boot class path property name in an execution environment description file.
-	 */	
+	 */
 	public static final String BOOT_CLASS_PATH = "-Dee.bootclasspath";  //$NON-NLS-1$
 	/**
 	 * Source archive property name in an execution environment description file.
 	 * Value is a path. When present, the source attachment for each library in the boot
 	 * class path will be the file specified by this property.
-	 */	
+	 */
 	public static final String SOURCE_DEFAULT = "-Dee.src";  //$NON-NLS-1$
 	/**
 	 * Source map property name in an execution environment description file.
@@ -76,7 +76,7 @@
 	 * wild card replacement in the <code>libPath</code>. In this case the wild card characters in the
 	 * <code>sourcePath</code> must exist in the same order as the <code>libPath</code>.
 	 * For example, <code>lib/foo*.???=source/src*foo.???</code>.
-	 * </p> 
+	 * </p>
 	 */
 	public static final String SOURCE_MAP = "-Dee.src.map";  //$NON-NLS-1$
 	/**
@@ -93,10 +93,10 @@
 	 * Pre-built index location property in an execution environment description file.
 	 * <p>
 	 * Specifies the location for a pre-built search index. Must be a valid {@link URL}.
-	 * 
+	 *
 	 * You can use <code>${ee.home}</code> and <code>'..'</code> segments to specify a file location
 	 * relative to the ee file.
-	 * 
+	 *
 	 * If this property is not specified the default value of <code>null</code> will be used.
 	 * </p>
 	 * @since 3.7
@@ -143,10 +143,10 @@
 	/**
 	 * Debug arguments property name in an execution environment description file.
 	 * <p>
-	 * The arguments to use to launch the VM in debug mode. For example 
+	 * The arguments to use to launch the VM in debug mode. For example
 	 * <code>"-agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:${port}"</code>.
 	 * The <code>${port}</code> variable will be substituted with a free port at launch time.
-	 * When unspecified, default arguments are constructed based on the language level of the VM. 
+	 * When unspecified, default arguments are constructed based on the language level of the VM.
 	 * </p>
 	 */
 	public static final String DEBUG_ARGS = "-Dee.debug.args";  //$NON-NLS-1$
@@ -156,101 +156,101 @@
 	 * The name is used as the JRE name when installing an EE JRE into Eclipse.
 	 * </p>
 	 */
-	public static final String EE_NAME = "-Dee.name";  //$NON-NLS-1$	
+	public static final String EE_NAME = "-Dee.name";  //$NON-NLS-1$
 	/**
 	 * The directory containing the execution environment description file. Relative paths are resolved
 	 * relative to this location. This property will be set if not present, it does not need to be
 	 * specified in the file.
 	 */
 	public static final String EE_HOME = "-Dee.home"; //$NON-NLS-1$
-	
+
 	/**
 	 * Substitution in EE file - replaced with directory of EE file,
 	 * to support absolute path names where needed. If the value is not in the
 	 * file, it is set when properties are created.
 	 */
-	private static final String VAR_EE_HOME = "${ee.home}"; //$NON-NLS-1$	
-	
+	private static final String VAR_EE_HOME = "${ee.home}"; //$NON-NLS-1$
+
 	/**
 	 * Any line found in the description starting with this string will not be added to the
 	 * VM argument list
 	 */
-	private static final String EE_ARG_FILTER = "-Dee."; //$NON-NLS-1$	
-	
+	private static final String EE_ARG_FILTER = "-Dee."; //$NON-NLS-1$
+
 	// Regex constants for handling the source mapping
 	private static final Character WILDCARD_SINGLE_CHAR = new Character('?');
 	private static final Character WILDCARD_MULTI_CHAR = new Character('*');
-	private static final String REGEX_SPECIAL_CHARS = "+()^$.{}[]|\\"; //$NON-NLS-1$	
-	
+	private static final String REGEX_SPECIAL_CHARS = "+()^$.{}[]|\\"; //$NON-NLS-1$
+
 	/**
 	 * Execution environment description properties
 	 */
 	private Map<String, String> fProperties = null;
-	
+
 	/**
 	 * Creates an execution environment description based on the properties defined in the given
 	 * execution environment description file. The format of the file is defined by
 	 * <code>http://wiki.eclipse.org/Execution_Environment_Descriptions</code>.
-	 * 
+	 *
 	 * @param eeFile execution environment description file
 	 * @throws CoreException if unable to read or parse the file
 	 */
 	public ExecutionEnvironmentDescription(File eeFile) throws CoreException {
 		initProperties(eeFile);
 	}
-	
+
 	/**
 	 * Returns a map of properties defined in this execution environment description.
 	 * Properties in the file that do not have a value assigned to them are returned in the keys
 	 * with an empty string as the value. Variable substitutions for <code>${ee.home}</code>
 	 * have already been performed when resolving property values.
-	 * 
+	 *
 	 * @return properties as a map of {@link String} keys and values
 	 */
 	public Map<String, String> getProperties() {
 		return fProperties;
 	}
-	
+
 	/**
 	 * Returns the specified property from this description, or <code>null</code>
 	 * if none.
-	 * 
+	 *
 	 * @param property property name
 	 * @return property value or <code>null</code>
 	 */
 	public String getProperty(String property) {
 		return fProperties.get(property);
 	}
-	
+
 	/**
 	 * Returns the location of the system libraries defined in this execution environment.
 	 * Libraries are generated from the endorsed directories, boot class path, additional
 	 * directories, and extension directories specified by this description and are returned
 	 * in that order. Source attachments are configured based on <code>src</code> and
 	 * <code>src.map</code> properties.
-	 * 
+	 *
 	 * @return library locations, possibly empty
-	 */	
+	 */
 	public LibraryLocation[] getLibraryLocations() {
-		List<LibraryLocation> allLibs = new ArrayList<LibraryLocation>(); 
-		
+		List<LibraryLocation> allLibs = new ArrayList<>();
+
 		String dirs = getProperty(ENDORSED_DIRS);
 		if (dirs != null) {
 			// Add all endorsed libraries - they are first, as they replace
 			allLibs.addAll(StandardVMType.gatherAllLibraries(resolvePaths(dirs)));
 		}
-		
+
 		// next is the boot path libraries
 		dirs = getProperty(BOOT_CLASS_PATH);
 		if (dirs != null) {
 			String[] bootpath = resolvePaths(dirs);
-			List<LibraryLocation> boot = new ArrayList<LibraryLocation>(bootpath.length);
+			List<LibraryLocation> boot = new ArrayList<>(bootpath.length);
 			IPath src = getSourceLocation();
 			URL url = getJavadocLocation();
 			URL indexurl = getIndexLocation();
 			for (int i = 0; i < bootpath.length; i++) {
 				IPath path = new Path(bootpath[i]);
-				File lib = path.toFile(); 
+				File lib = path.toFile();
 				if (lib.exists() && lib.isFile()) {
 					LibraryLocation libraryLocation = new LibraryLocation(path,	src, Path.EMPTY, url, indexurl);
 					boot.add(libraryLocation);
@@ -258,22 +258,22 @@
 			}
 			allLibs.addAll(boot);
 		}
-		
+
 		// Add all additional libraries
 		dirs = getProperty(ADDITIONAL_DIRS);
 		if (dirs != null) {
 			allLibs.addAll(StandardVMType.gatherAllLibraries(resolvePaths(dirs)));
 		}
-				
+
 		// Add all extension libraries
 		dirs = getProperty(EXTENSION_DIRS);
 		if (dirs != null) {
 			allLibs.addAll(StandardVMType.gatherAllLibraries(resolvePaths(dirs)));
 		}
-		
-		
+
+
 		//remove duplicates
-		HashSet<String> set = new HashSet<String>();
+		HashSet<String> set = new HashSet<>();
 		LibraryLocation lib = null;
 		for(ListIterator<LibraryLocation> liter = allLibs.listIterator(); liter.hasNext();) {
 			lib = liter.next();
@@ -282,19 +282,19 @@
 				liter.remove();
 			}
 		}
-		
+
 		// If the ee.src.map property is specified, use it to associate source locations with the libraries
 		addSourceLocationsToLibraries(getSourceMap(), allLibs);
-		
+
 		return allLibs.toArray(new LibraryLocation[allLibs.size()]);
 	}
-	
+
 	/**
 	 * Returns VM arguments in this description or <code>null</code> if none. VM arguments
 	 * correspond to all properties in this description that do not begin with "-Dee."
 	 * concatenated together with spaces. Any single VM argument that contains spaces
 	 * itself is surrounded with quotes.
-	 * 
+	 *
 	 * @return VM arguments or <code>null</code> if none
 	 */
 	public String getVMArguments() {
@@ -324,14 +324,14 @@
 		}
 		return arguments.toString();
 	}
-	
+
 	/**
 	 * Returns the executable for this description as a file or <code>null</code> if
 	 * not specified.
-	 * 
+	 *
 	 * @return standard (non-console) executable or <code>null</code> if none
 	 */
-	public File getExecutable() { 
+	public File getExecutable() {
 		String property = getProperty(ExecutionEnvironmentDescription.EXECUTABLE);
 		if (property != null) {
 			String[] paths = resolvePaths(property);
@@ -340,15 +340,15 @@
 			}
 		}
 		return null;
-	}	
-	
+	}
+
 	/**
 	 * Returns the console executable for this description as a file or <code>null</code> if
 	 * not specified.
-	 * 
+	 *
 	 * @return console executable or <code>null</code> if none
 	 */
-	public File getConsoleExecutable() { 
+	public File getConsoleExecutable() {
 		String property = getProperty(ExecutionEnvironmentDescription.EXECUTABLE_CONSOLE);
 		if (property != null) {
 			String[] paths = resolvePaths(property);
@@ -358,16 +358,16 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Initializes the properties in the given execution environment
 	 * description file.
-	 * 
+	 *
 	 * @param eeFile the EE file
 	 * @exception CoreException if unable to read the file
 	 */
 	private void initProperties(File eeFile) throws CoreException {
-		Map<String, String> properties = new LinkedHashMap<String, String>();
+		Map<String, String> properties = new LinkedHashMap<>();
 		String eeHome = eeFile.getParentFile().getAbsolutePath();
 		try (FileReader reader = new FileReader(eeFile); BufferedReader bufferedReader = new BufferedReader(reader);) {
 			String line = bufferedReader.readLine();
@@ -402,7 +402,7 @@
 		// resolve things with ${ee.home} in them
 		fProperties = properties; // needs to be done to resolve
 		Iterator<Entry<String, String>> entries = properties.entrySet().iterator();
-		Map<String, String> resolved = new LinkedHashMap<String, String>(properties.size()); 
+		Map<String, String> resolved = new LinkedHashMap<>(properties.size());
 		while (entries.hasNext()) {
 			Entry<String, String> entry = entries.next();
 			String key = entry.getKey();
@@ -415,12 +415,12 @@
 			}
 		}
 		fProperties = resolved;
-	}	
-	
+	}
+
 	/**
 	 * Replaces and returns a string with all occurrences of
 	 * "${ee.home} replaced with its value.
-	 * 
+	 *
 	 * @param value string to process
 	 * @return resolved string
 	 */
@@ -443,12 +443,12 @@
 			return replaced.toString();
 		}
 		return value;
-	}	
-	
+	}
+
 	/**
 	 * Returns all path strings contained in the given string based on system
 	 * path delimiter, resolved relative to the <code>${ee.home}</code> property.
-	 * 
+	 *
 	 * @param paths the paths to resolve
 	 * @return array of individual paths
 	 */
@@ -461,12 +461,12 @@
 		}
 		return strings;
 	}
-	
+
 	/**
 	 * Returns a string representing the absolute form of the given path.  If the
 	 * given path is not absolute, it is appended to the given root path.  The returned
 	 * path will always be the OS specific string form of the path.
-	 * 
+	 *
 	 * @param pathString string representing the path to make absolute
 	 * @param root root to append non-absolute paths to
 	 * @return absolute, OS specific path
@@ -478,13 +478,13 @@
 			return filePath.toOSString();
 		}
 		return path.toOSString();
-	}	
-	
+	}
+
 	/**
 	 * Creates a map (regex string to regex string) mapping library locations to their
 	 * source locations.  This is done by taking the ee.src.map property from the ee file
 	 * which allows a list of mappings that can use the wildcards ? (any one char) and *
-	 * (any series of chars).  The property is converted to a map of regex strings used by 
+	 * (any series of chars).  The property is converted to a map of regex strings used by
 	 * {@link #addSourceLocationsToLibraries(Map, List)}.
 	 * <pre>
 	 * Example property, separated onto separate lines for easier reading
@@ -493,13 +493,13 @@
 	 *              ${ee.home}\lib\jclDEE\*.zip=lib\jclDEE\source\*-src.zip;
 	 *              ${ee.home}\lib\jclDEE\ext\*.???=lib\jclDEE\source\*-src.???;
 	 * </pre>
-	 * 
-	 * 
+	 *
+	 *
 	 * @return map containing regexs mapping library locations to their source locations
 	 */
 	private Map<String, String> getSourceMap(){
 		String srcMapString = getProperty(SOURCE_MAP);
-		Map<String, String> srcMap = new HashMap<String, String>();
+		Map<String, String> srcMap = new HashMap<>();
 		if (srcMapString != null){
 			// Entries must be separated by the file separator and have an equals splitting the lib location from the src location
 			String[] entries = srcMapString.split(File.pathSeparator);
@@ -511,8 +511,8 @@
 					String value = entries[i].substring(index+1);
 					key = makePathAbsolute(key, root);
 					value = makePathAbsolute(value, root);
-					
-					List<Character> wildcards = new ArrayList<Character>();
+
+					List<Character> wildcards = new ArrayList<>();
 					StringBuffer keyBuffer = new StringBuffer();
 				    char [] chars = key.toCharArray();
 				    // Convert lib location to a regex, replace wildcards with grouped equivalents, keep track of used wildcards, allow '\' and '/' to be used, escape special chars
@@ -529,7 +529,7 @@
 						    keyBuffer.append(chars[j]);
 						}
 					}
-					
+
 					int currentWild = 0;
 					StringBuffer valueBuffer = new StringBuffer();
 					chars = value.toCharArray();
@@ -555,22 +555,22 @@
 							valueBuffer.append(chars[j]);
 						}
 					}
-					
+
 					srcMap.put(keyBuffer.toString(), valueBuffer.toString());
-					
+
 				} else {
 					LaunchingPlugin.log(NLS.bind(LaunchingMessages.EEVMType_6, new String[]{entries[i]}));
 				}
 			}
 		}
 		return srcMap;
-	}	
+	}
 
 	/**
 	 * Uses the given src map to find source libraries that are associated with the
 	 * library locations in the list.  The library locations are updated with the
 	 * found source path.
-	 * 
+	 *
 	 * @param srcMap mapping of library location regexs to source location regexs
 	 * @param libraries list of {@link LibraryLocation} objects to update with source locations
 	 * @see #getSourceMap()
@@ -592,16 +592,16 @@
 					if (sourcePath.toFile().exists()){
 						currentLibrary.setSystemLibrarySource(sourcePath);
 					}
-					
+
 				}
 			}
 		}
-	}	
-	
+	}
+
 	/**
 	 * Returns the location of the default source archive for this description or the empty
 	 * path if none.
-	 * 
+	 *
 	 * @return default source archive location or Path.EMPTY if none
 	 */
 	private IPath getSourceLocation() {
@@ -612,21 +612,21 @@
 			return new Path(src);
 		}
 		return Path.EMPTY;
-	}		
-	
+	}
+
 	/**
 	 * Returns the javadoc location or <code>null</code> if unable to determine one.
 	 * A default one is generated if not present, based on language level.
-	 * 
+	 *
 	 * @return javadoc location or <code>null</code> if none
 	 */
 	private URL getJavadocLocation() {
 		return EEVMType.getJavadocLocation(fProperties);
-	}		
-	
+	}
+
 	/**
 	 * Returns the {@link URL} for the index location or <code>null</code> if one has not been set.
-	 * 
+	 *
 	 * @return the index {@link URL} or <code>null</code>
 	 * @since 3.7.0
 	 */
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/environments/IAccessRuleParticipant.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/environments/IAccessRuleParticipant.java
index 6ffe8e6..b43037b 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/environments/IAccessRuleParticipant.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/environments/IAccessRuleParticipant.java
@@ -17,7 +17,7 @@
 
 /**
  * Contributes access rules for an execution environment. Contributed with
- * an execution environments extension. 
+ * an execution environments extension.
  * <p>
  * Clients contributing an access rule participant may implement this interface.
  * </p>
@@ -30,10 +30,10 @@
 	 * libraries and execution environment in the context of the given project.
 	 * An array of access rules is returned for each library specified by
 	 * <code>libraries</code>, possibly empty.
-	 * 
+	 *
 	 * @param environment the environment that access rules are requested for
 	 * @param vm the vm that access rules are requested for
-	 * @param libraries the libraries that access rules are requested for 
+	 * @param libraries the libraries that access rules are requested for
 	 * @param project the project the access rules are requested for or <code>null</code> if none
 	 * @return a collection of arrays of access rules - one array per library, possibly empty
 	 * @since 3.3
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/environments/IExecutionEnvironment.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/environments/IExecutionEnvironment.java
index a35befa..cfbdb50 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/environments/IExecutionEnvironment.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/environments/IExecutionEnvironment.java
@@ -36,60 +36,60 @@
  * @noextend This interface is not intended to be extended by clients.
  */
 public interface IExecutionEnvironment {
-	
+
 	/**
 	 * Returns a unique identifier for this execution environment.
 	 * Corresponds to the <code>id</code> attribute in plug-in XML.
-	 * 
+	 *
 	 * @return unique identifier of this execution environment
 	 */
 	public String getId();
-	
+
 	/**
 	 * Returns a brief human-readable description of this environment.
-	 * 
+	 *
 	 * @return brief human-readable description of this environment.
 	 */
 	public String getDescription();
-	
+
 	/**
 	 * Returns a collection of VM installs compatible with this environment,
 	 * possibly empty.
-	 * 
+	 *
 	 * @return a collection of VM installs compatible with this environment,
 	 *  possibly empty.
 	 */
 	public IVMInstall[] getCompatibleVMs();
-	
+
 	/**
-	 * Returns whether the specified VM install is strictly compatible with 
+	 * Returns whether the specified VM install is strictly compatible with
 	 * this environment. Returns <code>true</code> to indicate the VM install
 	 * is strictly compatible with this environment and <code>false</code> to indicate
 	 * the VM install represents a superset of this environment.
-	 * 
+	 *
 	 * @param vm VM install
 	 * @return whether the VM install is strictly compatible with this environment
 	 */
 	public boolean isStrictlyCompatible(IVMInstall vm);
-	
+
 	/**
 	 * Returns the VM that is used by default for this execution environment,
 	 * or <code>null</code> if none.
-	 * 
+	 *
 	 * @return default VM for this environment or <code>null</code> if none
 	 */
 	public IVMInstall getDefaultVM();
-	
+
 	/**
 	 * Sets the VM to use by default for this execution environment.
-	 * 
+	 *
 	 * @param vm VM to use by default for this execution environment,
 	 *  or <code>null</code> to clear the default setting
 	 * @exception IllegalArgumentException if the given VM is not compatible with
 	 *  this environment
 	 */
 	public void setDefaultVM(IVMInstall vm);
-	
+
 	/**
 	 * Returns a collection of access rules to be applied to the specified VM
 	 * libraries for this execution environment in the context of the given project.
@@ -101,37 +101,37 @@
 	 * extension.
 	 * </p>
 	 * @param vm the VM that access rules are requested for
-	 * @param libraries the libraries that access rules are requested for 
+	 * @param libraries the libraries that access rules are requested for
 	 * @param project the project the access rules are requested for or <code>null</code> if none
 	 * @return a collection of arrays of access rules - one array per library
 	 * @since 3.3
 	 */
 	public IAccessRule[][] getAccessRules(IVMInstall vm, LibraryLocation[] libraries, IJavaProject project);
-	
+
 	/**
 	 * Returns the OSGi profile properties associated with this execution environment
 	 * or <code>null</code> if none. Profile properties specify attributes such as
 	 * {@link org.osgi.framework.Constants#FRAMEWORK_SYSTEMPACKAGES}. Profile properties
-	 * can be optionally contributed with an execution environment extension.  
-	 * 
+	 * can be optionally contributed with an execution environment extension.
+	 *
 	 * @return associated profile properties or <code>null</code> if none
 	 * @since 3.5
 	 */
 	public Properties getProfileProperties();
-	
+
 	/**
 	 * Returns a collection of execution environments that are subsets of this environment.
-	 * 
+	 *
 	 * @return a collection of execution environments that are subsets of this environment
 	 * @since 3.5
 	 */
 	public IExecutionEnvironment[] getSubEnvironments();
-	
+
 	/**
 	 * Returns a map of Eclipse Java compiler options specified as default settings to
 	 * use when building with this profile, or <code>null</code> if unspecified.
-	 * 
-	 * @return a map of Eclipse Java compiler options associated with this profile or 
+	 *
+	 * @return a map of Eclipse Java compiler options associated with this profile or
 	 * 	<code>null</code>
 	 * @since 3.5
 	 */
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/environments/IExecutionEnvironmentAnalyzerDelegate.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/environments/IExecutionEnvironmentAnalyzerDelegate.java
index b02e09e..7908b8b 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/environments/IExecutionEnvironmentAnalyzerDelegate.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/environments/IExecutionEnvironmentAnalyzerDelegate.java
@@ -18,7 +18,7 @@
  * Analyzes vm installs for compatibility with execution environments.
  * <p>
  * An execution environment analyzer delegate is contributed in plug-in XML via
- * the <code>org.eclipse.jdt.launching.executionEnvironments</code> 
+ * the <code>org.eclipse.jdt.launching.executionEnvironments</code>
  * extension point.
  * </p>
  * <p>
@@ -27,11 +27,11 @@
  * @since 3.2
  */
 public interface IExecutionEnvironmentAnalyzerDelegate {
-	
+
 	/**
 	 * Analyzes the given vm install and returns a collection of compatible
 	 * execution environments, possibly empty.
-	 * 
+	 *
 	 * @param vm vm install to analyze
 	 * @param monitor progress monitor
 	 * @return compatible execution environments, possibly empty
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/environments/IExecutionEnvironmentsManager.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/environments/IExecutionEnvironmentsManager.java
index d3ff4cf..01f5011 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/environments/IExecutionEnvironmentsManager.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/environments/IExecutionEnvironmentsManager.java
@@ -21,21 +21,21 @@
 public interface IExecutionEnvironmentsManager {
 
 	/**
-	 * Returns all registered execution environments sorted by their id. 
-	 * 
+	 * Returns all registered execution environments sorted by their id.
+	 *
 	 * @see IExecutionEnvironment#getId()
-	 * 
+	 *
 	 * @return all registered execution environments sorted by their id
 	 */
 	public IExecutionEnvironment[] getExecutionEnvironments();
-	
+
 	/**
 	 * Returns the execution environment associated with the given
 	 * identifier or <code>null</code> if none.
-	 * 
-	 * @param id execution environment identifier 
+	 *
+	 * @param id execution environment identifier
 	 * @return execution environment or <code>null</code>
 	 */
 	public IExecutionEnvironment getEnvironment(String id);
-		
+
 }
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/ArchiveSourceLocation.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/ArchiveSourceLocation.java
index 58139f9..d244b93 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/ArchiveSourceLocation.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/ArchiveSourceLocation.java
@@ -39,7 +39,7 @@
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 import org.xml.sax.helpers.DefaultHandler;
- 
+
 /**
  * Locates source elements in an archive (zip) in the local file system. Returns
  * instances of <code>ZipEntryStorage</code>.
@@ -61,16 +61,16 @@
  */
 @Deprecated
 public class ArchiveSourceLocation extends PlatformObject implements IJavaSourceLocation {
-	
+
 	/**
 	 * Cache of shared zip files. Zip files are closed
 	 * when the launching plug-in is shutdown.
 	 */
-	private static HashMap<String, ZipFile> fZipFileCache = new HashMap<String, ZipFile>(5);
+	private static HashMap<String, ZipFile> fZipFileCache = new HashMap<>(5);
 
 	/**
 	 * Returns a zip file with the given name
-	 * 
+	 *
 	 * @param name zip file name
 	 * @return The zip file with the given name
 	 * @exception IOException if unable to create the specified zip
@@ -86,7 +86,7 @@
 			return zip;
 		}
 	}
-	
+
 	/**
 	 * Closes all zip files that have been opened,
 	 * and removes them from the zip file cache.
@@ -109,33 +109,33 @@
 			fZipFileCache.clear();
 		}
 	}
-	
+
 	/**
 	 * The root source folder in the archive
 	 */
 	private IPath fRootPath;
-	
+
 	/**
 	 * Whether the root path has been detected (or set)
 	 */
 	private boolean fRootDetected = false;
-	
+
 	/**
 	 * The name of the archive
 	 */
 	private String fName;
 
 	/**
-	 * Constructs a new empty source location to be initialized with 
+	 * Constructs a new empty source location to be initialized with
 	 * a memento.
 	 */
 	public ArchiveSourceLocation() {
 	}
-		
+
 	/**
 	 * Constructs a new source location that will retrieve source
 	 * elements from the zip file with the given name.
-	 * 
+	 *
 	 * @param archiveName zip file
 	 * @param sourceRoot a path to the root source folder in the
 	 *  specified archive, or <code>null</code> if the root source folder
@@ -146,7 +146,7 @@
 		setName(archiveName);
 		setRootPath(sourceRoot);
 	}
-		
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.sourcelookup.IJavaSourceLocation#findSourceElement(java.lang.String)
 	 */
@@ -156,7 +156,7 @@
 			if (getArchive() == null) {
 				return null;
 			}
-			
+
 			boolean possibleInnerType = false;
 			String pathStr= name.replace('.', '/');
 			int lastSlash = pathStr.lastIndexOf('/');
@@ -166,7 +166,7 @@
 				autoDetectRoot(entryPath);
 				if (getRootPath() != null) {
 					entryPath = getRootPath().append(entryPath);
-				}				
+				}
 				ZipEntry entry = getArchive().getEntry(entryPath.toString());
 				if (entry != null) {
 					return new ZipEntryStorage(getArchive(), entry);
@@ -177,18 +177,18 @@
 					possibleInnerType = true;
 				} else {
 					possibleInnerType = false;
-				}						
-			} while (possibleInnerType);						
+				}
+			} while (possibleInnerType);
 			return null;
 		} catch (IOException e) {
-			throw new CoreException(new Status(IStatus.ERROR, LaunchingPlugin.getUniqueIdentifier(), IJavaLaunchConfigurationConstants.ERR_INTERNAL_ERROR, 
-				NLS.bind(LaunchingMessages.ArchiveSourceLocation_Unable_to_locate_source_element_in_archive__0__1, new String[] {getName()}), e)); 
+			throw new CoreException(new Status(IStatus.ERROR, LaunchingPlugin.getUniqueIdentifier(), IJavaLaunchConfigurationConstants.ERR_INTERNAL_ERROR,
+				NLS.bind(LaunchingMessages.ArchiveSourceLocation_Unable_to_locate_source_element_in_archive__0__1, new String[] {getName()}), e));
 		}
 	}
-	
+
 	/**
 	 * Automatically detect the root path, if required.
-	 * 
+	 *
 	 * @param path source file name, excluding root path
 	 * @throws CoreException  if unable to detect the root path for this source archive
 	 */
@@ -198,8 +198,8 @@
 			try {
 				zip = getArchive();
 			} catch (IOException e) {
-				throw new CoreException(new Status(IStatus.ERROR, LaunchingPlugin.getUniqueIdentifier(), IJavaLaunchConfigurationConstants.ERR_INTERNAL_ERROR, 
-					NLS.bind(LaunchingMessages.ArchiveSourceLocation_Exception_occurred_while_detecting_root_source_directory_in_archive__0__1, new String[] {getName()}), e)); 
+				throw new CoreException(new Status(IStatus.ERROR, LaunchingPlugin.getUniqueIdentifier(), IJavaLaunchConfigurationConstants.ERR_INTERNAL_ERROR,
+					NLS.bind(LaunchingMessages.ArchiveSourceLocation_Exception_occurred_while_detecting_root_source_directory_in_archive__0__1, new String[] {getName()}), e));
 			}
 			synchronized (zip) {
 				Enumeration<? extends ZipEntry> entries = zip.entries();
@@ -219,8 +219,8 @@
 						}
 					}
 				} catch (IllegalStateException e) {
-					throw new CoreException(new Status(IStatus.ERROR, LaunchingPlugin.getUniqueIdentifier(), IJavaLaunchConfigurationConstants.ERR_INTERNAL_ERROR, 
-						NLS.bind(LaunchingMessages.ArchiveSourceLocation_Exception_occurred_while_detecting_root_source_directory_in_archive__0__2, new String[] {getName()}), e)); 
+					throw new CoreException(new Status(IStatus.ERROR, LaunchingPlugin.getUniqueIdentifier(), IJavaLaunchConfigurationConstants.ERR_INTERNAL_ERROR,
+						NLS.bind(LaunchingMessages.ArchiveSourceLocation_Exception_occurred_while_detecting_root_source_directory_in_archive__0__2, new String[] {getName()}), e));
 				}
 			}
 		}
@@ -229,7 +229,7 @@
 	/**
 	 * Returns the archive associated with this source
 	 * location.
-	 * 
+	 *
 	 * @return zip file
 	 * @throws IOException if unable to create the zip
 	 * 	file associated with this location
@@ -237,12 +237,12 @@
 	protected ZipFile getArchive() throws IOException {
 		return getZipFile(getName());
 	}
-	
+
 	/**
 	 * Sets the location of the root source folder within
 	 * the archive, or <code>null</code> if the root source
 	 * folder is the root of the archive
-	 * 
+	 *
 	 * @param path the location of the root source folder within
 	 * the archive, or <code>null</code> if the root source
 	 * folder is the root of the archive
@@ -255,59 +255,59 @@
 			fRootDetected = true;
 		}
 	}
-	
+
 	/**
 	 * Returns the location of the root source folder within
 	 * the archive, or <code>null</code> if the root source
 	 * folder is the root of the archive
-	 * 
+	 *
 	 * @return the location of the root source folder within
 	 * the archive, or <code>null</code> if the root source
 	 * folder is the root of the archive
 	 */
 	public IPath getRootPath() {
 		return fRootPath;
-	}	
-	
+	}
+
 	/**
-	 * Returns the name of the archive associated with this 
+	 * Returns the name of the archive associated with this
 	 * source location
-	 * 
+	 *
 	 * @return the name of the archive associated with this
 	 *  source location
 	 */
 	public String getName() {
 		return fName;
 	}
-	
+
 	/**
-	 * Sets the name of the archive associated with this 
+	 * Sets the name of the archive associated with this
 	 * source location
-	 * 
+	 *
 	 * @param name the name of the archive associated with this
 	 *  source location
 	 */
 	private void setName(String name) {
 		fName = name;
-	}	
-	
+	}
+
 	/* (non-Javadoc)
 	 * @see java.lang.Object#equals(java.lang.Object)
 	 */
 	@Override
-	public boolean equals(Object object) {		
+	public boolean equals(Object object) {
 		return object instanceof ArchiveSourceLocation &&
 			 getName().equals(((ArchiveSourceLocation)object).getName());
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see java.lang.Object#hashCode()
 	 */
 	@Override
 	public int hashCode() {
 		return getName().hashCode();
-	}	
-	
+	}
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.sourcelookup.IJavaSourceLocation#getMemento()
 	 */
@@ -320,8 +320,8 @@
 		if (getRootPath() != null) {
 			node.setAttribute("rootPath", getRootPath().toString()); //$NON-NLS-1$
 		}
-	
-		return DebugPlugin.serializeDocument(doc); 
+
+		return DebugPlugin.serializeDocument(doc);
 	}
 
 	/* (non-Javadoc)
@@ -337,35 +337,35 @@
 			StringReader reader = new StringReader(memento);
 			InputSource source = new InputSource(reader);
 			root = parser.parse(source).getDocumentElement();
-												
+
 			String path = root.getAttribute("archivePath"); //$NON-NLS-1$
 			if (isEmpty(path)) {
-				abort(LaunchingMessages.ArchiveSourceLocation_Unable_to_initialize_source_location___missing_archive_path__3, null); 
+				abort(LaunchingMessages.ArchiveSourceLocation_Unable_to_initialize_source_location___missing_archive_path__3, null);
 			}
 			String rootPath = root.getAttribute("rootPath"); //$NON-NLS-1$
-			
+
 			setName(path);
 			setRootPath(rootPath);
 			return;
 		} catch (ParserConfigurationException e) {
-			ex = e;			
+			ex = e;
 		} catch (SAXException e) {
 			ex = e;
 		} catch (IOException e) {
 			ex = e;
 		}
-		abort(LaunchingMessages.ArchiveSourceLocation_Exception_occurred_initializing_source_location__5, ex);		 
+		abort(LaunchingMessages.ArchiveSourceLocation_Exception_occurred_initializing_source_location__5, ex);
 	}
 
 	private boolean isEmpty(String string) {
 		return string == null || string.length() == 0;
 	}
-	
+
 	/*
 	 * Throws an internal error exception
 	 */
 	private void abort(String message, Throwable e)	throws CoreException {
 		IStatus s = new Status(IStatus.ERROR, LaunchingPlugin.getUniqueIdentifier(), IJavaLaunchConfigurationConstants.ERR_INTERNAL_ERROR, message, e);
-		throw new CoreException(s);		
-	}	
+		throw new CoreException(s);
+	}
 }
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/DirectorySourceLocation.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/DirectorySourceLocation.java
index a489f89..bd8ce5d 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/DirectorySourceLocation.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/DirectorySourceLocation.java
@@ -34,7 +34,7 @@
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 import org.xml.sax.helpers.DefaultHandler;
- 
+
 /**
  * Locates source elements in a directory in the local
  * file system. Returns instances of <code>LocalFileStorage</code>.
@@ -60,24 +60,24 @@
 	 * The directory associated with this source location
 	 */
 	private File fDirectory;
-	
+
 	/**
 	 * Constructs a new empty source location to be initialized from
 	 * a memento.
 	 */
 	public DirectorySourceLocation() {
 	}
-		
+
 	/**
 	 * Constructs a new source location that will retrieve source
 	 * elements from the given directory.
-	 * 
+	 *
 	 * @param directory a directory
 	 */
 	public DirectorySourceLocation(File directory) {
 		setDirectory(directory);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.sourcelookup.IJavaSourceLocation#findSourceElement(java.lang.String)
 	 */
@@ -86,7 +86,7 @@
 		if (getDirectory() == null) {
 			return null;
 		}
-		
+
 		String pathStr= name.replace('.', '/');
 		int lastSlash = pathStr.lastIndexOf('/');
 		try {
@@ -105,8 +105,8 @@
 					possibleInnerType = true;
 				} else {
 					possibleInnerType = false;
-				}						
-			} while (possibleInnerType);			
+				}
+			} while (possibleInnerType);
 		} catch (IOException e) {
 			throw new CoreException(new Status(IStatus.ERROR, LaunchingPlugin.getUniqueIdentifier(), e.getMessage(), e));
 		}
@@ -116,40 +116,40 @@
 	/**
 	 * Sets the directory in which source elements will
 	 * be searched for.
-	 * 
+	 *
 	 * @param directory a directory
 	 */
 	private void setDirectory(File directory) {
 		fDirectory = directory;
 	}
-	
+
 	/**
 	 * Returns the directory associated with this source
 	 * location.
-	 * 
+	 *
 	 * @return directory
 	 */
 	public File getDirectory() {
 		return fDirectory;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see java.lang.Object#equals(java.lang.Object)
 	 */
 	@Override
-	public boolean equals(Object object) {		
+	public boolean equals(Object object) {
 		return object instanceof DirectorySourceLocation &&
 			 getDirectory().equals(((DirectorySourceLocation)object).getDirectory());
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see java.lang.Object#hashCode()
 	 */
 	@Override
 	public int hashCode() {
 		return getDirectory().hashCode();
-	}	
-	
+	}
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.sourcelookup.IJavaSourceLocation#getMemento()
 	 */
@@ -176,38 +176,38 @@
 			StringReader reader = new StringReader(memento);
 			InputSource source = new InputSource(reader);
 			root = parser.parse(source).getDocumentElement();
-												
+
 			String path = root.getAttribute("path"); //$NON-NLS-1$
 			if (isEmpty(path)) {
-				abort(LaunchingMessages.DirectorySourceLocation_Unable_to_initialize_source_location___missing_directory_path_3, null); 
+				abort(LaunchingMessages.DirectorySourceLocation_Unable_to_initialize_source_location___missing_directory_path_3, null);
 			} else {
 				File dir = new File(path);
 				if (dir.exists() && dir.isDirectory()) {
 					setDirectory(dir);
 				} else {
-					abort(NLS.bind(LaunchingMessages.DirectorySourceLocation_Unable_to_initialize_source_location___directory_does_not_exist___0__4, new String[] {path}), null); 
+					abort(NLS.bind(LaunchingMessages.DirectorySourceLocation_Unable_to_initialize_source_location___directory_does_not_exist___0__4, new String[] {path}), null);
 				}
 			}
 			return;
 		} catch (ParserConfigurationException e) {
-			ex = e;			
+			ex = e;
 		} catch (SAXException e) {
 			ex = e;
 		} catch (IOException e) {
 			ex = e;
 		}
-		abort(LaunchingMessages.DirectorySourceLocation_Exception_occurred_initializing_source_location__5, ex);		 
+		abort(LaunchingMessages.DirectorySourceLocation_Exception_occurred_initializing_source_location__5, ex);
 	}
 
 	private boolean isEmpty(String string) {
 		return string == null || string.length() == 0;
 	}
-	
+
 	/*
 	 * Throws an internal error exception
 	 */
 	private void abort(String message, Throwable e)	throws CoreException {
 		IStatus s = new Status(IStatus.ERROR, LaunchingPlugin.getUniqueIdentifier(), IJavaLaunchConfigurationConstants.ERR_INTERNAL_ERROR, message, e);
-		throw new CoreException(s);		
+		throw new CoreException(s);
 	}
 }
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/IJavaSourceLocation.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/IJavaSourceLocation.java
index 348eccb..0cc7ab5 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/IJavaSourceLocation.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/IJavaSourceLocation.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -13,7 +13,7 @@
 
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IAdaptable;
- 
+
 /**
  * A repository of source code. A source location is capable of retrieving
  * source elements.
@@ -36,17 +36,17 @@
  */
 @Deprecated
 public interface IJavaSourceLocation extends IAdaptable {
-	
+
 	/**
 	 * Returns an object representing the source code
 	 * for a type with the specified name, or <code>null</code>
 	 * if none could be found. The name is
 	 * a fully qualified type name, and may contain the '$'
 	 * character when referring to inner types. For example,
-	 * <code>java.lang.String</code>. The source element 
+	 * <code>java.lang.String</code>. The source element
 	 * returned is implementation specific - for example, a
 	 * resource, a local file, a zip file entry, etc.
-	 * 
+	 *
 	 * @param name fully qualified name of the type for which
 	 * 		source is being searched for
 	 * @return source element
@@ -54,19 +54,19 @@
 	 *  for the specified source element
 	 */
 	public Object findSourceElement(String name) throws CoreException;
-	
+
 	/**
 	 * Returns a memento for this source location from which this
 	 * source location can be reconstructed.
-	 * 
+	 *
 	 * @return a memento for this source location
 	 * @exception CoreException if unable to create a memento
 	 */
 	public String getMemento() throws CoreException;
-	
+
 	/**
 	 * Initializes this source location from the given memento.
-	 * 
+	 *
 	 * @param memento a memento generated by this source location
 	 * @exception CoreException if unable to initialize this source
 	 * 	location
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/JavaProjectSourceLocation.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/JavaProjectSourceLocation.java
index 0c09de3..9ad9b51 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/JavaProjectSourceLocation.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/JavaProjectSourceLocation.java
@@ -38,7 +38,7 @@
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 import org.xml.sax.helpers.DefaultHandler;
- 
+
 /**
  * Locates source elements in all source folders of the
  * given Java project. Returns instances of <code>ICompilationUnit</code>
@@ -55,7 +55,7 @@
  *  See the following packages: <code>org.eclipse.debug.core.sourcelookup</code>
  *  and <code>org.eclipse.debug.core.sourcelookup.containers</code>. This class
  *  has been replaced by
- *  <code>org.eclipse.jdt.launching.sourcelookup.containers.JavaProjectSourceContainer</code>. 
+ *  <code>org.eclipse.jdt.launching.sourcelookup.containers.JavaProjectSourceContainer</code>.
  * @noextend This class is not intended to be sub-classed by clients.
  */
 @Deprecated
@@ -65,29 +65,29 @@
 	 * The project associated with this source location
 	 */
 	private IJavaProject fProject;
-	
+
 	/**
 	 * Corresponding package fragment root locations.
 	 */
 	private IJavaSourceLocation[] fRootLocations = null;
-	
+
 	/**
 	 * Constructs a new empty source location to be initialized
 	 * by a memento.
 	 */
 	public JavaProjectSourceLocation() {
 	}
-	
+
 	/**
 	 * Constructs a new source location that will retrieve source
 	 * elements from the given Java project.
-	 * 
+	 *
 	 * @param project Java project
 	 */
 	public JavaProjectSourceLocation(IJavaProject project) {
 		setJavaProject(project);
-	}	
-	
+	}
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.sourcelookup.IJavaSourceLocation#findSourceElement(java.lang.String)
 	 */
@@ -107,7 +107,7 @@
 	/**
 	 * Sets the Java project in which source elements will
 	 * be searched for.
-	 * 
+	 *
 	 * @param project Java project
 	 */
 	private void setJavaProject(IJavaProject project) {
@@ -116,8 +116,8 @@
 		if (fProject != null) {
 			try {
 				IPackageFragmentRoot[] roots = project.getPackageFragmentRoots();
-				ArrayList<PackageFragmentRootSourceLocation> list = new ArrayList<PackageFragmentRootSourceLocation>(roots.length);
-				
+				ArrayList<PackageFragmentRootSourceLocation> list = new ArrayList<>(roots.length);
+
 				for (int i = 0; i < roots.length; i++) {
 					if (roots[i].getKind() == IPackageFragmentRoot.K_SOURCE) {
 						list.add(new PackageFragmentRootSourceLocation(roots[i]));
@@ -129,26 +129,26 @@
 			}
 		}
 	}
-	
+
 	/**
 	 * Returns the Java project associated with this source
 	 * location.
-	 * 
+	 *
 	 * @return Java project
 	 */
 	public IJavaProject getJavaProject() {
 		return fProject;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see java.lang.Object#equals(java.lang.Object)
 	 */
 	@Override
-	public boolean equals(Object object) {		
+	public boolean equals(Object object) {
 		return object instanceof JavaProjectSourceLocation &&
 			 getJavaProject().equals(((JavaProjectSourceLocation)object).getJavaProject());
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see java.lang.Object#hashCode()
 	 */
@@ -156,7 +156,7 @@
 	public int hashCode() {
 		return getJavaProject().hashCode();
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jdt.launching.sourcelookup.IJavaSourceLocation#getMemento()
 	 */
@@ -166,7 +166,7 @@
 		Element node = doc.createElement("javaProjectSourceLocation"); //$NON-NLS-1$
 		doc.appendChild(node);
 		node.setAttribute("name", getJavaProject().getElementName()); //$NON-NLS-1$
-		return DebugPlugin.serializeDocument(doc);  
+		return DebugPlugin.serializeDocument(doc);
 	}
 
 	/* (non-Javadoc)
@@ -182,35 +182,35 @@
 			StringReader reader = new StringReader(memento);
 			InputSource source = new InputSource(reader);
 			root = parser.parse(source).getDocumentElement();
-												
+
 			String name = root.getAttribute("name"); //$NON-NLS-1$
 			if (isEmpty(name)) {
-				abort(LaunchingMessages.JavaProjectSourceLocation_Unable_to_initialize_source_location___missing_project_name_3, null); 
+				abort(LaunchingMessages.JavaProjectSourceLocation_Unable_to_initialize_source_location___missing_project_name_3, null);
 			} else {
 				IProject proj = ResourcesPlugin.getWorkspace().getRoot().getProject(name);
 				setJavaProject(JavaCore.create(proj));
 			}
 			return;
 		} catch (ParserConfigurationException e) {
-			ex = e;			
+			ex = e;
 		} catch (SAXException e) {
 			ex = e;
 		} catch (IOException e) {
 			ex = e;
 		}
-		abort(LaunchingMessages.JavaProjectSourceLocation_Exception_occurred_initializing_source_location__4, ex); 
+		abort(LaunchingMessages.JavaProjectSourceLocation_Exception_occurred_initializing_source_location__4, ex);
 	}
 
 	private boolean isEmpty(String string) {
 		return string == null || string.length() == 0;
 	}
-	
+
 	/*
 	 * Throws an internal error exception
 	 */
 	private void abort(String message, Throwable e)	throws CoreException {
 		IStatus s = new Status(IStatus.ERROR, LaunchingPlugin.getUniqueIdentifier(), IJavaLaunchConfigurationConstants.ERR_INTERNAL_ERROR, message, e);
-		throw new CoreException(s);		
+		throw new CoreException(s);
 	}
 
 }
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/JavaSourceLocator.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/JavaSourceLocator.java
index 6e533d8..692a3d9 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/JavaSourceLocator.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/JavaSourceLocator.java
@@ -92,12 +92,12 @@
  *  attribute (if present), or a default source lookup path based on a configuration's
  *  runtime classpath. This class has been replaced by the Java source lookup
  *  director which is an internal class, but can be used via the
- *  <code>sourceLocatorId</code> attribute on a launch configuration type extension.  
+ *  <code>sourceLocatorId</code> attribute on a launch configuration type extension.
  * @noextend This class is not intended to be sub-classed by clients.
  */
 @Deprecated
 public class JavaSourceLocator implements IPersistableSourceLocator {
-	
+
 	/**
 	 * Identifier for the 'Java Source Locator' extension
 	 * (value <code>"org.eclipse.jdt.launching.javaSourceLocator"</code>).
@@ -115,19 +115,19 @@
 	public JavaSourceLocator() {
 		setSourceLocations(new IJavaSourceLocation[0]);
 	}
-	
+
 	/**
 	 * Constructs a new Java source locator that looks in the
 	 * specified project for source, and required projects, if
 	 * <code>includeRequired</code> is <code>true</code>.
-	 * 
+	 *
 	 * @param projects the projects in which to look for source
 	 * @param includeRequired whether to look in required projects
 	 * 	as well
 	 * @throws CoreException if a new locator fails to be created
 	 */
 	public JavaSourceLocator(IJavaProject[] projects, boolean includeRequired) throws CoreException {
-		ArrayList<IJavaProject> requiredProjects = new ArrayList<IJavaProject>();
+		ArrayList<IJavaProject> requiredProjects = new ArrayList<>();
 		for (int i= 0; i < projects.length; i++) {
 			if (includeRequired) {
 				collectRequiredProjects(projects[i], requiredProjects);
@@ -137,10 +137,10 @@
 				}
 			}
 		}
-		
+
 		// only add external entries with the same location once
-		HashMap<IPath, IPath> external = new HashMap<IPath, IPath>();
-		ArrayList<PackageFragmentRootSourceLocation> list = new ArrayList<PackageFragmentRootSourceLocation>();
+		HashMap<IPath, IPath> external = new HashMap<>();
+		ArrayList<PackageFragmentRootSourceLocation> list = new ArrayList<>();
 		// compute the default locations for each project, and add unique ones
 		Iterator<IJavaProject> iter = requiredProjects.iterator();
 		while (iter.hasNext()) {
@@ -160,57 +160,57 @@
 		}
 		IJavaSourceLocation[] locations = list.toArray(new IJavaSourceLocation[list.size()]);
 		setSourceLocations(locations);
-	}	
-	
+	}
+
 	/**
 	 * Constructs a new JavaSourceLocator that searches the
 	 * specified set of source locations for source elements.
-	 * 
+	 *
 	 * @param locations the source locations to search for
 	 *  source, in the order they should be searched
 	 */
 	public JavaSourceLocator(IJavaSourceLocation[] locations) {
 		setSourceLocations(locations);
 	}
-	
+
 	/**
 	 * Constructs a new JavaSourceLocator that searches the
 	 * default set of source locations for the given Java project.
-	 * 
+	 *
 	 * @param project Java project
 	 * @exception CoreException if an exception occurs reading
 	 *  the classpath of the given or any required project
 	 */
 	public JavaSourceLocator(IJavaProject project) throws CoreException {
 		setSourceLocations(getDefaultSourceLocations(project));
-	}	
-	
+	}
+
 	/**
 	 * Sets the locations that will be searched, in the order
 	 * to be searched.
-	 * 
+	 *
 	 * @param locations the locations that will be searched, in the order
 	 *  to be searched
 	 */
 	public void setSourceLocations(IJavaSourceLocation[] locations) {
 		fLocations = locations;
 	}
-	
+
 	/**
 	 * Returns the locations that this source locator is currently
 	 * searching, in the order that they are searched.
-	 * 
+	 *
 	 * @return the locations that this source locator is currently
 	 * searching, in the order that they are searched
 	 */
 	public IJavaSourceLocation[] getSourceLocations() {
 		return fLocations;
 	}
-	
+
 	/**
 	 * Returns all source elements that correspond to the type associated with
 	 * the given stack frame, or <code>null</code> if none.
-	 * 
+	 *
 	 * @param stackFrame stack frame
 	 * @return all source elements that correspond to the type associated with
 	 * the given stack frame, or <code>null</code> if none
@@ -232,7 +232,7 @@
 				}
 				return null;
 			}
-			List<Object> list = new ArrayList<Object>();
+			List<Object> list = new ArrayList<>();
 			IJavaSourceLocation[] locations = getSourceLocations();
 			for (int i = 0; i < locations.length; i++) {
 				try {
@@ -248,8 +248,8 @@
 			return list.toArray();
 		}
 		return null;
-	}	
-			
+	}
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.core.model.ISourceLocator#getSourceElement(org.eclipse.debug.core.model.IStackFrame)
 	 */
@@ -285,7 +285,7 @@
 		}
 		return null;
 	}
-	
+
 	private String getFullyQualfiedName(IJavaStackFrame frame) throws CoreException {
 		String name = null;
 		if (frame.isObsolete()) {
@@ -299,7 +299,7 @@
 			// build source name from debug attributes using
 			// the source file name and the package of the declaring
 			// type
-					
+
 			// @see bug# 21518 - remove absolute path prefix
 			int index = sourceName.lastIndexOf('\\');
 			if (index == -1) {
@@ -308,7 +308,7 @@
 			if (index >= 0) {
 				sourceName = sourceName.substring(index + 1);
 			}
-					
+
 			String declName= frame.getDeclaringTypeName();
 			index = declName.lastIndexOf('.');
 			if (index >= 0) {
@@ -319,15 +319,15 @@
 			index = sourceName.lastIndexOf('.');
 			if (index >= 0) {
 				name += sourceName.substring(0, index) ;
-			}					
+			}
 		}
-		return name;		
+		return name;
 	}
-	
+
 	/**
 	 * Adds all projects required by <code>proj</code> to the list
 	 * <code>res</code>
-	 * 
+	 *
 	 * @param proj the project for which to compute required
 	 *  projects
 	 * @param res the list to add all required projects too
@@ -336,9 +336,9 @@
 	protected static void collectRequiredProjects(IJavaProject proj, ArrayList<IJavaProject> res) throws JavaModelException {
 		if (!res.contains(proj)) {
 			res.add(proj);
-			
+
 			IJavaModel model= proj.getJavaModel();
-			
+
 			IClasspathEntry[] entries= proj.getRawClasspath();
 			for (int i= 0; i < entries.length; i++) {
 				IClasspathEntry curr= entries[i];
@@ -350,13 +350,13 @@
 				}
 			}
 		}
-	}	
-	
+	}
+
 	/**
 	 * Returns a default collection of source locations for
 	 * the given Java project. Default source locations consist
 	 * of the given project and all of its required projects .
-	 * 
+	 *
 	 * @param project Java project
 	 * @return a collection of source locations for all required
 	 *  projects
@@ -372,7 +372,7 @@
 		locator.initializeDefaults(config);
 		return locator.getSourceLocations();
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.core.model.IPersistableSourceLocator#getMemento()
 	 */
@@ -381,7 +381,7 @@
 		Document doc = DebugPlugin.newDocument();
 		Element node = doc.createElement("javaSourceLocator"); //$NON-NLS-1$
 		doc.appendChild(node);
-		
+
 		IJavaSourceLocation[] locations = getSourceLocations();
 		for (int i = 0; i < locations.length; i++) {
 			Element child = doc.createElement("javaSourceLocation"); //$NON-NLS-1$
@@ -389,7 +389,7 @@
 			child.setAttribute("memento", locations[i].getMemento()); //$NON-NLS-1$
 			node.appendChild(child);
 		}
-		return DebugPlugin.serializeDocument(doc); 
+		return DebugPlugin.serializeDocument(doc);
 	}
 
 	/* (non-Javadoc)
@@ -416,14 +416,14 @@
 			StringReader reader = new StringReader(memento);
 			InputSource source = new InputSource(reader);
 			root = parser.parse(source).getDocumentElement();
-												
+
 			if (!root.getNodeName().equalsIgnoreCase("javaSourceLocator")) {  //$NON-NLS-1$
-				abort(LaunchingMessages.JavaSourceLocator_Unable_to_restore_Java_source_locator___invalid_format__6, null); 
+				abort(LaunchingMessages.JavaSourceLocator_Unable_to_restore_Java_source_locator___invalid_format__6, null);
 			}
-	
-			List<IJavaSourceLocation> sourceLocations = new ArrayList<IJavaSourceLocation>();
-			Bundle bundle = LaunchingPlugin.getDefault().getBundle(); 
-			
+
+			List<IJavaSourceLocation> sourceLocations = new ArrayList<>();
+			Bundle bundle = LaunchingPlugin.getDefault().getBundle();
+
 			NodeList list = root.getChildNodes();
 			int length = list.getLength();
 			for (int i = 0; i < length; ++i) {
@@ -435,42 +435,42 @@
 						String className = entry.getAttribute("class"); //$NON-NLS-1$
 						String data = entry.getAttribute("memento"); //$NON-NLS-1$
 						if (isEmpty(className)) {
-							abort(LaunchingMessages.JavaSourceLocator_Unable_to_restore_Java_source_locator___invalid_format__10, null); 
+							abort(LaunchingMessages.JavaSourceLocator_Unable_to_restore_Java_source_locator___invalid_format__10, null);
 						}
 						Class<?> clazz  = null;
 						try {
 							clazz = bundle.loadClass(className);
 						} catch (ClassNotFoundException e) {
-							abort(NLS.bind(LaunchingMessages.JavaSourceLocator_Unable_to_restore_source_location___class_not_found___0__11, new String[] {className}), e); 
+							abort(NLS.bind(LaunchingMessages.JavaSourceLocator_Unable_to_restore_source_location___class_not_found___0__11, new String[] {className}), e);
 						}
-						
+
 						IJavaSourceLocation location = null;
 						try {
 							location = (IJavaSourceLocation)clazz.newInstance();
 						} catch (IllegalAccessException e) {
-							abort(LaunchingMessages.JavaSourceLocator_Unable_to_restore_source_location__12, e); 
+							abort(LaunchingMessages.JavaSourceLocator_Unable_to_restore_source_location__12, e);
 						} catch (InstantiationException e) {
-							abort(LaunchingMessages.JavaSourceLocator_Unable_to_restore_source_location__12, e); 
+							abort(LaunchingMessages.JavaSourceLocator_Unable_to_restore_source_location__12, e);
 						}
 						location.initializeFrom(data);
 						sourceLocations.add(location);
 					} else {
-						abort(LaunchingMessages.JavaSourceLocator_Unable_to_restore_Java_source_locator___invalid_format__14, null); 
+						abort(LaunchingMessages.JavaSourceLocator_Unable_to_restore_Java_source_locator___invalid_format__14, null);
 					}
 				}
 			}
 			setSourceLocations(sourceLocations.toArray(new IJavaSourceLocation[sourceLocations.size()]));
 			return;
 		} catch (ParserConfigurationException e) {
-			ex = e;			
+			ex = e;
 		} catch (SAXException e) {
 			ex = e;
 		} catch (IOException e) {
 			ex = e;
 		}
-		abort(LaunchingMessages.JavaSourceLocator_Exception_occurred_initializing_source_locator__15, ex); 
+		abort(LaunchingMessages.JavaSourceLocator_Exception_occurred_initializing_source_locator__15, ex);
 	}
-	
+
 	/**
 	 * Returns source locations that are associated with the given runtime classpath
 	 * entries.
@@ -478,7 +478,7 @@
 	 * @return the array of {@link IJavaSourceLocation}
 	 */
 	private static IJavaSourceLocation[] getSourceLocations(IRuntimeClasspathEntry[] entries) {
-		List<IJavaSourceLocation> locations = new ArrayList<IJavaSourceLocation>(entries.length);
+		List<IJavaSourceLocation> locations = new ArrayList<>(entries.length);
 		for (int i = 0; i < entries.length; i++) {
 			IRuntimeClasspathEntry entry = entries[i];
 			IJavaSourceLocation location = null;
@@ -517,34 +517,34 @@
 					}
 					break;
 				case IRuntimeClasspathEntry.CONTAINER:
-					throw new IllegalArgumentException(LaunchingMessages.JavaSourceLocator_Illegal_to_have_a_container_resolved_to_a_container_1); 
+					throw new IllegalArgumentException(LaunchingMessages.JavaSourceLocator_Illegal_to_have_a_container_resolved_to_a_container_1);
 			}
 			if (location != null) {
 				locations.add(location);
 			}
 		}
-		return locations.toArray(new IJavaSourceLocation[locations.size()]);		
+		return locations.toArray(new IJavaSourceLocation[locations.size()]);
 	}
-	
+
 	private boolean isEmpty(String string) {
 		return string == null || string.length() == 0;
 	}
-	
+
 	/**
 	 * Throws an internal error exception
 	 * @param message the message
 	 * @param e the error
-	 * @throws CoreException the new {@link CoreException} 
+	 * @throws CoreException the new {@link CoreException}
 	 */
 	private void abort(String message, Throwable e)	throws CoreException {
 		IStatus s = new Status(IStatus.ERROR, LaunchingPlugin.getUniqueIdentifier(), IJavaLaunchConfigurationConstants.ERR_INTERNAL_ERROR, message, e);
-		throw new CoreException(s);		
-	}	
-	
+		throw new CoreException(s);
+	}
+
 	/**
 	 * Returns whether the given objects are equal, allowing
 	 * for <code>null</code>.
-	 * 
+	 *
 	 * @param a the first item
 	 * @param b the item to compare
 	 * @return whether the given objects are equal, allowing
@@ -559,11 +559,11 @@
 		}
 		return a.equals(b);
 	}
-	
+
 	/**
 	 * Returns whether the source attachments of the given package fragment
 	 * root and runtime classpath entry are equal.
-	 * 
+	 *
 	 * @param root package fragment root
 	 * @param entry runtime classpath entry
 	 * @return whether the source attachments of the given package fragment
@@ -573,19 +573,19 @@
 	private static boolean isSourceAttachmentEqual(IPackageFragmentRoot root, IRuntimeClasspathEntry entry) throws JavaModelException {
 		return equalOrNull(root.getSourceAttachmentPath(), entry.getSourceAttachmentPath());
 	}
-	
+
 	/**
 	 * Determines if the given archive runtime classpath entry exists
 	 * in the workspace as a package fragment root. Returns the associated
 	 * package fragment root source location if possible, otherwise
 	 * <code>null</code>.
-	 *  
+	 *
 	 * @param entry archive runtime classpath entry
 	 * @return IJavaSourceLocation or <code>null</code>
 	 */
 	private static IJavaSourceLocation getArchiveSourceLocation(IRuntimeClasspathEntry entry) {
 		IResource resource = entry.getResource();
-		if (resource == null) { 
+		if (resource == null) {
 			// Check all package fragment roots for case of external archive.
 			// External jars are shared, so it does not matter which project it
 			// originates from
@@ -600,7 +600,7 @@
 							if (isSourceAttachmentEqual(root, entry)) {
 								// use package fragment root
 								return new PackageFragmentRootSourceLocation(root);
-							}							
+							}
 						}
 					}
 				}
@@ -638,15 +638,15 @@
 							if (isSourceAttachmentEqual(root, entry)) {
 								// use package fragment root
 								return new PackageFragmentRootSourceLocation(root);
-							}							
+							}
 						}
 					}
 				}
 			} catch (JavaModelException e) {
 				LaunchingPlugin.log(e);
-			}		
-		}		
+			}
+		}
 		return null;
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/LocalFileStorage.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/LocalFileStorage.java
index 6ade9f0..fa20dac 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/LocalFileStorage.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/LocalFileStorage.java
@@ -28,14 +28,14 @@
  */
 @Deprecated
 public class LocalFileStorage extends org.eclipse.debug.core.sourcelookup.containers.LocalFileStorage {
-	
+
 	/**
 	 * Constructs and returns storage for the given file.
-	 * 
+	 *
 	 * @param file a local file
 	 */
 	public LocalFileStorage(File file){
 		super(file);
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/PackageFragmentRootSourceLocation.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/PackageFragmentRootSourceLocation.java
index ffb2bbb..1eabc9c 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/PackageFragmentRootSourceLocation.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/PackageFragmentRootSourceLocation.java
@@ -59,21 +59,21 @@
  */
 @Deprecated
 public class PackageFragmentRootSourceLocation extends PlatformObject implements IJavaSourceLocation {
-	
+
 	/**
-	 * Associated package fragment root 
+	 * Associated package fragment root
 	 */
 	private IPackageFragmentRoot fRoot = null;
-	
+
 	/**
 	 * Creates an empty source location.
 	 */
 	public PackageFragmentRootSourceLocation() {
-	}	
-	
+	}
+
 	/**
 	 * Creates a source location on the given package fragment root.
-	 * 
+	 *
 	 * @param root package fragment root
 	 */
 	public PackageFragmentRootSourceLocation(IPackageFragmentRoot root) {
@@ -102,18 +102,18 @@
 					ICompilationUnit cu = pkg.getCompilationUnit(typeName + ".java"); //$NON-NLS-1$
 					if (cu.exists()) {
 						return cu;
-					} 
+					}
 					IClassFile cf = pkg.getClassFile(typeName + ".class"); //$NON-NLS-1$
 					if (cf.exists()) {
 						return cf;
-					}				
+					}
 					index = typeName.lastIndexOf('$');
 					if (index >= 0) {
 						typeName = typeName.substring(0, index);
 						possibleInnerType = true;
 					} else {
 						possibleInnerType = false;
-					}						
+					}
 				} while (possibleInnerType);
 			}
 		}
@@ -133,7 +133,7 @@
 			handle = getPackageFragmentRoot().getHandleIdentifier();
 		}
 		node.setAttribute("handleId", handle); //$NON-NLS-1$
-		return DebugPlugin.serializeDocument(doc); 
+		return DebugPlugin.serializeDocument(doc);
 	}
 
 	/* (non-Javadoc)
@@ -150,10 +150,10 @@
 			StringReader reader = new StringReader(memento);
 			InputSource source = new InputSource(reader);
 			root = parser.parse(source).getDocumentElement();
-												
+
 			String handle = root.getAttribute("handleId"); //$NON-NLS-1$
 			if (handle == null) {
-				abort(LaunchingMessages.PackageFragmentRootSourceLocation_Unable_to_initialize_source_location___missing_handle_identifier_for_package_fragment_root__6, null); 
+				abort(LaunchingMessages.PackageFragmentRootSourceLocation_Unable_to_initialize_source_location___missing_handle_identifier_for_package_fragment_root__6, null);
 			} else {
 				if (handle.length() == 0) {
 					// empty package fragment
@@ -163,25 +163,25 @@
 					if (element instanceof IPackageFragmentRoot) {
 						setPackageFragmentRoot((IPackageFragmentRoot)element);
 					} else {
-						abort(LaunchingMessages.PackageFragmentRootSourceLocation_Unable_to_initialize_source_location___package_fragment_root_does_not_exist__7, null); 
+						abort(LaunchingMessages.PackageFragmentRootSourceLocation_Unable_to_initialize_source_location___package_fragment_root_does_not_exist__7, null);
 					}
 				}
 			}
 			return;
 		} catch (ParserConfigurationException e) {
-			ex = e;			
+			ex = e;
 		} catch (SAXException e) {
 			ex = e;
 		} catch (IOException e) {
 			ex = e;
 		}
-		abort(LaunchingMessages.PackageFragmentRootSourceLocation_Exception_occurred_initializing_source_location__8, ex); 
+		abort(LaunchingMessages.PackageFragmentRootSourceLocation_Exception_occurred_initializing_source_location__8, ex);
 	}
 
 	/**
 	 * Returns the package fragment root associated with this
 	 * source location, or <code>null</code> if none
-	 * 
+	 *
 	 * @return the package fragment root associated with this
 	 *  source location, or <code>null</code> if none
 	 */
@@ -192,36 +192,36 @@
 	/**
 	 * Sets the package fragment root associated with this
 	 * source location.
-	 * 
+	 *
 	 * @param root package fragment root
 	 */
 	private void setPackageFragmentRoot(IPackageFragmentRoot root) {
 		fRoot = root;
 	}
-	
+
 	/*
 	 * Throws an internal error exception
 	 */
 	private void abort(String message, Throwable e)	throws CoreException {
 		IStatus s = new Status(IStatus.ERROR, LaunchingPlugin.getUniqueIdentifier(), IJavaLaunchConfigurationConstants.ERR_INTERNAL_ERROR, message, e);
-		throw new CoreException(s);		
-	}	
-	
+		throw new CoreException(s);
+	}
+
 	/* (non-Javadoc)
 	 * @see java.lang.Object#equals(java.lang.Object)
 	 */
 	@Override
-	public boolean equals(Object object) {		
+	public boolean equals(Object object) {
 		if (object instanceof PackageFragmentRootSourceLocation) {
 			 PackageFragmentRootSourceLocation root = (PackageFragmentRootSourceLocation)object;
 			 if (getPackageFragmentRoot() == null) {
 			 	return root.getPackageFragmentRoot() == null;
-			 } 
+			 }
 			 return getPackageFragmentRoot().equals(root.getPackageFragmentRoot());
 		}
 		return false;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see java.lang.Object#hashCode()
 	 */
@@ -229,7 +229,7 @@
 	public int hashCode() {
 		if (getPackageFragmentRoot() == null) {
 			return getClass().hashCode();
-		} 
+		}
 		return getPackageFragmentRoot().hashCode();
-	}	
+	}
 }
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/ZipEntryStorage.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/ZipEntryStorage.java
index b6eca6e..5c61ee7 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/ZipEntryStorage.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/ZipEntryStorage.java
@@ -13,7 +13,7 @@
 
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
- 
+
 /**
  * Storage implementation for zip entries.
  * <p>
@@ -29,11 +29,11 @@
  */
 @Deprecated
 public class ZipEntryStorage extends org.eclipse.debug.core.sourcelookup.containers.ZipEntryStorage {
-		
+
 	/**
 	 * Constructs a new storage implementation for the
 	 * given zip entry in the specified zip file
-	 * 
+	 *
 	 * @param archive zip file
 	 * @param entry zip entry
 	 */
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/containers/ClasspathContainerSourceContainer.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/containers/ClasspathContainerSourceContainer.java
index 00bf659..935381f 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/containers/ClasspathContainerSourceContainer.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/containers/ClasspathContainerSourceContainer.java
@@ -29,13 +29,13 @@
  * <p>
  * This class may be instantiated.
  * </p>
- * 
+ *
  * @since 3.0
  * @noextend This class is not intended to be subclassed by clients.
  */
 
 public class ClasspathContainerSourceContainer extends CompositeSourceContainer {
-	
+
 	/**
 	 * Associated classpath container path.
 	 */
@@ -45,16 +45,16 @@
 	 * (value <code>org.eclipse.jdt.launching.sourceContainer.classpathContainer</code>).
 	 */
 	public static final String TYPE_ID = LaunchingPlugin.getUniqueIdentifier() + ".sourceContainer.classpathContainer";   //$NON-NLS-1$
-		
+
 	/**
 	 * Constructs a new source container for the given classpath container.
-	 * 
+	 *
 	 * @param containerPath classpath container path
 	 */
 	public ClasspathContainerSourceContainer(IPath containerPath) {
 		fContainerPath = containerPath;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getName()
 	 */
@@ -67,7 +67,7 @@
 		}
 		if (container == null) {
 			return getPath().lastSegment();
-		} 
+		}
 		return container.getDescription();
 	}
 	/* (non-Javadoc)
@@ -87,10 +87,10 @@
 		IRuntimeClasspathEntry[] entries = JavaRuntime.resolveSourceLookupPath(new IRuntimeClasspathEntry[]{entry}, getDirector().getLaunchConfiguration());
 		return JavaRuntime.getSourceContainers(entries);
 	}
-	
+
 	/**
 	 * Returns the classpath container's path
-	 * 
+	 *
 	 * @return classpath container's path
 	 */
 	public IPath getPath() {
@@ -114,10 +114,10 @@
 	public int hashCode() {
 		return getPath().hashCode();
 	}
-	
+
 	/**
 	 * Returns the associated container or <code>null</code> if unavailable.
-	 * 
+	 *
 	 * @return classpath container or <code>null</code>
 	 * @throws CoreException if unable to retrieve container
 	 */
@@ -134,5 +134,5 @@
 		}
 		return null;
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/containers/ClasspathVariableSourceContainer.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/containers/ClasspathVariableSourceContainer.java
index 8a56db0..d1fbe9f 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/containers/ClasspathVariableSourceContainer.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/containers/ClasspathVariableSourceContainer.java
@@ -30,17 +30,17 @@
  * @noextend This class is not intended to be subclassed by clients.
  */
 public class ClasspathVariableSourceContainer extends CompositeSourceContainer {
-	
+
 	private IPath fVariable;
 	/**
 	 * Unique identifier for Java project source container type
 	 * (value <code>org.eclipse.jdt.launching.sourceContainer.classpathVariable</code>).
 	 */
 	public static final String TYPE_ID = LaunchingPlugin.getUniqueIdentifier() + ".sourceContainer.classpathVariable";   //$NON-NLS-1$
-	
+
 	/**
 	 * Constructs a new source container on the given variable and suffix.
-	 * 
+	 *
 	 * @param variablePath path representing a Java classpath variable.
 	 *  The first segment is the variable name, and the following segments
 	 *  (if any) are appended to the variable.
@@ -48,7 +48,7 @@
 	public ClasspathVariableSourceContainer(IPath variablePath) {
 		fVariable = variablePath;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.internal.core.sourcelookup.containers.CompositeSourceContainer#createSourceContainers()
 	 */
@@ -59,7 +59,7 @@
 			return new ISourceContainer[0];
 		}
 		if (fVariable.segmentCount() > 1) {
-			path = path.append(fVariable.removeFirstSegments(1));			
+			path = path.append(fVariable.removeFirstSegments(1));
 		}
 		IRuntimeClasspathEntry entry = JavaRuntime.newArchiveRuntimeClasspathEntry(path);
 		return JavaRuntime.getSourceContainers(new IRuntimeClasspathEntry[]{entry});
@@ -71,18 +71,18 @@
 	public String getName() {
 		return fVariable.toOSString();
 	}
-	
+
 	/**
 	 * Returns the variable this container references as a path. The
 	 * first segment is the variable name, and the following segments
 	 * are appended to the variable's value.
-	 * 
+	 *
 	 * @return path representing the variable and suffix
 	 */
 	public IPath getPath() {
 		return fVariable;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getType()
 	 */
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/containers/JavaProjectSourceContainer.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/containers/JavaProjectSourceContainer.java
index 6bddb08..7d05946 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/containers/JavaProjectSourceContainer.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/containers/JavaProjectSourceContainer.java
@@ -35,21 +35,21 @@
  * <p>
  * This class may be instantiated.
  * </p>
- * 
+ *
  * @since 3.0
  * @noextend This class is not intended to be sub-classed by clients.
  */
 public class JavaProjectSourceContainer extends CompositeSourceContainer {
-		
+
 	// Java project
 	private IJavaProject fProject;
 	// Source folders
 	private ISourceContainer[] fSourceFolders;
 	// Generic project container
 	private ISourceContainer[] fOthers;
-	
+
 	private static String[] fgJavaExtensions = null;
-	
+
 	/**
 	 * initialize java file extensions
 	 */
@@ -61,16 +61,16 @@
 			fgJavaExtensions[i] = '.' + ext;
 		}
 	}
-	
+
 	/**
 	 * Unique identifier for Java project source container type
 	 * (value <code>org.eclipse.jdt.launching.sourceContainer.javaProject</code>).
 	 */
 	public static final String TYPE_ID = LaunchingPlugin.getUniqueIdentifier() + ".sourceContainer.javaProject";   //$NON-NLS-1$
-	
+
 	/**
 	 * Constructs a source container on the given Java project.
-	 * 
+	 *
 	 * @param project project to look for source in
 	 */
 	public JavaProjectSourceContainer(IJavaProject project) {
@@ -91,10 +91,10 @@
 	public ISourceContainerType getType() {
 		return getSourceContainerType(TYPE_ID);
 	}
-	
+
 	/**
 	 * Returns the Java project associated with this source container.
-	 * 
+	 *
 	 * @return Java project
 	 */
 	public IJavaProject getJavaProject() {
@@ -105,7 +105,7 @@
 	 */
 	@Override
 	protected ISourceContainer[] createSourceContainers() throws CoreException {
-		List<ISourceContainer> containers = new ArrayList<ISourceContainer>();
+		List<ISourceContainer> containers = new ArrayList<>();
 		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
 		if (fProject.getProject().isOpen()) {
 			IClasspathEntry[] entries = fProject.getRawClasspath();
@@ -153,7 +153,7 @@
 	public Object[] findSourceElements(String name) throws CoreException {
 		// force container initialization
 		getSourceContainers();
-		
+
 		if (isJavaLikeFileName(name)) {
 			// only look in source folders
 			Object[] objects = findSourceElements(name, fSourceFolders);
@@ -163,7 +163,7 @@
 				if (object instanceof IResource) {
 					if (!getJavaProject().isOnClasspath((IResource)object)) {
 						if (filtered == null) {
-							filtered = new ArrayList<Object>(objects.length);
+							filtered = new ArrayList<>(objects.length);
 							for (int j = 0; j < objects.length; j++) {
 								filtered.add(objects[j]);
 							}
@@ -175,8 +175,8 @@
 			if (filtered == null) {
 				return objects;
 			}
-			return filtered.toArray();			
-		} 
+			return filtered.toArray();
+		}
 		// look elsewhere if not a java like file
 		return findSourceElements(name, fOthers);
 	}
@@ -186,7 +186,7 @@
 		fOthers = null;
 		super.dispose();
 	}
-	
+
 	private boolean isJavaLikeFileName(String name) {
 		for (int i = 0; i < fgJavaExtensions.length; i++) {
 			String ext = fgJavaExtensions[i];
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/containers/JavaSourceLookupParticipant.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/containers/JavaSourceLookupParticipant.java
index b230a37..3a0104f 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/containers/JavaSourceLookupParticipant.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/containers/JavaSourceLookupParticipant.java
@@ -38,28 +38,28 @@
  * @noextend This class is not intended to be sub-classed by clients.
  */
 public class JavaSourceLookupParticipant extends AbstractSourceLookupParticipant {
-	
+
 	/**
 	 * Map of delegate source containers for internal jars.
 	 * Internal jars are translated to package fragment roots
 	 * if possible.
 	 */
 	private Map<ISourceContainer, PackageFragmentRootSourceContainer> fDelegateContainers;
-	
+
 	/**
 	 * Returns the source name associated with the given object, or <code>null</code>
 	 * if none.
-	 * 
+	 *
 	 * @param object an object with an <code>IJavaStackFrame</code> adapter, an IJavaValue
-	 *  or an IJavaType 
+	 *  or an IJavaType
 	 * @return the source name associated with the given object, or <code>null</code>
 	 * if none
 	 * @exception CoreException if unable to retrieve the source name
 	 */
 	@Override
 	public String getSourceName(Object object) throws CoreException {
-		return JavaDebugUtils.getSourceName(object); 
-	}	
+		return JavaDebugUtils.getSourceName(object);
+	}
 
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.internal.core.sourcelookup.ISourceLookupParticipant#dispose()
@@ -73,7 +73,7 @@
 		}
 		fDelegateContainers = null;
 		super.dispose();
-		
+
 	}
 
 	/* (non-Javadoc)
@@ -84,8 +84,8 @@
 		ISourceContainer delegate = fDelegateContainers.get(container);
 		if (delegate == null) {
 			return container;
-		} 
-		return delegate; 
+		}
+		return delegate;
 	}
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.internal.core.sourcelookup.ISourceLookupParticipant#init(org.eclipse.debug.internal.core.sourcelookup.ISourceLookupDirector)
@@ -93,7 +93,7 @@
 	@Override
 	public void init(ISourceLookupDirector director) {
 		super.init(director);
-		fDelegateContainers = new HashMap<ISourceContainer, PackageFragmentRootSourceContainer>();
+		fDelegateContainers = new HashMap<>();
 	}
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.internal.core.sourcelookup.ISourceLookupParticipant#sourceContainersChanged(org.eclipse.debug.internal.core.sourcelookup.ISourceLookupDirector)
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/containers/JavaSourcePathComputer.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/containers/JavaSourcePathComputer.java
index b3a0fb7..a9ca595 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/containers/JavaSourcePathComputer.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/containers/JavaSourcePathComputer.java
@@ -27,28 +27,28 @@
  * The source path provider computes a collection of <code>IRuntimeClasspathEntry</code>'s
  * which are translated to source containers (<code>ISourceContainer</code>).
  * <p>
- * Clients may subclass this class. 
+ * Clients may subclass this class.
  * </p>
  * @since 3.0
- * 
+ *
  */
 public class JavaSourcePathComputer implements ISourcePathComputerDelegate {
-	
+
 	/**
 	 * Unique identifier for the local Java source path computer
 	 * (value <code>org.eclipse.jdt.launching.sourceLookup.javaSourcePathComputer</code>).
 	 */
 	public static final String ID = "org.eclipse.jdt.launching.sourceLookup.javaSourcePathComputer"; //$NON-NLS-1$
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.core.sourcelookup.ISourcePathComputer#getId()
-	 * 
+	 *
      * No longer used.
 	 */
 	public String getId() {
 		return ID;
 	}
-    
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.core.sourcelookup.ISourcePathComputerDelegate#computeSourceContainers(org.eclipse.debug.core.ILaunchConfiguration, org.eclipse.core.runtime.IProgressMonitor)
 	 */
@@ -58,5 +58,5 @@
 		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveSourceLookupPath(entries, configuration);
 		return JavaRuntime.getSourceContainers(resolved);
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/containers/PackageFragmentRootSourceContainer.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/containers/PackageFragmentRootSourceContainer.java
index 710263e..d1314dc 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/containers/PackageFragmentRootSourceContainer.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/containers/PackageFragmentRootSourceContainer.java
@@ -28,29 +28,29 @@
  * <p>
  * This class may be instantiated.
  * </p>
- * 
+ *
  * @since 3.0
  * @noextend This class is not intended to be subclassed by clients.
  */
 public class PackageFragmentRootSourceContainer extends AbstractSourceContainer {
-	
+
 	private IPackageFragmentRoot fRoot;
 	/**
 	 * Unique identifier for Java project source container type
 	 * (value <code>org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot</code>).
 	 */
 	public static final String TYPE_ID = LaunchingPlugin.getUniqueIdentifier() + ".sourceContainer.packageFragmentRoot";   //$NON-NLS-1$
-	
+
 	/**
 	 * Constructs a new package fragment root source container on the
 	 * given root. The root must be of kind <code>K_BINARY</code>.
-	 * 
+	 *
 	 * @param root package fragment root
 	 */
 	public PackageFragmentRootSourceContainer(IPackageFragmentRoot root) {
 		fRoot = root;
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#findSourceElements(java.lang.String)
 	 */
@@ -87,7 +87,7 @@
 						ICompilationUnit unit = fragment.getCompilationUnit(typeName + '.' + ext);
 						if (unit.exists()) {
 							return new Object[]{unit};
-						}	
+						}
 					}
 					break;
 			}
@@ -109,7 +109,7 @@
 	public ISourceContainerType getType() {
 		return getSourceContainerType(TYPE_ID);
 	}
-	
+
 	/* (non-Javadoc)
 	 * @see java.lang.Object#equals(java.lang.Object)
 	 */
@@ -118,10 +118,10 @@
 		return obj instanceof PackageFragmentRootSourceContainer &&
 		 ((PackageFragmentRootSourceContainer)obj).getPackageFragmentRoot().equals(getPackageFragmentRoot());
 	}
-	
+
 	/**
 	 * Returns the package fragment root this container searches for source.
-	 * 
+	 *
 	 * @return the package fragment root this container searches for source
 	 */
 	public IPackageFragmentRoot getPackageFragmentRoot() {
diff --git a/org.eclipse.jdt.launching/support/org/eclipse/jdt/internal/launching/support/LegacySystemProperties.java b/org.eclipse.jdt.launching/support/org/eclipse/jdt/internal/launching/support/LegacySystemProperties.java
index a2eef54..2f03ffa 100644
--- a/org.eclipse.jdt.launching/support/org/eclipse/jdt/internal/launching/support/LegacySystemProperties.java
+++ b/org.eclipse.jdt.launching/support/org/eclipse/jdt/internal/launching/support/LegacySystemProperties.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -13,12 +13,12 @@
 
 /**
  * Evaluates system properties passed as program arguments for pre 1.4 VMs.
- * 
+ *
  * @since 3.2
  */
 public class LegacySystemProperties {
 
-	public static void main(String[] args) { 
+	public static void main(String[] args) {
 		StringBuffer buffer = new StringBuffer();
 		buffer.append("<systemProperties>\n");    //$NON-NLS-1$
 		for (int i = 0; i < args.length; i++) {
@@ -36,5 +36,5 @@
 		buffer.append("</systemProperties>");  //$NON-NLS-1$
 		System.out.print(buffer.toString());
 	}
-	
+
 }
diff --git a/org.eclipse.jdt.launching/support/org/eclipse/jdt/internal/launching/support/LibraryDetector.java b/org.eclipse.jdt.launching/support/org/eclipse/jdt/internal/launching/support/LibraryDetector.java
index 960caf4..1b76bd1 100644
--- a/org.eclipse.jdt.launching/support/org/eclipse/jdt/internal/launching/support/LibraryDetector.java
+++ b/org.eclipse.jdt.launching/support/org/eclipse/jdt/internal/launching/support/LibraryDetector.java
@@ -26,13 +26,13 @@
 	 * <li>java.ext.dirs</li>
 	 * <li>java.endorsed.dirs</li>
 	 * </ul>
-	 * 
+	 *
 	 * @param args the command line arguments
 	 */
 	public static void main(String[] args) {
 		// if we are running raw j9
 		if ("j9".equalsIgnoreCase(System.getProperty("java.vm.name"))) { //$NON-NLS-1$ //$NON-NLS-2$
-			// Map class lib versions onto things that the launch infrastructure understands.  J9 
+			// Map class lib versions onto things that the launch infrastructure understands.  J9
 			// behaves like 1.4 with-respect-to launch/debug
 			String configuration = System.getProperty("com.ibm.oti.configuration"); //$NON-NLS-1$
 			if ("found10".equals(configuration)) //$NON-NLS-1$