hello - we were trying to upgrade from wicket 1.4.10 to wicket 1.4.12
and ran into a problem in the ServletWebRequest class.  the old code
was:

               HttpServletRequest httpRequest = getHttpServletRequest();

               // This is in the Servlet 2.3 spec giving us the URI of the
resource
               // that caused the error. Unfortunately, this includes the
context path.
               String errorUrl =
(String)httpRequest.getAttribute("javax.servlet.error.request_uri");

               // This gives us a context-relative path for
RequestDispatcher.forward
               // stuff, with a leading slash.
               String forwardUrl =
(String)httpRequest.getAttribute("javax.servlet.forward.servlet_path");

               if (forwardUrl != null && forwardUrl.length() > 0)
               {
                       // If this is an error page, this will be /mount or
/?wicket:foo
                       relativeUrl = forwardUrl.substring(1);
               }

and the new code is:

HttpServletRequest httpRequest = getHttpServletRequest();

               // This is in the Servlet 2.3 spec giving us the URI of the
resource
               // that caused the error. Unfortunately, this includes the
context path.
               String errorUrl =
(String)httpRequest.getAttribute("javax.servlet.error.request_uri");

               // This gives us a context-relative path for
RequestDispatcher.forward
               // stuff, with a leading slash.
               String forwardUrl =
(String)httpRequest.getAttribute("javax.servlet.forward.servlet_path");

               final String filterPath =
(String)httpServletRequest.getAttribute(WicketFilter.FILTER_PATH_ATTR);

               if (!Strings.isEmpty(forwardUrl))
               {
                       // If this is an error page, this will be /mount or
/?wicket:foo
                       relativeUrl = forwardUrl.substring(1);
                       relativeUrl =
relativeUrl.substring(filterPath.length());
               }

there is a new filterPath String that is used in the if statement to
derive a substring from the forwardUrl.  problem is, my forwardUrl is
/rw and my filter path is /wicket and the substring function fails
with a StringIndexOutOfBounds exception.  can someone tell me what the
purpose of this change was and why it might be breaking now?  thanks
in advance for your input!

- jon

Reply via email to