DoGrepAppendNo.05975
hirn さん 19/12/13 00:53
 
 V6.93β22 です。

 最近、DoGrepAppend すると、
検索結果の一覧に同じメールが重複して出てくるようになりました。

 具体的には、受信フォルダに未読メールAがある状態で、
2回 DoGrepAppend すると、
検索結果の一覧に未読メールAが2つ出てきます。

 以前は、1つだけ出てきていたと思うのですが、ご確認をお願いできますか?

[ ]
RE:05975 DoGrepAppendNo.05976
秀まるお2 さん 19/12/13 09:05
 
 今ちょっとテストした限りはおかしい現象は起きないようでした。

 テストに使ったマクロですが、"test"って文字列をSubjectから検索するだけのマ
クロになります。

    loaddll "tkinfo.dll";
    #n = dllfunc("AutoRestoreFindPack");
    #n = dllfunc("SetFindPack", "(\"test\", target=subject)");
    #n = dllfunc("DoGrep", "\\CurrentAccount", "");
    #n = dllfunc("DoGrepAppend", "\\CurrentAccount", "");
    #n = dllfunc("DoGrepAppend", "\\CurrentAccount", "");

 みたいなマクロを付くって、DoGrepAppendの所をコメントアウトしたりして検索結
果の数が変化するかどうか見た限りは、同じ結果のようでした。(僕の現在アカウン
トだと985通がヒット)

 何か他の条件だったりしますでしょうか。

 いろいろ条件を変えてDoGrepAppendするとメール数が変化することはあると思いま
すが、同じメールが2通出てくるとしたら、それは明らかにバグのはずになります。
同じメールかどうかは、メールを選択して「Alt+Enter」キーを押してプロパティを
見て、「場所」の所がまったく同じかどうかで確認可能です。

[ ]
RE:05976 DoGrepAppendNo.06253
hirn さん 20/02/12 23:32
 
 テスト、ありがとうございました。
 一応報告しますが、自己解決しました。

 手順は
(1) DoGrepAppend で「受信」フォルダの新規メール検索し、一覧にメールAが表示
(2) 受信して、「受信」フォルダのメールBを書き換え
(3) (1) のメール一覧を表示したまま、
DoGrepAppend で「受信」フォルダの新規メール検索し、一覧にメールA(2通目)が
表示
(4) 一覧のメールA(2通目)を既読にすると、1通目も既読になる

 手順(2) がよろしくないみたいですが、
とりあえず「受信」フォルダのメール用ファイルを「1メール1ファイル」にして回
避しました。

 ひょっとしたら、ウィルス対策ソフトが似たようなことをするかも、
ということで報告しました。

[ ]
RE:06253 DoGrepAppendNo.06263
秀まるお2 さん 20/02/14 08:31
 
 お返事遅れてすみません。連絡いただいた手順で再現テストしてまたお返事させて
いただきます。

 メールの書き換えが関係してるにしても、同じメールが2通出てくるとしたらバグ
に違いないと思います。

[ ]
RE:06263 DoGrepAppendNo.06264
秀まるお2 さん 20/02/14 12:01
 
 いろいろテストして1つバグを見つけてしまったのですけども、肝心の現象の再現
には至らずです。

 とりあえずこちらの状況を説明させていただきますと・・・

 まず、hirnさんのお話にある「メールBを書き換え」というのが、エディタ・ウィ
ンドウでメールを開いて「設定・編集を許可する」をONにしてメールを書き換えて
「ファイル・保存」を実行したのかなぁと思いまして、それの再現テストをしたんで
すが、再現できませんでした。

 そうじゃなくて、メール用のファイルを直接秀丸エディタで開いて書き換えたのか
なぁと思いました。それでテストしてたら検索結果上のメールをクリックして落ちて
しまうバグを見つけてしまいました。なのでとりあえずその落ちてしまうバグだけ修
正した所です。

 落ちてしまうバグとは別に、メール用ファイルを直接秀丸エディタ(やその他外部
のアプリケーションソフト)で書き換えると、秀丸メール上で内部エラーが何回か出
てしまうと思います。そして、「メール一覧の作成しなおし」が実行されます。それ
で一応回復するんですが、その後、検索結果のウィンドウの表示内容が狂うみたいで
した。

 検索結果の表示内容が狂ってしまうと、その後DoGrepAppendした時に重複した内容
になってしまうこともあるかもしれないです。(再現には至りませんでしたが)

 とりあえずそういう条件、つまり、何らかの外部のソフトでメール用ファイルを無
理矢理書き換えた場合の話だとしたら、そういう時におかしくなるのは多少やむを得
ない状況なので、そういう時は検索結果のウィンドウタイトルに「この検索結果は信
用できません!!!」みたいな表示だけしようと思います。

 (検索フォルダの結果も同様ですが)

 もし何か他に再現のヒントなどあったら教えて欲しいです。例えばその「メールB
を書き換え」というのが具体的にどういう操作なのかとか、そもそも的に再現マクロ
の内容など分かればこちらで再現テストがやりやすくなります。

[ ]
RE:06264 DoGrepAppendNo.06266
秀まるお2 さん 20/02/14 14:24
 
 追加ですみません。

 再現テストはまだしてませんが、DoGrepAppendの処理が開始された後にメールの書
き換えなどが発生すると、同じメールが追加されてしまう可能性があるような気がし
てきました。

 再現テストするにはDoGrepAppendで時間がかかる状況を作らないといけないです
が・・・。

 とりあえずそういう場合もなんとかしてみます。

[ ]