aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoonas Lehtinen <joonas.lehtinen@itmill.com>2008-09-03 17:18:04 +0000
committerJoonas Lehtinen <joonas.lehtinen@itmill.com>2008-09-03 17:18:04 +0000
commit76371dcfcc0362cddf04853bdd363b3bcf22bb2b (patch)
tree859f031786f59303ba9e2eb2843d3e1ebd2f9117
parenta82b19a13e69c4d948c7def26e70034261411eef (diff)
downloadvaadin-framework-76371dcfcc0362cddf04853bdd363b3bcf22bb2b.tar.gz
vaadin-framework-76371dcfcc0362cddf04853bdd363b3bcf22bb2b.zip
Fixes #2007 : Application runner includes application-class-name in pathinfo
svn changeset:5352/svn branch:trunk
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/server/ApplicationServlet.java12
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/server/CommunicationManager.java15
2 files changed, 21 insertions, 6 deletions
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());