]> source.dussan.org Git - vaadin-framework.git/commitdiff
Avoid Vaadin entry-point being run twice (#13730)
authorManolo Carrasco <manolo@vaadin.com>
Fri, 9 May 2014 07:47:14 +0000 (09:47 +0200)
committerVaadin Code Review <review@vaadin.com>
Fri, 16 May 2014 12:47:40 +0000 (12:47 +0000)
- Prevent bootstrap script fail if registerWidgetset is called twice
  with the same widgetset.

Change-Id: I8b8069b442ea91c1aa0f0b7dd73c41902e75094b

WebContent/VAADIN/vaadinBootstrap.js
client/src/com/vaadin/client/ApplicationConfiguration.java

index fc0fb9b94817e37043ed9f5e1050fbfbb00a3329..ea1ea21b46c33fc3048e873d5de7f39a4ced0c2c 100644 (file)
                loadTheme: loadTheme,
                registerWidgetset: function(widgetset, callback) {
                        log("Widgetset registered", widgetset);
-                       widgetsets[widgetset].callback = callback;
-                       for(var i = 0; i < widgetsets[widgetset].pendingApps.length; i++) {
-                               var appId = widgetsets[widgetset].pendingApps[i];
-                               log("Starting from register widgetset", appId);
-                               callback(appId);
+                       var ws = widgetsets[widgetset];
+                       if (ws && ws.pendingApps) {
+                               ws.callback = callback;
+                               for(var i = 0; i < ws.pendingApps.length; i++) {
+                                       var appId = ws.pendingApps[i];
+                                       log("Starting from register widgetset", appId);
+                                       callback(appId);
+                               }
+                               ws.pendingApps = null;
                        }
-                       widgetsets[widgetset].pendingApps = null;
                },
                getBrowserDetailsParameters: function(parentElementId) {
                        // Screen height and width
index d483b39a7b15aad55a884524854d6243a7a45ba6..543a48f61b508769f60b5f2f4e378e26a6caed05 100644 (file)
@@ -222,6 +222,7 @@ public class ApplicationConfiguration implements EntryPoint {
 
     private boolean browserDetailsSent = false;
     private boolean widgetsetVersionSent = false;
+    private static boolean moduleLoaded = false;
 
     static// TODO consider to make this hashmap per application
     LinkedList<Command> callbacks = new LinkedList<Command>();
@@ -596,6 +597,13 @@ public class ApplicationConfiguration implements EntryPoint {
 
     @Override
     public void onModuleLoad() {
+
+        // Don't run twice if the module has been inherited several times.
+        if (moduleLoaded) {
+            return;
+        }
+        moduleLoaded = true;
+
         Profiler.initialize();
         Profiler.enter("ApplicationConfiguration.onModuleLoad");