question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

jni: ThrowingException 2, Out of range in /home/cc/repo/realm/release/realm/realm-library/src/main/cpp/io_realm_internal_Collection.cpp line 417(requested: 1 valid: 1), .

See original GitHub issue

I am using a RecyclerView with realm 3.3.1 . The use case is simply to store realm objects in the database and then use SparseBoolean array to delete multiple items from the RV.

When does the crash occur?

The fatal crash occurs when I select multiple items to delete from the recyclerview. This exception is produced when I selected 2 items out of 2 for deletion. The crash happens when I am using Asus T00J Zenfone 5 and HTC one M8 both running Android 5.0. Everything runs smooth when I use the app on Android 6 or 7

How am I deleting?

private void deleteSelectedItems() {
        final List<Integer> items = adapter.getSelectedItems();
        for (int pos : items) {
            adapter.removeItem(pos);
        }
    }

My recyclerview :

private class RecViewAdapter extends RealmRecViewAdapter<MediaItem, RecViewAdapter.ViewHolder> {
.
.
.
.
public void removeItem(final int pos) {
            Log.d("test", pos+" index");
            realm.executeTransaction(realm1 -> {
                getData().deleteFromRealm(pos); //getting exception at this line
                notifyDataSetChanged();
            });
        }

Exception:

06-05 03:03:27.518 20378-20378/task.application.com.moviefinder E/REALM_JNI: Exception has been thrown: Out of range  in /home/cc/repo/realm/release/realm/realm-library/src/main/cpp/io_realm_internal_Collection.cpp line 417(requested: 1 valid: 1)
06-05 03:03:27.518 20378-20378/task.application.com.moviefinder D/AndroidRuntime: Shutting down VM
06-05 03:03:27.518 20378-20378/task.application.com.moviefinder E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                  Process: task.application.com.moviefinder, PID: 20378
                                                                                  java.lang.ArrayIndexOutOfBoundsException: Out of range  in /home/cc/repo/realm/release/realm/realm-library/src/main/cpp/io_realm_internal_Collection.cpp line 417(requested: 1 valid: 1)
                                                                                      at io.realm.internal.Collection.nativeDelete(Native Method)
                                                                                      at io.realm.internal.Collection.delete(Collection.java:477)
                                                                                      at io.realm.OrderedRealmCollectionImpl.deleteFromRealm(OrderedRealmCollectionImpl.java:181)
                                                                                      at io.realm.RealmResults.deleteFromRealm(RealmResults.java:60)
                                                                                      at task.application.com.moviefinder.ui.favorites.FavoritesMediaFragment$RecViewAdapter.lambda$removeItem$2(FavoritesMediaFragment.java:261)
                                                                                      at task.application.com.moviefinder.ui.favorites.FavoritesMediaFragment$RecViewAdapter$$Lambda$1.execute(Unknown Source)
                                                                                      at io.realm.Realm.executeTransaction(Realm.java:1443)
                                                                                      at task.application.com.moviefinder.ui.favorites.FavoritesMediaFragment$RecViewAdapter.removeItem(FavoritesMediaFragment.java:260)
                                                                                      at task.application.com.moviefinder.ui.favorites.FavoritesMediaFragment.deleteSelectedItems(FavoritesMediaFragment.java:165)
                                                                                      at task.application.com.moviefinder.ui.favorites.FavoritesMediaFragment.access$500(FavoritesMediaFragment.java:41)
                                                                                      at task.application.com.moviefinder.ui.favorites.FavoritesMediaFragment$3.onActionItemClicked(FavoritesMediaFragment.java:147)
                                                                                      at com.android.internal.policy.impl.PhoneWindow$DecorView$ActionModeCallbackWrapper.onActionItemClicked(PhoneWindow.java:3172)
                                                                                      at android.support.v7.view.SupportActionModeWrapper$CallbackWrapper.onActionItemClicked(SupportActionModeWrapper.java:173)
                                                                                      at android.support.v7.app.AppCompatDelegateImplV9$ActionModeCallbackWrapperV9.onActionItemClicked(AppCompatDelegateImplV9.java:1801)
                                                                                      at android.support.v7.view.StandaloneActionMode.onMenuItemSelected(StandaloneActionMode.java:140)
                                                                                      at android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:822)
                                                                                      at android.support.v7.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:156)
                                                                                      at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:969)
                                                                                      at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:959)
                                                                                      at android.support.v7.widget.ActionMenuView.invokeItem(ActionMenuView.java:623)
                                                                                      at android.support.v7.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:154)
                                                                                      at android.view.View.performClick(View.java:4756)
                                                                                      at android.view.View$PerformClick.run(View.java:19761)
                                                                                      at android.os.Handler.handleCallback(Handler.java:739)
                                                                                      at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                      at android.os.Looper.loop(Looper.java:135)
                                                                                      at android.app.ActivityThread.main(ActivityThread.java:5253)
                                                                                      at java.lang.reflect.Method.invoke(Native Method)
                                                                                      at java.lang.reflect.Method.invoke(Method.java:372)
                                                                                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
                                                                                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)```




Issue Analytics

  • State:closed
  • Created 6 years ago
  • Comments:5 (3 by maintainers)

github_iconTop GitHub Comments

2reactions
Zhuindencommented, Jun 5, 2017

Luck. It depends on what positions you had selected.

2reactions
Zhuindencommented, Jun 4, 2017

A possible solution would be this:

    private void deleteSelectedItems() {
        final List<Integer> items = adapter.getSelectedItems();
        realm.executeTransaction((r) -> {
            OrderedRealmCollection<MediaItem> snapshot = adapter.getData().createSnapshot();
            for (int pos : items) {
                snapshot.deleteFromRealm(pos);
            }
        });
    }
Read more comments on GitHub >

github_iconTop Results From Across the Web

java.lang.ArrayIndexOutOfBoundsException: Out of range
E/REALM_JNI: jni: ThrowingException 2, Out of range in ... /src/main/cpp/io_realm_internal_OsResults.cpp line 102(requested: 0 valid: 0), .
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found