This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 101463 - Leaking class diagrams
Summary: Leaking class diagrams
Status: VERIFIED FIXED
Alias: None
Product: uml
Classification: Unclassified
Component: Diagram Class (show other bugs)
Version: 6.x
Hardware: All All
: P2 blocker (vote)
Assignee: Viktor Lapitski
URL:
Keywords: PERFORMANCE
Depends on:
Blocks: 102410
  Show dependency tree
 
Reported: 2007-04-17 22:03 UTC by _ rkubacki
Modified: 2008-08-06 23:37 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description _ rkubacki 2007-04-17 22:03:50 UTC
NetBeans IDE Dev (Build 070417)
1.6.0_01; Java HotSpot(TM) Client VM 1.6.0_01-b06
Linux version 2.6.18-1.2239_1.fc5.cubbi_suspend2 running on i386
en_US (nb); UTF-8

I did some editing of class diagrams in UML project and when the project is
closed there are still many objects belonging to UML support held in memory.

Both class diagrams that I have touched are still in memory. There is a path
holding the older instance:

Static reference from org.netbeans.modules.uml.project.UMLProjectModule.mEngine
(from class org.netbeans.modules.uml.project.UMLProjectModule) :
-->
org.netbeans.modules.uml.ui.products.ad.projecttreedefaultengine.ADProjectTreeEngine@0x7bd52008
(124 bytes) (field m_DispatchHelper:)
--> org.netbeans.modules.uml.ui.support.DispatchHelper@0x7bd53560 (52 bytes)
(field m_LifeTimeEventDispatcher:)
-->
org.netbeans.modules.uml.core.metamodel.core.foundation.ElementLifeTimeEventDispatcher@0x7bd914b0
(49 bytes) (field m_Sink:)
--> org.netbeans.modules.uml.core.eventframework.EventManager@0x7bd95658 (20
bytes) (field m_listeners:)
--> java.util.Vector@0x7bd5f8e8 (24 bytes) (field elementData:)
--> [Ljava.lang.Object;@0x7dac7bc8 (2568 bytes) (Element 15 of
[Ljava.lang.Object;@0x7dac7bc8:)
-->
org.netbeans.modules.uml.drawingarea.DiagramTopComponent$LocalUMLModelElementNode@0x7d3f3c60
(118 bytes) (field this$0:)
--> org.netbeans.modules.uml.drawingarea.DiagramTopComponent@0x7cfdbb18 (391 bytes) 

Note that the listener array seems to be holding everything what I have created
here (468 elements)

Following refrence chains points to last opened diagram:

Static reference from
org.netbeans.modules.uml.ui.support.applicationmanager.DiagramKeyboardAccessProvider.kbAccessProvider
(from class
org.netbeans.modules.uml.ui.support.applicationmanager.DiagramKeyboardAccessProvider)
:
-->
org.netbeans.modules.uml.ui.support.applicationmanager.DiagramKeyboardAccessProvider@0x7d0027b8
(16 bytes) (field drawingAreaCtrl:)
-->
org.netbeans.modules.uml.ui.swing.drawingarea.ADDrawingAreaControl@0x7d3b54e8
(660 bytes) (field parent:)
--> org.netbeans.modules.uml.drawingarea.DiagramTopComponent@0x7d3b5a10 (391 bytes)
Static reference from org.netbeans.modules.uml.palette.UMLPaletteFactory.palette
(from class org.netbeans.modules.uml.palette.UMLPaletteFactory) :
--> org.netbeans.spi.palette.PaletteController@0x7d3b5970 (20 bytes) (field
support:)
--> java.beans.PropertyChangeSupport@0x7d3baab0 (24 bytes) (field listeners:)
--> sun.awt.EventListenerAggregate@0x7d3c0068 (12 bytes) (field listenerList:)
--> [Ljava.beans.PropertyChangeListener;@0x7dc00f90 (12 bytes) (Element 0 of
[Ljava.beans.PropertyChangeListener;@0x7dc00f90:)
-->
org.netbeans.modules.uml.palette.PaletteSupport$PalettePropertyChangeListener@0x7d3bfde0
(16 bytes) (field drawingAreaContrl:)
-->
org.netbeans.modules.uml.ui.swing.drawingarea.ADDrawingAreaControl@0x7d3b54e8
(660 bytes) (field parent:)
--> org.netbeans.modules.uml.drawingarea.DiagramTopComponent@0x7d3b5a10 (391 bytes) 

Since these are top components they cause retaining of many other objects -
directly held is a ADDrawingAreaControl and it is easy to get to project -
org.netbeans.modules.uml.ui.swing.drawingarea.ADDrawingAreaControl@0x7d3b54e8
(660 bytes)  (field m_Namespace:)
--> org.netbeans.modules.uml.core.metamodel.structure.Project@0x7cad32b0 (106
bytes) (field mSourceRoots:)
--> org.netbeans.modules.uml.project.AssociatedSourceProvider@0x7cba7970 (20
bytes) (field umlProj:)
--> org.netbeans.modules.uml.project.UMLProject@0x7cba5930 (44 bytes)
Comment 1 Viktor Lapitski 2007-04-27 14:31:58 UTC
heap dump falls with error after opening/closing of diagram, so only the
references listed in the description were fixed. If there are more refs where
these came from - let me know, otherwise until i find more robust version or
other heap dump tool. 
Comment 2 Peter Lam 2008-08-06 23:37:57 UTC
assume this has been verified since it's been a while.