Rearranger hangs IDEA on Ctrl-Comma

See topic. When i hit Ctrl-Comma to get the live rearranger popup, IDEA hangs almost every time.

I'm running on linux, if it makes any difference.

/Kreiger

4 comments

Someone else reported this also, but I was unable to reproduce it. Could you please turn on debugging and send me the output?

To enable debugging, put the following in your /bin/log.xml file just before the final element. ]]>

and be sure that the console is enabled in idea.lax for stderr and stdout redirection (search for "console" and add it to the respective properties.) Then restart IDEA.

Do a live rearrangement and hang IDEA. Then press Ctrl-Break in the console window to generate a thread dump; this should tell us what thread is hung and where.

Please also tell me:

Does the initial small popup "Live Rearranger parsing file..." appear?

Does the final live rearranger popup appear?

Thanks very much,
-Dave

0

Dave Kriewall wrote:

Someone else reported this also, but I was unable to reproduce it. Could you please turn on debugging and send me the output?

To enable debugging, put the following in your <idea>/bin/log.xml file just before the final <root> element.

<category name="com.wrq.rearranger">
<priority value="DEBUG"/>
<appender-ref ref="CONSOLE-DEBUG"/>
</category>

Done, please find attached the output of idea when attempting a live rearrange.

and be sure that the console is enabled in idea.lax for stderr and stdout redirection (search for "console" and add it to the respective properties.) Then restart IDEA.

I don't have a file named idea.lax, i'm using Aurora.

Do a live rearrangement and hang IDEA. Then press Ctrl-Break in the console window to generate a thread dump; this should tell us what thread is hung and where.

A Ctrl-Break didn't give me a thread dump, probably because i'm on linux. I don't know how to generate one.

Please also tell me:

Does the initial small popup "Live Rearranger parsing file..." appear?

No

Does the final live rearranger popup appear?

No

Thanks very much,
-Dave

Thank you very much for an excellent plugin.

/Kreiger
DEBUG - com.wrq.rearranger - constructor called
DEBUG - com.wrq.rearranger - did not find class org.intellij.psi.codeStyle.RearrangerUtility
DEBUG - com.wrq.rearranger - rearranger.readExternal()
DEBUG - com.wrq.rearranger - element 'Rearranger' seen; configuration loading
DEBUG - com.wrq.rearranger - element has 10 children
DEBUG - com.wrq.rearranger - initComponent()
DEBUG - com.wrq.rearranger - rearranger.writeExternal()
DEBUG - er.LiveRearrangerActionHandler - project=com.intellij.openapi.project.a.d@618821
DEBUG - er.LiveRearrangerActionHandler - editor=com.intellij.openapi.editor.b.m@6e1eba
DEBUG - er.LiveRearrangerActionHandler - inProgress=false
DEBUG - er.LiveRearrangerActionHandler - set inProgress=true
DEBUG - er.LiveRearrangerActionHandler - started thread Live Rearranger parser
DEBUG - er.LiveRearrangerActionHandler - enter application.runReadAction() on thread Live Rearranger parser
DEBUG - er.LiveRearrangerActionHandler - liveRearrangeDocument task started
DEBUG - er.LiveRearrangerActionHandler - enter liveRearrangeDocument on thread Live Rearranger parser
DEBUG - er.LiveRearrangerActionHandler - exit buildLiveRearrangerData on thread AWT-EventQueue-1

0

I've now managed to get a thread dump. (Send SIGQUIT to the JVM, if anyone's interested.)

The attached file is standard output of idea, hanging on second try of Ctrl-Comma.

