Bug 562755 - MethodInfo.maybeRegister() needs synchronization
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/classfmt/MethodInfo.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/classfmt/MethodInfo.java
index aad385d..ea581ec 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/classfmt/MethodInfo.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/classfmt/MethodInfo.java
@@ -221,8 +221,10 @@
 	// (Note(SH): TeamMethodGenerator depends on any team method containing valid bytecodes and offsets,
     //            given the ClassFileReader.initialize() nulls "reference")
     if (!needByteCode) {
-    	initialize(); // ensure this info can be queried without lookup in reference
-		reset();
+    	synchronized (this) { // don't interfer with concurrent initializations
+	    	initialize(); // ensure this info can be queried without lookup in reference
+			reset();
+    	}
 	}
 
     // evaluate method attributes.