GCX-HCI / tray

a SharedPreferences replacement for Android with multiprocess support
Apache License 2.0
2.29k stars 273 forks source link

ConcurrentModificationException in ContentProviderStorage.java:93 #123

Open BiglyBT opened 6 years ago

BiglyBT commented 6 years ago

tray Version 0.12.0

How have you setup tray (E.g. Initialized in Application.onCreate, in an Activity, BroadcastReceiver, IntentService, MainThread)

Initialized in a separate thread launched on Application.onCreate

Device(s)

Reported on Flnet BandOTT (ba101)

Android Version

Reported on SDK 23

Stacktrace

Stacktrace ``` java.util.ConcurrentModificationException: at java.util.WeakHashMap$HashIterator.next (WeakHashMap.java:165) at java.util.HashSet. (HashSet.java:76) at net.grandcentrix.tray.provider.ContentProviderStorage$TrayContentObserver.onChange (ContentProviderStorage.java:93) at android.database.ContentObserver.onChange (ContentObserver.java:145) at android.database.ContentObserver$NotificationRunnable.run (ContentObserver.java:216) at android.os.Handler.handleCallback (Handler.java:739) at android.os.Handler.dispatchMessage (Handler.java:95) at android.os.Looper.loop (Looper.java:148) at android.os.HandlerThread.run (HandlerThread.java:61) ```

Description (Just a place with additional information, more == better)

Sorry, I don't have any more information. This just popped up on Google Play Console with no user comments.

rzetzsche commented 6 years ago

+1

BiglyBT commented 6 years ago

Since this report, I've had one other with the same stacktrace, and one similar as follows

java.util.ConcurrentModificationException: 
  at java.util.WeakHashMap$HashIterator.nextEntry (WeakHashMap.java:789)
  at java.util.WeakHashMap$EntryIterator.next (WeakHashMap.java:828)
  at java.util.WeakHashMap$EntryIterator.next (WeakHashMap.java:827)
  at java.util.AbstractCollection.addAll (AbstractCollection.java:341)
  at java.util.HashSet.<init> (HashSet.java:117)
  at net.grandcentrix.tray.provider.ContentProviderStorage$TrayContentObserver.onChange (ContentProviderStorage.java:93)
  at android.database.ContentObserver.onChange (ContentObserver.java:145)
  at android.database.ContentObserver$NotificationRunnable.run (ContentObserver.java:216)
  at android.os.Handler.handleCallback (Handler.java:751)
  at android.os.Handler.dispatchMessage (Handler.java:95)
  at android.os.Looper.loop (Looper.java:154)
  at android.os.HandlerThread.run (HandlerThread.java:61)
BiglyBT commented 6 years ago

This bug might be fixed by @jiechic's fork, specifically https://github.com/jiechic/tray/commit/01ecbfaa7cc82bc35c6c4620ede4926427c0fe34#diff-cb54519e853f48265bd279de0c12920e and/or https://github.com/jiechic/tray/commit/6ed589f26cd83067c526980695979866de7b4eb9#diff-cb54519e853f48265bd279de0c12920e