/Kreiger
DEBUG - com.wrq.rearranger - constructor called
DEBUG - com.wrq.rearranger - did not find class org.intellij.psi.codeStyle.RearrangerUtility
StringifyApplicationPlugin: initComponent
DEBUG - com.wrq.rearranger - rearranger.readExternal()
DEBUG - com.wrq.rearranger - element 'Rearranger' seen; configuration loading
DEBUG - com.wrq.rearranger - element has 10 children
DEBUG - com.wrq.rearranger - initComponent()
Installing oracle.jdbc.driver.OracleDriver...Class not found
Installing com.mysql.jdbc.Driver...Class not found
Installing org.gjt.mm.mysql.Driver...Class not found
Installing sun.jdbc.odbc.JdbcOdbcDriver...Done
Installing com.sybase.jdbc2.jdbc.SybDriver...Class not found
Installing com.sybase.jdbc.SybDriver...Class not found
Installing com.microsoft.jdbc.sqlserver.SQLServerDriver...Done
Installing com.ddtek.jdbc.sqlserver.SQLServerDriver...Class not found
Installing org.firebirdsql.jdbc.FBDriver...Class not found
Installing org.postgresql.Driver...Class not found
Installing com.ibm.as400.access.AS400JDBCDriver...Class not found
Installing com.informix.jdbc.IfxDriver...Class not found
DEBUG - er.LiveRearrangerActionHandler - project=com.intellij.openapi.project.a.d@157816a
DEBUG - er.LiveRearrangerActionHandler - editor=com.intellij.openapi.editor.b.m@73a5c0
DEBUG - er.LiveRearrangerActionHandler - inProgress=false
DEBUG - er.LiveRearrangerActionHandler - set inProgress=true
DEBUG - er.LiveRearrangerActionHandler - started thread Live Rearranger parser
DEBUG - er.LiveRearrangerActionHandler - exit buildLiveRearrangerData on thread AWT-EventQueue-1
DEBUG - er.LiveRearrangerActionHandler - enter application.runReadAction() on thread Live Rearranger parser
DEBUG - er.LiveRearrangerActionHandler - liveRearrangeDocument task started
DEBUG - er.LiveRearrangerActionHandler - enter liveRearrangeDocument on thread Live Rearranger parser
DEBUG - nger.popup.LiveRearrangerPopup - initial outerPanel size=java.awt.Dimension[width=1533,height=1149], tempPanel preferred size=java.awt.Dimension[width=185,height=29]
DEBUG - nger.popup.LiveRearrangerPopup - Constructing initial Popup at x,y=674,560
DEBUG - nger.popup.LiveRearrangerPopup - setCursor (WAIT)java.awt.Cursor[Väntemarkör] on com.intellij.openapi.wm.impl.s[frame0,0,0,1533x1149,invalid,layout=java.awt.BorderLayout,title=imCMS-1.8.ipr - - /home/kreiger/work/imCMS/1_8-BRANCH/1.3/server/src/imcode/external/diverse/HtmlGenerator.java - IntelliJ IDEA 4.0,resizable,normal,defaultCloseOperation=DO_NOTHING_ON_CLOSE,rootPane=com.intellij.openapi.wm.impl.y[,5,22,1523x1122,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=null,alignmentY=null,border=,flags=385,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
DEBUG - rq.rearranger.entry.ClassEntry - PsiJavaFile:HtmlGenerator.java child 3:PsiWhiteSpace
DEBUG - rq.rearranger.entry.ClassEntry - PsiJavaFile:HtmlGenerator.java child 4:PsiClass:HtmlGenerator
DEBUG - rq.rearranger.entry.ClassEntry - PsiClass:HtmlGenerator child 0:PsiModifierList:public
DEBUG - rq.rearranger.entry.ClassEntry - PsiClass:HtmlGenerator child 1:PsiWhiteSpace
DEBUG - rq.rearranger.entry.ClassEntry - PsiClass:HtmlGenerator child 2:PsiKeyword:class
DEBUG - rq.rearranger.entry.ClassEntry - PsiClass:HtmlGenerator child 3:PsiWhiteSpace
DEBUG - rq.rearranger.entry.ClassEntry - PsiClass:HtmlGenerator child 4:PsiIdentifier:HtmlGenerator
DEBUG - rq.rearranger.entry.ClassEntry - PsiClass:HtmlGenerator child 5:PsiTypeParameterList
DEBUG - rq.rearranger.entry.ClassEntry - PsiClass:HtmlGenerator child 6:PsiReferenceList
DEBUG - rq.rearranger.entry.ClassEntry - PsiClass:HtmlGenerator child 7:PsiReferenceList
DEBUG - rq.rearranger.entry.ClassEntry - PsiClass:HtmlGenerator child 8:PsiWhiteSpace
DEBUG - rq.rearranger.entry.ClassEntry - PsiClass:HtmlGenerator child 9:PsiJavaToken:LBRACE
DEBUG - rq.rearranger.entry.ClassEntry - PsiClass:HtmlGenerator child 10:PsiWhiteSpace
DEBUG - rq.rearranger.entry.ClassEntry - PsiClass:HtmlGenerator child 11:PsiField:HTML_TEMPLATE
DEBUG - rq.rearranger.entry.ClassEntry - PsiClass:HtmlGenerator child 12:PsiWhiteSpace
DEBUG - rq.rearranger.entry.ClassEntry - PsiClass:HtmlGenerator child 13:PsiMethod:HtmlGenerator
DEBUG - rq.rearranger.entry.ClassEntry - checking to see if HtmlGenerator of PsiClass:HtmlGenerator is canonical
DEBUG - rq.rearranger.entry.ClassEntry - method PsiMethod:HtmlGenerator has 0 supermethods
DEBUG - rq.rearranger.entry.ClassEntry - method PsiMethod:HtmlGenerator is constructor
DEBUG - rq.rearranger.entry.ClassEntry - PsiClass:HtmlGenerator child 14:PsiWhiteSpace
DEBUG - rq.rearranger.entry.ClassEntry - PsiClass:HtmlGenerator child 15:PsiMethod:HtmlGenerator
DEBUG - rq.rearranger.entry.ClassEntry - checking to see if HtmlGenerator of PsiClass:HtmlGenerator is canonical
DEBUG - rq.rearranger.entry.ClassEntry - method PsiMethod:HtmlGenerator has 0 supermethods
DEBUG - rq.rearranger.entry.ClassEntry - method PsiMethod:HtmlGenerator is constructor
DEBUG - rq.rearranger.entry.ClassEntry - PsiClass:HtmlGenerator child 16:PsiWhiteSpace
DEBUG - rq.rearranger.entry.ClassEntry - PsiClass:HtmlGenerator child 17:PsiMethod:HtmlGenerator
DEBUG - rq.rearranger.entry.ClassEntry - checking to see if HtmlGenerator of PsiClass:HtmlGenerator is canonical
DEBUG - rq.rearranger.entry.ClassEntry - method PsiMethod:HtmlGenerator has 0 supermethods
DEBUG - rq.rearranger.entry.ClassEntry - method PsiMethod:HtmlGenerator is constructor
DEBUG - rq.rearranger.entry.ClassEntry - PsiClass:HtmlGenerator child 18:PsiWhiteSpace
DEBUG - rq.rearranger.entry.ClassEntry - PsiClass:HtmlGenerator child 19:PsiMethod:sendToBrowser
DEBUG - rq.rearranger.entry.ClassEntry - checking to see if sendToBrowser of PsiClass:HtmlGenerator is canonical
DEBUG - rq.rearranger.entry.ClassEntry - method PsiMethod:sendToBrowser has 0 supermethods
DEBUG - rq.rearranger.entry.ClassEntry - method PsiMethod:sendToBrowser is other
DEBUG - rq.rearranger.entry.ClassEntry - PsiClass:HtmlGenerator child 20:PsiWhiteSpace
DEBUG - rq.rearranger.entry.ClassEntry - PsiClass:HtmlGenerator child 21:PsiMethod:createHtmlString
DEBUG - rq.rearranger.entry.ClassEntry - checking to see if createHtmlString of PsiClass:HtmlGenerator is canonical
DEBUG - rq.rearranger.entry.ClassEntry - method PsiMethod:createHtmlString has 0 supermethods
DEBUG - rq.rearranger.entry.ClassEntry - method PsiMethod:createHtmlString is other
DEBUG - rq.rearranger.entry.ClassEntry - PsiClass:HtmlGenerator child 22:PsiWhiteSpace
DEBUG - rq.rearranger.entry.ClassEntry - PsiClass:HtmlGenerator child 23:PsiMethod:createHtmlString
DEBUG - rq.rearranger.entry.ClassEntry - checking to see if createHtmlString of PsiClass:HtmlGenerator is canonical
DEBUG - rq.rearranger.entry.ClassEntry - method PsiMethod:createHtmlString has 0 supermethods
DEBUG - rq.rearranger.entry.ClassEntry - method PsiMethod:createHtmlString is other
DEBUG - rq.rearranger.entry.ClassEntry - PsiClass:HtmlGenerator child 24:PsiWhiteSpace
DEBUG - rq.rearranger.entry.ClassEntry - PsiClass:HtmlGenerator child 25:PsiJavaToken:RBRACE
DEBUG - rq.rearranger.entry.ClassEntry - PsiJavaFile:HtmlGenerator.java child 5:PsiWhiteSpace
DEBUG - rq.rearranger.entry.ClassEntry - building method call & getter-setter graph
DEBUG - rq.rearranger.entry.ClassEntry - determining extracted methods
DEBUG - q.rearranger.entry.MethodEntry - determined PsiMethod:HtmlGenerator is extracted method? false
DEBUG - q.rearranger.entry.MethodEntry - determined PsiMethod:HtmlGenerator is extracted method? false
DEBUG - q.rearranger.entry.MethodEntry - determined PsiMethod:HtmlGenerator is extracted method? false
DEBUG - q.rearranger.entry.MethodEntry - determined PsiMethod:sendToBrowser is extracted method? false
DEBUG - q.rearranger.entry.MethodEntry - determined PsiMethod:createHtmlString is extracted method? false
DEBUG - q.rearranger.entry.MethodEntry - determined PsiMethod:createHtmlString is extracted method? false
DEBUG - q.rearranger.entry.MethodEntry - entered handleOverloadedMethods(): move overloaded methods together
DEBUG - earrangement.GenericRearranger - rule:]]>; entry matched:PsiField:HTML_TEMPLATE
DEBUG - earrangement.GenericRearranger - rule:]]>; entry matched:PsiMethod:HtmlGenerator
DEBUG - earrangement.GenericRearranger - rule:]]>; entry matched:PsiMethod:HtmlGenerator
DEBUG - earrangement.GenericRearranger - rule:]]>; entry matched:PsiMethod:HtmlGenerator
DEBUG - earrangement.GenericRearranger - rule:]]>; entry matched:PsiMethod:sendToBrowser
DEBUG - earrangement.GenericRearranger - rule:]]>; entry matched:PsiMethod:createHtmlString
DEBUG - earrangement.GenericRearranger - rule:]]>; entry matched:PsiMethod:createHtmlString
DEBUG - earrangement.GenericRearranger - rule:com.wrq.rearranger.settings.attributeGroups.TrailerRule@13c6a55; entry matched:PsiJavaToken:RBRACE
DEBUG - earrangement.GenericRearranger - rule:com.wrq.rearranger.settings.attributeGroups.HeaderRule@10b434b; entry matched:PsiImportList
DEBUG - earrangement.GenericRearranger - rule:]]>; entry matched:PsiJavaToken:LBRACE
DEBUG - earrangement.GenericRearranger - rule:com.wrq.rearranger.settings.attributeGroups.TrailerRule@6ef176; entry matched:PsiWhiteSpace
DEBUG - nger.popup.LiveRearrangerPopup - expand node candidate not RangeEntry; node=com.wrq.rearranger.popup.LiveRearrangerPopup$1@315883
DEBUG - earranger.popup.TreeDragSource - construct TreeDragSource, actions=2
DEBUG - m.wrq.rearranger.util.IconUtil - imageIcon retrieved from URL is 28 wide, 28 high
DEBUG - m.wrq.rearranger.util.IconUtil - imageIcon retrieved from URL is 28 wide, 28 high
DEBUG - m.wrq.rearranger.util.IconUtil - imageIcon retrieved from URL is 28 wide, 28 high
DEBUG - m.wrq.rearranger.util.IconUtil - imageIcon retrieved from URL is 28 wide, 28 high
DEBUG - nger.popup.LiveRearrangerPopup - containerPanel.isFocusable=true
DEBUG - nger.popup.LiveRearrangerPopup - setCursor (original)java.awt.Cursor[Standardmarkör] on com.intellij.openapi.wm.impl.s[frame0,0,0,1533x1149,invalid,layout=java.awt.BorderLayout,title=imCMS-1.8.ipr - - /home/kreiger/work/imCMS/1_8-BRANCH/1.3/server/src/imcode/external/diverse/HtmlGenerator.java - IntelliJ IDEA 4.0,resizable,normal,defaultCloseOperation=DO_NOTHING_ON_CLOSE,rootPane=com.intellij.openapi.wm.impl.y[,5,22,1523x1122,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=null,alignmentY=null,border=,flags=385,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
DEBUG - nger.popup.LiveRearrangerPopup - outerPanel size=java.awt.Dimension[width=1533,height=1149], containerPanel preferred size=java.awt.Dimension[width=410,height=421]
DEBUG - nger.popup.LiveRearrangerPopup - Constructing Popup at x,y=561,364
DEBUG - er.LiveRearrangerActionHandler - set inProgress=true
DEBUG - nger.popup.LiveRearrangerPopup - exit liveRearranger
DEBUG - er.LiveRearrangerActionHandler - exit liveRearrangeDocument on thread Live Rearranger parser
DEBUG - er.LiveRearrangerActionHandler - exit application.runReadAction() on thread Live Rearranger parser
DEBUG - nger.popup.LiveRearrangerPopup - focus owner: mouse clicked at 190,921; window size/position is java.awt.Rectangle[x=0,y=0,width=1533,height=1149]
DEBUG - nger.popup.LiveRearrangerPopup - close popup and finish
DEBUG - nger.popup.LiveRearrangerPopup - entered finish() on thread AWT-EventQueue-1
DEBUG - nger.popup.LiveRearrangerPopup - no rearrangement occurred, not rearranging document
DEBUG - er.LiveRearrangerActionHandler - set inProgress=false
DEBUG - er.LiveRearrangerActionHandler - project=com.intellij.openapi.project.a.d@157816a
DEBUG - er.LiveRearrangerActionHandler - editor=com.intellij.openapi.editor.b.m@73a5c0
DEBUG - er.LiveRearrangerActionHandler - inProgress=false
DEBUG - er.LiveRearrangerActionHandler - set inProgress=true
DEBUG - er.LiveRearrangerActionHandler - started thread Live Rearranger parser
DEBUG - er.LiveRearrangerActionHandler - enter application.runReadAction() on thread Live Rearranger parser
DEBUG - er.LiveRearrangerActionHandler - liveRearrangeDocument task started
DEBUG - er.LiveRearrangerActionHandler - enter liveRearrangeDocument on thread Live Rearranger parser
DEBUG - er.LiveRearrangerActionHandler - exit buildLiveRearrangerData on thread AWT-EventQueue-1
Full thread dump Java HotSpot(TM) Client VM (1.4.2_03-b02 mixed mode):

"Live Rearranger parser" prio=1 tid=0x085bcc60 nid=0x363 in Object.wait()
at java.lang.Object.wait(Native Method)
- waiting on (a java.awt.EventQueue$1AWTInvocationLock) at java.lang.Object.wait(Object.java:429) at java.awt.EventQueue.invokeAndWait(EventQueue.java:829) - locked <0x449d9558> (a java.awt.EventQueue$1AWTInvocationLock) at javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1225) at com.wrq.rearranger.popup.LiveRearrangerPopup.]]>(LiveRearrangerPopup.java:114)
at com.wrq.rearranger.LiveRearrangerActionHandler.liveRearrangeDocument(LiveRearrangerActionHandler.java:165)
at com.wrq.rearranger.LiveRearrangerActionHandler$1.run(LiveRearrangerActionHandler.java:131)
at com.wrq.rearranger.LiveRearrangerActionHandler$3.run(LiveRearrangerActionHandler.java:144)
at com.intellij.openapi.application.a.b.runReadAction(b.java:61)
at com.wrq.rearranger.LiveRearrangerActionHandler$2.run(LiveRearrangerActionHandler.java:141)
at java.lang.Thread.run(Thread.java:534)

