- Notifications
You must be signed in to change notification settings - Fork 651
Closed
Description
[REQUIRED] Step 2: Describe your environment
- Firebase Component: com.google.firebase:firebase-iid
- Component version: 20.1.2
[REQUIRED] Step 3: Describe the problem
Class.getResourceAsStream is very slow on Android, should instead load from Android Resource Manager.
Also, Android API 23 has a race condition with Class.getResourceAsStream that causes a ConcurrentModificationException
java.util.ConcurrentModificationException at java.util.HashMap$HashIterator.nextEntry(HashMap.java:787) at java.util.HashMap$KeyIterator.next(HashMap.java:814) at java.util.jar.JarVerifier.readCertificates(JarVerifier.java:266) at java.util.jar.JarFile.getInputStream(JarFile.java:380) at libcore.net.url.JarURLConnectionImpl.getInputStream(JarURLConnectionImpl.java:222) at java.net.URL.openStream(URL.java:470) at java.lang.ClassLoader.getResourceAsStream(ClassLoader.java:444) at java.lang.Class.getResourceAsStream(Class.java:1169) at com.google.android.gms.common.internal.LibraryVersion.getVersion(Unknown Source) at com.google.firebase.iid.zzs.zzb(com.google.firebase:firebase-iid@@20.1.2:61) at com.google.firebase.iid.zzs.zza(com.google.firebase:firebase-iid@@20.1.2:89) at com.google.firebase.iid.zzv.run(com.google.firebase:firebase-iid@@20.1.2) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) at java.lang.Thread.run(Thread.java:818)``` ashwinraghav