On 05/09/2013 02:51 AM, Rob Stryker wrote:
Hey All:

When browsing code, I found something very interesting and dangerous.

The wait job inside ECFTransport is not a safe implementation. It seems 
there's an upstream eclipse issue on join() which was a workaround for 
UI deadlocks but makes a join() not able to be interrupted.
It seems not really big issue because it is not common case, there are just two requests since 2009-10-26 one is yours.
Where do you need this this case to be working inside JBossTools?

Thanks
Denis

You can read more on the eclipse bug: 
https://bugs.eclipse.org/bugs/show_bug.cgi?id=293312

Any time your code uses Join, you should pay extra attention as to who 
can interrupt you, for what reason, or not.  If join() is not able to be 
interrupted, and the job you join against freezes, both threads may be 
deadlocked forever. Stopping the job will NOT un-lock your job OR the 
joined thread, either, unless your job overrides the canceling() method 
to interrupt itself!

So be aware.

My new implementation of WaitJob is here below:

https://github.com/jbosstools/jbosstools-base/blob/master/common/plugins/org.jboss.tools.common.core/src/org/jboss/tools/common/core/ecf/internal/WaitJob.java 

_______________________________________________
jbosstools-dev mailing list
jbosstools-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jbosstools-dev