[EMAIL PROTECTED] wrote:

> Hi Jeremy,
>
> Just FYI, the best way to submit patches is as follows:
>
> - Run a cvs diff on each file you've changed;
> - then submit each file *as an attachment* in a message to the list,
> clearly indicating just what's being corrected.

I attach a patch file for Glenn's modification to my fix.

This fixes a memory leak, in that after parsing any StringReader s waiting to
be recycled in StringReader.fgFreeReaders should not refer to other objects,
such as the XMLParser.

Jeremy



Index: org/apache/xerces/readers/StringReader.java
===================================================================
RCS file: 
/home/cvspublic/xml-xerces/java/src/org/apache/xerces/readers/StringReader.java,v
retrieving revision 1.10
diff -u -r1.10 StringReader.java
--- org/apache/xerces/readers/StringReader.java 2000/10/26 17:59:09     1.10
+++ org/apache/xerces/readers/StringReader.java 2001/08/08 10:34:10
@@ -218,6 +218,9 @@
         synchronized (StringReader.class) {
             fNextFreeReader = fgFreeReaders;
             fgFreeReaders = this;
+            // Allow these following two fields to be GC-ed.
+            fStringPool = null;
+            fData = null;
         }
         return nextReader;
     }
Index: org/apache/xerces/readers/XMLEntityReader.java
===================================================================
RCS file: 
/home/cvspublic/xml-xerces/java/src/org/apache/xerces/readers/XMLEntityReader.java,v
retrieving revision 1.2
diff -u -r1.2 XMLEntityReader.java
--- org/apache/xerces/readers/XMLEntityReader.java      2000/04/04 21:14:25     1.2
+++ org/apache/xerces/readers/XMLEntityReader.java      2001/08/08 10:34:11
@@ -167,6 +167,10 @@
         if (fStillActive) {
             nextReader = fEntityHandler.changeReaders();
             fStillActive = false;
+           // Allow these following three fields to be GC-ed.
+            fEntityHandler = null;
+            fErrorReporter = null;
+            fCharDataHandler = null;
         }
         return nextReader;
     }

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to