[concurrency-interest] Swing translates InterruptedException to Error
gregg at cytetech.com
Tue Dec 18 16:03:34 EST 2007
Thomas Hawtin wrote:
> Gregg Wonderly wrote:
>> Darius Polonis wrote:
>>> Allright, in that case I'll just wrap my code and use
>>> SwingUtilities.invokeLater(). But I am not sure the Swing folks have
>>> to come to your conclusion, too, as the javadoc still states
>>> AbstractDocument.insertString() would be thread safe...
>> They used to say that an unrealized component could be manipulated outside of
>> the event thread. This is now, no longer possible. It is important to write
>> any code that touches a swing component to use the event dispatch thread.
> A number of methods explicitly state that they are thread-safe. For
> instance, JTextArea.append. But given the interface of Document or even
> AbstractDocument, how would you write such a thing correctly?
My experience is that for any text component, JLabel included, append() or
setText() et.al, will cause resize() to be called which will assert the
lock-of-doom... I really think that it is no longer safe to manipulate anything
outside of the event thread based on what I've experienced in a multi threaded
desktop UI which I wrote. This UI gets new components from dynamic network
discovery (using Jini) which is a good demonstration of random thread behavior.
More information about the Concurrency-interest