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 238211

Summary: org.netbeans.modules.project.ui.ProjectChooserAccessory$ProjectFileView.getIcon: LowPerformance took 41782 ms.
Product: projects Reporter: Exceptions Reporter <exceptions_reporter>
Component: Generic InfrastructureAssignee: Milos Kleint <mkleint>
Status: RESOLVED FIXED    
Severity: normal Keywords: PERFORMANCE
Priority: P3    
Version: 7.4   
Hardware: All   
OS: All   
Issue Type: DEFECT Exception Reporter: 205148
Attachments: nps snapshot

Description Exceptions Reporter 2013-11-11 01:15:32 UTC
This bug was originally marked as duplicate of bug 233480, that is already resolved. This bug is still valid, so this seems to be another bug, but it might be related.

Build: NetBeans IDE 7.4 (Build 201310111528)
VM: Java HotSpot(TM) Client VM, 23.25-b01, Java(TM) SE Runtime Environment, 1.7.0_25-b16
OS: Windows XP

User Comments:
GUEST: ?????samba?????????????????????



Maximum slowness yet reported was 41782 ms, average is 41782
Comment 1 Exceptions Reporter 2013-11-11 01:15:34 UTC
Created attachment 142042 [details]
nps snapshot
Comment 2 Milos Kleint 2013-12-02 08:09:37 UTC
File.exists() is present in ProjectChooserAccessory.ProjectFileView.getIcon() because of issue 159646 which is a workaround for JDK issue #6357445
Comment 3 Milos Kleint 2013-12-02 11:44:25 UTC
I've reworked the code section to avoid calls to io intensive methods.

http://hg.netbeans.org/core-main/rev/ec18a34043d2

the drawback is that the background work will now be done not only for directories but also for files
Comment 4 Quality Engineering 2013-12-03 03:07:55 UTC
Integrated into 'main-silver', will be available in build *201312030002* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)

Changeset: http://hg.netbeans.org/main-silver/rev/ec18a34043d2
User: Milos Kleint <mkleint@netbeans.org>
Log: #238211 rewritten to avoid making io level calls in getIcon() method, the drawback is that the off-AWT calculation has to happen for files as well as directories