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