* [android] fix java.util.ConcurrentModificationException

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

Branch: refs/heads/master
Commit: fc8028c1ff29c3f5bcedd48a53fbc249325f0fb8
Parents: 640c53f
Author: wentao.swt <wentao....@alibaba-inc.com>
Authored: Mon Mar 19 19:17:23 2018 +0800
Committer: yuhun-alibaba <tomcat...@gmail.com>
Committed: Tue Mar 27 15:59:55 2018 +0800

----------------------------------------------------------------------
 .../com/taobao/weex/bridge/WXBridgeManager.java    | 17 ++++++++---------
 .../com/taobao/weex/bridge/WXModuleManager.java    |  3 ++-
 2 files changed, 10 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/fc8028c1/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 f45150f..cb3bdcd 100644
--- a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java
+++ b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java
@@ -2107,28 +2107,27 @@ public void invokeDestoryInstance(String instanceId, 
String namespace, String fu
           execRegisterFailTask();
           WXEnvironment.JsFrameworkInit = true;
           registerDomModule();
-          WXModuleManager.reload();
           String reinitInfo = "";
           if (reInitCount > 1) {
             reinitInfo = "reinit Framework:";
-            WXExceptionUtils.commitCriticalExceptionRT(null, 
WXErrorCode.WX_JS_FRAMEWORK_REINIT_SUCCESS,
-                    "initFramework", reinitInfo + "success", null);
+            // WXExceptionUtils.commitCriticalExceptionRT(null, 
WXErrorCode.WX_JS_FRAMEWORK_REINIT_SUCCESS,
+            //       "initFramework", reinitInfo + "success", null);
           } else {
-//            WXExceptionUtils.commitCriticalExceptionRT(null, 
WXErrorCode.WX_JS_FRAMEWORK_INIT_SUCCESS.getErrorCode(),
-//                    "initFramework", reinitInfo + "success", null);
+            // WXExceptionUtils.commitCriticalExceptionRT(null, 
WXErrorCode.WX_JS_FRAMEWORK_INIT_SUCCESS.getErrorCode(),
+            //        "initFramework", reinitInfo + "success", null);
           }
 
         } else {
           if (reInitCount > 1) {
             WXLogUtils.e("[WXBridgeManager] invokeReInitFramework  
ExecuteJavaScript fail");
             String err = "[WXBridgeManager] invokeReInitFramework  
ExecuteJavaScript fail reinit FrameWork";
-                       WXExceptionUtils.commitCriticalExceptionRT(null, 
WXErrorCode.WX_ERR_JS_REINIT_FRAMEWORK,
-                                       "initFramework", "reInitCount = " + 
reInitCount + err, null);
+                       // WXExceptionUtils.commitCriticalExceptionRT(null, 
WXErrorCode.WX_ERR_JS_REINIT_FRAMEWORK,
+                       //              "initFramework", "reInitCount = " + 
reInitCount + err, null);
           } else {
             WXLogUtils.e("[WXBridgeManager] invokeInitFramework  
ExecuteJavaScript fail");
             String err = "[WXBridgeManager] invokeInitFramework  
ExecuteJavaScript fail";
-                       WXExceptionUtils.commitCriticalExceptionRT(null, 
WXErrorCode.WX_ERR_JS_FRAMEWORK,
-                                       "initFramework", err, null);
+                       // WXExceptionUtils.commitCriticalExceptionRT(null, 
WXErrorCode.WX_ERR_JS_FRAMEWORK,
+                       //              "initFramework", err, null);
           }
         }
       } catch (Throwable e) {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/fc8028c1/android/sdk/src/main/java/com/taobao/weex/bridge/WXModuleManager.java
----------------------------------------------------------------------
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/bridge/WXModuleManager.java 
b/android/sdk/src/main/java/com/taobao/weex/bridge/WXModuleManager.java
index 5a8bb89..6bc4af4 100644
--- a/android/sdk/src/main/java/com/taobao/weex/bridge/WXModuleManager.java
+++ b/android/sdk/src/main/java/com/taobao/weex/bridge/WXModuleManager.java
@@ -45,6 +45,7 @@ import java.util.Iterator;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
 
 /**
  * Manager class for weex module. There are two types of modules in weex, one 
is instance-level module,
@@ -56,7 +57,7 @@ public class WXModuleManager {
   /**
    * module class object dictionary
    */
-  private static volatile Map<String, ModuleFactoryImpl> sModuleFactoryMap = 
new HashMap<>();
+  private static volatile ConcurrentMap<String, ModuleFactoryImpl> 
sModuleFactoryMap = new ConcurrentHashMap<>();
   private static Map<String, WXModule> sGlobalModuleMap = new HashMap<>();
   private static Map<String, WXDomModule> sDomModuleMap = new HashMap<>();
 

Reply via email to