Bas Claessen created CAMEL-12108:
------------------------------------
Summary: StreamCache file is removed before wireTap ends in a
splitter wireTap combination route
Key: CAMEL-12108
URL: https://issues.apache.org/jira/browse/CAMEL-12108
Project: Camel
Issue Type: Bug
Components: camel-core
Affects Versions: 2.20.1
Reporter: Bas Claessen
Priority: Minor
Attachments: TestSplitWireTap.zip
When combining the splitter and wireTap functionality an
org.apache.camel.RuntimeCamelException (Cannot reset stream from file) will be
thrown when:
1. a spooled StreamCache body is created in the wireTap route
2. the splitter route ends before the wireTap route
The splitter will create an Exchange.STREAM_CACHE_UNIT_OF_WORK property to hold
the StreamCaches that will be created by the children of the splitter.
When doing a wireTap in the splitter route, the property will be copied to the
wireTap route (when using the wireTap defaults).
StreamCaches created in the wireTap route will now be added to the property as
well and will be closed when the splitter route ends.
A possible workaround can be to create the wireTap route without copying the
original exchange.
However I think it is better to remove the Exchange.STREAM_CACHE_UNIT_OF_WORK
property in the org.apache.camel.processor.WireTapProcessor configureExchange
method.
I attached a maven project with a test to demonstrate the issue.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)