FUSE ESB
  1. FUSE ESB
  2. ESB-1229

HTTP Consumer Timeout doesn't work

    Details

    • Type: Bug Bug
    • Status: Resolved Resolved
    • Priority: Critical Critical
    • Resolution: Done
    • Affects Version/s: 3.4.0.5-fuse
    • Fix Version/s: 3.4.0.6-fuse
    • Component/s: None
    • Labels:
      None
    • Similar Issues:
      Show 10 results 

      Description

      ESB-952 fixed an issue with the HTTP consumer timeout. It seems to have introduced a NPE exception as well in some cases. There may be more behind this issue but we should at the very least be checking for nulls.

      In this commit http://svn.apache.org/viewvc/servicemix/components/bindings/servicemix-http/trunk/src/main/java/org/apache/servicemix/http/endpoints/HttpConsumerEndpoint.java?r1=802347&r2=903254&diff_format=h we should be checking for null before the synchronized block in which that variable is used. In particular the customer is encountering the NPE here:

      2010-07-02 10:54:35,603 [pool-flow.seda.servicemix-eip-thread-18] ERROR org.apache.servicemix.http.HttpComponent - Error processing exchange InOut[
        id: ID:10.19.44.108-12993dbc894-8:0
        status: Active
        role: consumer
        service: {uri}ConsumerStaticRoutingSlipService
        endpoint: sss
        in: ...
        out: ...
      ]
      java.lang.NullPointerException
              at org.apache.servicemix.http.endpoints.HttpConsumerEndpoint.process(HttpConsumerEndpoint.java:236)
              at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
              at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:598)
              at org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
              at org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
              at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:632)
              at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:185)
              at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
              at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
              at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
              at java.lang.Thread.run(Thread.java:619)
      

      Also, may be relevant that a few ms before the they get teh following exception:

      2010-07-02 10:54:35,252 [115185274@qtp-1978318825-0] ERROR com.mycompanys.http.marshaler.MyCompanyHttpConsumerMarshaler |Id: ID:10.19.44.108-12993dbc894-8:0| - Http consumer sendError has got a JBI error
      java.lang.IllegalStateException: component is not owner when trying to set error: java.lang.IllegalStateException: component is not owner
              at org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setError(MessageExchangeImpl.java:264)
              at org.apache.servicemix.common.endpoints.SimpleEndpoint.fail(SimpleEndpoint.java:93)
              at org.apache.servicemix.http.endpoints.HttpConsumerEndpoint.process(HttpConsumerEndpoint.java:328)
              at org.apache.servicemix.http.HttpBridgeServlet.service(HttpBridgeServlet.java:56)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
              at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
              at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
              at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
              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:326)
              at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
              at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:398)
              at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
              at org.mortbay.jetty.nio.SelectChannelConnector$RetryContinuation.run(SelectChannelConnector.java:525)
              at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
      Caused by: java.lang.IllegalStateException: component is not owner
              at org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setStatus(MessageExchangeImpl.java:251)
              at org.apache.servicemix.common.endpoints.SimpleEndpoint.done(SimpleEndpoint.java:84)
              at org.apache.servicemix.http.endpoints.HttpConsumerEndpoint.process(HttpConsumerEndpoint.java:326)
              ... 14 more
      

      Full details are in DEV-2485.

        Activity

        There are no comments yet on this issue.

          People

          • Assignee:
            Chris Custine
            Reporter:
            Jonathan Anstey
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: