Uploaded image for project: 'Crucible'
  1. Crucible
  2. CRUC-1719

REST API - HTTP/500 when accessing invalid custom filter (invalid project key)

    XMLWordPrintable

Details

    Description

      Noticed in Atlassian Connector for Eclipse - user defined a custom filter including a project key in conditions. Then he changed project keys in Crucible. That made the custom filter invalid. When trying to get reviews for this filter in ACE got HTTP/500. When trying to reproduce this I noticed that Crucible returns HTTP/500 for an invalid filter (check following stack trace). I think it would be better to return HTTP/404 or HTTP/400 - that would be more meaningful for the user. Also it would not suggest that this is a server problem.

      Jul 9, 2009 9:00:04 AM com.sun.jersey.server.impl.application.WebApplicationImpl onException
      SEVERE: Internal server error
      java.lang.RuntimeException: No project found with key ACC
              at com.atlassian.crucible.spi.impl.DefaultReviewService.adjustCustomFilter(DefaultReviewService.java:1059)
              at com.atlassian.crucible.spi.impl.DefaultReviewService.getCustomFilterReviews(DefaultReviewService.java:1039)
              at com.atlassian.crucible.spi.rpc.RestReviewService$7.doGet(RestReviewService.java:318)
              at com.atlassian.crucible.spi.rpc.RestReviewService$7.doGet(RestReviewService.java:317)
              at com.atlassian.crucible.spi.rpc.ConditionalGet.doConditionalGet(ConditionalGet.java:45)
              at com.atlassian.crucible.spi.rpc.RestReviewService.getDetailedCustomFilterReviews(RestReviewService.java:316)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:585)
              at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:175)
              at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
              at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:163)
              at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:111)
              at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:71)
              at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:111)
              at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:63)
              at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:654)
              at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:612)
              at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:603)
              at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:309)
              at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
              atng.RuntimeException: No project found with key ACC
              at com.atlassian.crucible.spi.impl.DefaultReviewService.adjustCustomFilter(DefaultReviewService.java:1059)
              at com.atlas com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:590)
              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:118)
              at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1200)
              at com.cenqua.fisheye.web.filters.TotalityFilter.doFilter(TotalityFilter.java:224)
              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.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:145)
              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:59)
              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)
      

      Attachments

        Activity

          People

            evzijst Erik van Zijst (Inactive)
            pniewiadomski Pawel Niewiadomski (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: