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 110995

Summary: NbModuleProjectTypeProfiler.isFileObjectSupported blocks EQ
Product: profiler Reporter: Jesse Glick <jglick>
Component: BaseAssignee: J Bachorik <yardus>
Status: RESOLVED FIXED    
Severity: blocker Keywords: PERFORMANCE, THREAD
Priority: P3    
Version: 6.x   
Hardware: All   
OS: All   
Issue Type: DEFECT Exception Reporter:
Attachments: Thread dumps

Description Jesse Glick 2007-07-25 18:12:29 UTC
070725. I opened a Java source file (File > Recent Files) and the IDE froze for about a minute with no repaints. Culprit
appears to be Profiler code which blocks EQ refreshing some action.

BTW it is a secondary bug that the Profiler actions refresh their enablement state even when they are not visible. The
action being refreshed (as far as I can tell) is in a submenu of the Profile menu; the IDE really does not need to
compute its enablement state every time a file is opened - only if this menu is posted. o.o.u.a.NodeAction stops
listening to external events when it is not visible, and the Profiler actions should do the same.
Comment 1 Jesse Glick 2007-07-25 18:12:50 UTC
Created attachment 45700 [details]
Thread dumps
Comment 2 J Bachorik 2007-07-30 14:47:32 UTC
probably we will need to abandon the idea of dynamically enabled actions as it seems it incurs quite big overhead (and
worse yet on EDT).
the solution would be to have the actions consistent with run/debug - keep them enabled and in case there is eg. no main
method inform the user when he tries to invoke the action
Comment 3 J Bachorik 2007-07-31 12:54:32 UTC
this is fixed by removing the dynamic nature of the profiler action enablement. now the profiler action behavior mimics
the run/debug actions. if an information from the java infrastructure is needed to decide whether the action should be
enabled or not retrieving this information is postponed till the action is actually being performed and the action is
enabled by default. in case it's not possible to perform the action (eg. because of missing main method etc.) the user
is notified about this fact and the profiling session won't start
Comment 4 Jesse Glick 2007-07-31 19:18:56 UTC
Great, I think that makes a lot more sense.