Build: NetBeans IDE 6.8 Beta (Build 200910212001)
VM: Java HotSpot(TM) Client VM, 14.1-b02-90, Java(TM) SE Runtime Environment, 1.6.0_15-b03-219
OS: Mac OS X, 10.6.2, i386
Maximum slowness yet reported was 148088 ms, average is 148088
Created attachment 91300 [details]
Reassigning to default owner.
Thread "AWT-EventQueue-1" is repainting main window and all its contents which is hanging in
where it is waiting to enter synchronized block on DataObjectPool object
All the other activity gathered in the snapshot shows that a way too much filesystem refreshing is running in several threads concurrently. And the threads are blocking each other repeatedly in synchronized accesses to various FS/DO related methods, e.g.
* thread "FileUtil-Refresh-All" refreshing all known files after NB main window got focus (thread "Refresh-After-WindowActivated" is waiting for the refresh to finish)
* thread "Subversion - file status refresh"
* thread "Default Request Processor" running a maven goal and calling org.netbeans.core.NbTopManager$NbLifecycleManager.saveAll() first which is also refreshing status of some files
* thread "exec_Run preniro_17" which prepares for deploy operation in
org.netbeans.modules.maven.j2ee.ExecutionChecker.performDeploy() by calling into org.openide.filesystems.FileUtil.refreshFor()
The aggressive refresh of all known files is fixed in 7.0 with the native filesystem listeners.
A question here is if org.netbeans.modules.maven.j2ee.ExecutionChecker.performDeploy() needs to be calling FileUtil.refreshFor().
Reassigning to javaee/maven for evaluation of this last point. Otherwise, the issue can be closed in 7.0.
(In reply to comment #3)
> A question here is if
> org.netbeans.modules.maven.j2ee.ExecutionChecker.performDeploy() needs to be
> calling FileUtil.refreshFor().
I have no idea. I'm guessing that reason for that call is to make sure that any external modifications of Maven config files are used for deployment.
If there is a strong performance reason to remove that code then I would remove it. I think it should be safe. And if not then users would speak up and at least we would know what is it there for. For now I'm leaving this as is.