[ 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]