Code cleanup.
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ProtoDescriptorProvider.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ProtoDescriptorProvider.java index e394477..f1d8ca5 100644 --- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ProtoDescriptorProvider.java +++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ProtoDescriptorProvider.java
@@ -34,11 +34,17 @@ private ProtoDescriptor descriptor; - public synchronized ProtoDescriptor get() { - IProtoDescriptorSource actualSource = sourceFromPlugin(); - if (actualSource == null) actualSource = source; - if (descriptor == null) descriptor = new ProtoDescriptor(parser, actualSource, nodes); - return descriptor; + private final Object lock = new Object(); + + public ProtoDescriptor get() { + synchronized (lock) { + if (descriptor == null) { + IProtoDescriptorSource actualSource = sourceFromPlugin(); + if (actualSource == null) actualSource = source; + descriptor = new ProtoDescriptor(parser, actualSource, nodes); + } + return descriptor; + } } private IProtoDescriptorSource sourceFromPlugin() {