mrglavas 2005/01/10 19:47:32 Modified: java/src/org/apache/xerces/xinclude XIncludeHandler.java Log: Fixing potential memory leaks. If there's a failure the language stacks never get reset. Making sure this always happens on reset. Changing Vectors for notations and unparsed entities to ArrayLists and reusing them. Revision Changes Path 1.39 +10 -8 xml-xerces/java/src/org/apache/xerces/xinclude/XIncludeHandler.java Index: XIncludeHandler.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/xinclude/XIncludeHandler.java,v retrieving revision 1.38 retrieving revision 1.39 diff -u -r1.38 -r1.39 --- XIncludeHandler.java 1 Oct 2004 03:06:13 -0000 1.38 +++ XIncludeHandler.java 11 Jan 2005 03:47:32 -0000 1.39 @@ -17,10 +17,10 @@ import java.io.CharConversionException; import java.io.IOException; +import java.util.ArrayList; import java.util.Enumeration; import java.util.Stack; import java.util.StringTokenizer; -import java.util.Vector; import org.apache.xerces.impl.Constants; import org.apache.xerces.impl.XMLEntityManager; @@ -300,8 +300,8 @@ private int[] fState = new int[INITIAL_SIZE]; // buffering the necessary DTD events - private Vector fNotations; - private Vector fUnparsedEntities; + private ArrayList fNotations; + private ArrayList fUnparsedEntities; // for SAX compatibility. // Has the value of the ALLOW_UE_AND_NOTATION_EVENTS feature @@ -324,8 +324,8 @@ fSawFallback[fDepth] = false; fSawInclude[fDepth] = false; fState[fDepth] = STATE_NORMAL_PROCESSING; - fNotations = new Vector(); - fUnparsedEntities = new Vector(); + fNotations = new ArrayList(); + fUnparsedEntities = new ArrayList(); fBaseURIScope = new IntStack(); fBaseURI = new Stack(); @@ -345,8 +345,8 @@ fNamespaceContext = null; fDepth = 0; fResultDepth = 0; - fNotations = new Vector(); - fUnparsedEntities = new Vector(); + fNotations.clear(); + fUnparsedEntities.clear(); fParentRelativeURI = null; fIsXML11 = false; fInDTD = false; @@ -356,6 +356,8 @@ fBaseURI.clear(); fLiteralSystemID.clear(); fExpandedSystemID.clear(); + fLanguageScope.clear(); + fLanguageStack.clear(); // REVISIT: Find a better method for maintaining // the state of the XInclude processor. These arrays
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]