Camel causes Tomcat shutdown to hang
------------------------------------

                 Key: CAMEL-1751
                 URL: https://issues.apache.org/activemq/browse/CAMEL-1751
             Project: Apache Camel
          Issue Type: Bug
         Environment: reproduceable on windows and linux
            Reporter: david durham


issue is that if I execute DefaultCamelContext().start(),
the tomcat shutdown process will hang.

Here's my spring config.  I have the following for 'inbound' return queues.

  <bean id="returnQueues" class="com.ReturnedQueueRouteBuilder"
lazy-init="false" init-method="init" destroy-method="stop">
      <property name="routes">
          <map>
              <entry key="${a.returnQueue.name}">
                  <bean class="com.ReturnedAProcessor">
                      <property name="x" ref="y" />
                  </bean>
              </entry>
              <entry key="${b.returnQueue.name}">
                  <bean class="com.ReturnedBProcessor">
                      <property name="x" ref="y />
                  </bean>
              </entry>
          </map>
      </property>
      <property name="camelContext" ref="camelContext" />
      <property name="activeMQName" value="${queue.activeMQInstance}" />
      <property name="remoteAddress" value="${queue.remoteAddress}" />
  </bean>

  <bean id="camelContext" class="org.apache.camel.impl.DefaultCamelContext" />

ReturnQueueRouteBuilder looks like:

public class ReturnedQueueRouteBuilder extends RouteBuilder {
   ...

  public void init() {
      camelContext.addComponent(activeMQName.trim(),
ActiveMQComponent.activeMQComponent(remoteAddress.trim()));
      try {
          camelContext.addRoutes(this);
          camelContext.start();
      } catch (Exception e) {
          log.error(e);
      }
  }

    public void stop() {
        try {
            camelContext.stop();
        } catch (Exception e) {
            log.error(e);
        }
    }

    @Override
    public void configure() throws Exception {
        for (Map.Entry<String, Processor> route : routes.entrySet()) {
            from(route.getKey()).process(route.getValue());
        }
    }


 I also see the following stack trace on tomcat shutdown, but I do not think 
this is directly the cause.

    Exception in thread "InactivityMonitor WriteCheck"
java.lang.NoClassDefFoundError:
org/apache/activemq/transport/InactivityMonitor$3
            at
org.apache.activemq.transport.InactivityMonitor.writeCheck(InactivityMonitor.java:128)
            at
org.apache.activemq.transport.InactivityMonitor$2.run(InactivityMonitor.java:103)
            at
org.apache.activemq.thread.SchedulerTimerTask.run(SchedulerTimerTask.java:33)
            at java.util.TimerThread.mainLoop(Timer.java:512)
            at java.util.TimerThread.run(Timer.java:462)
    Caused by: java.lang.ClassNotFoundException:
org.apache.activemq.transport.InactivityMonitor$3
            at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
            at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
            ... 5 more


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to