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 148812 - 100% cpu when deleting big part in big xml file
Summary: 100% cpu when deleting big part in big xml file
Status: RESOLVED DUPLICATE of bug 227432
Alias: None
Product: xml
Classification: Unclassified
Component: Code (show other bugs)
Version: 6.x
Hardware: PC Windows XP
: P3 blocker (vote)
Assignee: Svata Dedic
URL:
Keywords: PERFORMANCE
Depends on: 126968
Blocks:
  Show dependency tree
 
Reported: 2008-10-01 09:54 UTC by jtn_terma
Modified: 2013-04-08 09:50 UTC (History)
0 users

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 jtn_terma 2008-10-01 09:54:37 UTC
100% cpu when deleting big part in big xml file.
When opening an 8 MB xml file it took around 10-20 sec. to open it. After deleting 80% of the file netbeans goes into a 
100% cpu loop for more than 10 minutes (I did not wait longer before I killed the process).

Stack traces of the problematic thread:

ThreadName:	AWT-EventQueue-1
ThreadState:	RUNNABLE
WaitedTime:	-1.0E-6
WaitedCount:	5938
BlockedTime:	-1.0E-6
BlockedCount:	3681
LockName:	null
LockOwnerName:	null
InNative:	false
Suspended:	false

Thread stack trace:
org.netbeans.modules.editor.structure.api.DocumentModel.getChildren(DocumentModel.java:638)
org.netbeans.modules.editor.structure.api.DocumentElement.getChildren(DocumentElement.java:296)
org.netbeans.modules.xml.text.navigator.TreeNodeAdapter.checkDocumentContent(TreeNodeAdapter.java:500)
org.netbeans.modules.xml.text.navigator.TreeNodeAdapter.getDocumentContent(TreeNodeAdapter.java:102)
org.netbeans.modules.xml.text.navigator.TreeNodeAdapter.getText(TreeNodeAdapter.java:182)
org.netbeans.modules.xml.text.navigator.NavigatorTreeCellRenderer.getTreeCellRendererComponent(NavigatorTreeCellRendere
r.java:93)
javax.swing.plaf.basic.BasicTreeUI$NodeDimensionsHandler.getNodeDimensions(BasicTreeUI.java:2709)
javax.swing.tree.AbstractLayoutCache.getNodeDimensions(AbstractLayoutCache.java:475)
javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.updatePreferredSize(VariableHeightLayoutCache.java:1342)
javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.updatePreferredSize(VariableHeightLayoutCache.java:1333)
javax.swing.tree.VariableHeightLayoutCache.treeNodesChanged(VariableHeightLayoutCache.java:418)
javax.swing.plaf.basic.BasicTreeUI$Handler.treeNodesChanged(BasicTreeUI.java:3764)
javax.swing.tree.DefaultTreeModel.fireTreeNodesChanged(DefaultTreeModel.java:468)
javax.swing.tree.DefaultTreeModel.nodesChanged(DefaultTreeModel.java:330)
javax.swing.tree.DefaultTreeModel.nodeChanged(DefaultTreeModel.java:261)
org.netbeans.modules.xml.text.navigator.TreeNodeAdapter.childTextElementChanged(TreeNodeAdapter.java:493)
org.netbeans.modules.xml.text.navigator.TreeNodeAdapter.elementRemoved(TreeNodeAdapter.java:415)
org.netbeans.modules.editor.structure.api.DocumentElement.fireDocumentElementEvent(DocumentElement.java:365)
org.netbeans.modules.editor.structure.api.DocumentElement.fireDocumentElementEvent(DocumentElement.java:352)
org.netbeans.modules.editor.structure.api.DocumentElement.childRemoved(DocumentElement.java:380)
org.netbeans.modules.editor.structure.api.DocumentModel$DocumentModelModificationTransaction.removeDE(DocumentModel.jav
a:1116)
org.netbeans.modules.editor.structure.api.DocumentModel$DocumentModelModificationTransaction.commit(DocumentModel.java:
960)
org.netbeans.modules.editor.structure.api.DocumentModel$DocumentModelModificationTransaction.access$200(DocumentModel.j
ava:845)
org.netbeans.modules.editor.structure.api.DocumentModel$2.run(DocumentModel.java:519)
java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:199)
java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:104)
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)


