Updated Branches: refs/heads/wicket-1.5.x 7b7aa6d4d -> e448a26bb
WICKET-4387 StringIndexOutOfBoundsException when forwarding requests Add some debug logs to see what is the state when a problem occurs. Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/e448a26b Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/e448a26b Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/e448a26b Branch: refs/heads/wicket-1.5.x Commit: e448a26bb06883e9599beabf032a39d7ee17b956 Parents: 7b7aa6d Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Mon Apr 2 11:42:11 2012 +0200 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Mon Apr 2 11:42:11 2012 +0200 ---------------------------------------------------------------------- .../protocol/http/servlet/ErrorAttributes.java | 13 ++++++++- .../protocol/http/servlet/ServletWebRequest.java | 21 ++++++++++++--- 2 files changed, 29 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/e448a26b/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ErrorAttributes.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ErrorAttributes.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ErrorAttributes.java index da70ca8..7204eb0 100644 --- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ErrorAttributes.java +++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ErrorAttributes.java @@ -159,5 +159,16 @@ public class ErrorAttributes return null; } - + @Override + public String toString() + { + return "ErrorAttributes{" + + "statusCode=" + statusCode + + ", message='" + message + '\'' + + ", requestUri='" + requestUri + '\'' + + ", servletName='" + servletName + '\'' + + ", exceptionType=" + exceptionType + + ", exception=" + exception + + '}'; + } } http://git-wip-us.apache.org/repos/asf/wicket/blob/e448a26b/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java index 274e1fb..e6cf3bd 100644 --- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java +++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java @@ -58,6 +58,8 @@ import org.slf4j.LoggerFactory; */ public class ServletWebRequest extends WebRequest { + private static final Logger LOG = LoggerFactory.getLogger(ServletWebRequest.class); + private final HttpServletRequest httpServletRequest; private final Url url; @@ -101,6 +103,11 @@ public class ServletWebRequest extends WebRequest if (forwardAttributes != null || errorAttributes != null) { + if (LOG.isDebugEnabled()) + { + LOG.debug("Setting filterPrefix('{}') to '' because there is either an error or a forward. {}, {}", + new Object[] {filterPrefix, forwardAttributes, errorAttributes}); + } // the filter prefix is not needed when the current request is internal // see WICKET-4387 this.filterPrefix = ""; @@ -154,9 +161,7 @@ public class ServletWebRequest extends WebRequest } else { - String base = null; - - base = getHeader(HEADER_AJAX_BASE_URL); + String base = getHeader(HEADER_AJAX_BASE_URL); if (base == null) { @@ -185,7 +190,15 @@ public class ServletWebRequest extends WebRequest } StringBuilder url = new StringBuilder(); uri = Strings.stripJSessionId(uri); - final int start = httpServletRequest.getContextPath().length() + filterPrefix.length() + 1; + String contextPath = httpServletRequest.getContextPath(); + + if (LOG.isDebugEnabled()) + { + LOG.debug("Calculating context relative path from: context path '{}', filterPrefix '{}', uri '{}'", + new Object[] {contextPath, filterPrefix, uri}); + } + + final int start = contextPath.length() + filterPrefix.length() + 1; url.append(uri.substring(start)); if (errorAttributes == null)
