245203 Lots of memory used by DocumentProvider utility
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/util/DocumentProvider.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/util/DocumentProvider.java
index 3607088..2c9c28c 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/util/DocumentProvider.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/util/DocumentProvider.java
@@ -18,8 +18,6 @@
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
-import java.lang.ref.Reference;
-import java.lang.ref.SoftReference;
import java.net.URL;
import java.net.URLConnection;
@@ -141,20 +139,13 @@
return document;
}
- ThreadLocal fDocumentBuilder = new ThreadLocal();
+ DocumentBuilder fDocumentBuilder = null;
private DocumentBuilder getDocumentBuilder() {
- DocumentBuilder db = null;
-
- Reference builderReference = (Reference) fDocumentBuilder.get();
- if (builderReference != null) {
- db = (DocumentBuilder) builderReference.get();
+ if (fDocumentBuilder == null) {
+ fDocumentBuilder = CommonXML.getDocumentBuilder(isValidating());
}
- if (db == null) {
- db = CommonXML.getDocumentBuilder(isValidating());
- fDocumentBuilder.set(new SoftReference(db));
- }
- return db;
+ return fDocumentBuilder;
}
private DOMImplementation getDomImplementation() {