[ http://issues.apache.org/jira/browse/XALANJ-2117?page=all ]
Brian Minchau updated XALANJ-2117: ---------------------------------- Fix Version: 2.7 (was: CurrentCVS) > OutOfMemoryError in a few seconds due to the thread local cache of SAXParser > instances > -------------------------------------------------------------------------------------- > > Key: XALANJ-2117 > URL: http://issues.apache.org/jira/browse/XALANJ-2117 > Project: XalanJ2 > Type: Bug > Components: Xalan > Versions: 2.6 > Environment: generic > Reporter: Carlo Marchiori > Fix For: 2.7 > Attachments: XMLReaderManager.java, XMLReaderManager.java, src.zip > > This simple program causes an OutOfMemoryError in a few seconds due to the > thread local cache of SAXParser instances (see XmlReaderManager class). > The problem is particularly annoying when threads are often created (because > the server is under heavy load, because application exceptions kill existing > threads, because applications create short live threads in which to perform > transformations, because...) > --------------------------------------------------------------------- > import javax.xml.transform.Source; > import javax.xml.transform.Transformer; > import javax.xml.transform.TransformerFactory; > import javax.xml.transform.TransformerFactoryConfigurationError; > import javax.xml.transform.stream.StreamResult; > import javax.xml.transform.stream.StreamSource; > public class Prova > { > > public static void main (String[] args) throws Exception, > TransformerFactoryConfigurationError > { > final TransformerFactory newInstance = > TransformerFactory.newInstance(); > final Object monitor = new Object (); > > for (;;) > { > synchronized (monitor) > { > new Thread () > { > public void run () > { > try > { > synchronized (monitor) > { > Source xsl = new StreamSource > ("prova.xsl"); > Transformer transformer = > newInstance.newTransformer(xsl); > Source xml = new StreamSource > ("prova.xml"); > transformer.transform(xml, new > StreamResult ("ouput.xml")); > monitor.notify(); > } > } > catch (Exception e) > { > e.printStackTrace(); > System.exit(1); > } > } > }.start(); > monitor.wait(); > Thread.yield(); > } > > } > } > } > --------------------------------------------------------------------- -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]