*[android] fix ConcurrentModificationException when attr putAll in JSThread and 
use Iterator in mainThread.


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/1b73f044
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/1b73f044
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/1b73f044

Branch: refs/heads/master
Commit: 1b73f044b8fb92c1b994d18927781a7ee10af783
Parents: aef41c8
Author: 驱影 <jike....@alibaba-inc.com>
Authored: Tue May 15 16:11:35 2018 +0800
Committer: YorkShen <shenyua...@gmail.com>
Committed: Wed May 16 16:46:56 2018 +0800

----------------------------------------------------------------------
 android/sdk/src/main/java/com/taobao/weex/dom/WXAttr.java | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/1b73f044/android/sdk/src/main/java/com/taobao/weex/dom/WXAttr.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/WXAttr.java 
b/android/sdk/src/main/java/com/taobao/weex/dom/WXAttr.java
index 80a330b..ef2b99b 100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/WXAttr.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/WXAttr.java
@@ -425,7 +425,11 @@ public class WXAttr implements Map<String, 
Object>,Cloneable {
 
   @Override
   public void putAll(Map<? extends String, ?> map) {
-    this.attr.putAll(map);
+    // copy on write.
+    Map<String, Object> copyAttr = new ArrayMap<>();
+    copyAttr.putAll(this.attr);
+    copyAttr.putAll(map);
+    this.attr = copyAttr;
   }
 
   @Override

Reply via email to