*** empty log message ***
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/Buffer.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/Buffer.java
index 062a037..8e6d15e 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/Buffer.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/Buffer.java
@@ -32,14 +32,14 @@
protected char[] contents;
protected ArrayList changeListeners;
protected IOpenable owner;
- protected int gapStart= -1;
- protected int gapEnd= -1;
+ protected int gapStart = -1;
+ protected int gapEnd = -1;
- protected Object lock= new Object();
+ protected Object lock = new Object();
- protected static final int F_HAS_UNSAVED_CHANGES= 1;
- protected static final int F_IS_READ_ONLY= 2;
- protected static final int F_IS_CLOSED= 4;
+ protected static final int F_HAS_UNSAVED_CHANGES = 1;
+ protected static final int F_IS_READ_ONLY = 2;
+ protected static final int F_IS_CLOSED = 4;
/**
* Creates a new buffer on an underlying resource.
@@ -359,8 +359,10 @@
// allow special case for first initialization
// after creation by buffer factory
if (this.contents == null) {
- this.contents = newContents;
- this.flags &= ~ (F_HAS_UNSAVED_CHANGES);
+ synchronized (this.lock) {
+ this.contents = newContents;
+ this.flags &= ~ (F_HAS_UNSAVED_CHANGES);
+ }
return;
}