Bug 355717 - testRowAccess failure in I20110823-0925 build
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 1e155dc..2e2d213 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
@@ -1,5 +1,5 @@
 /*******************************************************************************
- *  Copyright (c) 2000, 2007 IBM Corporation and others.
+ *  Copyright (c) 2000, 2011 IBM Corporation and others.
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
@@ -18,6 +18,7 @@
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 import java.util.zip.ZipFile;
 
 import org.eclipse.core.resources.IContainer;
@@ -49,6 +50,13 @@
  */
 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";
+	public static final String J2SE_1_5_EE_NAME = "J2SE-1.5";
+	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";
+	
 	/**
 	 * path to the test src for 'testprograms'
 	 */
@@ -58,6 +66,10 @@
 	 * path to the 1.5 test source
 	 */
 	public static final IPath TEST_1_5_SRC_DIR= new Path("testsource-j2se-1.5");
+	/**
+	 * path to the 1.7 test source
+	 */
+	public static final IPath TEST_1_7_SRC_DIR= new Path("java7");
 	
 	/**
 	 * path to the compiler error java file
@@ -369,6 +381,40 @@
 	}
 	
 	/**
+	 * 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} and 
+	 * {@link JavaCore#VERSION_1_7} for more information on accepted compliances
+	 * 
+	 * @param project
+	 * @param compliance
+	 */
+	public static void setCompliance(IJavaProject project, String compliance) {
+		Map map = JavaCore.getOptions();
+		map.put(JavaCore.COMPILER_COMPLIANCE, compliance);
+		map.put(JavaCore.COMPILER_SOURCE, compliance);
+		project.setOptions(map);
+	}
+	
+	/**
+	 * 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
+	 */
+	public static void updateCompliance(IJavaProject project, String ee) {
+		if(J2SE_1_4_EE_NAME.equals(ee)) {
+			setCompliance(project, JavaCore.VERSION_1_4);
+		}
+		else if(J2SE_1_5_EE_NAME.equals(ee)) {
+			setCompliance(project, JavaCore.VERSION_1_5);
+		}
+		else if(JAVA_SE_1_7_EE_NAME.equals(ee)) {
+			setCompliance(project, JavaCore.VERSION_1_7);
+		}
+	}
+	
+	/**
 	 * Adds a required project entry.
 	 * @param jproject
 	 * @param required
@@ -510,7 +556,7 @@
 		for (int i = 0; i < files.length; i++) {
 			if (files[i].isFile()) {
 				collection.add(files[i]);
-			} else if (files[i].isDirectory()) {
+			} else if (files[i].isDirectory() && files[i].getName().indexOf("CVS") < 0) {
 				subDirs.add(files[i]);
 			}
 		}
@@ -531,8 +577,5 @@
 		public String queryOverwrite(String file) {
 			return ALL;
 		}	
-	}		
-	
-	
+	}	
 }
-
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
old mode 100755
new mode 100644
index 3938d88..afb26d8
--- 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
@@ -1,5 +1,5 @@
 /*******************************************************************************
- *  Copyright (c) 2000, 2010 IBM Corporation and others.
+ *  Copyright (c) 2000, 2011 IBM Corporation and others.
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
@@ -57,7 +57,7 @@
 			stackFrame = (IJavaStackFrame) thread.getTopStackFrame();
 			String recTypeName = stackFrame.getReceivingTypeName();
 			if (!"StepFilterOne".equals(recTypeName)) {
-				throw new TestAgainException(); // @see bug 297071
+				throw new TestAgainException("Retest - "+recTypeName+" is does not match StepFilterOne"); // @see bug 297071
 			}
 			assertEquals("Wrong receiving type", "StepFilterOne", recTypeName);
 			int lineNumber = stackFrame.getLineNumber();
@@ -87,7 +87,7 @@
 			stackFrame = (IJavaStackFrame) thread.getTopStackFrame();
 			String recTypeName = stackFrame.getReceivingTypeName();
 			if (!"StepFilterOne".equals(recTypeName)) {
-				throw new TestAgainException(); // @see bug 297071
+				throw new TestAgainException("Retest - "+recTypeName+" is does not match StepFilterOne"); // @see bug 297071
 			}
 			assertEquals("Wrong receiving type", "StepFilterOne", recTypeName);
 			int lineNumber = stackFrame.getLineNumber();
@@ -117,7 +117,7 @@
 			stackFrame = (IJavaStackFrame) thread.getTopStackFrame();
 			String recTypeName = stackFrame.getReceivingTypeName();
 			if (!"StepFilterTwo".equals(recTypeName)) {
-				throw new TestAgainException(); // @see bug 297071
+				throw new TestAgainException("Retest - "+recTypeName+" is does not match StepFilterTwo"); // @see bug 297071
 			}
 			assertEquals("Wrong receiving type", "StepFilterTwo", recTypeName);
 			int lineNumber = stackFrame.getLineNumber();
@@ -148,7 +148,7 @@
 			stackFrame = (IJavaStackFrame) thread.getTopStackFrame();
 			String recTypeName = stackFrame.getReceivingTypeName();
 			if (!"StepFilterThree".equals(recTypeName)) {
-				throw new TestAgainException();
+				throw new TestAgainException("Retest - "+recTypeName+" is does not match StepFilterThree");
 			}
 			assertEquals("Wrong receiving type", "StepFilterThree", recTypeName);
 			int lineNumber = stackFrame.getLineNumber();
@@ -178,7 +178,7 @@
 			stackFrame = (IJavaStackFrame) thread.getTopStackFrame();
 			String recTypeName = stackFrame.getReceivingTypeName();
 			if (!"StepFilterOne".equals(recTypeName)) {
-				throw new TestAgainException();
+				throw new TestAgainException("Retest - "+recTypeName+" is does not match StepFilterOne");
 			}
 			assertEquals("Wrong receiving type", "StepFilterOne", recTypeName);
 			int lineNumber = stackFrame.getLineNumber();
@@ -208,7 +208,7 @@
 			stackFrame = (IJavaStackFrame) thread.getTopStackFrame();
 			String recTypeName = stackFrame.getReceivingTypeName();
 			if (!"StepFilterOne".equals(recTypeName)) {
-				throw new TestAgainException();
+				throw new TestAgainException("Retest - "+recTypeName+" is does not match StepFilterOne");
 			}
 			assertEquals("Wrong receiving type", "StepFilterOne", recTypeName);
 			int lineNumber = stackFrame.getLineNumber();
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
old mode 100755
new mode 100644
index 6d68322..b8af4da
--- 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
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -29,12 +29,11 @@
 	
 	/**
 	 * Constructor 
-	 * @param name the name of the test
 	 */
 	public StepIntoSelectionTests(String name) {
 		super(name);
-	}
-
+	}	
+	
 	/**
 	 * Step into 'new StepIntoSelectionClass()'
 	 * 
@@ -49,7 +48,7 @@
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
 			
-			ICompilationUnit cu = getCompilationUnit(getJavaProject(), "src", "org.eclipse.debug.tests.targets", "StepIntoSelectionClass.java");
+			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());
@@ -85,7 +84,7 @@
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
 			
-			ICompilationUnit cu = getCompilationUnit(getJavaProject(), "src", "org.eclipse.debug.tests.targets", "StepIntoSelectionClass.java");
+			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());
@@ -121,7 +120,7 @@
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
 			
-			ICompilationUnit cu = getCompilationUnit(getJavaProject(), "src", "org.eclipse.debug.tests.targets", "StepIntoSelectionClass.java");
+			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());
@@ -157,7 +156,7 @@
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
 			
-			IType type = getJavaProject().findType("java.util.Vector");
+			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
 			if(!method.exists()) {
@@ -196,7 +195,7 @@
 			thread= launchToBreakpoint(typeName);
 			assertNotNull("Breakpoint not hit within timeout period", thread);
 			
-			IType type = getJavaProject().findType("java.lang.Integer");
+			IType type = get14Project().findType("java.lang.Integer");
 			IMethod method = type.getMethod("Integer", new String[]{"I"});
 			assertTrue("Could not find method constructor", method.exists());
 			
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 d7cdb73..1bc6fdd 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
@@ -1,5 +1,5 @@
 /*******************************************************************************
- *  Copyright (c) 2004, 2008 IBM Corporation and others.
+ *  Copyright (c) 2004, 2011 IBM Corporation and others.
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
@@ -53,7 +53,7 @@
 	 * 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) descritive name of the scenario
+	 * @param shortName a short (shorter than 40 characters) descriptive name of the scenario
 	 * @param dimension the dimension to show in the summary
 	 */
 	public void tagAsGlobalSummary(String shortName, Dimension dimension) {
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 b03a9e7..96b6f03 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
@@ -11,14 +11,13 @@
 package org.eclipse.jdt.debug.tests;
 
 import java.io.File;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
 import junit.framework.TestCase;
-import junit.framework.TestResult;
-import junit.framework.TestSuite;
 
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IFolder;
@@ -56,12 +55,15 @@
 import org.eclipse.debug.internal.core.LaunchDelegate;
 import org.eclipse.debug.internal.core.LaunchManager;
 import org.eclipse.debug.internal.ui.DebugUIPlugin;
+import org.eclipse.debug.internal.ui.IInternalDebugUIConstants;
 import org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationManager;
 import org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationPresentationManager;
 import org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationsDialog;
 import org.eclipse.debug.internal.ui.launchConfigurations.LaunchShortcutExtension;
+import org.eclipse.debug.internal.ui.preferences.IDebugPreferenceConstants;
 import org.eclipse.debug.ui.DebugUITools;
 import org.eclipse.debug.ui.IDebugModelPresentation;
+import org.eclipse.debug.ui.IDebugUIConstants;
 import org.eclipse.debug.ui.ILaunchConfigurationDialog;
 import org.eclipse.debug.ui.ILaunchConfigurationTabGroup;
 import org.eclipse.debug.ui.actions.ToggleBreakpointAction;
@@ -101,7 +103,9 @@
 import org.eclipse.jdt.debug.testplugin.DebugEventWaiter;
 import org.eclipse.jdt.debug.testplugin.JavaProjectHelper;
 import org.eclipse.jdt.debug.testplugin.JavaTestPlugin;
+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.eval.ast.engine.ASTEvaluationEngine;
 import org.eclipse.jdt.internal.debug.ui.BreakpointUtils;
 import org.eclipse.jdt.internal.debug.ui.IJDIPreferencesConstants;
@@ -111,6 +115,7 @@
 import org.eclipse.jdt.launching.JavaRuntime;
 import org.eclipse.jdt.launching.environments.IExecutionEnvironment;
 import org.eclipse.jface.dialogs.ErrorDialog;
+import org.eclipse.jface.dialogs.MessageDialogWithToggle;
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.text.BadPositionCategoryException;
 import org.eclipse.jface.text.Document;
@@ -122,6 +127,7 @@
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPreferenceConstants;
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.PlatformUI;
@@ -129,7 +135,9 @@
 import org.eclipse.ui.console.IHyperlink;
 import org.eclipse.ui.console.TextConsole;
 import org.eclipse.ui.ide.IDE;
+import org.eclipse.ui.internal.WorkbenchWindow;
 import org.eclipse.ui.internal.console.ConsoleHyperlinkPosition;
+import org.eclipse.ui.internal.util.PrefUtil;
 import org.eclipse.ui.progress.WorkbenchJob;
 
 import com.sun.jdi.InternalException;
@@ -139,6 +147,23 @@
  */
 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";
+	public static final String ONE_FIVE_PROJECT_NAME = "OneFive";
+	public static final String ONE_SEVEN_PROJECT_NAME = "OneSeven";
+	public static final String BOUND_JRE_PROJECT_NAME = "BoundJRE";
+
+	final String[] LAUNCH_CONFIG_NAMES_1_4 = {"LargeSourceFile", "LotsOfFields", "Breakpoints", "InstanceVariablesTests", "LocalVariablesTests", "StaticVariablesTests",
+			"DropTests", "ThrowsNPE", "ThrowsException", "org.eclipse.debug.tests.targets.Watchpoint", "org.eclipse.debug.tests.targets.CallLoop", "A",
+			"HitCountLooper", "CompileError", "MultiThreadedLoop", "HitCountException", "MultiThreadedException", "MultiThreadedList", "MethodLoop", "StepFilterOne",
+			"StepFilterFour", "EvalArrayTests", "EvalSimpleTests", "EvalTypeTests", "EvalNestedTypeTests", "EvalTypeHierarchyTests", "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", 
+			"ForceReturnTestsTwo", "LogicalStructures", "BreakpointListenerTest", "LaunchHistoryTest", "LaunchHistoryTest2", "RunnableAppletImpl", "java6.AllInstancesTests"};
+	
 	/**
 	 * the default timeout
 	 */
@@ -159,15 +184,18 @@
 	public IEvaluationResult fEvaluationResult;
 	
 	/**
-	 * the java project
-	 */
-	public static IJavaProject fJavaProject;
-	
-	/**
 	 * The last relevant event set - for example, that caused
 	 * a thread to suspend
 	 */
 	protected DebugEvent[] fEventSet;
+
+	private static boolean loadedPrefs = false;
+	private static boolean loaded14 = false;
+	private static boolean loaded15 = false;
+	private static boolean loaded17 = false;
+	private static boolean loadedEE = false;
+	private static boolean loadedJRE = false;
+	private static boolean loadedMulti = false;
 	
 	/**
 	 * Constructor
@@ -181,13 +209,267 @@
 	}
 	
 	
+	/* (non-Javadoc)
+	 * @see junit.framework.TestCase#setUp()
+	 */
 	protected void setUp() throws Exception {
 		super.setUp();
-		if (!ProjectCreationDecorator.isReady()) {
-			new TestSuite(ProjectCreationDecorator.class).run(new TestResult());
-		}
+		setPreferences();
+		IProject pro = ResourcesPlugin.getWorkspace().getRoot().getProject(ONE_FOUR_PROJECT_NAME);
+		loaded14 = pro.exists();
+		pro = ResourcesPlugin.getWorkspace().getRoot().getProject(ONE_FIVE_PROJECT_NAME);
+		loaded15 = pro.exists();
+		pro = ResourcesPlugin.getWorkspace().getRoot().getProject(ONE_SEVEN_PROJECT_NAME);
+		loaded17 = pro.exists();
+		pro = ResourcesPlugin.getWorkspace().getRoot().getProject(BOUND_JRE_PROJECT_NAME);
+		loadedJRE = pro.exists();
+		pro = ResourcesPlugin.getWorkspace().getRoot().getProject(BOUND_EE_PROJECT_NAME);
+		loadedEE = pro.exists();
+		pro = ResourcesPlugin.getWorkspace().getRoot().getProject(MULTI_OUTPUT_PROJECT_NAME);
+		loadedMulti = pro.exists();
 	}
 
+	synchronized void setPreferences() {
+		if(!loadedPrefs) {
+	        IPreferenceStore debugUIPreferences = DebugUIPlugin.getDefault().getPreferenceStore();
+	        // Don't prompt for perspective switching
+	        debugUIPreferences.setValue(IInternalDebugUIConstants.PREF_SWITCH_PERSPECTIVE_ON_SUSPEND, MessageDialogWithToggle.ALWAYS);
+	        debugUIPreferences.setValue(IInternalDebugUIConstants.PREF_SWITCH_TO_PERSPECTIVE, MessageDialogWithToggle.ALWAYS);
+	        debugUIPreferences.setValue(IInternalDebugUIConstants.PREF_RELAUNCH_IN_DEBUG_MODE, MessageDialogWithToggle.NEVER);
+	        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"); 
+	        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);
+	        jdiUIPreferences.setValue(IJDIPreferencesConstants.PREF_SUSPEND_ON_COMPILATION_ERRORS, false);
+	        // Don't warn about HCR failures
+	        jdiUIPreferences.setValue(IJDIPreferencesConstants.PREF_ALERT_HCR_FAILED, false);
+	        jdiUIPreferences.setValue(IJDIPreferencesConstants.PREF_ALERT_HCR_NOT_SUPPORTED, false);
+	        jdiUIPreferences.setValue(IJDIPreferencesConstants.PREF_ALERT_OBSOLETE_METHODS, false);
+	        // Set the timeout preference to a high value, to avoid timeouts while
+	        // testing
+	        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();
+	        for (int i = 0; i < windows.length; i++) {
+	            IWorkbenchWindow window = windows[i];
+	            if(window instanceof WorkbenchWindow){
+	                ((WorkbenchWindow) window).showHeapStatus(false);
+	            }
+	        }
+	        loadedPrefs = true;
+		}
+    }
+	
+	/**
+	 * Creates the Java 1.4 compliant project
+	 */
+	synchronized void assert14Project() {
+		IJavaProject jp = null;
+		ArrayList cfgs = new ArrayList(1);
+        try {
+	        if (!loaded14) {
+	        	jp = createProject(ONE_FOUR_PROJECT_NAME, JavaProjectHelper.TEST_SRC_DIR.toString(), JavaProjectHelper.J2SE_1_4_EE_NAME, false);
+	        	IPackageFragmentRoot src = jp.findPackageFragmentRoot(new Path(ONE_FOUR_PROJECT_NAME).append(JavaProjectHelper.SRC_DIR).makeAbsolute());
+	        	assertNotNull("The 'src' package fragment root should not be null", src);
+	        	File root = JavaTestPlugin.getDefault().getFileInPlugin(new Path("testjars"));
+		        JavaProjectHelper.importFilesFromDirectory(root, src.getPath(), null);
+		        IPath path = src.getPath().append("A.jar");
+		        JavaProjectHelper.addLibrary(jp, path);
+		
+		        // 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]));
+				}
+		        loaded14 = true;
+		        waitForBuild();
+	        }
+        }
+        catch(Exception e) {
+        	try {
+        		if(jp != null) {
+        			jp.getProject().delete(true,  true, null);
+        		}
+	        	for (int i = 0; i < cfgs.size(); i++) {
+					((ILaunchConfiguration)cfgs.get(i)).delete();
+				}
+        	}
+        	catch (CoreException ce) {
+        		//ignore
+			}
+        	fail(e.getMessage());
+        }
+    }
+	
+	/**
+	 * Creates the Java 1.5 compliant project
+	 */
+	void assert15Project() {
+		IJavaProject jp = null; 
+		ArrayList cfgs = new ArrayList(1);
+        try {
+	        if (!loaded15) {
+				jp = createProject(ONE_FIVE_PROJECT_NAME, JavaProjectHelper.TEST_1_5_SRC_DIR.toString(), JavaProjectHelper.J2SE_1_5_EE_NAME, true);
+				cfgs.add(createLaunchConfiguration(jp, "a.b.c.MethodBreakpoints"));
+				cfgs.add(createLaunchConfiguration(jp, "a.b.c.IntegerAccess"));
+				loaded15 = true;
+				waitForBuild();
+	        }
+        }
+        catch(Exception e) {
+        	try {
+        		if(jp != null) {
+		        	jp.getProject().delete(true,  true, null);
+		        	for (int i = 0; i < cfgs.size(); i++) {
+						((ILaunchConfiguration)cfgs.get(i)).delete();
+					}
+        		}
+        	}
+        	catch (CoreException ce) {
+        		//ignore
+			}
+        	fail(e.getMessage());
+        }
+	}
+	
+	/**
+	 * Creates the Java 1.7 compliant project
+	 */
+	synchronized void assert17Project() {
+		IJavaProject jp = null;
+		ArrayList cfgs = new ArrayList(1);
+        try {
+	        if (!loaded17) {
+	        	jp = createProject(ONE_SEVEN_PROJECT_NAME, JavaProjectHelper.TEST_1_7_SRC_DIR.toString(), JavaProjectHelper.JAVA_SE_1_7_EE_NAME, false);
+	    		cfgs.add(createLaunchConfiguration(jp, LiteralTests17.LITERAL_TYPE_NAME));
+	    		loaded17 = true;
+	    		waitForBuild();
+	        }
+        }
+        catch(Exception e) {
+        	try {
+        		if(jp != null) {
+		        	jp.getProject().delete(true,  true, null);
+		        	for (int i = 0; i < cfgs.size(); i++) {
+						((ILaunchConfiguration)cfgs.get(i)).delete();
+					}
+        		}
+        	}
+        	catch (CoreException ce) {
+        		//ignore
+			}
+        	fail(e.getMessage());
+        }
+	}
+	
+	/**
+	 * Creates the 'BoundJRE' project used for the JRE testing
+	 */
+	synchronized void assertBoundJreProject() {
+		IJavaProject jp = null; 
+		try {
+	        if (!loadedJRE) {
+		        jp =JavaProjectHelper.createJavaProject(BOUND_JRE_PROJECT_NAME);
+		        JavaProjectHelper.addSourceContainer(jp, JavaProjectHelper.SRC_DIR, JavaProjectHelper.BIN_DIR);
+		        // add VM specific JRE container
+		        IPath path = JavaRuntime.newJREContainerPath(JavaRuntime.getDefaultVMInstall());
+		        JavaProjectHelper.addContainerEntry(jp, path);
+		        loadedJRE = true;
+		        waitForBuild();
+	        }
+		}
+		catch(Exception e) {
+        	try {
+        		if(jp != null) {
+        			jp.getProject().delete(true,  true, null);
+        		}
+        	}
+        	catch (CoreException ce) {
+        		//ignore
+			}
+        	fail(e.getMessage());
+        }
+	}
+	
+	/**
+	 * Creates the 'BoundEE' project for EE testing
+	 */
+	void assertBoundeEeProject() {
+		IJavaProject jp = null;
+		try {
+	        if(!loadedEE) {
+		        // 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);
+		        IPath path = JavaRuntime.newJREContainerPath(j2se14);
+		        JavaProjectHelper.addContainerEntry(jp, path);
+		        loadedEE = true;
+		        waitForBuild();
+	        }
+		}
+		catch(Exception e) {
+        	try {
+        		if(jp != null) {
+        			jp.getProject().delete(true,  true, null);
+        		}
+        	}
+        	catch (CoreException ce) {
+        		//ignore
+			}
+        	fail(e.getMessage());
+        }
+	}
+	
+	/**
+	 * Creates the 'MultiOutput' project for source / binary output testing
+	 */
+	synchronized void assertMultioutputProject() {
+		IJavaProject jp = null;
+		try {
+	        if(!loadedMulti) {
+		        // create project with two src folders and output locations
+		        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);
+		        JavaProjectHelper.addContainerEntry(jp, new Path(JavaRuntime.JRE_CONTAINER));
+		        loadedMulti = true;
+		        waitForBuild();
+	        }
+		}
+		catch(Exception e) {
+        	try {
+        		if(jp != null) {
+        			jp.getProject().delete(true,  true, null);
+        		}
+        	}
+        	catch (CoreException ce) {
+        		//ignore
+			}
+        	fail(e.getMessage());
+        }
+	}
+	
 	/**
 	 * Sets the last relevant event set
 	 *
@@ -235,16 +517,71 @@
 	}	
 	
 	/**
+	 * Returns the project context for the current test - each
+	 * test must implement this method
+	 */
+	protected IJavaProject getProjectContext() {
+		return get14Project();
+	}
+	
+	/**
 	 * Returns the 'DebugTests' project.
 	 * 
 	 * @return the test project
 	 */
