*[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