Hi,
I was using the AjaxLink in a portlet and I noticed that in case the portal
url is shorter than the wicket filter path I get this error:
2009-02-20 11:07:40,765 ERROR [[MonitoringPortlet].invoke()] -
Servlet.service() for servlet MonitoringPortlet threw exception
java.lang.StringIndexOutOfBoundsException: String index out of range: -3
at java.lang.String.substring(String.java:1938)
at java.lang.String.substring(String.java:1905)
at
org.apache.wicket.protocol.http.portlet.PortletServletRequestWrapper.<init>(PortletServletRequestWrapper.java:144)
at
org.apache.wicket.protocol.http.portlet.WicketFilterPortletContext.setupFilter(WicketFilterPortletContext.java:120)
at
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:229)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679)
at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)
at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:399)
at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at
com.liferay.portlet.InvokerPortletImpl.invoke(InvokerPortletImpl.java:613)
at
com.liferay.portlet.InvokerPortletImpl.invokeResource(InvokerPortletImpl.java:722)
at
com.liferay.portlet.InvokerPortletImpl.serveResource(InvokerPortletImpl.java:496)
at
com.liferay.portal.action.LayoutAction.processPortletRequest(LayoutAction.java:663)
at
com.liferay.portal.action.LayoutAction.processLayout(LayoutAction.java:454)
at com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:195)
at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at
com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:159)
at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at
com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:505)
at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:732)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679)
at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)
at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:399)
at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at
com.liferay.portal.servlet.FriendlyURLServlet.service(FriendlyURLServlet.java:143)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)
at
com.liferay.portal.servlet.filters.strip.StripFilter.processFilter(StripFilter.java:178)
at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:91)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)
at
com.liferay.portal.servlet.filters.gzip.GZipFilter.processFilter(GZipFilter.java:149)
at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:91)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)
at
com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:282)
at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:91)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)
at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:94)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)
at
com.liferay.portal.servlet.filters.cache.CacheFilter.processFilter(CacheFilter.java:417)
at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:91)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)
at
com.liferay.portal.servlet.filters.autologin.AutoLoginFilter.processFilter(AutoLoginFilter.java:244)
at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:91)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)
at
com.liferay.portal.servlet.filters.sso.opensso.OpenSSOFilter.processFilter(OpenSSOFilter.java:73)
at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:91)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)
at
com.liferay.portal.sharepoint.SharepointFilter.processFilter(SharepointFilter.java:188)
at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:91)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)
at
com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.doFilter(VirtualHostFilter.java:188)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)
at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:94)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:619)
11:07:40,767 WARN [PortalImpl:2860] Current URL
/web/test/test3?random=0.11242403718657112 generates exception: String index
out of range: -3
11:07:40,895 ERROR [jsp:984] java.lang.StringIndexOutOfBoundsException:
String index out of range: -3
java.lang.StringIndexOutOfBoundsException: String index out of range: -3
at java.lang.String.substring(String.java:1938)
at java.lang.String.substring(String.java:1905)
at
org.apache.wicket.protocol.http.portlet.PortletServletRequestWrapper.<init>(PortletServletRequestWrapper.java:144)
at
org.apache.wicket.protocol.http.portlet.WicketFilterPortletContext.setupFilter(WicketFilterPortletContext.java:120)
at
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:229)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679)
at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)
at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:399)
at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at
com.liferay.portlet.InvokerPortletImpl.invoke(InvokerPortletImpl.java:613)
at
com.liferay.portlet.InvokerPortletImpl.invokeResource(InvokerPortletImpl.java:722)
at
com.liferay.portlet.InvokerPortletImpl.serveResource(InvokerPortletImpl.java:496)
at
com.liferay.portal.action.LayoutAction.processPortletRequest(LayoutAction.java:663)
at
com.liferay.portal.action.LayoutAction.processLayout(LayoutAction.java:454)
at com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:195)
at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at
com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:159)
at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at
com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:505)
at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:732)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679)
at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)
at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:399)
at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at
com.liferay.portal.servlet.FriendlyURLServlet.service(FriendlyURLServlet.java:143)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)
at
com.liferay.portal.servlet.filters.strip.StripFilter.processFilter(StripFilter.java:178)
at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:91)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)
at
com.liferay.portal.servlet.filters.gzip.GZipFilter.processFilter(GZipFilter.java:149)
at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:91)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)
at
com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:282)
at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:91)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)
at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:94)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)
at
com.liferay.portal.servlet.filters.cache.CacheFilter.processFilter(CacheFilter.java:417)
at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:91)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)
at
com.liferay.portal.servlet.filters.autologin.AutoLoginFilter.processFilter(AutoLoginFilter.java:244)
at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:91)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)
at
com.liferay.portal.servlet.filters.sso.opensso.OpenSSOFilter.processFilter(OpenSSOFilter.java:73)
at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:91)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)
at
com.liferay.portal.sharepoint.SharepointFilter.processFilter(SharepointFilter.java:188)
at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:91)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)
at
com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.doFilter(VirtualHostFilter.java:188)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)
at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:94)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:619)
The code in wicket in this part is:
PortletServletRequestWrapper:
144 String pathInfo = requestURI.substring(contextPath.length() +
filterPath.length());
145 this.pathInfo = pathInfo == null || pathInfo.length() < 2 ? null :
pathInfo;
Values:
Does not work:
requestURI = "/web/test/test3"
filterPath = "MonitoringPortlet/"
contextPath = ""
Works:
requestURI = "/web/test/1sdssssssssssssssdfkdfsksdfksdfsdf"
filterPath = "MonitoringPortlet/"
contextPath = ""
I'm just wondering if this is Liferay or Wicket problem? Also in this case
the 'pathInfo' does not even make any sense as it doesnt even contain the
filterPath.
--
View this message in context:
http://www.nabble.com/Wicket-1.4-rc2---Liferay-5.2.1---Ajax%3A-PortletServletRequestWrapper%3A-java.lang.StringIndexOutOfBoundsException-tp22117569p22117569.html
Sent from the Wicket - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]