タブをつかむとエラーが出てMeryが落ちる

  1. ふとしたタイミングで(よくわかりません)、タブをつかんで切り離したりしようとすると

    「Runtime error 231 at 00000000038F9232」

    ってダイアログが大量に表示されて、しばらく経つとMeryが強制終了される。

    Mery (x64) Version 3.3.2

     |  名無しさん  |  返信
  2. ご報告ありがとうございます。

    私の環境では現象を再現できないようなので、よろしければもう少し詳細な環境を教えていただけますでしょうか。

    ・お使いの OS
    Windows 10?

    ・導入しているプラグイン
    アウトラインプラグインを起動中に発生とか?

    ・導入しているマクロ
    マクロにイベントを設定していたりしませんか?

    ・常駐しているアプリケーション
    例えば MacType とか。Mery と相性の悪いソフトがあるようです。

    ・ウイルスチェックソフト
    Mery の公開したばかりのベータ版はウイルスチェックソフトに誤検出されて、動作を強制的に制限されたりすることがあるようです。

    こちらでもできるだけ近い環境を用意して検証してみたいと思いますので、ちょっと項目が多いですが、わかる部分だけでも結構ですのでご協力いただけると助かります。

     |  Kuro  |  返信
  3. > ・お使いの OS
    > Windows 10?

    Microsoft Windows 10 Home 64 ビット 21H2 (10.0.19044) Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz Windows Defender

    > ・導入しているプラグイン
    > アウトラインプラグインを起動中に発生とか?

    アウトラインは常に表示しています。プラグインはこれだけです。
    以前はスニペットとかも使ってましたが、今は外してます。

    > ・導入しているマクロ
    > マクロにイベントを設定していたりしませんか?

    イベントを設定しているマクロはありません。

    > ・常駐しているアプリケーション
    > 例えば MacType とか。Mery と相性の悪いソフトがあるようです。

    関係しそうなのと言えば、CopyQとAutoHotkeyぐらいでしょうか。
    両方ともこれまでずっと使ってきました。
    件のエラーが出始めたのはMery 3.3.2にしてからです。

    > ・ウイルスチェックソフト
    > Mery の公開したばかりのベータ版はウイルスチェックソフトに誤検出されて、動作を強制的に制限されたりすることがあるようです。

    WindowsDefender以外は使っていません。

    よろしくお願いします。

     |  名無しさん  |  返信
  4. あと「無効なクラス型キャスト」とだけ書かれたダイアログも出ていました。

     |  名無しさん  |  返信
  5. 詳細な情報ありがとうございました。

    いただいた条件で現象を再現することができました。

    どうやらアウトラインプラグインのバグのようです。

    発生条件としては、アウトラインプラグインのツリーをマウスでドラッグしたあとに、マウスでタブをつかんでアウトラインのツリーの上を通過してしまうとエラーが発生するようです。

    Ver 3.3.2 から発生するようになった不具合で、それ以前のバージョンでは問題なさそうです。

    取り急ぎ次のバージョンで修正しておきますので、ご不便をおかけして申し訳ございませんが今しばらくお待ちくださいませ。

     |  Kuro  |  返信
  6. お世話になっています。

    自分も似たような現象が起きました。

    > 発生条件としては、アウトラインプラグインのツリーをマウスでドラッグしたあとに、マウスでタブをつかんでアウトラインのツリーの上を通過してしまうとエラーが発生するようです。

    下記の操作をしたときはアウトラインプラグインのツリーをマウスでドラッグしていないと思うのですが、同じ現象なのでしょうか?
    (投稿しようとしたときに回答がされていましたが、内容はそのままで投稿します。)

    自分の場合は、
    あるタブ(ファイル)を表示していて、外部で更新されたファイルのタブをクリック
    → 下記のダイアログが表示される

    ---------------------------
    Mery
    ---------------------------
    外部でファイルが変更されています。読み直しますか?

    C:\Users\・・・
    ---------------------------
    はい(Y) いいえ(N)
    ---------------------------

    「はい」をクリック
    → 下記のダイアログが表示され、OK をクリックしてもダイアログは消えず、Mery を強制終了させるしかなくなる

    ---------------------------
    Mery
    ---------------------------
    無効なクラス型キャスト.
    ---------------------------
    OK
    ---------------------------

    必ずこのようになるわけではなく、試してみても再現されません。
    発生したのは、バックアップ結果のログを表示 → 別のタブ(ファイル)を表示 → バックアップツールでバックアップ → バックアップ結果のログを表示しなおそうとしたときです。
    また、このようにならず、マウスカーソルの形状がタブをドラッグしたときの形状のままになることも1回だけありました。(どこかをクリックすると、マウスカーソルの形状は元に戻ります。)

    あと、発生したのは1回だけですが、タブを別のウィンドウに移動させておいて、元のウィンドウに戻そうとしたときに、「無効なクラス型キャスト.」のダイアログが表示された気がします(記憶が定かでなく、操作内容が間違っているかもしれません)。

    Mery (x86) Version 3.3.2

    > ・お使いの OS
    Windows 7 Home Premium Service Pack 1 32 ビット (6.1.7601)

    > ・導入しているプラグイン
    アウトラインプラグイン起動中
    他で入れてあるだけのプラグインは、半透明、半角/全角変換、クラスビュー、お気に入り2、スニペット、Webプレビュー

    > ・導入しているマクロ
    イベントを設定したマクロはなし

    > ・常駐しているアプリケーション
    自分でインストールしたのはランチャーくらいで他はよく分かりません。

    > ・ウイルスチェックソフト
    Microsoft Security Essentials

     |  774  |  返信
  7. 訂正
    × 同じ現象なのでしょうか?
    ○ 同じ原因なのでしょうか?

     |  774  |  返信
  8. 原因が特定できたようで何よりでした。
    修正ありがとうございます。

    あと、もう一人の方が書かれてるマウスカーソルがタブ移動の時のままというのも発生してましたね。掴んだまま固定されていたのか、何か操作するとマウスカーソルの場所にタブがウインドウ化して飛んで行ったりしてました。だいたい入力するときはマウスカーソル邪魔なので退けてるんですよね。そこにいきなり飛んでいくのでビックリ。

    当方のマウスがチャタリング起こしているのかと思ってましたが、関連する問題だったのかな。

     |  名無しさん  |  返信
  9. ご協力ありがとうございます。とりいそぎ Ver 3.3.3 で修正しておきました。

    > 下記の操作をしたときはアウトラインプラグインのツリーをマウスでドラッグしていないと思うのですが、同じ現象なのでしょうか?

    同じ現象かどうか判断に困るところではありますが、Ver 3.3.2 から発生するようになって、なおかつアウトラインプラグイン起動中ということであれば原因は同じ可能性が高いです。

    ヒントになったのは Runtime error 231 ではなく「無効なクラス型キャスト」のほうで、これはアウトラインプラグインのソースコードを 1 行変更してしまったがために発生するようになってしまったバグでした。

    それがおおもとなので、修正すれば Runtime error 231 も発生しなくなりました。

    > あと、もう一人の方が書かれてるマウスカーソルがタブ移動の時のままというのも発生してましたね。

    マウスカーソルがタブ移動の状態のままになる現象は Ver 3.3.2 からの問題というわけではありませんが、私もごくまれに遭遇したことがあります。

    これはアウトラインプラグインかクラスビュープラグイン、Web プレビュープラグインあたりの問題な可能性が高いですが、はっきりとした再現条件がわからないので対応できていない状態です。

    アウトラインの解析に時間がかかっているときにタブを高速で切り替えたり、タブをクリックするマウスの速度がめちゃくちゃ速かったり、Web プレビュープラグインで編集モードに応じてオン・オフを切り替える設定にしているときに発生するか、もしくはそれらが重なったときに発生するような気はしています。

    プラグイン側の問題な可能性が高いのと発生条件不明、発生頻度は低めなので優先度は低めですが、気を付けて様子を見てみようと思います。

     |  Kuro  |  返信
  10. ご対応ありがとうございます。

    たぶん大丈夫な気がします。
    自分の場合は、Version 3.3.2 だと下記の手順で再現しましたが、Version 3.3.3 で発生しなくなりました。
    1. Mery でテキストAを開く
    2. アウトラインの項目をクリック
    3. 別のタブを開く
    4. メモ帳でテキストAを更新
    5. Mery でテキストAのタブをクリック
    6. 「外部でファイルが変更されています。読み直しますか?」のダイアログに「はい」を選択
    7. アウトライン欄にマウスカーソルを移動させる
    → 「無効なクラス型キャスト.」のダイアログが表示される

    ただし、上記の 1. ~ 6.(2. は行わなくてもよい)のあとにマウスカーソルを少しでも移動させると、マウスカーソルの形状がタブ移動の状態のままになります。
    アウトラインの設定は「■ 」(■と半角スペース)で、上記のテキストAの内容は「■ あ(改行)」で試しました。

    別件で、文書を新規作成して保存したあとに、その文書を裏で更新しても「外部でファイルが変更されています。読み直しますか?」のダイアログが表示されないようです。
    その文書を読み込めばOKみたいですが。

     |  774  |  返信
  11. ご報告ありがとうございます。

    > ただし、上記の 1. ~ 6.(2. は行わなくてもよい)のあとにマウスカーソルを少しでも移動させると、マウスカーソルの形状がタブ移動の状態のままになります。

    いただいた条件で現象を再現できました。

    > マウスカーソルがタブ移動の状態のままになる現象は Ver 3.3.2 からの問題というわけではありませんが、私もごくまれに遭遇したことがあります。

    それに加えて ↑ の件も Ver 3.3.2 からは発生しやすくなっていたようです。

    1. ~ 6. の条件にかかわらず、アウトラインプラグインを表示している状態だと、タブをクリックするときにマウスのクリック (押して離す動作) をめちゃくちゃ速く カチッ! とするだけで再現しました。

    どうやら Ver 3.3.2 の「プラグインイベントの発生タイミングを修正」が原因だったようで、この修正については部分的にですがロールバックすることにしました。

    > 別件で、文書を新規作成して保存したあとに、その文書を裏で更新しても「外部でファイルが変更されています。読み直しますか?」のダイアログが表示されないようです。

    そのようですね。ソースコードを確認したところ Ver 3.2.7 からの仕様で、新規作成で保存したときはあえてファイルの変更チェックをスルーするようにしていました。(Ver 3.2.6 以下は常にチェックされます)

    これは「外部でファイルが~」のダイアログを表示しないでほしいというご要望への対応で、新規作成したものは変更チェックしない、また、ダイアログで [いいえ] をクリックすると二度と変更チェックしない、という仕様に変更したことが原因でした。

    当時は変更チェックをオフにするためのオプションがなかったため、できるだけ変更チェックを減らすというかたちでの暫定的な対応となっていましたが、Ver 3.3.2 からは [外部で変更された時] の項目で [何もしない] を選択して変更チェックをオフにできるようになったので、新規作成したものも普通に変更チェックする仕様にして問題なさそうですね。

    次のバージョンでは対応しておきます。

     |  Kuro  |  返信
  12. ご対応ありがとうございます。
    正常に動作するようになったことを確認しました。

    > そのようですね。ソースコードを確認したところ Ver 3.2.7 からの仕様で、新規作成で保存したときはあえてファイルの変更チェックをスルーするようにしていました。(Ver 3.2.6 以下は常にチェックされます)
    仕様だったのですね。失礼しました。
    動作を試すためにわざと外部で変更させましたが、普通は新規作成した文書が外部で変更されることはなさそうですね。
    記事は一通り目を通していますが、まったく頭に残っていませんでした。
    つい最近読んだはずなのに [外部で変更された時] のオプションについてさえ気に留めてなかったんだなーと感じました。

     |  774  |  返信
  13. シェルスクリプトを新規に書くときとか、最初はMeryで書いて、ある程度出来上がったらターミナルで動作確認しつつそのままviで修正とか割とあるので、チェックがないとMery側で閉じ忘れてたりした場合に古い内容での上書きがちょっと怖いですね。

     |  名無しさん  |  返信
  14. > 普通は新規作成した文書が外部で変更されることはなさそうですね。

    まさにそう思って対応した仕様でしたが、新規作成でも共有フォルダーを使っているときとか、普通に外部から変更されてしまうこともありますものね。

    > 仕様だったのですね。失礼しました。
    > 記事は一通り目を通していますが、まったく頭に残っていませんでした。

    いえいえ、読んでくださりありがとうございます。

    変更チェックの仕様変更については記事中でふれてはいるものの、新規作成のときの仕様は割愛していました。

    フォーラムにトピックを立てていただいたものは必ず変更ログに記載するようにしていますが、トピックがないもの、1 つのトピックに複数のご要望が混在しているもの、コメント欄でのご要望などは「その他、細かい修正」に含めて、説明を割愛することもあります。

    > つい最近読んだはずなのに [外部で変更された時] のオプションについてさえ気に留めてなかったんだなーと感じました。

    これはフォーラムのトピックが 2008 年ですものね。ご要望があってから 13 年越し…。マイペースですみません。

    > シェルスクリプトを新規に書くときとか、最初はMeryで書いて、ある程度出来上がったらターミナルで動作確認しつつそのままviで修正とか割とあるので、チェックがないとMery側で閉じ忘れてたりした場合に古い内容での上書きがちょっと怖いですね。

    そうですよね。サーバー上のファイルを編集するときとかは新規作成したファイルであろうと外部から変更されることはありますから、この仕様は新規作成のファイルのときも変更チェックをするようにしておいた方が良さそうです。

    Ver 3.3.4 で対応しておきました。

     |  Kuro  |  返信
スポンサーリンク