Eclipse: フォント指定が原因で起動時にエラー

Java のコードを書く時に Eclipse を使ってるんだけど、起動中にエラーが起きて「ワークベンチ UI がリセット」される、という現象が起きていた。
原因をちょっとだけ調べたのでメモ。

環境

Windows XP SP2 + Java 1.4.2 + Eclipse 3.0.2 + DBViewer Plugin 0.1.9


ちなみに DBViewer Plugin は、下記サイトで配布されている。いつもお世話になってます。

DBViewer Plugin for Eclipse
http://www.ne.jp/asahi/zigen/home/plugin/dbviewer/about.html

現象

Eclipse を起動すると、下記ページで紹介されているようなエラーが表示されて、ワークベンチ UI レイアウト……つまり、開いてたパースペクティブやビューなんかの状態が、初期状態に戻ってしまう。

えらーだらけ。- ワークベンチの状態を読み取ることができません。ワークベンチ UI レイアウトはリセットされます。
http://madonnalily.blog49.fc2.com/blog-entry-26.html

調べ方

このメッセージは、起動中にレイアウトを復元しようとしたら何らかのエラーが発生したことを示している。
ログ (ワークスペースディレクトリ配下の .metadata/.log にあるファイル) を見ると、スタックトレースが出ている。

今回の場合

前からうすうす「DBViewer パースペクティブを開いた状態で終了すると、次に起動した時に上記のエラーが発生する」ような気がしていた。いろいろパターンを試してみると、どうやら「SQL 実行ビュー」が発火元になっている様子。
ログを見ると、下記ページに載っているのと同じスタックトレースが。

外部記憶装置 - Windowsのスタイル変更が原因でSWTが落ちる
http://rainbowdevil.jp/mt/externalstorage/archives/2005/07/windowsswt.html

フォント周りがあやしいということで設定をいじってみると、再現手順がわかった。

  1. Eclipse のメニューから [ウィンドウ]→[設定] を選ぶ。
  2. ダイアログが開いたら、ツリーの [ワークベンチ]→[エディター]→[色とフォント] を選ぶ。
  3. [基本]→[テキスト・フォント] を、"MS ゴシック" の 8 ポイントにし、[OK] を押してダイアログを閉じる。
  4. 再度メニューから [ウィンドウ]→[ビューの表示]→[その他] を選ぶ。
  5. ダイアログが開いたら、[DBViewer・プラグイン]→[SQL実行・ビュー ] を選び、[OK] を押す。
  6. Eclipse を一旦終了する。
  7. Eclipse を起動すると、エラーが発生し、レイアウトがリセットされる。

というわけで、とりあえずの回避策は "MS ゴシックを使う場合は、8 ポイントを使わない" だった。

ちなみに

バージョンを新しくした環境 (Windows XP SP2 + Java 5.0 + Eclipse 3.2.0 + DBViewer Plugin 0.2.0) にすると、上記のエラーは出ないようだ。
そのかわり、[基本]→[テキスト・フォント] の設定を変えても、行番号部分のフォントが変わらない。Eclipse に標準で入っている Java エディタの場合は、本文のフォントに合わせて行番号も変わるようなので、何か違いがあるのかもしれない。
……というところで力尽きた。続きはそのうち。