Bug 220654 - EEVMPage creates VM from EE file 3 times after selecting
file
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/EEVMPage.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/EEVMPage.java
index 1e70b1a..d1fecfe 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/EEVMPage.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/EEVMPage.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2007, 2012 IBM Corporation and others.
+ * Copyright (c) 2007, 2013 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
@@ -134,7 +134,10 @@
fEEFile.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
if (!fIgnoreCallbacks) {
- if (validateDefinitionFile().isOK()) {
+ if(fVM == null) {
+ reloadDefinitionFile();
+ }
+ else if(validateDefinitionFile().isOK()) {
reloadDefinitionFile();
}
}
@@ -190,20 +193,13 @@
s = new StatusInfo(IStatus.ERROR, JREMessages.EEVMPage_5);
} else {
final IStatus[] temp = new IStatus[1];
- final VMStandin[] vm = new VMStandin[1];
- final File tempFile = file;
Runnable r = new Runnable() {
public void run() {
- try {
- vm[0] = JavaRuntime.createVMFromDefinitionFile(tempFile, fVM.getName(), fVM.getId());
- IStatus status = vm[0].getVMInstallType().validateInstallLocation(vm[0].getInstallLocation());
- if (status.getSeverity() != IStatus.ERROR) {
- temp[0] = Status.OK_STATUS;
- } else {
- temp[0] = status;
- }
- } catch (CoreException e) {
- temp[0] = e.getStatus();
+ IStatus status = fVM.getVMInstallType().validateInstallLocation(fVM.getInstallLocation());
+ if (status.getSeverity() != IStatus.ERROR) {
+ temp[0] = Status.OK_STATUS;
+ } else {
+ temp[0] = status;
}
}
};
@@ -388,6 +384,4 @@
protected IStatus[] getVMStatus() {
return fFieldStatus;
}
-
-
}