From: Joonas Lehtinen Date: Wed, 3 Sep 2008 17:18:04 +0000 (+0000) Subject: Fixes #2007 : Application runner includes application-class-name in pathinfo X-Git-Tag: 6.7.0.beta1~4210 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=76371dcfcc0362cddf04853bdd363b3bcf22bb2b;p=vaadin-framework.git Fixes #2007 : Application runner includes application-class-name in pathinfo svn changeset:5352/svn branch:trunk --- diff --git a/src/com/itmill/toolkit/terminal/gwt/server/ApplicationServlet.java b/src/com/itmill/toolkit/terminal/gwt/server/ApplicationServlet.java index 05581f6854..ead0e18129 100644 --- a/src/com/itmill/toolkit/terminal/gwt/server/ApplicationServlet.java +++ b/src/com/itmill/toolkit/terminal/gwt/server/ApplicationServlet.java @@ -151,10 +151,10 @@ public class ApplicationServlet extends HttpServlet { private String debugMode = ""; // Is this servlet application runner - private boolean isApplicationRunnerServlet = false; + boolean isApplicationRunnerServlet = false; // If servlet is application runner, store request's classname - private String applicationRunnerClassname = null; + String applicationRunnerClassname = null; private ClassLoader classLoader; @@ -750,8 +750,12 @@ public class ApplicationServlet extends HttpServlet { final BufferedWriter page = new BufferedWriter(new OutputStreamWriter( response.getOutputStream())); - final String pathInfo = request.getPathInfo() == null ? "/" : request + String pathInfo = request.getPathInfo() == null ? "/" : request .getPathInfo(); + if (isApplicationRunnerServlet) { + pathInfo = pathInfo + .substring(applicationRunnerClassname.length() + 1); + } String title = ((window == null || window.getCaption() == null) ? "IT Mill Toolkit 5" : window.getCaption()); @@ -1602,7 +1606,7 @@ public class ApplicationServlet extends HttpServlet { if (mgr == null) { // Creates new manager - mgr = new CommunicationManager(application); + mgr = new CommunicationManager(application, this); applicationToAjaxAppMgrMap.put(application, mgr); } return mgr; diff --git a/src/com/itmill/toolkit/terminal/gwt/server/CommunicationManager.java b/src/com/itmill/toolkit/terminal/gwt/server/CommunicationManager.java index 530078596c..0bdd50d801 100644 --- a/src/com/itmill/toolkit/terminal/gwt/server/CommunicationManager.java +++ b/src/com/itmill/toolkit/terminal/gwt/server/CommunicationManager.java @@ -86,15 +86,19 @@ public class CommunicationManager implements Paintable.RepaintRequestListener { private int idSequence = 0; + private final ApplicationServlet applicationServlet; + private final Application application; private List locales; private int pendingLocalesIndex; - public CommunicationManager(Application application) { + public CommunicationManager(Application application, + ApplicationServlet applicationServlet) { this.application = application; requireLocale(application.getLocale().toString()); + this.applicationServlet = applicationServlet; } /** @@ -587,7 +591,7 @@ public class CommunicationManager implements Paintable.RepaintRequestListener { public class ErrorHandlerErrorEvent implements ErrorEvent { - private Throwable throwable; + private final Throwable throwable; public ErrorHandlerErrorEvent(Throwable throwable) { this.throwable = throwable; @@ -795,6 +799,13 @@ public class CommunicationManager implements Paintable.RepaintRequestListener { // Find the window where the request is handled String path = request.getPathInfo(); + // Remove app-runner class-name! + if (applicationServlet.isApplicationRunnerServlet) { + path = path + .substring(1 + applicationServlet.applicationRunnerClassname + .length()); + } + // Remove UIDL from the path path = path.substring("/UIDL".length());