Wicket-1.4-rc2 / Liferay 5.2.1 / Ajax: PortletServletRequestWrapper: java.lang.StringIndexOutOfBoundsException

2009-02-20 Thread sauli_k

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

Re: Wicket-1.4-rc2 / Liferay 5.2.1 / Ajax: PortletServletRequestWrapper: java.lang.StringIndexOutOfBoundsException

2009-02-20 Thread Thijs

This is probably an error in Liferays PortletRequestDispatcher.

Use Liferay 5.2.x (head of liferay branch 5.2.x) and use the sun portlet 
container (put portlet.container.impl=sun in portlal-ext.properties)

 (See http://issues.liferay.com/browse/LPS-1911)
and then apply the patches in these two lps's to fix some issues with 
the sun container http://issues.liferay.com/browse/LPS-2131  
http://issues.liferay.com/browse/LPS-1909


Thijs

On 20-2-2009 10:36, sauli_k wrote:

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