> Unfortunately by watching the CleanerThread I know that this does not 
> solve the problem.
> Can you use JProfiler to figure out who owns the arrays and the 
> HashTable that
> references it?  I suspect there may be something in the DOM which keeps 
> any nodes from
> being GC'ed.

Patch seemed to work just fine.

Ok, here are the incoming references for the four arrays and the HashTable
entry.
The format is: untabbed entries are the incoming references to the object
(e.g. elementData of java.util.Vector references the first element of
object[]) and the tabbed entries show the allocation trace for that
reference. Tabbed entries with a '->' indicate the line of code in the
example program that caused the allocation.

I hope that this infomation is of some use to you.

element of object[]
        AttributedString.addAttributeRunData()
        AttributedString.addAttributeImpl()
        AttributedString.addAttribute()
        SVGTextElementBridge.addPaintAttributes()
        SVGTextElementBridge.computeLayoutedText()
        SVGTextElementBridge.handleCSSEngineEvent()
        BridgeContext$CSSPropertiesChangedListener.propertiesChanged()
        CSSEngine.firePropertiesChangedEvent()
        CSSEngine.invalidateProperties()
        CSSEngine$DOMSubtreeModifiedListener.handleEvent()
        EventSupport.fireEventListeners()
        EventSupport.dispatchEvent()
        AbstractNode.dispatchEvent()
        AbstractParentNode.fireDOMSubtreeModifiedEvent()
        AbstractParentNode.removeChild()
        SVGApplication$8.run() ->
"topLevelElt.removeChild(children.item(0));"
        RunnableQueue.run()
elementData of java.util.Vector
        AttributedString()
        SVGTextElementBridge$AttributedStringBuffer.toAttributedString()
        SVTTextElementBridge.buildAttributedString()
        SVGTextElementBridge.computeLayoutedText()
        SVGTextElementBridge.handleCSSEngineEvent()
        BridgeContext$CSSPropertiesChangedListener.propertiesChanged()
        CSSEngine.firePropertiesChangedEvent()
        CSSEngine.invalidateProperties()
        CSSEngine$DOMSubtreeModifiedListener.handleEvent()
        EventSupport.fireEventListeners()
        EventSupport.dispatchEvent()
        AbstractNode.dispatchEvent()
        AbstractParentNode.fireDOMSubtreeModifiedEvent()
        AbstractParentNode.removeChild()
        SVGApplication$8.run() ->
"topLevelElt.removeChild(children.item(0));"
        RunnableQueue.run()
element of Object[]
        AttributedString.createRunAttributeDataVectors()
        AttributedString()
        SVGTextElementBridge$AttributedStringBuffer.toAttributedString()
        SVGTextElementBridge.buildAttributedString()
        SVGTextElementBridge.computeLayoutedText()
        SVGTextElementBridge.handleCSSEngineEvent()
        BridgeContext$CSSPropertiesChangedListener.propertiesChanged()
        CSSEngine.firePropertiesChangedEvent()
        CSSEngine.invalidateProperties()
        CSSEngine$DOMSubtreeModifiedListener.handleEvent()
        EventSupport.fireEventListeners()
        EventSupport.dispatchEvent()
        AbstractNode.dispatchEvent()
        AbstractParentNode.fireDOMSubtreeModifiedEvent()
        AbstractParentNode.removeChild()
        SVGApplication$8.run() ->
"topLevelElt.removeChild(children.item(0));"
        RunnableQueue.run()
runAttributeValues of java.text.AttributedString
        SVGTextElementBridge$AttributedStringBuffer.toAttributeString()
        SVGTextElementBridge.buildAttributedString()
        SVGTextElementBridge.computeLayoutedText()
        SVGTextElementBridge.handleCSSEngineEvent()
        BridgeContext$CSSPropertiesChangedListener.propertiesChanged()
        CSSEngine.firePropertiesChangedEvent()
        CSSEngine.invalidateProperties()
        CSSEngine$DOMSubtreeModifiedListener.handleEvent()
        EventSupport.fireEventListeners()
        EventSupport.dispatchEvent()
        AbstractNode.dispatchEvent()
        AbstractParentNode.fireDOMSubtreeModifiedEvent()
        AbstractParentNode.removeChild()
        SVGApplication$8.run() ->