-	protected IJavaProject getJavaProject() {
-		return getJavaProject("DebugTests");
+	protected IJavaProject get14Project() {
+		assert14Project();
+		return getJavaProject(ONE_FOUR_PROJECT_NAME);
 	}
 	
+	/**
+	 * Returns the 'OneFive' project.
+	 * 
+	 * @return the test project
+	 */
 	protected IJavaProject get15Project() {
-		return getJavaProject("OneFive");
+		assert15Project();
+		return getJavaProject(ONE_FIVE_PROJECT_NAME);
+	}
+	
+	/**
+	 * Returns the 'OneSeven' project.
+	 * 
+	 * @return the test project
+	 */
+	protected IJavaProject get17Project() {
+		assert17Project();
+		return getJavaProject(ONE_SEVEN_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);
 	}
 	
 	/**
@@ -281,8 +618,8 @@
         	catch(Exception e) {}
         }
         // create project and import source
-        IJavaProject jp = JavaProjectHelper.createJavaProject(name, "bin");
-        IPackageFragmentRoot src = JavaProjectHelper.addSourceContainer(jp, "src");
+        IJavaProject jp = JavaProjectHelper.createJavaProject(name, JavaProjectHelper.BIN_DIR);
+        IPackageFragmentRoot src = JavaProjectHelper.addSourceContainer(jp, JavaProjectHelper.SRC_DIR);
         File root = JavaTestPlugin.getDefault().getFileInPlugin(new Path(contentpath));
         JavaProjectHelper.importFilesFromDirectory(root, src.getPath(), null);
 
@@ -295,6 +632,8 @@
         JavaProjectHelper.addContainerEntry(jp, containerPath);
         pro = jp.getProject();  
         
+        JavaProjectHelper.updateCompliance(jp, ee);
+        
         // create launch configuration folder
         IFolder folder = pro.getFolder("launchConfigurations");
         if (!folder.exists()) {
@@ -326,8 +665,8 @@
         	catch(Exception e) {}
         }
         // create project and import source
-        IJavaProject jp = JavaProjectHelper.createJavaProject(name, "bin");
-        JavaProjectHelper.addSourceContainer(jp, "src");
+        IJavaProject jp = JavaProjectHelper.createJavaProject(name, JavaProjectHelper.BIN_DIR);
+        JavaProjectHelper.addSourceContainer(jp, JavaProjectHelper.SRC_DIR);
         File root = JavaTestPlugin.getDefault().getFileInPlugin(new Path(contentpath));
         JavaProjectHelper.importFilesFromDirectory(root, jp.getPath(), null);
 
@@ -539,7 +878,7 @@
 				e.printStackTrace();
 				fail("Program did not suspend, and unable to terminate launch."); //$NON-NLS-1$
 			}
-			throw new TestAgainException();
+			throw new TestAgainException("Program did not suspend, launch terminated.");
 		}
 		setEventSet(waiter.getEventSet());
 		assertNotNull("Program did not suspend, launch terminated.", suspendee); //$NON-NLS-1$
@@ -586,7 +925,7 @@
 	 * @return thread in which the first suspend event occurred
 	 */
 	protected IJavaThread launchToBreakpoint(String mainTypeName) throws Exception {
-		return launchToBreakpoint(getJavaProject(), mainTypeName);
+		return launchToBreakpoint(getProjectContext(), mainTypeName);
 	}
 	
 	/**
@@ -612,7 +951,7 @@
 	 * @return thread in which the first suspend event occurred
 	 */
 	protected IJavaThread launchToBreakpoint(String mainTypeName, boolean register) throws Exception {
-		return launchToBreakpoint(getJavaProject(), mainTypeName, register);
+		return launchToBreakpoint(getProjectContext(), mainTypeName, register);
 	}
 	
 	/**
@@ -897,7 +1236,7 @@
 	 * @see ProjectCreationDecorator
 	 */
 	protected ILaunchConfiguration getLaunchConfiguration(String mainTypeName) {
-		return getLaunchConfiguration(getJavaProject(), mainTypeName);
+		return getLaunchConfiguration(getProjectContext(), mainTypeName);
 	}
 	
 	/**
@@ -939,10 +1278,10 @@
 	 * @throws Exception
 	 */
 	protected IResource getBreakpointResource(String typeName) throws Exception {
-		IJavaElement element = getJavaProject().findElement(new Path(typeName + JAVA_EXTENSION));
+		IJavaElement element = getProjectContext().findElement(new Path(typeName + JAVA_EXTENSION));
 		IResource resource = element.getCorrespondingResource();
 		if (resource == null) {
-			resource = getJavaProject().getProject();
+			resource = getProjectContext().getProject();
 		}		
 		return resource;
 	}
@@ -956,7 +1295,7 @@
 	 */
 	protected IResource getBreakpointResource(IType type) throws Exception {
 		if (type == null) {
-			return getJavaProject().getProject();
+			return getProjectContext().getProject();
 		}
 		IResource resource = type.getResource();
 		if (resource == null) {
@@ -988,7 +1327,7 @@
 	 */
 	protected IJavaLineBreakpoint createLineBreakpoint(int lineNumber, String root, String packageName, String cuName, 
 			String fullTargetName) throws Exception{
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = getProjectContext();
 		ICompilationUnit cunit = getCompilationUnit(javaProject, root, packageName, cuName);
 		assertNotNull("did not find requested Compilation Unit", cunit); //$NON-NLS-1$
 		IType targetType = (IType)(new MemberParser()).getDeepest(cunit,fullTargetName);
@@ -1076,7 +1415,7 @@
 	 * @throws Exception
 	 */
 	protected IType getType(String packageName, String cuName, String typeName) throws Exception {
-		IPackageFragment[] packageFragments = getJavaProject().getPackageFragments();
+		IPackageFragment[] packageFragments = getProjectContext().getPackageFragments();
 		for (int i = 0; i < packageFragments.length; i++) {
 			IPackageFragment fragment = packageFragments[i];
 			if (fragment.getElementName().equals(packageName)) {
@@ -1145,7 +1484,7 @@
 	 * @param pattern the pattern of the class file name
 	 */
 	protected IJavaPatternBreakpoint createPatternBreakpoint(int lineNumber, String sourceName, String pattern) throws Exception {
-		return JDIDebugModel.createPatternBreakpoint(getJavaProject().getProject(), sourceName, pattern, lineNumber, -1, -1, 0, true, null);
+		return JDIDebugModel.createPatternBreakpoint(getProjectContext().getProject(), sourceName, pattern, lineNumber, -1, -1, 0, true, null);
 	}
 	
 	/**
@@ -1156,7 +1495,7 @@
 	 * @param sourceName name of source file
 	 */
 	protected IJavaTargetPatternBreakpoint createTargetPatternBreakpoint(int lineNumber, String sourceName) throws Exception {
-		return JDIDebugModel.createTargetPatternBreakpoint(getJavaProject().getProject(), sourceName, lineNumber, -1, -1, 0, true, null);
+		return JDIDebugModel.createTargetPatternBreakpoint(getProjectContext().getProject(), sourceName, lineNumber, -1, -1, 0, true, null);
 	}	
 	
 	/**
@@ -1168,7 +1507,7 @@
 	 * @param stratum the stratum of the source file
 	 */
 	protected IJavaStratumLineBreakpoint createStratumBreakpoint(int lineNumber, String sourceName, String stratum) throws Exception {
-		return JDIDebugModel.createStratumBreakpoint(getJavaProject().getProject(), stratum, sourceName, null, null, lineNumber, -1, -1, 0, true, null);
+		return JDIDebugModel.createStratumBreakpoint(getProjectContext().getProject(), stratum, sourceName, null, null, lineNumber, -1, -1, 0, true, null);
 	}
 	
 	/**
@@ -1181,7 +1520,7 @@
 	 * @param exit whether to break on exit
 	 */
 	protected IJavaMethodBreakpoint createMethodBreakpoint(String typeNamePattern, String methodName, String methodSignature, boolean entry, boolean exit) throws Exception {
-		return createMethodBreakpoint(getJavaProject(), typeNamePattern, methodName, methodSignature, entry, exit);
+		return createMethodBreakpoint(getProjectContext(), typeNamePattern, methodName, methodSignature, entry, exit);
 	}	
 	
 	/**
@@ -1263,7 +1602,7 @@
 	protected IJavaMethodBreakpoint createMethodBreakpoint(String root, String packageName, String cuName, 
 									String fullTargetName, boolean entry, boolean exit) throws Exception {
 		
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = getProjectContext();
 		ICompilationUnit cunit = getCompilationUnit(javaProject, root, packageName, cuName);
 		assertNotNull("did not find requested Compilation Unit", cunit); //$NON-NLS-1$
 		IMethod targetMethod = (IMethod)(new MemberParser()).getDeepest(cunit,fullTargetName);
@@ -1319,7 +1658,7 @@
 	 */
 	protected IJavaClassPrepareBreakpoint createClassPrepareBreakpoint(String root,
 			String packageName, String cuName, String fullTargetName) throws Exception {
-		ICompilationUnit cunit = getCompilationUnit(getJavaProject(), root, packageName, cuName);
+		ICompilationUnit cunit = getCompilationUnit(getProjectContext(), root, packageName, cuName);
 		IType type = (IType)getMember(cunit,fullTargetName);
 		assertTrue("Target type not found", type.exists()); //$NON-NLS-1$
 		return createClassPrepareBreakpoint(type);
@@ -1365,7 +1704,7 @@
 	 * @throws Exception
 	 */
 	protected IType getType(String typeName) throws Exception {
-		return getJavaProject().findType(typeName);
+		return getProjectContext().findType(typeName);
 	}
 	
 	/**
@@ -1447,7 +1786,7 @@
 	protected IJavaWatchpoint createNestedTypeWatchPoint(String root, String packageName, String cuName, 
 			String fullTargetName, boolean access, boolean modification) throws Exception, CoreException {
 		
-		ICompilationUnit cunit = getCompilationUnit(getJavaProject(), root, packageName, cuName);
+		ICompilationUnit cunit = getCompilationUnit(getProjectContext(), root, packageName, cuName);
 		IField field = (IField)getMember(cunit,fullTargetName);
 		assertNotNull("Path to field is not valid", field); //$NON-NLS-1$
 		assertTrue("Field is not valid", field.exists()); //$NON-NLS-1$
@@ -1577,14 +1916,21 @@
 		DebugEventWaiter waiter= new DebugElementKindEventWaiter(DebugEvent.SUSPEND, IJavaThread.class);
 		waiter.setTimeout(DEFAULT_TIMEOUT);
 		
-		IAstEvaluationEngine engine = EvaluationManager.newAstEvaluationEngine(getJavaProject(), (IJavaDebugTarget)frame.getDebugTarget());
-		engine.evaluate(snippet, frame, this, DebugEvent.EVALUATION, true);
-
-		Object suspendee= waiter.waitForEvent();
-		setEventSet(waiter.getEventSet());
-		assertNotNull("Program did not suspend.", suspendee); //$NON-NLS-1$
-		engine.dispose();
-		return fEvaluationResult;
+		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) {
+				throw new TestAgainException("Program did not suspend evaluating: \n\n"+snippet);
+			}
+			assertNotNull("Program did not suspend.", suspendee); //$NON-NLS-1$
+			return fEvaluationResult;
+		}
+		finally {
+			engine.dispose();
+		}
 	}		
 	
 	/**
@@ -1605,7 +1951,7 @@
 		Listener listener= new Listener();
 		IJavaStackFrame frame = (IJavaStackFrame) thread.getTopStackFrame();
 		assertNotNull("There should be a stackframe", frame);
-		ASTEvaluationEngine engine = new ASTEvaluationEngine(getJavaProject(), (IJavaDebugTarget) thread.getDebugTarget());
+		ASTEvaluationEngine engine = new ASTEvaluationEngine(getProjectContext(), (IJavaDebugTarget) thread.getDebugTarget());
 		try {
 			engine.evaluate(snippet, frame, listener, DebugEvent.EVALUATION_IMPLICIT, false);
 			long timeout = System.currentTimeMillis()+DEFAULT_TIMEOUT;
@@ -1870,14 +2216,14 @@
     /**
      * Creates a shared launch configuration for the type with the given name.
      */
-    protected void createLaunchConfiguration(String mainTypeName) throws Exception {
-        createLaunchConfiguration(getJavaProject(), mainTypeName);
+    protected ILaunchConfiguration createLaunchConfiguration(String mainTypeName) throws Exception {
+        return createLaunchConfiguration(getProjectContext(), mainTypeName);
     }
     
     /**
      * Creates a shared launch configuration for the type with the given name.
      */
-    protected void createLaunchConfiguration(IJavaProject project, String mainTypeName) throws Exception {
+    protected ILaunchConfiguration createLaunchConfiguration(IJavaProject project, String mainTypeName) throws Exception {
         ILaunchConfigurationType type = getLaunchManager().getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_JAVA_APPLICATION);
         ILaunchConfigurationWorkingCopy config = type.newInstance(project.getProject().getFolder(LAUNCHCONFIGURATIONS), mainTypeName);
         config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME, mainTypeName);
@@ -1887,13 +2233,13 @@
         Map map = new HashMap(1);
         map.put(IJavaLaunchConfigurationConstants.ATTR_JAVA_COMMAND, JAVA);
         config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_INSTALL_TYPE_SPECIFIC_ATTRS_MAP, map);
-        config.doSave();
+        return config.doSave();
     }    
 
     /**
      * Creates a shared launch configuration for the type with the given name.
      */
-    protected void createLaunchConfiguration(IJavaProject project, String containername, String mainTypeName) throws Exception {
+    protected ILaunchConfiguration createLaunchConfiguration(IJavaProject project, String containername, String mainTypeName) throws Exception {
         ILaunchConfigurationType type = getLaunchManager().getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_JAVA_APPLICATION);
         ILaunchConfigurationWorkingCopy config = type.newInstance(project.getProject().getFolder(containername), mainTypeName);
         config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME, mainTypeName);
@@ -1903,7 +2249,7 @@
         Map map = new HashMap(1);
         map.put(IJavaLaunchConfigurationConstants.ATTR_JAVA_COMMAND, JAVA);
         config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_INSTALL_TYPE_SPECIFIC_ATTRS_MAP, map);
-        config.doSave();
+        return config.doSave();
     }
     
 	/**
@@ -1921,7 +2267,7 @@
 			} 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$
 				DebugPlugin.log(status);
-				if (attempts > 9) {
+				if (attempts > 5) {
 					tryAgain = false;
 				}
 			}
@@ -2045,7 +2391,7 @@
 		if (cause instanceof InternalException) {
 			int code = ((InternalException)cause).errorCode();
 			if (code == 13) {
-				throw new TestAgainException();
+				throw new TestAgainException("Retest - exception during test: "+getName()+": "+e.getMessage());
 			}
 		}
 		throw e;
@@ -2072,7 +2418,7 @@
 		Listener listener = new Listener();
 		IJavaStackFrame frame = (IJavaStackFrame) thread.getTopStackFrame();
 		assertNotNull("There should be a stackframe", frame);
-		ASTEvaluationEngine engine = new ASTEvaluationEngine(getJavaProject(), (IJavaDebugTarget) thread.getDebugTarget());
+		ASTEvaluationEngine engine = new ASTEvaluationEngine(getProjectContext(), (IJavaDebugTarget) thread.getDebugTarget());
 		try {
 			engine.evaluate(snippet, frame, listener, DebugEvent.EVALUATION_IMPLICIT, false);
 			long timeout = System.currentTimeMillis()+5000;
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 9fe9f03..b411b36 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
@@ -11,8 +11,6 @@
  *******************************************************************************/
 package org.eclipse.jdt.debug.tests;
 
-import java.io.File;
-
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IFolder;
 import org.eclipse.core.resources.IMarker;
@@ -20,70 +18,36 @@
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.IWorkspace;
 import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
 import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.internal.core.LaunchManager;
 import org.eclipse.debug.internal.ui.DebugUIPlugin;
-import org.eclipse.debug.internal.ui.IInternalDebugUIConstants;
-import org.eclipse.debug.internal.ui.preferences.IDebugPreferenceConstants;
 import org.eclipse.debug.ui.IDebugUIConstants;
 import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jdt.debug.core.JDIDebugModel;
-import org.eclipse.jdt.debug.testplugin.JavaProjectHelper;
-import org.eclipse.jdt.debug.testplugin.JavaTestPlugin;
-import org.eclipse.jdt.debug.ui.IJavaDebugUIConstants;
-import org.eclipse.jdt.internal.debug.ui.IJDIPreferencesConstants;
-import org.eclipse.jdt.internal.debug.ui.JDIDebugUIPlugin;
-import org.eclipse.jdt.launching.IVMInstall;
-import org.eclipse.jdt.launching.JavaRuntime;
-import org.eclipse.jdt.launching.environments.IExecutionEnvironment;
-import org.eclipse.jface.dialogs.MessageDialogWithToggle;
-import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.ui.IPerspectiveDescriptor;
 import org.eclipse.ui.IViewReference;
 import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPreferenceConstants;
-import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.WorkbenchWindow;
-import org.eclipse.ui.internal.util.PrefUtil;
 
 /**
  * Test to close the workbench, since debug tests do not run in the UI thread.
  */
 public class ProjectCreationDecorator extends AbstractDebugTest {
 
-	public static boolean fgReady = false;
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.debug.tests.AbstractDebugTest#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		getSharedJavaProject();
-	}
-	
     /**
      * Constructor
-     * @param name
      */
-    public ProjectCreationDecorator(String name) {
-        super(name);
-        fgReady = true;
+    public ProjectCreationDecorator() {
+        super("Project creation decorator tests");
     }
     
-    public static boolean isReady() {
-    	return fgReady;
-    }
-
+    /* (non-Javadoc)
+	 * @see org.eclipse.jdt.debug.tests.AbstractDebugTest#getProjectContext()
+	 */
+	protected IJavaProject getProjectContext() {
+		return get14Project();
+	}	
+    
     /**
      * 
      */
@@ -104,286 +68,13 @@
     }
 
     /**
-     * @throws Exception
-     */
-    public void testProjectCreation() throws Exception {
-        IProject pro = ResourcesPlugin.getWorkspace().getRoot().getProject("DebugTests");
-        try {
-	        if (!pro.exists()) {
-	        	// create project and import source
-		        fJavaProject = JavaProjectHelper.createJavaProject("DebugTests", "bin");
-		        IPackageFragmentRoot src = JavaProjectHelper.addSourceContainer(fJavaProject, "src");
-		        File root = JavaTestPlugin.getDefault().getFileInPlugin(JavaProjectHelper.TEST_SRC_DIR);
-		        JavaProjectHelper.importFilesFromDirectory(root, src.getPath(), null);
-		
-		        // add rt.jar
-		        IVMInstall vm = JavaRuntime.getDefaultVMInstall();
-		        assertNotNull("No default JRE", vm);
-		        JavaProjectHelper.addContainerEntry(fJavaProject, new Path(JavaRuntime.JRE_CONTAINER));
-		        pro = fJavaProject.getProject();
-		
-		        // add A.jar
-		        root = JavaTestPlugin.getDefault().getFileInPlugin(new Path("testjars"));
-		        JavaProjectHelper.importFilesFromDirectory(root, src.getPath(), null);
-		        IPath path = src.getPath().append("A.jar");
-		        JavaProjectHelper.addLibrary(fJavaProject, path);
-		
-		        // create launch configuration folder
-		        IFolder folder = pro.getFolder("launchConfigurations");
-		        if(!folder.exists()) {
-		        	folder.create(true, true, null);
-		        }
-		
-		        // create launch configurations
-		        createLaunchConfiguration("LargeSourceFile");
-		        createLaunchConfiguration("LotsOfFields");
-		        createLaunchConfiguration("Breakpoints");
-		        createLaunchConfiguration("InstanceVariablesTests");
-		        createLaunchConfiguration("LocalVariablesTests");
-		        createLaunchConfiguration("StaticVariablesTests");
-		        createLaunchConfiguration("DropTests");
-		        createLaunchConfiguration("ThrowsNPE");
-		        createLaunchConfiguration("ThrowsException");
-		        createLaunchConfiguration("org.eclipse.debug.tests.targets.Watchpoint");
-		        createLaunchConfiguration("org.eclipse.debug.tests.targets.CallLoop");
-		        createLaunchConfiguration("A");
-		        createLaunchConfiguration("HitCountLooper");
-		        createLaunchConfiguration("CompileError");
-		        createLaunchConfiguration("MultiThreadedLoop");
-		        createLaunchConfiguration("HitCountException");
-		        createLaunchConfiguration("MultiThreadedException");
-		        createLaunchConfiguration("MultiThreadedList");
-		        createLaunchConfiguration("MethodLoop");
-		        createLaunchConfiguration("StepFilterOne");
-		        createLaunchConfiguration("StepFilterFour");
-		
-		        createLaunchConfiguration("EvalArrayTests");
-		        createLaunchConfiguration("EvalSimpleTests");
-		        createLaunchConfiguration("EvalTypeTests");
-		        createLaunchConfiguration("EvalNestedTypeTests");
-		        createLaunchConfiguration("EvalTypeHierarchyTests");
-		        createLaunchConfiguration("WorkingDirectoryTest");
-		        createLaunchConfiguration("OneToTen");
-		        createLaunchConfiguration("OneToTenPrint");
-		        createLaunchConfiguration("FloodConsole");
-		        createLaunchConfiguration("ConditionalStepReturn");
-		        createLaunchConfiguration("VariableChanges");
-		        createLaunchConfiguration("DefPkgReturnType");
-		        createLaunchConfiguration("InstanceFilterObject");
-		        createLaunchConfiguration("org.eclipse.debug.tests.targets.CallStack");
-		        createLaunchConfiguration("org.eclipse.debug.tests.targets.ThreadStack");
-		        createLaunchConfiguration("org.eclipse.debug.tests.targets.HcrClass");
-		        createLaunchConfiguration("org.eclipse.debug.tests.targets.StepIntoSelectionClass");
-		        createLaunchConfiguration("WatchItemTests");
-		        createLaunchConfiguration("ArrayTests");
-		        createLaunchConfiguration("ByteArrayTests");
-		        createLaunchConfiguration("PerfLoop");
-		        createLaunchConfiguration("Console80Chars");
-		        createLaunchConfiguration("ConsoleStackTrace");
-		        createLaunchConfiguration("ConsoleVariableLineLength");
-		        createLaunchConfiguration("StackTraces");
-		        createLaunchConfiguration("ConsoleInput");
-		        createLaunchConfiguration("PrintConcatenation");
-		        createLaunchConfiguration("VariableDetails");
-		        createLaunchConfiguration("org.eclipse.debug.tests.targets.ArrayDetailTests");
-		        createLaunchConfiguration("ArrayDetailTestsDef");
-		        createLaunchConfiguration("ForceReturnTests");
-		        createLaunchConfiguration("ForceReturnTestsTwo");
-		        createLaunchConfiguration("LogicalStructures");
-		        createLaunchConfiguration("BreakpointListenerTest");
-		        
-		        //launch history tests
-		        createLaunchConfiguration("LaunchHistoryTest");
-		        createLaunchConfiguration("LaunchHistoryTest2");
-		        
-		        //launch configuration manager tests
-		        createLaunchConfiguration("RunnableAppletImpl");
-		        
-		        // instance retrieval tests
-		        createLaunchConfiguration("java6.AllInstancesTests");
-	        }
-        }
-        catch(Exception e) {
-        	try {
-	        	pro.delete(true,  true, null);
-	        	LaunchManager mgr = (LaunchManager) DebugPlugin.getDefault().getLaunchManager();
-	        	ILaunchConfiguration[] configs = mgr.getLaunchConfigurations();
-	        	for (int i = 0; i < configs.length; i++) {
-					configs[i].delete();
-				}
-        	}
-        	catch (CoreException ce) {
-        		//ignore
-			}
-        }
-    }
-
-    /**
-     * Create a project with non-default, multiple output locations.
-     * 
-     * @throws Exception
-     */
-    public void testMultipleOutputProjectCreation() throws Exception {
-        // delete any pre-existing project
-        IProject pro = ResourcesPlugin.getWorkspace().getRoot().getProject("MultiOutput");
-        if (pro.exists()) {
-            pro.delete(true, true, null);
-        }
-        // create project with two src folders and output locations
-        IJavaProject project = JavaProjectHelper.createJavaProject("MultiOutput");
-        JavaProjectHelper.addSourceContainer(project, "src1", "bin1");
-        JavaProjectHelper.addSourceContainer(project, "src2", "bin2");
-
-        // add rt.jar
-        IVMInstall vm = JavaRuntime.getDefaultVMInstall();
-        assertNotNull("No default JRE", vm);
-        JavaProjectHelper.addContainerEntry(project, new Path(JavaRuntime.JRE_CONTAINER));
-    }
-    
-    public void testJ2SE15ProjectCreation() throws Exception {
-    	// create 1.5 project if there is a 1.5 runtime to compile against
-    	if (JavaProjectHelper.isJava5Compatible()) {
-            IProject pro = ResourcesPlugin.getWorkspace().getRoot().getProject("OneFive");
-            if (pro.exists()) {
-                pro.delete(true, true, null);
-            }
-            // create project and import source
-            IJavaProject jp = JavaProjectHelper.createJavaProject("OneFive", "bin");
-            IPackageFragmentRoot src = JavaProjectHelper.addSourceContainer(jp, "src");
-            File root = JavaTestPlugin.getDefault().getFileInPlugin(JavaProjectHelper.TEST_1_5_SRC_DIR);
-            JavaProjectHelper.importFilesFromDirectory(root, src.getPath(), null);
-
-            // add J2SE-1.5 library
-            IVMInstall vm = JavaRuntime.getDefaultVMInstall();
-            assertNotNull("No default JRE", vm);
-            IExecutionEnvironment environment = JavaRuntime.getExecutionEnvironmentsManager().getEnvironment("J2SE-1.5");
-            assertNotNull(environment);
-			IPath containerPath = JavaRuntime.newJREContainerPath(environment);
-            JavaProjectHelper.addContainerEntry(jp, containerPath);
-            pro = jp.getProject();  
-            
-            // create launch configuration folder
-            IFolder folder = pro.getFolder("launchConfigurations");
-            if (folder.exists()) {
-                folder.delete(true, null);
-            }
-            folder.create(true, true, null);
-            
-            createLaunchConfiguration(jp, "a.b.c.MethodBreakpoints");
-            createLaunchConfiguration(jp, "a.b.c.IntegerAccess");
-    	}
-    }
-    
-    /**
-     * Create a project bound to a specific JRE
-     * 
-     * @throws Exception
-     */
-    public void testProjectBoundToJRECreation() throws Exception {
-        // delete any pre-existing project
-        IProject pro = ResourcesPlugin.getWorkspace().getRoot().getProject("BoundJRE");
-        if (pro.exists()) {
-            pro.delete(true, true, null);
-        }
-        // create project with two src folders and output locations
-        IJavaProject project = JavaProjectHelper.createJavaProject("BoundJRE");
-        JavaProjectHelper.addSourceContainer(project, "src", "bin");
-
-        // add VM specific JRE container
-        IPath path = JavaRuntime.newJREContainerPath(JavaRuntime.getDefaultVMInstall());
-        JavaProjectHelper.addContainerEntry(project, path);
-    }   
-    
-    /**
-     * Create a project bound to a specific Execution Environment
-     * 
-     * @throws Exception
-     */
-    public void testProjectBoundToEECreation() throws Exception {
-        // delete any pre-existing project
-        IProject pro = ResourcesPlugin.getWorkspace().getRoot().getProject("BoundEE");
-        if (pro.exists()) {
-            pro.delete(true, true, null);
-        }
-        // create project with two src folders and output locations
-        IJavaProject project = JavaProjectHelper.createJavaProject("BoundEE");
-        JavaProjectHelper.addSourceContainer(project, "src", "bin");
-
-        // add VM specific JRE container
-        IExecutionEnvironment j2se14 = JavaRuntime.getExecutionEnvironmentsManager().getEnvironment("J2SE-1.4");
-        assertNotNull("Missing J2SE-1.4 environment", j2se14);
-        IPath path = JavaRuntime.newJREContainerPath(j2se14);
-        JavaProjectHelper.addContainerEntry(project, path);
-    }     
-
-    /**
-     * Set up preferences that need to be changed for the tests
-     */
-    public void testSetPreferences() {
-        IPreferenceStore debugUIPreferences = DebugUIPlugin.getDefault().getPreferenceStore();
-        // Don't prompt for perspective switching
-        debugUIPreferences.setValue(IInternalDebugUIConstants.PREF_SWITCH_PERSPECTIVE_ON_SUSPEND, MessageDialogWithToggle.ALWAYS);
-        debugUIPreferences.setValue(IInternalDebugUIConstants.PREF_SWITCH_TO_PERSPECTIVE, MessageDialogWithToggle.ALWAYS);
-        debugUIPreferences.setValue(IInternalDebugUIConstants.PREF_RELAUNCH_IN_DEBUG_MODE, MessageDialogWithToggle.NEVER);
-        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"); 
-        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);
-        jdiUIPreferences.setValue(IJDIPreferencesConstants.PREF_SUSPEND_ON_COMPILATION_ERRORS, false);
-        // Don't warn about HCR failures
-        jdiUIPreferences.setValue(IJDIPreferencesConstants.PREF_ALERT_HCR_FAILED, false);
-        jdiUIPreferences.setValue(IJDIPreferencesConstants.PREF_ALERT_HCR_NOT_SUPPORTED, false);
-        jdiUIPreferences.setValue(IJDIPreferencesConstants.PREF_ALERT_OBSOLETE_METHODS, false);
-        // Set the timeout preference to a high value, to avoid timeouts while
-        // testing
-        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();
-        for (int i = 0; i < windows.length; i++) {
-            IWorkbenchWindow window = windows[i];
-            if(window instanceof WorkbenchWindow){
-                ((WorkbenchWindow) window).showHeapStatus(false);
-            }
-        }       
-    }
-
-    /**
-     * @throws Exception
-     */
-    public void testBuild() throws Exception {
-        // force a full build and wait
-        ResourcesPlugin.getWorkspace().build(IncrementalProjectBuilder.FULL_BUILD, new NullProgressMonitor());
-        waitForBuild();
-    }
-
-    private IJavaProject getSharedJavaProject() throws Exception  {
-    	if (fJavaProject == null)
-    		testProjectCreation();
-    	return fJavaProject;
-    }
-
-    /**
      * test if builds completed successfully and output directory contains class
      * files.
      * @throws Exception
      */
     public void testOutputFolderNotEmpty() throws Exception {
         waitForBuild();
-        IPath outputLocation = getSharedJavaProject().getOutputLocation();
+        IPath outputLocation = get14Project().getOutputLocation();
         IWorkspace workspace = ResourcesPlugin.getWorkspace();
         IWorkspaceRoot root = workspace.getRoot();
         IResource resource = root.findMember(outputLocation);
@@ -400,7 +91,7 @@
      */
     public void testForUnexpectedErrorsInProject() throws Exception {
         waitForBuild();
-        IProject project = getSharedJavaProject().getProject();
+        IProject project = get14Project().getProject();
         IMarker[] markers = project.findMarkers(IMarker.PROBLEM, true, IResource.DEPTH_INFINITE);
         int errors = 0;
         for (int i = 0; i < markers.length; i++) {
@@ -418,7 +109,7 @@
      */
     public void testClassFilesGenerated() throws Exception {
         waitForBuild();
-        IPath outputLocation = getSharedJavaProject().getOutputLocation();
+        IPath outputLocation = get14Project().getOutputLocation();
         IWorkspace workspace = ResourcesPlugin.getWorkspace();
         IWorkspaceRoot root = workspace.getRoot();
         IFolder folder = (IFolder) root.findMember(outputLocation);
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 aa9ce36..b8767df 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
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
+ * Copyright (c) 2006, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -18,6 +18,14 @@
 public class TestAgainException extends RuntimeException {
 
 	/**
+	 * Constructor
+	 * @param string
+	 */
+	public TestAgainException(String string) {
+		super(string);
+	}
+
+	/**
 	 * Generated serial version id 
 	 */
 	private static final long serialVersionUID = 1848804390493463729L;
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
old mode 100755
new mode 100644
index 4e08126..daf89b1
--- 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
@@ -1,5 +1,5 @@
 /*******************************************************************************
- *  Copyright (c) 2000, 2007 IBM Corporation and others.
+ *  Copyright (c) 2000, 2011 IBM Corporation and others.
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
@@ -205,7 +205,7 @@
 			assertEquals("Should be no removes", 0, fRemoveCallbacks);
 			
 			resetCallbacks();
-			getJavaProject().getProject().close(null);
+			get14Project().getProject().close(null);
 			waitForBuild();
 			assertEquals("Should have received one remove notification", 1, fRemoveCallbacks);
 			assertEquals("Should of breakpoints removed incorrect", bps.size(), fTotalRemoved);
@@ -213,7 +213,7 @@
 			assertEquals("Should be no additions", 0, fAddCallbacks);
 			
 			resetCallbacks();
-			getJavaProject().getProject().open(null);
+			get14Project().getProject().open(null);
 			waitForBuild();
 			assertEquals("Should have received one add notification", 1, fAddCallbacks);
 			assertEquals("Number of breakpoints added incorrect", bps.size(), fTotalAdded);
@@ -221,7 +221,7 @@
 			assertEquals("Should be no removes", 0, fRemoveCallbacks);			
 			
 		} finally {
-			getJavaProject().getProject().open(null);
+			get14Project().getProject().open(null);
 			getBreakpointManager().removeBreakpointListener((IBreakpointsListener)this);
 			removeAllBreakpoints();
 		}
@@ -233,7 +233,7 @@
 	 * @throws Exception
 	 */
 	public void testMultiListenerMoveCompilationUnit() throws Exception {	
-		IJavaProject project = getJavaProject();
+		IJavaProject project = get14Project();
 		ICompilationUnit cu = (ICompilationUnit)project.findElement(new Path("Breakpoints.java"));
 		assertNotNull("Did not find compilation unit", cu);
 		cu.copy(cu.getParent(), null, "BreakpointsCopyA.java", false, null);
@@ -278,7 +278,7 @@
 	 * @throws Exception
 	 */
 	public void testSingleListenerMoveCompilationUnit() throws Exception {	
-		IJavaProject project = getJavaProject();
+		IJavaProject project = get14Project();
 		ICompilationUnit cu = (ICompilationUnit)project.findElement(new Path("Breakpoints.java"));
 		assertNotNull("Did not find compilation unit", cu);
 		cu.copy(cu.getParent(), null, "BreakpointsCopy.java", false, null);
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
old mode 100755
new mode 100644
index 723d17e..e1cb483
--- 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
@@ -68,7 +68,7 @@
 	 * @throws JavaModelException
 	 */
 	private void testLocation(int lineToTry, int expectedLineNumber, String baseTypeName, String expectedTypeName) throws JavaModelException {
-		IType type= getJavaProject().findType(baseTypeName);
+		IType type= get14Project().findType(baseTypeName);
 		assertNotNull("Cannot find type", type);
 		CompilationUnit compilationUnit= parseCompilationUnit(type.getCompilationUnit());
 		ValidBreakpointLocationLocator locator= new ValidBreakpointLocationLocator(compilationUnit, lineToTry, true, false);
@@ -222,7 +222,7 @@
 	 * @throws Exception
 	 */
 	public void testInnerStaticClass() throws Exception {
-		String version = getClassFileVersion();
+		String version = get14Project().getOption(JavaCore.COMPILER_COMPLIANCE, false);
 		if(JavaCore.VERSION_1_5.equals(version) || JavaCore.VERSION_1_6.equals(version)) {
 			testLocation(79, 79, "BreakpointsLocation", "BreakpointsLocation.1StaticInnerClass");
 		}
@@ -240,7 +240,7 @@
 	 * @throws Exception
 	 */
 	public void testField(int line, int offsetInLine, String expectedFieldName, String expectedTypeName) throws Exception {
-		IType type= getJavaProject().findType("BreakpointsLocation");
+		IType type= get14Project().findType("BreakpointsLocation");
 		assertNotNull("Cannot find type", type);
 		ICompilationUnit unit= type.getCompilationUnit();
 		CompilationUnit compilationUnit= parseCompilationUnit(unit);
@@ -279,7 +279,7 @@
 	 * @throws Exception
 	 */
 	public void testMethod(int line, int offsetInLine, String expectedMethodName, String expectedTypeName, String expectedMethodSignature) throws Exception {
-		IType type= getJavaProject().findType("BreakpointsLocation");
+		IType type= get14Project().findType("BreakpointsLocation");
 		assertNotNull("Cannot find type", type);
 		ICompilationUnit unit= type.getCompilationUnit();
 		CompilationUnit compilationUnit= parseCompilationUnit(unit);
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
old mode 100755
new mode 100644
index 5a66259..94d8117
--- 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
@@ -1,5 +1,5 @@
 /*******************************************************************************
- *  Copyright (c) 2000, 2007 IBM Corporation and others.
+ *  Copyright (c) 2000, 2011 IBM Corporation and others.
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
@@ -94,7 +94,7 @@
 	}
 	
 	private void createBreakpoints(String typeName, List breakpoints, int[] lineNumbers) throws Exception {
-		IType type = getJavaProject().findType(typeName);
+		IType type = get14Project().findType(typeName);
 		assertNotNull(type);
 		IResource resource = type.getResource();
 		assertTrue(resource instanceof IFile);
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
old mode 100755
new mode 100644
index 745ebd9..50548f1
--- 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
@@ -756,7 +756,7 @@
 		IJavaLineBreakpoint bp = createLineBreakpoint(16, typeName);
 		bp.addBreakpointListener("org.eclipse.jdt.debug.tests.evalListener");
 		EvalualtionBreakpointListener.reset();
-		EvalualtionBreakpointListener.PROJECT = getJavaProject();
+		EvalualtionBreakpointListener.PROJECT = get14Project();
 		EvalualtionBreakpointListener.EXPRESSION = "return new Integer(i);";
 		EvalualtionBreakpointListener.VOTE = IJavaBreakpointListener.SUSPEND;
 			
@@ -825,7 +825,7 @@
 		IJavaLineBreakpoint second = createLineBreakpoint(29, typeName);
 		second.addBreakpointListener("org.eclipse.jdt.debug.tests.evalListener");
 		EvalualtionBreakpointListener.reset();
-		EvalualtionBreakpointListener.PROJECT = getJavaProject();
+		EvalualtionBreakpointListener.PROJECT = get14Project();
 		EvalualtionBreakpointListener.EXPRESSION = "return new Integer(sum);";
 		EvalualtionBreakpointListener.VOTE = IJavaBreakpointListener.DONT_SUSPEND;
 		EvalualtionBreakpointListener.RESULT = null;
@@ -878,7 +878,7 @@
 		IJavaLineBreakpoint second = createLineBreakpoint(29, typeName);
 		second.addBreakpointListener("org.eclipse.jdt.debug.tests.evalListener");
 		EvalualtionBreakpointListener.reset();
-		EvalualtionBreakpointListener.PROJECT = getJavaProject();
+		EvalualtionBreakpointListener.PROJECT = get14Project();
 		EvalualtionBreakpointListener.EXPRESSION = "return new Integer(sum);";
 		EvalualtionBreakpointListener.VOTE = IJavaBreakpointListener.SUSPEND;
 		EvalualtionBreakpointListener.RESULT = null;
@@ -930,7 +930,7 @@
 		IJavaLineBreakpoint second = createLineBreakpoint(29, typeName);
 		second.addBreakpointListener("org.eclipse.jdt.debug.tests.evalListener");
 		EvalualtionBreakpointListener.reset();
-		EvalualtionBreakpointListener.PROJECT = getJavaProject();
+		EvalualtionBreakpointListener.PROJECT = get14Project();
 		EvalualtionBreakpointListener.EXPRESSION = "for (int x = 0; x < 1000; x++) { System.out.println(x);} Thread.sleep(200);";
 		EvalualtionBreakpointListener.VOTE = IJavaBreakpointListener.DONT_SUSPEND;
 		EvalualtionBreakpointListener.RESULT = null;
@@ -1227,7 +1227,7 @@
 			IWorkspaceRunnable runnable = new IWorkspaceRunnable() {
 				public void run(IProgressMonitor monitor) throws CoreException {
 					bp.getMarker().delete();
-					getJavaProject().getProject().build(IncrementalProjectBuilder.INCREMENTAL_BUILD, null);
+					get14Project().getProject().build(IncrementalProjectBuilder.INCREMENTAL_BUILD, null);
 				}
 			};
 			ResourcesPlugin.getWorkspace().run(runnable, null);
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 bf20c5b..5bea9df 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
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
+ * Copyright (c) 2007, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -13,6 +13,7 @@
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.debug.core.model.IBreakpoint;
+import org.eclipse.jdt.core.IJavaProject;
 import org.eclipse.jdt.core.IType;
 import org.eclipse.jdt.debug.core.IJavaMethodBreakpoint;
 import org.eclipse.jdt.debug.core.IJavaThread;
@@ -28,6 +29,13 @@
 		super(name);
 	}
 
+	/* (non-Javadoc)
+	 * @see org.eclipse.jdt.debug.tests.AbstractDebugTest#getProjectContext()
+	 */
+	protected IJavaProject getProjectContext() {
+		return get15Project();
+	}	
+	
 	public void testStaticTypeParameter() throws Exception {
 		IJavaMethodBreakpoint breakpoint  = createBreakpoint(25);
 		assertEquals("Wrong method", "staticTypeParameter", breakpoint.getMethodName());
@@ -77,4 +85,4 @@
 		}
 	}	
 		
-}
+}
\ No newline at end of file
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
old mode 100755
new mode 100644
index 99d5ba6..e4921fc
--- 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
@@ -1,5 +1,5 @@
 /*******************************************************************************
- *  Copyright (c) 2000, 2007 IBM Corporation and others.
+ *  Copyright (c) 2000, 2011 IBM Corporation and others.
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
@@ -70,7 +70,7 @@
 		getPrefStore().setValue(IJDIPreferencesConstants.PREF_SUSPEND_ON_UNCAUGHT_EXCEPTIONS, false);
 		getPrefStore().setValue(IJDIPreferencesConstants.PREF_SUSPEND_ON_COMPILATION_ERRORS, true);		
 		
-		IType type = fJavaProject.findType(typeName);
+		IType type = get14Project().findType(typeName);
 		ICompilationUnit cu = type.getCompilationUnit();
 		IBuffer buffer = cu.getBuffer();
 		buffer.setContents(COMPILE_ERROR_CONTENTS);
@@ -102,7 +102,7 @@
 		getPrefStore().setValue(IJDIPreferencesConstants.PREF_SUSPEND_ON_UNCAUGHT_EXCEPTIONS, false);
 		getPrefStore().setValue(IJDIPreferencesConstants.PREF_SUSPEND_ON_COMPILATION_ERRORS, false);		
 		
-		IType type = fJavaProject.findType(typeName);
+		IType type = get14Project().findType(typeName);
 		ICompilationUnit cu = type.getCompilationUnit();
 		IBuffer buffer = cu.getBuffer();
 		buffer.setContents(COMPILE_ERROR_CONTENTS);
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
old mode 100755
new mode 100644
index 9e2722c..1f6ae2e
--- 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
@@ -1,5 +1,5 @@
 /*******************************************************************************
- *  Copyright (c) 2000, 2007 IBM Corporation and others.
+ *  Copyright (c) 2000, 2011 IBM Corporation and others.
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
@@ -67,7 +67,7 @@
 				assertNotNull("No breakpoint", hit);
 				IDebugTarget debugTarget = thread.getDebugTarget();
 				if (debugTarget.isTerminated() || debugTarget.isDisconnected()) {
-					throw new TestAgainException();
+					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());
@@ -161,7 +161,7 @@
 				assertNotNull("No breakpoint", wp);
 				IDebugTarget debugTarget = thread.getDebugTarget();
 				if (debugTarget.isTerminated() || debugTarget.isDisconnected()) {
-					throw new TestAgainException();
+					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());
@@ -195,7 +195,7 @@
 			assertNotNull("No breakpoint", hit);
 			IDebugTarget debugTarget = thread.getDebugTarget();
 			if (debugTarget.isTerminated() || debugTarget.isDisconnected()) {
-				throw new TestAgainException();
+				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());			
@@ -250,7 +250,7 @@
 				assertNotNull("No breakpoint", hit);
 				IDebugTarget debugTarget = thread.getDebugTarget();
 				if (debugTarget.isTerminated() || debugTarget.isDisconnected()) {
-					throw new TestAgainException();
+					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());
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ArgumentTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ArgumentTests.java
index a14e43e..05c49a6 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ArgumentTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ArgumentTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- *  Copyright (c) 2000, 2006 IBM Corporation and others.
+ *  Copyright (c) 2000, 2011 IBM Corporation and others.
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
@@ -27,7 +27,6 @@
 import org.eclipse.jdt.debug.tests.AbstractDebugTest;
 import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
 import org.eclipse.jdt.launching.IVMInstall;
-import org.eclipse.jdt.launching.IVMInstall2;
 import org.eclipse.jdt.launching.JavaRuntime;
 import org.eclipse.jface.text.BadLocationException;
 import org.eclipse.jface.text.IDocument;
@@ -87,10 +86,15 @@
 		 */
 		public String getOutput() {
 			// wait to be closed
+			String output = buffer.toString();
+			if(output != null && output.length() > 0) {
+				fLock.notifyAll();
+				return output;
+			}
 		    synchronized (fLock) {
 		    	if (!closed) {
 			        try {
-	                    fLock.wait(30000);
+	                    fLock.wait(DEFAULT_TIMEOUT);
 	                } catch (InterruptedException e) {
 	                }
 		    	}
@@ -331,11 +335,14 @@
 	 */
 	private void testOutput(String mainTypeName, String vmArgs, String programArgs, String outputValue) throws CoreException {
 		ILaunchConfigurationWorkingCopy workingCopy = newConfiguration(null, "config1");
-		workingCopy.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, getJavaProject().getProject().getName());
+		workingCopy.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, get14Project().getProject().getName());
 		workingCopy.setAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME, mainTypeName);
 		workingCopy.setAttribute(IJavaLaunchConfigurationConstants.ATTR_STOP_IN_MAIN, true);
 		workingCopy.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_ARGUMENTS, vmArgs);
 		workingCopy.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROGRAM_ARGUMENTS, programArgs);
+		IVMInstall vm = JavaRuntime.getVMInstall(get14Project());
+		assertNotNull("shold be able to get the default VM install from the 1.4 project", vm);
+		//workingCopy.setAttribute(IJavaLaunchConfigurationConstants.ATTR_JRE_CONTAINER_PATH, JavaRuntime.newJREContainerPath(vm).toPortableString());
 
 		// use 'java' instead of 'javaw' to launch tests (javaw is problematic on JDK1.4.2)
 		Map map = new HashMap(1);
@@ -380,8 +387,8 @@
 	 * Tests the default VM args
 	 * @throws CoreException
 	 */
-	public void testDefaultVMArgs() throws CoreException {
-	    IVMInstall install = JavaRuntime.getDefaultVMInstall();
+	/*public void testDefaultVMArgs() throws CoreException {
+	    IVMInstall install = JavaRuntime.getVMInstall(get14Project());
 	    assertTrue("should be an IVMInstall2", install instanceof IVMInstall2);
 	    IVMInstall2 vm2 = (IVMInstall2) install;
 	    String prev = vm2.getVMArgs();
@@ -391,5 +398,5 @@
 	    } finally {
 	        vm2.setVMArgs(prev);
 	    }
-	}
+	}*/
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/BootpathTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/BootpathTests.java
index a51f67c..48b21d1 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/BootpathTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/BootpathTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -70,7 +70,7 @@
 		ILaunchConfigurationWorkingCopy wc = config.getWorkingCopy();
 		IRuntimeClasspathEntry[] classpath = JavaRuntime.computeUnresolvedRuntimeClasspath(wc);
 		IRuntimeClasspathEntry[] newpath = new IRuntimeClasspathEntry[classpath.length + 1];
-		IResource jar = getJavaProject().getProject().getFile(new Path("src/A.jar"));
+		IResource jar = get14Project().getProject().getFile(new Path("src/A.jar"));
 		IRuntimeClasspathEntry pre = JavaRuntime.newArchiveRuntimeClasspathEntry(jar);
 		pre.setClasspathProperty(IRuntimeClasspathEntry.BOOTSTRAP_CLASSES);
 		newpath[0] = pre;
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ClasspathContainerTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ClasspathContainerTests.java
index 362a2b4..9eeb7ff 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ClasspathContainerTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ClasspathContainerTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- *  Copyright (c) 2000, 2007 IBM Corporation and others.
+ *  Copyright (c) 2000, 2011 IBM Corporation and others.
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
@@ -100,7 +100,7 @@
 		IVMInstall newVM = def.getVMInstallType().findVMInstall(vmId);
 		assertNotNull("Failed to create new VM", newVM);
 		
-		JREContainer container = new JREContainer(newVM, containerPath, getJavaProject());
+		JREContainer container = new JREContainer(newVM, containerPath, get14Project());
 		JREContainerInitializer initializer = new JREContainerInitializer();
 		// store the current library settings
 		LibraryLocation[] originalLibs = JavaRuntime.getLibraryLocations(newVM);
@@ -109,11 +109,11 @@
 		assertEquals("Libraries should be same size as classpath entries", originalLibs.length, originalEntries.length);
 		
 		// ensure we can update
-		assertTrue("Initializer will not accept update", initializer.canUpdateClasspathContainer(containerPath, getJavaProject()));
+		assertTrue("Initializer will not accept update", initializer.canUpdateClasspathContainer(containerPath, get14Project()));
 		
 		// update to an empty set of libraries
 		FakeContainer fakeContainer = new FakeContainer();
-		initializer.requestClasspathContainerUpdate(containerPath, getJavaProject(), fakeContainer);
+		initializer.requestClasspathContainerUpdate(containerPath, get14Project(), fakeContainer);
 		
 		// ensure the library locations are now empty on the new VM
 		LibraryLocation[] newLibs = JavaRuntime.getLibraryLocations(newVM);
@@ -121,7 +121,7 @@
 		
 		// re-set to original libraries
 		fakeContainer.setEntries(originalEntries);
-		initializer.requestClasspathContainerUpdate(containerPath, getJavaProject(), fakeContainer);
+		initializer.requestClasspathContainerUpdate(containerPath, get14Project(), fakeContainer);
 		
 		// ensure libraries are restored
 		newLibs = JavaRuntime.getLibraryLocations(newVM);
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ClasspathProviderTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ClasspathProviderTests.java
index 345a5a7..f50d23f 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ClasspathProviderTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ClasspathProviderTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- *  Copyright (c) 2000, 2008 IBM Corporation and others.
+ *  Copyright (c) 2000, 2011 IBM Corporation and others.
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
@@ -61,13 +61,13 @@
 	 * Test that a variable set to the location of an archive resolves properly.
 	 */
 	public void testVariableArchiveResolution() throws Exception {
-		IResource archive = getJavaProject().getProject().getFolder("src").getFile("A.jar");
+		IResource archive = get14Project().getProject().getFolder("src").getFile("A.jar");
 		assertTrue("Archive does not exist", archive.exists());
 		String varName = "COMPLETE_ARCHIVE";
 		JavaCore.setClasspathVariable(varName, archive.getFullPath(), null);
 
 		IRuntimeClasspathEntry runtimeClasspathEntry = JavaRuntime.newVariableRuntimeClasspathEntry(new Path(varName));
-		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, getJavaProject());
+		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, get14Project());
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", archive.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", archive.getLocation(), new Path(resolved[0].getLocation()));
@@ -78,13 +78,13 @@
 	 * extension resolves properly.
 	 */
 	public void testVariableExtensionResolution() throws Exception {
-		IResource archive = getJavaProject().getProject().getFolder("src").getFile("A.jar");
-		IProject root = getJavaProject().getProject();
+		IResource archive = get14Project().getProject().getFolder("src").getFile("A.jar");
+		IProject root = get14Project().getProject();
 		String varName = "RELATIVE_ARCHIVE";
 		JavaCore.setClasspathVariable(varName, root.getFullPath(), null);
 
 		IRuntimeClasspathEntry runtimeClasspathEntry = JavaRuntime.newVariableRuntimeClasspathEntry(new Path(varName).append(new Path("src")).append(new Path("A.jar")));
-		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, getJavaProject());
+		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, get14Project());
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", archive.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", archive.getLocation(), new Path(resolved[0].getLocation()));
@@ -96,14 +96,14 @@
 	 * Test that a variable added to the bootpath is resolved to be on the bootpath.
 	 */
 	public void testBootpathVariableResolution() throws Exception {
-		IResource archive = getJavaProject().getProject().getFolder("src").getFile("A.jar");
+		IResource archive = get14Project().getProject().getFolder("src").getFile("A.jar");
 		assertTrue("Archive does not exist", archive.exists());
 		String varName = "bootpathVar";
 		JavaCore.setClasspathVariable(varName, archive.getFullPath(), null);
 
 		IRuntimeClasspathEntry runtimeClasspathEntry = JavaRuntime.newVariableRuntimeClasspathEntry(new Path(varName));
 		runtimeClasspathEntry.setClasspathProperty(IRuntimeClasspathEntry.BOOTSTRAP_CLASSES);
-		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, getJavaProject());
+		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, get14Project());
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", archive.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", archive.getLocation(), new Path(resolved[0].getLocation()));
@@ -114,14 +114,14 @@
 	 * Test that an extended variable added to the bootpath is resolved to be on the bootpath.
 	 */	
 	public void testBootpathVariableExtensionResolution() throws Exception {
-		IResource archive = getJavaProject().getProject().getFolder("src").getFile("A.jar");
-		IProject root = getJavaProject().getProject();
+		IResource archive = get14Project().getProject().getFolder("src").getFile("A.jar");
+		IProject root = get14Project().getProject();
 		String varName = "bootpathVarRoot";
 		JavaCore.setClasspathVariable(varName, root.getFullPath(), null);
 
 		IRuntimeClasspathEntry runtimeClasspathEntry = JavaRuntime.newVariableRuntimeClasspathEntry(new Path(varName).append(new Path("src")).append(new Path("A.jar")));
 		runtimeClasspathEntry.setClasspathProperty(IRuntimeClasspathEntry.BOOTSTRAP_CLASSES);
-		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, getJavaProject());
+		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, get14Project());
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", archive.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", archive.getLocation(), new Path(resolved[0].getLocation()));
@@ -132,12 +132,12 @@
 	 * Test that a project added to the bootpath is resolved to be on the bootpath.
 	 */
 	public void testBootpathProjectResolution() throws Exception {
-		IJavaProject project = getJavaProject();
+		IJavaProject project = get14Project();
 		IResource outputFolder = ResourcesPlugin.getWorkspace().getRoot().findMember(project.getOutputLocation());
 
 		IRuntimeClasspathEntry runtimeClasspathEntry = JavaRuntime.newProjectRuntimeClasspathEntry(project);
 		runtimeClasspathEntry.setClasspathProperty(IRuntimeClasspathEntry.BOOTSTRAP_CLASSES);
-		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, getJavaProject());
+		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, get14Project());
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", outputFolder.getLocation().toOSString(), resolved[0].getLocation());
 		assertEquals("Resolved entry should be on bootpath", IRuntimeClasspathEntry.BOOTSTRAP_CLASSES, resolved[0].getClasspathProperty());		
@@ -149,7 +149,7 @@
 	 */
 	public void testBootpathContainerResolution() throws Exception {
 		IRuntimeClasspathEntry entry = JavaRuntime.newRuntimeContainerClasspathEntry(new Path(JavaRuntime.JRE_CONTAINER), IRuntimeClasspathEntry.BOOTSTRAP_CLASSES);
-		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(entry, getJavaProject());
+		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(entry, get14Project());
 		// each resolved entry should be on the bootpath
 		for (int i = 0; i < resolved.length; i++) {
 			assertEquals("Entry should be on bootpath", IRuntimeClasspathEntry.BOOTSTRAP_CLASSES, resolved[i].getClasspathProperty());
@@ -160,12 +160,12 @@
 	 * Test that a jar added to the bootpath is resolved to be on the bootpath.
 	 */
 	public void testBootpathJarResolution() throws Exception {
-		IResource archive = getJavaProject().getProject().getFolder("src").getFile("A.jar");
+		IResource archive = get14Project().getProject().getFolder("src").getFile("A.jar");
 		assertTrue("Archive does not exist", archive.exists());
 
 		IRuntimeClasspathEntry jarEntry = JavaRuntime.newArchiveRuntimeClasspathEntry(archive.getFullPath());
 		jarEntry.setClasspathProperty(IRuntimeClasspathEntry.BOOTSTRAP_CLASSES);
-		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(jarEntry, getJavaProject());
+		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(jarEntry, get14Project());
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", archive.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", archive.getLocation(), new Path(resolved[0].getLocation()));
@@ -176,12 +176,12 @@
 	 * Test that a folder added to the bootpath is resolved to be on the bootpath.
 	 */	
 	public void testBootpathFolderResolution() throws Exception {
-		IResource folder = getJavaProject().getProject().getFolder("src");
+		IResource folder = get14Project().getProject().getFolder("src");
 		assertTrue("Folder does not exist", folder.exists());
 
 		IRuntimeClasspathEntry folderEntry = JavaRuntime.newArchiveRuntimeClasspathEntry(folder.getFullPath());
 		folderEntry.setClasspathProperty(IRuntimeClasspathEntry.BOOTSTRAP_CLASSES);
-		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(folderEntry, getJavaProject());
+		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(folderEntry, get14Project());
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", folder.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", folder.getLocation(), new Path(resolved[0].getLocation()));
@@ -193,12 +193,11 @@
 	 * resolves to entries on the bootpath.
 	 */
 	public void testBootpathProjectNonDefaultOutputLocationsResolution() throws Exception {
-		IProject p = ResourcesPlugin.getWorkspace().getRoot().getProject("MultiOutput");
-		IJavaProject project = JavaCore.create(p);
+		IJavaProject project = getMultiOutputProject();
 
 		IRuntimeClasspathEntry runtimeClasspathEntry = JavaRuntime.newProjectRuntimeClasspathEntry(project);
 		runtimeClasspathEntry.setClasspathProperty(IRuntimeClasspathEntry.BOOTSTRAP_CLASSES);
-		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, getJavaProject());
+		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, project);
 		assertEquals("Should be 3 resolved entries", 3, resolved.length); // two specific entries & default entry
 		for (int i = 0; i < resolved.length; i++) {
 			IRuntimeClasspathEntry entry = resolved[i];
@@ -214,14 +213,14 @@
 	 * the user application classpath.
 	 */
 	public void testUserClassesVariableResolution() throws Exception {
-		IResource archive = getJavaProject().getProject().getFolder("src").getFile("A.jar");
+		IResource archive = get14Project().getProject().getFolder("src").getFile("A.jar");
 		assertTrue("Archive does not exist", archive.exists());
 		String varName = "bootpathVar";
 		JavaCore.setClasspathVariable(varName, archive.getFullPath(), null);
 
 		IRuntimeClasspathEntry runtimeClasspathEntry = JavaRuntime.newVariableRuntimeClasspathEntry(new Path(varName));
 		runtimeClasspathEntry.setClasspathProperty(IRuntimeClasspathEntry.USER_CLASSES);
-		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, getJavaProject());
+		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, get14Project());
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", archive.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", archive.getLocation(), new Path(resolved[0].getLocation()));
@@ -233,14 +232,14 @@
 	 * on the user classpath.
 	 */	
 	public void testUserClassesVariableExtensionResolution() throws Exception {
-		IResource archive = getJavaProject().getProject().getFolder("src").getFile("A.jar");
-		IProject root = getJavaProject().getProject();
+		IResource archive = get14Project().getProject().getFolder("src").getFile("A.jar");
+		IProject root = get14Project().getProject();
 		String varName = "bootpathVarRoot";
 		JavaCore.setClasspathVariable(varName, root.getFullPath(), null);
 
 		IRuntimeClasspathEntry runtimeClasspathEntry = JavaRuntime.newVariableRuntimeClasspathEntry(new Path(varName).append(new Path("src")).append(new Path("A.jar")));
 		runtimeClasspathEntry.setClasspathProperty(IRuntimeClasspathEntry.USER_CLASSES);
-		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, getJavaProject());
+		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, get14Project());
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", archive.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", archive.getLocation(), new Path(resolved[0].getLocation()));
@@ -252,12 +251,12 @@
 	 * user classpath.
 	 */
 	public void testUserClassesProjectResolution() throws Exception {
-		IJavaProject project = getJavaProject();
+		IJavaProject project = get14Project();
 		IResource outputFolder = ResourcesPlugin.getWorkspace().getRoot().findMember(project.getOutputLocation());
 
 		IRuntimeClasspathEntry runtimeClasspathEntry = JavaRuntime.newProjectRuntimeClasspathEntry(project);
 		runtimeClasspathEntry.setClasspathProperty(IRuntimeClasspathEntry.USER_CLASSES);
-		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, getJavaProject());
+		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, get14Project());
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", outputFolder.getLocation().toOSString(), resolved[0].getLocation());
 		assertEquals("Resolved entry should be on user classpath", IRuntimeClasspathEntry.USER_CLASSES, resolved[0].getClasspathProperty());		
