Skip to content

HTML images trigger ThreadCheckingRepaintManager thread violation #39

@BullyWiiPlaza

Description

@BullyWiiPlaza

I use code to detect EDT thread violations (e.g. a non-EDT thread modifies the Swing GUI):

private static void setupThreadViolationsDetector()
{
	ThreadCheckingRepaintManager repaintManager = new ThreadCheckingRepaintManager(true);
	RepaintManager.setCurrentManager(repaintManager);
}

However, when I load an HTML code snippet which contains loading an image into the GUI, the following wrong thread exception is being printed, even though JTextPane.setText(myHTML) is called on the EDT.

----------Wrong Thread START
java.lang.Exception
	at com.jidesoft.utils.ThreadCheckingRepaintManager.checkThreadViolations(ThreadCheckingRepaintManager.java:78)
	at com.jidesoft.utils.ThreadCheckingRepaintManager.addDirtyRegion(ThreadCheckingRepaintManager.java:72)
	at java.desktop/javax.swing.JComponent.repaint(JComponent.java:4836)
	at java.desktop/javax.swing.text.html.ImageView.repaint(ImageView.java:655)
	at java.desktop/javax.swing.text.html.ImageView$ImageHandler.imageUpdate(ImageView.java:990)
	at java.desktop/sun.awt.image.ImageWatched$WeakLink.lambda$update$0(ImageWatched.java:144)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.desktop/sun.awt.image.ImageWatched$WeakLink.update(ImageWatched.java:142)
	at java.desktop/sun.awt.image.ImageWatched$WeakLink.newInfo(ImageWatched.java:159)
	at java.desktop/sun.awt.image.ImageWatched.newInfo(ImageWatched.java:197)
	at java.desktop/sun.awt.image.ImageRepresentation.imageComplete(ImageRepresentation.java:724)
	at java.desktop/sun.awt.image.ImageDecoder.imageComplete(ImageDecoder.java:153)
	at java.desktop/sun.awt.image.JPEGImageDecoder.produceImage(JPEGImageDecoder.java:143)
	at java.desktop/sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:269)
	at java.desktop/sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:212)
	at java.desktop/sun.awt.image.ImageFetcher.run(ImageFetcher.java:176)

----------Wrong Thread END

Is this a bug you could fix?

I'm using jdk-11.0.1 on Windows 10.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions