今日の役に立たない一言 - Today’s Trifle! -

古い記事ではさまざまなテーマを書いていますが、2007年以降はプログラミング関連の話がほとんどです。

swingアプリケーションのGUIがロックする

swingアプリケーションで画像を読み込んで表示しようとしたとき、画像が存在しないとGUIがロックする現象が発生する。

Uncaught error fetching image:
java.lang.NullPointerException
        at sun.awt.image.URLImageSource.getConnection(URLImageSource.java:97)
        at sun.awt.image.URLImageSource.getDecoder(URLImageSource.java:106)
        at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:243)
        at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:167)
        at sun.awt.image.ImageFetcher.run(ImageFetcher.java:135)

そんなんでロックされても困るー。(Windows2000+J2SDK1.3.1)
ちなみに、Javaデッドロックしたときはコンソールで Ctrl+Break を押すと Full thread dump が出て、デッドロックしたスレッドと同期オブジェクトが分かるようになっている。知らない人が多いような気がしたので書いておく。滅多に使わないしね。