Bug 506865 - Race condition in AbstractVMInstallType.createVMInstall

Change-Id: If7040c791b27ec0921cd1a7b96120f04b9358535
Signed-off-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractVMInstallType.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractVMInstallType.java
index d475501..aba3884 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractVMInstallType.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractVMInstallType.java
@@ -98,16 +98,13 @@
 	 * @see IVMType#createVM(String)
 	 */
 	@Override
-	public IVMInstall createVMInstall(String id) throws IllegalArgumentException {
+	public synchronized IVMInstall createVMInstall(String id) throws IllegalArgumentException {
 		if (findVMInstall(id) != null) {
 			String format= LaunchingMessages.vmInstallType_duplicateVM; 
 			throw new IllegalArgumentException(NLS.bind(format, new String[] { id }));
 		}
-		IVMInstall vm = null;
-		synchronized (this) {
-			vm = doCreateVMInstall(id);
-			fVMs.add(vm);
-		}
+		IVMInstall vm = doCreateVMInstall(id);
+		fVMs.add(vm);
 		return vm;
 	}