posted 14 years ago
After encountering a memory leak I stripped down my code to the following minimal fragment that reproduces the problem:
The file "import2.xml" has a size of approximately 15Mb. When running this code, the following output (and stack trace) is written:
Using a heap dump analyzer, I found out that some char[] internal to that weblogic parser was filled with the contents of the whole file. There are 2 strange things in this situation:
1. Why is the javax.xml.stream.XMLEventReader instance using the weblogic.xml.stax.* package internally? Is this configured somewhere? Even stranger, I couldn't find any of the weblogic.xml.stax.* classes on my classpath.
2. Why is the whole file loaded in memory while the code iterates through it event by event? Do I need to configure anything to reduce some internal buffer size, and hence the overall memory footprint?
Many thanks,
Jonatan