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