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 169802

Summary: [69cat] CodeStructure.getExternalVariableName() too long in AWT thread
Product: guibuilder Reporter: Michal Mocnak <mmocnak>
Component: CodeAssignee: issues@guibuilder <issues>
Status: NEW ---    
Severity: blocker CC: exceptions_reporter, juhrik, lolo_101, misterm, neoiha, stefan79
Priority: P3 Keywords: PERFORMANCE
Version: 6.x   
Hardware: All   
OS: All   
URL: http://statistics.netbeans.org/exceptions/detail.do?id=154834
Issue Type: DEFECT Exception Reporter: 154834
Attachments: nps snapshot
nps snapshot

Description Michal Mocnak 2009-08-04 11:20:59 UTC
Build: NetBeans IDE Dev (Build 200908040201)
VM: Java HotSpot(TM) Client VM, 1.5.0_19-137, Java(TM) 2 Runtime Environment, Standard Edition, 1.5.0_19-b02-304
OS: Mac OS X, 10.5.7, i386

User Comments:
mmocnak: Drag jlabel component from palette


Maximum slowness yet reported was 6611 ms, average is 6611
Comment 1 Michal Mocnak 2009-08-04 11:21:18 UTC
Created attachment 85753 [details]
nps snapshot
Comment 2 Jan Stola 2009-10-05 16:25:30 UTC
The following invocations seem to be the root of this problem:

MetaComponentCreator.createVisualComponent()
->CodeStructure.getExternalVariableName()
  ->FormJavaSource.refresh()
    ->parsing of .java file is invoked and AWT thread waits for its result
Comment 3 Jan Stola 2010-02-05 03:57:42 UTC
*** Bug 180296 has been marked as a duplicate of this bug. ***
Comment 4 lolo_101 2010-02-23 02:41:33 UTC
Created attachment 94412 [details]
nps snapshot
Comment 5 misterm 2010-07-28 15:55:08 UTC
Any chance this could get looked at?
Comment 6 Tomas Pavek 2010-07-28 16:29:22 UTC
It's pretty much clear what's happening, but not how to solve it. GUI builder is creating a new component from palette, and needs to know what variable name it can use for it. But if java infrastructure takes long to respond (e.g. busy with some other stuff), then it must wait. It's bad it waits in AWT event queue thread.

Maybe we could show a modal dialog saying "Obtaining a variable name, please wait..." if we don't get the name out of AWT thread in certain time. But we won't make it faster.