Try to create a small unit tests that shows the issue. Then we can use that in the trunk source code to track down whats going on.
On Mon, Jun 6, 2011 at 11:46 AM, Xavier Coulon <xcou...@gmail.com> wrote: > Hello, > > I just switch back to Camel 2.6.0 and it works fine : no inflight pending > exchange in the file validation route. > BTW : the problem exists with the lastest release of Camel (2.7.2). > > Any idea of what I should look at in detail in the Validation component ? > > Thank you in advance > Best regards, > Xavier > > On Wed, Jun 1, 2011 at 10:05 PM, Xavier Coulon <xcou...@gmail.com> wrote: > >> Hello, >> >> Ok, I realize than my previous post was very vague, so i'll try to give >> more context information: >> >> The test class extends Spring 3's AbstractJUnit4SpringContextTests. >> The test method is annotated with @Test, @DirtiesContext and >> @Timed(millis=20000). This latter annotation can set the test to failed if >> it took too much time. >> >> The @After method is as follow: >> >> @After >> public void stopAllContexts() throws Exception { >> Collection<CamelContext> contexts = >> applicationContext.getBeansOfType(CamelContext.class).values(); >> for (CamelContext context : contexts) { >> LOGGER.info("About to shutdown Context {} with {} inflight exchanges...", >> context.getName(), context >> .getInflightRepository().size()); >> context.stop(); >> } >> } >> >> >> Initially, I was using this method in conjunction with the @DirtiesContext >> annotation to clean/restart the camel contexts (several in my application) >> before each test. Currently, I have two test methods, but the second one is >> annotated with @Ignore. >> >> The application uses Camel 2.7.1 with Java6. Eclipse Helios (the provided >> JUnit test runner) vs Maven 3.0 with surefire (mvn clean test) >> >> The route that causes troubles is the following: >> >> >> from("{{endpoint.phase1.file.incoming}}").routeId("stock.route.phase1.fileValidation") >> .convertBodyTo(SAXSource.class) >> .log(LoggingLevel.INFO, "[Phase1] Starting validating file >> '${header.CamelFileName}' (phase1)") >> .to("{{endpoint.phase1.file.validation}}") >> .log(LoggingLevel.INFO, "[Phase1] File '${header.CamelFileName}' >> validation done.") >> .convertBodyTo(GenericFile.class).to("{{endpoint.phase1.file.splitting}}") >> .log(LoggingLevel.INFO, "[Phase1] Done with file >> '${header.CamelFileName}' validation and splitting"); >> >> with endpoint.phase1.file.incoming=file:D:/tmp/integration >> and endpoint.phase1.file.validation=validator:xsd/my.xsd?useDom=false >> >> Basically, the route endpoint takes a file (GenericFile) that is converted >> into a SAXSource to be validated against an XSD, then converted back into a >> GenericFile to be stream/splitted later on a following route. >> >> Regards, >> /Xavier >> >> On Wed, Jun 1, 2011 at 6:37 PM, Claus Ibsen <claus.ib...@gmail.com> wrote: >> >>> On Wed, Jun 1, 2011 at 5:01 PM, Xavier Coulon <xcou...@gmail.com> wrote: >>> > Hello, >>> > >>> > I'm having an issue with the File Component in my test case. Running a >>> test >>> > from within Eclipse works fine, running the exact same test with Maven >>> fails >>> > because of a timeout I set on the test method. >>> > >>> >>> What do you mean by timeout I set on the test method? >>> >>> And what version of Camel are you using? >>> >>> And how do you run it from Maven? And from Eclipse? >>> >>> And what does your route do. >>> >>> >>> >>> > On the Eclipse side, during the route with a file endpoint is shutdown >>> with >>> > the following messages: >>> > ShutdownTask][org.apache.camel.impl.DefaultShutdownStrategy:suspendNow] >>> > Suspending: Consumer[file://D:/tmp/integration] >>> > [16:12:06,735][TRACE][Camel (context1) thread #18 - >>> > ShutdownTask][org.apache.camel.util.ServiceHelper:suspendService] >>> Suspending >>> > service Consumer[file://D:/tmp/integration] >>> > [16:12:06,735][DEBUG][Camel (context1) thread #18 - >>> > ShutdownTask][org.apache.camel.impl.DefaultShutdownStrategy:suspendNow] >>> > Suspend complete for: Consumer[file://D:/tmp/integration] >>> > [16:12:06,735][ INFO][Camel (context1) thread #18 - >>> > >>> ShutdownTask][org.apache.camel.impl.DefaultShutdownStrategy$ShutdownTask:run] >>> > Route: stock.route.phase1.fileValidation suspended and shutdown >>> deferred, >>> > was consuming from: Endpoint[file://D:/tmp/integration] >>> > [16:12:06,735][DEBUG][Camel (context1) thread #18 - >>> > >>> ShutdownTask][org.apache.camel.impl.DefaultShutdownStrategy$ShutdownTask:run] >>> > Route: stock.route.phase1.xml.aggregation preparing to shutdown. >>> > [16:12:06,735][ INFO][Camel (context1) thread #18 - >>> > >>> ShutdownTask][org.apache.camel.impl.DefaultShutdownStrategy$ShutdownTask:run] >>> > Route: stock.route.phase1.xml.aggregation preparing to shutdown >>> complete. >>> > [16:12:06,735][DEBUG][Camel (context1) thread #18 - >>> > >>> ShutdownTask][org.apache.camel.impl.DefaultShutdownStrategy$ShutdownTask:run] >>> > Route: stock.route.phase1.fileSplitting preparing to shutdown. >>> > [16:12:07,157][TRACE][Camel (context1) thread #6 - >>> > >>> file://D:/tmp/integration][org.apache.camel.impl.ScheduledPollConsumer:run] >>> > Cannot start to poll: Endpoint[file://D:/tmp/integration] as its >>> suspended >>> > [16:12:07,251][ INFO][Camel (context1) thread #18 - >>> > >>> ShutdownTask][org.apache.camel.impl.DefaultShutdownStrategy$ShutdownTask:run] >>> > Route: stock.route.phase1.fileSplitting preparing to shutdown complete. >>> > [16:12:07,251][DEBUG][Camel (context1) thread #18 - >>> > >>> ShutdownTask][org.apache.camel.impl.DefaultShutdownStrategy$ShutdownTask:run] >>> > Route: stock.route.phase1.fileValidation preparing to shutdown. >>> > [16:12:07,251][ INFO][Camel (context1) thread #18 - >>> > >>> ShutdownTask][org.apache.camel.impl.DefaultShutdownStrategy$ShutdownTask:run] >>> > Route: stock.route.phase1.fileValidation preparing to shutdown complete. >>> > [16:12:07,251][TRACE][Camel (context1) thread #18 >>> > >>> > With Maven, I have the following messages: >>> > [16:16:01,670][TRACE][Camel (context1) thread #19 - >>> > >>> ShutdownTask][org.apache.camel.impl.DefaultShutdownStrategy$ShutdownTask:run] >>> > Shutting down route: stock.route.phase1.fileValidation with options >>> > [Default,CompleteCurrentTaskOnly] >>> > [16:16:01,670][TRACE][Camel (context1) thread #19 - >>> > ShutdownTask][org.apache.camel.impl.DefaultShutdownStrategy:suspendNow] >>> > Suspending: Consumer[file://D:/tmp/integration] >>> > [16:16:01,670][TRACE][Camel (context1) thread #19 - >>> > ShutdownTask][org.apache.camel.util.ServiceHelper:suspendService] >>> Suspending >>> > service Consumer[file://D:/tmp/integration] >>> > [16:16:01,670][DEBUG][Camel (context1) thread #19 - >>> > ShutdownTask][org.apache.camel.impl.DefaultShutdownStrategy:suspendNow] >>> > Suspend complete for: Consumer[file://D:/tmp/integration] >>> > [16:16:01,670][ INFO][Camel (context1) thread #19 - >>> > >>> ShutdownTask][org.apache.camel.impl.DefaultShutdownStrategy$ShutdownTask:run] >>> > Route: stock.route.phase1.fileValidation suspended and shutdown >>> deferred, >>> > was consuming from: Endpoint[file://D:/tmp/integration] >>> > [16:16:01,670][DEBUG][Camel (context1) thread #19 - >>> > >>> ShutdownTask][org.apache.camel.impl.DefaultShutdownStrategy$ShutdownTask:run] >>> > 1 inflight and pending exchanges for consumer: >>> > Consumer[file://D:/tmp/integration] >>> > [16:16:01,670][ INFO][Camel (context1) thread #19 - >>> > >>> ShutdownTask][org.apache.camel.impl.DefaultShutdownStrategy$ShutdownTask:run] >>> > Waiting as there are still 1 inflight and pending exchanges to complete, >>> > timeout in 300 seconds. >>> > >>> > and this lasts for 300s, until the shutdown is forced.. >>> > >>> > The weird thing is that there should be only one exchange in this route, >>> and >>> > it was processed in other routes after this one... >>> > >>> > I don't know if it's related to the way tests are run with Maven, but is >>> > there anything I could add to get rid of the stuck inflight exchange ? >>> > >>> > Thank you in advance >>> > Regards, >>> > -- >>> > Xavier >>> > >>> >>> >>> >>> -- >>> Claus Ibsen >>> ----------------- >>> FuseSource >>> Email: cib...@fusesource.com >>> Web: http://fusesource.com >>> Twitter: davsclaus, fusenews >>> Blog: http://davsclaus.blogspot.com/ >>> Author of Camel in Action: http://www.manning.com/ibsen/ >>> >> >> >> >> -- >> Xavier >> > > > > -- > Xavier > -- Claus Ibsen ----------------- FuseSource Email: cib...@fusesource.com Web: http://fusesource.com Twitter: davsclaus, fusenews Blog: http://davsclaus.blogspot.com/ Author of Camel in Action: http://www.manning.com/ibsen/