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.
When I rename a node in Favorites via "Rename to ..." menu item (the one that shows a dialog to enter new name), the file is renamed just in the EDT thread. This can lead to UI freeze on slow file systems. Here is the stack. "AWT-EventQueue-1" org.netbeans.modules.remote.impl.fs.RemoteFileObjectBase.renameImpl(RemoteFileObjectBase.java:639) org.netbeans.modules.remote.impl.fs.RemoteFileObjectBase.rename(RemoteFileObjectBase.java:617) org.netbeans.modules.remote.impl.fs.RemoteFileObject.rename(RemoteFileObject.java:237) org.openide.loaders.DefaultDataObject.handleRename(DefaultDataObject.java:137) org.openide.loaders.DataObject$1Op.run(DataObject.java:761) org.openide.loaders.DataObject$1WrapRun.run(DataObject.java:971) org.openide.loaders.DataObjectPool$1WrapAtomicAction.run(DataObjectPool.java:261) org.openide.filesystems.EventControl.runAtomicAction(EventControl.java:127) org.openide.filesystems.FileSystem.runAtomicAction(FileSystem.java:609) org.openide.loaders.DataObjectPool.runAtomicAction(DataObjectPool.java:286) org.openide.loaders.DataObject.invokeAtomicAction(DataObject.java:991) org.openide.loaders.DataObject.rename(DataObject.java:776) org.openide.loaders.DataNode.setName(DataNode.java:157) org.openide.loaders.DataNode.setName(DataNode.java:178) org.openide.nodes.FilterNode.setName(FilterNode.java:487) org.openide.nodes.FilterNode.setName(FilterNode.java:487) org.openide.nodes.FilterNode.setName(FilterNode.java:487) org.netbeans.modules.favorites.FavoritesNode$ProjectFilterNode.setName(FavoritesNode.java:506) org.openide.actions.RenameAction.performAction(RenameAction.java:102) org.openide.util.actions.NodeAction$DelegateAction$1.run(NodeAction.java:586) org.openide.util.actions.ActionInvoker$1.run(ActionInvoker.java:95) org.openide.util.actions.ActionInvoker.doPerformAction(ActionInvoker.java:116) org.openide.util.actions.ActionInvoker.invokeAction(ActionInvoker.java:99) org.openide.util.actions.NodeAction$DelegateAction.actionPerformed(NodeAction.java:583) javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) javax.swing.AbstractButton.doClick(AbstractButton.java:376) javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833) javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877) java.awt.Component.processMouseEvent(Component.java:6505) javax.swing.JComponent.processMouseEvent(JComponent.java:3321) java.awt.Component.processEvent(Component.java:6270) java.awt.Container.processEvent(Container.java:2229) java.awt.Component.dispatchEventImpl(Component.java:4861) java.awt.Container.dispatchEventImpl(Container.java:2287) java.awt.Component.dispatchEvent(Component.java:4687) java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492) java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) java.awt.Container.dispatchEventImpl(Container.java:2273) java.awt.Window.dispatchEventImpl(Window.java:2719) java.awt.Component.dispatchEvent(Component.java:4687) java.awt.EventQueue.dispatchEventImpl(EventQueue.java:723) java.awt.EventQueue.access$200(EventQueue.java:103) java.awt.EventQueue$3.run(EventQueue.java:682) java.awt.EventQueue$3.run(EventQueue.java:680) java.security.AccessController.doPrivileged(AccessController.java) java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) java.awt.EventQueue$4.run(EventQueue.java:696) java.awt.EventQueue$4.run(EventQueue.java:694) java.security.AccessController.doPrivileged(AccessController.java) java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) java.awt.EventQueue.dispatchEvent(EventQueue.java:693) org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159) java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244) java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163) java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139) java.awt.EventDispatchThread.run(EventDispatchThread.java:97)
org.openide.actions.RenameAction could hack it the same way as org.openide.explorer.view.ViewUtil.nodeRename
fix: http://hg.netbeans.org/core-main/rev/3140edea7b6a
I've used the same approach as in ViewUtil.nodeRename as Ondra suggested.
Integrated into 'main-silver', will be available in build *201308212300* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress) Changeset: http://hg.netbeans.org/main-silver/rev/3140edea7b6a User: Jan Peska <JPESKA@netbeans.org> Log: Issue #234629 - Node should not be renamed in EDT thread Perform rename out of EDT in case of slow FS