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 を使う以外にないため
2011-8-2 追記
最終対応とされる 4900 においても f_id 200番以下のユーザーフォルダについて、対応は行っていないようなので、次にシステムフォルダが増えた場合は、フォルダ名と振り分けの消失を起こす可能性が残っている
spモードメール「メッセージR」フォルダ不具合の原因 その2
「メッセージ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 を使う以外にないため
- 自前フォルダに振り分けたメールを受信BOXへ移動
- ver 4800へアップデート
- メッセージRへ変化したフォルダがあれば、それを再作成 + 振り分け設定
- 振り分けを再適用
2011-8-2 追記
最終対応とされる 4900 においても f_id 200番以下のユーザーフォルダについて、対応は行っていないようなので、次にシステムフォルダが増えた場合は、フォルダ名と振り分けの消失を起こす可能性が残っている
spモードメール「メッセージR」フォルダ不具合の原因 その2
コメント