From: <k_s...@us...> - 2010-01-31 08:55:43
|
Revision: 17157 http://jedit.svn.sourceforge.net/jedit/?rev=17157&view=rev Author: k_satoda Date: 2010-01-31 08:55:36 +0000 (Sun, 31 Jan 2010) Log Message: ----------- Fixed a deadlock which happened with the new behavior of EditBus.send() since r17139 on jEdit trunk. (Reported on SF.net Plugin bug #2941375) Following is the related part of a thread dump taken from VisualVM. "Thread-10" prio=6 tid=0x4af46c00 nid=0xcf8 in Object.wait() [0x4fb5f000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:485) at java.awt.EventQueue.invokeAndWait(Unknown Source) - locked <0x189a40a0> (a java.awt.EventQueue$1AWTInvocationLock) at javax.swing.SwingUtilities.invokeAndWait(Unknown Source) at org.gjt.sp.jedit.EditBus.send(EditBus.java:211) at errorlist.ErrorSource.registerErrorSource(Unknown Source) - locked <0x185e68d8> (a java.util.Vector) at console.CommandOutputParser.processLine(CommandOutputParser.java:136) at console.CommandOutputParser.processLine(CommandOutputParser.java:93) at console.StreamThread.flushLine(StreamThread.java:207) at console.StreamThread.run(StreamThread.java:126) Locked ownable synchronizers: - None "AWT-EventQueue-0" prio=6 tid=0x48d8bc00 nid=0x8fc waiting for monitor entry [0x5022f000] java.lang.Thread.State: BLOCKED (on object monitor) at errorlist.ErrorSource.getErrorSources(Unknown Source) - waiting to lock <0x185e68d8> (a java.util.Vector) at errorlist.ErrorListPlugin.addErrorOverviewIfErrors(Unknown Source) at errorlist.ErrorListPlugin.handleErrorSourceMessage(Unknown Source) at errorlist.ErrorListPlugin.handleMessage(Unknown Source) at org.gjt.sp.jedit.EditBus.dispatch(EditBus.java:255) at org.gjt.sp.jedit.EditBus.sendImpl(EditBus.java:290) at org.gjt.sp.jedit.EditBus.access$200(EditBus.java:84) at org.gjt.sp.jedit.EditBus$SendMessage.run(EditBus.java:464) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Locked ownable synchronizers: - None Modified Paths: -------------- plugins/ErrorList/trunk/errorlist/ErrorSource.java Modified: plugins/ErrorList/trunk/errorlist/ErrorSource.java =================================================================== --- plugins/ErrorList/trunk/errorlist/ErrorSource.java 2010-01-31 08:36:17 UTC (rev 17156) +++ plugins/ErrorList/trunk/errorlist/ErrorSource.java 2010-01-31 08:55:36 UTC (rev 17157) @@ -55,9 +55,9 @@ errorSources.addElement(errorSource); errorSource.registered = true; cachedErrorSources = null; - EditBus.send(new ErrorSourceUpdate(errorSource, - ErrorSourceUpdate.ERROR_SOURCE_ADDED,null)); } + EditBus.send(new ErrorSourceUpdate(errorSource, + ErrorSourceUpdate.ERROR_SOURCE_ADDED,null)); } //}}} //{{{ unregisterErrorSource() method @@ -77,9 +77,9 @@ errorSources.removeElement(errorSource); errorSource.registered = false; cachedErrorSources = null; - EditBus.send(new ErrorSourceUpdate(errorSource, - ErrorSourceUpdate.ERROR_SOURCE_REMOVED,null)); } + EditBus.send(new ErrorSourceUpdate(errorSource, + ErrorSourceUpdate.ERROR_SOURCE_REMOVED,null)); } //}}} //{{{ getErrorSources() method This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |