サーバー(Tomcat8.5)がフリーズする問題が発生しました。
運が悪いと、データが壊れてしまって書いたものを作り直すことになったりするようなのですが、通常のサーバーは起動してデバッグモードだけが立ち上がらない状態になりました。
デバッグモードだけなら致命的な感じはないので一安心ですが、治し方がわかりません。
症状
症状はデバッグモードを起動するとどこかの処理でつまずくのか、見たことないクラス(java.lang.Class)を勝手に開いてそのままタイムアウトしてしまう現象です。
対処法
起動時間を長くする
45秒以内に起動しないと言われたのだから、ひとまず45秒を長くしてみることにしました。
しかし45秒を9999秒まで長くしても、特にエラーを返してくれるでもなく。途中で止めると「開始中ローカルホストのTomcat v8.5サーバーに問題が発生しました」というくらいで何も教えてくれませんでした。
そりゃそうですよね。いままでは45秒で問題なく起動していたのだから。でもなにか新しいエラーがみれるかと思ったのに何の情報も得られませんでした。
立ち上がっていた時の環境に戻す
動いていた時のコードまで戻すという方法もあります。
バックアップがあればバックアップに戻してみたり、ctlr + z で戻し続けてみたり。
戻してみましたが治りませんでした。
ステップ・フィルターを使ってみる
ステップ・フィルターを使ってみると立ち上がるようになるなんてのもありましたが、こちらも聞きませんでした。
環境設定 を開きフィルターにステップと打つとたどり着けます。
またはJava → デバッグ → ステップ・フィルターとたどっていくこともできます。
ステップ・フィルターにチェックをいれてjava*にもチェックを入れて実験してみました。
ブレークポイントをすべて取り除く
デバックで使用していたブレークポイントを全て消す。私はこれが原因でした。
ただ初心者には少しやっかいでした。
私はブレークポイントを1つずつ青い点をダブルクリックして消していたのですが、これでは全て取り除けていなかったのです。なんども確認して全て取り除いたと思い込んでいたのです。
しかしブレークポイントは一度に全て取り除くことができるのです。
ウィンドウ → ビューの表示 → ブレークポイント(なければ、その他)
でブレークポイントのウィンドウを表示できます。
そこには今まで打ったブレークポイントが表示されます。
そしてxが2つ重なったボタンを押すと「すべてのブレークポイントを除去」することができるのです。
この後にデバッグモードを起動すると無事にタイムアウトすることなく起動しました。
使ったこともないファイルに覚えのないブレークポイントが存在していたことが原因だったようでした。