エントリした日時が半日ズレるって?何よ。

6月 17th, 2024 No comments

もう、7年前にリリースしたシステムのなんですが、2年に一度実行されるCSVデータのインポート処理なんですよ。リリースの際ももちろんデータ確認しましたサ。過去2~3回の実施でも問題はなかったんですよ。それが今回はインポートした日付時刻データが12時間(半日分)ズレるんです。

このデータでは開始日と終了日をエントリするのです。java.util.Calendarで受けてデータベースに永続化してます。

時刻まで管理しますので、開始日では00:00:00.000に、終了日では23:59:59.999をセットして書き込んでます。

CSVファイルによるバッチ処理とは別に、オンライン画面での個別処理もあるのですが、こちらでは何故か問題ありません。

うーん。デバッグ作業では、成功するオンラインと失敗するバッチ処理の比較を行いました。

面倒くさいので、System.out.println(そのcalendarインスタンス)と、ダラダラと表示してみたところ、失敗ではtime=?となっちょるのがわかりました。調べるとその次のareFieldsSet=falseでは失敗で、成功してるのはareFieldsSet=trueとなっちょります。

ググってみると「なるほどザ・ワールド」。

setterで色々なパラをもらうたびに日時を再算出していたのでは大変なので、日時自体の値の呼び出しがあるまで算出しないヨ・・・と。

ははぁ、なのでtime=?なのネ。で、パラと算出値に矛盾がありませんよ・・・ってのがareFieldsSet=trueとのことなんですね。

あ、失敗のパターンではさらにAM_PM=1になっているじゃア~りませんか!!!!!

これだ!!!!!!失敗のパターンでは時刻が午後基準になっちょる。

そうか!calendarのインスタンスに年月日時分秒をセットする前に、clear()してあげるのが正しいお作法なのだろうけど、それをしていないのでnewインスタンスでの現在時刻が午後(AM_PM=1)だと、2時が14時に半日ズレちゃうのね。(終了日なんぞは翌日になっちゃいます)

対処として、時刻のsetterが発生する個所では必ずAM_PM=0もセットするようにして、バグつぶしできました。

今回のバグは、処理を行った時刻が午後である際にしか発生しません。故にテストでも数回の運用でも発覚しなかったのですね。また、オンライン画面ではjavaScriptの日付をDWRでjavaクラスに読み換える実装なので、改めてnewしないのでスナオに時刻をconvertしてくれるので問題は起こらない・・・と。

理屈がわかればガッテンです。ずいぶんとjavaやってますが、こんなコトでこんなバグが発見されるなんて、本当に勉強になりますネ。

Categories: Mighty構想 Tags:

Flexibility.jsはIE8対応の際にバージョンに注意

7月 10th, 2023 No comments

システムレンタルもおかげさまで十分な機能を搭載し安定してまいりました。(つまり手がすきました)

ならばこの時期こそ、骨格や組み立て方などfoundmentalな部分を充実させよう・・・との考えで、新たなユニットである「業務記録」を作りつつ、レスポンシブデザインのレイアウトのカユイところが気になってショウがありません。

そこで横並びのエレメントを親エレメントの大きさに応じて「伸びたり・縮んだり」はフロートで処理しておりましたが、これが端っこのカドに引っかかって上手く表示できない・・・とか、まともにスルにはとても頭を使ってました。

ちょこっと調べたらCSS3からFlexBoxなるオイシイのがあるようじゃないですか。テストしてみたら思ったようにグニョグニョ変形してくれます。「よし!」

但し、当方のシステム利用環境はイントラネットが多く、なのでクライアントは未だにIE8も想定しておかないとイケなかったりします。(動作確認用にエミュレートではなくXP・IE8環境の「SteadyState! 懐かしい」マシンを持っチョリます。)

で、もちろんflexはIE8では動作してくれませんが、そんなことではくじけません。IE8向けにいくつもの余計なスクリプトを読み込ませていますので、ホラ!あった「Flexibility.js」。

こんなに簡単に実現しますよ・・・とのことで、ってnativeIE8では上手く行かないぞ!!!

アレやってみて、コレためして、頭にきて、腹が立って、土日になって、頭冷やして月曜日、冷静になって同じように再調査してもダメ。今週も諦めかけたとき、気になるトピックスがありました。

はい、Flexibility.jsのバージョンを2.0.1から1.0.6に落したら、すんなり動作しました。っま世の中そんなもんか。

翌日の追記:

うひょひょ・・・と、喜ぶのもつかの間。もちろんFlexBoxはメデタク使えるようになりましたよ。だけどコチトラ職人気質が強いのでしつこくチェックすると、今度はメディアクエリで問題が・・・。デカイのを縮めると上手く行くのですが、チイサイのを広げると、FlexBoxの変更部分だけが元に戻りません。

Categories: Mighty構想 Tags:

サービス内容とかをチョコッと変えました

5月 17th, 2023 No comments

いえ、このサイトもともとロクすっぽメンテナンスできていませんが、現状と違っている部分を直しました。おかげさまでシステムを採用頂いたお得意様も増えました。これからも宜しくお願いいたします。

Categories: お知らせ Tags: