GArR 既知のバグ:リストオブジェクトから値を取得した場合


既知のバグについて(メモ)。

クリックチーム製の List Object に URL リストをリストアップしてから、リストの現在行が示す文字列を直接 GArR の HTTP GET 機能に値として渡し、GArR のデバッグモードをオンにすると「 URL Parse Error 」が発生、 Winsock2 が接続を確立する前にエラーとして処理され接続を終了させてしまう。

問題の解決

リストオブジェクトが渡してくるデータを一度 CF25 の「文字列変数」などへ格納して、ワンクッションを挟むとデバッグモードで HTTP GET してもエラー報告は出ないし適切に URL の解釈もできている。

リストオブジェクトから直接受け取ったデータをデバッグモードで値として参照してみたが、文字列が化けてる。内部でおかしいことをしてるようだがエクステ側の問題?リスト側の問題?いまいち原因がわからない。CF25 側の文字列変数に一度格納してから文字列をエクステ側に送信すれば URL パースエラーを起こさないということは、リスト側から送信されるデータに何か不備がある線を疑っている。

もうすこし詳しく解析してみないとわからないが、リストから送られてくるデータに文字列終端を示す終端文字が抜けてる可能性とか?逆にヘッダになにかゴミが 1 byte 混じってる可能性。

いまのところデバッグモードをオフにすれば別に問題は無い。

解決策1:デバッグモードをオフにする

デバッグモードをオフにすれば URL のパースエラーが発生しない。原因はまだ不明。

解決策2:リストから直接送信しない

受け取る値を一度別変数で受け取って、その文字列変数を GArR に渡せばデバッグモードがオンでも問題回避できる。

間にワンクッション入れなければいけない時点で手間だが、直接送信されるとデバッグモードではパースエラーが発生する。

原因はきちんとあとで調べないと、どちらのエクステが問題あるのかは明言できない。


Leave a comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です