Bug 209833 - Problems with compiler preferences when starting with 7.0
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/ExecutionEnvironmentAnalyzer.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/ExecutionEnvironmentAnalyzer.java
index fad0361..9dd3fdc 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/ExecutionEnvironmentAnalyzer.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/ExecutionEnvironmentAnalyzer.java
@@ -72,6 +72,7 @@
 		IVMInstall2 vm2 = (IVMInstall2) vm;
 		
 		List types = null;
+		boolean strictMatch = true;
 		String javaVersion = vm2.getJavaVersion();
 		if (javaVersion == null) {
 			// We have a contributed VM type. Check to see if its a foundation VM, if we can.
@@ -80,7 +81,10 @@
 			else if ((vm instanceof IVMInstall3) && isFoundation1_1((IVMInstall3) vm)) 
 				types = getTypes(CDC_FOUNDATION_1_1);
 		} else {
-			if (javaVersion.startsWith("1.6")) //$NON-NLS-1$
+			if (javaVersion.startsWith("1.7")) {//$NON-NLS-1$
+				types = getTypes(JavaSE_1_6);
+				strictMatch = false;
+			} else if (javaVersion.startsWith("1.6")) //$NON-NLS-1$
 				types = getTypes(JavaSE_1_6);
 			else if (javaVersion.startsWith("1.5")) //$NON-NLS-1$
 				types = getTypes(J2SE_1_5);
@@ -103,7 +107,7 @@
 
 		if (types != null) {
 			for (int i=0; i < types.size(); i++)
-				addEnvironment(result, (String) types.get(i), i ==0);
+				addEnvironment(result, (String) types.get(i), strictMatch && i ==0);
 		}
 		return (CompatibleEnvironment[])result.toArray(new CompatibleEnvironment[result.size()]);
 	}
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaRuntime.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaRuntime.java
index 738987e..4f559df 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaRuntime.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaRuntime.java
@@ -2623,7 +2623,8 @@
             	} else if (javaVersion.startsWith(JavaCore.VERSION_1_6)) {
             		compliance = JavaCore.VERSION_1_6;
             	} else if (javaVersion.startsWith(JavaCore.VERSION_1_7)) {
-            		compliance = JavaCore.VERSION_1_7;
+            		// set compliance to 1.6 when 1.7 is detected - @see bug 209833
+            		compliance = JavaCore.VERSION_1_6;
             	}
             	if (compliance != null) {
 	                Hashtable defaultOptions = JavaCore.getDefaultOptions();