Hi everybody,

I’m using Camel 2.14.1, mainly to use a timer and an http consumer 
(URL_FLEET_HISTORY), as shown on the following Java code:

@Override
    public void configure() throws Exception {
        
        from("timer:ws?period=" + period)
                .process(new Processor() {

                    @Override
                    public void process(Exchange exchange) throws Exception {
                        Calendar cal = Calendar.getInstance();
                        System.out.println("Searching new data @ "
                                + cal.getTime());
                        cal.add(Calendar.HOUR, -48);
                        System.out.println("Since " + cal.getTime());
                        String lastReport = LAST_REPORT_DATE_FORMAT.format(cal
                                .getTime());
                        exchange.getOut().setHeader("lastReport", lastReport);

                    }
                })
                .recipientList(
                        simple(URL_FLEET_HISTORY + USERNAME + SLASH + PASSWORD
                                + SLASH + "${header.lastReport}"))
                .convertBodyTo(String.class)
                .log(LoggingLevel.INFO, logger, "Data Received: ${body}")
                .split().tokenizePair("<Heading>", "</Status>", true)
                .process(new LocationProcessor());
    }

I’m also using org.apache.camel.main.Main to run the process as a command line 
forever running kind of daemon. with this code:

public class Listener {

    public static void main(String[] args) throws Exception {
        Listener daemon = new Listener();
        daemon.boot();
    }

    private Main main;

    public void boot() throws Exception {
        // create a Main instance
        main = new Main();
        // enable hangup support so you can press ctrl + c to terminate the JVM
        main.enableHangupSupport();

        // add routes
        main.addRouteBuilder(new SkyPatrolRouteBuilder());

        // run until you terminate the JVM
        System.out.println("Starting Listener. Use Ctrl + c to terminate.");
        main.run();
    }

}

After a few days running the HTTP consumer starts to fail consistently with the 
following stacktrace:

228243785 [Camel (camel-1) thread #0 - timer://ws] <timer://ws]> ERROR 
org.apache.camel.processor.DefaultErrorHandler - Failed delivery for 
(MessageId: ID-Monitor-59190-1424577519856-0-184780 on ExchangeId: 
ID-Monitor-59190-1424577519856-0-184781). Exhausted after delivery attempt: 1 
caught: org.apache.camel.CamelExecutionException: Exception occurred during 
execution on the exchange: Exchange[Message: [Body is null]]

Message History
---------------------------------------------------------------------------------------------------------------------------------------
RouteId              ProcessorId          Processor                             
                                           Elapsed (ms)
[route1            ] [route1            ] [timer://ws?period=180000             
                                         ] [        41 
<timer://ws?period=180000%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0]%20[%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A041>]
[route1            ] [process1          ] 
[cl.waypoint.monitor.skypatrol.SkyPatrolRouteBuilder$1@549b6220                
] [         1]
[route1            ] [recipientList1    ] [recipientList[simple{Simple: 
http://wsp.skypatrol.com/fleet_history/waypointch] 
<http://wsp.skypatrol.com/fleet_history/waypointch]> [        42]

Exchange
---------------------------------------------------------------------------------------------------------------------------------------
Exchange[
        Id                  ID-Monitor-59190-1424577519856-0-184781
        ExchangePattern     InOnly
        Headers             
{breadcrumbId=ID-Monitor-59190-1424577519856-0-184780, CamelRedelivered=false, 
CamelRedeliveryCounter=0, lastReport=20150222162243}
        BodyType            null
        Body                [Body is null]
]

Stacktrace
---------------------------------------------------------------------------------------------------------------------------------------
org.apache.camel.CamelExecutionException: Exception occurred during execution 
on the exchange: Exchange[Message: [Body is null]]
        at 
org.apache.camel.util.ObjectHelper.wrapCamelExecutionException(ObjectHelper.java:1380)
        at 
org.apache.camel.impl.DefaultExchange.setException(DefaultExchange.java:283)
        at 
org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:64)
        at 
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:416)
        at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
        at 
org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:586)
        at 
org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:514)
        at 
org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:226)
        at 
org.apache.camel.processor.RecipientList.sendToRecipientList(RecipientList.java:167)
        at 
org.apache.camel.processor.RecipientList.process(RecipientList.java:120)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
        at 
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)
        at 
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:416)
        at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
        at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
        at 
org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:166)
        at 
org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:74)
        at java.util.TimerThread.mainLoop(Timer.java:512)
        at java.util.TimerThread.run(Timer.java:462)
Caused by: java.lang.InternalError
        at sun.misc.URLClassPath$JarLoader.getResource(URLClassPath.java:755)
        at sun.misc.URLClassPath.getResource(URLClassPath.java:169)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at sun.misc.Launcher$ExtClassLoader.findClass(Launcher.java:229)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:296)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        at 
java.util.ResourceBundle$RBClassLoader.loadClass(ResourceBundle.java:435)
        at java.util.ResourceBundle$Control.newBundle(ResourceBundle.java:2289)
        at java.util.ResourceBundle.loadBundle(ResourceBundle.java:1364)
        at java.util.ResourceBundle.findBundle(ResourceBundle.java:1328)
        at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1224)
        at java.util.ResourceBundle.getBundle(ResourceBundle.java:705)
        at java.util.logging.Level.getLocalizedName(Level.java:223)
        at java.util.logging.SimpleFormatter.format(SimpleFormatter.java:64)
        at java.util.logging.StreamHandler.publish(StreamHandler.java:179)
        at java.util.logging.ConsoleHandler.publish(ConsoleHandler.java:88)
        at java.util.logging.Logger.log(Logger.java:458)
        at java.util.logging.Logger.doLog(Logger.java:480)
        at java.util.logging.Logger.logp(Logger.java:596)
        at org.apache.commons.logging.impl.Jdk14Logger.log(Jdk14Logger.java:98)
        at 
