You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by "Geertjan Wielenga (JIRA)" <ji...@apache.org> on 2018/05/01 11:37:00 UTC

[jira] [Commented] (NETBEANS-373) Netbeans sometimes freezes when showing any refactor dialog when running with jdk 1.8.0_152-b16 or later

    [ https://issues.apache.org/jira/browse/NETBEANS-373?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16459629#comment-16459629 ] 

Geertjan Wielenga commented on NETBEANS-373:
--------------------------------------------

I think [~timboudreau] has the most recent analysis of the way forward here:
{quote}The bug is really in the JDK.  Here we just need to find an effective workaround.  In this case, replanning the listener add to the event thread will do the job - we just need to verify what the actual code path and target component that's triggering the deadlock is.

Most likely it is the accessible component created by the dialog, simply because there is a decent chance of another thread getting hold of the dialog thanks to the native peer being assigned when pack() is called.{quote}

> Netbeans sometimes freezes when showing any refactor dialog when running with jdk 1.8.0_152-b16 or later
> --------------------------------------------------------------------------------------------------------
>
>                 Key: NETBEANS-373
>                 URL: https://issues.apache.org/jira/browse/NETBEANS-373
>             Project: NetBeans
>          Issue Type: Bug
>          Components: java - Refactoring
>    Affects Versions: 8.2, 9.0
>         Environment: Mac
>            Reporter: Austin Stephens
>            Priority: Blocker
>             Fix For: 9.0
>
>         Attachments: Screen Shot 2018-04-02 at 11.22.11 AM.png, Screen Shot 2018-04-02 at 11.23.15 AM.png, nbpresenter.diff
>
>
> Sometimes (or almost always), when you try to do some refactor action, NetBeans freezes. It appears that a lock is obtained on a panel when the dialog is shown, and the AppKit Thread tries to get the lock while trying to add an accessible listener to it.
> AppKit Thread:
> {code:java}
> Container.addContainerListener:2142    
> Container$AccessibleAWTContainer.addPropertyChangeListener:3885    
> JComponent$AccessibleJComponent.addPropertyChangeListener:3765    
> Hidden Source Calls    
> CAccessible.addNotificationListeners:102    
> CAccessible.<init>:84    
> CAccessible.getCAccessible:60
> {code}
> EDT Thread:
> {code:java}
> Hidden Source Calls    
> Unsafe.park    
> LockSupport.park:194    
> AbstractQueuedSynchronizer$ConditionObject.await:2062    
> EventQueue.getNextEvent:557    
> EventDispatchThread.pumpOneEventForFilters:173    
> EventDispatchThread.pumpEventsForFilter:124    
> EventDispatchThread.pumpEventsForFilter:117    
> WaitDispatchSupport$2.run:190    
> WaitDispatchSupport$4.run:235    
> WaitDispatchSupport$4.run:233    
> AccessController.doPrivileged    
> WaitDispatchSupport.enter:233    
> Dialog.show:1070    
> NbPresenter.superShow:1060    
> NbPresenter.doShow:1110    
> NbPresenter.run:1082    
> NbPresenter.run:105    
> NbMutexEventProvider$Event.doEventAccess:115    
> NbMutexEventProvider$Event.readAccess:75    
> LazyMutexImplementation.readAccess:71    
> Mutex.readAccess:193    
> NbPresenter.show:1067    
> Component.show:1669    
> Component.setVisible:1616    
> Window.setVisible:1017    
> Dialog.setVisible:1005    
> ParametersPanel.showDialog:674    
> RefactoringPanel.refresh:660    
> RefactoringPanel.<init>:144    
> UI.openRefactoringUI:61    
> ContextAnalyzer$4.show:648    
> ContextAnalyzer$TextComponentTask.run:369    
> RefactoringActionsProvider.doFindUsages:232    
> ActionsImplementationFactory.doFindUsages:91    
> WhereUsedAction.performAction:52    
> RefactoringGlobalAction$ContextAction.actionPerformed:172    
> TopComponent.processKeyBinding:1151    
> JComponent.processKeyBindings:2963    
> JComponent.processKeyEvent:2863    
> Component.processEvent:6355    
> Container.processEvent:2259    
> Component.dispatchEventImpl:4961    
> Container.dispatchEventImpl:2317    
> Component.dispatchEvent:4793    
> KeyboardFocusManager.redispatchEvent:1955    
> DefaultKeyboardFocusManager.dispatchKeyEvent:827    
> DefaultKeyboardFocusManager.preDispatchKeyEvent:1096    
> DefaultKeyboardFocusManager.typeAheadAssertions:966    
> DefaultKeyboardFocusManager.dispatchEvent:792    
> Component.dispatchEventImpl:4842    
> Container.dispatchEventImpl:2317    
> Window.dispatchEventImpl:2758    
> Component.dispatchEvent:4793    
> EventQueue.dispatchEventImpl:766    
> EventQueue.access$500:97    
> EventQueue$3.run:717    
> EventQueue$3.run:711    
> AccessController.doPrivileged    
> ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege:89    
> ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege:99    
> EventQueue$4.run:739    
> EventQueue$4.run:737    
> AccessController.doPrivileged    
> ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege:89    
> EventQueue.dispatchEvent:736    
> TimableEventQueue.dispatchEvent:136    
> EventDispatchThread.pumpOneEventForFilters:199    
> EventDispatchThread.pumpEventsForFilter:124    
> EventDispatchThread.pumpEventsForHierarchy:113    
> EventDispatchThread.pumpEvents:109    
> EventDispatchThread.pumpEvents:101    
> EventDispatchThread.run:90   
> {code}
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists