操作
Bug(バグ) #3546
完了DeletedMessage::getSendFromOrTo()がnullを返した場合、op_message_link_to_memberでエラーが発生する
開始日:
2014-01-24
期日:
進捗率:
100%
予定工数:
3.6 で発生するか:
Yes (はい)
[QA]バグ通知済:
いいえ
3.8 で発生するか:
Yes (はい)
説明
Overview (現象)¶
- https://github.com/martini2002jp/opMessagePlugin/pull/2
- http://sns.openpne.jp/classic/communityTopic/8687
より
DeletedMessage::getSendFromOrTo()がnullを返した場合、op_message_link_to_memberヘルパー使用部分で以下のエラーが発生する。
Catchable fatal error: Argument 1 passed to op_message_link_to_member() must be an instance of sfOutputEscaper, null given, called in /home/xxxx/openpne/plugins/opMessagePlugin/apps/pc_frontend/modules/message/templates/listSuccess.php on line 135 and defined in /home/xxxx/openpne/plugins/opMessagePlugin/lib/helper/opMessageHelper.php on line 19
また、「DeletedMessage::getSendFromOrTo()がnullを返した場合」とは
DeletedMessageのmessage_id、message_send_list_idともに0で登録されている場合に発生しますが
通常の操作ではどちらかに関連するidが入るはずなので、
コミュニティトピックでの報告にあるように2系からのアップグレード時に上記の様なデータが作成されてしまったのではないかと思われます。
(が、こちらについては本チケットの対象から外します)
再現方法¶
- 任意のメッセージを削除する
- 削除したメッセージ(DeletedMessage)のmessage_id、message_send_list_idを共に0とする(どちらかは既に0となっているはず)
- ゴミ箱にアクセスする
Causes (原因)¶
op_message_link_to_memberにタイプヒンティングを利用しているが、上記のようにsfOutputEscaperではなくnullが来ると
タイプヒントの指定を満たしていないエラーが発生してしまう。
Way to fix (修正内容)¶
https://github.com/martini2002jp/opMessagePlugin/pull/2 の修正にあるように
デフォルトパラメータとしてnullを使用する
Maki Takahashi さんがほぼ11年前に更新
- 3.6 で発生するか を Unknown (未調査) から Yes (はい) に変更
- 3.8 で発生するか を Unknown (未調査) から Yes (はい) に変更
Maki Takahashi さんがほぼ11年前に更新
- ステータス を Accepted(着手) から Pending Testing(テスト待ち) に変更
- 進捗率 を 0 から 70 に変更
a304cbe6 にて取り込みました(コミットメッセージにチケット関連付け忘れました…)。
レビュー済みです。
Maki Takahashi さんがほぼ11年前に更新
- コピー先 Backport(バックポート) #3555: DeletedMessage::getSendFromOrTo()がnullを返した場合、op_message_link_to_memberでエラーが発生する を追加
Shinichi Urabe さんがほぼ8年前に更新
- ステータス を Pending Testing(テスト待ち) から Fixed(完了) に変更
- 進捗率 を 70 から 100 に変更
操作