JOGLコンポーネントを備えたアプリケーションがあります。System.exit(0)を使用してシャットダウンすると、例外が頻繁に発生します。
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
at sun.java2d.Disposer.run(Disposer.java:125)
at java.lang.Thread.run(Thread.java:619)
Swingアプリケーションを終了するときに、この質問Occasional InterruptedExceptionが発生しましたが、デーモン以外のスレッドが実行されていません。基になるJOGLコードがSwingイベントキューにイベントを継続的に配置しているのではないかと思います。これは、swingアプリがイベントキューが空の場合にのみ適切にシャットダウンするため、このエラーを引き起こす可能性があります。
よりクリーンにシャットダウンする方法はありますか?どういうわけかJOGLメインループを停止するかもしれません(私はサードパーティのツールであるnasa worldwindを使用しているので、アプリを実行しているメインのアニメーターに必ずしもアクセスできるとは限りません)。
編集:これはopenGLの問題ではなかったことがわかりました。OpenGLは適切にシャットダウンされていて、実行していたシャットダウンフックで競合が発生しました。ありがとう。