"topLevelElt.removeChild(children.item(0));"
        RunnableQueue.run()
this$0 of java.text.AttributedString$AttributedStringIterator
        AttributedString.getIterator()
        AttributedString.getIterator()
        SVGTextElementBridge.computeLayoutedText()
        SVGTextElementBridge.handleCSSEngineEvent()
        BridgeContext$CSSPropertiesChangedListener.propertiesChanged()
        CSSEngine.firePropertiesChangedEvent()
        CSSEngine.invalidateProperties()
        CSSEngine$DOMSubtreeModifiedListener.handleEvent()
        EventSupport.fireEventListeners()
        EventSupport.dispatchEvent()
        AbstractNode.dispatchEvent()    
        AbstractParentNode.fireDOMSubtreeModifiedEvent()
        AbstractParentNode.removeChild()
        SVGApplication$8.run() ->
"topLevelElt.removeChild(children.item(0));"
        RunnableQueue.run()
aci of org.apache.batik.gvt.Textnode
        SVGTextElementBridge.instantiateGraphicsNode()
        AbstractGraphicsNodeBridge.createGraphicsNode()
        SVGTextElementBridge.craeteGraphicsNode()
        GVTBuilder.build()
        SVGGElementBridge.handleElementAdded()
        SVGGElementBridge.handleDOMNodeInsertedEvent()
        BridgeContext$DOMNodeInsertedEventListener.handleEvent()
        EventSupport.fireEventListeners()
        EventSupport.dispatchEvent()
        AbstractNode.dispatchEvent()
        AbstractParentNode.fireDOMNodeInsertedEvenet()
        AbstractParentNode.appendChild()
        SVGApplication$9.run() -> "topLevelElt.appendChild(newTextElt);"
        RunnableQueue.run()
changeSource of org.apache.batik.gvt.event.GraphicsNodeChangeEvent
        AbstractGraphicsNode.fireGraphicsNodeChangeStarted()
        AbstractGraphicsNode.setVisible()
        SVGSVGElementBridge.createGraphicsNode()
        GVTBuilder.build()
        GVTTreeBuilder.run()
changeStartedEvent of org.apache.batik.gvt.CanvasGraphicsNode
        SVGSVGElementBridge.createGraphicsNode()
        GVTBuilder.build()
        GVTTreeBuilder.run()
node of org.apache.batik.bridge.SVGSVGElementBridge
        SVGSVGElementBridge.getInstance()
        BridgeContext.getBridge()
        BridgeContext.getBridge()
        GVTBuilder.build()
        GVTTreeBuilder.run()
svgContext of org.apache.batik.dom.svg.SVGOMSVGElement
        SVGDOMImplementation$SvgElementFactory.create()
        SVGDOMImplementation.createElementNS()
        SVGOMDocument.createElementNS()
        SVGDOMImplementation.createDocument()
        SVGApplication.buildDoc() -> "svgDocument =
