diff options
author | Artur Signell <artur.signell@itmill.com> | 2009-09-18 08:18:22 +0000 |
---|---|---|
committer | Artur Signell <artur.signell@itmill.com> | 2009-09-18 08:18:22 +0000 |
commit | 703857aa18e43bab952dfed80998699f4da8d943 (patch) | |
tree | a08e8cb44d25a393f92eff76f4fb1701d0ab648d /src/com | |
parent | 1f5eae4c4bc7d23d869043e9905a739feb4985da (diff) | |
download | vaadin-framework-703857aa18e43bab952dfed80998699f4da8d943.tar.gz vaadin-framework-703857aa18e43bab952dfed80998699f4da8d943.zip |
Fix for #3349 - NPE when mainwindow is not set
svn changeset:8845/svn branch:6.1
Diffstat (limited to 'src/com')
3 files changed, 27 insertions, 3 deletions
diff --git a/src/com/vaadin/terminal/gwt/server/AbstractApplicationServlet.java b/src/com/vaadin/terminal/gwt/server/AbstractApplicationServlet.java index 31d5d5ac96..725b906f97 100644 --- a/src/com/vaadin/terminal/gwt/server/AbstractApplicationServlet.java +++ b/src/com/vaadin/terminal/gwt/server/AbstractApplicationServlet.java @@ -173,7 +173,7 @@ public abstract class AbstractApplicationServlet extends HttpServlet { // Widget set parameter name private static final String PARAMETER_WIDGETSET = "widgetset"; - private static final String ERROR_NO_WINDOW_FOUND = "Application did not give any window, did you remember to setMainWindow()?"; + private static final String ERROR_NO_WINDOW_FOUND = "No window found. Did you remember to setMainWindow()?"; private static final String DEFAULT_THEME_NAME = "reindeer"; diff --git a/src/com/vaadin/terminal/gwt/server/CommunicationManager.java b/src/com/vaadin/terminal/gwt/server/CommunicationManager.java index b3576ed327..df198bc655 100644 --- a/src/com/vaadin/terminal/gwt/server/CommunicationManager.java +++ b/src/com/vaadin/terminal/gwt/server/CommunicationManager.java @@ -459,8 +459,7 @@ public class CommunicationManager implements Paintable.RepaintRequestListener, // Also check any existing subwindows if (w.getChildWindows() != null) { - for (Window subWindow : (Set<Window>) w - .getChildWindows()) { + for (Window subWindow : w.getChildWindows()) { invalidComponentRelativeSizes = ComponentSizeValidator .validateComponentRelativeSizes( subWindow.getContent(), @@ -1087,6 +1086,9 @@ public class CommunicationManager implements Paintable.RepaintRequestListener, // By default, use mainwindow if (window == null) { window = application.getMainWindow(); + // Return null if no main window was found + if (window == null) + return null; } // If the requested window is already open, resolve conflict diff --git a/src/com/vaadin/tests/applicationservlet/NoMainWindow.java b/src/com/vaadin/tests/applicationservlet/NoMainWindow.java new file mode 100644 index 0000000000..9097274236 --- /dev/null +++ b/src/com/vaadin/tests/applicationservlet/NoMainWindow.java @@ -0,0 +1,22 @@ +package com.vaadin.tests.applicationservlet;
+
+import com.vaadin.tests.components.AbstractTestCase;
+
+public class NoMainWindow extends AbstractTestCase {
+
+ @Override
+ protected String getDescription() {
+ return "This should produce an stack trace with \"No window found. Did you remember to setMainWindow()?\"";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 3349;
+ }
+
+ @Override
+ public void init() {
+
+ }
+
+}
|