You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by so...@apache.org on 2017/03/09 03:36:53 UTC

[1/3] incubator-weex git commit: * [android] fix ConcurrentModificationException in registeration.

Repository: incubator-weex
Updated Branches:
  refs/heads/0.11-dev 72c7ee1eb -> 18aa26514


* [android] fix ConcurrentModificationException in registeration.


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

Branch: refs/heads/0.11-dev
Commit: c10ef4dc46b75f2eb3327f51cb9efbc351313421
Parents: 1da458e
Author: sospartan <so...@gmail.com>
Authored: Tue Mar 7 15:48:37 2017 +0800
Committer: sospartan <so...@gmail.com>
Committed: Wed Mar 8 13:26:56 2017 +0800

----------------------------------------------------------------------
 .../com/taobao/weex/bridge/WXBridgeManager.java | 53 ++++++++++++++------
 1 file changed, 37 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/c10ef4dc/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java
index cfa043d..1fecf3f 100755
--- a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java
+++ b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java
@@ -1156,18 +1156,35 @@ public class WXBridgeManager implements Callback,BactchExecutor {
   }
 
   private void execRegisterFailTask() {
-    int moduleCount = mRegisterModuleFailList.size();
-    if (moduleCount > 0) {
-      for (int i = 0; i < moduleCount; ++i) {
-        invokeRegisterModules(mRegisterModuleFailList.get(i));
+
+    if (mRegisterModuleFailList.size() > 0) {
+      List<Map<String, Object>> moduleReceiver = new ArrayList<>();
+      for (int i = 0, moduleCount = mRegisterModuleFailList.size(); i < moduleCount; ++i) {
+        invokeRegisterModules(mRegisterModuleFailList.get(i), moduleReceiver);
+      }
+      mRegisterComponentFailList.clear();
+      if (moduleReceiver.size() > 0) {
+        mRegisterComponentFailList.addAll(moduleReceiver);
       }
     }
+
     if (mRegisterComponentFailList.size() > 0) {
-      invokeRegisterComponents(mRegisterComponentFailList);
+      List<Map<String, Object>> receiver = new ArrayList<>();
+      invokeRegisterComponents(mRegisterComponentFailList, receiver);
+      mRegisterComponentFailList.clear();
+      if (receiver.size() > 0) {
+        mRegisterComponentFailList.addAll(receiver);
+      }
     }
+
     if (mRegisterServiceFailList.size() > 0) {
+      List<String> receiver = new ArrayList<>();
       for (String service : mRegisterServiceFailList) {
-        invokeExecJSService(service);
+        invokeExecJSService(service, receiver);
+      }
+      mRegisterServiceFailList.clear();
+      if (receiver.size() > 0) {
+        mRegisterServiceFailList.addAll(receiver);
       }
     }
   }
@@ -1181,13 +1198,13 @@ public class WXBridgeManager implements Callback,BactchExecutor {
   public void registerModules(final Map<String, Object> modules) {
     if (modules != null && modules.size() != 0) {
       if(isJSThread()){
-        invokeRegisterModules(modules);
+        invokeRegisterModules(modules,mRegisterModuleFailList);
       }
       else{
         post(new Runnable() {
           @Override
           public void run() {
-            invokeRegisterModules(modules);
+            invokeRegisterModules(modules,mRegisterComponentFailList);
           }
         }, null);
       }
@@ -1205,7 +1222,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
     post(new Runnable() {
       @Override
       public void run() {
-        invokeRegisterComponents(components);
+        invokeRegisterComponents(components,mRegisterComponentFailList);
       }
     }, null);
   }
@@ -1214,16 +1231,16 @@ public class WXBridgeManager implements Callback,BactchExecutor {
     post(new Runnable() {
       @Override
       public void run() {
-        invokeExecJSService(service);
+        invokeExecJSService(service,mRegisterServiceFailList);
       }
     });
   }
 
-  private void invokeExecJSService(String service) {
+  private void invokeExecJSService(String service, List<String> receiver) {
     try {
       if (!isJSFrameworkInit()) {
         WXLogUtils.e("[WXBridgeManager] invoke execJSService: framework.js uninitialized.");
-        mRegisterServiceFailList.add(service);
+        receiver.add(service);
         return;
       }
       mWXBridge.execJSService(service);
@@ -1237,12 +1254,12 @@ public class WXBridgeManager implements Callback,BactchExecutor {
     return mJSThread != null && mJSThread.getId() == Thread.currentThread().getId();
   }
 
-  private void invokeRegisterModules(Map<String, Object> modules) {
+  private void invokeRegisterModules(Map<String, Object> modules, List<Map<String, Object>> failReceiver) {
     if (modules == null || !isJSFrameworkInit()) {
       if (!isJSFrameworkInit()) {
         WXLogUtils.e("[WXBridgeManager] invokeCallJSBatch: framework.js uninitialized.");
       }
-      mRegisterModuleFailList.add(modules);
+      failReceiver.add(modules);
       return;
     }
 
@@ -1256,11 +1273,15 @@ public class WXBridgeManager implements Callback,BactchExecutor {
     }
   }
 
-  private void invokeRegisterComponents(List<Map<String, Object>> components) {
+  private void invokeRegisterComponents(List<Map<String, Object>> components,List<Map<String, Object>> failReceiver) {
+    if(components == failReceiver){
+      throw new RuntimeException("Fail receiver should not use source.");
+    }
     if (!isJSFrameworkInit()) {
       WXLogUtils.e("[WXBridgeManager] invokeCallJSBatch: framework.js uninitialized.");
+
       for (Map<String,Object> comp:components){
-        mRegisterComponentFailList.add(comp);
+        failReceiver.add(comp);
       }
       return;
     }


[2/3] incubator-weex git commit: * [android] format code

Posted by so...@apache.org.
* [android] format code


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

Branch: refs/heads/0.11-dev
Commit: 6ac82334e24725e6aa4cee8305b25a0a1f494b9f
Parents: c10ef4d
Author: sospartan <so...@gmail.com>
Authored: Wed Mar 8 14:21:14 2017 +0800
Committer: sospartan <so...@gmail.com>
Committed: Wed Mar 8 14:21:14 2017 +0800

----------------------------------------------------------------------
 .../main/java/com/taobao/weex/bridge/WXBridgeManager.java | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6ac82334/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java
index 1fecf3f..de296ff 100755
--- a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java
+++ b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java
@@ -1198,13 +1198,13 @@ public class WXBridgeManager implements Callback,BactchExecutor {
   public void registerModules(final Map<String, Object> modules) {
     if (modules != null && modules.size() != 0) {
       if(isJSThread()){
-        invokeRegisterModules(modules,mRegisterModuleFailList);
+        invokeRegisterModules(modules, mRegisterModuleFailList);
       }
       else{
         post(new Runnable() {
           @Override
           public void run() {
-            invokeRegisterModules(modules,mRegisterComponentFailList);
+            invokeRegisterModules(modules, mRegisterComponentFailList);
           }
         }, null);
       }
@@ -1222,7 +1222,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
     post(new Runnable() {
       @Override
       public void run() {
-        invokeRegisterComponents(components,mRegisterComponentFailList);
+        invokeRegisterComponents(components, mRegisterComponentFailList);
       }
     }, null);
   }
@@ -1231,7 +1231,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
     post(new Runnable() {
       @Override
       public void run() {
-        invokeExecJSService(service,mRegisterServiceFailList);
+        invokeExecJSService(service, mRegisterServiceFailList);
       }
     });
   }
@@ -1273,7 +1273,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
     }
   }
 
-  private void invokeRegisterComponents(List<Map<String, Object>> components,List<Map<String, Object>> failReceiver) {
+  private void invokeRegisterComponents(List<Map<String, Object>> components, List<Map<String, Object>> failReceiver) {
     if(components == failReceiver){
       throw new RuntimeException("Fail receiver should not use source.");
     }


[3/3] incubator-weex git commit: Merge branch '0.11-dev-fix-fail-components' of github.com:sospartan/incubator-weex into 0.11-dev This closes #69

Posted by so...@apache.org.
Merge branch '0.11-dev-fix-fail-components' of github.com:sospartan/incubator-weex into 0.11-dev
This closes #69


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

Branch: refs/heads/0.11-dev
Commit: 18aa265143a9d5ea3604bec48299abd34556a52e
Parents: 72c7ee1 6ac8233
Author: sospartan <so...@gmail.com>
Authored: Thu Mar 9 11:36:29 2017 +0800
Committer: sospartan <so...@gmail.com>
Committed: Thu Mar 9 11:36:29 2017 +0800

----------------------------------------------------------------------
 .../com/taobao/weex/bridge/WXBridgeManager.java | 53 ++++++++++++++------
 1 file changed, 37 insertions(+), 16 deletions(-)
----------------------------------------------------------------------