jdi version detection
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/JDIDebugPlugin.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/JDIDebugPlugin.java
index a40a6b9..4ac4ba2 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/JDIDebugPlugin.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/JDIDebugPlugin.java
Binary files differ
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIDebugTarget.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIDebugTarget.java
index 33f2e17..8bbf3f0 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIDebugTarget.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIDebugTarget.java
@@ -534,7 +534,7 @@
 	 * @see IJavaDebugTarget#supportsInstanceBreakpoints()
 	 */
 	public boolean supportsInstanceBreakpoints() {
-		if (isAvailable() && JDIDebugPlugin.getJDIVersion() >= (float)1.4) {
+		if (isAvailable() && JDIDebugPlugin.isJdiVersionGreaterThanOrEqual(new int[] {1,4})) {
 			return getVM().canUseInstanceFilters();
 		}
 		return false;
@@ -563,7 +563,7 @@
 	 * @return whether this debug target supports JDK hot code replace
 	 */
 	public boolean supportsJDKHotCodeReplace() {
-		if (isAvailable() && JDIDebugPlugin.getJDIVersion() >= (float)1.4) {
+		if (isAvailable() && JDIDebugPlugin.isJdiVersionGreaterThanOrEqual(new int[] {1,4})) {
 			return getVM().canRedefineClasses();
 		}
 		return false;
@@ -575,7 +575,7 @@
 	 * @return whether this debug target supports popping stack frames.
 	 */
 	public boolean canPopFrames() {
-		if (isAvailable() && JDIDebugPlugin.getJDIVersion() >= (float)1.4) {
+		if (isAvailable() && JDIDebugPlugin.isJdiVersionGreaterThanOrEqual(new int[] {1,4})) {
 			return getVM().canPopFrames();
 		}
 		return false;
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIStackFrame.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIStackFrame.java
index fc8e656..b9d866b 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIStackFrame.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIStackFrame.java
@@ -852,7 +852,7 @@
 	 * @see IJavaStackFrame#isObsolete()
 	 */
 	public boolean isObsolete() throws DebugException {
-		if (JDIDebugPlugin.getJDIVersion() < (float)1.4 || !((JDIDebugTarget)getDebugTarget()).hasHCROccurred()) {
+		if (!JDIDebugPlugin.isJdiVersionGreaterThanOrEqual(new int[] {1,4}) || !((JDIDebugTarget)getDebugTarget()).hasHCROccurred()) {
 			// If no hot code replace has occurred, this frame
 			// cannot be obsolete.
 			return false;