[ 
http://www.stripesframework.org/jira/browse/STS-575?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=11495#action_11495
 ] 

John Newman commented on STS-575:
---------------------------------

Hi Ben,

I think the change you made to AnnotatedClassActionResolver.getActionBean in 
rev 960 introduced a small bug.

I have Search.action bound to "/" via the trick with

        <welcome-file-list>
                <welcome-file>index.ftl</welcome-file>
                <welcome-file>Search.action</welcome-file>
        </welcome-file-list>

and an empty file in the application root called Search.action

After rev 960, when I goto http://locahost/MyApp/ I get an exception instead of 
being taken to the bean:
java.lang.StringIndexOutOfBoundsException: String index out of range: 0
        at java.lang.String.charAt(String.java:558)
        at 
net.sourceforge.stripes.controller.NameBasedActionResolver.getFindViewAttempts(NameBasedActionResolver.java:368)
        at 
net.sourceforge.stripes.controller.NameBasedActionResolver.findView(NameBasedActionResolver.java:321)
        at 
net.sourceforge.stripes.controller.NameBasedActionResolver.handleActionBeanNotFound(NameBasedActionResolver.java:292)
        at 
net.sourceforge.stripes.controller.NameBasedActionResolver.getActionBean(NameBasedActionResolver.java:267)
        at 
net.sourceforge.stripes.controller.AnnotatedClassActionResolver.getActionBean(AnnotatedClassActionResolver.java:279)
        at 
net.sourceforge.stripes.controller.DispatcherHelper$1.intercept(DispatcherHelper.java:106)
        at 
net.sourceforge.stripes.controller.ExecutionContext.proceed(ExecutionContext.java:158)
        at 
edu.upmc.ccweb.core.modules.login.stripes.SecurityInterceptor.intercept(SecurityInterceptor.java:101)
        at 
net.sourceforge.stripes.controller.ExecutionContext.proceed(ExecutionContext.java:155)
        at 
net.sourceforge.stripes.integration.spring.SpringInterceptor.intercept(SpringInterceptor.java:64)
        at 
net.sourceforge.stripes.controller.ExecutionContext.proceed(ExecutionContext.java:155)
        at 
net.sourceforge.stripes.controller.BeforeAfterMethodInterceptor.intercept(BeforeAfterMethodInterceptor.java:113)
        at 
net.sourceforge.stripes.controller.ExecutionContext.proceed(ExecutionContext.java:155)
        at 
net.sourceforge.stripes.controller.ExecutionContext.wrap(ExecutionContext.java:74)
        at 
net.sourceforge.stripes.controller.DispatcherHelper.resolveActionBean(DispatcherHelper.java:102)
        at 
net.sourceforge.stripes.controller.DispatcherServlet.resolveActionBean(DispatcherServlet.java:245)
        at 
net.sourceforge.stripes.controller.DispatcherServlet.doPost(DispatcherServlet.java:148)
        at 
net.sourceforge.stripes.controller.DispatcherServlet.doGet(DispatcherServlet.java:67)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
net.sourceforge.stripes.controller.StripesFilter.doFilter(StripesFilter.java:246)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at 
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
        at 
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at 
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
        at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:437)
        at 
org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:366)
        at 
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
        at java.lang.Thread.run(Thread.java:595)

Reverting the changes from 960 does not produce this exception and the app 
works normally.

> Inconsistency in how a request URI is determined
> ------------------------------------------------
>
>                 Key: STS-575
>                 URL: http://www.stripesframework.org/jira/browse/STS-575
>             Project: Stripes
>          Issue Type: Bug
>          Components: ActionBean Dispatching
>    Affects Versions: Release 1.5
>            Reporter: Ben Gunter
>            Assignee: Ben Gunter
>             Fix For: Release 1.5.1
>
>
> AnnotatedClassActionResolver#getRequestedPath(..) returns the URI of the 
> request, but it does so by constructing it from getServletPath() + 
> getPathInfo(). All the clean URL code calls getRequestURI() instead. This can 
> cause tricky problems during development with some URLs that are able to 
> resolve the ActionBean but not to parse the URI parameters. For example, 
> given a prefix mapping of /action/* and 
> @UrlBinding("/action/foo/{$event}/{param}"), the URI 
> //myContext/action/foo/bar/blah would correctly resolve to an ActionBean 
> because getServletPath() returns /action instead of //action, but 
> getRequestURI() returns //myContext/action/foo/bar/blah, which the URI 
> parameter parsing code cannot handle.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://www.stripesframework.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Stripes-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-development

Reply via email to