Bohdan Zhezlo created CAMEL-9152:
------------------------------------
Summary: Camel streaming component doesn't close a stream when
last exchange is not passed to the endpoint
Key: CAMEL-9152
URL: https://issues.apache.org/jira/browse/CAMEL-9152
Project: Camel
Issue Type: Bug
Components: camel-stream
Affects Versions: 2.14.1
Reporter: Bohdan Zhezlo
Here is sample test which reproduces the problem:
{code:java}
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();
{code}
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.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)