"EditorCaretThread" prio=1 tid=0x08528430 nid=0x339 waiting on condition
at java.lang.Thread.sleep(Native Method)
at com.intellij.openapi.editor.b.m$bh_.run(m$bh_.java:12)

"Thread-3" daemon prio=1 tid=0x086d9a38 nid=0x32b sleeping[bd5ff000..bd5ff8d8]
at java.lang.Thread.sleep(Native Method)
at com.webspherious.log4jmonitor.log4j.MyTableModel$Processor.run(MyTableModel.java:65)
at java.lang.Thread.run(Thread.java:534)

"AWT-EventQueue-1" prio=1 tid=0x0813b298 nid=0x32a in Object.wait()
at java.lang.Object.wait(Native Method)
- waiting on (a com.intellij.util.c.j$c_) at java.lang.Object.wait(Object.java:429) at com.intellij.util.c.j$c_.b(j$c_.java:29) - locked <0x46dd0a40> (a com.intellij.util.c.j$c_) at com.intellij.openapi.application.a.b.runWriteAction(b.java:239) at com.intellij.cvsSupport2.application.DeletedCVSDirectoryStorage.c(DeletedCVSDirectoryStorage.java:3) - locked <0x473fb9c0>]]> (a com.intellij.cvsSupport2.application.DeletedCVSDirectoryStorage)
at com.intellij.cvsSupport2.application.CvsStorageSupportingDeletionComponent.h(CvsStorageSupportingDeletionComponent.java:81)
at com.intellij.cvsSupport2.application.CvsStorageSupportingDeletionComponent.commandFinished(CvsStorageSupportingDeletionComponent.java:67)
at com.intellij.openapi.command.impl.a.e(a.java:95)
at com.intellij.openapi.command.impl.a.b(a.java:26)
at com.intellij.openapi.command.impl.a.executeCommand(a.java:72)
at com.intellij.openapi.editor.actionSystem.EditorAction.actionPerformed(EditorAction.java:8)
at com.intellij.openapi.editor.actionSystem.EditorAction.actionPerformed(EditorAction.java:10)
at com.intellij.openapi.a.b.d.a(d.java:123)
at com.intellij.openapi.a.b.d.b(d.java:28)
at com.intellij.openapi.a.b.d.a(d.java:2)
at com.intellij.ide.q.a(q.java:126)
at com.intellij.ide.q.dispatchEvent(q.java:26)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

