[Fwd: Re: [jdom-interest] OutOfMemoryError]
Paul Hunnisett
Paul.Hunnisett at uwe.ac.uk
Wed May 10 00:47:40 PDT 2006
Yes, I do...
(You probably want to post this to the list...)
At 2006-05-09 18:01, Paul Hunnisett wrote:
>Content-Transfer-Encoding: 8bit
>
>OK, I've managed to get a memory profiler running on my code.
>
>The first thing I discovered was that in this portlet the
>javax.xml.transform.Transformer which was being allocated huge
>amounts of memory. The same object in other portlets was getting
>much more sensible levels of memory.
>
>I then changed the code so that the xml that was passed into the
>transformer was a String. The portlet was still making a web
>service call and was still converting the result to a JDOM.
>
>Same result.
>
>I then changed the code so that the transform got a string and no
>web service call was made - so at no point did I have a dom in
>memory: standard or JDOM. The transformer now has much more
>sensible levels of memory.
>
>I don;t understand why the transformer should be in anyway affected
>by whether there is a dom in memory, but it seems to be.
>
>Is anyone able to shed any light on what my next move should be?
>
>Cheers
>
>Paul Hunnisett
>
>Mattias Jiderhamn wrote:
>>I assume you are talking about JUnit tests. You could execute the
>>tests "manually" in a loop. Look at the TestRunner classes in JUnit.
>>(Though I suppose you could also just do what you do inside the
>>test in a loop, unless it depends on dependency injection or something)
>>At 2006-05-09 12:37, Paul Hunnisett wrote:
>>>Content-Transfer-Encoding: 8bit
>>>
>>>Possibly. I have unit tests that test the calls to the web service.
>>>If you know a way of making unit tests run over and over in the
>>>same VM then I can do that. It seems likely to me that the
>>>problem is either during the service call or the XSL transform -
>>>since that's pretty much all I'm doing. If I can get my unit tests
>>>to loop over then I can maybe some kind of idea if it's happening
>>>there or the transform...
>>>
>>>Cheers
>>>
>>>Paul
>>>
>>>Mattias Jiderhamn wrote:
>>>>Can you reproduce the problem outside the container, in a
>>>>standalone application?
>>>>At 2006-05-08 16:23, Paul Hunnisett wrote:
>>>>>Content-Transfer-Encoding: 8bit
>>>>>
>>>>>How do I determine whether it's heap or permgen? All I get is:
>>>>>java.lang.OutOfMemoryError
>>>>>
>>>>>I doubt it's an issue with redeploying in tomcat as this is
>>>>>something we've done several times a day for the last year and
>>>>>it's not like I'm redeploying this often now as the application
>>>>>is complete - the only outstanding issue is this memory one...
>>>>>
>>>>>It does seem to be a cumulative problem. I can make about 4 or
>>>>>5 soap calls before it falls over...
>>>>>
>>>>>Cheers
>>>>>
>>>>>Paul
>>>>>
>>>>>Mattias Jiderhamn wrote:
>>>>>>At 2006-05-08 15:39, Paul Hunnisett wrote:
>>>>>>>I work on a university portal where our channels are developed
>>>>>>>as portlets.
>>>>>>>
>>>>>>>I recently started a new portlet which would act as a client
>>>>>>>to a Web service. The WS returned a DOM which would then be
>>>>>>>passed to an XSL transform. I decided that this was a good
>>>>>>>opportunity to test JDOM in anger and convert the returned DOM
>>>>>>>in to JDOM before anything else happens to it.
>>>>>>>
>>>>>>>The problem is that after only a little interaction with the
>>>>>>>portlet I get an OutOfMemoryError that brings down the whole
>>>>>>>portal. I'm confident that it's JDOM that causes this as we
>>>>>>>have several other channels which do the same thing with
>>>>>>>standard DOM and cause no such problems.
>>>>>>>
>>>>>>>All of the returned documents are small.
>>>>>>>
>>>>>>>My initial impression of JDOM is very good, but unless we can
>>>>>>>fix this then it's not going to be an option for us.
>>>>>>>
>>>>>>>I've already tried increasing the VM memory allocation abd
>>>>>>>still get the same problem - as well as grinding my workstation to a crawl!
>>>>>>Are you ouf of heap or PermGen?
>>>>>>What application server are you using? Tomcat has a well known
>>>>>>leak of PermGen space when an application is redeployed over
>>>>>>and over, which would be the case during development.
>>>>>>
>>>>>>This incoming email to UWE has been independently scanned for
>>>>>>viruses and any virus detected has been removed using McAfee
>>>>>>anti-virus software
>>>>>
>>>>>
>>>>>This email has been independently scanned for viruses and any
>>>>>virus software has been removed using McAfee anti-virus software
>>>>
>>>>This incoming email to UWE has been independently scanned for
>>>>viruses and any virus detected has been removed using McAfee
>>>>anti-virus software
>>>
>>>
>>>This email has been independently scanned for viruses and any
>>>virus software has been removed using McAfee anti-virus software
>>
>>This incoming email to UWE has been independently scanned for
>>viruses and any virus detected has been removed using McAfee
>>anti-virus software
>
>
>This email has been independently scanned for viruses and any virus
>software has been removed using McAfee anti-virus software
This incoming email to UWE has been independently scanned for viruses
and any virus detected has been removed using McAfee anti-virus software
This email has been independently scanned for viruses and any virus software has been removed using McAfee anti-virus software
More information about the jdom-interest
mailing list