Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Not A Problem
-
2.14.1
-
None
-
None
-
Unknown
Description
Here is sample test which reproduces the problem:
route.from("direct:foo") .split().tokenize("\n").streaming() .choice() .when(body().isEqualTo(9)) .stop() .otherwise() .to("stream:file?fileName=streaming.txt&closeOnDone=true") .endChoice(); @Produce(uri = "direct:foo") protected ProducerTemplate template; StringBuilder builder = new StringBuilder(); for(int i = 0; i < 10; i++) { builder.append(i); builder.append("\n"); } template.sendBody(builder.toString()); File file = new File("streaming.txt"); boolean exists = file.exists(); boolean deleted = file.delete();
After running sample test 'deleted' will be false and file is present on file system, which indicates that the file stream was not closed.
If I modify condition in the route so that no exchanges get skipped (or if I skip any exchange except the last one) then file is successfully deleted.