私はEclipse上に構築された小さなアプリケーションのコントロールを持っており、DefaultCellEditorの作成に問題があります。コードは実際にはDefaultCellEditorのサブクラスを使用していますが、私はDefaultCellEditorを使用して問題を再現することができます。実際のクラスの問題を解決することを願っています。私はJDK 1.5と1.6の両方でこれを試してみましたが、両方で同じ動作をします。DefaultCellEditorコンストラクタを呼び出すアプリケーションがハングアップ
問題がDefaultCellEditorのコンストラクタが呼び出されたときに起こります。
log.debug("Trying construction.");
currentCellEditor = new DefaultCellEditor(new JTextField());
log.debug("Constructed OK.");
このコードは、時間の多分20%、アプリのハングを実行し、CPUを100%に釘付けにされた場合 - がありますように見えますどこかに無限ループがありますが、私はどこにいるのか分かりません。最初のログ行は出力されますが、2番目の行は出力されません。
私は、DefaultCellEditorクラスのコピーを作成し、そこにSystem.out.printlnステートメントを挿入して問題の発生場所を特定できるかどうかを試しました。コードが正しく実行されている間に、すべてのデバッグステートメントが出力されますが、正しく実行されないとステートメントは出力されません。何が起きているのでしょうか?
スレッドダンプ(Windowsではcontrol-break)を実行して、スレッドが実行中または待機中の場所を確認できます。 –
いつものように、あなたがAWT EDTで動作していることを確認してください。 –