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.