Xamarin.Forms icon indicating copy to clipboard operation
Xamarin.Forms copied to clipboard

[Bug] CollectionViewRenderer ArgumentsOutOfRangeException

Open fntc opened this issue 2 years ago • 2 comments

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) ItemsViewDelegator2[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

  1. List with data for CollectionView that changes (clear, add, remove) a lot
  2. Recalculation of CollectionView in progress while List gets cleared
  3. 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

fntc avatar Oct 17 '22 11:10 fntc

Facing the same issue here when using several CollectionViews. Is it possible to review the PR related to this ticket?

felipemomm avatar Feb 10 '23 10:02 felipemomm

Facing the same issue here when using several CollectionViews. Is it possible to review the PR related to this ticket?

As am I

Jakar510 avatar Oct 05 '23 21:10 Jakar510