1年前にリリースしたシステムで障害が起こった。
話を聞くとある部分でNullPointerException(Java)が発生し
画面にエラーが表示されるらしい。
担当者は発生パターンと発生箇所は特定できたので
IF文でも入れて対応するとのこと。
果たしてそれでよいのか?
多分まちがっている。
IF文で回避することはNullの状態を認めてしまっている。
その箇所だけならそれもありかもしれないが、
そうでないのであれば他の部分もNullがありえることを
考慮し、見直す必要性が出てくる。
そもそもなぜNullが発生しているか調べるべきである。
なぜ1年前にリリースしたシステムで今頃そんなエラーが
発生するのかと思って聞いてみた。
通常のマスタメンテ画面ではなくツール(提供機能)を使って
マスタ登録したデータを利用したらそのエラーが発生したとのことだ。
たぶんこの機能をリリースして初めて使ったんだろう。
ツールに関しては単体ではエラーが発生する訳でもなさそうなので
マスタに登録する際の仕様がマスタメンテ側とずれていると思われる。
よってツール側の仕様を見直すことが原因への対処となる。
で、原因まで調べておいてなぜ結果に対して対応するかと言うと
リリース後1年を経過した障害への対応は瑕疵やら政治的やらの
問題があるのでなかなか理想通りに対応できない悲しい現実がある。