"Thread-2" prio=1 tid=0x08315548 nid=0x329 sleeping[bcdff000..bcdff8d8]
at java.lang.Thread.sleep(Native Method)
at com.intellij.progress.ProgressManager$2.run(ProgressManager.java:4)

"Thread-1" daemon prio=1 tid=0x086689a8 nid=0x327 waiting on condition
at java.lang.Thread.sleep(Native Method)
at com.webspherious.log4jmonitor.log4j.MyTableModel$Processor.run(MyTableModel.java:65)
at java.lang.Thread.run(Thread.java:534)

"TimerQueue" daemon prio=1 tid=0x0866b708 nid=0x326 in Object.wait()
at java.lang.Object.wait(Native Method)
- waiting on (a javax.swing.TimerQueue) at javax.swing.TimerQueue.postExpiredTimers(TimerQueue.java:213) - locked <0x46f84a30> (a javax.swing.TimerQueue) at javax.swing.TimerQueue.run(TimerQueue.java:229) - locked <0x46f84a30>]]> (a javax.swing.TimerQueue)
at java.lang.Thread.run(Thread.java:534)

"AlarmThread" prio=1 tid=0x083a2198 nid=0x325 in Object.wait()
at java.lang.Object.wait(Native Method)
- waiting on (a java.lang.Object) at com.intellij.util.Alarm$MyThread.run(Alarm.java:50) - locked <0x46db2920>]]> (a java.lang.Object)

