雨の降る日が多くなり、だんだんと蒸し暑くなってきてクーラーをつけずには寝られない日々が続くようになりました。
テレワークにも慣れ、日本国内でのコロナウィルス落ち着いてきたかと思えば東京都内で感染者の公表がまた増えだした今日このごろですが、
案件や締日は待ってはくれません。
今日は、このコロナ禍でリリースしたシステムのjspファイルを修正したら、
ミスってシステムエラーを出すようにしてしまったので、
注意書きとして覚えるために書き出します。
今携わっているプロジェクトでは、
htmlの出力や登録処理などをjspで制御・管理しているのですが、
どうにもキャンセル処理が正常に行えず、二重登録できているデータがあると客先から報告を受け、
調査したところログ出力が十分でなかったために原因の特定ができませんでした。
暫定処置として同様の事象が起きた時の解析用に該当のjspにログ出力を追加し本番にアップすると、
本来行えていた登録処理が行えないようになったとまた報告がありました。
改めて調査すると、暫定処置で入れたログ出力にケアレスミスがあり、
コンパイルエラーが起きていた様子。
ログ出力に使用していた変数が宣言されていないかつ検証に不必要なものだったので該当の箇所をコメントアウトし対応し、
修正完了と思っていたところそうはいきませんでした。
修正したファイルは共通ファイルなのである個所が動くことで対応確認としていたのですが、
登録処理では確認していなかったので、登録が完了できないことに気づけませんでした。
ここで起こった原因というのがファイルの修正の仕方でした。
本来ファイルは、windows上で修正したものをサーバーにアップしていたのですが、
コメントアウトの修正はサーバー上のプロンプトのviコマンドで行ったことで、
ファイルの最終行に改行が入っていたのです。
この改行が入ることで、登録処理でシステムに不具合が生じていました。
この時までviコマンドの保存時に
「:set binary noeol」
を学んだので、これから注意していきたいと思います。