You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by gu...@apache.org on 2017/10/17 09:05:34 UTC

[1/4] incubator-weex git commit: * [android] modify log print

Repository: incubator-weex
Updated Branches:
  refs/heads/release-0.16 9a16f8ba3 -> f3bfa02cd


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b5126471/android/sdk/src/main/java/com/taobao/weex/dom/WXDomObject.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/WXDomObject.java b/android/sdk/src/main/java/com/taobao/weex/dom/WXDomObject.java
index 782b16c..03f3057 100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/WXDomObject.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/WXDomObject.java
@@ -335,9 +335,7 @@ public class WXDomObject extends CSSNode implements Cloneable,ImmutableDomObject
 
     int index = mDomChildren.indexOf(child);
     if (index == -1) {
-      if (WXEnvironment.isApkDebugable()) {
         WXLogUtils.e("[WXDomObject] remove function error");
-      }
       return;
     }
     mDomChildren.remove(index).parent = null;
@@ -685,7 +683,7 @@ public class WXDomObject extends CSSNode implements Cloneable,ImmutableDomObject
             type = TextUtils.isEmpty(result.replacedComponent) ? WXBasicComponentType.DIV
                     : result.replacedComponent;
             json.put(TYPE, type);
-            if (WXEnvironment.isApkDebugable() && result.validateInfo != null) {
+            if (result.validateInfo != null) {
               String tag = "[WXDomObject]onComponentValidate failure. >>> " + result.validateInfo.toJSONString();
               WXLogUtils.e(tag);
             }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b5126471/android/sdk/src/main/java/com/taobao/weex/dom/action/AbstractAddElementAction.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/action/AbstractAddElementAction.java b/android/sdk/src/main/java/com/taobao/weex/dom/action/AbstractAddElementAction.java
index 9f35263..3fcedcb 100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/action/AbstractAddElementAction.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/action/AbstractAddElementAction.java
@@ -96,9 +96,7 @@ public abstract class AbstractAddElementAction extends TraceableAction implement
     Stopwatch.split("parseDomObject");
 
     if (domObject == null || context.getDomByRef(domObject.getRef()) != null) {
-      if (WXEnvironment.isApkDebugable()) {
-        WXLogUtils.e("[DOMActionContextImpl] " + getStatementName() + " error,DOM object is null or already registered!!");
-      }
+      WXLogUtils.e("[DOMActionContextImpl] " + getStatementName() + " error,DOM object is null or already registered!!");
       instance.commitUTStab(IWXUserTrackAdapter.DOM_MODULE, errCode);
       return;
     }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b5126471/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponentFactory.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponentFactory.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponentFactory.java
index 4323821..4f9712f 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponentFactory.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponentFactory.java
@@ -59,11 +59,9 @@ public class WXComponentFactory {
 
     IFComponentHolder holder = WXComponentRegistry.getComponent(node.getType());
     if (holder == null) {
-      if (WXEnvironment.isApkDebugable()) {
         String tag = "WXComponentFactory error type:[" +
                 node.getType() + "]" + " class not found";
         WXLogUtils.e(tag);
-      }
       //For compatible reason of JS framework, unregistered type will be treated as container.
       holder = WXComponentRegistry.getComponent(WXBasicComponentType.CONTAINER);
       if(holder == null){

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b5126471/android/sdk/src/main/java/com/taobao/weex/utils/WXLogUtils.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/utils/WXLogUtils.java b/android/sdk/src/main/java/com/taobao/weex/utils/WXLogUtils.java
index 1f2b4b1..ae6e623 100644
--- a/android/sdk/src/main/java/com/taobao/weex/utils/WXLogUtils.java
+++ b/android/sdk/src/main/java/com/taobao/weex/utils/WXLogUtils.java
@@ -71,13 +71,17 @@ public class WXLogUtils {
   }
 
   private static void log(String tag, String msg, LogLevel level){
-    if (WXEnvironment.isApkDebugable() && msg != null && WXEnvironment.sLogLevel.compare(level) >= 0) {
-      Log.println(level.getPriority(),tag, msg);
-      writeConsoleLog(level.getName(), msg);
-      sendLog(level, msg);
-    }
-    if (sLogWatcher != null) {
-      sLogWatcher.onLog(level.getName(), tag, msg);
+    if (msg != null && WXEnvironment.sLogLevel.compare(level) >= 0) {
+      if (sLogWatcher != null ) {
+        sLogWatcher.onLog(level.getName(), tag, msg);
+      }else{
+        Log.println(level.getPriority(),tag, msg);
+      }
+
+      if(WXEnvironment.isApkDebugable()){
+        writeConsoleLog(level.getName(), msg);
+        sendLog(level, msg);
+      }
     }
   }
 
@@ -214,15 +218,13 @@ public class WXLogUtils {
   }
 
   public static void w(String prefix, Throwable e) {
-    if (WXEnvironment.isApkDebugable()) {
       w(prefix + getStackTrace(e));
-    }
+
   }
 
   public static void e(String prefix, Throwable e) {
-    if (WXEnvironment.isApkDebugable()) {
       e(prefix + getStackTrace(e));
-    }
+
   }
 
   public static void wtf(String prefix, Throwable e){


[3/4] incubator-weex git commit: * [android] add test case

Posted by gu...@apache.org.
* [android] add test case


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

Branch: refs/heads/release-0.16
Commit: c9b5c45fbaf6c9540f2501b2716aa68f2c5d8c16
Parents: b512647
Author: zshshr <zh...@gmail.com>
Authored: Tue Oct 17 11:50:08 2017 +0800
Committer: zshshr <zh...@gmail.com>
Committed: Tue Oct 17 11:50:08 2017 +0800

----------------------------------------------------------------------
 .../java/com/taobao/weex/utils/WXLogUtilsTest.java  | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/c9b5c45f/android/sdk/src/test/java/com/taobao/weex/utils/WXLogUtilsTest.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/test/java/com/taobao/weex/utils/WXLogUtilsTest.java b/android/sdk/src/test/java/com/taobao/weex/utils/WXLogUtilsTest.java
index 3fde10a..e249c1c 100644
--- a/android/sdk/src/test/java/com/taobao/weex/utils/WXLogUtilsTest.java
+++ b/android/sdk/src/test/java/com/taobao/weex/utils/WXLogUtilsTest.java
@@ -20,6 +20,7 @@ package com.taobao.weex.utils;
 
 import com.taobao.weappplus_sdk.BuildConfig;
 import com.taobao.weex.WXEnvironment;
+
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -91,4 +92,17 @@ public class WXLogUtilsTest {
     Log.e("tag",new Throwable("test"));
   }
 
-}
+  @Test
+  public void testLogLevel() throws Exception {
+    WXEnvironment.sLogLevel = LogLevel.DEBUG;
+    Log.d("LogLevel.DEBUG", "test debug");
+    Log.w("LogLevel.DEBUG", "test warning");
+    Log.e("LogLevel.DEBUG", "test error");
+
+    WXEnvironment.sLogLevel = LogLevel.WARN;
+
+    Log.d("LogLevel.WARN", "test debug");
+    Log.w("LogLevel.WARN", "test warning");
+    Log.e("LogLevel.WARN", "test error");
+  }
+  }


[4/4] incubator-weex git commit: * [android] fix WXLogUtils Log Level

Posted by gu...@apache.org.
* [android] fix WXLogUtils Log Level


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

Branch: refs/heads/release-0.16
Commit: f3bfa02cdaf7043a6df031504cd324fc4d3cc7c8
Parents: 9a16f8b c9b5c45
Author: gurisxie <27...@qq.com>
Authored: Tue Oct 17 17:03:39 2017 +0800
Committer: gurisxie <27...@qq.com>
Committed: Tue Oct 17 17:03:39 2017 +0800

----------------------------------------------------------------------
 .../main/java/com/taobao/weex/WXSDKEngine.java  |   6 +
 .../com/taobao/weex/bridge/WXBridgeManager.java | 993 +++++++++----------
 .../java/com/taobao/weex/dom/WXDomObject.java   |   4 +-
 .../dom/action/AbstractAddElementAction.java    |   4 +-
 .../weex/ui/component/WXComponentFactory.java   |   2 -
 .../java/com/taobao/weex/utils/WXLogUtils.java  |  24 +-
 .../com/taobao/weex/utils/WXLogUtilsTest.java   |  16 +-
 7 files changed, 528 insertions(+), 521 deletions(-)
----------------------------------------------------------------------



[2/4] incubator-weex git commit: * [android] modify log print

Posted by gu...@apache.org.
* [android] modify log print


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

Branch: refs/heads/release-0.16
Commit: b5126471d1b3d9ab04e1c1e39cc636079c47cf58
Parents: 8cebed4
Author: zshshr <zh...@gmail.com>
Authored: Tue Oct 10 12:06:33 2017 +0800
Committer: zshshr <zh...@gmail.com>
Committed: Tue Oct 17 10:56:05 2017 +0800

----------------------------------------------------------------------
 .../main/java/com/taobao/weex/WXSDKEngine.java  |   6 +
 .../com/taobao/weex/bridge/WXBridgeManager.java | 993 +++++++++----------
 .../java/com/taobao/weex/dom/WXDomObject.java   |   4 +-
 .../dom/action/AbstractAddElementAction.java    |   4 +-
 .../weex/ui/component/WXComponentFactory.java   |   2 -
 .../java/com/taobao/weex/utils/WXLogUtils.java  |  24 +-
 6 files changed, 513 insertions(+), 520 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b5126471/android/sdk/src/main/java/com/taobao/weex/WXSDKEngine.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/WXSDKEngine.java b/android/sdk/src/main/java/com/taobao/weex/WXSDKEngine.java
index 3a287cc..0296379 100644
--- a/android/sdk/src/main/java/com/taobao/weex/WXSDKEngine.java
+++ b/android/sdk/src/main/java/com/taobao/weex/WXSDKEngine.java
@@ -93,6 +93,7 @@ import com.taobao.weex.ui.module.WXMetaModule;
 import com.taobao.weex.ui.module.WXModalUIModule;
 import com.taobao.weex.ui.module.WXTimerModule;
 import com.taobao.weex.ui.module.WXWebViewModule;
+import com.taobao.weex.utils.LogLevel;
 import com.taobao.weex.utils.WXLogUtils;
 import com.taobao.weex.utils.WXSoInstallMgrSdk;
 import com.taobao.weex.utils.batch.BatchOperationHelper;
@@ -158,6 +159,11 @@ public class WXSDKEngine {
       }
       long start = System.currentTimeMillis();
       WXEnvironment.sSDKInitStart = start;
+      if(WXEnvironment.isApkDebugable()){
+        WXEnvironment.sLogLevel = LogLevel.DEBUG;
+      }else{
+        WXEnvironment.sLogLevel = LogLevel.WARN;
+      }
       doInitInternal(application,config);
       WXEnvironment.sSDKInitInvokeTime = System.currentTimeMillis()-start;
       WXLogUtils.renderPerformanceLog("SDKInitInvokeTime", WXEnvironment.sSDKInitInvokeTime);

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b5126471/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 713c4c2..c44d7af 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
@@ -84,26 +84,26 @@ import static com.taobao.weex.bridge.WXModuleManager.getDomModule;
 /**
  * Manager class for communication between JavaScript and Android.
  * <ol>
- *   <li>
- *     Handle Android to JavaScript call, can be one of the following
- *     <ul>
- *       <li>{@link #createInstance(String, String, Map, String)}</li>
- *       <li>{@link #destroyInstance(String)}</li>
- *       <li>{@link #refreshInstance(String, WXRefreshData)}</li>
- *       <li>{@link #registerModules(Map)}</li>
- *       <li>{@link #registerComponents(List)}</li>
- *       <li>{@link #invokeCallJSBatch(Message)}</li>
- *     </ul>
- *   </li>
- *   <li>
- *     Handle JavaScript to Android call
- *   </li>
- *   <li>
- *     Handle next tick of message.
- *   </li>
+ * <li>
+ * Handle Android to JavaScript call, can be one of the following
+ * <ul>
+ * <li>{@link #createInstance(String, String, Map, String)}</li>
+ * <li>{@link #destroyInstance(String)}</li>
+ * <li>{@link #refreshInstance(String, WXRefreshData)}</li>
+ * <li>{@link #registerModules(Map)}</li>
+ * <li>{@link #registerComponents(List)}</li>
+ * <li>{@link #invokeCallJSBatch(Message)}</li>
+ * </ul>
+ * </li>
+ * <li>
+ * Handle JavaScript to Android call
+ * </li>
+ * <li>
+ * Handle next tick of message.
+ * </li>
  * </ol>
  */
-public class WXBridgeManager implements Callback,BactchExecutor {
+public class WXBridgeManager implements Callback, BactchExecutor {
 
   public static final String METHOD_CREATE_INSTANCE = "createInstance";
   public static final String METHOD_DESTROY_INSTANCE = "destroyInstance";
@@ -129,33 +129,28 @@ public class WXBridgeManager implements Callback,BactchExecutor {
   public static final String KEY_PARAMS = "params";
   public static final String ARGS = "args";
   public static final String OPTIONS = "options";
+  public static final String INITLOGFILE = "/jsserver_start.log";
   private static final String NON_CALLBACK = "-1";
   private static final String UNDEFINED = "undefined";
-
   private static final int INIT_FRAMEWORK_OK = 1;
-
-  private static long LOW_MEM_VALUE = 120;
-
-  static volatile WXBridgeManager mBridgeManager;
-
   private static final int CRASHREINIT = 50;
+  static volatile WXBridgeManager mBridgeManager;
+  private static long LOW_MEM_VALUE = 120;
   private static int reInitCount = 1;
-
   private static String crashUrl = null;
   private static long lastCrashTime = 0;
-  public static final String INITLOGFILE = "/jsserver_start.log";
-
-
+  /**
+   * package
+   **/
+  Handler mJSHandler;
   /**
    * next tick tasks, can set priority
    */
   private WXHashMap<String, ArrayList<WXHashMap<String, Object>>> mNextTickTasks = new WXHashMap<>();
-
   /**
    * JSThread
    */
   private WXThread mJSThread;
-  /** package **/ Handler mJSHandler;
   private IWXBridge mWXBridge;
   private IWXDebugProxy mWxDebugProxy;
 
@@ -163,22 +158,13 @@ public class WXBridgeManager implements Callback,BactchExecutor {
   /**
    * Whether JS Framework(main.js) has been initialized.
    */
-  private boolean mInit =false;
-
-  private boolean isJSFrameworkInit(){
-    return mInit;
-  }
-
+  private boolean mInit = false;
   private List<Map<String, Object>> mRegisterComponentFailList = new ArrayList<>(8);
   private List<Map<String, Object>> mRegisterModuleFailList = new ArrayList<>(8);
   private List<String> mRegisterServiceFailList = new ArrayList<>(8);
-
   private List<String> mDestroyedInstanceId = new ArrayList<>();
-
   private StringBuilder mLodBuilder = new StringBuilder(50);
-
   private Interceptor mInterceptor;
-
   private WXParams mInitParams;
 
   private WXBridgeManager() {
@@ -198,6 +184,10 @@ public class WXBridgeManager implements Callback,BactchExecutor {
     return mBridgeManager;
   }
 
+  private boolean isJSFrameworkInit() {
+    return mInit;
+  }
+
   private void initWXBridge(boolean remoteDebug) {
     if (remoteDebug && WXEnvironment.isApkDebugable()) {
       WXEnvironment.sDebugServerConnectable = true;
@@ -214,7 +204,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
             Constructor constructor = clazz.getConstructor(Context.class, WXBridgeManager.class);
             if (constructor != null) {
               mWxDebugProxy = (IWXDebugProxy) constructor.newInstance(
-                      WXEnvironment.getApplication(), WXBridgeManager.this);
+                  WXEnvironment.getApplication(), WXBridgeManager.this);
               if (mWxDebugProxy != null) {
                 mWxDebugProxy.start();
               }
@@ -242,36 +232,36 @@ public class WXBridgeManager implements Callback,BactchExecutor {
     }
   }
 
-    public Object callModuleMethod(String instanceId, String moduleStr, String methodStr, JSONArray args) {
-      return  callModuleMethod(instanceId, moduleStr, methodStr, args, null);
+  public Object callModuleMethod(String instanceId, String moduleStr, String methodStr, JSONArray args) {
+    return callModuleMethod(instanceId, moduleStr, methodStr, args, null);
   }
 
-    public Object callModuleMethod(String instanceId, String moduleStr, String methodStr, JSONArray args, JSONObject options) {
-      WXSDKInstance wxsdkInstance = WXSDKManager.getInstance()
-              .getSDKInstance(instanceId);
-      if (wxsdkInstance == null) {
+  public Object callModuleMethod(String instanceId, String moduleStr, String methodStr, JSONArray args, JSONObject options) {
+    WXSDKInstance wxsdkInstance = WXSDKManager.getInstance()
+        .getSDKInstance(instanceId);
+    if (wxsdkInstance == null) {
+      return null;
+    }
+    if (wxsdkInstance.isNeedValidate()
+        && WXSDKManager.getInstance().getValidateProcessor() != null) {
+      WXValidateProcessor.WXModuleValidateResult validateResult = WXSDKManager
+          .getInstance().getValidateProcessor()
+          .onModuleValidate(wxsdkInstance, moduleStr, methodStr, args, options);
+      if (validateResult == null) {
         return null;
       }
-      if (wxsdkInstance.isNeedValidate()
-              && WXSDKManager.getInstance().getValidateProcessor() != null) {
-          WXValidateProcessor.WXModuleValidateResult validateResult = WXSDKManager
-                  .getInstance().getValidateProcessor()
-                  .onModuleValidate(wxsdkInstance, moduleStr, methodStr, args, options);
-          if (validateResult == null) {
-              return null;
-          }
-          if (validateResult.isSuccess) {
-              return WXModuleManager.callModuleMethod(instanceId, moduleStr, methodStr,
-                      args);
-          } else {
-              JSONObject validateInfo = validateResult.validateInfo;
-            if (validateInfo != null) {
-              WXLogUtils.e("[WXBridgeManager] module validate fail. >>> " + validateInfo.toJSONString());
-            }
-              return validateInfo;
-          }
+      if (validateResult.isSuccess) {
+        return WXModuleManager.callModuleMethod(instanceId, moduleStr, methodStr,
+            args);
+      } else {
+        JSONObject validateInfo = validateResult.validateInfo;
+        if (validateInfo != null) {
+          WXLogUtils.e("[WXBridgeManager] module validate fail. >>> " + validateInfo.toJSONString());
+        }
+        return validateInfo;
       }
-      return WXModuleManager.callModuleMethod(instanceId, moduleStr, methodStr, args);
+    }
+    return WXModuleManager.callModuleMethod(instanceId, moduleStr, methodStr, args);
   }
 
   /**
@@ -284,6 +274,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
 
   /**
    * Set current Instance
+   *
    * @param instanceId {@link WXSDKInstance#mInstanceId}
    */
   public synchronized void setStackTopInstance(final String instanceId) {
@@ -297,12 +288,12 @@ public class WXBridgeManager implements Callback,BactchExecutor {
   }
 
   @Override
-  public void post(Runnable r){
-    if(mInterceptor != null && mInterceptor.take(r)){
+  public void post(Runnable r) {
+    if (mInterceptor != null && mInterceptor.take(r)) {
       //task is token by the interceptor
       return;
     }
-    if (mJSHandler == null){
+    if (mJSHandler == null) {
       return;
     }
 
@@ -335,15 +326,15 @@ public class WXBridgeManager implements Callback,BactchExecutor {
     mJSHandler.sendMessageDelayed(message, timerInfo.time);
   }
 
-  public void sendMessageDelayed(Message message, long delayMillis){
+  public void sendMessageDelayed(Message message, long delayMillis) {
     if (message == null || mJSHandler == null || mJSThread == null
         || !mJSThread.isWXThreadAlive() || mJSThread.getLooper() == null) {
       return;
     }
-    mJSHandler.sendMessageDelayed(message,delayMillis);
+    mJSHandler.sendMessageDelayed(message, delayMillis);
   }
 
-  public void removeMessage(int what,Object obj){
+  public void removeMessage(int what, Object obj) {
     if (mJSHandler == null || mJSThread == null
         || !mJSThread.isWXThreadAlive() || mJSThread.getLooper() == null) {
       return;
@@ -351,98 +342,97 @@ public class WXBridgeManager implements Callback,BactchExecutor {
     mJSHandler.removeMessages(what, obj);
   }
 
-    public Object callNativeModule(String instanceId, String module, String method, JSONArray arguments, Object options) {
+  public Object callNativeModule(String instanceId, String module, String method, JSONArray arguments, Object options) {
 
-        if (WXEnvironment.isApkDebugable()) {
-            mLodBuilder.append("[WXBridgeManager] callNativeModule >>>> instanceId:").append(instanceId)
-                    .append(", module:").append(module).append(", method:").append(method).append(", arguments:").append(arguments);
-            WXLogUtils.d(mLodBuilder.substring(0));
-            mLodBuilder.setLength(0);
-        }
-
-        try {
-            if(WXDomModule.WXDOM.equals(module)){
-              WXDomModule dom = getDomModule(instanceId);
-              return dom.callDomMethod(method,arguments);
-            }else {
-              return callModuleMethod(instanceId, module,
-                      method, arguments);
-            }
-        } catch (Exception e) {
-            WXLogUtils.e("[WXBridgeManager] callNative exception: ", e);
-            commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE, "[WXBridgeManager] callNativeModule exception " + e.getCause());
-        }
+    if (WXEnvironment.isApkDebugable()) {
+      mLodBuilder.append("[WXBridgeManager] callNativeModule >>>> instanceId:").append(instanceId)
+          .append(", module:").append(module).append(", method:").append(method).append(", arguments:").append(arguments);
+      WXLogUtils.d(mLodBuilder.substring(0));
+      mLodBuilder.setLength(0);
+    }
 
-        return null;
+    try {
+      if (WXDomModule.WXDOM.equals(module)) {
+        WXDomModule dom = getDomModule(instanceId);
+        return dom.callDomMethod(method, arguments);
+      } else {
+        return callModuleMethod(instanceId, module,
+            method, arguments);
+      }
+    } catch (Exception e) {
+      WXLogUtils.e("[WXBridgeManager] callNative exception: ", e);
+      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE, "[WXBridgeManager] callNativeModule exception " + e.getCause());
     }
-    public Object callNativeModule(String instanceId, String module,String method, JSONArray arguments, JSONObject options) {
 
-        if (WXEnvironment.isApkDebugable()) {
-            mLodBuilder.append("[WXBridgeManager] callNativeModule >>>> instanceId:").append(instanceId)
-                    .append(", module:").append(module).append(", method:").append(method).append(", arguments:").append(arguments);
-            WXLogUtils.d(mLodBuilder.substring(0));
-            mLodBuilder.setLength(0);
-        }
+    return null;
+  }
 
-        try {
-            if(WXDomModule.WXDOM.equals(module)){
-              WXDomModule dom = getDomModule(instanceId);
-              return dom.callDomMethod(method,arguments);
-            }else {
-              return callModuleMethod(instanceId, module,
-                      method, arguments, options);
-            }
-        } catch (Exception e) {
-            WXLogUtils.e("[WXBridgeManager] callNative exception: ", e);
-            commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE, "[WXBridgeManager] callNativeModule exception " + e.getCause());
-        }
+  public Object callNativeModule(String instanceId, String module, String method, JSONArray arguments, JSONObject options) {
 
-        return null;
+    if (WXEnvironment.isApkDebugable()) {
+      mLodBuilder.append("[WXBridgeManager] callNativeModule >>>> instanceId:").append(instanceId)
+          .append(", module:").append(module).append(", method:").append(method).append(", arguments:").append(arguments);
+      WXLogUtils.d(mLodBuilder.substring(0));
+      mLodBuilder.setLength(0);
     }
 
-    public Object callNativeComponent(String instanceId, String componentRef, String method, JSONArray arguments, Object options) {
-        if (WXEnvironment.isApkDebugable()) {
-            mLodBuilder.append("[WXBridgeManager] callNativeComponent >>>> instanceId:").append(instanceId)
-                    .append(", componentRef:").append(componentRef).append(", method:").append(method).append(", arguments:").append(arguments);
-            WXLogUtils.d(mLodBuilder.substring(0));
-            mLodBuilder.setLength(0);
-        }
-        try {
+    try {
+      if (WXDomModule.WXDOM.equals(module)) {
+        WXDomModule dom = getDomModule(instanceId);
+        return dom.callDomMethod(method, arguments);
+      } else {
+        return callModuleMethod(instanceId, module,
+            method, arguments, options);
+      }
+    } catch (Exception e) {
+      WXLogUtils.e("[WXBridgeManager] callNative exception: ", e);
+      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE, "[WXBridgeManager] callNativeModule exception " + e.getCause());
+    }
 
-            WXDomModule dom = getDomModule(instanceId);
-            dom.invokeMethod(componentRef, method, arguments);
+    return null;
+  }
 
-        } catch (Exception e) {
-            WXLogUtils.e("[WXBridgeManager] callNative exception: ", e);
-            commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE, "[WXBridgeManager] callNativeModule exception " + e.getCause());
-        }
-        return null;
+  public Object callNativeComponent(String instanceId, String componentRef, String method, JSONArray arguments, Object options) {
+    if (WXEnvironment.isApkDebugable()) {
+      mLodBuilder.append("[WXBridgeManager] callNativeComponent >>>> instanceId:").append(instanceId)
+          .append(", componentRef:").append(componentRef).append(", method:").append(method).append(", arguments:").append(arguments);
+      WXLogUtils.d(mLodBuilder.substring(0));
+      mLodBuilder.setLength(0);
     }
+    try {
+
+      WXDomModule dom = getDomModule(instanceId);
+      dom.invokeMethod(componentRef, method, arguments);
+
+    } catch (Exception e) {
+      WXLogUtils.e("[WXBridgeManager] callNative exception: ", e);
+      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE, "[WXBridgeManager] callNativeModule exception " + e.getCause());
+    }
+    return null;
+  }
 
   /**
    * Dispatch the native task to be executed.
-     *
+   *
    * @param instanceId {@link WXSDKInstance#mInstanceId}
-   * @param tasks tasks to be executed
-   * @param callback next tick id
+   * @param tasks      tasks to be executed
+   * @param callback   next tick id
    */
   public int callNative(String instanceId, String tasks, String callback) {
     if (TextUtils.isEmpty(tasks)) {
-      if (WXEnvironment.isApkDebugable()) {
-        WXLogUtils.e("[WXBridgeManager] callNative: call Native tasks is null");
-      }
-      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE,"[WXBridgeManager] callNative: call Native tasks is null");
+      WXLogUtils.e("[WXBridgeManager] callNative: call Native tasks is null");
+      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE, "[WXBridgeManager] callNative: call Native tasks is null");
       return IWXBridge.INSTANCE_RENDERING_ERROR;
     }
 
     // if (WXEnvironment.isApkDebugable()) {
-      mLodBuilder.append("[WXBridgeManager] callNative >>>> instanceId:").append(instanceId)
-          .append(", tasks:").append(tasks).append(", callback:").append(callback);
-      WXLogUtils.d(mLodBuilder.substring(0));
-      mLodBuilder.setLength(0);
+    mLodBuilder.append("[WXBridgeManager] callNative >>>> instanceId:").append(instanceId)
+        .append(", tasks:").append(tasks).append(", callback:").append(callback);
+    WXLogUtils.d(mLodBuilder.substring(0));
+    mLodBuilder.setLength(0);
     // }
 
-    if(mDestroyedInstanceId!=null &&mDestroyedInstanceId.contains(instanceId)){
+    if (mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
       return IWXBridge.DESTROY_INSTANCE;
     }
 
@@ -452,7 +442,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
     JSONArray array = JSON.parseArray(tasks);
     parseNanos = System.nanoTime() - parseNanos;
 
-    if(WXSDKManager.getInstance().getSDKInstance(instanceId)!=null) {
+    if (WXSDKManager.getInstance().getSDKInstance(instanceId) != null) {
       WXSDKManager.getInstance().getSDKInstance(instanceId).jsonParseTime(System.currentTimeMillis() - start);
     }
 
@@ -464,27 +454,27 @@ public class WXBridgeManager implements Callback,BactchExecutor {
           task = (JSONObject) array.get(i);
           if (task != null && WXSDKManager.getInstance().getSDKInstance(instanceId) != null) {
             Object target = task.get(MODULE);
-            if(target != null){
-              if(WXDomModule.WXDOM.equals(target)){
+            if (target != null) {
+              if (WXDomModule.WXDOM.equals(target)) {
                 WXDomModule dom = getDomModule(instanceId);
-                dom.callDomMethod(task,parseNanos);
-              }else {
+                dom.callDomMethod(task, parseNanos);
+              } else {
                 JSONObject optionObj = task.getJSONObject(OPTIONS);
                 callModuleMethod(instanceId, (String) target,
-                        (String) task.get(METHOD), (JSONArray) task.get(ARGS), optionObj);
+                    (String) task.get(METHOD), (JSONArray) task.get(ARGS), optionObj);
               }
-            }else if(task.get(COMPONENT) != null){
+            } else if (task.get(COMPONENT) != null) {
               //call component
               WXDomModule dom = getDomModule(instanceId);
-              dom.invokeMethod((String) task.get(REF),(String) task.get(METHOD),(JSONArray) task.get(ARGS));
-            }else{
+              dom.invokeMethod((String) task.get(REF), (String) task.get(METHOD), (JSONArray) task.get(ARGS));
+            } else {
               throw new IllegalArgumentException("unknown callNative");
             }
           }
         }
       } catch (Exception e) {
         WXLogUtils.e("[WXBridgeManager] callNative exception: ", e);
-        commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE,"[WXBridgeManager] callNative exception "+e.getCause());
+        commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE, "[WXBridgeManager] callNative exception " + e.getCause());
       }
     }
 
@@ -500,21 +490,21 @@ public class WXBridgeManager implements Callback,BactchExecutor {
   public int callCreateBody(String instanceId, String tasks, String callback) {
     if (TextUtils.isEmpty(tasks)) {
       // if (WXEnvironment.isApkDebugable()) {
-        WXLogUtils.d("[WXBridgeManager] callCreateBody: call CreateBody tasks is null");
+      WXLogUtils.d("[WXBridgeManager] callCreateBody: call CreateBody tasks is null");
       // }
-      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_CREATEBODY,"[WXBridgeManager] callCreateBody: call CreateBody tasks is null");
+      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_CREATEBODY, "[WXBridgeManager] callCreateBody: call CreateBody tasks is null");
       return IWXBridge.INSTANCE_RENDERING_ERROR;
     }
 
     // if (WXEnvironment.isApkDebugable()) {
-      mLodBuilder.append("[WXBridgeManager] callCreateBody >>>> instanceId:").append(instanceId)
-              .append(", tasks:").append(tasks).append(", callback:").append(callback);
-      WXLogUtils.d(mLodBuilder.substring(0));
-      mLodBuilder.setLength(0);
+    mLodBuilder.append("[WXBridgeManager] callCreateBody >>>> instanceId:").append(instanceId)
+        .append(", tasks:").append(tasks).append(", callback:").append(callback);
+    WXLogUtils.d(mLodBuilder.substring(0));
+    mLodBuilder.setLength(0);
     // }
 
 
-    if(mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)){
+    if (mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
       return IWXBridge.DESTROY_INSTANCE;
     }
 
@@ -527,7 +517,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
 
         WXDomModule domModule = getDomModule(instanceId);
         Action action = Actions.getCreateBody(domObject);
-        domModule.postAction((DOMAction)action, true);
+        domModule.postAction((DOMAction) action, true);
 
         if (WXTracing.isAvailable() && action instanceof TraceableAction) {
           ((TraceableAction) action).mParseJsonNanos = nanosTemp;
@@ -536,8 +526,8 @@ public class WXBridgeManager implements Callback,BactchExecutor {
         }
       }
     } catch (Exception e) {
-        WXLogUtils.e("[WXBridgeManager] callCreateBody exception: ", e);
-        commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_CREATEBODY,"[WXBridgeManager] callCreateBody exception "+e.getCause());
+      WXLogUtils.e("[WXBridgeManager] callCreateBody exception: ", e);
+      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_CREATEBODY, "[WXBridgeManager] callCreateBody exception " + e.getCause());
     }
 
     if (UNDEFINED.equals(callback) || NON_CALLBACK.equals(callback)) {
@@ -553,12 +543,12 @@ public class WXBridgeManager implements Callback,BactchExecutor {
   public int callUpdateFinish(String instanceId, String callback) {
     if (WXEnvironment.isApkDebugable()) {
       mLodBuilder.append("[WXBridgeManager] callUpdateFinish >>>> instanceId:").append(instanceId)
-              .append(", callback:").append(callback);
+          .append(", callback:").append(callback);
       WXLogUtils.d(mLodBuilder.substring(0));
       mLodBuilder.setLength(0);
     }
 
-    if(mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)){
+    if (mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
       return IWXBridge.DESTROY_INSTANCE;
     }
 
@@ -566,11 +556,11 @@ public class WXBridgeManager implements Callback,BactchExecutor {
       if (WXSDKManager.getInstance().getSDKInstance(instanceId) != null) {
         WXDomModule domModule = getDomModule(instanceId);
         Action action = Actions.getUpdateFinish();
-        domModule.postAction((DOMAction)action, false);
+        domModule.postAction((DOMAction) action, false);
       }
     } catch (Exception e) {
       WXLogUtils.e("[WXBridgeManager] callUpdateFinish exception: ", e);
-      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE,"[WXBridgeManager] callUpdateFinish exception "+e.getCause());
+      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE, "[WXBridgeManager] callUpdateFinish exception " + e.getCause());
     }
 
     if (UNDEFINED.equals(callback) || NON_CALLBACK.equals(callback)) {
@@ -584,13 +574,13 @@ public class WXBridgeManager implements Callback,BactchExecutor {
   // callCreateFinish
   public int callCreateFinish(String instanceId, String callback) {
     // if (WXEnvironment.isApkDebugable()) {
-      mLodBuilder.append("[WXBridgeManager] callCreateFinish >>>> instanceId:").append(instanceId)
-              .append(", callback:").append(callback);
-      WXLogUtils.d(mLodBuilder.substring(0));
-      mLodBuilder.setLength(0);
+    mLodBuilder.append("[WXBridgeManager] callCreateFinish >>>> instanceId:").append(instanceId)
+        .append(", callback:").append(callback);
+    WXLogUtils.d(mLodBuilder.substring(0));
+    mLodBuilder.setLength(0);
     // }
 
-    if(mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
+    if (mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
       return IWXBridge.DESTROY_INSTANCE;
     }
 
@@ -598,11 +588,11 @@ public class WXBridgeManager implements Callback,BactchExecutor {
       if (WXSDKManager.getInstance().getSDKInstance(instanceId) != null) {
         WXDomModule domModule = getDomModule(instanceId);
         Action action = Actions.getCreateFinish();
-        domModule.postAction((DOMAction)action, false);
+        domModule.postAction((DOMAction) action, false);
       }
     } catch (Exception e) {
       WXLogUtils.e("[WXBridgeManager] callCreateFinish exception: ", e);
-      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERROR_DOM_CREATEFINISH,"[WXBridgeManager] callCreateFinish exception " + e.getCause());
+      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERROR_DOM_CREATEFINISH, "[WXBridgeManager] callCreateFinish exception " + e.getCause());
     }
 
     if (UNDEFINED.equals(callback) || NON_CALLBACK.equals(callback)) {
@@ -618,12 +608,12 @@ public class WXBridgeManager implements Callback,BactchExecutor {
   public int callRefreshFinish(String instanceId, String callback) {
     if (WXEnvironment.isApkDebugable()) {
       mLodBuilder.append("[WXBridgeManager] callRefreshFinish >>>> instanceId:").append(instanceId)
-              .append(", callback:").append(callback);
+          .append(", callback:").append(callback);
       WXLogUtils.d(mLodBuilder.substring(0));
       mLodBuilder.setLength(0);
     }
 
-    if(mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
+    if (mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
       return IWXBridge.DESTROY_INSTANCE;
     }
 
@@ -631,11 +621,11 @@ public class WXBridgeManager implements Callback,BactchExecutor {
       if (WXSDKManager.getInstance().getSDKInstance(instanceId) != null) {
         WXDomModule domModule = getDomModule(instanceId);
         Action action = Actions.getRefreshFinish();
-        domModule.postAction((DOMAction)action, false);
+        domModule.postAction((DOMAction) action, false);
       }
     } catch (Exception e) {
       WXLogUtils.e("[WXBridgeManager] callRefreshFinish exception: ", e);
-      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERROR_DOM_REFRESHFINISH,"[WXBridgeManager] callRefreshFinish exception " + e.getCause());
+      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERROR_DOM_REFRESHFINISH, "[WXBridgeManager] callRefreshFinish exception " + e.getCause());
     }
 
     if (UNDEFINED.equals(callback) || NON_CALLBACK.equals(callback)) {
@@ -650,22 +640,20 @@ public class WXBridgeManager implements Callback,BactchExecutor {
   // callUpdateAttrs
   public int callUpdateAttrs(String instanceId, String ref, String task, String callback) {
     if (TextUtils.isEmpty(task)) {
-      if (WXEnvironment.isApkDebugable()) {
-        WXLogUtils.e("[WXBridgeManager] callUpdateAttrs: call UpdateAttrs tasks is null");
-      }
-      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_UPDATEATTRS,"[WXBridgeManager] callUpdateAttrs: call UpdateAttrs tasks is null");
+      WXLogUtils.e("[WXBridgeManager] callUpdateAttrs: call UpdateAttrs tasks is null");
+      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_UPDATEATTRS, "[WXBridgeManager] callUpdateAttrs: call UpdateAttrs tasks is null");
       return IWXBridge.INSTANCE_RENDERING_ERROR;
     }
     if (WXEnvironment.isApkDebugable()) {
       mLodBuilder.append("[WXBridgeManager] callUpdateAttrs >>>> instanceId:").append(instanceId)
-              .append(", ref:").append(ref)
-              .append(", task:").append(task)
-              .append(", callback:").append(callback);
+          .append(", ref:").append(ref)
+          .append(", task:").append(task)
+          .append(", callback:").append(callback);
       WXLogUtils.d(mLodBuilder.substring(0));
       mLodBuilder.setLength(0);
     }
 
-    if(mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
+    if (mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
       return IWXBridge.DESTROY_INSTANCE;
     }
 
@@ -678,7 +666,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
         parseNanos = System.nanoTime() - parseNanos;
 
         Action action = Actions.getUpdateAttrs(ref, domObject);
-        domModule.postAction((DOMAction)action, false);
+        domModule.postAction((DOMAction) action, false);
 
         if (WXTracing.isAvailable() && action instanceof TraceableAction) {
           ((TraceableAction) action).mStartMillis = start;
@@ -688,7 +676,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
       }
     } catch (Exception e) {
       WXLogUtils.e("[WXBridgeManager] callUpdateAttrs exception: ", e);
-      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_UPDATEATTRS,"[WXBridgeManager] callUpdateAttrs exception " + e.getCause());
+      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_UPDATEATTRS, "[WXBridgeManager] callUpdateAttrs exception " + e.getCause());
     }
 
     if (UNDEFINED.equals(callback) || NON_CALLBACK.equals(callback)) {
@@ -703,22 +691,20 @@ public class WXBridgeManager implements Callback,BactchExecutor {
   // callUpdateStyle
   public int callUpdateStyle(String instanceId, String ref, String task, String callback) {
     if (TextUtils.isEmpty(task)) {
-      if (WXEnvironment.isApkDebugable()) {
-        WXLogUtils.e("[WXBridgeManager] callUpdateStyle: call UpdateStyle tasks is null");
-      }
-      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_UPDATESTYLE,"[WXBridgeManager] callUpdateStyle: call UpdateStyle tasks is null");
+      WXLogUtils.e("[WXBridgeManager] callUpdateStyle: call UpdateStyle tasks is null");
+      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_UPDATESTYLE, "[WXBridgeManager] callUpdateStyle: call UpdateStyle tasks is null");
       return IWXBridge.INSTANCE_RENDERING_ERROR;
     }
-//    if (WXEnvironment.isApkDebugable()) {
-      mLodBuilder.append("[WXBridgeManager] callUpdateStyle >>>> instanceId:").append(instanceId)
-              .append(", ref:").append(ref)
-              .append(", task:").append(task)
-              .append(", callback:").append(callback);
-      WXLogUtils.d(mLodBuilder.substring(0));
-      mLodBuilder.setLength(0);
-//    }
+   if (WXEnvironment.isApkDebugable()) {
+    mLodBuilder.append("[WXBridgeManager] callUpdateStyle >>>> instanceId:").append(instanceId)
+        .append(", ref:").append(ref)
+        .append(", task:").append(task)
+        .append(", callback:").append(callback);
+    WXLogUtils.d(mLodBuilder.substring(0));
+    mLodBuilder.setLength(0);
+    }
 
-    if(mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
+    if (mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
       return IWXBridge.DESTROY_INSTANCE;
     }
 
@@ -731,7 +717,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
         nanosTemp = System.nanoTime() - nanosTemp;
 
         Action action = Actions.getUpdateStyle(ref, domObject, false);
-        domModule.postAction((DOMAction)action, false);
+        domModule.postAction((DOMAction) action, false);
 
         if (WXTracing.isAvailable() && action instanceof TraceableAction) {
           ((TraceableAction) action).mParseJsonNanos = nanosTemp;
@@ -741,7 +727,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
       }
     } catch (Exception e) {
       WXLogUtils.e("[WXBridgeManager] callUpdateStyle exception: ", e);
-      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_UPDATESTYLE,"[WXBridgeManager] callUpdateStyle exception " + e.getCause());
+      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_UPDATESTYLE, "[WXBridgeManager] callUpdateStyle exception " + e.getCause());
     }
 
     if (UNDEFINED.equals(callback) || NON_CALLBACK.equals(callback)) {
@@ -757,12 +743,12 @@ public class WXBridgeManager implements Callback,BactchExecutor {
 
     if (WXEnvironment.isApkDebugable()) {
       mLodBuilder.append("[WXBridgeManager] callRemoveElement >>>> instanceId:").append(instanceId)
-              .append(", ref:").append(ref);
+          .append(", ref:").append(ref);
       WXLogUtils.d(mLodBuilder.substring(0));
       mLodBuilder.setLength(0);
     }
 
-    if(mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
+    if (mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
       return IWXBridge.DESTROY_INSTANCE;
     }
 
@@ -770,7 +756,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
       if (WXSDKManager.getInstance().getSDKInstance(instanceId) != null) {
         WXDomModule domModule = getDomModule(instanceId);
         Action action = Actions.getRemoveElement(ref);
-        domModule.postAction((DOMAction)action, false);
+        domModule.postAction((DOMAction) action, false);
 
         if (WXTracing.isAvailable() && action instanceof TraceableAction) {
           ((TraceableAction) action).onStartDomExecute(instanceId, "removeElement", ref, null, ref);
@@ -778,7 +764,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
       }
     } catch (Exception e) {
       WXLogUtils.e("[WXBridgeManager] callRemoveElement exception: ", e);
-      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_REMOVEELEMENT,"[WXBridgeManager] callRemoveElement exception " + e.getCause());
+      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_REMOVEELEMENT, "[WXBridgeManager] callRemoveElement exception " + e.getCause());
     }
 
     if (UNDEFINED.equals(callback) || NON_CALLBACK.equals(callback)) {
@@ -794,14 +780,14 @@ public class WXBridgeManager implements Callback,BactchExecutor {
 
     if (WXEnvironment.isApkDebugable()) {
       mLodBuilder.append("[WXBridgeManager] callMoveElement >>>> instanceId:").append(instanceId)
-              .append(", parentref:").append(parentref)
-              .append(", index:").append(index)
-              .append(", ref:").append(ref);
+          .append(", parentref:").append(parentref)
+          .append(", index:").append(index)
+          .append(", ref:").append(ref);
       WXLogUtils.d(mLodBuilder.substring(0));
       mLodBuilder.setLength(0);
     }
 
-    if(mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
+    if (mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
       return IWXBridge.DESTROY_INSTANCE;
     }
 
@@ -809,11 +795,11 @@ public class WXBridgeManager implements Callback,BactchExecutor {
       if (WXSDKManager.getInstance().getSDKInstance(instanceId) != null) {
         WXDomModule domModule = getDomModule(instanceId);
         Action action = Actions.getMoveElement(ref, parentref, Integer.parseInt(index));
-        domModule.postAction((DOMAction)action, false);
+        domModule.postAction((DOMAction) action, false);
       }
     } catch (Exception e) {
       WXLogUtils.e("[WXBridgeManager] callMoveElement exception: ", e);
-      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_MOVEELEMENT,"[WXBridgeManager] callMoveElement exception " + e.getCause());
+      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_MOVEELEMENT, "[WXBridgeManager] callMoveElement exception " + e.getCause());
     }
 
     if (UNDEFINED.equals(callback) || NON_CALLBACK.equals(callback)) {
@@ -827,14 +813,14 @@ public class WXBridgeManager implements Callback,BactchExecutor {
   public int callAddEvent(String instanceId, String ref, String event, String callback) {
 
 //    if (WXEnvironment.isApkDebugable()) {
-      mLodBuilder.append("[WXBridgeManager] callAddEvent >>>> instanceId:").append(instanceId)
-              .append(", ref:").append(ref)
-              .append(", event:").append(event);
-      WXLogUtils.d(mLodBuilder.substring(0));
-      mLodBuilder.setLength(0);
+    mLodBuilder.append("[WXBridgeManager] callAddEvent >>>> instanceId:").append(instanceId)
+        .append(", ref:").append(ref)
+        .append(", event:").append(event);
+    WXLogUtils.d(mLodBuilder.substring(0));
+    mLodBuilder.setLength(0);
 //    }
 
-    if(mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
+    if (mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
       return IWXBridge.DESTROY_INSTANCE;
     }
 
@@ -842,7 +828,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
       if (WXSDKManager.getInstance().getSDKInstance(instanceId) != null) {
         WXDomModule domModule = getDomModule(instanceId);
         Action action = Actions.getAddEvent(ref, event);
-        domModule.postAction((DOMAction)action, false);
+        domModule.postAction((DOMAction) action, false);
 
         if (WXTracing.isAvailable() && action instanceof TraceableAction) {
           ((TraceableAction) action).onStartDomExecute(instanceId, "addEvent", ref, null, event);
@@ -850,7 +836,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
       }
     } catch (Exception e) {
       WXLogUtils.e("[WXBridgeManager] callAddEvent exception: ", e);
-      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_ADDEVENT,"[WXBridgeManager] callAddEvent exception " + e.getCause());
+      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_ADDEVENT, "[WXBridgeManager] callAddEvent exception " + e.getCause());
     }
 
     if (UNDEFINED.equals(callback) || NON_CALLBACK.equals(callback)) {
@@ -865,21 +851,21 @@ public class WXBridgeManager implements Callback,BactchExecutor {
 
     if (WXEnvironment.isApkDebugable()) {
       mLodBuilder.append("[WXBridgeManager] callRemoveEvent >>>> instanceId:").append(instanceId)
-              .append(", ref:").append(ref)
-              .append(", event:").append(event);
+          .append(", ref:").append(ref)
+          .append(", event:").append(event);
       WXLogUtils.d(mLodBuilder.substring(0));
       mLodBuilder.setLength(0);
     }
 
-    if(mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
-      return IWXBridge .DESTROY_INSTANCE;
+    if (mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
+      return IWXBridge.DESTROY_INSTANCE;
     }
 
     try {
       if (WXSDKManager.getInstance().getSDKInstance(instanceId) != null) {
         WXDomModule domModule = getDomModule(instanceId);
         Action action = Actions.getRemoveEvent(ref, event);
-        domModule.postAction((DOMAction)action, false);
+        domModule.postAction((DOMAction) action, false);
 
         if (WXTracing.isAvailable() && action instanceof TraceableAction) {
           ((TraceableAction) action).onStartDomExecute(instanceId, "removeEvent", ref, null, event);
@@ -887,7 +873,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
       }
     } catch (Exception e) {
       WXLogUtils.e("[WXBridgeManager] callRemoveEvent exception: ", e);
-      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_REMOVEEVENT,"[WXBridgeManager] callRemoveEvent exception " + e.getCause());
+      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_REMOVEEVENT, "[WXBridgeManager] callRemoveEvent exception " + e.getCause());
     }
 
     if (UNDEFINED.equals(callback) || NON_CALLBACK.equals(callback)) {
@@ -898,16 +884,16 @@ public class WXBridgeManager implements Callback,BactchExecutor {
     return IWXBridge.INSTANCE_RENDERING;
   }
 
-  public int callAddElement(String instanceId, String ref,String dom,String index, String callback){
+  public int callAddElement(String instanceId, String ref, String dom, String index, String callback) {
 
     if (WXEnvironment.isApkDebugable()) {
       mLodBuilder.append("[WXBridgeManager] callNative::callAddElement >>>> instanceId:").append(instanceId)
-              .append(", ref:").append(ref).append(", dom:").append(dom).append(", callback:").append(callback);
+          .append(", ref:").append(ref).append(", dom:").append(dom).append(", callback:").append(callback);
       WXLogUtils.d(mLodBuilder.substring(0));
       mLodBuilder.setLength(0);
     }
 
-    if(mDestroyedInstanceId!=null && mDestroyedInstanceId.contains(instanceId)){
+    if (mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
       return IWXBridge.DESTROY_INSTANCE;
     }
 
@@ -922,7 +908,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
         WXSDKManager.getInstance().getSDKInstance(instanceId).jsonParseTime(System.currentTimeMillis() - start);
       }
       WXDomModule domModule = getDomModule(instanceId);
-      DOMAction addElementAction = Actions.getAddElement(domObject, ref,Integer.parseInt(index));
+      DOMAction addElementAction = Actions.getAddElement(domObject, ref, Integer.parseInt(index));
       domModule.postAction(addElementAction, false);
 
       if (WXTracing.isAvailable() && addElementAction instanceof TraceableAction) {
@@ -942,57 +928,57 @@ public class WXBridgeManager implements Callback,BactchExecutor {
   }
 
   public int callReportCrashReloadPage(String instanceId, String crashFile) {
+    try {
+      String url = null;
+      WXSDKInstance instance = WXSDKManager.getInstance().getSDKInstance(instanceId);
+      if (instance != null) {
+        url = instance.getBundleUrl();
+      }
       try {
-        String url = null;
-        WXSDKInstance instance = WXSDKManager.getInstance().getSDKInstance(instanceId);
-        if (instance != null) {
-          url = instance.getBundleUrl();
-        }
-        try {
-            if (WXEnvironment.getApplication() != null) {
-                crashFile = WXEnvironment.getApplication().getApplicationContext().getCacheDir().getPath() + crashFile;
-                // Log.e("jsengine", "callReportCrashReloadPage crashFile:" + crashFile);
-            }
-        } catch (Throwable e) {
-            e.printStackTrace();
+        if (WXEnvironment.getApplication() != null) {
+          crashFile = WXEnvironment.getApplication().getApplicationContext().getCacheDir().getPath() + crashFile;
+          // Log.e("jsengine", "callReportCrashReloadPage crashFile:" + crashFile);
         }
-        callReportCrash(crashFile, instanceId, url);
-        if (reInitCount > CRASHREINIT) {
-          return IWXBridge.INSTANCE_RENDERING_ERROR;
-        }
-        reInitCount++;
-        // reinit frame work
-        mInit = false;
-        initScriptsFramework("");
-
-        if (mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
-          return IWXBridge.DESTROY_INSTANCE;
-        }
-      } catch (Exception e) {
-        WXLogUtils.e("[WXBridgeManager] callReportCrashReloadPage exception: ", e);
+      } catch (Throwable e) {
+        e.printStackTrace();
       }
-      try {
+      callReportCrash(crashFile, instanceId, url);
+      if (reInitCount > CRASHREINIT) {
+        return IWXBridge.INSTANCE_RENDERING_ERROR;
+      }
+      reInitCount++;
+      // reinit frame work
+      mInit = false;
+      initScriptsFramework("");
 
-          if (WXSDKManager.getInstance().getSDKInstance(instanceId) != null) {
-              boolean reloadThisInstance = shouReloadCurrentInstance(
-                      WXSDKManager.getInstance().getSDKInstance(instanceId).getBundleUrl());
-              WXDomModule domModule = getDomModule(instanceId);
-              Action action = Actions.getReloadPage(instanceId, reloadThisInstance);
-              domModule.postAction((DOMAction) action, true);
-          }
+      if (mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
+        return IWXBridge.DESTROY_INSTANCE;
+      }
+    } catch (Exception e) {
+      WXLogUtils.e("[WXBridgeManager] callReportCrashReloadPage exception: ", e);
+    }
+    try {
 
-      } catch (Exception e) {
-          WXLogUtils.e("[WXBridgeManager] callReloadPage exception: ", e);
-          commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_RELOAD_PAGE,"[WXBridgeManager] callReloadPage exception "+e.getCause());
+      if (WXSDKManager.getInstance().getSDKInstance(instanceId) != null) {
+        boolean reloadThisInstance = shouReloadCurrentInstance(
+            WXSDKManager.getInstance().getSDKInstance(instanceId).getBundleUrl());
+        WXDomModule domModule = getDomModule(instanceId);
+        Action action = Actions.getReloadPage(instanceId, reloadThisInstance);
+        domModule.postAction((DOMAction) action, true);
       }
-      return IWXBridge.INSTANCE_RENDERING_ERROR;
+
+    } catch (Exception e) {
+      WXLogUtils.e("[WXBridgeManager] callReloadPage exception: ", e);
+      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_RELOAD_PAGE, "[WXBridgeManager] callReloadPage exception " + e.getCause());
+    }
+    return IWXBridge.INSTANCE_RENDERING_ERROR;
   }
 
   public boolean shouReloadCurrentInstance(String aUrl) {
     long time = System.currentTimeMillis();
     if (crashUrl == null ||
-            (crashUrl != null && !crashUrl.equals(aUrl)) ||
-            ((time - lastCrashTime) > 15000)) {
+        (crashUrl != null && !crashUrl.equals(aUrl)) ||
+        ((time - lastCrashTime) > 15000)) {
       crashUrl = aUrl;
       lastCrashTime = time;
       return true;
@@ -1002,49 +988,49 @@ public class WXBridgeManager implements Callback,BactchExecutor {
   }
 
   public void callReportCrash(String crashFile, final String instanceId, final String url) {
-      // statistic weexjsc process crash
-      Date date = new Date();
-      DateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
-      String time = format.format(date);
-      final String origin_filename = crashFile + "." + time;
-      File oldfile = new File(crashFile);
-      File newfile = new File(origin_filename);
-      if (oldfile.exists()) {
-          oldfile.renameTo(newfile);
-      }
-      Thread t = new Thread(new Runnable() {
-           public void run() {
+    // statistic weexjsc process crash
+    Date date = new Date();
+    DateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
+    String time = format.format(date);
+    final String origin_filename = crashFile + "." + time;
+    File oldfile = new File(crashFile);
+    File newfile = new File(origin_filename);
+    if (oldfile.exists()) {
+      oldfile.renameTo(newfile);
+    }
+    Thread t = new Thread(new Runnable() {
+      public void run() {
+        try {
+          File file = new File(origin_filename);
+          if (file.exists()) {
+            if (file.length() > 0) {
+              StringBuilder result = new StringBuilder();
               try {
-                File file = new File(origin_filename);
-                if (file.exists()) {
-                  if (file.length() > 0) {
-                    StringBuilder result = new StringBuilder();
-                    try{
-                      BufferedReader br = new BufferedReader(new FileReader(origin_filename));
-                      String s = null;
-                      // boolean foundStart = false;
-                      while((s = br.readLine()) != null) {
-                        if ("".equals(s)) {
-                          continue;
-                        }
-                        // 寄存器内容裁剪
-                        // if (("r0:").equals(s)) {
-                        //  break;
-                        // }
-                        result.append(s + "\n");
-                      }
-                      commitJscCrashAlarmMonitor(IWXUserTrackAdapter.JS_BRIDGE,  WXErrorCode.WX_ERR_JSC_CRASH, result.toString(), instanceId, url);
-                      br.close();
-                    } catch(Exception e) {
-                      e.printStackTrace();
-                    }
-                  } else {
-                    WXLogUtils.e("[WXBridgeManager] callReportCrash crash file is empty");
-                    // 没收集到crash堆栈不上传
-                    // commitJscCrashAlarmMonitor(IWXUserTrackAdapter.JS_BRIDGE,  WXErrorCode.WX_ERR_JSC_CRASH, "crash info file empty", instanceId, url);
+                BufferedReader br = new BufferedReader(new FileReader(origin_filename));
+                String s = null;
+                // boolean foundStart = false;
+                while ((s = br.readLine()) != null) {
+                  if ("".equals(s)) {
+                    continue;
                   }
-                  file.delete();
+                  // 寄存器内容裁剪
+                  // if (("r0:").equals(s)) {
+                  //  break;
+                  // }
+                  result.append(s + "\n");
                 }
+                commitJscCrashAlarmMonitor(IWXUserTrackAdapter.JS_BRIDGE, WXErrorCode.WX_ERR_JSC_CRASH, result.toString(), instanceId, url);
+                br.close();
+              } catch (Exception e) {
+                e.printStackTrace();
+              }
+            } else {
+              WXLogUtils.e("[WXBridgeManager] callReportCrash crash file is empty");
+              // 没收集到crash堆栈不上传
+              // commitJscCrashAlarmMonitor(IWXUserTrackAdapter.JS_BRIDGE,  WXErrorCode.WX_ERR_JSC_CRASH, "crash info file empty", instanceId, url);
+            }
+            file.delete();
+          }
 //                  Log.e("reportServerCrash", "WXBridge reportServerCrash crashFile:" + origin_filename);
 //                  String filename = CRASHPATH;
 //                  File oldfile = new File(origin_filename);
@@ -1071,17 +1057,17 @@ public class WXBridgeManager implements Callback,BactchExecutor {
 //                  } else {
 //                      Log.e("reportServerCrash", "WXBridge /data/data/com.taobao.taobao/app_tombstone/com.taobao.taobao/crashsdk/logs not exsist");
 //                  }
-              } catch (Throwable throwable) {
-                  WXLogUtils.e("[WXBridgeManager] callReportCrash exception: ", throwable);
-              }
-          }
-      });
-      t.start();
+        } catch (Throwable throwable) {
+          WXLogUtils.e("[WXBridgeManager] callReportCrash exception: ", throwable);
+        }
+      }
+    });
+    t.start();
 
   }
 
   private void getNextTick(final String instanceId, final String callback) {
-    addJSTask(METHOD_CALLBACK,instanceId, callback, "{}");
+    addJSTask(METHOD_CALLBACK, instanceId, callback, "{}");
     sendMessage(instanceId, WXJSBridgeMsgType.CALL_JS_BATCH);
   }
 
@@ -1096,12 +1082,12 @@ public class WXBridgeManager implements Callback,BactchExecutor {
 
         ArrayList<Object> argsList = new ArrayList<>();
         for (Object arg : args) {
-            argsList.add(arg);
+          argsList.add(arg);
         }
-        if(params != null){
-           ArrayMap map = new ArrayMap(4);
-           map.put(KEY_PARAMS, params);
-           argsList.add(map);
+        if (params != null) {
+          ArrayMap map = new ArrayMap(4);
+          map.put(KEY_PARAMS, params);
+          argsList.add(map);
         }
 
         WXHashMap<String, Object> task = new WXHashMap<>();
@@ -1133,6 +1119,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
 
   /**
    * Initialize JavaScript framework
+   *
    * @param framework String representation of the framework to be init.
    */
   public synchronized void initScriptsFramework(String framework) {
@@ -1145,12 +1132,13 @@ public class WXBridgeManager implements Callback,BactchExecutor {
 
   @Deprecated
   public void fireEvent(final String instanceId, final String ref,
-                        final String type, final Map<String, Object> data){
+                        final String type, final Map<String, Object> data) {
     this.fireEvent(instanceId, ref, type, data, null);
   }
 
   /**
    * Do not direct invoke this method in Components, use {@link WXSDKInstance#fireEvent(String, String, Map, Map)} instead.
+   *
    * @param instanceId
    * @param ref
    * @param type
@@ -1159,16 +1147,16 @@ public class WXBridgeManager implements Callback,BactchExecutor {
    */
   @Deprecated
   public void fireEvent(final String instanceId, final String ref,
-                        final String type, final Map<String, Object> data,final Map<String, Object> domChanges) {
-    fireEventOnNode(instanceId,ref,type,data,domChanges);
+                        final String type, final Map<String, Object> data, final Map<String, Object> domChanges) {
+    fireEventOnNode(instanceId, ref, type, data, domChanges);
   }
 
   /**
    * Notify the JavaScript about the event happened on Android
    */
   public void fireEventOnNode(final String instanceId, final String ref,
-                        final String type, final Map<String, Object> data,final Map<String, Object> domChanges) {
-      fireEventOnNode(instanceId, ref, type, data, domChanges, null);
+                              final String type, final Map<String, Object> data, final Map<String, Object> domChanges) {
+    fireEventOnNode(instanceId, ref, type, data, domChanges, null);
   }
 
   /**
@@ -1178,12 +1166,12 @@ public class WXBridgeManager implements Callback,BactchExecutor {
                               final String type, final Map<String, Object> data,
                               final Map<String, Object> domChanges, List<Object> params) {
     if (TextUtils.isEmpty(instanceId) || TextUtils.isEmpty(ref)
-            || TextUtils.isEmpty(type) || mJSHandler == null) {
+        || TextUtils.isEmpty(type) || mJSHandler == null) {
       return;
     }
     if (!checkMainThread()) {
       throw new WXRuntimeException(
-              "fireEvent must be called by main thread");
+          "fireEvent must be called by main thread");
     }
     addJSEventTask(METHOD_FIRE_EVENT, instanceId, params, ref, type, data, domChanges);
     sendMessage(instanceId, WXJSBridgeMsgType.CALL_JS_BATCH);
@@ -1196,11 +1184,12 @@ public class WXBridgeManager implements Callback,BactchExecutor {
 
   /**
    * Invoke JavaScript callback. Use {@link JSCallback} instead.
+   *
    * @see #callback(String, String, String)
    */
   @Deprecated
-  public void callback(String instanceId, String callback,String data) {
-    callback(instanceId, callback,data,false);
+  public void callback(String instanceId, String callback, String data) {
+    callback(instanceId, callback, data, false);
   }
 
   /**
@@ -1208,29 +1197,31 @@ public class WXBridgeManager implements Callback,BactchExecutor {
    */
   @Deprecated
   public void callback(final String instanceId, final String callback,
-                       final Map<String, Object> data){
-    callback(instanceId,callback,data,false);
+                       final Map<String, Object> data) {
+    callback(instanceId, callback, data, false);
   }
 
   /**
    * Use {@link JSCallback} instead.
+   *
    * @param instanceId Weex Instance Id
-   * @param callback  callback referenece handle
-   * @param data callback data
-   * @param keepAlive if keep callback instance alive for later use
-     */
+   * @param callback   callback referenece handle
+   * @param data       callback data
+   * @param keepAlive  if keep callback instance alive for later use
+   */
   @Deprecated
   public void callback(final String instanceId, final String callback,
-                       final Object data,boolean keepAlive) {
-    callbackJavascript(instanceId,callback,data,keepAlive);
+                       final Object data, boolean keepAlive) {
+    callbackJavascript(instanceId, callback, data, keepAlive);
   }
 
   /**
    * Callback to Javascript function.
+   *
    * @param instanceId Weex Instance Id
-   * @param callback  callback referenece handle
-   * @param data callback data
-   * @param keepAlive if keep callback instance alive for later use
+   * @param callback   callback referenece handle
+   * @param data       callback data
+   * @param keepAlive  if keep callback instance alive for later use
    */
   void callbackJavascript(final String instanceId, final String callback,
                           final Object data, boolean keepAlive) {
@@ -1239,7 +1230,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
       return;
     }
 
-    addJSTask(METHOD_CALLBACK, instanceId, callback, data,keepAlive);
+    addJSTask(METHOD_CALLBACK, instanceId, callback, data, keepAlive);
     sendMessage(instanceId, WXJSBridgeMsgType.CALL_JS_BATCH);
   }
 
@@ -1264,32 +1255,32 @@ public class WXBridgeManager implements Callback,BactchExecutor {
         WXSDKInstance instance = WXSDKManager.getInstance().getSDKInstance(instanceId);
         if (instance != null) {
           instance.onRenderError(WXRenderErrorCode.WX_CREATE_INSTANCE_ERROR,
-                                 "createInstance failed!");
+              "createInstance failed!");
         }
         String err = "[WXBridgeManager] invokeRefreshInstance: framework.js uninitialized.";
-        commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE,err);
+        commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE, err);
         WXLogUtils.d(err);
         return;
       }
       long start = System.currentTimeMillis();
       if (WXEnvironment.isApkDebugable()) {
         WXLogUtils.d("refreshInstance >>>> instanceId:" + instanceId
-                     + ", data:" + refreshData.data + ", isDirty:" + refreshData.isDirty);
+            + ", data:" + refreshData.data + ", isDirty:" + refreshData.isDirty);
       }
 
       if (refreshData.isDirty) {
         return;
       }
       WXJSObject instanceIdObj = new WXJSObject(WXJSObject.String,
-                                                instanceId);
+          instanceId);
       WXJSObject dataObj = new WXJSObject(WXJSObject.JSON,
-                                          refreshData.data == null ? "{}" : refreshData.data);
+          refreshData.data == null ? "{}" : refreshData.data);
       WXJSObject[] args = {instanceIdObj, dataObj};
       invokeExecJS(instanceId, null, METHOD_REFRESH_INSTANCE, args);
       WXLogUtils.renderPerformanceLog("invokeRefreshInstance", System.currentTimeMillis() - start);
     } catch (Throwable e) {
       String err = "[WXBridgeManager] invokeRefreshInstance " + e.getCause();
-      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE,err);
+      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE, err);
       WXLogUtils.e(err);
     }
   }
@@ -1309,11 +1300,11 @@ public class WXBridgeManager implements Callback,BactchExecutor {
       return;
     }
     WXPerformance performance = new WXPerformance();
-    performance.args=instance.getBundleUrl();
-    performance.errCode=errCode.getErrorCode();
+    performance.args = instance.getBundleUrl();
+    performance.errCode = errCode.getErrorCode();
     if (errCode != WXErrorCode.WX_SUCCESS) {
-      performance.appendErrMsg(TextUtils.isEmpty(errMsg)?errCode.getErrorMsg():errMsg);
-      WXLogUtils.e("wx_monitor",performance.toString());
+      performance.appendErrMsg(TextUtils.isEmpty(errMsg) ? errCode.getErrorMsg() : errMsg);
+      WXLogUtils.e("wx_monitor", performance.toString());
     }
     adapter.commit(WXEnvironment.getApplication(), null, IWXUserTrackAdapter.JS_BRIDGE, performance, instance.getUserTrackParams());
   }
@@ -1335,8 +1326,8 @@ public class WXBridgeManager implements Callback,BactchExecutor {
     WXPerformance performance = new WXPerformance();
     performance.errCode = errorCode.getErrorCode();
     if (errorCode != WXErrorCode.WX_SUCCESS) {
-      performance.appendErrMsg(TextUtils.isEmpty(errMsg)?errorCode.getErrorMsg():errMsg);
-      WXLogUtils.e("wx_monitor",performance.toString());
+      performance.appendErrMsg(TextUtils.isEmpty(errMsg) ? errorCode.getErrorMsg() : errMsg);
+      WXLogUtils.e("wx_monitor", performance.toString());
     }
     userTrackAdapter.commit(WXEnvironment.getApplication(), null, type, performance, null);
   }
@@ -1350,15 +1341,15 @@ public class WXBridgeManager implements Callback,BactchExecutor {
 
     String method = "callReportCrash";
     String exception = "weexjsc process crash and restart exception";
-    Map<String,String> extParams = new HashMap<String, String>();
+    Map<String, String> extParams = new HashMap<String, String>();
     extParams.put("jscCrashStack", errMsg);
     IWXJSExceptionAdapter adapter = WXSDKManager.getInstance().getIWXJSExceptionAdapter();
     if (adapter != null) {
-        WXJSExceptionInfo jsException = new WXJSExceptionInfo(instanceId, url, errorCode.getErrorCode(), method, exception, extParams);
-        adapter.onJSException(jsException);
-        // if (WXEnvironment.isApkDebugable()) {
-          WXLogUtils.e(jsException.toString());
-        // }
+      WXJSExceptionInfo jsException = new WXJSExceptionInfo(instanceId, url, errorCode.getErrorCode(), method, exception, extParams);
+      adapter.onJSException(jsException);
+      // if (WXEnvironment.isApkDebugable()) {
+      WXLogUtils.e(jsException.toString());
+      // }
     }
   }
 
@@ -1368,11 +1359,11 @@ public class WXBridgeManager implements Callback,BactchExecutor {
   public void createInstance(final String instanceId, final String template,
                              final Map<String, Object> options, final String data) {
     final WXSDKInstance instance = WXSDKManager.getInstance().getSDKInstance(instanceId);
-    if(instance == null){
-      WXLogUtils.e("WXBridgeManager","createInstance failed, SDKInstance is not exist");
+    if (instance == null) {
+      WXLogUtils.e("WXBridgeManager", "createInstance failed, SDKInstance is not exist");
       return;
     }
-    if ( TextUtils.isEmpty(instanceId)
+    if (TextUtils.isEmpty(instanceId)
         || TextUtils.isEmpty(template) || mJSHandler == null) {
       instance.onRenderError(WXRenderErrorCode.WX_CREATE_INSTANCE_ERROR, "createInstance fail!");
       return;
@@ -1401,7 +1392,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
 
           @Override
           public void run() {
-              instance.createInstanceFinished(totalTime);
+            instance.createInstanceFinished(totalTime);
           }
         }, 0);
       }
@@ -1418,37 +1409,37 @@ public class WXBridgeManager implements Callback,BactchExecutor {
     } else {
       if (!isJSFrameworkInit()) {
         instance.onRenderError(WXRenderErrorCode.WX_CREATE_INSTANCE_ERROR, "createInstance "
-                                                                             + "fail!");
+            + "fail!");
         String err = "[WXBridgeManager] invokeCreateInstance: framework.js uninitialized.";
-        commitJSBridgeAlarmMonitor(instance.getInstanceId(), WXErrorCode.WX_ERR_INVOKE_NATIVE,err);
+        commitJSBridgeAlarmMonitor(instance.getInstanceId(), WXErrorCode.WX_ERR_INVOKE_NATIVE, err);
         WXLogUtils.e(err);
         return;
       }
       try {
         if (WXEnvironment.isApkDebugable()) {
           WXLogUtils.d("createInstance >>>> instanceId:" + instance.getInstanceId()
-                       + ", options:"
-                       + WXJsonUtils.fromObjectToJSONString(options)
-                       + ", data:" + data);
+              + ", options:"
+              + WXJsonUtils.fromObjectToJSONString(options)
+              + ", data:" + data);
         }
         WXJSObject instanceIdObj = new WXJSObject(WXJSObject.String,
-                instance.getInstanceId());
+            instance.getInstanceId());
         WXJSObject instanceObj = new WXJSObject(WXJSObject.String,
-                                                template);
+            template);
         WXJSObject optionsObj = new WXJSObject(WXJSObject.JSON,
-                options == null ? "{}"
-                        : WXJsonUtils.fromObjectToJSONString(options));
+            options == null ? "{}"
+                : WXJsonUtils.fromObjectToJSONString(options));
         WXJSObject dataObj = new WXJSObject(WXJSObject.JSON,
-                data == null ? "{}" : data);
+            data == null ? "{}" : data);
         WXJSObject[] args = {instanceIdObj, instanceObj, optionsObj,
-                dataObj};
-        invokeExecJS(instance.getInstanceId(), null, METHOD_CREATE_INSTANCE, args,false);
+            dataObj};
+        invokeExecJS(instance.getInstanceId(), null, METHOD_CREATE_INSTANCE, args, false);
       } catch (Throwable e) {
         instance.onRenderError(WXRenderErrorCode.WX_CREATE_INSTANCE_ERROR,
-                                 "createInstance failed!");
+            "createInstance failed!");
         String err = "[WXBridgeManager] invokeCreateInstance " + e.getCause()
-                + " template md5 " + WXFileUtils.md5(template) + " length " + (template == null ? 0 : template.length());
-        commitJSBridgeAlarmMonitor(instance.getInstanceId(), WXErrorCode.WX_ERR_INVOKE_NATIVE,err);
+            + " template md5 " + WXFileUtils.md5(template) + " length " + (template == null ? 0 : template.length());
+        commitJSBridgeAlarmMonitor(instance.getInstanceId(), WXErrorCode.WX_ERR_INVOKE_NATIVE, err);
         WXLogUtils.e(err);
       }
     }
@@ -1459,11 +1450,11 @@ public class WXBridgeManager implements Callback,BactchExecutor {
   }
 
   public void destroyInstance(final String instanceId) {
-    if ( mJSHandler == null
+    if (mJSHandler == null
         || TextUtils.isEmpty(instanceId)) {
       return;
     }
-    if(mDestroyedInstanceId!=null) {
+    if (mDestroyedInstanceId != null) {
       mDestroyedInstanceId.add(instanceId);
     }
     // clear message with instanceId
@@ -1487,12 +1478,12 @@ public class WXBridgeManager implements Callback,BactchExecutor {
         WXLogUtils.d("destroyInstance >>>> instanceId:" + instanceId);
       }
       WXJSObject instanceIdObj = new WXJSObject(WXJSObject.String,
-                                                instanceId);
+          instanceId);
       WXJSObject[] args = {instanceIdObj};
       invokeExecJS(instanceId, null, METHOD_DESTROY_INSTANCE, args);
     } catch (Throwable e) {
       String err = "[WXBridgeManager] invokeDestroyInstance " + e.getCause();
-      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE,err);
+      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE, err);
       WXLogUtils.e(err);
     }
   }
@@ -1513,7 +1504,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
         break;
       case WXJSBridgeMsgType.SET_TIMEOUT:
         TimerInfo timerInfo = (TimerInfo) msg.obj;
-        if(timerInfo == null){
+        if (timerInfo == null) {
           break;
         }
         WXJSObject obj = new WXJSObject(WXJSObject.String, timerInfo.callbackId);
@@ -1537,14 +1528,14 @@ public class WXBridgeManager implements Callback,BactchExecutor {
   }
 
   public void invokeExecJS(String instanceId, String namespace, String function,
-                            WXJSObject[] args,boolean logTaskDetail){
+                           WXJSObject[] args, boolean logTaskDetail) {
     // if (WXEnvironment.isApkDebugable()) {
-      mLodBuilder.append("callJS >>>> instanceId:").append(instanceId)
-              .append("function:").append(function);
-      if(logTaskDetail)
-        mLodBuilder.append(" tasks:").append(WXJsonUtils.fromObjectToJSONString(args));
-      WXLogUtils.d(mLodBuilder.substring(0));
-      mLodBuilder.setLength(0);
+    mLodBuilder.append("callJS >>>> instanceId:").append(instanceId)
+        .append("function:").append(function);
+    if (logTaskDetail)
+      mLodBuilder.append(" tasks:").append(WXJsonUtils.fromObjectToJSONString(args));
+    WXLogUtils.d(mLodBuilder.substring(0));
+    mLodBuilder.setLength(0);
     // }
     mWXBridge.execJS(instanceId, namespace, function, args);
   }
@@ -1555,16 +1546,16 @@ public class WXBridgeManager implements Callback,BactchExecutor {
       framework = (String) msg.obj;
     }
 
-    if(WXUtils.getAvailMemory(WXEnvironment.getApplication()) > LOW_MEM_VALUE) {
+    if (WXUtils.getAvailMemory(WXEnvironment.getApplication()) > LOW_MEM_VALUE) {
       initFramework(framework);
     }
   }
 
-  private void initFramework(String framework){
+  private void initFramework(String framework) {
     if (!isJSFrameworkInit()) {
       if (TextUtils.isEmpty(framework)) {
         // if (WXEnvironment.isApkDebugable()) {
-          WXLogUtils.d("weex JS framework from assets");
+        WXLogUtils.d("weex JS framework from assets");
         // }
         framework = WXFileUtils.loadAsset("main.js", WXEnvironment.getApplication());
       }
@@ -1579,7 +1570,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
         }
 
         long start = System.currentTimeMillis();
-        String crashFile="";
+        String crashFile = "";
         boolean installOnSdcard = false;
         try {
           crashFile = WXEnvironment.getApplication().getApplicationContext().getCacheDir().getPath();
@@ -1600,7 +1591,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
         }
 
         // extends initFramework
-        if(mWXBridge.initFrameworkEnv(framework, assembleDefaultOptions(), crashFile, installOnSdcard)==INIT_FRAMEWORK_OK){
+        if (mWXBridge.initFrameworkEnv(framework, assembleDefaultOptions(), crashFile, installOnSdcard) == INIT_FRAMEWORK_OK) {
           WXEnvironment.sJSLibInitTime = System.currentTimeMillis() - start;
           WXLogUtils.renderPerformanceLog("initFramework", WXEnvironment.sJSLibInitTime);
           WXEnvironment.sSDKInitTime = System.currentTimeMillis() - WXEnvironment.sSDKInitStart;
@@ -1619,25 +1610,25 @@ public class WXBridgeManager implements Callback,BactchExecutor {
             reinitInfo = "reinit Framework:";
           }
           commitJSFrameworkAlarmMonitor(IWXUserTrackAdapter.JS_FRAMEWORK, WXErrorCode.WX_SUCCESS, reinitInfo + "success");
-        }else{
+        } else {
           if (reInitCount > 1) {
             WXLogUtils.e("[WXBridgeManager] invokeReInitFramework  ExecuteJavaScript fail");
-            String err="[WXBridgeManager] invokeReInitFramework  ExecuteJavaScript fail reinit FrameWork";
+            String err = "[WXBridgeManager] invokeReInitFramework  ExecuteJavaScript fail reinit FrameWork";
             commitJSFrameworkAlarmMonitor(IWXUserTrackAdapter.JS_FRAMEWORK, WXErrorCode.WX_ERR_JS_REINIT_FRAMEWORK, err);
           } else {
             WXLogUtils.e("[WXBridgeManager] invokeInitFramework  ExecuteJavaScript fail");
-            String err="[WXBridgeManager] invokeInitFramework  ExecuteJavaScript fail";
+            String err = "[WXBridgeManager] invokeInitFramework  ExecuteJavaScript fail";
             commitJSFrameworkAlarmMonitor(IWXUserTrackAdapter.JS_FRAMEWORK, WXErrorCode.WX_ERR_JS_FRAMEWORK, err);
           }
         }
       } catch (Throwable e) {
         if (reInitCount > 1) {
           WXLogUtils.e("[WXBridgeManager] invokeInitFramework ", e);
-          String err="[WXBridgeManager] invokeInitFramework reinit FrameWork exception!#"+e.toString();
+          String err = "[WXBridgeManager] invokeInitFramework reinit FrameWork exception!#" + e.toString();
           commitJSFrameworkAlarmMonitor(IWXUserTrackAdapter.JS_FRAMEWORK, WXErrorCode.WX_ERR_JS_REINIT_FRAMEWORK, err);
         } else {
           WXLogUtils.e("[WXBridgeManager] invokeInitFramework ", e);
-          String err="[WXBridgeManager] invokeInitFramework exception!#"+e.toString();
+          String err = "[WXBridgeManager] invokeInitFramework exception!#" + e.toString();
           commitJSFrameworkAlarmMonitor(IWXUserTrackAdapter.JS_FRAMEWORK, WXErrorCode.WX_ERR_JS_FRAMEWORK, err);
         }
       }
@@ -1649,7 +1640,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
   private void invokeCallJSBatch(Message message) {
     if (mNextTickTasks.isEmpty() || !isJSFrameworkInit()) {
       if (!isJSFrameworkInit()) {
-        WXLogUtils.e("[WXBridgeManager] invokeCallJSBatch: framework.js uninitialized!!  message:"+message.toString());
+        WXLogUtils.e("[WXBridgeManager] invokeCallJSBatch: framework.js uninitialized!!  message:" + message.toString());
       }
       return;
     }
@@ -1670,16 +1661,16 @@ public class WXBridgeManager implements Callback,BactchExecutor {
       task = ((ArrayList) task).toArray();
 
       WXJSObject[] args = {
-              new WXJSObject(WXJSObject.String, instanceId),
-              new WXJSObject(WXJSObject.JSON,
-                      WXJsonUtils.fromObjectToJSONString(task))};
+          new WXJSObject(WXJSObject.String, instanceId),
+          new WXJSObject(WXJSObject.JSON,
+              WXJsonUtils.fromObjectToJSONString(task))};
 
       invokeExecJS(String.valueOf(instanceId), null, METHOD_CALL_JS, args);
 
     } catch (Throwable e) {
       WXLogUtils.e("WXBridgeManager", e);
-      String err="invokeCallJSBatch#"+e.toString();
-      commitJSBridgeAlarmMonitor(message.obj.toString(), WXErrorCode.WX_ERR_JS_EXECUTE,err);
+      String err = "invokeCallJSBatch#" + e.toString();
+      commitJSBridgeAlarmMonitor(message.obj.toString(), WXErrorCode.WX_ERR_JS_EXECUTE, err);
     }
 
     // If task is not empty, loop until it is empty
@@ -1751,16 +1742,16 @@ public class WXBridgeManager implements Callback,BactchExecutor {
 
   /**
    * Register Android module
+   *
    * @param modules the format is like
    *                {'dom':['updateAttrs','updateStyle'],'event':['openUrl']}
    */
 
   public void registerModules(final Map<String, Object> modules) {
     if (modules != null && modules.size() != 0) {
-      if(isJSThread()){
+      if (isJSThread()) {
         invokeRegisterModules(modules, mRegisterModuleFailList);
-      }
-      else{
+      } else {
         post(new Runnable() {
           @Override
           public void run() {
@@ -1775,7 +1766,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
    * Registered component
    */
   public void registerComponents(final List<Map<String, Object>> components) {
-    if ( mJSHandler == null || components == null
+    if (mJSHandler == null || components == null
         || components.size() == 0) {
       return;
     }
@@ -1806,7 +1797,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
       mWXBridge.execJSService(service);
     } catch (Throwable e) {
       WXLogUtils.e("[WXBridgeManager] invokeRegisterService:", e);
-      commitJSFrameworkAlarmMonitor(IWXUserTrackAdapter.JS_FRAMEWORK,WXErrorCode.WX_ERR_JS_EXECUTE,"invokeRegisterService");
+      commitJSFrameworkAlarmMonitor(IWXUserTrackAdapter.JS_FRAMEWORK, WXErrorCode.WX_ERR_JS_EXECUTE, "invokeRegisterService");
     }
   }
 
@@ -1824,38 +1815,38 @@ public class WXBridgeManager implements Callback,BactchExecutor {
     }
 
     WXJSObject[] args = {new WXJSObject(WXJSObject.JSON,
-                                        WXJsonUtils.fromObjectToJSONString(modules))};
+        WXJsonUtils.fromObjectToJSONString(modules))};
     try {
       mWXBridge.execJS("", null, METHOD_REGISTER_MODULES, args);
     } catch (Throwable e) {
       WXLogUtils.e("[WXBridgeManager] invokeRegisterModules:", e);
-      commitJSFrameworkAlarmMonitor(IWXUserTrackAdapter.JS_FRAMEWORK,WXErrorCode.WX_ERR_JS_EXECUTE,"invokeRegisterModules");
+      commitJSFrameworkAlarmMonitor(IWXUserTrackAdapter.JS_FRAMEWORK, WXErrorCode.WX_ERR_JS_EXECUTE, "invokeRegisterModules");
     }
   }
 
   private void invokeRegisterComponents(List<Map<String, Object>> components, List<Map<String, Object>> failReceiver) {
-    if(components == failReceiver){
+    if (components == failReceiver) {
       throw new RuntimeException("Fail receiver should not use source.");
     }
     if (!isJSFrameworkInit()) {
       WXLogUtils.e("[WXBridgeManager] invokeRegisterComponents: framework.js uninitialized.");
 
-      for (Map<String,Object> comp:components){
+      for (Map<String, Object> comp : components) {
         failReceiver.add(comp);
       }
       return;
     }
-    if(components == null){
+    if (components == null) {
       return;
     }
 
     WXJSObject[] args = {new WXJSObject(WXJSObject.JSON,
-                                        WXJsonUtils.fromObjectToJSONString(components))};
+        WXJsonUtils.fromObjectToJSONString(components))};
     try {
       mWXBridge.execJS("", null, METHOD_REGISTER_COMPONENTS, args);
     } catch (Throwable e) {
       WXLogUtils.e("[WXBridgeManager] invokeRegisterComponents ", e);
-      commitJSFrameworkAlarmMonitor(IWXUserTrackAdapter.JS_FRAMEWORK,WXErrorCode.WX_ERR_JS_EXECUTE,"invokeRegisterComponents");
+      commitJSFrameworkAlarmMonitor(IWXUserTrackAdapter.JS_FRAMEWORK, WXErrorCode.WX_ERR_JS_EXECUTE, "invokeRegisterComponents");
     }
   }
 
@@ -1864,7 +1855,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
       mJSThread.quit();
     }
     mBridgeManager = null;
-    if(mDestroyedInstanceId!=null){
+    if (mDestroyedInstanceId != null) {
       mDestroyedInstanceId.clear();
     }
 
@@ -1875,105 +1866,98 @@ public class WXBridgeManager implements Callback,BactchExecutor {
    */
   public void reportJSException(String instanceId, String function,
                                 String exception) {
-      WXLogUtils.e("reportJSException >>>> instanceId:" + instanceId
-              + ", exception function:" + function + ", exception:"
-              + exception);
-	  WXSDKInstance instance = null;
-      if (instanceId != null && (instance = WXSDKManager.getInstance().getSDKInstance(instanceId)) != null) {
-          instance.onJSException(WXErrorCode.WX_ERR_JS_EXECUTE.getErrorCode(), function, exception);
-
-          if (METHOD_CREATE_INSTANCE.equals(function)) {
-              try {
-                  if (reInitCount > 1 && !instance.isNeedReLoad()) {
-                      // JSONObject domObject = JSON.parseObject(tasks);
-                      WXDomModule domModule = getDomModule(instanceId);
-                      Action action = Actions.getReloadPage(instanceId, true);
-                      domModule.postAction((DOMAction) action, true);
-                      instance.setNeedLoad(true);
-                      return;
-                  }
-              } catch (Exception e) {
-                  e.printStackTrace();
-              }
+    WXLogUtils.e("reportJSException >>>> instanceId:" + instanceId
+        + ", exception function:" + function + ", exception:"
+        + exception);
+    WXSDKInstance instance = null;
+    if (instanceId != null && (instance = WXSDKManager.getInstance().getSDKInstance(instanceId)) != null) {
+      instance.onJSException(WXErrorCode.WX_ERR_JS_EXECUTE.getErrorCode(), function, exception);
+
+      if (METHOD_CREATE_INSTANCE.equals(function)) {
+        try {
+          if (reInitCount > 1 && !instance.isNeedReLoad()) {
+            // JSONObject domObject = JSON.parseObject(tasks);
+            WXDomModule domModule = getDomModule(instanceId);
+            Action action = Actions.getReloadPage(instanceId, true);
+            domModule.postAction((DOMAction) action, true);
+            instance.setNeedLoad(true);
+            return;
           }
-          String err = "function:" + function + "#exception:" + exception;
-          commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_JS_EXECUTE, err);
+        } catch (Exception e) {
+          e.printStackTrace();
+        }
       }
+      String err = "function:" + function + "#exception:" + exception;
+      commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_JS_EXECUTE, err);
+    }
 
-      IWXJSExceptionAdapter adapter = WXSDKManager.getInstance().getIWXJSExceptionAdapter();
-      if (adapter != null) {
-          String bundleUrl;
-          String exceptionId = instanceId;
+    IWXJSExceptionAdapter adapter = WXSDKManager.getInstance().getIWXJSExceptionAdapter();
+    if (adapter != null) {
+      String bundleUrl;
+      String exceptionId = instanceId;
 
-          if (instanceId == "" || instanceId == null) {
-              exceptionId = "instanceIdisNull";
-          }
+      if (instanceId == "" || instanceId == null) {
+        exceptionId = "instanceIdisNull";
+      }
 
-          if (instance == null) {
-              if (("initFramework").equals(function)) {
-                  bundleUrl = "jsExceptionBeforeRenderInstanceNull";
-                  String exceptionExt = null;
-                  try {
-                      if (WXEnvironment.getApplication() != null) {
-                          final String fileName = WXEnvironment.getApplication().getApplicationContext().getCacheDir().getPath() + INITLOGFILE;
-                          try {
-                              File file = new File(fileName);
-                              if (file.exists()) {
-                                  if (file.length() > 0) {
-                                      StringBuilder result = new StringBuilder();
-                                      try {
-                                          InputStreamReader read = new InputStreamReader(new FileInputStream(file), "UTF-8");
-                                          BufferedReader br = new BufferedReader(read);
-                                          String s = null;
-                                          while ((s = br.readLine()) != null) {
-                                              result.append(s + "\n");
-                                          }
-                                          exceptionExt = result.toString();
-                                          br.close();
-                                      } catch (Exception e) {
-                                          e.printStackTrace();
-                                      }
-                                  }
-                                  file.delete();
-                              }
-                          } catch (Throwable throwable) {
-
-                          }
+      if (instance == null) {
+        if (("initFramework").equals(function)) {
+          bundleUrl = "jsExceptionBeforeRenderInstanceNull";
+          String exceptionExt = null;
+          try {
+            if (WXEnvironment.getApplication() != null) {
+              final String fileName = WXEnvironment.getApplication().getApplicationContext().getCacheDir().getPath() + INITLOGFILE;
+              try {
+                File file = new File(fileName);
+                if (file.exists()) {
+                  if (file.length() > 0) {
+                    StringBuilder result = new StringBuilder();
+                    try {
+                      InputStreamReader read = new InputStreamReader(new FileInputStream(file), "UTF-8");
+                      BufferedReader br = new BufferedReader(read);
+                      String s = null;
+                      while ((s = br.readLine()) != null) {
+                        result.append(s + "\n");
                       }
-                  } catch (Throwable e) {
+                      exceptionExt = result.toString();
+                      br.close();
+                    } catch (Exception e) {
                       e.printStackTrace();
+                    }
                   }
-                  exception += "\n" + exceptionExt;
-                  WXLogUtils.e("reportJSException:" + exception);
+                  file.delete();
+                }
+              } catch (Throwable throwable) {
 
-              } else if (function == null) {
-                  bundleUrl = "jsExceptionInstanceAndFunctionNull";
-              } else {
-                  bundleUrl = "jsExceptionInstanceNull" + function;
               }
-          } else {
-              bundleUrl = instance.getBundleUrl();
+            }
+          } catch (Throwable e) {
+            e.printStackTrace();
           }
+          exception += "\n" + exceptionExt;
+          WXLogUtils.e("reportJSException:" + exception);
 
-          WXJSExceptionInfo jsException = new WXJSExceptionInfo(exceptionId, bundleUrl, WXErrorCode.WX_ERR_JS_EXECUTE.getErrorCode(), function, exception, null);
-          adapter.onJSException(jsException);
-          if (WXEnvironment.isApkDebugable()) {
-              WXLogUtils.d(jsException.toString());
-          }
+        } else if (function == null) {
+          bundleUrl = "jsExceptionInstanceAndFunctionNull";
+        } else {
+          bundleUrl = "jsExceptionInstanceNull" + function;
+        }
+      } else {
+        bundleUrl = instance.getBundleUrl();
       }
-  }
 
-  public static class TimerInfo {
-
-    public String callbackId;
-    public long time;
-    public String instanceId;
+      WXJSExceptionInfo jsException = new WXJSExceptionInfo(exceptionId, bundleUrl, WXErrorCode.WX_ERR_JS_EXECUTE.getErrorCode(), function, exception, null);
+      adapter.onJSException(jsException);
+      if (WXEnvironment.isApkDebugable()) {
+        WXLogUtils.d(jsException.toString());
+      }
+    }
   }
 
   private void registerDomModule() throws WXException {
     /** Tell Javascript Framework what methods you have. This is Required.**/
-    Map<String,Object> domMap=new HashMap<>();
-    domMap.put(WXDomModule.WXDOM,WXDomModule.METHODS);
+    Map<String, Object> domMap = new HashMap<>();
+    domMap.put(WXDomModule.WXDOM, WXDomModule.METHODS);
     registerModules(domMap);
   }
 
@@ -1999,7 +1983,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
       public void run() {
         if (!isJSFrameworkInit())
           return;
-        
+
         invokeExecJS("", null, METHOD_NOTIFY_SERIALIZE_CODE_CACHE, new WXJSObject[0]);
       }
     });
@@ -2013,4 +1997,11 @@ public class WXBridgeManager implements Callback,BactchExecutor {
     msg.sendToTarget();
   }
 
+  public static class TimerInfo {
+
+    public String callbackId;
+    public long time;
+    public String instanceId;
+  }
+
 }