"AlarmThread" prio=1 tid=0x083a0c38 nid=0x324 in Object.wait()
at java.lang.Object.wait(Native Method)
- waiting on (a java.lang.Object) at com.intellij.util.Alarm$MyThread.run(Alarm.java:50) - locked <0x46db2990>]]> (a java.lang.Object)

"AWT-Shutdown" prio=1 tid=0x0839d338 nid=0x322 in Object.wait()
at java.lang.Object.wait(Native Method)
- waiting on (a java.lang.Object) at java.lang.Object.wait(Object.java:429) at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259) - locked <0x46c85f00>]]> (a java.lang.Object)
at java.lang.Thread.run(Thread.java:534)

"Thread-0" daemon prio=1 tid=0x08376820 nid=0x321 in Object.wait()
at java.lang.Object.wait(Native Method)
- waiting on (a java.util.TaskQueue) at java.util.TimerThread.mainLoop(Timer.java:429) - locked <0x46db2c48>]]> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:382)

"SocketListenerThread" prio=1 tid=0x08363c98 nid=0x320 runnable
at java.net.PlainDatagramSocketImpl.receive(Native Method)
- locked (a java.net.PlainDatagramSocketImpl) at java.net.DatagramSocket.receive(DatagramSocket.java:711) - locked <0x46db5438> (a java.net.DatagramPacket) - locked <0x46db5458>]]> (a java.net.MulticastSocket)
at com.intellij.licensecommon.c.a.e.b(e.java:23)
at com.intellij.licensecommon.c.a.f.run(f.java:5)