(SVGDocument)sImpl.createDocument(svgNS, "svg", null);"
topLevelElt of SVGApplication -> "SVGApplication app = new
SVGApplication(f);"
this$0 of SVGApplication$2 -> button.addActionListener(new ActionListener()
{"
element of Object[] -> "button.addActionListener(new ActionListener() {"
listenerList of javax.swing.eventListenerList 2 listeners:
javax.swing.event.ChangeListener javax.swing.plaf.meta... -> "JButton button
= new JButton("Load...");"
listenerList of javax.swing.JButton -> "JButton button = new
JButton("Load...");"

****************************************************************

element of object[] * 2
        AttributedString.addAttributeRunData()
        AttributedString.addAttributeImpl()
        AttributedString.addAttribute()
        AttributedString()
        AttributedString()
        StrokingTextPainter.createModifiedACIForFontMatching()
        StrokingTextPainter.getTextRuns()
        StrokingTextPainter.getBounds2D()
        TextNode.getPrimitiveBounds()
        AbstractGraphicsNode.getBounds()
        UpdateTracker.changeStarted()
        AbstractGraphicsNode.fireGrapicsNodeChangeStarted()
        AbstractGraphicsNode.fireGrapicsNodeChangeStarted()
        AbstractGraphicsNode.setClip()
        AbstractGraphicsNodeBridge.handleCSSPropertyChanged()
        SVGTextElementBridge.handleCSSEngineEvent()
        AbstractGraphicsNodeBridge.handleCSSEngineEvent()
        SVGTextElementBridge.handleCSSEngineEvent()
        BridgeContext$CSSPropertiesChangedListener.propertiesChanged()
        CSSEngine.firePropertiesChangedEvent()
        CSSEngine.invalidateProperties()
        CSSEngine$DOMSubtreeModifiedListener.handleEvent()
        EventSupport.fireEventListeners()
        EventSupport.dispatchEvent()
        AbstractNode.dispatchEvent()
        AbstractParentNode.fireDOMSubtreeModifiedEvent()
        AbstractParentNode.removeChild()
        SVGApplication$8.run() ->
"topLevelElt.removeChild(children.item(0));"
        RunnableQueue.run()
        
**************************************************************************

element of object[]
        AttributedString.addAttributeRunData()
        AttributedString.addAttributeImpl()
        AttributedString.addAttribute()
        SVGTextElementBridge.addPaintAttributes()
        SVGTextElementBridge.computeLayoutedText()
        SVGTextElementBridge.handleCSSEngineEvent()
        BridgeContext$CSSPropertiesChangedListener.propertiesChanged()
        CSSEngine.firePropertiesChangedEvent()
        CSSEngine.invalidateProperties()
        CSSEngine$DOMSubtreeModifiedListener.handleEvent()
        EventSupport.fireEventListeners()
        EventSupport.dispatchEvent()
        AbstractNode.dispatchEvent()
        AbstractParentNode.fireDOMSubtreeModifiedEvent()
        AbstractParentNode.removeChild()
        SVGApplication$8.run() ->
"topLevelElt.removeChild(children.item(0));"
        RunnableQueue.run()

**************************************************************************

value of HashTable$Entry
        Font()
        AWTGVTFont()
        AWTFontFamily.deriveFont()
        StrokingTextPainter.createModifiedACIForFontMatching()
        StrokingTextPainter.getTextRuns()
        StrokingTextPainter.getBounds2D()
        TextNode.getPrimitiveBounds()
        AbstractGraphicsNode.getBounds()
        UpdateTracker.changeStarted()
        AbstractGraphicsNode.fireGraphicsNodeChangeStarted()
        AbstractGraphicsNode.fireGraphicsNodeChangeStarted()
        AbstractGraphicsNode.setClip()
        AbstractGraphicsNodeBridge.handleCSSPropertyChanged()
        SVGTextElementBridge.handleCSSPropertyChanged()
        AbstractGraphicsNodeBridge.handleCSSEngineEvent()
        SVGTextElementBridge.handleCSSEngineEvent()
        BridgeContext$CSSPropertiesChangedListener
        CSSEngine.firePropertiesChangedEvent()
        CSSEngine.invalidateProperties()
        CSSEngine$DOMSubtreeModifiedListener.handleEvent()
        EventSupport.fireEventListeners()
        EventSupport.dispatchEvent()
        AbstractNode.dispatchEvent()
        AbstractParentNode.fireDOMSubtreeModifiedEvent()
        AbstractParentNode.removeChild()
        SVGApplication$8.run() ->
"topLevelElt.removeChild(children.item(0));"
        RunnableQueue.run()

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to