org.apache.commons.logging.impl.Jdk14Logger.info(Jdk14Logger.java:193)
        at 
org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:439)
        at 
org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
        at 
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
        at 
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
        at 
org.apache.camel.component.http.HttpProducer.executeMethod(HttpProducer.java:244)
        at 
org.apache.camel.component.http.HttpProducer.process(HttpProducer.java:144)
        at 
org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
        ... 19 more
Caused by: java.util.zip.ZipException: error in opening zip file
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.<init>(ZipFile.java:114)
        at java.util.jar.JarFile.<init>(JarFile.java:135)
        at java.util.jar.JarFile.<init>(JarFile.java:72)
        at sun.misc.URLClassPath$JarLoader.getJarFile(URLClassPath.java:646)
        at sun.misc.URLClassPath$JarLoader.access$600(URLClassPath.java:540)
        at sun.misc.URLClassPath$JarLoader$1.run(URLClassPath.java:607)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.misc.URLClassPath$JarLoader.ensureOpen(URLClassPath.java:599)
        at sun.misc.URLClassPath$JarLoader.getResource(URLClassPath.java:753)
        ... 50 more
228243804 [Camel (camel-1) thread #0 - timer://ws] <timer://ws]> WARN 
org.apache.camel.component.timer.TimerConsumer - Error processing exchange. 
Exchange[Message: [Body is null]]. Caused by: 
[org.apache.camel.CamelExecutionException - Exception occurred during execution 
on the exchange: Exchange[Message: [Body is null]]]
org.apache.camel.CamelExecutionException: Exception occurred during execution 
on the exchange: Exchange[Message: [Body is null]]
        at 
org.apache.camel.util.ObjectHelper.wrapCamelExecutionException(ObjectHelper.java:1380)
        at 
org.apache.camel.impl.DefaultExchange.setException(DefaultExchange.java:283)
        at 
org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:64)
        at 
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:416)
        at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
        at 
org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:586)
        at 
org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:514)
        at 
org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:226)
        at 
org.apache.camel.processor.RecipientList.sendToRecipientList(RecipientList.java:167)
        at 
org.apache.camel.processor.RecipientList.process(RecipientList.java:120)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
        at 
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)
        at 
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:416)
        at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
        at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
        at 
org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:166)
        at 
org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:74)
        at java.util.TimerThread.mainLoop(Timer.java:512)
        at java.util.TimerThread.run(Timer.java:462)
Caused by: java.lang.InternalError
        at sun.misc.URLClassPath$JarLoader.getResource(URLClassPath.java:755)
        at sun.misc.URLClassPath.getResource(URLClassPath.java:169)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at sun.misc.Launcher$ExtClassLoader.findClass(Launcher.java:229)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:296)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        at 
java.util.ResourceBundle$RBClassLoader.loadClass(ResourceBundle.java:435)
        at java.util.ResourceBundle$Control.newBundle(ResourceBundle.java:2289)
        at java.util.ResourceBundle.loadBundle(ResourceBundle.java:1364)
        at java.util.ResourceBundle.findBundle(ResourceBundle.java:1328)
        at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1224)
        at java.util.ResourceBundle.getBundle(ResourceBundle.java:705)
        at java.util.logging.Level.getLocalizedName(Level.java:223)
        at java.util.logging.SimpleFormatter.format(SimpleFormatter.java:64)
        at java.util.logging.StreamHandler.publish(StreamHandler.java:179)
        at java.util.logging.ConsoleHandler.publish(ConsoleHandler.java:88)
        at java.util.logging.Logger.log(Logger.java:458)
        at java.util.logging.Logger.doLog(Logger.java:480)
        at java.util.logging.Logger.logp(Logger.java:596)
        at org.apache.commons.logging.impl.Jdk14Logger.log(Jdk14Logger.java:98)
        at 
org.apache.commons.logging.impl.Jdk14Logger.info(Jdk14Logger.java:193)
        at 
org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:439)
        at 
org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
        at 
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
        at 
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
        at 
org.apache.camel.component.http.HttpProducer.executeMethod(HttpProducer.java:244)
        at 
org.apache.camel.component.http.HttpProducer.process(HttpProducer.java:144)
        at 
org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
        ... 19 more
Caused by: java.util.zip.ZipException: error in opening zip file
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.<init>(ZipFile.java:114)
        at java.util.jar.JarFile.<init>(JarFile.java:135)
        at java.util.jar.JarFile.<init>(JarFile.java:72)
        at sun.misc.URLClassPath$JarLoader.getJarFile(URLClassPath.java:646)
        at sun.misc.URLClassPath$JarLoader.access$600(URLClassPath.java:540)
        at sun.misc.URLClassPath$JarLoader$1.run(URLClassPath.java:607)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.misc.URLClassPath$JarLoader.ensureOpen(URLClassPath.java:599)
        at sun.misc.URLClassPath$JarLoader.getResource(URLClassPath.java:753)
        ... 50 more

This is running in Debian Lenny 5.0.6 with Java 1.6.0_20

Seems to me like one of the dependant JARs could not be opened, but why after a 
few days running and not upon startup when it must have already passed through 
the whole pack of methods involved? How can I know which file/jar/zip is the 
problematic one?

Suggestions would be appreciated.

Atentamente / Regards,

Gonzalo Vásquez Sáez
gvasq...@waypoint.cl <mailto:gvasq...@waypoint.cl>
+56 (2) 29634180
Director I+D / R&D Director
Waypoint Telecomunicaciones S.A.

Alfredo Barros Errázuriz 1953 Of. 1004
7500550
Providencia, Santiago, Chile
Mapcode: R3.BR

Reply via email to