Uploaded image for project: 'FishEye'
  1. FishEye
  2. FE-3084

URL rewriting causing Errors

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Low
    • 2.4.0
    • 2.3.6
    • None

    Description

      Splitting CRUC-3746 into 2 issues.

      Brad Fuller added a comment - 30/Sep/10 1:44 PM - edited
      I saw this often now on 2.3.6 Build:20100824065214 2010-08-24 with this stack trace:
      11:03:36 ERROR - Could not find action
      There is no Action mapped for namespace /cru and action name reviewreportimg;jsessionid=1n4ep4ogz72zg. Check if there is such an action name with such namespace defined in the xwork.xml and also if such an action class exists. Check also the log to see if the action class is successfully loaded. - [unknown location]
      at com.opensymphony.xwork.DefaultActionProxy.<init>(DefaultActionProxy.java:75)
      at com.opensymphony.xwork.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:46)
      at com.opensymphony.webwork.dispatcher.DispatcherUtils.serviceAction(DispatcherUtils.java:264)
      at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:111)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
      at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
      at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1208)
      at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)
      at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:55)
      at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:41)
      at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1200)
      at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)
      at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:55)
      at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:41)
      at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1200)
      at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)
      at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
      at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1200)
      at com.cenqua.crucible.filters.CrucibleFilter.doFilter(CrucibleFilter.java:141)
      at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1200)
      at com.cenqua.fisheye.web.filters.TotalityFilter.doFilter(TotalityFilter.java:245)
      at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
      at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
      at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1200)
      at com.atlassian.security.auth.trustedapps.filter.TrustedApplicationsFilter.doFilter(TrustedApplicationsFilter.java:98)
      at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
      at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
      at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1200)
      at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)
      at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66)
      at com.atlassian.oauth.serviceprovider.internal.servlet.OAuthFilter.doFilter(OAuthFilter.java:69)
      at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74)
      at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42)
      at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:55)
      at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:41)
      at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1200)
      at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387)
      at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
      at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
      at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
      at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
      at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:334)
      at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
      at com.cenqua.fisheye.web.filters.TotalityFilter.doFilter(TotalityFilter.java:158)
      at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
      at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
      at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1200)
      at com.atlassian.security.auth.trustedapps.filter.TrustedApplicationsFilter.doFilter(TrustedApplicationsFilter.java:98)
      at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
      at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
      at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1200)
      at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)
      at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66)
      at com.atlassian.oauth.serviceprovider.internal.servlet.OAuthFilter.doFilter(OAuthFilter.java:69)
      at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74)
      at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42)
      at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:55)
      at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:41)
      at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1200)
      at org.mortbay.servlet.UserAgentFilter.doFilter(UserAgentFilter.java:81)
      at org.mortbay.servlet.GzipFilter.doFilter(GzipFilter.java:129)
      at com.cenqua.fisheye.web.filters.CustomIncludableGzipFilter.doFilter(CustomIncludableGzipFilter.java:21)
      at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1200)
      at com.cenqua.fisheye.web.filters.ProductInfoFilter.doFilter(ProductInfoFilter.java:36)
      at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1200)
      at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)
      at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:55)
      at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:41)
      at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1200)
      at com.cenqua.fisheye.web.filters.UpfrontFilter.doFilter(UpfrontFilter.java:74)
      at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
      at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
      at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1200)
      at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387)
      at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
      at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
      at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
      at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
      at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
      at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
      at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
      at org.mortbay.jetty.Server.handle(Server.java:324)
      at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:535)
      at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:865)
      at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539)
      at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
      at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
      at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
      at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:451)

      Anton Mazkovoi [Atlassian] added a comment - 30/Sep/10 9:41 PM
      This is a pure guess as I have not debugged the problem at all.

      From the error "reviewreportimg;jsessionid=1n4ep4ogz72zg." it looks like jessionid is appended to the wrong place in the URL.

      My guess is that a WebWork tags are used incorrectly by FishEye or Crucible to generate the URL, such that jsessionid is appended in the wrong place.

      There should be away to disable appending jsessionid at all in WebWork. This could be a configuration parameter or we may have to patch WebWork.

      Cheers,
      Anton

      Anton Mazkovoi [Atlassian] added a comment - 30/Sep/10 9:45 PM
      Actually it might be possible to switch off URL Rewriting in jetty instead of fixing it in WebWork:
      http://docs.codehaus.org/display/JETTY/SessionIds

      This would turn the call from WebWork to Jetty to rewrite the URl into a no-op.

      Attachments

        Activity

          People

            mwatson@atlassian.com mwatson
            Anonymous Anonymous
            Votes:
            2 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: