Hey ! A new option is available for the stream:file to close it when done (closeOnDone). This option is appeared in 2.11 after my jira ( https://issues.apache.org/jira/browse/CAMEL-6147)
File unlock (or released or closed) looks to doesn't works fine if last line is not passed to the endpoint Example : We have a CSV with X line. We want to write a part of it in a file out_1.csv and a second part in a file out_2.csv according to a business rule, in my example the rule is after two lines readed. An example is : from("file://C:/Temp/camel/rep1/?noop=true") .log("start process file => ${file:name}") .split() .tokenize("\n") .streaming() .process(new Processor() { public void process(Exchange exchange) throws Exception { // After 2 lines, next lines are rejected via an exchange property i++ ; if( i > 2) { exchange.setProperty("FILE_1", true ); } else { exchange.setProperty("FILE_1", false); } } }) .choice() .when(property("FILE_1").isEqualTo(Boolean.TRUE)) .to("stream:file?fileName=C:/Temp/camel/rep1/out/out_1.csv&closeOnDone=true") .when(property("FILE_2").isEqualTo(Boolean.TRUE)) .to("stream:file?fileName=C:/Temp/camel/rep1/out/out_2.csv&closeOnDone=true") .end() .end() .log("end process file => ${file:name}") .end() ; It create two files, and out_1.csv is still locked. Should I update the jira or open a new ? Thanks Jeff