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.
In a recent dev build with a massive memory leak (#269685 may have been the main problem), I noticed this - value: org.netbeans.modules.xml.xdm.nodes.Token #91502 <- [2] - class: java.lang.Object[], value: org.netbeans.modules.xml.xdm.nodes.Token #91502 <- elementData - class: java.util.ArrayList, value: java.lang.Object[] #442274 <- tokens - class: org.netbeans.modules.xml.xdm.nodes.Element, value: java.util.ArrayList #349629 <- [3] - class: java.lang.Object[], value: org.netbeans.modules.xml.xdm.nodes.Element #22290 <- elementData - class: java.util.ArrayList, value: java.lang.Object[] #442272 <- children - class: org.netbeans.modules.xml.xdm.nodes.Element, value: java.util.ArrayList #349627 <- [1] - class: java.lang.Object[], value: org.netbeans.modules.xml.xdm.nodes.Element #22289 <- elementData - class: java.util.ArrayList, value: java.lang.Object[] #442269 <- children - class: org.netbeans.modules.xml.xdm.nodes.Element, value: java.util.ArrayList #349624 <- [3] - class: java.lang.Object[], value: org.netbeans.modules.xml.xdm.nodes.Element #22288 <- elementData - class: java.util.ArrayList, value: java.lang.Object[] #442258 <- children - class: org.netbeans.modules.xml.xdm.nodes.Element, value: java.util.ArrayList #349613 <- node - class: org.netbeans.modules.maven.model.pom.impl.ProfileImpl, value: org.netbeans.modules.xml.xdm.nodes.Element #22285 <- [7] - class: java.lang.Object[], value: org.netbeans.modules.maven.model.pom.impl.ProfileImpl #441 <- elementData - class: java.util.ArrayList, value: java.lang.Object[] #445525 <- list - class: java.util.Collections$UnmodifiableRandomAccessList, value: java.util.ArrayList #352873 <- [2] - class: java.lang.Object[], value: java.util.Collections$UnmodifiableRandomAccessList #26232 <- elementData - class: java.util.ArrayList, value: java.lang.Object[] #445524 <- cuts - class: org.netbeans.modules.maven.navigator.POMModelVisitor$ListObjectCH, value: java.util.ArrayList #352872 <- holder - class: org.netbeans.modules.maven.navigator.POMModelVisitor$PomListChildren, value: org.netbeans.modules.maven.navigator.POMModelVisitor$ListObjectCH #181 <- this$0 - class: org.netbeans.modules.maven.navigator.POMModelVisitor$PomListChildren$1, value: org.netbeans.modules.maven.navigator.POMModelVisitor$PomListChildren #107 <- [127] - class: java.beans.PropertyChangeListener[], value: org.netbeans.modules.maven.navigator.POMModelVisitor$PomListChildren$1 #107 <- value - class: java.util.HashMap$Node, value: java.beans.PropertyChangeListener[] #18904 <- [0] - class: java.util.HashMap$Node[], value: java.util.HashMap$Node #640037 <- table - class: java.util.HashMap, value: java.util.HashMap$Node[] #86872 <- map - class: java.beans.PropertyChangeSupport$PropertyChangeListenerMap, value: java.util.HashMap #115027 <- map - class: java.beans.PropertyChangeSupport, value: java.beans.PropertyChangeSupport$PropertyChangeListenerMap #11565 <- propertyChangeSupport - class: org.netbeans.modules.maven.navigator.POMModelPanel$Configuration, value: java.beans.PropertyChangeSupport #11270 <- configuration - class: org.netbeans.modules.maven.navigator.POMModelPanel, value: org.netbeans.modules.maven.navigator.POMModelPanel$Configuration #1 <- component - class: org.netbeans.modules.maven.navigator.POMModelNavigator, value: org.netbeans.modules.maven.navigator.POMModelPanel #1 <- delegate - class: org.netbeans.modules.navigator.LazyPanel, value: org.netbeans.modules.maven.navigator.POMModelNavigator #1 <- [0] - class: java.lang.Object[], value: org.netbeans.modules.navigator.LazyPanel #4 <- elementData - class: java.util.ArrayList, value: java.lang.Object[] #175317 <- list - class: java.util.Collections$UnmodifiableRandomAccessList, value: java.util.ArrayList #110153 <- delegate - class: org.openide.util.lookup.ProxyLookup$LazyList, value: java.util.Collections$UnmodifiableRandomAccessList #20303 <- value - class: java.util.HashMap$Node, value: org.openide.util.lookup.ProxyLookup$LazyList #64 <- [8] - class: java.util.HashMap$Node[], value: java.util.HashMap$Node #638834 <- table - class: java.util.HashMap, value: java.util.HashMap$Node[] #65649 <- contentTypes2Providers - class: org.netbeans.modules.navigator.ProviderRegistry, value: java.util.HashMap #81567 <- instance - class: org.netbeans.modules.navigator.ProviderRegistry, value: org.netbeans.modules.navigator.ProviderRegistry #1 From what I can tell, `POMModelPanel` and thus its `Configuration` is intended to be a singleton, whereas `POMModelVisitor` is probably project-specific, so this looks like a classic listener memory leak.
Created attachment 163509 [details] Possible fix (not yet tested)
Have been running with this patch and have not noticed any problems so far.
thanks for the patch
fixed in jet-main #5ca38de2cfb6
Integrated into 'main-silver', will be available in build *201703010002* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress) Changeset: http://hg.netbeans.org/main-silver/rev/5ca38de2cfb6 User: Tomas Stupka <tstupka@netbeans.org> Log: Issue #269686 - Memory leak in POMModelPanel