先日、不均等黄変ネガ写真の追加機能の試作を色々試していたところ、突然以下のようなメッセージが出て、実行エラーになりようになりました。
java.io.IOException: Mark invalid
ネットで調べると、Java の何かデータを保存しておくバッファが足りないようなので、バッファを増やせばよいというようなアドバイスはありましたが、どうも要領を得ません。ImageJ 上ではそのような問題が出たというような報告は見つかりません。
1, 2時間程度、情報を探したり、ああでもない、こうでもないと悪戦苦闘しましたが、やっと原因を見つけました。結局このバッファとは、ImageJ が読み込むプログラムコードのバッファだったのです。分かったことは ImageJ は 2407行までのコードは読み込めますが、プログラムコードの長さがそれを超えると上記エラーが出るのです。
プログラムにいろいろ機能を詰め込んでいたら、コードの長さが 2400 行を超えてしまったので上記エラーが出てしまっていたのでした。こんなに長いコードを書くアホは世界に他にいないので、誰も気づかない or 問題にしていなかったのでしょう。ImageJ 上で読み込めるコードの上限を増やすオプションがあるかと探してみましたが、見当たりませんでした。
結局とりあえずデバッグのために残していたデバッグ用のコードを取り除いたり、コメント行を削除して行数を減らして対処しましたが、あまり必要のなくなった機能などを取り外して、コードのダイエットを図ることが必要なようです。