プロジェクト

全般

プロフィール

Bug(バグ) #1757

message と message_send_list のレコードの登録順が異なっている場合にメッセージが閲覧できない

Y Kimura13年以上前に追加. 12年以上前に更新.

ステータス:
Fixed(完了)
優先度:
Urgent(急いで)
担当者:
対象バージョン:
開始日:
2010-11-04
期日:
進捗率:

100%

3.6 で発生するか:
Yes
[QA]バグ通知済:
はい
3.8 で発生するか:
Unknown (未調査)

説明

不具合の理由

  • 以下テンプレートのリンク生成関数で、パラメータにmessege_idを渡すところにsend_message_idが渡されている
    • plugins/opMessagePlugin/apps/mobile_frontend/modules/message/templates/_receiveListRecord.php

      • <?php echo sprintf('%s (%s)',
          link_to(op_truncate($message->getSubject(), 28), '@readReceiveMessage?id='. $message->getId()),
          ($message->getSendFrom()->getId()) ? $message->getSendFrom()->getName() : ''
        ); ?>
        

      • <?php echo sprintf('%s (%s)',
          link_to(op_truncate($message->getSubject(), 28), '@readReceiveMessage?id='. $message->getMessageId()),
          ($message->getSendFrom()->getId()) ? $message->getSendFrom()->getName() : ''); ?>
        
        • 生成されるリンクに誤りがあったが、全レコードで不具合にならない理由は、messege_id と send_message_id は基本的に同じ値である為、エラーとなっていない
        • メッセージ作成処理が重なった、もしくはDBが高負荷などの理由で、message と message_send_list のレコードの登録順が異なっている場合(messege_id と send_message_id が異なっている場合)にidがずれ、エラーとなる。
修正パッチ
Index: plugins/opMessagePlugin/apps/mobile_frontend/modules/message/templates/_receiveListRecord.php
===================================================================
--- plugins/opMessagePlugin/apps/mobile_frontend/modules/message/templates/_receiveListRecord.php
+++ plugins/opMessagePlugin/apps/mobile_frontend/modules/message/templates/_receiveListRecord.php
@@ -7,6 +7,6 @@
 <font color="#FF0000">(<?php echo __('Unopened') ?>)</font>
 <?php endif; ?><br>
 <?php echo sprintf('%s (%s)',
-  link_to(op_truncate($message->getSubject(), 28), '@readReceiveMessage?id='. $message->getId()),
+  link_to(op_truncate($message->getSubject(), 28), '@readReceiveMessage?id='. $message->getMessageId()),
   ($message->getSendFrom()->getId()) ? $message->getSendFrom()->getName() : ''
 ); ?>

※原因は異なりますが(携帯版、PC版両方で)
messageのidとmessage_send_listのidが異なる状態で
ゴミ箱に捨てた受信メッセージを閲覧しようとするとエラーが発生する


関連するチケット

関連している opMessagePlugin - Backport(バックポート) #2053: message と message_send_list のレコードの登録順が異なっている場合にメッセージが閲覧できない Pending Testing(テスト待ち) 2011-05-05
関連している opMessagePlugin - Bug(バグ) #1162: 携帯版の受信メッセージリストの詳細リンクのメッセージidが間違っている Invalid(無効) 2010-06-14

関係しているリビジョン

リビジョン 591abf50 (差分)
Maki Takahashiほぼ13年前に追加

fixed invalid reference id (refs #1757)

履歴

#1 Y Kimura13年以上前に更新

  • 担当者Kousuke Ebihara にセット

#2 Kousuke Ebihara13年以上前に更新

  • 担当者 を削除 (Kousuke Ebihara)

#3 Kousuke Ebihara13年以上前に更新

  • 優先度Urgent(急いで) から High(高め) に変更

#4 Kousuke Ebihara13年以上前に更新

  • 優先度High(高め) から Urgent(急いで) に変更

#5 Kousuke Ebihara13年以上前に更新

  • [QA]バグ通知済いいえ にセット

#6 Kousuke Ebihara13年以上前に更新

  • [QA]バグ通知済いいえ から はい に変更

#7 Shingo Yamadaほぼ13年前に更新

  • 担当者Maki Takahashi にセット

#8 Maki Takahashiほぼ13年前に更新

  • ステータスNew(新規) から Accepted(着手) に変更

#9 Maki Takahashiほぼ13年前に更新

  • ステータスAccepted(着手) から Pending Review(レビュー待ち) に変更
  • 進捗率0 から 50 に変更

https://github.com/martini2002jp/opMessagePlugin/commit/591abf509a8da914aa5ba09b77915237d1f45cbe にて修正いたしました。

報告いただいたモバイル版での受信メッセージの確認の他、ゴミ箱に捨てられた受信メッセージの表示でも同様の現象が起きていました(PC/モバイル両方)。
messageのidとmessage_send_listのidが異なる状態で、
受信、送信、下書き、ゴミ箱(送信⇒ゴミ/受信⇒ゴミ)のそれぞれのメッセージ閲覧が正常にできることを
モバイル、PC版それぞれで確認いたしました。

レビューよろしくお願いいたします。

#10 Shingo Yamadaほぼ13年前に更新

  • 対象バージョン0.9.1 から 0.9.2 に変更

#11 Naoya Tozukaほぼ13年前に更新

  • ステータスPending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
  • 進捗率50 から 70 に変更

修正点確認しました。ロジック的にもコーディング規約的にも問題ありませんのでレビューOKとします。

【メモ】(SendMessageDataクラスだけでなく)MessageSendListクラスのオブジェクトも $message という名前の変数に格納する実装は変数名からオブジェクトの種類が類推しにくいため、将来的にバグの温床となりえます。機会がありましたらリファクタリングしてみて下さい。

#12 Yuma Sakata12年以上前に更新

テストOKです。

#13 Yuma Sakata12年以上前に更新

  • ステータスPending Testing(テスト待ち) から Fixed(完了) に変更
  • 進捗率70 から 100 に変更

他の形式にエクスポート: Atom PDF