OSDN Git Service

VirtualListSize更新時に内部で発生するエラーを無視する
authorKimura Youichi <kim.upsilon@bucyou.net>
Mon, 16 Jan 2017 12:56:42 +0000 (21:56 +0900)
committerKimura Youichi <kim.upsilon@bucyou.net>
Wed, 25 Jan 2017 14:14:11 +0000 (23:14 +0900)
v1.3.2 までは `catch (Exception)` によって無視されていた箇所だった
回避する手段が見付かるまで再び例外を無視する

https://ja.osdn.net/ticket/browse.php?group_id=6526&tid=36588

Fixes: ce713ec2 ("RefreshTimelineでListViewの更新を現在表示中のリストに対してのみ行う")

OpenTween/Resources/ChangeLog.txt
OpenTween/Tween.cs

index 265f38a..f5cac3a 100644 (file)
@@ -4,6 +4,7 @@
  * NEW: PNG画像のアップロード時にJPEGへの変換による劣化を回避する機能を追加しました (pic.twitter.com のみ)
  * FIX: OSの設定で小数点にピリオド以外の記号を用いている環境で、Foursquareのサムネイル表示時にエラーが発生する不具合を修正 (thx @Xiatian!)
  * FIX: 「前データを取得」の後に通常の更新が行われると、次に「前データを取得」した際に1件も取得されない不具合を修正
+ * FIX: 発言一覧の更新時にエラーが発生する不具合を回避
 
 ==== Ver 1.3.6(2016/11/22)
  * NEW: 画像アップロード時のタイムアウト時間が変更できるようになりました
index 94f1eb8..41937c7 100644 (file)
@@ -1435,8 +1435,17 @@ namespace OpenTween
                         if (listView == this._curList)
                             this.PurgeListViewItemCache();
 
-                        // リスト件数更新
-                        listView.VirtualListSize = tabModel.AllCount;
+                        try
+                        {
+                            // リスト件数更新
+                            listView.VirtualListSize = tabModel.AllCount;
+                        }
+                        catch (NullReferenceException ex)
+                        {
+                            // WinForms 内部で ListView.set_TopItem が発生させている例外
+                            // https://ja.osdn.net/ticket/browse.php?group_id=6526&tid=36588
+                            MyCommon.TraceOut(ex, $"TabType: {tabModel.TabType}, Count: {tabModel.AllCount}, ListSize: {listView.VirtualListSize}");
+                        }
 
                         // 選択位置などを復元
                         this.RestoreListViewSelection(listView, tabModel, listSelections[tabModel.TabName]);