Is it valid to call JComponent#paintImmediately on a non-EDT thread (yet)?
Philip Race
philip.race at oracle.com
Thu Nov 16 20:30:07 UTC 2023
Because (like in this case), an AWT component might actually be
implemented using Swing,
the recommendation is to treat AWT components like Swing, and update
them only on the EDT.
-phil.
On 11/15/23 4:01 PM, Nikita Provotorov wrote:
> Hello!
> I've discovered that on X11 platforms a call
> of java.awt.TextComponent#setText can lead to a call
> of javax.swing.JComponent#paintImmediately(java.awt.Rectangle) on the
> same thread.
> Since java.awt.TextComponent#setText is allowed to be called on any
> thread (because it's AWT, not Swing), JComponent#paintImmediately may
> be called outside of EDT. Is this a valid behavior?
>
> The following stacktrace shows how exactly this can happen:
>
> at javax.swing.JComponent.paintImmediately
> at sun.awt.X11.XTextAreaPeer$AWTTextArea.repaintNow
> at sun.awt.X11.XTextAreaPeer.repaintText
> at sun.awt.X11.XTextAreaPeer.setText
> at java.awt.TextComponent.setText
>
>
> Best regards,
> Nikita Provotorov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/client-libs-dev/attachments/20231116/c72f1afd/attachment-0001.htm>
More information about the client-libs-dev
mailing list