4 comments
Comment actions Permalink

Hi Nathan,

Thanks for this quite useful plugin.

Just installed latest 1.7.2 in 8.0 (build 9013) and within minutes run into a deadlock.
I think this had happened when I try to resolve a conflict and dragged conflict (red) changelist to appropriate place.
Hope that stack trace below will help.

Java-level deadlock

AWT-EventQueue-1 is waiting to lock java.lang.Object@1ac2104 which is held by Change List Updater
Change List Updater is waiting to lock java.awt.Component$AWTTreeLock@1f7fd59 which is held by AWT-EventQueue-1

Thread stacks

AWT-EventQueue-1
com.intellij.openapi.vcs.changes.ChangeListManagerImpl.isInUpdate(ChangeListManagerImpl.java:163)
com.intellij.openapi.vcs.changes.ui.ChangesBrowserChangeListNode.render(ChangesBrowserChangeListNode.java:32)
com.intellij.openapi.vcs.changes.ui.ChangesBrowserNodeRenderer.customizeCellRenderer(ChangesBrowserNodeRenderer.java:9)
com.intellij.ui.ColoredTreeCellRenderer.getTreeCellRendererComponent(ColoredTreeCellRenderer.java:97)
com.anecdote.ideaplugins.changesbar.ChangesBarProjectComponent$CustomChangeListNodeRenderer.getTreeCellRendererComponent(ChangesBarProjectComponent.java:1032)
javax.swing.plaf.basic.BasicTreeUI.paintRow(BasicTreeUI.java:1498)
javax.swing.plaf.basic.BasicTreeUI.paint(BasicTreeUI.java:1210)
javax.swing.plaf.ComponentUI.update(ComponentUI.java:143)
javax.swing.JComponent.paintComponent(JComponent.java:763)
javax.swing.JComponent.paint(JComponent.java:1027)
javax.swing.JComponent.paintChildren(JComponent.java:864)
javax.swing.JComponent.paint(JComponent.java:1036)
javax.swing.JViewport.paint(JViewport.java:747)
javax.swing.JComponent.paintChildren(JComponent.java:864)
javax.swing.JComponent.paint(JComponent.java:1036)
javax.swing.JComponent.paintChildren(JComponent.java:864)
javax.swing.JSplitPane.paintChildren(JSplitPane.java:1030)
javax.swing.JComponent.paint(JComponent.java:1036)
javax.swing.JComponent.paintChildren(JComponent.java:864)
javax.swing.JComponent.paint(JComponent.java:1036)
javax.swing.JComponent.paintToOffscreen(JComponent.java:5122)
javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1472)
javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1403)
javax.swing.RepaintManager.paint(RepaintManager.java:1217)
javax.swing.JComponent._paintImmediately(JComponent.java:5070)
javax.swing.JComponent.paintImmediately(JComponent.java:4880)
javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:803)
javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:714)
javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:694)
javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:128)
java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
com.intellij.ide.IdeEventQueue.c(IdeEventQueue.java:35)
com.intellij.ide.IdeEventQueue.b(IdeEventQueue.java:99)
com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:217)
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
java.awt.EventDispatchThread.run(EventDispatchThread.java:122)


Change List Updater
java.awt.Container.countComponents(Container.java:262)
java.awt.Container.getComponentCount(Container.java:253)
javax.swing.plaf.basic.BasicGraphicsUtils.getPreferredButtonSize(BasicGraphicsUtils.java:248)
javax.swing.plaf.basic.BasicButtonUI.getPreferredSize(BasicButtonUI.java:351)
com.sun.java.swing.plaf.windows.WindowsButtonUI.getPreferredSize(WindowsButtonUI.java:118)
com.anecdote.ideaplugins.changesbar.ChangesBar$ChangeListSelectionButton.updateButtonSize(ChangesBar.java:416)
com.anecdote.ideaplugins.changesbar.ChangesBar$ChangeListSelectionButton.setText(ChangesBar.java:367)
com.anecdote.ideaplugins.changesbar.ChangesBar.updateButtonText(ChangesBar.java:182)
com.anecdote.ideaplugins.changesbar.ChangesBar.updateButtonText(ChangesBar.java:201)
com.anecdote.ideaplugins.changesbar.ChangesBar.changeListUpdateDone(ChangesBar.java:211)
sun.reflect.GeneratedMethodAccessor91.invoke(unknown source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
com.intellij.util.EventDispatcher.dispatch(EventDispatcher.java:87)
com.intellij.util.EventDispatcher.access$100(EventDispatcher.java:33)
com.intellij.util.EventDispatcher$1.invoke(EventDispatcher.java:64)
$Proxy48.changeListUpdateDone(unknown source)
com.intellij.openapi.vcs.changes.ChangeListManagerImpl.a(ChangeListManagerImpl.java:354)
com.intellij.openapi.vcs.changes.ChangeListManagerImpl.access$600(ChangeListManagerImpl.java:137)
com.intellij.openapi.vcs.changes.ChangeListManagerImpl$ActualUpdater.consume(ChangeListManagerImpl.java:1)
com.intellij.openapi.vcs.changes.ChangeListManagerImpl$ActualUpdater.consume(ChangeListManagerImpl.java:4)
com.intellij.openapi.vcs.changes.UpdateRequestsQueue$MyRunnable.run(UpdateRequestsQueue.java:19)
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
java.util.concurrent.FutureTask.run(FutureTask.java:138)
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
java.lang.Thread.run(Thread.java:619)

0
Comment actions Permalink

Andrei Tokar wrote:

Hi Nathan,

Thanks for this quite useful plugin.

Just installed latest 1.7.2 in 8.0 (build 9013) and within minutes run into a deadlock.
I think this had happened when I try to resolve a conflict and dragged conflict (red) changelist to appropriate place.
Hope that stack trace below will help.


Thanks Andrei, I'll fix this asap.

Cheers,
N.

0
Comment actions Permalink

That should be fixed in 1.7.3 now available.

Cheers,
N.

0
Comment actions Permalink

Wow, your "asap" was really quick 8-)

Thank you

0

Please sign in to leave a comment.