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 170098 - 39s - expanding nodes can take ages
Summary: 39s - expanding nodes can take ages
Status: RESOLVED FIXED
Alias: None
Product: javaee
Classification: Unclassified
Component: Code (show other bugs)
Version: 6.x
Hardware: All All
: P2 blocker (vote)
Assignee: Denis Anisimov
URL: http://statistics.netbeans.org/except...
Keywords:
: 169888 170591 171744 (view as bug list)
Depends on:
Blocks:
 
Reported: 2009-08-09 18:33 UTC by Exceptions Reporter
Modified: 2009-09-16 01:49 UTC (History)
4 users (show)

See Also:
Issue Type: DEFECT
Exception Reporter: 155324


Attachments
nps snapshot (58.61 KB, bin/nps)
2009-08-09 18:33 UTC, Exceptions Reporter
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Exceptions Reporter 2009-08-09 18:33:21 UTC
Build: NetBeans IDE Dev (Build 200908022240)
VM: Java HotSpot(TM) Client VM, 1.5.0_15-b04, Java(TM) 2 Runtime Environment, Standard Edition, 1.5.0_15-b04
OS: Windows Vista, 6.0, x86
Maximum slowness yet reported was 39235 ms, average is 39235
Comment 1 Exceptions Reporter 2009-08-09 18:33:26 UTC
Created attachment 86011 [details]
nps snapshot
Comment 2 Jaroslav Tulach 2009-08-10 08:15:57 UTC
Tomáši, I guess we need the snapshot with wall-clock time to find out who the AWT thread is waiting for. Or am I wrong 
and you can find who the EntrySupport.getArray() is blocked by?
Comment 3 Tomas Hurka 2009-08-10 10:06:19 UTC
I think that it is blocked by 'Default RequestProcessor'  thread.
Comment 4 Jaroslav Tulach 2009-08-10 11:28:02 UTC
Thanks Tomáši. Yes, the thread that blocks the AWT is "Default RequestProcessor" and it computes something in web - 
e.g. calls addWebFragmentsAction. Itself it takes no execution time, but it needs data from parsing API (which can 
take ages). 

Please use other type of node, that can compute children asynchronously, without blocking the UI. Use 
Children.create(..., true):
http://bits.netbeans.org/dev/javadoc/org-openide-nodes/org/openide/nodes/Children.html#create(org.openide.nodes.ChildFactory, 
boolean)
Comment 5 Rastislav Komara 2009-08-10 12:24:49 UTC
*** Issue 169888 has been marked as a duplicate of this issue. ***
Comment 6 Petr Jiricka 2009-08-21 15:58:51 UTC
The code in question is in class org.netbeans.modules.web.project.ui.ConfFilesNodeFactory (trying to save time for
anyone who will next try to parse this nps file). Thanks Jardo for the suggestion.
Comment 7 Denis Anisimov 2009-08-28 18:31:39 UTC
Probably the main problem in this issue is the same as for #170141.
Problematic stack trace contains refreshFragments() method call also.

So I'm going to try experiment with refreshFragments() method ( see comments in #170141 ).
After this one still need to use Node which compute children asynchronously.
As suggested here.
Comment 8 Denis Anisimov 2009-08-31 20:43:56 UTC
First step to fix this issue :

changeset:   143285:553e290b4ca3
tag:         tip
user:        Denis Anisimov <ads@netbeans.org>
date:        Mon Aug 31 23:40:23 2009 +0400
Comment 9 Denis Anisimov 2009-09-01 18:41:28 UTC
changeset:   143286:aee057935c32
user:        Denis Anisimov <ads@netbeans.org>
date:        Tue Sep 01 21:23:58 2009 +0400
summary:     Suggested fix for IZ#170098 - 39s - expanding nodes can take ages
Comment 10 Quality Engineering 2009-09-04 03:52:32 UTC
Integrated into 'main-golden', will be available in build *200909032054* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main-golden/rev/2bfb124db1eb
User: Denis Anisimov <ads@netbeans.org>
Log: Minor fix for IZ#170098 - 38s in SetUriExecutionAction
Comment 11 David Konecny 2009-09-16 01:10:47 UTC
*** Issue 170591 has been marked as a duplicate of this issue. ***
Comment 12 David Konecny 2009-09-16 01:49:38 UTC
*** Issue 171744 has been marked as a duplicate of this issue. ***