"SocketListenerThread" prio=1 tid=0x08362ee8 nid=0x31f runnable
at java.net.PlainDatagramSocketImpl.receive(Native Method)
- locked (a java.net.PlainDatagramSocketImpl) at java.net.DatagramSocket.receive(DatagramSocket.java:711) - locked <0x46db7c50> (a java.net.DatagramPacket) - locked <0x46db7c70>]]> (a java.net.DatagramSocket)
at com.intellij.licensecommon.c.a.e.b(e.java:23)
at com.intellij.licensecommon.c.a.f.run(f.java:5)

"MessageDeliveryThread" prio=1 tid=0x08362728 nid=0x31e in Object.wait()
at java.lang.Object.wait(Native Method)
- waiting on (a java.lang.Object) at java.lang.Object.wait(Object.java:429) at com.intellij.licensecommon.c.r.run(r.java:10) - locked <0x46db7cf8>]]> (a java.lang.Object)

"Java2D Disposer" daemon prio=1 tid=0x0835ed18 nid=0x31d in Object.wait()
at java.lang.Object.wait(Native Method)
- waiting on (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x46db7d48>]]> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
at sun.java2d.Disposer.run(Disposer.java:100)
at java.lang.Thread.run(Thread.java:534)

"AWT-Motif" daemon prio=1 tid=0x08342fd0 nid=0x31b runnable
at sun.awt.motif.MToolkit.run(Native Method)
at java.lang.Thread.run(Thread.java:534)

