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
@@ -1 +1 @@
-/*******************************************************************************
 * 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
 * http://www.eclipse.org/legal/epl-v10.html
 * 
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.debug.jdi.tests;

/**
 * An abstract reader that continuously reads.
 */
abstract public class AbstractReader {
	protected String fName;
	protected Thread fReaderThread;
	protected boolean fIsStopping = false;

	/**
	 * Constructor
	 * @param name
	 */
	public AbstractReader(String name) {
		fName = name;
	}
	/**
	 * Continuously reads. Note that if the read involves waiting
	 * it can be interrupted and a InterruptedException will be thrown.
	 */
	abstract protected void readerLoop();
	/**
	 * Start the thread that reads events.
	 * 
	 */
	public void start() {
		fReaderThread = new Thread(new Runnable() {
			@Override
			public void run() {
				readerLoop();
			}
		}, fName);
		fReaderThread.setDaemon(true);
		fReaderThread.start();
	}
	/**
	 * Tells the reader loop that it should stop.
	 */
	public void stop() {
		fIsStopping = true;
		if (fReaderThread != null) {
			fReaderThread.interrupt();
		}
	}
}
\ No newline at end of file
+/*******************************************************************************
 * 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
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.debug.jdi.tests;

/**
 * An abstract reader that continuously reads.
 */
abstract public class AbstractReader {
	protected String fName;
	protected Thread fReaderThread;
	protected boolean fIsStopping = false;

	/**
	 * Constructor
	 * @param name
	 */
	public AbstractReader(String name) {
		fName = name;
	}
	/**
	 * Continuously reads. Note that if the read involves waiting
	 * it can be interrupted and a InterruptedException will be thrown.
	 */
	abstract protected void readerLoop();
	/**
	 * Start the thread that reads events.
	 *
	 */
	public void start() {
		fReaderThread = new Thread(new Runnable() {
			@Override
			public void run() {
				readerLoop();
			}
		}, fName);
		fReaderThread.setDaemon(true);
		fReaderThread.start();
	}
	/**
	 * Tells the reader loop that it should stop.
	 */
	public void stop() {
		fIsStopping = true;
		if (fReaderThread != null) {
			fReaderThread.interrupt();
		}
	}
}
\ No newline at end of file
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);