spモードメール「メッセージR」フォルダ不具合の原因

spモードメールのアップデートがあり 4700 となった

「メッセージR」フォルダの追加で、既存のフォルダを押しつぶしたりと、あいかわらず やらかしている様子

/data/data/jp.co.nttdocomo.carriermail/databases/CarrierMail を覗いてみた

(上記環境では、メッセージRが既存フォルダへ被る症状は出ていない)

青で囲った所が、ユーザー作成のフォルダで、赤で囲った部分が、アップデートにより追加されている

フォルダを作成→削除→作成 を行うと、f_id(index) に 206 で作成、206 が削除、207 が作成 という形をたどるため、私自身が8, 9 のフォルダを作成して、たまたま削除していたので難を免れた可能性がある
また、f_id が 200以下の場所へ作成されたユーザーフォルダが、いつのバージョンで作成したのかは覚えていないが、本来はこの場所へユーザーフォルダを作成できないハズなのでは?
※メッセージが消失したという方は、ゴミ箱の「メッセージR」へ移動している可能性有り

メッセージRのフォルダが、DBのどの位置にあっても構わないと思うが、インデックスの自動インクリメントを利用していない等、謎が多い。ちなみに f_id にインデックス + インクリメントのフラグが立っている

原因は 「f_id の 200番以下は、システムで予約したつもり」だろう
アップデートのたびに、おかしな仕様変更や不具合を起こすのはどうかと...


2011-7-29 追記

バージョン 4800 というアップデートが出ているが「メッセージR」への振り分け設定を削除させただけの模様

フォルダを強制的に上書きしている状況では、元のフォルダ名などは消失しているのだろうが、「メッセージR」が開始される前だからこそ、それらのメールのフォルダIDを「受信BOX」へ付け直すくらいはやってもいいんじゃないのだろうか
(「メッセージR」フォルダのメッセージは、移動や SDへの吐き出しが出来ないなどの問題が残る)

CarrierMail ファイル mail テーブルの m_folder_id 8 のレコードを → 1 に付け直す(SQL一行で済む)だけ
メッセージR を配信する前に、4900 で行うべき


上記「フォルダid上書き」が原因とされる場合の対応方法
(4800で、メッセージRへの振り分けフィルタが解除されているため、内容を修正)

index 8, 9 を自前フォルダが使っているかどうかを確認する方法は root + sqlite を使う以外にないため
  1. 自前フォルダに振り分けたメールを受信BOXへ移動
  2. ver 4800へアップデート
  3. メッセージRへ変化したフォルダがあれば、それを再作成 + 振り分け設定
  4. 振り分けを再適用
※上記は、あなたのメールを確実に守るとは限りません。苦情はドコモへお願いいたします...




2011-8-2 追記
最終対応とされる 4900 においても f_id 200番以下のユーザーフォルダについて、対応は行っていないようなので、次にシステムフォルダが増えた場合は、フォルダ名と振り分けの消失を起こす可能性が残っている

spモードメール「メッセージR」フォルダ不具合の原因 その2

コメント