Skip to content
This repository was archived by the owner on May 1, 2024. It is now read-only.
This repository was archived by the owner on May 1, 2024. It is now read-only.

[Bug] CollectionViewRenderer ArgumentsOutOfRangeException #15567

Open
@fntc

Description

@fntc

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions