By this do you mean that objects are being collected now? I recently committedUnfortunately by watching the CleanerThread I know that this does not solve the problem.Spasojevic, Daniel wrote:
Patch seemed to work just fine.
a modified version of this patch to CVS (once I had ensured that the other soft reference
code was still working the same as always) - in that version the cleaner thread was
cleaning up the event handlers associated with the DOM nodes - this can only happen
if the DOM nodes are collected so I believe that this memory leak is solved. Is this
what you see?
Thanks, this was helpful (in the mean time I actually tracked down similar informationCan you use JProfiler to figure out who owns the arrays and the HashTable that references it?Ok, here are the incoming references for the four arrays and the HashTable
entry.
The format is:
using the hprof option of the Sun JVM - BTW I wish I had waited it's pretty painful
to use the dump directly). The problem as it turns out was the Font! We build
AttributedStrings for rendering one of the things we put in the AttributedString is
the Element that 'produced' the given character with the key: TEXT_COMPOUND_DELIMITER. This is in fact needed for a bunch of
layout and event things. What was causing part of the problem however is that
when we build the Font we pass those attributes to the font so it knows the
proper size, family, etc. The problem is that it holds onto those attriubutes. That
it's self wouldn't be a problem but we 'cache' fonts. This would only hold onto
the first element that used a font but was part of the reason I didn't think things
were getting cleaned at all. I now clean the TEXT_COMPOUND_DELIMTER
before constructing the Font. I'm considering making the TEXT_COMPOUND_DELIMTER use a soft reference
so that it never causes the DOM to be held after construction unless something like
'dynamic' support is already forcing it to be held. But this sort of change would
require a deep analysis of every use of the attribute to ensure we don't need this
information for anything after build.
element of object[] AttributedString.addAttributeRunData() AttributedString.addAttributeImpl() AttributedString.addAttribute() SVGTextElementBridge.addPaintAttributes() SVGTextElementBridge.computeLayoutedText() SVGTextElementBridge.handleCSSEngineEvent() [...]
****************************************************************
value of HashTable$Entry Font() AWTGVTFont() AWTFontFamily.deriveFont() StrokingTextPainter.createModifiedACIForFontMatching() StrokingTextPainter.getTextRuns() StrokingTextPainter.getBounds2D()
[...]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
