Hi, I noticed a bug where the body (StreamCache) was already removed before the exchange reached the end (in the Wiretap route).
I found the following ticket https://issues.apache.org/jira/browse/CAMEL-8386 and code https://fisheye6.atlassian.com/changelog/camel-git?cs=4661cbb94513d6047e58581b23dcd4a6fad166f7 but I think it still doesn't fix the Wiretap problem. Here you can find my test (executed on 2.15.1). If you disable the StreamCaching or remove the delay it works, enabling it again will break the test. ============ import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.impl.DefaultStreamCachingStrategy; import org.apache.camel.spi.StreamCachingStrategy; import org.apache.camel.test.junit4.CamelTestSupport; import org.junit.Before; import org.junit.Test; public class WireTapTest extends CamelTestSupport { private MockEndpoint y; private MockEndpoint z; @Before public void prepareEndpoints() { y = getMockEndpoint("mock:file:y"); z = getMockEndpoint("mock:file:z"); } @Test public void testSendingAMessageUsingWiretapShouldNotDeleteStreamBeforeWiretappedExcangeIsComplete() throws InterruptedException { y.expectedMessageCount(1); z.expectedMessageCount(1); // test.txt should contain more than one character template.sendBody("direct:start", this.getClass().getResourceAsStream("/test.txt")); assertMockEndpointsSatisfied(); } @Override protected RouteBuilder createRouteBuilder() throws Exception { return new RouteBuilder() { @Override public void configure() throws Exception { StreamCachingStrategy streamCachingStrategy = new DefaultStreamCachingStrategy(); streamCachingStrategy.setSpoolThreshold(1); context.setStreamCachingStrategy(streamCachingStrategy); context.setStreamCaching(true); from("direct:start") .wireTap("direct:x") .to("file:y"); from("direct:x") .delay(2000) .to("file:z"); } }; } @Override public String isMockEndpoints() { return "(file:z|file:y)"; } } ============= If you run the test you can clearly see the temp file deletion followed by the closed stream exception: Tried 1 to delete file: /var/folders/db/brq60fqj4vb8mnx_5nlz36nw0000gn/T/camel/camel-tmp-00cd1ce2-7d44-47fe-b357-008e8146f770/cos8797132745923044996.tmp with result: true Cannot reset stream from file /var/folders/db/brq60fqj4vb8mnx_5nlz36nw0000gn/T/camel/camel-tmp-00cd1ce2-7d44-47fe-b357-008e8146f770/cos8797132745923044996.tmp I encountered the same issue during a more complex route that does some splitting (zip file) and multicasting. This occurred on Camel 2.14.1 so it could be fixed by https://issues.apache.org/jira/browse/CAMEL-8284 but I need to test this. Kind regards, Geert