"Lock thread" prio=1 tid=0x0829e7b0 nid=0x319 runnable
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
- locked ]]> (a java.net.PlainSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:448)
at java.net.ServerSocket.accept(ServerSocket.java:419)
at com.intellij.idea.d$b_.run(d$b_.java:8)
at java.lang.Thread.run(Thread.java:534)

"DestroyJavaVM" prio=1 tid=0x08052440 nid=0x30b waiting on condition

"Signal Dispatcher" daemon prio=1 tid=0x080a3400 nid=0x314 waiting on condition

"Finalizer" daemon prio=1 tid=0x0808a5f0 nid=0x312 in Object.wait()
at java.lang.Object.wait(Native Method)
- waiting on (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x46c30238>]]> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=1 tid=0x08089a30 nid=0x311 in Object.wait()
at java.lang.Object.wait(Native Method)
- waiting on (a java.lang.ref.Reference$Lock) at java.lang.Object.wait(Object.java:429) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115) - locked <0x46c300a8>]]> (a java.lang.ref.Reference$Lock)

"VM Thread" prio=1 tid=0x080867c8 nid=0x310 runnable

"VM Periodic Task Thread" prio=1 tid=0x080a5b28 nid=0x316 waiting on condition
"Suspend Checker Thread" prio=1 tid=0x080a2a90 nid=0x313 runnable

0

Thanks very much for the thread dump!

Give new version 2.5 a try.

The code was starting a separate thread to do the parsing, which tried to call the Swing dispatch thread to display the dialog. A deadlock occurred, but it is inside IDEA code and I can't tell why.

Now everything is done on the Swing dispatch thread. Should be safer!

-Dave

0

Please sign in to leave a comment.