Bug 532176 - [10] NPE during reconcile
- make lazy initialization thread-safe
Change-Id: Icead28151b4fa31712af58f8392a58bcea37de8b
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/classfmt/AnnotationInfo.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/classfmt/AnnotationInfo.java
index bcb72c7..12119eb 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/classfmt/AnnotationInfo.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/classfmt/AnnotationInfo.java
@@ -189,7 +189,7 @@
@Override
public IBinaryElementValuePair[] getElementValuePairs() {
if (this.pairs == null)
- initialize();
+ lazyInitialize();
return this.pairs;
}
@Override
@@ -204,6 +204,10 @@
if (this.pairs == null)
decodeAnnotation();
}
+synchronized void lazyInitialize() {
+ if (this.pairs == null)
+ decodeAnnotation();
+}
private int readRetentionPolicy(int offset) {
int currentOffset = offset;
int tag = u1At(currentOffset);