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)

Reply via email to