aboutsummaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authorArtur Signell <artur.signell@itmill.com>2009-09-18 08:18:22 +0000
committerArtur Signell <artur.signell@itmill.com>2009-09-18 08:18:22 +0000
commit703857aa18e43bab952dfed80998699f4da8d943 (patch)
treea08e8cb44d25a393f92eff76f4fb1701d0ab648d /src/com
parent1f5eae4c4bc7d23d869043e9905a739feb4985da (diff)
downloadvaadin-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')
-rw-r--r--src/com/vaadin/terminal/gwt/server/AbstractApplicationServlet.java2
-rw-r--r--src/com/vaadin/terminal/gwt/server/CommunicationManager.java6
-rw-r--r--src/com/vaadin/tests/applicationservlet/NoMainWindow.java22
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() {
+
+ }
+
+}