@@ -269,7 +268,7 @@
 	 */
 	public void testUserClassesContainerResolution() throws Exception {
 		IRuntimeClasspathEntry entry = JavaRuntime.newRuntimeContainerClasspathEntry(new Path(JavaRuntime.JRE_CONTAINER), IRuntimeClasspathEntry.USER_CLASSES);
-		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(entry, getJavaProject());
+		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(entry, get14Project());
 		// each resolved entry should be on the bootpath
 		for (int i = 0; i < resolved.length; i++) {
 			assertEquals("Entry should be on user classpath", IRuntimeClasspathEntry.USER_CLASSES, resolved[i].getClasspathProperty());
@@ -280,12 +279,12 @@
 	 * Test that a jar added to the user classpath is resolved to be on the user classpath.
 	 */
 	public void testUserClassesJarResolution() throws Exception {
-		IResource archive = getJavaProject().getProject().getFolder("src").getFile("A.jar");
+		IResource archive = get14Project().getProject().getFolder("src").getFile("A.jar");
 		assertTrue("Archive does not exist", archive.exists());
 
 		IRuntimeClasspathEntry jarEntry = JavaRuntime.newArchiveRuntimeClasspathEntry(archive.getFullPath());
 		jarEntry.setClasspathProperty(IRuntimeClasspathEntry.USER_CLASSES);
-		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(jarEntry, getJavaProject());
+		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(jarEntry, get14Project());
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", archive.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", archive.getLocation(), new Path(resolved[0].getLocation()));
@@ -297,12 +296,12 @@
 	 * user classpath.
 	 */	
 	public void testUserClassesFolderResolution() throws Exception {
-		IResource folder = getJavaProject().getProject().getFolder("src");
+		IResource folder = get14Project().getProject().getFolder("src");
 		assertTrue("Folder does not exist", folder.exists());
 
 		IRuntimeClasspathEntry folderEntry = JavaRuntime.newArchiveRuntimeClasspathEntry(folder.getFullPath());
 		folderEntry.setClasspathProperty(IRuntimeClasspathEntry.USER_CLASSES);
-		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(folderEntry, getJavaProject());
+		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(folderEntry, get14Project());
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", folder.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", folder.getLocation(), new Path(resolved[0].getLocation()));
@@ -314,12 +313,11 @@
 	 * resolves to entries on the user classpath.
 	 */
 	public void testUserClassesProjectNonDefaultOutputLocationsResolution() throws Exception {
-		IProject p = ResourcesPlugin.getWorkspace().getRoot().getProject("MultiOutput");
-		IJavaProject project = JavaCore.create(p);
+		IJavaProject project = getMultiOutputProject();
 
 		IRuntimeClasspathEntry runtimeClasspathEntry = JavaRuntime.newProjectRuntimeClasspathEntry(project);
 		runtimeClasspathEntry.setClasspathProperty(IRuntimeClasspathEntry.USER_CLASSES);
-		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, getJavaProject());
+		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, project);
 		assertEquals("Should be 3 resolved entries", 3, resolved.length); // two specific entries & default entry
 		for (int i = 0; i < resolved.length; i++) {
 			IRuntimeClasspathEntry entry = resolved[i];
@@ -335,14 +333,14 @@
 	 * the default bootpath.
 	 */
 	public void testStandardClassesVariableResolution() throws Exception {
-		IResource archive = getJavaProject().getProject().getFolder("src").getFile("A.jar");
+		IResource archive = get14Project().getProject().getFolder("src").getFile("A.jar");
 		assertTrue("Archive does not exist", archive.exists());
 		String varName = "bootpathVar";
 		JavaCore.setClasspathVariable(varName, archive.getFullPath(), null);
 
 		IRuntimeClasspathEntry runtimeClasspathEntry = JavaRuntime.newVariableRuntimeClasspathEntry(new Path(varName));
 		runtimeClasspathEntry.setClasspathProperty(IRuntimeClasspathEntry.STANDARD_CLASSES);
-		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, getJavaProject());
+		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, get14Project());
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", archive.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", archive.getLocation(), new Path(resolved[0].getLocation()));
@@ -354,14 +352,14 @@
 	 * on the default bootpath.
 	 */	
 	public void testStandardClassesVariableExtensionResolution() throws Exception {
-		IResource archive = getJavaProject().getProject().getFolder("src").getFile("A.jar");
-		IProject root = getJavaProject().getProject();
+		IResource archive = get14Project().getProject().getFolder("src").getFile("A.jar");
+		IProject root = get14Project().getProject();
 		String varName = "bootpathVarRoot";
 		JavaCore.setClasspathVariable(varName, root.getFullPath(), null);
 
 		IRuntimeClasspathEntry runtimeClasspathEntry = JavaRuntime.newVariableRuntimeClasspathEntry(new Path(varName).append(new Path("src")).append(new Path("A.jar")));
 		runtimeClasspathEntry.setClasspathProperty(IRuntimeClasspathEntry.STANDARD_CLASSES);
-		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, getJavaProject());
+		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, get14Project());
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", archive.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", archive.getLocation(), new Path(resolved[0].getLocation()));
@@ -373,12 +371,12 @@
 	 * default bootpath.
 	 */
 	public void testStandardClassesProjectResolution() throws Exception {
-		IJavaProject project = getJavaProject();
+		IJavaProject project = get14Project();
 		IResource outputFolder = ResourcesPlugin.getWorkspace().getRoot().findMember(project.getOutputLocation());
 
 		IRuntimeClasspathEntry runtimeClasspathEntry = JavaRuntime.newProjectRuntimeClasspathEntry(project);
 		runtimeClasspathEntry.setClasspathProperty(IRuntimeClasspathEntry.STANDARD_CLASSES);
-		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, getJavaProject());
+		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, get14Project());
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", outputFolder.getLocation().toOSString(), resolved[0].getLocation());
 		assertEquals("Resolved entry should be on default bootpath", IRuntimeClasspathEntry.STANDARD_CLASSES, resolved[0].getClasspathProperty());		
