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 44021 - Memory Leaks
Summary: Memory Leaks
Status: CLOSED FIXED
Alias: None
Product: platform
Classification: Unclassified
Component: Explorer (show other bugs)
Version: 4.x
Hardware: PC Windows ME/2000
: P2 blocker (vote)
Assignee: _ tboudreau
URL:
Keywords: PERFORMANCE
Depends on:
Blocks:
 
Reported: 2004-05-31 09:19 UTC by Jan Jancura
Modified: 2008-12-22 22:56 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 Jan Jancura 2004-05-31 09:19:56 UTC
How to reproduce:
- start debugger (f7)
- Finish debugger (SF5)
- start debugger (f7)
- Finish debugger (SF5)
- start debugger (f7)
- Finish debugger (SF5)
- Close all output windows

Some my classes are still in memory.
What I see in HAT:
Static reference from
org.openide.explorer.propertysheet.ReusablePropertyModel.PROPERTY
(from class
org.openide.explorer.propertysheet.ReusablePropertyModel)
:
-->
org.netbeans.modules.viewmodel.TreeModelNode$MyProperty@0x387c7722
(56 bytes) (field columnModel:)
-->
org.netbeans.modules.debugger.jpda.ui.models.SourcesModel@0xd8869322
(48 bytes) (field debugger:)
-->
org.netbeans.modules.debugger.jpda.JPDADebuggerImpl@0x985ab322
(88 bytes)
Static reference from
org.openide.explorer.propertysheet.ReusablePropertyEnv.NODE
(from class
org.openide.explorer.propertysheet.ReusablePropertyEnv)
:
--> Instance of
[Lorg.openide.nodes.Node;@0x98ab5d22 (4 bytes)
(Element 0 of Instance of [Lorg.openide.nodes.Node;:)
-->
org.netbeans.modules.viewmodel.TreeModelNode@0xd8887722
(80 bytes) (field model:)
-->
org.netbeans.modules.viewmodel.CompoundModel@0xf8757922
(32 bytes) (field treeModel:)
-->
org.netbeans.modules.debugger.jpda.ui.models.SourcesModel@0xd8869322
(48 bytes) (field debugger:)
-->
org.netbeans.modules.debugger.jpda.JPDADebuggerImpl@0x985ab322
(88 bytes)
Static reference from
org.openide.explorer.propertysheet.RendererPropertyDisplayer.rendererFactory1
(from class
org.openide.explorer.propertysheet.RendererPropertyDisplayer)
:
-->
org.openide.explorer.propertysheet.RendererFactory@0xf8a38d22
(56 bytes) (field checkboxRenderer:)
-->
org.openide.explorer.propertysheet.RendererFactory$CheckboxRenderer@0xd81b8e22
(472 bytes) (field parent:)
--> javax.swing.CellRendererPane@0xf8869022 (232
bytes) (field parent:)
-->
org.openide.explorer.propertysheet.RendererPropertyDisplayer@0x98498d22
(352 bytes) (field prop:)
-->
org.netbeans.modules.viewmodel.TreeModelNode$MyProperty@0x387c7722
(56 bytes) (field columnModel:)
-->
org.netbeans.modules.debugger.jpda.ui.models.SourcesModel@0xd8869322
(48 bytes) (field debugger:)
-->
org.netbeans.modules.debugger.jpda.JPDADebuggerImpl@0x985ab322
(88 bytes)
Static reference from
org.openide.explorer.view.VisualizerNode.cache
(from class
org.openide.explorer.view.VisualizerNode) :
--> java.util.WeakHashMap@0x50a1c306 (48 bytes)
(field table:)
--> Instance of
[Ljava.util.WeakHashMap$Entry;@0xc8dd2122 (128
bytes) (Element 29 of Instance of
[Ljava.util.WeakHashMap$Entry;:)
--> java.util.WeakHashMap$Entry@0x78dc7722 (40
bytes) (field referent:)
-->
org.openide.explorer.view.VisualizerNode@0x98dd7722
(56 bytes) (field node:)
-->
org.netbeans.modules.viewmodel.TreeModelNode@0x18f17722
(80 bytes) (field model:)
-->
org.netbeans.modules.viewmodel.CompoundModel@0xf8757922
(32 bytes) (field treeModel:)
-->
org.netbeans.modules.debugger.jpda.ui.models.SourcesModel@0xd8869322
(48 bytes) (field debugger:)
-->
org.netbeans.modules.debugger.jpda.JPDADebuggerImpl@0x985ab322
(88 bytes)
Comment 1 Jan Jancura 2004-05-31 09:21:59 UTC
*** Issue 41932 has been marked as a duplicate of this issue. ***
Comment 2 _ tboudreau 2004-05-31 11:08:51 UTC
On my list to get rid of these static fields for promo D anyway - they're an optimization to 
avoid creating hundreds of PropertyEnv's while painting.
Comment 3 _ tboudreau 2004-05-31 11:10:17 UTC
Note that the reference will be cleared the first time any property sheet is used for 
anything else afterward; firing a NodeDestroyed should also clear it.
Comment 4 Antonin Nebuzelsky 2004-05-31 14:27:58 UTC
Tim, the NodeRenderer's static sharedInstance is also an evil. I saw
it to be the root for a temporary memory leak (via HtmlRendererImpl to
the whole wizard's UI - issue 40929) after Autoupdate Wizard is
closed. This should be eliminated.
Comment 5 _ tboudreau 2004-05-31 19:39:14 UTC
Known and planned to get rid of NodeRenderer's shared instance.  But I am curious - by 
what path through HtmlRenderer did it hold the reference?  It is used as a tree cell 
renderer, but the only thing it should hold is a string value of the last set property; JTree 
uses it via SwingUtilities.paintComponent(), so it should never be added to anything but an 
offscreen CellRendererPane.  Some listener?
Comment 6 Petr Nejedly 2004-06-01 09:47:46 UTC
There used to be problem with CellRendererPane, but I don't remember
details. IIRC JTree used to remove it from the pane after finished
painting but JList failed to do so (or the other way around). Also,
double check that the CellRendererPane is really as much "offscreen"
as you think. It may be temporarily placed in some hierarchy for some
obscure reason...
Comment 7 _ tboudreau 2004-06-16 04:06:05 UTC
Should no longer be reproducible - at the expense of more allocations when painting 
(probably more true for TreeTableView), I got rid of the static ReusablePropertyEnv/
ReusablePropertyModel instances.  So if the view is gone, everything it touched should be 
gone too.

Checking in src/org/openide/explorer/propertysheet/CustomEditorAction.java;
/cvs/openide/src/org/openide/explorer/propertysheet/CustomEditorAction.java,v  <--  
CustomEditorAction.java
new revision: 1.7; previous revision: 1.6
done
Checking in src/org/openide/explorer/propertysheet/EditablePropertyDisplayer.java;
/cvs/openide/src/org/openide/explorer/propertysheet/EditablePropertyDisplayer.java,v  
<--  EditablePropertyDisplayer.java
new revision: 1.7; previous revision: 1.6
done
Checking in src/org/openide/explorer/propertysheet/EditorPropertyDisplayer.java;
/cvs/openide/src/org/openide/explorer/propertysheet/EditorPropertyDisplayer.java,v  
<--  EditorPropertyDisplayer.java
new revision: 1.7; previous revision: 1.6
done
Checking in src/org/openide/explorer/propertysheet/InplaceEditorFactory.java;
/cvs/openide/src/org/openide/explorer/propertysheet/InplaceEditorFactory.java,v  <--  
InplaceEditorFactory.java
new revision: 1.8; previous revision: 1.7
done
Checking in src/org/openide/explorer/propertysheet/PropertyDisplayer_Inline.java;
/cvs/openide/src/org/openide/explorer/propertysheet/PropertyDisplayer_Inline.java,v  
<--  PropertyDisplayer_Inline.java
new revision: 1.2; previous revision: 1.1
done
Checking in src/org/openide/explorer/propertysheet/PropertyPanel.java;
/cvs/openide/src/org/openide/explorer/propertysheet/PropertyPanel.java,v  <--  
PropertyPanel.java
new revision: 1.143; previous revision: 1.142
done
Checking in src/org/openide/explorer/propertysheet/PropertySheet.java;
/cvs/openide/src/org/openide/explorer/propertysheet/PropertySheet.java,v  <--  
PropertySheet.java
new revision: 1.164; previous revision: 1.163
done
Checking in src/org/openide/explorer/propertysheet/RendererFactory.java;
/cvs/openide/src/org/openide/explorer/propertysheet/RendererFactory.java,v  <--  
RendererFactory.java
new revision: 1.15; previous revision: 1.14
done
Checking in src/org/openide/explorer/propertysheet/RendererPropertyDisplayer.java;
/cvs/openide/src/org/openide/explorer/propertysheet/RendererPropertyDisplayer.java,v  
<--  RendererPropertyDisplayer.java
new revision: 1.10; previous revision: 1.9
done
Checking in src/org/openide/explorer/propertysheet/ReusablePropertyEnv.java;
/cvs/openide/src/org/openide/explorer/propertysheet/ReusablePropertyEnv.java,v  <--  
ReusablePropertyEnv.java
new revision: 1.7; previous revision: 1.6
done
Checking in src/org/openide/explorer/propertysheet/ReusablePropertyModel.java;
/cvs/openide/src/org/openide/explorer/propertysheet/ReusablePropertyModel.java,v  
<--  ReusablePropertyModel.java
new revision: 1.4; previous revision: 1.3
done
Checking in src/org/openide/explorer/propertysheet/SheetCellEditor.java;
/cvs/openide/src/org/openide/explorer/propertysheet/SheetCellEditor.java,v  <--  
SheetCellEditor.java
new revision: 1.14; previous revision: 1.13
done
Checking in src/org/openide/explorer/propertysheet/SheetCellRenderer.java;
/cvs/openide/src/org/openide/explorer/propertysheet/SheetCellRenderer.java,v  <--  
SheetCellRenderer.java
new revision: 1.10; previous revision: 1.9
done
Checking in src/org/openide/explorer/propertysheet/SheetTable.java;
/cvs/openide/src/org/openide/explorer/propertysheet/SheetTable.java,v  <--  
SheetTable.java
new revision: 1.41; previous revision: 1.40
done
Processing log script arguments...
More commits to come...
Checking in test/unit/src/org/openide/explorer/propertysheet/
CustomInplaceEditorTest.java;
/cvs/openide/test/unit/src/org/openide/explorer/propertysheet/
CustomInplaceEditorTest.java,v  <--  CustomInplaceEditorTest.java
new revision: 1.4; previous revision: 1.3
done
Checking in test/unit/src/org/openide/explorer/propertysheet/
InplaceEditorFactoryTest.java;
/cvs/openide/test/unit/src/org/openide/explorer/propertysheet/
InplaceEditorFactoryTest.java,v  <--  InplaceEditorFactoryTest.java
new revision: 1.5; previous revision: 1.4
done
Checking in test/unit/src/org/openide/explorer/propertysheet/
InplaceEditorNoModifyOnTextChangeContractBooleanEditorTest.java;
/cvs/openide/test/unit/src/org/openide/explorer/propertysheet/
InplaceEditorNoModifyOnTextChangeContractBooleanEditorTest.java,v  <--  
InplaceEditorNoModifyOnTextChangeContractBooleanEditorTest.java
new revision: 1.8; previous revision: 1.7
done
Checking in test/unit/src/org/openide/explorer/propertysheet/
InplaceEditorNoModifyOnTextChangeContractComboEditorTest.java;
/cvs/openide/test/unit/src/org/openide/explorer/propertysheet/
InplaceEditorNoModifyOnTextChangeContractComboEditorTest.java,v  <--  
InplaceEditorNoModifyOnTextChangeContractComboEditorTest.java
new revision: 1.8; previous revision: 1.7
done
Checking in test/unit/src/org/openide/explorer/propertysheet/
InplaceEditorNoModifyOnTextChangeContractStringEditorTest.java;
/cvs/openide/test/unit/src/org/openide/explorer/propertysheet/
InplaceEditorNoModifyOnTextChangeContractStringEditorTest.java,v  <--  
InplaceEditorNoModifyOnTextChangeContractStringEditorTest.java
new revision: 1.9; previous revision: 1.8
done
Comment 8 Tomas Danek 2005-07-18 10:35:25 UTC
Issue 41932 was checked and verified, verifying this too.