{"action":"closed","issue":{"url":"https://api.github.com/repos/airbnb/lottie-android/issues/735","repository_url":"https://api.github.com/repos/airbnb/lottie-android","labels_url":"https://api.github.com/repos/airbnb/lottie-android/issues/735/labels{/name}","comments_url":"https://api.github.com/repos/airbnb/lottie-android/issues/735/comments","events_url":"https://api.github.com/repos/airbnb/lottie-android/issues/735/events","html_url":"https://github.com/airbnb/lottie-android/issues/735","id":316210185,"node_id":"MDU6SXNzdWUzMTYyMTAxODU=","number":735,"title":"ConcurrentModificationException in RecyclerView","user":{"login":"youxiachai","id":929502,"node_id":"MDQ6VXNlcjkyOTUwMg==","avatar_url":"https://avatars3.githubusercontent.com/u/929502?v=4","gravatar_id":"","url":"https://api.github.com/users/youxiachai","html_url":"https://github.com/youxiachai","followers_url":"https://api.github.com/users/youxiachai/followers","following_url":"https://api.github.com/users/youxiachai/following{/other_user}","gists_url":"https://api.github.com/users/youxiachai/gists{/gist_id}","starred_url":"https://api.github.com/users/youxiachai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/youxiachai/subscriptions","organizations_url":"https://api.github.com/users/youxiachai/orgs","repos_url":"https://api.github.com/users/youxiachai/repos","events_url":"https://api.github.com/users/youxiachai/events{/privacy}","received_events_url":"https://api.github.com/users/youxiachai/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-04-20T10:14:37Z","updated_at":"2018-07-09T06:09:36Z","closed_at":"2018-07-09T06:09:36Z","author_association":"NONE","body":"lottie version 2.5.1\r\n\r\n```java\r\njava.util.ConcurrentModificationException\r\n1 java.util.HashMap$HashIterator.remove(HashMap.java:805)\r\n--\r\n2 com.airbnb.lottie.manager.ImageAssetManager.void recycleBitmaps()(SourceFile:97)\r\n3 com.airbnb.lottie.LottieDrawable.void recycleBitmaps()(SourceFile:142)\r\n4 com.airbnb.lottie.LottieAnimationView.void recycleBitmaps()(SourceFile:277)\r\n5 com.airbnb.lottie.LottieAnimationView.void onDetachedFromWindow()(SourceFile:269)\r\n6 android.view.View.dispatchDetachedFromWindow(View.java:13449)\r\n7 android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2835)\r\n8 android.view.ViewGroup.removeViewInternal(ViewGroup.java:4164)\r\n9 android.view.ViewGroup.removeViewAt(ViewGroup.java:4113)\r\n10 android.support.v7.widget.RecyclerView$5.removeViewAt(SourceFile:804)\r\n11 android.support.v7.widget.ChildHelper.removeViewAt(SourceFile:168)\r\n12 android.support.v7.widget.RecyclerView$LayoutManager.removeViewAt(SourceFile:8260)\r\n13 android.support.v7.widget.RecyclerView$LayoutManager.scrapOrRecycleView(SourceFile:8819)\r\n14 android.support.v7.widget.RecyclerView$LayoutManager.detachAndScrapAttachedViews(SourceFile:8805)\r\n15 android.support.v7.widget.LinearLayoutManager.onLayoutChildren(SourceFile:582)\r\n16 android.support.v7.widget.RecyclerView.dispatchLayoutStep2(SourceFile:3812)\r\n17 android.support.v7.widget.RecyclerView.dispatchLayout(SourceFile:3529)\r\n18 android.support.v7.widget.RecyclerView.onLayout(SourceFile:4082)\r\n19 android.view.View.layout(View.java:15604)\r\n20 android.view.ViewGroup.layout(ViewGroup.java:4967)\r\n21 android.widget.FrameLayout.layoutChildren(FrameLayout.java:573)\r\n22 android.widget.FrameLayout.onLayout(FrameLayout.java:508)\r\n23 android.view.View.layout(View.java:15604)\r\n24 android.view.ViewGroup.layout(ViewGroup.java:4967)\r\n25 android.widget.RelativeLayout.onLayout(RelativeLayout.java:1077)\r\n26 android.view.View.layout(View.java:15604)\r\n27 android.view.ViewGroup.layout(ViewGroup.java:4967)\r\n28 android.support.v4.widget.SwipeRefreshLayout.onLayout(SourceFile:606)\r\n29 android.view.View.layout(View.java:15604)\r\n30 android.view.ViewGroup.layout(ViewGroup.java:4967)\r\n31 android.support.v4.view.ViewPager.onLayout(SourceFile:1769)\r\n32 android.view.View.layout(View.java:15604)\r\n33 android.view.ViewGroup.layout(ViewGroup.java:4967)\r\n34 android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)\r\n35 android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)\r\n36 android.widget.LinearLayout.onLayout(LinearLayout.java:1466)\r\n37 android.view.View.layout(View.java:15604)\r\n38 android.view.ViewGroup.layout(ViewGroup.java:4967)\r\n39 android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)\r\n40 android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)\r\n41 android.widget.LinearLayout.onLayout(LinearLayout.java:1466)\r\n42 android.view.View.layout(View.java:15604)\r\n43 android.view.ViewGroup.layout(ViewGroup.java:4967)\r\n44 android.widget.FrameLayout.layoutChildren(FrameLayout.java:573)\r\n45 android.widget.FrameLayout.onLayout(FrameLayout.java:508)\r\n46 android.view.View.layout(View.java:15604)\r\n47 android.view.ViewGroup.layout(ViewGroup.java:4967)\r\n48 android.widget.RelativeLayout.onLayout(RelativeLayout.java:1077)\r\n49 android.view.View.layout(View.java:15604)\r\n50 android.view.ViewGroup.layout(ViewGroup.java:4967)\r\n51 android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)\r\n52 android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)\r\n53 android.widget.LinearLayout.onLayout(LinearLayout.java:1466)\r\n54 android.view.View.layout(View.java:15604)\r\n55 android.view.ViewGroup.layout(ViewGroup.java:4967)\r\n56 android.widget.FrameLayout.layoutChildren(FrameLayout.java:573)\r\n57 android.widget.FrameLayout.onLayout(FrameLayout.java:508)\r\n58 android.view.View.layout(View.java:15604)\r\n59 android.view.ViewGroup.layout(ViewGroup.java:4967)\r\n60 android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)\r\n61 android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)\r\n62 android.widget.LinearLayout.onLayout(LinearLayout.java:1466)\r\n63 android.view.View.layout(View.java:15604)\r\n64 android.view.ViewGroup.layout(ViewGroup.java:4967)\r\n65 android.widget.FrameLayout.layoutChildren(FrameLayout.java:573)\r\n66 android.widget.FrameLayout.onLayout(FrameLayout.java:508)\r\n67 android.view.View.layout(View.java:15604)\r\n68 android.view.ViewGroup.layout(ViewGroup.java:4967)\r\n69 android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)\r\n70 android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)\r\n71 android.widget.LinearLayout.onLayout(LinearLayout.java:1466)\r\n72 android.view.View.layout(View.java:15604)\r\n73 android.view.ViewGroup.layout(ViewGroup.java:4967)\r\n74 android.widget.FrameLayout.layoutChildren(FrameLayout.java:573)\r\n75 android.widget.FrameLayout.onLayout(FrameLayout.java:508)\r\n76 android.view.View.layout(View.java:15604)\r\n77 android.view.ViewGroup.layout(ViewGroup.java:4967)\r\n78 android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2105)\r\n79 android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1855)\r\n80 android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1079)\r\n81 android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5839)\r\n82 android.view.Choreographer$CallbackRecord.run(Choreographer.java:838)\r\n83 android.view.Choreographer.doCallbacks(Choreographer.java:637)\r\n84 android.view.Choreographer.doFrame(Choreographer.java:603)\r\n85 android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:824)\r\n86 android.os.Handler.handleCallback(Handler.java:739)\r\n87 android.os.Handler.dispatchMessage(Handler.java:95)\r\n88 android.os.Looper.loop(Looper.java:135)\r\n89 android.app.ActivityThread.main(ActivityThread.java:5318)\r\n90 java.lang.reflect.Method.invoke(Native Method)\r\n91 java.lang.reflect.Method.invoke(Method.java:372)\r\n92 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:922)\r\n93 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:717)\r\n\r\n\r\n```\r\n\r\ncan use ConcurrentHashMap avoid ConcurrentModificationException ?\r\n\r\n"}}
{"actor":{"display_login":"gpeal"}}