チケット #30106

DIGA 本体予約一覧の取得に失敗する

登録: 2012-11-14 09:18 最終更新: 2012-11-14 09:18

報告者:
担当者:
チケットの種類:
状況:
オープン [担当者決定済み]
コンポーネント:
(未割り当て)
マイルストーン:
(未割り当て)
優先度:
8
重要度:
8
解決法:
なし
ファイル:
なし

詳細

<番ナビスレから転載>

【状況】

71 名前:名無しさん┃】【┃Dolby[sage] 投稿日:2012/11/14(水) 00:46:56.49 ID:DZCRcT/V0 [1/3]
【レコーダ情報取得】レコーダから情報を取得します: DIGA DMR-BWT2100(192.168.0.200:80)
Run: GetRdReserve(true)
DIGAにログインします(192.168.0.200:80).
Run: getDigaRecordSetting
Run: getDigaReserveList
========
java.lang.NullPointerException
at tainavi.HDDRecorderUtils.copyAttributes(HDDRecorderUtils.java:720)
at tainavi.PlugIn_RecDIGA_DMR_BWT2100.getDigaReserveList(PlugIn_RecDIGA_DMR_BWT2100.java:1071)
at tainavi.PlugIn_RecDIGA_DMR_BWT2100.GetRdReserve(PlugIn_RecDIGA_DMR_BWT2100.java:163)
at tainavi.Viewer.loadRdReserveOnce(Viewer.java:2463)
at tainavi.Viewer.access$55(Viewer.java:2458)
at tainavi.Viewer$18.doWorks(Viewer.java:2445)
at tainavi.SwingBackgroundWorker$1.doInBackground(SwingBackgroundWorker.java:44)
at javax.swing.SwingWorker$1.call(Unknown Source)

72 名前:名無しさん┃】【┃Dolby[sage] 投稿日:2012/11/14(水) 00:47:59.96 ID:DZCRcT/V0 [2/3]
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at javax.swing.SwingWorker.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
【致命的エラー】予約一覧の取得で例外が発生 192.168.0.200:80:DIGA DMR-BWT2100
[DEBUG][リスト形式] ヨルムンガンド PERFECT ORDER 2012/11/14 00:30 2012/11/14 01:00 2012/11/14 00:30 2012/11/14 01:00 NORMAL

73 名前:名無しさん┃】【┃Dolby[sage] 投稿日:2012/11/14(水) 00:54:12.87 ID:DZCRcT/V0 [3/3]
ログは上記のとおりにて、本体予約情報が取得できません。
(上記ログは本体予約情報の再取得ボタンを押したときに出るものです。)
鯛ナビからの予約はできるようです。タイニーシンクは使用していません。
3.16.1βまでは問題ありませんでした。現在使用しているのは3.16.3βです。
>>67でも取得できない人がいるようでしたのでログを貼ってみました。
こちらの設定ミス等でしたら申し訳ありません。

【原因】

ログから判断できる直接の原因は、以下の通りです。

  • 本体予約一覧の取得時に、既存の予約情報から新しく取得した予約情報に対して、レコーダから取得できない情報(番組詳細とか)の引継ぎを行っている
  • この引継ぎは、新旧情報の予約IDを比較して一緒のものに対して行っている
  • 旧情報の予約IDにNULLが存在する場合があり、それにアクセスしようとしてNullPointerExceptionが発生、予約一覧取得処理が中断されることとなった

対策として、旧情報の予約IDがnullかどうかのトラップを追加しました。

HDDRecorderUtils.copyAttributes(HDDRecorderUtils.java:720)
	if ( e.getId() != null && e.getId().equals(entry.getId()) ) {


が、

  • そもそも予約IDがnullになるというのが想定されていない(だって、予約IDがないと予約を管理したり操作したりできない)
  • 3.16近辺の大規模改修ではDIGA系プラグインや関連する部分に手を入れた記憶がない

などの理由により他のバグが混入している可能性がぬぐいきれません。
この他になにか異常な動作が発生するようでしたら、またご相談いただければと思います。

【影響範囲】

不明。広範囲。

【回避策】

なし。

【暫定処置】

上述の通り。

【恒久処置】

未定。

【対応予定】

未定。

チケットの履歴 (1 件中 1 件表示)

2012-11-14 09:18 更新者: peeweedee
  • 新しいチケット "DIGA 本体予約一覧の取得に失敗する" が作成されました

添付ファイルリスト

添付ファイルはありません

編集

ログインしていません。ログインしていない状態では、コメントに記載者の記録が残りません。 » ログインする