[ http://issues.apache.org/jira/browse/MYFACES-394?page=comments#action_12319295 ]
Martin Marinschek commented on MYFACES-394: ------------------------------------------- Added michail as a watcher - so that he can review my comment above. regards, Martin > Using "/faces/*" path mapping and connectiong to "faces" causes stack overflow > ------------------------------------------------------------------------------ > > Key: MYFACES-394 > URL: http://issues.apache.org/jira/browse/MYFACES-394 > Project: MyFaces > Type: Bug > Versions: 1.0.9 beta > Environment: JBoss 3.2.7 > java version "1.5.0_04" > Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_04-b05) > Java HotSpot(TM) Client VM (build 1.5.0_04-b05, mixed mode, sharing) > Windows XP x86 > Reporter: Micha? Borowiecki > Priority: Critical > > Using the path mapping: > <servlet-mapping> > <servlet-name>FacesServlet</servlet-name> > <url-pattern>/faces/*</url-pattern> > </servlet-mapping> > And typing the following in the address bar of the browser: > http://localhost:8080/admin/faces > (admin is the context name of the webapp) > causes an infinite recursion and stack overflow. > Part of console output: > ... > 2005-08-05 10:18:26,524 ERROR [org.apache.myfaces.lifecycle.LifecycleImpl] > Assumed extension mapping, but there is no extension in /faces > 2005-08-05 10:18:26,534 ERROR [org.apache.myfaces.lifecycle.LifecycleImpl] > Assumed extension mapping, but there is no extension in /faces > 2005-08-05 10:18:26,544 ERROR [org.apache.myfaces.lifecycle.LifecycleImpl] > Assumed extension mapping, but there is no extension in /faces > 2005-08-05 10:18:26,565 ERROR [org.jboss.web.localhost.Engine] > StandardContext[/admin]Exception in FacesServlet > java.lang.StackOverflowError > at > org.apache.coyote.tomcat5.CoyoteRequest.doGetSession(CoyoteRequest.java:2235) > at > org.apache.coyote.tomcat5.CoyoteRequest.getSession(CoyoteRequest.java:2116) > at > org.apache.coyote.tomcat5.CoyoteRequestFacade.getSession(CoyoteRequestFacade.java:528) > at > javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:215) > at > org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRequest.java:518) > at > javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:215) > ... > at > org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRequest.java:518) > at > javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:215) > at > org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRequest.java:518) > at > org.apache.myfaces.context.servlet.SessionMap.getSession(SessionMap.java:80) > at > org.apache.myfaces.context.servlet.SessionMap.getAttribute(SessionMap.java:51) > at > org.apache.myfaces.context.servlet.AbstractAttributeMap.get(AbstractAttributeMap.java:101) > at > org.apache.myfaces.portlet.PortletUtil.isPortletRequest(PortletUtil.java:60) > at > org.apache.myfaces.lifecycle.LifecycleImpl.deriveViewId(LifecycleImpl.java:322) > at > org.apache.myfaces.lifecycle.LifecycleImpl.restoreView(LifecycleImpl.java:123) > at > org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:82) > at javax.faces.webapp.FacesServlet.service(FacesServlet.java:109) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > at > org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:696) > at > org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:474) > at > org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:409) > at > org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312) > at > org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:405) > at > org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:280) > at > org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:300) > at javax.faces.webapp.FacesServlet.service(FacesServlet.java:110) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > at > org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:696) > at > org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:474) > at > org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:409) > at > org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312) > at > org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:405) > at > org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:280) > at > org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:300) > at javax.faces.webapp.FacesServlet.service(FacesServlet.java:110) > ... > The stack trace goes on and on. > This does not happen when the address is followed by a trailing slash: > "http://localhost:8080/admin/faces/" > Possible workaround: > Define a security constraint to forbid access to /faces > <security-constraint> > <web-resource-collection> > <web-resource-name>faces</web-resource-name> > <url-pattern>/faces</url-pattern> > </web-resource-collection> > <auth-constraint/> > </security-constraint> -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
