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;
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());
if (mgr == null) {
// Creates new manager
- mgr = new CommunicationManager(application);
+ mgr = new CommunicationManager(application, this);
applicationToAjaxAppMgrMap.put(application, mgr);
}
return mgr;
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;
}
/**
public class ErrorHandlerErrorEvent implements ErrorEvent {
- private Throwable throwable;
+ private final Throwable throwable;
public ErrorHandlerErrorEvent(Throwable throwable) {
this.throwable = throwable;
// 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());