Bug 540555 - Compatibility error in launch configuration with 4.9 using
Java 12

Change-Id: I5f4a6f8b5c178b82aa4f7360bb828b9ace950578
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaJRETab.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaJRETab.java
index 7b9d0de..d875135 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaJRETab.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaJRETab.java
@@ -15,6 +15,7 @@
 package org.eclipse.jdt.debug.ui.launchConfigurations;
 
 
+import java.util.List;
 import java.util.Map;
 
 import org.eclipse.core.resources.IProject;
@@ -332,13 +333,18 @@
 				if(vmver != null) {
 					int val = JavaCore.compareJavaVersions(compliance, vmver);
 					if(val > 0) {
-						String setting = null;
-						if (environmentId == null) {
-							setting = LauncherMessages.JavaJRETab_2;
-						} else {
-							setting = LauncherMessages.JavaJRETab_1;
+						List<String> allVersions = JavaCore.getAllVersions();
+						String latest = allVersions.get(allVersions.size() - 1);
+						if (JavaCore.compareJavaVersions(vmver, latest) <= 0) {
+							String setting = null;
+							if (environmentId == null) {
+								setting = LauncherMessages.JavaJRETab_2;
+							} else {
+								setting = LauncherMessages.JavaJRETab_1;
+							}
+							return new Status(IStatus.ERROR, IJavaDebugUIConstants.PLUGIN_ID, IStatus.ERROR, NLS.bind(LauncherMessages.JavaJRETab_0, new String[] {
+									setting, source, compliance }), null);
 						}
-						return new Status(IStatus.ERROR, IJavaDebugUIConstants.PLUGIN_ID, IStatus.ERROR, NLS.bind(LauncherMessages.JavaJRETab_0, new String[] {setting, source, compliance}), null);
 					}
 				}
 			}