マルチスレッド環境で入力ストリームからイメージを読み取るために ImageIO.read を使用しようとしています。以下はコードです。
entity = httpResponse.getEntity(); //httpResponse is apache hc response object
bufImage = ImageIO.read(entity.getContent()); //reading image
基本的には、Apache HttpClient を使用して HttpConnection を作成し、画像をストリームとして読み取り、それを BufferedImage(bufImage) に変換しています。
このコードは、通常どおり実行すると正常に機能します。複数のスレッドで実行すると、次の例外が発生します。
Exception in thread "Thread-3258" java.lang.NoClassDefFoundError: Could not initialize class sun.java2d.Disposer
at javax.imageio.stream.FileCacheImageInputStream.<init>(Unknown Source)
at com.sun.imageio.spi.InputStreamImageInputStreamSpi.createInputStreamInstance(Unknown Source)
at javax.imageio.ImageIO.createImageInputStream(Unknown Source)
at javax.imageio.ImageIO.read(Unknown Source)
at com.example.ImgDownload.run(ImgDownload.java:60)
at java.lang.Thread.run(Unknown Source)
ImgDownload.java:60 は、前述の ImageIO を使用して読み取った行です。これを解決するにはどうすればよいですか?
ありがとう、アビ