@@ -390,7 +388,7 @@
 	 */
 	public void testStandardClassesContainerResolution() throws Exception {
 		IRuntimeClasspathEntry entry = JavaRuntime.newRuntimeContainerClasspathEntry(new Path(JavaRuntime.JRE_CONTAINER), IRuntimeClasspathEntry.STANDARD_CLASSES);
-		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(entry, getJavaProject());
+		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(entry, get14Project());
 		// each resolved entry should be on the bootpath
 		for (int i = 0; i < resolved.length; i++) {
 			assertEquals("Entry should be on default bootpath", IRuntimeClasspathEntry.STANDARD_CLASSES, resolved[i].getClasspathProperty());
@@ -402,12 +400,12 @@
 	 * default bootpath.
 	 */
 	public void testStandardClassesJarResolution() throws Exception {
-		IResource archive = getJavaProject().getProject().getFolder("src").getFile("A.jar");
+		IResource archive = get14Project().getProject().getFolder("src").getFile("A.jar");
 		assertTrue("Archive does not exist", archive.exists());
 
 		IRuntimeClasspathEntry jarEntry = JavaRuntime.newArchiveRuntimeClasspathEntry(archive.getFullPath());
 		jarEntry.setClasspathProperty(IRuntimeClasspathEntry.STANDARD_CLASSES);
-		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(jarEntry, getJavaProject());
+		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(jarEntry, get14Project());
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", archive.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", archive.getLocation(), new Path(resolved[0].getLocation()));
@@ -419,12 +417,12 @@
 	 * default bootpath.
 	 */	
 	public void testStandardClassesFolderResolution() throws Exception {
-		IResource folder = getJavaProject().getProject().getFolder("src");
+		IResource folder = get14Project().getProject().getFolder("src");
 		assertTrue("Folder does not exist", folder.exists());
 
 		IRuntimeClasspathEntry folderEntry = JavaRuntime.newArchiveRuntimeClasspathEntry(folder.getFullPath());
 		folderEntry.setClasspathProperty(IRuntimeClasspathEntry.STANDARD_CLASSES);
-		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(folderEntry, getJavaProject());
+		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(folderEntry, get14Project());
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", folder.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", folder.getLocation(), new Path(resolved[0].getLocation()));
@@ -436,12 +434,11 @@
 	 * resolves to entries on the default bootpath.
 	 */
 	public void testStandardClassesProjectNonDefaultOutputLocationsResolution() throws Exception {
-		IProject p = ResourcesPlugin.getWorkspace().getRoot().getProject("MultiOutput");
-		IJavaProject project = JavaCore.create(p);
+		IJavaProject project = getMultiOutputProject();
 
 		IRuntimeClasspathEntry runtimeClasspathEntry = JavaRuntime.newProjectRuntimeClasspathEntry(project);
 		runtimeClasspathEntry.setClasspathProperty(IRuntimeClasspathEntry.STANDARD_CLASSES);
-		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, getJavaProject());
+		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, project);
 		assertEquals("Should be 3 resolved entries", 3, resolved.length); // two specific entries & default entry
 		for (int i = 0; i < resolved.length; i++) {
 			IRuntimeClasspathEntry entry = resolved[i];
@@ -457,10 +454,9 @@
 	 * @throws Exception
 	 */
 	public void testMultiOutputDefaultClasspath() throws Exception {
-		IProject p = ResourcesPlugin.getWorkspace().getRoot().getProject("MultiOutput");
-		IJavaProject project = JavaCore.create(p);
+		IJavaProject project = getMultiOutputProject();
 		String[] entries = JavaRuntime.computeDefaultRuntimeClassPath(project);
-		
+		IProject p = project.getProject();
 		IFolder bin1 = p.getFolder("bin1");
 		IFolder bin2 = p.getFolder("bin2");
 		String location1 = bin1.getLocation().toOSString();
@@ -483,7 +479,7 @@
 	 * @throws Exception
 	 */
 	public void testSingleOutputDefaultClasspath() throws Exception {
-		IJavaProject project = getJavaProject();
+		IJavaProject project = get14Project();
 		String[] entries = JavaRuntime.computeDefaultRuntimeClassPath(project);
 		
 		IFolder bin = ResourcesPlugin.getWorkspace().getRoot().getFolder(project.getOutputLocation());
@@ -520,7 +516,7 @@
      
         // test runtime class path resolution
         String[] entries = JavaRuntime.computeDefaultRuntimeClassPath(project);
-        String jarPath = getJavaProject().getProject().getLocation().append("src").append("A.jar").toOSString();
+        String jarPath = get14Project().getProject().getLocation().append("src").append("A.jar").toOSString();
         List list = new ArrayList();
 		for (int i = 0; i < entries.length; i++) {
 			list.add(entries[i]);
@@ -556,7 +552,7 @@
      
         // test runtime class path resolution
         String[] entries = JavaRuntime.computeDefaultRuntimeClassPath(project);
-        String jarPath = getJavaProject().getProject().getLocation().append("src").append("A.jar").toOSString();
+        String jarPath = get14Project().getProject().getLocation().append("src").append("A.jar").toOSString();
         List list = new ArrayList();
 		for (int i = 0; i < entries.length; i++) {
 			list.add(entries[i]);
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ClasspathVariableTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ClasspathVariableTests.java
index 2cb0e98..2f98533 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ClasspathVariableTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ClasspathVariableTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- *  Copyright (c) 2000, 2009 IBM Corporation and others.
+ *  Copyright (c) 2000, 2011 IBM Corporation and others.
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
@@ -43,7 +43,7 @@
 	public void testNullVariableResolution() throws CoreException {
 		String varName = "NULL_VARIABLE";
 		IRuntimeClasspathEntry entry = JavaRuntime.newVariableRuntimeClasspathEntry(new Path(varName));
-		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(entry, getJavaProject());
+		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(entry, get14Project());
 		// since the variable cannot be resolved, the result should be the same before/after
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Entries should be equal", entry, resolved[0]);
@@ -56,7 +56,7 @@
 	public void testJRELibResolution() throws CoreException {
 		String varName = JavaRuntime.JRELIB_VARIABLE;
 		IRuntimeClasspathEntry entry = JavaRuntime.newVariableRuntimeClasspathEntry(new Path(varName));
-		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(entry, getJavaProject());
+		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(entry, get14Project());
 		assertTrue("Should be at least one resolved entry", resolved.length > 0);
 		IVMInstall vm = JavaRuntime.getDefaultVMInstall();
 		assertNotNull("no default JRE", vm);
@@ -71,14 +71,14 @@
 	 * @throws Exception
 	 */
 	public void testVariableExtensionWithNullSourceAttachment() throws Exception {
-		IResource archive = getJavaProject().getProject().getFolder("src").getFile("A.jar");
-		IProject root = getJavaProject().getProject();
+		IResource archive = get14Project().getProject().getFolder("src").getFile("A.jar");
+		IProject root = get14Project().getProject();
 		String varName = "RELATIVE_ARCHIVE";
 		JavaCore.setClasspathVariable(varName, root.getFullPath(), null);
 
 		IRuntimeClasspathEntry runtimeClasspathEntry = JavaRuntime.newVariableRuntimeClasspathEntry(new Path(varName).append(new Path("src")).append(new Path("A.jar")));
 		runtimeClasspathEntry.setSourceAttachmentPath(new Path("NULL_VARIABLE"));
-		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, getJavaProject());
+		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, get14Project());
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", archive.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", archive.getLocation(), new Path(resolved[0].getLocation()));
@@ -92,14 +92,14 @@
 	 * @throws Exception
 	 */
 	public void testVariableExtensionWithNullSourceAttachmentWithExtension() throws Exception {
-		IResource archive = getJavaProject().getProject().getFolder("src").getFile("A.jar");
-		IProject root = getJavaProject().getProject();
+		IResource archive = get14Project().getProject().getFolder("src").getFile("A.jar");
+		IProject root = get14Project().getProject();
 		String varName = "RELATIVE_ARCHIVE";
 		JavaCore.setClasspathVariable(varName, root.getFullPath(), null);
 
 		IRuntimeClasspathEntry runtimeClasspathEntry = JavaRuntime.newVariableRuntimeClasspathEntry(new Path(varName).append(new Path("src")).append(new Path("A.jar")));
 		runtimeClasspathEntry.setSourceAttachmentPath(new Path("NULL_VARIABLE").append("one").append("two"));
-		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, getJavaProject());
+		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, get14Project());
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", archive.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", archive.getLocation(), new Path(resolved[0].getLocation()));
@@ -112,14 +112,14 @@
 	 * @throws Exception
 	 */
 	public void testVariableArchiveAndSourceAttachmentWithExtension() throws Exception {
-		IResource archive = getJavaProject().getProject().getFolder("src").getFile("A.jar");
-		IProject root = getJavaProject().getProject();
+		IResource archive = get14Project().getProject().getFolder("src").getFile("A.jar");
+		IProject root = get14Project().getProject();
 		String varName = "RELATIVE_ARCHIVE";
 		JavaCore.setClasspathVariable(varName, root.getFullPath(), null);
 
 		IRuntimeClasspathEntry runtimeClasspathEntry = JavaRuntime.newVariableRuntimeClasspathEntry(new Path(varName).append(new Path("src")).append(new Path("A.jar")));
 		runtimeClasspathEntry.setSourceAttachmentPath(new Path(varName).append(new Path("src")).append(new Path("A.jar")));
-		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, getJavaProject());
+		IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveRuntimeClasspathEntry(runtimeClasspathEntry, get14Project());
 		assertEquals("Should be one resolved entry", 1, resolved.length);
 		assertEquals("Resolved path not correct", archive.getFullPath(), resolved[0].getPath());
 		assertEquals("Resolved path not correct", archive.getLocation(), new Path(resolved[0].getLocation()));
@@ -133,8 +133,8 @@
 	 */
 	public void testProjectResolutionWithVariableArchiveAndSourceAttachmentWithExtension() throws Exception {
 		IJavaProject project = JavaProjectHelper.createJavaProject("VariableSource");
-		IResource archive = getJavaProject().getProject().getFolder("src").getFile("A.jar");
-		IProject root = getJavaProject().getProject();
+		IResource archive = get14Project().getProject().getFolder("src").getFile("A.jar");
+		IProject root = get14Project().getProject();
 		String varName = "RELATIVE_ARCHIVE";
 		JavaCore.setClasspathVariable(varName, root.getFullPath(), null);
 		JavaProjectHelper.addVariableEntry(project, new Path(varName).append(new Path("src")).append(new Path("A.jar")), new Path(varName).append(new Path("src")).append(new Path("A.jar")), Path.EMPTY);
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ExecutionEnvironmentTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ExecutionEnvironmentTests.java
index f0af946..0edd82b 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ExecutionEnvironmentTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ExecutionEnvironmentTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -18,6 +18,7 @@
 import org.eclipse.jdt.core.IClasspathEntry;
 import org.eclipse.jdt.core.IJavaProject;
 import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.debug.testplugin.JavaProjectHelper;
 import org.eclipse.jdt.debug.tests.AbstractDebugTest;
 import org.eclipse.jdt.launching.IVMInstall;
 import org.eclipse.jdt.launching.JavaRuntime;
@@ -39,7 +40,7 @@
 		assertTrue("Should be at least one environment", executionEnvironments.length > 0);
 		for (int i = 0; i < executionEnvironments.length; i++) {
 			IExecutionEnvironment environment = executionEnvironments[i];
-			if (environment.getId().equals("J2SE-1.4")) {
+			if (environment.getId().equals(JavaProjectHelper.J2SE_1_4_EE_NAME)) {
 				return;
 			}
 		}
@@ -50,7 +51,7 @@
 		IVMInstall vm = JavaRuntime.getDefaultVMInstall();
 		IExecutionEnvironmentsManager manager = JavaRuntime.getExecutionEnvironmentsManager();
 				
-		IExecutionEnvironment environment = manager.getEnvironment("J2SE-1.4");
+		IExecutionEnvironment environment = manager.getEnvironment(JavaProjectHelper.J2SE_1_4_EE_NAME);
 		assertNotNull("Missing environment J2SE-1.4", environment);
 		IVMInstall[] installs = environment.getCompatibleVMs();
 		assertTrue("Should be at least one vm install for the environment", installs.length > 0);
@@ -69,7 +70,7 @@
 		assertNotNull("Missing environment j2se14x", environment);
 		IVMInstall vm = JavaRuntime.getDefaultVMInstall();
 		LibraryLocation[] libraries = JavaRuntime.getLibraryLocations(vm);
-		IAccessRule[][] accessRules = environment.getAccessRules(vm, libraries, getJavaProject());
+		IAccessRule[][] accessRules = environment.getAccessRules(vm, libraries, get14Project());
 		assertNotNull("Missing access rules", accessRules);
 		assertEquals("Wrong number of rules", libraries.length, accessRules.length);
 		for (int i = 0; i < accessRules.length; i++) {
@@ -88,7 +89,7 @@
 		assertNotNull("Missing environment j2se13x", environment);
 		IVMInstall vm = JavaRuntime.getDefaultVMInstall();
 		LibraryLocation[] libraries = JavaRuntime.getLibraryLocations(vm);
-		IAccessRule[][] accessRules = environment.getAccessRules(vm, libraries, getJavaProject());
+		IAccessRule[][] accessRules = environment.getAccessRules(vm, libraries, get14Project());
 		assertNotNull("Missing access rules", accessRules);
 		assertEquals("Wrong number of rules", libraries.length, accessRules.length);
 		for (int i = 0; i < accessRules.length; i++) {
@@ -103,7 +104,7 @@
 		assertNotNull("Missing environment j2se15x", environment);
 		IVMInstall vm = JavaRuntime.getDefaultVMInstall();
 		LibraryLocation[] libraries = JavaRuntime.getLibraryLocations(vm);
-		IAccessRule[][] accessRules = environment.getAccessRules(vm, libraries, getJavaProject());
+		IAccessRule[][] accessRules = environment.getAccessRules(vm, libraries, get14Project());
 		assertNotNull("Missing access rules", accessRules);
 		assertEquals("Wrong number of rules", libraries.length, accessRules.length);
 		for (int i = 0; i < accessRules.length; i++) {
@@ -118,7 +119,7 @@
 	 */
 	public void testAccessRulesPresentOnEEProject() throws Exception {
 		boolean foundLib = false;
-		IJavaProject project = getJavaProject("BoundEE");
+		IJavaProject project = getBoundEeProject();
 		assertTrue("BoundEE project does not exist", project.exists());
 		IClasspathEntry[] rawClasspath = project.getRawClasspath();
 		for (int i = 0; i < rawClasspath.length; i++) {
@@ -145,7 +146,7 @@
 	 */
 	public void testAccessRulesNotPresentOnJREProject() throws Exception {
 		boolean foundLib = false;
-		IJavaProject project = getJavaProject("BoundJRE");
+		IJavaProject project = getBoundJreProject();
 		assertTrue("BoundJRE project does not exist", project.exists());
 		IClasspathEntry[] rawClasspath = project.getRawClasspath();
 		for (int i = 0; i < rawClasspath.length; i++) {
@@ -178,7 +179,7 @@
 		assertNotNull("Missing environment systemPackages", environment);
 		IVMInstall vm = JavaRuntime.getDefaultVMInstall();
 		LibraryLocation[] libraries = JavaRuntime.getLibraryLocations(vm);
-		IAccessRule[][] accessRules = environment.getAccessRules(vm, libraries, getJavaProject());
+		IAccessRule[][] accessRules = environment.getAccessRules(vm, libraries, get14Project());
 		assertNotNull("Missing access rules", accessRules);
 		assertEquals("Wrong number of rules", libraries.length, accessRules.length);
 		for (int i = 0; i < accessRules.length; i++) {
@@ -200,7 +201,7 @@
 		IStringVariableManager manager = VariablesPlugin.getDefault().getStringVariableManager();
 		String result = manager.performStringSubstitution("${ee_home:J2SE-1.4}");
 		assertNotNull(result);
-		IExecutionEnvironment ee = JavaRuntime.getExecutionEnvironmentsManager().getEnvironment("J2SE-1.4");
+		IExecutionEnvironment ee = JavaRuntime.getExecutionEnvironmentsManager().getEnvironment(JavaProjectHelper.J2SE_1_4_EE_NAME);
 		IVMInstall install = JavaRuntime.getVMInstall(JavaRuntime.newJREContainerPath(ee));
 		assertEquals(install.getInstallLocation().getAbsolutePath(), result);
 	}
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/HcrTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/HcrTests.java
index 9ff921a..a6cf9d9 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/HcrTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/HcrTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -94,7 +94,7 @@
 	 * @see junit.framework.TestCase#tearDown()
 	 */
 	protected void tearDown() throws Exception {
-		ICompilationUnit cu = getCompilationUnit(getJavaProject(), "src", "org.eclipse.debug.tests.targets", "HcrClass.java");
+		ICompilationUnit cu = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "HcrClass.java");
 		cu = cu.getPrimary();
 		if (!cu.isWorkingCopy()) {
 			cu = cu.getWorkingCopy(null);
@@ -130,7 +130,7 @@
 				assertEquals("value of 'x' should be 'One'", "One", variable.getValue().getValueString());
 				removeAllBreakpoints();
 				// now do the HCR
-				ICompilationUnit cu = getCompilationUnit(getJavaProject(), "src", "org.eclipse.debug.tests.targets", "HcrClass.java");
+				ICompilationUnit cu = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "HcrClass.java");
 				cu = cu.getPrimary();
 				if (!cu.isWorkingCopy()) {
 					cu = cu.getWorkingCopy(null);
@@ -158,7 +158,7 @@
 					thread.terminate();
 					buffer.setContents(originalContent);
 					cu.commitWorkingCopy(false, null);
-					throw new TestAgainException();
+					throw new TestAgainException("Retest - the correct method name was not present after HCR");
 				}
 				assertEquals("Should have dropped to method 'one'", "one", frame.getMethodName());
 				
@@ -204,7 +204,7 @@
 				assertEquals("value of 'x' should be 'One'", "One", variable.getValue().getValueString());
 				removeAllBreakpoints();
 				// now do the HCR
-				ICompilationUnit cu = getCompilationUnit(getJavaProject(), "src", "org.eclipse.debug.tests.targets", "HcrClass.java");
+				ICompilationUnit cu = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "HcrClass.java");
 				cu = cu.getPrimary();
 				if (!cu.isWorkingCopy()) {
 					cu = cu.getWorkingCopy(null);
@@ -257,7 +257,7 @@
 				assertEquals("value of 'x' should be 'One'", "One", variable.getValue().getValueString());
 				removeAllBreakpoints();
 				// now do the HCR
-				ICompilationUnit cu = getCompilationUnit(getJavaProject(), "src", "org.eclipse.debug.tests.targets", "HcrClass.java");
+				ICompilationUnit cu = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "HcrClass.java");
 				cu = cu.getPrimary();
 				if (!cu.isWorkingCopy()) {
 					cu = cu.getWorkingCopy(null);
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/LiteralTests17.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/LiteralTests17.java
index 5a7c1c7..ae4878f 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/LiteralTests17.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/LiteralTests17.java
@@ -25,8 +25,7 @@
  */
 public class LiteralTests17 extends AbstractDebugTest {
 
-	private String typename = "Literals17";
-	private IJavaProject project = null;
+	public static final String LITERAL_TYPE_NAME = "Literals17";
 	
 	/**
 	 * Constructor
@@ -36,18 +35,10 @@
 	}
 
 	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.debug.tests.AbstractDebugTest#setUp()
+	 * @see org.eclipse.jdt.debug.tests.AbstractDebugTest#getProjectContext()
 	 */
-	protected void setUp() throws Exception {
-		project = createProject("OneSeven", "java7", "JavaSE-1.7", false);
-		createLaunchConfiguration(project, typename);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.debug.tests.AbstractDebugTest#getJavaProject()
-	 */
-	protected IJavaProject getJavaProject() {
-		return project;
+	protected IJavaProject getProjectContext() {
+		return get17Project();
 	}
 	
 	/**
@@ -57,10 +48,10 @@
 	 * @throws Exception
 	 */
 	IValue doEval(String snippet) throws Exception {
-		ILineBreakpoint bp = createLineBreakpoint(25, typename);
+		ILineBreakpoint bp = createLineBreakpoint(25, LITERAL_TYPE_NAME);
 		IJavaThread thread = null;
 		try {
-			thread = launchToLineBreakpoint(typename, bp);
+			thread = launchToLineBreakpoint(LITERAL_TYPE_NAME, bp);
 			IEvaluationResult result = evaluate(snippet, thread);
 			assertNotNull("There must be an evaluation result", result);
 			assertTrue("There must be no errors in the result", !result.hasErrors());
@@ -83,10 +74,10 @@
 	 * @throws Exception
 	 */
 	IValue doEval(String snippet, String snippet2) throws Exception {
-		ILineBreakpoint bp = createLineBreakpoint(25, typename);
+		ILineBreakpoint bp = createLineBreakpoint(25, LITERAL_TYPE_NAME);
 		IJavaThread thread = null;
 		try {
-			thread = launchToLineBreakpoint(typename, bp);
+			thread = launchToLineBreakpoint(LITERAL_TYPE_NAME, bp);
 			IEvaluationResult result = evaluate(snippet, thread);
 			assertNotNull("There must be an evaluation result", result);
 			assertTrue("There must be no errors in the result", !result.hasErrors());
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/RemoteJavaApplicationTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/RemoteJavaApplicationTests.java
index a33e623..1c13d1f 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/RemoteJavaApplicationTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/RemoteJavaApplicationTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- *  Copyright (c) 2000, 2007 IBM Corporation and others.
+ *  Copyright (c) 2000, 2011 IBM Corporation and others.
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
@@ -56,7 +56,7 @@
 		ILaunchConfigurationType type = getLaunchManager().getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_JAVA_APPLICATION);
 		ILaunchConfigurationWorkingCopy config = type.newInstance(null, "Launch Remote VM");
 		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME, "Breakpoints");
-		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, getJavaProject().getElementName());
+		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, get14Project().getElementName());
 		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_ARGUMENTS, "-Djava.compiler=NONE -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8000,suspend=y,server=y");
 		// use 'java' instead of 'javaw' to launch tests (javaw is problematic on JDK1.4.2)
 		Map map = new HashMap(1);
@@ -67,7 +67,7 @@
 		// create a launch config to do the attach
 		type = getLaunchManager().getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_REMOTE_JAVA_APPLICATION);
 		config = type.newInstance(null, "Remote Breakpoints");
-		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, getJavaProject().getElementName());
+		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, get14Project().getElementName());
 		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_ALLOW_TERMINATE, true);
 		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_CONNECTOR, IJavaLaunchConfigurationConstants.ID_SOCKET_ATTACH_VM_CONNECTOR);
 		IVMConnector connector = JavaRuntime.getVMConnector(IJavaLaunchConfigurationConstants.ID_SOCKET_ATTACH_VM_CONNECTOR);
@@ -133,7 +133,7 @@
 		// create a launch config to listen for the vm
 		ILaunchConfigurationType type = getLaunchManager().getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_REMOTE_JAVA_APPLICATION);
 		ILaunchConfigurationWorkingCopy config = type.newInstance(null, "Remote Breakpoints");
-		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, getJavaProject().getElementName());
+		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, get14Project().getElementName());
 		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_ALLOW_TERMINATE, true);
 		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_CONNECTOR, IJavaLaunchConfigurationConstants.ID_SOCKET_LISTEN_VM_CONNECTOR);
 		IVMConnector connector = JavaRuntime.getVMConnector(IJavaLaunchConfigurationConstants.ID_SOCKET_LISTEN_VM_CONNECTOR);
@@ -152,7 +152,7 @@
 		type = getLaunchManager().getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_JAVA_APPLICATION);
 		config = type.newInstance(null, "Launch Remote VM");
 		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME, "Breakpoints");
-		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, getJavaProject().getElementName());
+		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, get14Project().getElementName());
 		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_ARGUMENTS, "-Djava.compiler=NONE -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8000,suspend=y,server=n");
 		// use 'java' instead of 'javaw' to launch tests (javaw is problematic on JDK1.4.2)
 		Map map = new HashMap(1);
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/RuntimeClasspathEntryTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/RuntimeClasspathEntryTests.java
index 2d57ad7..af0bc8e 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/RuntimeClasspathEntryTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/RuntimeClasspathEntryTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -30,8 +30,8 @@
 	}
 
 	public void testProjectEntry() throws Exception {
-		IProject project = getJavaProject().getProject();
-		IRuntimeClasspathEntry entry = JavaRuntime.newProjectRuntimeClasspathEntry(getJavaProject());
+		IProject project = get14Project().getProject();
+		IRuntimeClasspathEntry entry = JavaRuntime.newProjectRuntimeClasspathEntry(get14Project());
 	
 		assertEquals("Paths should be equal", project.getFullPath(), entry.getPath());
 		assertEquals("Resources should be equal", project, entry.getResource());
@@ -74,54 +74,54 @@
 	 * 
 	 * XXX: test waiting for bug fix in JCORE - unable to bind container if there
 	 * is no corresponding classpath entry.
-	 */
-//	public void testJREContainerEntry() throws Exception {
-//		ILaunchConfiguration lc = getLaunchConfiguration("Breakpoints");
-//		ILaunchConfigurationWorkingCopy wc = lc.copy("Breakpoints_JRE_CONTAINER");
-//		
-//		IRuntimeClasspathEntry[] cp = JavaRuntime.computeRuntimeClasspath(lc);
-//		IRuntimeClasspathEntry removed = null;
-//		List entries = new ArrayList(cp.length);
-//		// replace JRE_LIB with JRE_CONTAINER
-//		for (int i = 0; i < cp.length; i++) {
-//			if (cp[i].getType() == IRuntimeClasspathEntry.VARIABLE) {
-//				removed = cp[i];
-//				cp[i] = JavaRuntime.newRuntimeContainerClasspathEntry(new Path(JavaRuntime.JRE_CONTAINER), getJavaProject().getElementName());	
-//			}
-//			entries.add(cp[i].getMemento());
-//		}
-//		
-//		assertNotNull("Did not replace entry", removed);
-//		wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_DEFAULT_CLASSPATH, false);
-//		wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_CLASSPATH, entries);
-//		lc = wc.doSave();
-//		
-//		createLineBreakpoint(52, "Breakpoints");
-//		IJavaThread thread= null;
-//		try {
-//			thread = launch(lc);
-//			assertNotNull("Launch failed", thread);
-//		} finally {
-//			terminateAndRemove(thread);
-//			removeAllBreakpoints();
-//		}
-//	}	
+	 *//*
+	public void testJREContainerEntry() throws Exception {
+		ILaunchConfiguration lc = getLaunchConfiguration("Breakpoints");
+		ILaunchConfigurationWorkingCopy wc = lc.copy("Breakpoints_JRE_CONTAINER");
+		
+		IRuntimeClasspathEntry[] cp = JavaRuntime.getClasspathProvider(lc).computeUnresolvedClasspath(lc);
+		IRuntimeClasspathEntry removed = null;
+		List entries = new ArrayList(cp.length);
+		// replace JRE_LIB with JRE_CONTAINER
+		for (int i = 0; i < cp.length; i++) {
+			if (cp[i].getType() == IRuntimeClasspathEntry.VARIABLE) {
+				removed = cp[i];
+				cp[i] = JavaRuntime.newRuntimeContainerClasspathEntry(new Path(JavaRuntime.JRE_CONTAINER), IRuntimeClasspathEntry.STANDARD_CLASSES);	
+			}
+			entries.add(cp[i].getMemento());
+		}
+		
+		assertNotNull("Did not replace entry", removed);
+		wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_DEFAULT_CLASSPATH, false);
+		wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_CLASSPATH, entries);
+		lc = wc.doSave();
+		
+		createLineBreakpoint(52, "Breakpoints");
+		IJavaThread thread= null;
+		try {
+			thread = launchToBreakpoint(lc);
+			assertNotNull("Launch failed", thread);
+		} finally {
+			terminateAndRemove(thread);
+			removeAllBreakpoints();
+		}
+	}	*/
 	
 	public void testJREContainerEquality() throws Exception {
-		IRuntimeClasspathEntry entry1 = JavaRuntime.newRuntimeContainerClasspathEntry(new Path(JavaRuntime.JRE_CONTAINER), IRuntimeClasspathEntry.STANDARD_CLASSES, getJavaProject());
-		IRuntimeClasspathEntry entry2 = JavaRuntime.newRuntimeContainerClasspathEntry(new Path(JavaRuntime.JRE_CONTAINER), IRuntimeClasspathEntry.STANDARD_CLASSES, getJavaProject("MultiOutput"));
+		IRuntimeClasspathEntry entry1 = JavaRuntime.newRuntimeContainerClasspathEntry(new Path(JavaRuntime.JRE_CONTAINER), IRuntimeClasspathEntry.STANDARD_CLASSES, get14Project());
+		IRuntimeClasspathEntry entry2 = JavaRuntime.newRuntimeContainerClasspathEntry(new Path(JavaRuntime.JRE_CONTAINER), IRuntimeClasspathEntry.STANDARD_CLASSES, getMultiOutputProject());
 		assertEquals("JRE containers should be equal no matter which project", entry1, entry2);
 	}
 	
 	public void testExampleContainerEqualityNegative() throws Exception {
-		IRuntimeClasspathEntry entry1 = JavaRuntime.newRuntimeContainerClasspathEntry(new Path("org.eclipse.jdt.debug.tests.TestClasspathContainer"), IRuntimeClasspathEntry.USER_CLASSES, getJavaProject());
-		IRuntimeClasspathEntry entry2 = JavaRuntime.newRuntimeContainerClasspathEntry(new Path("org.eclipse.jdt.debug.tests.TestClasspathContainer"), IRuntimeClasspathEntry.USER_CLASSES, getJavaProject("MultiOutput"));
+		IRuntimeClasspathEntry entry1 = JavaRuntime.newRuntimeContainerClasspathEntry(new Path("org.eclipse.jdt.debug.tests.TestClasspathContainer"), IRuntimeClasspathEntry.USER_CLASSES, get14Project());
+		IRuntimeClasspathEntry entry2 = JavaRuntime.newRuntimeContainerClasspathEntry(new Path("org.eclipse.jdt.debug.tests.TestClasspathContainer"), IRuntimeClasspathEntry.USER_CLASSES, getMultiOutputProject());
 		assertFalse("Example containers should *not* be equal for different projects", entry1.equals(entry2));
 	}
 	
 	public void testExampleContainerEqualityPositive() throws Exception {
-		IRuntimeClasspathEntry entry1 = JavaRuntime.newRuntimeContainerClasspathEntry(new Path("org.eclipse.jdt.debug.tests.TestClasspathContainer"), IRuntimeClasspathEntry.USER_CLASSES, getJavaProject());
-		IRuntimeClasspathEntry entry2 = JavaRuntime.newRuntimeContainerClasspathEntry(new Path("org.eclipse.jdt.debug.tests.TestClasspathContainer"), IRuntimeClasspathEntry.USER_CLASSES, getJavaProject());
+		IRuntimeClasspathEntry entry1 = JavaRuntime.newRuntimeContainerClasspathEntry(new Path("org.eclipse.jdt.debug.tests.TestClasspathContainer"), IRuntimeClasspathEntry.USER_CLASSES, get14Project());
+		IRuntimeClasspathEntry entry2 = JavaRuntime.newRuntimeContainerClasspathEntry(new Path("org.eclipse.jdt.debug.tests.TestClasspathContainer"), IRuntimeClasspathEntry.USER_CLASSES, get14Project());
 		assertEquals("Example containers should be equal for same project", entry1, entry2);
 	}	
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/StringSubstitutionTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/StringSubstitutionTests.java
index 62f0f78..a83c009 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/StringSubstitutionTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/StringSubstitutionTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -518,7 +518,7 @@
 	public void testWorkspaceLocArg() throws CoreException {
 		String expression = "${workspace_loc:DebugTests/src}";
 		String result = doSubs(expression);
-		assertEquals(getJavaProject().getProject().getFolder("src").getLocation().toOSString(), result);
+		assertEquals(get14Project().getProject().getFolder("src").getLocation().toOSString(), result);
 	}
 	
 	/**
@@ -527,7 +527,7 @@
 	public void testProjectLocArgProjectName() throws CoreException {
 		String expression = "${project_loc:DebugTests}";
 		String result = doSubs(expression);
-		assertEquals(getJavaProject().getProject().getLocation().toOSString(), result);
+		assertEquals(get14Project().getProject().getLocation().toOSString(), result);
 	}
 	
 	/**
@@ -536,7 +536,7 @@
 	public void testProjectLocArgFolderPath() throws CoreException {
 		String expression = "${project_loc:DebugTests/src}";
 		String result = doSubs(expression);
-		assertEquals(getJavaProject().getProject().getLocation().toOSString(), result);
+		assertEquals(get14Project().getProject().getLocation().toOSString(), result);
 	}
 	
 	/**
@@ -544,7 +544,7 @@
 	 */
 	public void testProjectLocSelectFolder() throws CoreException {
 		String expression = "${project_loc}";
-		IResource resource = getJavaProject().getProject().getFolder("src");
+		IResource resource = get14Project().getProject().getFolder("src");
 		setSelection(resource);
 		String result = doSubs(expression);
 		assertEquals(resource.getProject().getLocation().toOSString(), result);
@@ -556,7 +556,7 @@
 	public void testProjectPathArgProjectName() throws CoreException {
 		String expression = "${project_path:DebugTests}";
 		String result = doSubs(expression);
-		assertEquals(getJavaProject().getProject().getFullPath().toOSString(), result);
+		assertEquals(get14Project().getProject().getFullPath().toOSString(), result);
 	}
 	
 	/**
@@ -564,7 +564,7 @@
 	 */
 	public void testProjectPathSelectFile() throws CoreException {
 		String expression = "${project_path}";
-		IResource resource = getJavaProject().getProject().getFile(".classpath");
+		IResource resource = get14Project().getProject().getFile(".classpath");
 		setSelection(resource);
 		String result = doSubs(expression);
 		assertEquals(resource.getProject().getFullPath().toOSString(), result);
@@ -576,7 +576,7 @@
 	public void testProjectPathArgFolderPath() throws CoreException {
 		String expression = "${project_path:DebugTests/src}";
 		String result = doSubs(expression);
-		assertEquals(getJavaProject().getProject().getFullPath().toOSString(), result);
+		assertEquals(get14Project().getProject().getFullPath().toOSString(), result);
 	}
 	
 	/**
@@ -585,7 +585,7 @@
 	public void testProjectNameArgProjectName() throws CoreException {
 		String expression = "${project_name:DebugTests}";
 		String result = doSubs(expression);
-		assertEquals(getJavaProject().getProject().getName(), result);
+		assertEquals(get14Project().getProject().getName(), result);
 	}
 	
 	/**
@@ -593,7 +593,7 @@
 	 */
 	public void testProjectNameSelectProject() throws CoreException {
 		String expression = "${project_name}";
-		IResource resource = getJavaProject().getProject();
+		IResource resource = get14Project().getProject();
 		setSelection(resource);
 		String result = doSubs(expression);
 		assertEquals(resource.getProject().getName(), result);
@@ -605,7 +605,7 @@
 	public void testProjectNameArgFolderPath() throws CoreException {
 		String expression = "${project_name:DebugTests/src}";
 		String result = doSubs(expression);
-		assertEquals(getJavaProject().getProject().getName(), result);
+		assertEquals(get14Project().getProject().getName(), result);
 	}
 	
 	/**
@@ -615,7 +615,7 @@
 	public void testContainerLocArgFolderName() throws CoreException {
 		String expression = "${container_loc:DebugTests/src}";
 		String result = doSubs(expression);
-		assertEquals(getJavaProject().getProject().getLocation().toOSString(), result);
+		assertEquals(get14Project().getProject().getLocation().toOSString(), result);
 	}
 	
 	/**
@@ -624,7 +624,7 @@
 	 */
 	public void testContainerLocSelectFolder() throws CoreException {
 		String expression = "${container_loc}";
-		IResource resource = getJavaProject().getProject().getFolder("src");
+		IResource resource = get14Project().getProject().getFolder("src");
 		setSelection(resource);
 		String result = doSubs(expression);
 		assertEquals(resource.getParent().getLocation().toOSString(), result);
@@ -637,7 +637,7 @@
 	public void testContainerPathArgFolderName() throws CoreException {
 		String expression = "${container_path:DebugTests/src}";
 		String result = doSubs(expression);
-		assertEquals(getJavaProject().getProject().getFullPath().toOSString(), result);
+		assertEquals(get14Project().getProject().getFullPath().toOSString(), result);
 	}
 	
 	/**
@@ -646,7 +646,7 @@
 	 */
 	public void testContainerPathSelectFolder() throws CoreException {
 		String expression = "${container_path}";
-		IResource resource = getJavaProject().getProject().getFolder("src"); 
+		IResource resource = get14Project().getProject().getFolder("src"); 
 		setSelection(resource);
 		String result = doSubs(expression);
 		assertEquals(resource.getParent().getFullPath().toOSString(), result);
@@ -659,7 +659,7 @@
 	public void testContainerNameArgFolderName() throws CoreException {
 		String expression = "${container_name:DebugTests/src}";
 		String result = doSubs(expression);
-		assertEquals(getJavaProject().getProject().getName(), result);
+		assertEquals(get14Project().getProject().getName(), result);
 	}
 	
 	/**
@@ -668,7 +668,7 @@
 	 */
 	public void testContainerNameSelectFolder() throws CoreException {
 		String expression = "${container_name}";
-		IResource resource = getJavaProject().getProject().getFolder("src"); 
+		IResource resource = get14Project().getProject().getFolder("src"); 
 		setSelection(resource);
 		String result = doSubs(expression);
 		assertEquals(resource.getParent().getName(), result);
@@ -680,7 +680,7 @@
 	public void testResourceLocArgFolderName() throws CoreException {
 		String expression = "${resource_loc:DebugTests/src}";
 		String result = doSubs(expression);
-		assertEquals(getJavaProject().getProject().getFolder("src").getLocation().toOSString(), result);
+		assertEquals(get14Project().getProject().getFolder("src").getLocation().toOSString(), result);
 	}
 	
 	/**
@@ -688,7 +688,7 @@
 	 */
 	public void testResourceLocSelectFolder() throws CoreException {
 		String expression = "${resource_loc}";
-		IResource resource = getJavaProject().getProject().getFolder("src");
+		IResource resource = get14Project().getProject().getFolder("src");
 		setSelection(resource);
 		String result = doSubs(expression);
 		assertEquals(resource.getLocation().toOSString(), result);
@@ -700,7 +700,7 @@
 	public void testResourcePathArgFolderName() throws CoreException {
 		String expression = "${resource_path:DebugTests/src}";
 		String result = doSubs(expression);
-		assertEquals(getJavaProject().getProject().getFolder("src").getFullPath().toOSString(), result);
+		assertEquals(get14Project().getProject().getFolder("src").getFullPath().toOSString(), result);
 	}
 
 	/**
@@ -708,7 +708,7 @@
 	 */
 	public void testResourcePathSelectFile() throws CoreException {
 		String expression = "${resource_path}";
-		IResource resource = getJavaProject().getProject().getFile(".classpath"); 
+		IResource resource = get14Project().getProject().getFile(".classpath"); 
 		setSelection(resource);
 		String result = doSubs(expression);
 		assertEquals(resource.getFullPath().toOSString(), result);
@@ -720,7 +720,7 @@
 	public void testResourceNameArgFolderName() throws CoreException {
 		String expression = "${resource_name:DebugTests/src}";
 		String result = doSubs(expression);
-		assertEquals(getJavaProject().getProject().getFolder("src").getName(), result);
+		assertEquals(get14Project().getProject().getFolder("src").getName(), result);
 	}	
 
 	/**
@@ -728,7 +728,7 @@
 	 */
 	public void testResourceNameSelectFile() throws CoreException {
 		String expression = "${resource_name}";
-		IResource resource = getJavaProject().getProject().getFile(".classpath");
+		IResource resource = get14Project().getProject().getFile(".classpath");
 		setSelection(resource);
 		String result = doSubs(expression);
 		assertEquals(resource.getName(), result);
@@ -739,7 +739,7 @@
 	 * application configurations.
 	 */
 	public void testLocalJavaApplicationParameters() throws CoreException {
-		IResource resource = getJavaProject().getProject().getFile(".classpath");
+		IResource resource = get14Project().getProject().getFile(".classpath");
 		setSelection(resource);
 		
 		ILaunchConfiguration config = getLaunchConfiguration("Breakpoints");
@@ -796,7 +796,7 @@
 	 */
 	public void testSelectedResourcePathFile() throws CoreException {
 		String expression = "${selected_resource_path}";
-		IResource resource = getJavaProject().getProject().getFile(".classpath"); 
+		IResource resource = get14Project().getProject().getFile(".classpath"); 
 		setSelection(resource);
 		String result = doSubs(expression);
 		assertEquals(resource.getFullPath().toOSString(), result);
@@ -807,7 +807,7 @@
 	 */
 	public void testSelectedResourceNameFile() throws CoreException {
 		String expression = "${selected_resource_name}";
-		IResource resource = getJavaProject().getProject().getFile(".classpath");
+		IResource resource = get14Project().getProject().getFile(".classpath");
 		setSelection(resource);
 		String result = doSubs(expression);
 		assertEquals(resource.getName(), result);
@@ -818,7 +818,7 @@
 	 */
 	public void testSelectedResourceLocFolder() throws CoreException {
 		String expression = "${selected_resource_loc}";
-		IResource resource = getJavaProject().getProject().getFolder("src");
+		IResource resource = get14Project().getProject().getFolder("src");
 		setSelection(resource);
 		String result = doSubs(expression);
 		assertEquals(resource.getLocation().toOSString(), result);
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/WorkingDirectoryTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/WorkingDirectoryTests.java
index ec82c28..f1d6c16 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/WorkingDirectoryTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/WorkingDirectoryTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- *  Copyright (c) 2000, 2007 IBM Corporation and others.
+ *  Copyright (c) 2000, 2011 IBM Corporation and others.
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
@@ -43,7 +43,7 @@
 			IVariable var = thread.findVariable("dir");
 			String dir = var.getValue().getValueString();
 			IPath path = new Path(dir);
-			assertEquals("default working dir should be the project directory.", getJavaProject().getProject().getLocation(), path); 
+			assertEquals("default working dir should be the project directory.", get14Project().getProject().getLocation(), path); 
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
@@ -69,7 +69,7 @@
 	public void testWorkspaceRelativeWorkingDirectory() throws Exception {
 		String typeName = "WorkingDirectoryTest";
 		createLineBreakpoint(16, typeName);
-		IPath wd = getJavaProject().getProject().getFolder("src").getFullPath().makeRelative();
+		IPath wd = get14Project().getProject().getFolder("src").getFullPath().makeRelative();
 		setWorkingDirectory(wd);
 
 		IJavaThread thread= null;
@@ -81,7 +81,7 @@
 			IVariable var = thread.findVariable("dir");
 			String dir = var.getValue().getValueString();
 			IPath path = new Path(dir);
-			assertEquals("working dir should be the src directory.", getJavaProject().getProject().getFolder("src").getLocation(), path);
+			assertEquals("working dir should be the src directory.", get14Project().getProject().getFolder("src").getLocation(), path);
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
@@ -92,7 +92,7 @@
 	public void testAbsoluteWorkingDirectory() throws Exception {
 		String typeName = "WorkingDirectoryTest";
 		createLineBreakpoint(16, typeName);
-		IPath wd = getJavaProject().getProject().getFolder("src").getLocation();
+		IPath wd = get14Project().getProject().getFolder("src").getLocation();
 		setWorkingDirectory(wd);
 
 		IJavaThread thread= null;
@@ -104,7 +104,7 @@
 			IVariable var = thread.findVariable("dir");
 			String dir = var.getValue().getValueString();
 			IPath path = new Path(dir);
-			assertEquals("working dir should be the src directory.", getJavaProject().getProject().getFolder("src").getLocation(), path);
+			assertEquals("working dir should be the src directory.", get14Project().getProject().getFolder("src").getLocation(), path);
 		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/WorkspaceSourceContainerTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/WorkspaceSourceContainerTests.java
index 2146c2e..e64bfec 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/WorkspaceSourceContainerTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/WorkspaceSourceContainerTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
+ * Copyright (c) 2004, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -50,7 +50,7 @@
 	}		
 
 	public void testSimpleSourceLookupPositive() throws Exception {
-		IFolder folder = getJavaProject().getProject().getFolder("src");
+		IFolder folder = get14Project().getProject().getFolder("src");
 		WorkspaceSourceContainer container = getContainer(false);
 		Object[] objects = container.findSourceElements("Breakpoints.java");
 		assertEquals("Expected 1 result", 1, objects.length);
@@ -64,7 +64,7 @@
 	}	
 	
 	public void testQualifiedSourceLookupPositive() throws Exception {
-		IFolder folder = getJavaProject().getProject().getFolder("src");
+		IFolder folder = get14Project().getProject().getFolder("src");
 		WorkspaceSourceContainer container = getContainer(false);
 		Object[] objects = container.findSourceElements("org/eclipse/debug/tests/targets/InfiniteLoop.java");
 		assertEquals("Expected 1 result", 1, objects.length);
@@ -78,7 +78,7 @@
 	}	
 	
 	public void testCaseSensitiveQualifiedSourceLookup() throws Exception {
-		IFolder folder = getJavaProject().getProject().getFolder("src");
+		IFolder folder = get14Project().getProject().getFolder("src");
 		WorkspaceSourceContainer container = getContainer(false);
 		Object[] objects = container.findSourceElements("oRg/eClIpSe/dEbUg/tEsTs/tArGeTs/INfInItELOop.jaVa");
 		if (isFileSystemCaseSensitive()) {
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/Tests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/Tests.java
index 09ad77b..b5ad5bb 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/Tests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/Tests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2002, 2009 IBM Corporation and others.
+ * Copyright (c) 2002, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -466,13 +466,13 @@
 	protected void initializeFrame(String testClass, int breakPointLine, int numberFrames) throws Exception {
 		fFrame = getStackFrame(breakPointLine, numberFrames, 0, 0, testClass);
 
-		fEngine = getEvaluationEngine((IJavaDebugTarget)fFrame.getDebugTarget(), getJavaProject());
+		fEngine = getEvaluationEngine((IJavaDebugTarget)fFrame.getDebugTarget(), get14Project());
 	}
 	
 	protected void initializeFrame(String testClass, int breakPointLine, int numberFrames, int hitCount) throws Exception {
 		fFrame = getStackFrame(breakPointLine, numberFrames, 0, hitCount, testClass);
 
-		fEngine = getEvaluationEngine((IJavaDebugTarget)fFrame.getDebugTarget(), getJavaProject());
+		fEngine = getEvaluationEngine((IJavaDebugTarget)fFrame.getDebugTarget(), get14Project());
 	}
 	
 	protected void destroyFrame() throws Exception {
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/MigrationDelegateTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/MigrationDelegateTests.java
old mode 100755
new mode 100644
index 07bad51..ee74a68
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/MigrationDelegateTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/MigrationDelegateTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- *  Copyright (c) 2005, 2007 IBM Corporation and others.
+ *  Copyright (c) 2005, 2011 IBM Corporation and others.
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
@@ -43,7 +43,7 @@
 			config.migrate();
 			IResource[] mappedResources = config.getMappedResources();
 			assertEquals("Wrong number of mapped resources", 1, mappedResources.length); //$NON-NLS-1$
-			assertEquals("Wrong mapped resources", getJavaProject().findType("MigrationTests").getUnderlyingResource(), mappedResources[0]); //$NON-NLS-1$ //$NON-NLS-2$
+			assertEquals("Wrong mapped resources", get14Project().findType("MigrationTests").getUnderlyingResource(), mappedResources[0]); //$NON-NLS-1$ //$NON-NLS-2$
 		}
 		finally {
 			config = null;
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/ProjectClasspathVariableTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/ProjectClasspathVariableTests.java
index c8210bb..64c8bd2 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/ProjectClasspathVariableTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/ProjectClasspathVariableTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2010 IBM Corporation and others.
+ * Copyright (c) 2010, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -94,14 +94,14 @@
 	 */
 	public void testSelectedProject() throws Exception {
 		IStringVariableManager manager = VariablesPlugin.getDefault().getStringVariableManager();
-		IProject project = getJavaProject().getProject();
+		IProject project = get14Project().getProject();
 		setSelection(project);
 		String cp = manager.performStringSubstitution("${project_classpath}");
 		StringBuffer buffer = new StringBuffer();
 		// expecting default output location and A.jar
-		buffer.append(ResourcesPlugin.getWorkspace().getRoot().getFolder(getJavaProject().getOutputLocation()).getLocation().toOSString());
+		buffer.append(ResourcesPlugin.getWorkspace().getRoot().getFolder(get14Project().getOutputLocation()).getLocation().toOSString());
 		buffer.append(File.pathSeparatorChar);
-		buffer.append(getJavaProject().getProject().getFolder("src").getFile("A.jar").getLocation().toOSString());
+		buffer.append(get14Project().getProject().getFolder("src").getFile("A.jar").getLocation().toOSString());
 		assertEquals("Wrong classpath", buffer.toString(), cp);
 	}
 	
@@ -122,13 +122,13 @@
 	
 	public void testProjectClasspath() throws Exception {
 		IStringVariableManager manager = VariablesPlugin.getDefault().getStringVariableManager();
-		String projectName = getJavaProject().getElementName();
+		String projectName = get14Project().getElementName();
 		String cp = manager.performStringSubstitution("${project_classpath:" + projectName + "}");
 		StringBuffer buffer = new StringBuffer();
 		// expecting default output location and A.jar
-		buffer.append(ResourcesPlugin.getWorkspace().getRoot().getFolder(getJavaProject().getOutputLocation()).getLocation().toOSString());
+		buffer.append(ResourcesPlugin.getWorkspace().getRoot().getFolder(get14Project().getOutputLocation()).getLocation().toOSString());
 		buffer.append(File.pathSeparatorChar);
-		buffer.append(getJavaProject().getProject().getFolder("src").getFile("A.jar").getLocation().toOSString());
+		buffer.append(get14Project().getProject().getFolder("src").getFile("A.jar").getLocation().toOSString());
 		assertEquals("Wrong classpath", buffer.toString(), cp);
 	}
 
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfBreakpointTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfBreakpointTests.java
index 042e375..a351fdc 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfBreakpointTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfBreakpointTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- *  Copyright (c) 2000, 2009 IBM Corporation and others.
+ *  Copyright (c) 2000, 2011 IBM Corporation and others.
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
@@ -153,7 +153,7 @@
     public void testMethodEntryBreakpointCreation() throws Exception {
         tagAsSummary("Install Method Entry Breakpoints", Dimension.ELAPSED_PROCESS);
         String typeName = "LargeSourceFile";
-        IProject project = getJavaProject().getProject();
+        IProject project = get14Project().getProject();
         
         IJavaLineBreakpoint bp = createLineBreakpoint(14, typeName);
         IJavaThread thread = launchToBreakpoint(typeName, false);
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfContextualLaunchMenu.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfContextualLaunchMenu.java
index 973a45f..b63b8ea 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfContextualLaunchMenu.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfContextualLaunchMenu.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- *  Copyright (c) 2000, 2008 IBM Corporation and others.
+ *  Copyright (c) 2000, 2011 IBM Corporation and others.
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
@@ -41,7 +41,7 @@
     	setDegradationComment("This test is unreliable as it improved 10x during 3.3 (vs 3.2), and needs to be replaced.");
         final PerfTestContextualLaunchAction action = new PerfTestContextualLaunchAction();
         
-        ICompilationUnit cu = getCompilationUnit(getJavaProject(), "src", "org.eclipse.debug.tests.targets", "SourceLookup.java");        
+        ICompilationUnit cu = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "SourceLookup.java");        
         StructuredSelection selection = new StructuredSelection(new Object[] {cu});
         action.selectionChanged(new BogusAction(), selection);
         
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/AbstractRefactoringDebugTest.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/AbstractRefactoringDebugTest.java
index 0436f45..f208921 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/AbstractRefactoringDebugTest.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/AbstractRefactoringDebugTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2009 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -62,8 +62,8 @@
 	 * @throws Exception
 	 */
 	private void doClean() throws Exception {
-		IProject project = getJavaProject().getProject();
-		IPackageFragmentRoot root = getPackageFragmentRoot(getJavaProject(), "src");
+		IProject project = get14Project().getProject();
+		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		IPackageFragment fragment = root.getPackageFragment("renamedPackage");
 		if (fragment.exists()) {
 			fragment.delete(true, new NullProgressMonitor());
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ChangeAnonymousTypeMethodSignatureUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ChangeAnonymousTypeMethodSignatureUnitTests.java
index 82dbef8..342e8ae 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ChangeAnonymousTypeMethodSignatureUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ChangeAnonymousTypeMethodSignatureUnitTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -65,7 +65,7 @@
 //////////////////////////////////////////////////////////////////////////////////////	
 	private Refactoring setupRefactor(String root, String packageName, String cuName, String fullTargetName) throws Exception {
 		
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit = getCompilationUnit(javaProject, root, packageName, cuName);
 		IMethod method = (IMethod)(getMember(cunit,fullTargetName));
 		
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ChangeMethodSignatureUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ChangeMethodSignatureUnitTests.java
index ffc4686..c37f318 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ChangeMethodSignatureUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ChangeMethodSignatureUnitTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -128,7 +128,7 @@
 //////////////////////////////////////////////////////////////////////////////////////	
 	private Refactoring setupRefactor(String root, String targetPackageName, String cuName, String typeName, String methodName, String methodSig) throws Exception {
 		
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit = getCompilationUnit(javaProject, root, targetPackageName, cuName);
 		IType type = getLowestType(cunit, typeName);
 		
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ConvertInnerAnonymousTypeToNestedUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ConvertInnerAnonymousTypeToNestedUnitTests.java
index 4ec125b..f10dde9 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ConvertInnerAnonymousTypeToNestedUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ConvertInnerAnonymousTypeToNestedUnitTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -159,7 +159,7 @@
 //////////////////////////////////////////////////////////////////////////////////////	
 	private Refactoring setupRefactor(String root, String packageName, String cuName, String targetName) throws Exception {
 		
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit = getCompilationUnit(javaProject, root, packageName, cuName);
 		IType type = (IType)getMember(cunit,targetName);
 		
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ConvertNonPublicAnonymousTypeToNestedUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ConvertNonPublicAnonymousTypeToNestedUnitTests.java
index 33120b9..5b4251e 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ConvertNonPublicAnonymousTypeToNestedUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ConvertNonPublicAnonymousTypeToNestedUnitTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -159,7 +159,7 @@
 //////////////////////////////////////////////////////////////////////////////////////	
 	private Refactoring setupRefactor(String root, String packageName, String cuName, String targetName) throws Exception {
 		
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit = getCompilationUnit(javaProject, root, packageName, cuName);
 		IType type = (IType)getMember(cunit,targetName);
 		
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ConvertPublicAnonymousTypeToNestedUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ConvertPublicAnonymousTypeToNestedUnitTests.java
index d8e4236..b73d336 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ConvertPublicAnonymousTypeToNestedUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ConvertPublicAnonymousTypeToNestedUnitTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -159,7 +159,7 @@
 //////////////////////////////////////////////////////////////////////////////////////	
 	private Refactoring setupRefactor(String root, String packageName, String cuName, String targetName) throws Exception {
 		
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit = getCompilationUnit(javaProject, root, packageName, cuName);
 		IType type = (IType)getMember(cunit,targetName);
 		
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ExtractMethodUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ExtractMethodUnitTests.java
index 13d9abf..4e264af 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ExtractMethodUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/ExtractMethodUnitTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -114,7 +114,7 @@
 	
 	private Refactoring setupRefactor(int lineNumber, String root, String targetPackageName, String cuName) throws Exception {
 		
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit = getCompilationUnit(javaProject, root, targetPackageName, cuName);
 				
 		IDocument sourceCUnit = new Document(cunit.getSource());
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/IntroduceParameterUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/IntroduceParameterUnitTests.java
index 4d6fdde..80ae272 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/IntroduceParameterUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/IntroduceParameterUnitTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -109,7 +109,7 @@
 //////////////////////////////////////////////////////////////////////////////////////	
 	private Refactoring setupRefactor(int lineNumber, String root, String targetPackageName, String cuName) throws Exception {
 		
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit = getCompilationUnit(javaProject, root, targetPackageName, cuName);
 		IDocument sourceCUnit = new Document(cunit.getSource());
 		IRegion lineInfo = sourceCUnit.getLineInformation(lineNumber-1);//-1 Document considers lineNumber different than createBreakpoint
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveCompilationUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveCompilationUnitTests.java
index 3f24597..1866e6f 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveCompilationUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveCompilationUnitTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- *  Copyright (c) 2005, 2008 IBM Corporation and others.
+ *  Copyright (c) 2005, 2011 IBM Corporation and others.
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
@@ -70,7 +70,7 @@
 	 */
 	public void testLineBreakPoint() throws Exception {
 		cleanTestFiles();
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
 		try {
 			int lineNumber = 21;
@@ -96,7 +96,7 @@
 	 */	
 	public void testMethodBreakPoint() throws Exception {
 		cleanTestFiles();
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
 				
 		try {
@@ -122,7 +122,7 @@
 	 */		
 	public void testWatchPointBreakPoint() throws Exception {
 		cleanTestFiles();
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
 				
 		try {
@@ -148,7 +148,7 @@
 	 */			
 	public void testClassLoadBreakPoint() throws Exception {
 		cleanTestFiles();
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
 				
 		try {
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveFieldUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveFieldUnitTests.java
index 53992de..8e74e81 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveFieldUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveFieldUnitTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -34,7 +34,7 @@
 	 */		
 	public void testPublicTypeFieldMove() throws Exception {
 		cleanTestFiles();
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
 		IJavaElement type = cunit.getType("Movee").getField("anInt");
 			
@@ -62,7 +62,7 @@
 	 */		
 	public void testInnerTypeFieldMove() throws Exception {
 		cleanTestFiles();
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
 		IJavaElement type = cunit.getType("Movee").getType("InnerType").getField("innerTypeInt");
 			
@@ -90,7 +90,7 @@
 	 */		
 	public void testNonPublicTypeFieldMove() throws Exception {
 		cleanTestFiles();
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
 		IJavaElement type = cunit.getType("NonPublicType").getField("differentInt");
 			
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveInnerTypeMethodUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveInnerTypeMethodUnitTests.java
index 6f6f2b1..e47befb 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveInnerTypeMethodUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveInnerTypeMethodUnitTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -35,7 +35,7 @@
 	 */
 	public void testLineBreakPoint() throws Exception {
 		cleanTestFiles();
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
 		IJavaElement type = cunit.getType("Movee").getType("InnerType").getMethod("innerTypeMethod", Signature.getParameterTypes("()V"));
 		try {
@@ -63,7 +63,7 @@
 	 */	
 	public void testMethodBreakPoint() throws Exception {
 		cleanTestFiles();
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
 		IJavaElement type = cunit.getType("Movee").getType("InnerType").getMethods()[0];
 			
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveInnerTypeToNewFileUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveInnerTypeToNewFileUnitTests.java
index 3346377..878e7f2 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveInnerTypeToNewFileUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveInnerTypeToNewFileUnitTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -125,7 +125,7 @@
 	
 	private Refactoring setupRefactor(String parentClassName, String className, String root, String targetPackageName, String cuName) throws Exception {
 		
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		IType parentClas= getCompilationUnit(javaProject, root, targetPackageName, cuName).getType(parentClassName);
 		IType clas= parentClas.getType(className);
 		
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveInnerTypeUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveInnerTypeUnitTests.java
index 8a1aff7..beded65 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveInnerTypeUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveInnerTypeUnitTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -36,7 +36,7 @@
 	 */
 	public void testLineBreakPoint() throws Exception {
 		cleanTestFiles();
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
 		IType type = cunit.getType("Movee").getType("InnerType");
 		try {
@@ -63,7 +63,7 @@
 	 */	
 	public void testMethodBreakPoint() throws Exception {
 		cleanTestFiles();
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
 		IType type = cunit.getType("Movee").getType("InnerType");
 		
@@ -89,7 +89,7 @@
 	 */		
 	public void testWatchPointBreakPoint() throws Exception {
 		cleanTestFiles();
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
 		IType type = cunit.getType("Movee").getType("InnerType");		
 		try {
@@ -114,7 +114,7 @@
 	 */			
 	public void testClassLoadBreakPoint() throws Exception {
 		cleanTestFiles();
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
 		IType type = cunit.getType("Movee").getType("InnerType");		
 		
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveNonPublicTypeMethodUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveNonPublicTypeMethodUnitTests.java
index bb03835..28d260d 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveNonPublicTypeMethodUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveNonPublicTypeMethodUnitTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -35,7 +35,7 @@
 	 */
 	public void testLineBreakPoint() throws Exception {
 		cleanTestFiles();
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
 		IJavaElement type = cunit.getType("NonPublicType").getMethod("nonPublicMethod", Signature.getParameterTypes("()V"));
 		try {
@@ -63,7 +63,7 @@
 	 */	
 	public void testMethodBreakPoint() throws Exception {
 		cleanTestFiles();
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
 		IJavaElement type = cunit.getType("NonPublicType").getMethods()[0];//1st method is nonPublicMethod
 		
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveNonPublicTypeUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveNonPublicTypeUnitTests.java
index 31c6b1f..83b9225 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveNonPublicTypeUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MoveNonPublicTypeUnitTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -36,7 +36,7 @@
 	 */
 	public void testLineBreakPoint() throws Exception {
 		cleanTestFiles();
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
 		IType type = cunit.getType("NonPublicType");
 		try {
@@ -63,7 +63,7 @@
 	 */	
 	public void testMethodBreakPoint() throws Exception {
 		cleanTestFiles();
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
 		IType type = cunit.getType("NonPublicType");
 		
@@ -89,7 +89,7 @@
 	 */		
 	public void testWatchPointBreakPoint() throws Exception {
 		cleanTestFiles();
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
 		IType type = cunit.getType("NonPublicType");		
 		try {
@@ -116,7 +116,7 @@
 	 */			
 	public void testClassLoadBreakPoint() throws Exception {
 		cleanTestFiles();
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
 		IType type = cunit.getType("NonPublicType");		
 		
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MovePublicTypeMethodUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MovePublicTypeMethodUnitTests.java
index 1851092..e7d1ff2 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MovePublicTypeMethodUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/MovePublicTypeMethodUnitTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -35,7 +35,7 @@
 	 */
 	public void testLineBreakPoint() throws Exception {
 		cleanTestFiles();
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
 		IJavaElement type = cunit.getType("Movee").getMethod("testMethod1", Signature.getParameterTypes("()V"));
 		try {
@@ -63,7 +63,7 @@
 	 */	
 	public void testMethodBreakPoint() throws Exception {
 		cleanTestFiles();
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit= getCompilationUnit(javaProject, "src", "a.b.c", "Movee.java");
 		IJavaElement type = cunit.getType("Movee").getMethods()[0];
 		
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/PushDownFieldUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/PushDownFieldUnitTests.java
index c7e3dc2..c52aa32 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/PushDownFieldUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/PushDownFieldUnitTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -56,7 +56,7 @@
 	
 	private Refactoring setupRefactor(String parentClassName, String className, String root, String targetPackageName, String cuName) throws Exception {
 		
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		IType parentClas= getCompilationUnit(javaProject, root, targetPackageName, cuName).getType(parentClassName);
 		IField clas= parentClas.getField("anInt");
 		
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/PushDownMethodUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/PushDownMethodUnitTests.java
index 3f65e8f..e6a6933 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/PushDownMethodUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/PushDownMethodUnitTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -83,7 +83,7 @@
 	
 	private Refactoring setupRefactor(String parentClassName, String className, String root, String targetPackageName, String cuName) throws Exception {
 		
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		IType parentClas= getCompilationUnit(javaProject, root, targetPackageName, cuName).getType(parentClassName);
 		IMethod clas= parentClas.getMethod(className, Signature.getParameterTypes("()V"));
 		
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameCompilationUnitUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameCompilationUnitUnitTests.java
index d2679c6..c487ad4 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameCompilationUnitUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameCompilationUnitUnitTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -167,7 +167,7 @@
 	
 	private Refactoring setupRefactor(String root, String packageName, String cuName) throws Exception {
 		
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit = getCompilationUnit(javaProject, root, packageName, cuName);
 				
 		JavaRenameProcessor proc = new RenameCompilationUnitProcessor(cunit);
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameFieldUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameFieldUnitTests.java
index 228b84b..1c89648 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameFieldUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameFieldUnitTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -76,7 +76,7 @@
 	
 	protected Refactoring setupRefactor(String root, String packageName, String cuName, String fullTargetName) throws Exception {
 		
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit = getCompilationUnit(javaProject, root, packageName, cuName);
 		IField field = (IField)getMember(cunit, fullTargetName);
 		JavaRenameProcessor proc = new RenameFieldProcessor(field);
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameInnerTypeUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameInnerTypeUnitTests.java
index db6be97..a95dbff 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameInnerTypeUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameInnerTypeUnitTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- *  Copyright (c) 2005, 2006 IBM Corporation and others.
+ *  Copyright (c) 2005, 2011 IBM Corporation and others.
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
@@ -183,7 +183,7 @@
 	 */
 	private Refactoring setupRefactor(String root, String packageName, String cuName, String type) throws Exception {
 		
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit = getCompilationUnit(javaProject, root, packageName, cuName);
 		IMember target = getMember(cunit, type);
 		//if this was a non-typed test, get's it's parent type
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameMethodUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameMethodUnitTests.java
index ca7bb49..51fbd4b 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameMethodUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameMethodUnitTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- *  Copyright (c) 2005, 2006 IBM Corporation and others.
+ *  Copyright (c) 2005, 2011 IBM Corporation and others.
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
@@ -87,7 +87,7 @@
 	 */
 	protected Refactoring setupRefactor(String root, String packageName, String cuName, String fullName) throws Exception {
 		
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit = getCompilationUnit(javaProject, root, packageName, cuName);
 		IMember member = getMember(cunit, fullName);
 		IMethod method = (IMethod)member;
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameNonPublicTypeUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameNonPublicTypeUnitTests.java
index 2982529..cb365f9 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameNonPublicTypeUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenameNonPublicTypeUnitTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -193,7 +193,7 @@
 	protected Refactoring setupRefactor(String root, String packageName, String cuName,
 			String type) throws Exception {
 		
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit = getCompilationUnit(javaProject, root, packageName, cuName);
 		IMember target = getMember(cunit, type);
 		//if this was a non-typed test, get's it's parent type
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenamePackageUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenamePackageUnitTests.java
index e1cebad..447c708 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenamePackageUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenamePackageUnitTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- *  Copyright (c) 2005, 2007 IBM Corporation and others.
+ *  Copyright (c) 2005, 2011 IBM Corporation and others.
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
@@ -172,7 +172,7 @@
 	
 	protected Refactoring setupRefactor(String root, String packageName, String cuName) throws Exception {
 		
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit = getCompilationUnit(javaProject, root, packageName, cuName);
 		IPackageFragment packageFragment = (IPackageFragment )cunit.getParent();
 		JavaRenameProcessor proc = new RenamePackageProcessor(packageFragment);
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenamePublicTypeUnitTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenamePublicTypeUnitTests.java
index d7bb5a1..cd4b5e2 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenamePublicTypeUnitTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/RenamePublicTypeUnitTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- *  Copyright (c) 2005, 2006 IBM Corporation and others.
+ *  Copyright (c) 2005, 2011 IBM Corporation and others.
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
@@ -214,7 +214,7 @@
 	 */
 	protected Refactoring setupRefactor(String root, String packageName, String cuName, String type) throws Exception {
 		
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		ICompilationUnit cunit = getCompilationUnit(javaProject, root, packageName, cuName);
 		IMember target = getMember(cunit, type);
 		//if this was a non-typed test, get's it's parent type
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/DirectorySourceContainerTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/DirectorySourceContainerTests.java
old mode 100755
new mode 100644
index 45679b5..54c27de
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/DirectorySourceContainerTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/DirectorySourceContainerTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- *  Copyright (c) 2004, 2006 IBM Corporation and others.
+ *  Copyright (c) 2004, 2011 IBM Corporation and others.
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
@@ -36,7 +36,7 @@
 		ISourceLookupDirector director = new JavaSourceLookupDirector();
 		director.initializeParticipants();
 		director.setFindDuplicates(duplicates);
-		File folder = getJavaProject().getProject().getFolder("src").getLocation().toFile();
+		File folder = get14Project().getProject().getFolder("src").getLocation().toFile();
 		DirectorySourceContainer container = new DirectorySourceContainer(folder, subfolders);
 		director.setSourceContainers(new ISourceContainer[]{container});
 		return container;
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/DirectorySourceLookupTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/DirectorySourceLookupTests.java
old mode 100755
new mode 100644
index e68ffee..1ee8eb8
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/DirectorySourceLookupTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/DirectorySourceLookupTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -33,11 +33,11 @@
 	 * Tests source lookup in a top level type, in the default package.
 	 */
 	public void testDefTopLevelType() throws Exception {
-		IPackageFragmentRoot root = getPackageFragmentRoot(getJavaProject(), "src");
+		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		File rootFile = root.getResource().getLocation().toFile();
 		IJavaSourceLocation location = new DirectorySourceLocation(rootFile);
 		
-		ICompilationUnit cu = getCompilationUnit(getJavaProject(), "src", IInternalDebugCoreConstants.EMPTY_STRING, "Breakpoints.java");
+		ICompilationUnit cu = getCompilationUnit(get14Project(), "src", IInternalDebugCoreConstants.EMPTY_STRING, "Breakpoints.java");
 		assertTrue("did not find compilation unit for Breakpoints.java", cu.exists());
 		LocalFileStorage expectedSource = new LocalFileStorage(cu.getResource().getLocation().toFile());
 				
@@ -48,11 +48,11 @@
 	 * Tests source lookup in an inner type, the default package.
 	 */
 	public void testDefInnerType() throws Exception {
-		IPackageFragmentRoot root = getPackageFragmentRoot(getJavaProject(), "src");
+		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		File rootFile = root.getResource().getLocation().toFile();
 		IJavaSourceLocation location = new DirectorySourceLocation(rootFile);
 		
-		ICompilationUnit cu = getCompilationUnit(getJavaProject(), "src", IInternalDebugCoreConstants.EMPTY_STRING, "Breakpoints.java");
+		ICompilationUnit cu = getCompilationUnit(get14Project(), "src", IInternalDebugCoreConstants.EMPTY_STRING, "Breakpoints.java");
 		assertTrue("did not find compilation unit for Breakpoints.java", cu.exists());
 		LocalFileStorage expectedSource = new LocalFileStorage(cu.getResource().getLocation().toFile());
 				
@@ -64,11 +64,11 @@
 	 * Tests source lookup in a top level type.
 	 */
 	public void testTopLevelType() throws Exception {
-		IPackageFragmentRoot root = getPackageFragmentRoot(getJavaProject(), "src");
+		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		File rootFile = root.getResource().getLocation().toFile();
 		IJavaSourceLocation location = new DirectorySourceLocation(rootFile);
 		
-		ICompilationUnit cu = getCompilationUnit(getJavaProject(), "src", "org.eclipse.debug.tests.targets", "SourceLookup.java");
+		ICompilationUnit cu = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "SourceLookup.java");
 		assertTrue("did not find compilation unit for SourceLookup.java", cu.exists());
 		LocalFileStorage expectedSource = new LocalFileStorage(cu.getResource().getLocation().toFile());
 				
@@ -79,11 +79,11 @@
 	 * Tests source lookup in an inner type.
 	 */
 	public void testInnerType() throws Exception {
-		IPackageFragmentRoot root = getPackageFragmentRoot(getJavaProject(), "src");
+		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		File rootFile = root.getResource().getLocation().toFile();
 		IJavaSourceLocation location = new DirectorySourceLocation(rootFile);
 		
-		ICompilationUnit cu = getCompilationUnit(getJavaProject(), "src", "org.eclipse.debug.tests.targets", "SourceLookup.java");
+		ICompilationUnit cu = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "SourceLookup.java");
 		assertTrue("did not find compilation unit for SourceLookup.java", cu.exists());
 		LocalFileStorage expectedSource = new LocalFileStorage(cu.getResource().getLocation().toFile());
 				
@@ -94,11 +94,11 @@
 	 * Tests source lookup in an inner, inner type.
 	 */
 	public void testNestedType() throws Exception {
-		IPackageFragmentRoot root = getPackageFragmentRoot(getJavaProject(), "src");
+		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		File rootFile = root.getResource().getLocation().toFile();
 		IJavaSourceLocation location = new DirectorySourceLocation(rootFile);
 		
-		ICompilationUnit cu = getCompilationUnit(getJavaProject(), "src", "org.eclipse.debug.tests.targets", "SourceLookup.java");
+		ICompilationUnit cu = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "SourceLookup.java");
 		assertTrue("did not find compilation unit for SourceLookup.java", cu.exists());
 		LocalFileStorage expectedSource = new LocalFileStorage(cu.getResource().getLocation().toFile());
 				
@@ -109,11 +109,11 @@
 	 * Tests source lookup in a top level type, with a $ named class
 	 */
 	public void testTopLevel$Type() throws Exception {
-		IPackageFragmentRoot root = getPackageFragmentRoot(getJavaProject(), "src");
+		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		File rootFile = root.getResource().getLocation().toFile();
 		IJavaSourceLocation location = new DirectorySourceLocation(rootFile);
 		
-		ICompilationUnit cu = getCompilationUnit(getJavaProject(), "src", "org.eclipse.debug.tests.targets", "Source_$_Lookup.java");
+		ICompilationUnit cu = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "Source_$_Lookup.java");
 		assertTrue("did not find compilation unit for Source_$_Lookup.java", cu.exists());
 		LocalFileStorage expectedSource = new LocalFileStorage(cu.getResource().getLocation().toFile());
 				
@@ -124,11 +124,11 @@
 	 * Tests source lookup in an inner type in a $ named class.
 	 */
 	public void testInner$Type() throws Exception {
-		IPackageFragmentRoot root = getPackageFragmentRoot(getJavaProject(), "src");
+		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		File rootFile = root.getResource().getLocation().toFile();
 		IJavaSourceLocation location = new DirectorySourceLocation(rootFile);
 		
-		ICompilationUnit cu = getCompilationUnit(getJavaProject(), "src", "org.eclipse.debug.tests.targets", "Source_$_Lookup.java");
+		ICompilationUnit cu = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "Source_$_Lookup.java");
 		assertTrue("did not find compilation unit for Source_$_Lookup.java", cu.exists());
 		LocalFileStorage expectedSource = new LocalFileStorage(cu.getResource().getLocation().toFile());
 				
@@ -139,11 +139,11 @@
 	 * Tests source lookup in an inner type in a $ named class.
 	 */
 	public void testInnerNested$Type() throws Exception {
-		IPackageFragmentRoot root = getPackageFragmentRoot(getJavaProject(), "src");
+		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		File rootFile = root.getResource().getLocation().toFile();
 		IJavaSourceLocation location = new DirectorySourceLocation(rootFile);
 		
-		ICompilationUnit cu = getCompilationUnit(getJavaProject(), "src", "org.eclipse.debug.tests.targets", "Source_$_Lookup.java");
+		ICompilationUnit cu = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "Source_$_Lookup.java");
 		assertTrue("did not find compilation unit for Source_$_Lookup.java", cu.exists());
 		LocalFileStorage expectedSource = new LocalFileStorage(cu.getResource().getLocation().toFile());
 				
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/FolderSourceContainerTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/FolderSourceContainerTests.java
old mode 100755
new mode 100644
index de00f68..fd75698
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/FolderSourceContainerTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/FolderSourceContainerTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- *  Copyright (c) 2004, 2006 IBM Corporation and others.
+ *  Copyright (c) 2004, 2011 IBM Corporation and others.
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
@@ -36,7 +36,7 @@
 		ISourceLookupDirector director = new JavaSourceLookupDirector();
 		director.initializeParticipants();
 		director.setFindDuplicates(duplicates);
-		IFolder folder = getJavaProject().getProject().getFolder("src");
+		IFolder folder = get14Project().getProject().getFolder("src");
 		FolderSourceContainer container = new FolderSourceContainer(folder, subfolders);
 		director.setSourceContainers(new ISourceContainer[]{container});
 		return container;
@@ -121,6 +121,6 @@
 		FolderSourceContainer container = getContainer(false, false);
 		Object[] objects = container.findSourceElements(".."+File.separatorChar+".classpath");
 		assertEquals("Expected a hit", 1, objects.length);
-		assertEquals("Wrong file", getJavaProject().getProject().getFile(new Path(".classpath")), objects[0]);
+		assertEquals("Wrong file", get14Project().getProject().getFile(new Path(".classpath")), objects[0]);
 	}
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/JarSourceLookupTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/JarSourceLookupTests.java
index a5279dc..552108b 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/JarSourceLookupTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/JarSourceLookupTests.java
@@ -12,9 +12,6 @@
 
 import org.eclipse.core.internal.resources.ResourceException;
 import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.debug.core.ILaunch;
@@ -26,6 +23,7 @@
 import org.eclipse.jdt.core.IJavaProject;
 import org.eclipse.jdt.debug.core.IJavaStackFrame;
 import org.eclipse.jdt.debug.core.IJavaThread;
+import org.eclipse.jdt.debug.testplugin.JavaProjectHelper;
 import org.eclipse.jdt.debug.tests.AbstractDebugTest;
 import org.eclipse.jdt.internal.core.ClassFile;
 import org.eclipse.jdt.internal.launching.JavaSourceLookupUtil;
@@ -50,25 +48,6 @@
 	public JarSourceLookupTests() {
 		super("JarSourceLookupTests");
 	}
-
-	/**
-	 * Delete the testing projects if they exist
-	 * 
-	 * @throws Exception
-	 */
-	void deleteProjects() {
-		try {
-			IProject pro = ResourcesPlugin.getWorkspace().getRoot().getProject(fJarProject);
-	        if (pro.exists()) {
-	            pro.delete(true, true, null);
-	        }
-	        pro = ResourcesPlugin.getWorkspace().getRoot().getProject(RefPjName);
-	        if (pro.exists()) {
-	            pro.delete(true, true, null);
-	        }
-		}
-		catch(CoreException ce) {}
-	}
 	
 	/**
 	 * Disposes all source containers after a test, ensures no containers are still holding open Jar references, which can lead to {@link ResourceException}s
@@ -84,9 +63,9 @@
 	}
 	
 	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.debug.tests.AbstractDebugTest#getJavaProject()
+	 * @see org.eclipse.jdt.debug.tests.AbstractDebugTest#getProjectContext()
 	 */
-	protected IJavaProject getJavaProject() {
+	protected IJavaProject getProjectContext() {
 		return fgJarProject;
 	}
 	
@@ -96,14 +75,13 @@
 	protected void setUp() throws Exception {
 		IPath testrpath = new Path("testresources");
 		createProjectClone(fJarProject, testrpath.append(fJarProject).toString(), false);
-		fgJarProject = createJavaProjectClone(RefPjName, testrpath.append(RefPjName).toString(), "J2SE-1.4", false);
+		fgJarProject = createJavaProjectClone(RefPjName, testrpath.append(RefPjName).toString(), JavaProjectHelper.J2SE_1_4_EE_NAME, false);
 	}
 	
 	/* (non-Javadoc)
 	 * @see junit.framework.TestCase#tearDown()
 	 */
 	protected void tearDown() throws Exception {
-		deleteProjects();
 		removeAllBreakpoints();
 		super.tearDown();
 	}
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/JavaProjectSourceContainerTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/JavaProjectSourceContainerTests.java
old mode 100755
new mode 100644
index 583870e..aa63119
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/JavaProjectSourceContainerTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/JavaProjectSourceContainerTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- *  Copyright (c) 2004, 2006 IBM Corporation and others.
+ *  Copyright (c) 2004, 2011 IBM Corporation and others.
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
@@ -48,14 +48,14 @@
 	 * @throws Exception
 	 */
 	public void testSourceContainerMemento() throws Exception {
-		ISourceContainer container = getContainer(getJavaProject(), false);
+		ISourceContainer container = getContainer(get14Project(), false);
 		String memento = container.getType().getMemento(container);
 		ISourceContainer restore = container.getType().createSourceContainer(memento);
 		assertEquals("Directory source container memento failed", container, restore);
 	}	
 
 	public void testDefaultPackageLookup() throws Exception {
-		ISourceContainer container = getContainer(getJavaProject(), false);
+		ISourceContainer container = getContainer(get14Project(), false);
 		Object[] objects = container.findSourceElements("Breakpoints.java");
 		assertEquals("Expected 1 result", 1, objects.length);
 		IFile file = (IFile) objects[0];
@@ -63,7 +63,7 @@
 	}
 	
 	public void testQualifiedLookup() throws Exception {
-		ISourceContainer container = getContainer(getJavaProject(), false);
+		ISourceContainer container = getContainer(get14Project(), false);
 		Object[] objects = container.findSourceElements("org/eclipse/debug/tests/targets/CallLoop.java");
 		assertEquals("Expected 1 result", 1, objects.length);
 		IFile file = (IFile) objects[0];
@@ -71,7 +71,7 @@
 	}
 	
 	public void testNonJavaLookup() throws Exception {
-		ISourceContainer container = getContainer(getJavaProject(), false);
+		ISourceContainer container = getContainer(get14Project(), false);
 		Object[] objects = container.findSourceElements("debug/non-java.txt");
 		assertEquals("Expected 1 result", 1, objects.length);
 		IFile file = (IFile) objects[0];
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/ProjectSourceContainerTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/ProjectSourceContainerTests.java
old mode 100755
new mode 100644
index 64e8154..557580a
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/ProjectSourceContainerTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/ProjectSourceContainerTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- *  Copyright (c) 2004, 2006 IBM Corporation and others.
+ *  Copyright (c) 2004, 2011 IBM Corporation and others.
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
@@ -33,7 +33,7 @@
 		ISourceLookupDirector director = new JavaSourceLookupDirector();
 		director.initializeParticipants();
 		director.setFindDuplicates(duplicates);
-		IProject project = getJavaProject().getProject();
+		IProject project = get14Project().getProject();
 		ProjectSourceContainer container = new ProjectSourceContainer(project, referenced);		
 		director.setSourceContainers(new ISourceContainer[]{container});
 		return container;
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/SourceLocationTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/SourceLocationTests.java
old mode 100755
new mode 100644
index 2da91df..a819dd8
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/SourceLocationTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/SourceLocationTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- *  Copyright (c) 2000, 2006 IBM Corporation and others.
+ *  Copyright (c) 2000, 2011 IBM Corporation and others.
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
@@ -35,12 +35,14 @@
  */
 public class SourceLocationTests extends AbstractDebugTest {
 	
+	public static final String JRE_CONTAINER_1_4_CPE_NAME = "org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4";
+
 	public SourceLocationTests(String name) {
 		super(name);
 	}
 
 	public void testProjectLocationMemento() throws Exception {
-		IJavaSourceLocation location = new JavaProjectSourceLocation(getJavaProject());
+		IJavaSourceLocation location = new JavaProjectSourceLocation(get14Project());
 		String memento = location.getMemento();
 		IJavaSourceLocation restored = new JavaProjectSourceLocation();
 		restored.initializeFrom(memento);
@@ -66,7 +68,7 @@
 	}	
 	
 	public void testJavaSourceLocatorMemento() throws Exception {
-		IJavaSourceLocation location1 = new JavaProjectSourceLocation(getJavaProject());
+		IJavaSourceLocation location1 = new JavaProjectSourceLocation(get14Project());
 		File dir = ResourcesPlugin.getWorkspace().getRoot().getLocation().toFile();
 		IJavaSourceLocation location2 = new DirectorySourceLocation(dir);
 		IVMInstall vm = JavaRuntime.getDefaultVMInstall();
@@ -85,13 +87,13 @@
 	}
 	
 	public void testJavaUISourceLocatorMemento() throws Exception {
-		IJavaSourceLocation location1 = new JavaProjectSourceLocation(getJavaProject());
+		IJavaSourceLocation location1 = new JavaProjectSourceLocation(get14Project());
 		File dir = ResourcesPlugin.getWorkspace().getRoot().getLocation().toFile();
 		IJavaSourceLocation location2 = new DirectorySourceLocation(dir);
 		IVMInstall vm = JavaRuntime.getDefaultVMInstall();
 		IJavaSourceLocation location3 = new ArchiveSourceLocation(JavaRuntime.getLibraryLocations(vm)[0].getSystemLibraryPath().toOSString(), null);
 		
-		JavaUISourceLocator locator = new JavaUISourceLocator(getJavaProject());
+		JavaUISourceLocator locator = new JavaUISourceLocator(get14Project());
 		locator.setSourceLocations(new IJavaSourceLocation[] {location1, location2, location3});
 		locator.setFindAllSourceElement(true);
 		
@@ -108,8 +110,8 @@
 	}
 	
 	public void testPackageFragmentRootLocationMemento() throws Exception {
-		IResource res = getJavaProject().getProject().getFolder("src");
-		IPackageFragmentRoot root = getJavaProject().getPackageFragmentRoot(res);
+		IResource res = get14Project().getProject().getFolder("src");
+		IPackageFragmentRoot root = get14Project().getPackageFragmentRoot(res);
 		IJavaSourceLocation location = new PackageFragmentRootSourceLocation(root);
 		String memento = location.getMemento();
 		IJavaSourceLocation restored = new PackageFragmentRootSourceLocation();
@@ -126,8 +128,8 @@
 	}	
 		
 	public void testPositiveSourceFolderSourceLocation() throws Exception {
-		IResource res = getJavaProject().getProject().getFolder("src");
-		IPackageFragmentRoot root = getJavaProject().getPackageFragmentRoot(res);
+		IResource res = get14Project().getProject().getFolder("src");
+		IPackageFragmentRoot root = get14Project().getPackageFragmentRoot(res);
 		IJavaSourceLocation location = new PackageFragmentRootSourceLocation(root);
 		
 		Object source = location.findSourceElement("Breakpoints");
@@ -142,8 +144,8 @@
 	}
 	
 	public void testNegativeSourceFolderSourceLocation() throws Exception {
-		IResource res = getJavaProject().getProject().getFolder("src");
-		IPackageFragmentRoot root = getJavaProject().getPackageFragmentRoot(res);
+		IResource res = get14Project().getProject().getFolder("src");
+		IPackageFragmentRoot root = get14Project().getPackageFragmentRoot(res);
 		IJavaSourceLocation location = new PackageFragmentRootSourceLocation(root);
 		
 		Object source = location.findSourceElement("DoesNotExist");
@@ -154,11 +156,11 @@
 	}	
 	
 	public void testPositiveSystemLibrarySourceLocation() throws Exception {
-		IClasspathEntry[] cpes = getJavaProject().getRawClasspath();
+		IClasspathEntry[] cpes = get14Project().getRawClasspath();
 		IClasspathEntry lib = null;
 		for (int i = 0; i < cpes.length; i++) {
 			if (cpes[i].getEntryKind() == IClasspathEntry.CPE_CONTAINER) {
-				if (cpes[i].getPath().equals(new Path(JavaRuntime.JRE_CONTAINER))) {
+				if (cpes[i].getPath().equals(new Path(JRE_CONTAINER_1_4_CPE_NAME))) {
 					lib = cpes[i];
 					break;
 				}
@@ -166,7 +168,7 @@
 		}
 		assertNotNull("Could not find JRE_CONTAINER entry", lib);
 		
-		IPackageFragmentRoot[] roots = getJavaProject().findPackageFragmentRoots(lib);
+		IPackageFragmentRoot[] roots = get14Project().findPackageFragmentRoots(lib);
 		Object source = null;
 		for (int i = 0; i < roots.length; i++) {
 			IPackageFragmentRoot root = roots[i];
@@ -195,11 +197,11 @@
 	}
 	
 	public void testNegativeSystemLibrarySourceLocation() throws Exception {
-		IClasspathEntry[] cpes = getJavaProject().getRawClasspath();
+		IClasspathEntry[] cpes = get14Project().getRawClasspath();
 		IClasspathEntry lib = null;
 		for (int i = 0; i < cpes.length; i++) {
 			if (cpes[i].getEntryKind() == IClasspathEntry.CPE_CONTAINER) {
-				if (cpes[i].getPath().equals(new Path(JavaRuntime.JRE_CONTAINER))) {
+				if (cpes[i].getPath().equals(new Path(JRE_CONTAINER_1_4_CPE_NAME))) {
 					lib = cpes[i];
 					break;
 				}
@@ -207,7 +209,7 @@
 		}
 		assertNotNull("Could not find JRE_CONTAINER entry", lib);
 		
-		IPackageFragmentRoot[] roots = getJavaProject().findPackageFragmentRoots(lib);
+		IPackageFragmentRoot[] roots = get14Project().findPackageFragmentRoots(lib);
 		Object source = null;
 		for (int i = 0; i < roots.length; i++) {
 			IPackageFragmentRoot root = roots[i];
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/SourceLookupTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/SourceLookupTests.java
old mode 100755
new mode 100644
index 34f4799..a95993d
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/SourceLookupTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/sourcelookup/SourceLookupTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -38,7 +38,7 @@
 	 * See Bug 53646
 	 */
 	public void testPackageFragmentRoots() throws Exception {
-		IJavaProject javaProject = getJavaProject();
+		IJavaProject javaProject = get14Project();
 		IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots();
 		IResource resource = javaProject.getProject().getFile("src/A.jar");
 		IPackageFragmentRoot packageFragmentRoot = javaProject.getPackageFragmentRoot(resource);
@@ -72,7 +72,7 @@
 			Object source1 = sourceLocator.getSourceElement(frame);
 			source1 = ((IAdaptable)source1).getAdapter(IJavaElement.class);
 			
-			IPackageFragment[] fragments = getJavaProject().getPackageFragments();
+			IPackageFragment[] fragments = get14Project().getPackageFragments();
 			IPackageFragment fragment = null;
 			for (int i = 0; i < fragments.length; i++) {
 				if (fragments[i].getElementName().equals("org.eclipse.debug.tests.targets")) {
@@ -104,10 +104,10 @@
 	 * Tests source lookup in a top level type, in the default package.
 	 */
 	public void testDefTopLevelType() throws Exception {
-		IPackageFragmentRoot root = getPackageFragmentRoot(getJavaProject(), "src");
+		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		IJavaSourceLocation location = new PackageFragmentRootSourceLocation(root);
 		
-		ICompilationUnit expectedSource = getCompilationUnit(getJavaProject(), "src", IInternalDebugCoreConstants.EMPTY_STRING, "Breakpoints.java");
+		ICompilationUnit expectedSource = getCompilationUnit(get14Project(), "src", IInternalDebugCoreConstants.EMPTY_STRING, "Breakpoints.java");
 		assertTrue("did not find compilation unit for Breakpoints.java", expectedSource.exists());
 				
 		assertEquals("Source lookup failed", expectedSource, location.findSourceElement("Breakpoints"));
@@ -117,10 +117,10 @@
 	 * Tests source lookup in an inner type, the default package.
 	 */
 	public void testDefInnerType() throws Exception {
-		IPackageFragmentRoot root = getPackageFragmentRoot(getJavaProject(), "src");
+		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		IJavaSourceLocation location = new PackageFragmentRootSourceLocation(root);
 		
-		ICompilationUnit expectedSource = getCompilationUnit(getJavaProject(), "src", IInternalDebugCoreConstants.EMPTY_STRING, "Breakpoints.java");
+		ICompilationUnit expectedSource = getCompilationUnit(get14Project(), "src", IInternalDebugCoreConstants.EMPTY_STRING, "Breakpoints.java");
 		assertTrue("did not find compilation unit for Breakpoints.java", expectedSource.exists());
 				
 		assertEquals("Source lookup failed", expectedSource, location.findSourceElement("Breakpoints$InnerRunnable"));
@@ -133,7 +133,7 @@
 	public void testDefAnonInnerType() throws Exception {
 		String typeName = "Breakpoints";
 		createLineBreakpoint(43, typeName);
-		ICompilationUnit expectedSource = getCompilationUnit(getJavaProject(), "src", IInternalDebugCoreConstants.EMPTY_STRING, "Breakpoints.java");
+		ICompilationUnit expectedSource = getCompilationUnit(get14Project(), "src", IInternalDebugCoreConstants.EMPTY_STRING, "Breakpoints.java");
 		assertTrue("did not find compilation unit for Breakpoints.java", expectedSource.exists());
 		
 		IJavaThread thread= null;
@@ -159,7 +159,7 @@
 	public void testDefLocalType() throws Exception {
 		String typeName = "Breakpoints";
 		createLineBreakpoint(30, typeName);
-		ICompilationUnit expectedSource = getCompilationUnit(getJavaProject(), "src", IInternalDebugCoreConstants.EMPTY_STRING, "Breakpoints.java");
+		ICompilationUnit expectedSource = getCompilationUnit(get14Project(), "src", IInternalDebugCoreConstants.EMPTY_STRING, "Breakpoints.java");
 		assertTrue("did not find compilation unit for Breakpoints.java", expectedSource.exists());
 		
 		IJavaThread thread= null;
@@ -182,10 +182,10 @@
 	 * Tests source lookup in a top level type.
 	 */
 	public void testTopLevelType() throws Exception {
-		IPackageFragmentRoot root = getPackageFragmentRoot(getJavaProject(), "src");
+		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		IJavaSourceLocation location = new PackageFragmentRootSourceLocation(root);
 		
-		ICompilationUnit expectedSource = getCompilationUnit(getJavaProject(), "src", "org.eclipse.debug.tests.targets", "SourceLookup.java");
+		ICompilationUnit expectedSource = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "SourceLookup.java");
 		assertTrue("did not find compilation unit for SourceLookup.java", expectedSource.exists());
 				
 		assertEquals("Source lookup failed", expectedSource, location.findSourceElement("org.eclipse.debug.tests.targets.SourceLookup"));
@@ -195,10 +195,10 @@
 	 * Tests source lookup in an inner type.
 	 */
 	public void testInnerType() throws Exception {
-		IPackageFragmentRoot root = getPackageFragmentRoot(getJavaProject(), "src");
+		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		IJavaSourceLocation location = new PackageFragmentRootSourceLocation(root);
 		
-		ICompilationUnit expectedSource = getCompilationUnit(getJavaProject(), "src", "org.eclipse.debug.tests.targets", "SourceLookup.java");
+		ICompilationUnit expectedSource = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "SourceLookup.java");
 		assertTrue("did not find compilation unit for SourceLookup.java", expectedSource.exists());
 				
 		assertEquals("Source lookup failed", expectedSource, location.findSourceElement("org.eclipse.debug.tests.targets.SourceLookup$Inner"));
@@ -208,10 +208,10 @@
 	 * Tests source lookup in an inner inner type.
 	 */
 	public void testInnerNestedType() throws Exception {
-		IPackageFragmentRoot root = getPackageFragmentRoot(getJavaProject(), "src");
+		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		IJavaSourceLocation location = new PackageFragmentRootSourceLocation(root);
 		
-		ICompilationUnit expectedSource = getCompilationUnit(getJavaProject(), "src", "org.eclipse.debug.tests.targets", "SourceLookup.java");
+		ICompilationUnit expectedSource = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "SourceLookup.java");
 		assertTrue("did not find compilation unit for SourceLookup.java", expectedSource.exists());
 				
 		assertEquals("Source lookup failed", expectedSource, location.findSourceElement("org.eclipse.debug.tests.targets.SourceLookup$Inner$Nested"));
@@ -221,10 +221,10 @@
 	 * Tests source lookup in a top level type, with a $ named class
 	 */
 	public void testTopLevel$Type() throws Exception {
-		IPackageFragmentRoot root = getPackageFragmentRoot(getJavaProject(), "src");
+		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		IJavaSourceLocation location = new PackageFragmentRootSourceLocation(root);
 		
-		ICompilationUnit expectedSource = getCompilationUnit(getJavaProject(), "src", "org.eclipse.debug.tests.targets", "Source_$_Lookup.java");
+		ICompilationUnit expectedSource = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "Source_$_Lookup.java");
 		assertTrue("did not find compilation unit for Source_$_Lookup.java", expectedSource.exists());
 				
 		assertEquals("Source lookup failed", expectedSource, location.findSourceElement("org.eclipse.debug.tests.targets.Source_$_Lookup"));
@@ -234,10 +234,10 @@
 	 * Tests source lookup in an inner type in a $ named class.
 	 */
 	public void testInner$Type() throws Exception {
-		IPackageFragmentRoot root = getPackageFragmentRoot(getJavaProject(), "src");
+		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		IJavaSourceLocation location = new PackageFragmentRootSourceLocation(root);
 		
-		ICompilationUnit expectedSource = getCompilationUnit(getJavaProject(), "src", "org.eclipse.debug.tests.targets", "Source_$_Lookup.java");
+		ICompilationUnit expectedSource = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "Source_$_Lookup.java");
 		assertTrue("did not find compilation unit for Source_$_Lookup.java", expectedSource.exists());
 				
 		assertEquals("Source lookup failed", expectedSource, location.findSourceElement("org.eclipse.debug.tests.targets.Source_$_Lookup$Inner"));
@@ -247,10 +247,10 @@
 	 * Tests source lookup in an inner inner type in a $ named class.
 	 */
 	public void testInnerNested$Type() throws Exception {
-		IPackageFragmentRoot root = getPackageFragmentRoot(getJavaProject(), "src");
+		IPackageFragmentRoot root = getPackageFragmentRoot(get14Project(), "src");
 		IJavaSourceLocation location = new PackageFragmentRootSourceLocation(root);
 		
-		ICompilationUnit expectedSource = getCompilationUnit(getJavaProject(), "src", "org.eclipse.debug.tests.targets", "Source_$_Lookup.java");
+		ICompilationUnit expectedSource = getCompilationUnit(get14Project(), "src", "org.eclipse.debug.tests.targets", "Source_$_Lookup.java");
 		assertTrue("did not find compilation unit for Source_$_Lookup.java", expectedSource.exists());
 				
 		assertEquals("Source lookup failed", expectedSource, location.findSourceElement("org.eclipse.debug.tests.targets.Source_$_Lookup$Inner$Nested"));
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/TestAnonymousInspect.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/TestAnonymousInspect.java
index 95caa4b..9519e60 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/TestAnonymousInspect.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/TestAnonymousInspect.java
@@ -54,7 +54,7 @@
 	 */
 	protected void setUp() throws Exception {
 		super.setUp();
-		createLaunchConfiguration(getJavaProject(), TYPE_NAME);
+		createLaunchConfiguration(get14Project(), TYPE_NAME);
 	}
 	
 	/**
@@ -66,7 +66,7 @@
 	IValue doEval(IJavaThread thread) throws Exception{
 		IJavaStackFrame frame = (IJavaStackFrame) thread.getTopStackFrame();
 		assertNotNull("There should be a stackframe", frame);
-		ASTEvaluationEngine engine = new ASTEvaluationEngine(getJavaProject(), (IJavaDebugTarget) thread.getDebugTarget());
+		ASTEvaluationEngine engine = new ASTEvaluationEngine(get14Project(), (IJavaDebugTarget) thread.getDebugTarget());
 		try {
 			engine.evaluate(SNIPPET, frame, listener, DebugEvent.EVALUATION_IMPLICIT, false);
 			long timeout = System.currentTimeMillis()+5000;
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/TestIntegerAccessUnboxing15.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/TestIntegerAccessUnboxing15.java
index a72f33a..cd26f26 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/TestIntegerAccessUnboxing15.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/TestIntegerAccessUnboxing15.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2010 IBM Corporation and others.
+ * Copyright (c) 2010, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -12,6 +12,7 @@
 
 import org.eclipse.debug.core.DebugEvent;
 import org.eclipse.debug.core.model.IBreakpoint;
+import org.eclipse.jdt.core.IJavaProject;
 import org.eclipse.jdt.debug.core.IJavaDebugTarget;
 import org.eclipse.jdt.debug.core.IJavaStackFrame;
 import org.eclipse.jdt.debug.core.IJavaThread;
@@ -20,6 +21,7 @@
 import org.eclipse.jdt.debug.eval.IEvaluationListener;
 import org.eclipse.jdt.debug.eval.IEvaluationResult;
 import org.eclipse.jdt.debug.tests.AbstractDebugTest;
+import org.eclipse.jdt.debug.tests.TestAgainException;
 
 /**
  * Tests that arrays can be accessed with *big* Integers
@@ -51,7 +53,9 @@
 					lock.wait(DEFAULT_TIMEOUT);
 				}
 			}
-			assertNotNull("Evaluation did not complete", result);
+			if(result == null) {
+				throw new TestAgainException("Retest - evaluation did not complete");
+			}
 			return result;
 		}
 		
@@ -86,6 +90,13 @@
 		}
 	}	
 	
+	/* (non-Javadoc)
+	 * @see org.eclipse.jdt.debug.tests.AbstractDebugTest#getProjectContext()
+	 */
+	protected IJavaProject getProjectContext() {
+		return get15Project();
+	}
+	
 	/**
 	 * Test a row can be accessed
 	 *