- - PR -
フィールド値が突然nullになってしまう
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-04-20 19:26
いつも拝見させていただいております。
質問なのですが、サーブレット(Tomcat)にGETを投げることで起動するバッチ処理があるのですが、丁度1時間でクラスのフィールド値が何故かnullになり、ヌルポで落ちてしまいます。 クラスのフィールドはクラスの生成時に同時に生成され、その後に値が設定されることはありません。 connectionTimeoutやsessionTimeoutのせいかと思い、 connectionTimeout=60000 (1分) sessionTimeout=2 (2分) にして実験してみましたが、やはり1時間丁度でnullになります。 環境は以下の通りです。 Java 1.5 Tomcat 5.5 何かご存知の方いらっしゃいましたら、ご教授ください。 よろしくお願いいたします。 |
|
投稿日時: 2007-04-20 19:31
想像しているのと違い値がnullになっていたりしないでしょうか?
フィールドを final にしても発生するかどうか確認してみてはいかがでしょう。 |
|
投稿日時: 2007-04-20 19:35
回答ありがとうございます。
ただ、既にfinalをつけた上での現象なので・・・。 原因は違うところにあると考えています。 |
|
投稿日時: 2007-04-20 19:46
どんなクラスなのか分からないので、なんとも…。
クラスがガベージコレクションの対象になって、新しいクラスが作られてるとか。 ちょうど一時間というから違うかなあ…。 |
|
投稿日時: 2007-04-20 20:17
本当にファイナルの変数がnullに突然変わってしまうのであれば JVM の問題ですよね。
final の変数以外で NullPointerException が発生する可能性のある変数はありませんか? 再現性があるようですから変数をダンプしてみてはいかがでしょう。 「こんなことあるはずない!」と思っても99%くらいはコードに問題があります。 null 以外の値が代入された変数が null になることはありません!(たぶん) 落ち着いてがんばってデバッグしてみてください。 [ メッセージ編集済み 編集者: インギ 編集日時 2007-04-20 20:17 ] |
1