From 56d1d327fe1f508d9d51e37af6b0f3082e0e725d Mon Sep 17 00:00:00 2001 From: Jani Laakso Date: Tue, 3 Apr 2007 09:42:57 +0000 Subject: [PATCH] Fixed NPE when theme name mismatch occurs between description.xml and Application.setTheme method. svn changeset:1100/svn branch:trunk --- .../terminal/web/ApplicationServlet.java | 41 ++++++++++++------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/src/com/itmill/toolkit/terminal/web/ApplicationServlet.java b/src/com/itmill/toolkit/terminal/web/ApplicationServlet.java index 5928138a66..2aa139227a 100644 --- a/src/com/itmill/toolkit/terminal/web/ApplicationServlet.java +++ b/src/com/itmill/toolkit/terminal/web/ApplicationServlet.java @@ -570,12 +570,14 @@ public class ApplicationServlet extends HttpServlet implements // try to detect it WebBrowser wb = WebBrowserProbe.getTerminalType(request .getSession()); - + boolean detect = false; if (unhandledParameters.get("renderingMode") != null) { - detect = ((String) ( (Object[]) unhandledParameters.get("renderingMode"))[0]).equals("detect"); + detect = ((String) ((Object[]) unhandledParameters + .get("renderingMode"))[0]).equals("detect"); } - if (detect || wb.getRenderingMode() == WebBrowser.RENDERING_MODE_UNDEFINED) { + if (detect + || wb.getRenderingMode() == WebBrowser.RENDERING_MODE_UNDEFINED) { String themeName = application.getTheme(); if (themeName == null) themeName = DEFAULT_THEME; @@ -583,7 +585,14 @@ public class ApplicationServlet extends HttpServlet implements themeName = (String) ((Object[]) unhandledParameters .get("theme"))[0]; } + Theme theme = themeSource.getThemeByName(themeName); + if (theme == null) + throw new ServletException( + "Failed to load theme with name " + + themeName + + ". Check that theme's description.xml " + + "contains correct theme name."); String renderingMode = theme.getPreferredMode(wb, themeSource); @@ -861,14 +870,16 @@ public class ApplicationServlet extends HttpServlet implements + "\" type=\"text/css\" />\n"); else if (file.endsWith(".js")) { page.write("\n"); + new ThemeResource(file))); + page.write("\" type=\"text/javascript\">\n"); } } @@ -1220,12 +1231,14 @@ public class ApplicationServlet extends HttpServlet implements URL applicationUrl; try { - URL reqURL = new URL((request.isSecure() ? "https://" : "http://") - + request.getServerName() + ( - (request.isSecure() && request.getServerPort() == 443) || - (!request.isSecure() && request.getServerPort() == 80)?"": - ":" + request.getServerPort()) - + request.getRequestURI()); + URL reqURL = new URL( + (request.isSecure() ? "https://" : "http://") + + request.getServerName() + + ((request.isSecure() && request.getServerPort() == 443) + || (!request.isSecure() && request + .getServerPort() == 80) ? "" : ":" + + request.getServerPort()) + + request.getRequestURI()); String servletPath = request.getContextPath() + request.getServletPath(); if (servletPath.length() == 0 -- 2.39.5