ThreadName:	AWT-EventQueue-1
ThreadState:	RUNNABLE
WaitedTime:	-1.0E-6
WaitedCount:	5938
BlockedTime:	-1.0E-6
BlockedCount:	3681
LockName:	null
LockOwnerName:	null
InNative:	false
Suspended:	false

Thread stack trace:
org.netbeans.editor.DocumentContent.getText(DocumentContent.java:182)
org.netbeans.editor.DocumentContent.getString(DocumentContent.java:169)
javax.swing.text.AbstractDocument.getText(AbstractDocument.java:757)
org.netbeans.modules.xml.text.navigator.TreeNodeAdapter.checkDocumentContent(TreeNodeAdapter.java:512)
org.netbeans.modules.xml.text.navigator.TreeNodeAdapter.getDocumentContent(TreeNodeAdapter.java:102)
org.netbeans.modules.xml.text.navigator.TreeNodeAdapter.getText(TreeNodeAdapter.java:182)
org.netbeans.modules.xml.text.navigator.NavigatorTreeCellRenderer.getTreeCellRendererComponent(NavigatorTreeCellRendere
r.java:93)
javax.swing.plaf.basic.BasicTreeUI$NodeDimensionsHandler.getNodeDimensions(BasicTreeUI.java:2709)
javax.swing.tree.AbstractLayoutCache.getNodeDimensions(AbstractLayoutCache.java:475)
javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.updatePreferredSize(VariableHeightLayoutCache.java:1342)
javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.updatePreferredSize(VariableHeightLayoutCache.java:1333)
javax.swing.tree.VariableHeightLayoutCache.treeNodesChanged(VariableHeightLayoutCache.java:418)
javax.swing.plaf.basic.BasicTreeUI$Handler.treeNodesChanged(BasicTreeUI.java:3764)
javax.swing.tree.DefaultTreeModel.fireTreeNodesChanged(DefaultTreeModel.java:468)
javax.swing.tree.DefaultTreeModel.nodesChanged(DefaultTreeModel.java:330)
javax.swing.tree.DefaultTreeModel.nodeChanged(DefaultTreeModel.java:261)
org.netbeans.modules.xml.text.navigator.TreeNodeAdapter.childTextElementChanged(TreeNodeAdapter.java:493)
org.netbeans.modules.xml.text.navigator.TreeNodeAdapter.elementRemoved(TreeNodeAdapter.java:415)
org.netbeans.modules.editor.structure.api.DocumentElement.fireDocumentElementEvent(DocumentElement.java:365)
org.netbeans.modules.editor.structure.api.DocumentElement.fireDocumentElementEvent(DocumentElement.java:352)
org.netbeans.modules.editor.structure.api.DocumentElement.childRemoved(DocumentElement.java:380)
org.netbeans.modules.editor.structure.api.DocumentModel$DocumentModelModificationTransaction.removeDE(DocumentModel.jav
a:1116)
org.netbeans.modules.editor.structure.api.DocumentModel$DocumentModelModificationTransaction.commit(DocumentModel.java:
960)
org.netbeans.modules.editor.structure.api.DocumentModel$DocumentModelModificationTransaction.access$200(DocumentModel.j
ava:845)
org.netbeans.modules.editor.structure.api.DocumentModel$2.run(DocumentModel.java:519)
java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:199)
java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:104)
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)
Comment 1 Samaresh Panda 2008-10-01 15:14:05 UTC
This is a known issue. Time and again I have said that the DocumentModel is not an efficient one. This can only be fixed
when we rewrite the Navigator. See 126968.

I personally want to do this. I'll have some cycles to do it post 6.5.
Comment 2 Svata Dedic 2013-04-08 09:50:55 UTC

*** This bug has been marked as a duplicate of bug 227432 ***