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

Reply via email to