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.
I have a Java source project with around a 150 classes in it's source includes. I based a reverse engineered UML project on it. Each action taken on new diagrams (so far only tried class and sequence diagrams) takes a very long time. Generating a sequence diagram (10 objects with around 8 calls/loops) takes approximately 10 minutes. Performing actions in class diagrams is slow, simply moving a class in the diagrams takes more than 5 seconds from the first click to the object actually moving. This seems to apply to almost any action taken (creating/deleting dependencies, right click menu, dropping a new class into the diagram...). The CPU utilization is at a 100% during the entire time. Such unresponsiveness makes the UML plugin close to unusable. This is using a 3.4 GHz Pentium, 3GB Memory running jdk 1.6_02 JVM with netbeans 6.0M10 full installation. Inspecting the process with JConsole shows that memory is not a problem, only 250Mb are used out of a max heap of 1 Gb. Examining the different threads, it seems that the AWT dispatcher is always stuck in the XMLManip.findElementByID method as shown in the example below. I think this methods should be revisited to as it would seem to yield very poor performance on what I think is a fairly small diagram/code base. org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.AbstractBranch.elementID(AbstractBranch.java:294) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:236) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.DefaultDocument.elementByID(DefaultDocument.java:369) org.netbeans.modules.uml.core.support.umlsupport.XMLManip.findElementByID(XMLManip.java:121) org.netbeans.modules.uml.core.typemanagement.TypeManager.findByID(TypeManager.java:1984) org.netbeans.modules.uml.core.typemanagement.TypeManager.getRawElementByID(TypeManager.java:1944) org.netbeans.modules.uml.core.metamodel.core.foundation.UMLXMLManip.findInProject(UMLXMLManip.java:1400) org.netbeans.modules.uml.core.metamodel.core.foundation.UMLXMLManip.findElementByID(UMLXMLManip.java:1364) org.netbeans.modules.uml.core.support.umlutils.ElementLocator.findByID(ElementLocator.java:196) org.netbeans.modules.uml.core.support.umlutils.ElementLocator.findElementByID(ElementLocator.java:214) org.netbeans.modules.uml.core.metamodel.core.foundation.ProxyElement.getElement(ProxyElement.java:71) org.netbeans.modules.uml.ui.controls.projecttree.ProjectTreeItemImpl.getModelElement(ProjectTreeItemImpl.java:160) org.netbeans.modules.uml.project.ui.nodes.UMLModelElementNode.getElement(UMLModelElementNode.java:361) ...
could you please provide the info on the build you're using. Specifically is the build is post Jul 11, ie. does the build have the openide/nodes fix mentioned in IZ 108994 ? What are the full the stack trace in your case, ie. does it have line something like this ... at org.openide.nodes.FilterNode.equals(FilterNode.java:864) ... before the part of the stack trace you've provided?
I will try and upgrade to a nightly build, however the plugin manager is not inclined to let me do it so far. The UML plugin information is as follows: Date: 6/28/07 Source: NetBeans IDE 6.0 M10 (build 200706281431) Here is the entire information from jconsole: Name: AWT-EventQueue-1 State: RUNNABLE Total blocked: 15,442 Total waited: 286,815 Stack trace: org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.DefaultElement.getDocument(DefaultElement.java:121) org.dom4j.tree.AbstractBranch.elementID(AbstractBranch.java:294) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:236) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.AbstractBranch.elementByID(AbstractBranch.java:241) org.dom4j.tree.DefaultDocument.elementByID(DefaultDocument.java:369) org.netbeans.modules.uml.core.support.umlsupport.XMLManip.findElementByID(XMLManip.java:121) org.netbeans.modules.uml.core.typemanagement.TypeManager.findByID(TypeManager.java:1984) org.netbeans.modules.uml.core.typemanagement.TypeManager.getRawElementByID(TypeManager.java:1944) org.netbeans.modules.uml.core.metamodel.core.foundation.UMLXMLManip.findInProject(UMLXMLManip.java:1400) org.netbeans.modules.uml.core.metamodel.core.foundation.UMLXMLManip.findElementByID(UMLXMLManip.java:1364) org.netbeans.modules.uml.core.support.umlutils.ElementLocator.findByID(ElementLocator.java:196) org.netbeans.modules.uml.core.support.umlutils.ElementLocator.findElementByID(ElementLocator.java:214) org.netbeans.modules.uml.core.metamodel.core.foundation.ProxyElement.getElement(ProxyElement.java:71) org.netbeans.modules.uml.ui.controls.projecttree.ProjectTreeItemImpl.getModelElement(ProjectTreeItemImpl.java:160) org.netbeans.modules.uml.project.ui.nodes.UMLModelElementNode.getElement(UMLModelElementNode.java:361) org.netbeans.modules.uml.project.ui.nodes.UMLModelElementNode.equals(UMLModelElementNode.java:428) org.netbeans.modules.uml.core.eventframework.EventManager.indexOf(EventManager.java:93) org.netbeans.modules.uml.core.eventframework.EventManager.addListener(EventManager.java:46) org.netbeans.modules.uml.core.metamodel.core.foundation.ElementChangeEventDispatcher.registerForNamedElementEvents(ElementChangeEventDispatcher.java:228) org.netbeans.modules.uml.ui.support.DispatchHelper.registerForNamedElementEvents(DispatchHelper.java:875) org.netbeans.modules.uml.project.ui.nodes.UMLModelElementNode.initialize(UMLModelElementNode.java:116) org.netbeans.modules.uml.project.ui.nodes.UMLModelElementNode.<init>(UMLModelElementNode.java:76) org.netbeans.modules.uml.project.ui.nodes.NBNodeFactory.createElementNode(NBNodeFactory.java:77) org.netbeans.modules.uml.ui.support.projecttreesupport.ProjectTreeBuilderImpl.createChildTreeElement(ProjectTreeBuilderImpl.java:1404) org.netbeans.modules.uml.ui.support.projecttreesupport.ProjectTreeBuilderImpl.buildFolderChildrenFromObject(ProjectTreeBuilderImpl.java:1019) org.netbeans.modules.uml.ui.support.projecttreesupport.ProjectTreeBuilderImpl.retrieveChildItemsForFolder(ProjectTreeBuilderImpl.java:216) org.netbeans.modules.uml.ui.support.projecttreesupport.ProjectTreeBuilderImpl.retrieveChildItems(ProjectTreeBuilderImpl.java:123) org.netbeans.modules.uml.ui.support.projecttreesupport.ProjectTreeBuilderImpl.retrieveChildItemsSorted(ProjectTreeBuilderImpl.java:386) org.netbeans.modules.uml.ui.products.ad.projecttreedefaultengine.ADProjectTreeEngine.retrieveChildItems(ADProjectTreeEngine.java:1971) org.netbeans.modules.uml.ui.products.ad.projecttreedefaultengine.ADProjectTreeEngine.verifyChildConsistency(ADProjectTreeEngine.java:748) org.netbeans.modules.uml.ui.products.ad.projecttreedefaultengine.ADProjectTreeEngine.updateTree(ADProjectTreeEngine.java:683) org.netbeans.modules.uml.ui.products.ad.projecttreedefaultengine.ADProjectTreeEngine$UpdateItemsRunnable.execute(ADProjectTreeEngine.java:636) org.netbeans.modules.uml.ui.products.ad.projecttreedefaultengine.ADProjectTreeEngine$UpdateItemsRunnable.execute(ADProjectTreeEngine.java:530) org.netbeans.modules.uml.ui.support.BatchProcessRunnable.run(BatchProcessRunnable.java:90) java.lang.Thread.run(Thread.java:619) org.netbeans.modules.uml.ui.products.ad.projecttreedefaultengine.ADProjectTreeEngine$1.run(ADProjectTreeEngine.java:518) java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) java.awt.EventQueue.dispatchEvent(EventQueue.java:597) java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273) java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183) java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160) java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
thank you very much for the prompt and complete response. The stack trace is an exact copy of the stack trace reported in the IZ 108838 (fixed on 07/04/07). Please do upgrade to current build - the functionality in the current builds has many bug fixes made during last month. *** This issue has been marked as a duplicate of 108838 ***