Uploaded image for project: 'Mule'
  1. Mule
  2. MULE-4251

Connector workManager's should be disposed in stop phase before transport itself is stopped.

    Details

    • User impact:
      High
    • Log Output:
      Hide
      [03-11 23:13:28] ERROR DefaultExceptionStrategy [jmsConnector.dispatcher.7]: Caught exception in Exception Strategy: The producer is closed
      javax.jms.IllegalStateException: The producer is closed
      at org.apache.activemq.ActiveMQMessageProducer.checkClosed(ActiveMQMessageProducer.java:333)
      at org.apache.activemq.ActiveMQMessageProducer.getDestination(ActiveMQMessageProducer.java:297)
      at org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:384)
      at org.mule.transport.jms.Jms102bSupport.send(Jms102bSupport.java:244)
      at org.mule.transport.jms.JmsMessageDispatcher.dispatchMessage(JmsMessageDispatcher.java:219)
      at org.mule.transport.jms.JmsMessageDispatcher.doDispatch(JmsMessageDispatcher.java:72)
      at org.mule.transport.AbstractMessageDispatcher$Worker.run(AbstractMessageDispatcher.java:262)
      at org.mule.work.WorkerContext.run(WorkerContext.java:310)
      at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
      at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
      at java.lang.Thread.run(Thread.java:613)

      Show
      [03-11 23:13:28] ERROR DefaultExceptionStrategy [jmsConnector.dispatcher.7]: Caught exception in Exception Strategy: The producer is closed javax.jms.IllegalStateException: The producer is closed at org.apache.activemq.ActiveMQMessageProducer.checkClosed(ActiveMQMessageProducer.java:333) at org.apache.activemq.ActiveMQMessageProducer.getDestination(ActiveMQMessageProducer.java:297) at org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:384) at org.mule.transport.jms.Jms102bSupport.send(Jms102bSupport.java:244) at org.mule.transport.jms.JmsMessageDispatcher.dispatchMessage(JmsMessageDispatcher.java:219) at org.mule.transport.jms.JmsMessageDispatcher.doDispatch(JmsMessageDispatcher.java:72) at org.mule.transport.AbstractMessageDispatcher$Worker.run(AbstractMessageDispatcher.java:262) at org.mule.work.WorkerContext.run(WorkerContext.java:310) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575) at java.lang.Thread.run(Thread.java:613)
    • Similar Issues:

      Description

      Disposal of the workManagers in stop() before the transport itself has been stopped allows jobs to complete and dispatch before the transport is stopped. Currently messages randomly get lost (based on timing) with errors because there are still pending dispatcher jobs when the transport implementation is stopped.

      Example of error is shown below.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                tcarlson Travis Carlson
                Reporter:
                dfeist Daniel Feist
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Fix Release Date:
                  27/Jul/09