1. ホーム

[解決済み] Eclipseデバッガは、明らかな例外なしにThreadPoolExecutorで常にブロックされます。

2022-04-18 04:08:16

質問

私はEclipseでいつものプロジェクトに取り組んでいます。それはJ2EEアプリケーションで、SpringやHibernateなどを使って作られています。私はこのためにTomcat 7を使っています(特に理由はありません、私は新しい機能を悪用しません、私はそれを試してみたかっただけです)。アプリケーションをデバッグするたびに、Eclipseデバッガがブレークポイントに到達したかのようにポップアウトしますが、そうではなく、実際にはJavaソースファイルの ThreadPoolExecutor . コンソールにはスタックトレースもなく、ただ止まっているだけです。その後、再開をクリックすると、アプリは完全に動作します。これは、デバッガウィンドウに表示される内容です。

Daemon Thread ["http-bio-8080"-exec-2] (Suspended (exception RuntimeException)) 
    ThreadPoolExecutor$Worker.run() line: 912   
    TaskThread(Thread).run() line: 619

これは本当に説明できません、なぜなら、私が使っているのは ThreadPoolExecutor を全く使っていません。Tomcat、Hibernate、Springのどれかであるはずです。デバッグ中にいつもレジュームしなければならないので、非常に迷惑しています。

何か手がかりはありますか?

解決方法は?

投稿されたスタックトレースは、デーモンスレッドでRuntimeExceptionが発生したことを示しています。これは、元の開発者が例外をキャッチして処理しない限り、通常、ランタイムにキャッチされません。

通常、Eclipseのデバッガーは、例外が発生した場所で実行を一時停止するように設定されています。 すべて捕捉されない例外 . 例外はスタックフレームの下の方で後で処理されるかもしれず、スレッドが終了しないかもしれないことに注意してください。これが、今回観察された動作の原因でしょう。

Eclipseの動作を設定する は簡単です。

に移動します。 ウィンドウ > 環境設定 > Java > デバッグ のチェックをはずし キャッチできない例外の実行を一時停止する .