[Bug] CollectionViewRenderer ArgumentsOutOfRangeException #15567
Description
Description
CollectionViewRenderer on iOS will crash the application when the ObservableItemsSource changes while it is recalculation the layout.
SIGABRT: Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index
MyFancyComplexDataList.get_Item (System.Int32 index)
ObservableItemsSource.ElementAt (System.Int32 index)
ObservableItemsSource.get_Item (System.Int32 index)
ObservableItemsSource.get_Item (Foundation.NSIndexPath indexPath)
ItemsViewController1[TItemsView].GetSizeForItem (Foundation.NSIndexPath indexPath) ItemsViewDelegator
2[TItemsView,TViewController].GetSizeForItem (UIKit.UICollectionView collectionView, UIKit.UICollectionViewLayout layout, Foundation.NSIndexPath indexPath)
(wrapper managed-to-native) ObjCRuntime.Messaging.objc_msgSendSuper(intptr,intptr)
UICollectionViewLayout.PrepareLayout ()
ItemsViewLayout.PrepareLayout ()
(wrapper managed-to-native) UIKit.UIApplication.xamarin_UIApplicationMain(int,string[],intptr,intptr,intptr&)
UIApplication.UIApplicationMain (System.Int32 argc, System.String[] argv, System.IntPtr principalClassName, System.IntPtr delegateClassName)
UIApplication.Main (System.String[] args, System.Type principalClass, System.Type delegateClass)
Application.Main (System.String[] args)
Steps to Reproduce
- List with data for CollectionView that changes (clear, add, remove) a lot
- Recalculation of CollectionView in progress while List gets cleared
- ArgumentOutOfRangeException -> App crash
Expected Behavior
Handle ArgumentOutOfRangeException gracefully, returning default item.
Actual Behavior
Renderer Crashing on ArgumentOutOfRangeException
Basic Information
- Version with issue: 5.0.0 SR12
- Last known good version: unknown
- Platform Target Frameworks:
- iOS:
Build Logs
Workaround
CollectionView.IsVisible=false
Change Data
CollectionView.IsVisible=true
reduces the amount of crashes