[ https://issues.apache.org/jira/browse/CAMEL-20090?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Claus Ibsen resolved CAMEL-20090. --------------------------------- Resolution: Cannot Reproduce > camel-zipfile - Stream close while unzipping > -------------------------------------------- > > Key: CAMEL-20090 > URL: https://issues.apache.org/jira/browse/CAMEL-20090 > Project: Camel > Issue Type: Bug > Components: camel-zipfile > Affects Versions: 3.20.8 > Reporter: Raymond > Priority: Minor > > As discussed on the mailing list: > [https://lists.apache.org/thread/gkzpjsrdxwrc2jsh82vp92dzdlympjtf] > Sometimes when unzipping a zip file I get an error: > {code:java} > org.apache.camel.StreamCacheException: Error during type conversion > from type: org.apache.camel.dataformat.zipfile.ZipInputStreamWrapper > to the required type: org.apache.camel.StreamCache with value > org.apache.camel.dataformat.zipfile.ZipInputStreamWrapper@10538c67 > due to org.apache.camel.TypeConversionException: Error during type > conversion from type: > org.apache.camel.dataformat.zipfile.ZipInputStreamWrapper > to the required type: org.apache.camel.StreamCache with value > org.apache.camel.dataformat.zipfile.ZipInputStreamWrapper@10538c67 due > to java.io.IOException: Stream closed {code} > I don't know how far this is related to other issue with ZipFile: > https://issues.apache.org/jira/browse/CAMEL-19849 > The strange thing is that is seems to work in some environments and fails in > others. > I tested it with Camel 3.20.8 / JDK > For example: > 1. Local (build from source / Windows 11) --> Works > 2. Local (Docker image / Docker Desktop) --> Works > 3. Local (build from source / MacOS) --> Works > 4. AWS (Docker image running on Ubuntu) --> Fails > I tried to copy the source of ZipFile to my own program to get some more > information, but it seems that the error is more related to the Camel Support > module. Nevertheless I got some more logging out of it. > My route: > {code:java} > <route id="zip"> > <from uri="direct:zip_in"/> > <unmarshal> > <zipFile usingIterator="true"/> > </unmarshal> > <split streaming="true"> > <simple>${body}</simple> > <to uri="zip_out"/> > </split> > </route> {code} > The log: > {code:java} > 2023-11-07 17:41:41.400 ERROR 1 --- [p1242793343-101] > o.a.d.b.e.ID_6537e1053fad4b0013000109 : Failed delivery for (MessageId: > A531BE75947BFB1-000000000000037D on ExchangeId: > A531BE75947BFB1-000000000000037D). Exhausted after delivery attempt: 1 > caught: org.apache.camel.StreamCacheException: Error during type conversion > from type: org.assimbly.archive.ZipInputStreamWrapper to the required type: > org.apache.camel.StreamCache with value > org.assimbly.archive.ZipInputStreamWrapper@3e6184af due to > org.apache.camel.TypeConversionException: Error during type conversion from > type: org.assimbly.archive.ZipInputStreamWrapper to the required type: > org.apache.camel.StreamCache withvalue > org.assimbly.archive.ZipInputStreamWrapper@3e6184af due to > java.io.IOException: Stream closed. Processed by failure processor: > FatalFallbackErrorHandler[Channel[setExchangePattern76]]Message History > --------------------------------------------------------------------------------------------------------------------------------------- > Source ID > Processor Elapsed (ms) > xml:2 ID_6537e1053fad4b0013000109-6d > from[direct-vm://ID_654a65bc741e4f00070007da_test_ 40341190 > xml:8 ID_6537e1053fad4b0013000109-6d > direct-vm:ID_654a65bc741e4f00070007da_test_6df7e1e 0 > xml:5 onException138/setExchangePatt > setExchangePattern[InOnly] 0Exchange > --------------------------------------------------------------------------------------------------------------------------------------- > Exchange[ > Id A531BE75947BFB1-000000000000037D > Headers {Accept=*/*, > breadcrumbId=A531BE75947BFB1-000000000000037B, CamelFileName=enrich3.txt, > CamelRedelivered=false, CamelRedeliveryCounter=0, > CamelServletContextPath=/regressiontests/ArchiveUnpack, Connection=close, > Content-Length=1070, Content-Type=application/zip, Host=assimbly-test:9001, > User-Agent=curl/7.84.0, zipFileName=enrich3.txt} > BodyType org.assimbly.archive.ZipInputStreamWrapper > Body [Body is instance of java.io.InputStream] > ]Stacktrace > ---------------------------------------------------------------------------------------------------------------------------------------org.apache.camel.StreamCacheException: > Error during type conversion from type: > org.assimbly.archive.ZipInputStreamWrapper to the required type: > org.apache.camel.StreamCache with value > org.assimbly.archive.ZipInputStreamWrapper@3e6184af due to > org.apache.camel.TypeConversionException: Error during type conversion from > type: org.assimbly.archive.ZipInputStreamWrapper to the required type: > org.apache.camel.StreamCache with value > org.assimbly.archive.ZipInputStreamWrapper@3e6184af due to > java.io.IOException:Stream closed > at > org.apache.camel.impl.engine.CamelInternalProcessor$StreamCachingAdvice.before(CamelInternalProcessor.java:936) > at > org.apache.camel.impl.engine.CamelInternalProcessor$StreamCachingAdvice.before(CamelInternalProcessor.java:887) > at > org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:335) > at > org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.doRun(RedeliveryErrorHandler.java:829) > at > org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.run(RedeliveryErrorHandler.java:737) > at > org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:181) > at > org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:59) > at org.apache.camel.processor.Pipeline.process(Pipeline.java:165) > at > org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:392) > at > org.apache.camel.component.jetty.CamelContinuationServlet.doService(CamelContinuationServlet.java:245) > at > org.apache.camel.http.common.CamelServlet.service(CamelServlet.java:130) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:590) > at > org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799) > at > org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1656) > at > org.apache.camel.component.jetty.MultiPartFilter.doFilter(MultiPartFilter.java:50) > at > org.apache.camel.component.jetty.CamelFilterWrapper.doFilter(CamelFilterWrapper.java:49) > at > org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) > at > org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626) > at > org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:552) > at > org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) > at > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440) > at > org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) > at > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505) > at > org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) > at > org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355) > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) > at > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) > at org.eclipse.jetty.server.Server.handle(Server.java:516) > at > org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487) > at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732) > at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479) > at > org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277) > at > org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) > at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) > at > org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:555) > at > org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:410) > at > org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:164) > at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) > at > org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) > at > org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338) > at > org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315) > at > org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173) > at > org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131) > at > org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409) > at > org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883) > at > org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034) > at java.base/java.lang.Thread.run(Thread.java:829) > Caused by: org.apache.camel.TypeConversionException: Error during type > conversion from type: org.assimbly.archive.ZipInputStreamWrapper to the > required type: org.apache.camel.StreamCache with value > org.assimbly.archive.ZipInputStreamWrapper@3e6184af due to > java.io.IOException: Stream closed > at > org.apache.camel.converter.stream.StreamCacheBulkConverterLoader.convertTo(StreamCacheBulkConverterLoader.java:60) > at > org.apache.camel.impl.converter.CoreTypeConverterRegistry.doConvertTo(CoreTypeConverterRegistry.java:462) > at > org.apache.camel.impl.converter.CoreTypeConverterRegistry.doConvertTo(CoreTypeConverterRegistry.java:358) > at > org.apache.camel.impl.converter.CoreTypeConverterRegistry.convertTo(CoreTypeConverterRegistry.java:202) > at > org.apache.camel.impl.engine.DefaultStreamCachingStrategy.cache(DefaultStreamCachingStrategy.java:222) > at > org.apache.camel.impl.engine.CamelInternalProcessor$StreamCachingAdvice.before(CamelInternalProcessor.java:929) > ... 46 common frames omitted > Caused by: java.io.IOException: Stream closed > at > java.base/java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:176) > at > java.base/java.io.BufferedInputStream.read(BufferedInputStream.java:342) > at > java.base/java.io.FilterInputStream.read(FilterInputStream.java:107) > at org.apache.camel.util.IOHelper.copy(IOHelper.java:193) > at org.apache.camel.util.IOHelper.copy(IOHelper.java:161) > at org.apache.camel.util.IOHelper.copy(IOHelper.java:156) > at org.apache.camel.util.IOHelper.copyAndCloseInput(IOHelper.java:229) > at org.apache.camel.util.IOHelper.copyAndCloseInput(IOHelper.java:225) > at > org.apache.camel.converter.stream.StreamCacheConverter.convertToStreamCache(StreamCacheConverter.java:54) > at > org.apache.camel.converter.stream.StreamCacheBulkConverterLoader.doConvertTo(StreamCacheBulkConverterLoader.java:78) > at > org.apache.camel.converter.stream.StreamCacheBulkConverterLoader.convertTo(StreamCacheBulkConverterLoader.java:51) > ... 51 common frames omitted2023-11-07 17:41:41.411 WARN 1 --- [ > dispatcher 447] org.elasticsearch.client.RestClient : request [POST > http://flux-es-test:9200/logs/_doc] returned 1 warnings: [299 > Elasticsearch-7.17.3-5ad023604c8d7416c9eb6c0eadb62b14e766caff "Elasticsearch > built-in security features are not enabled. Without authentication, your > cluster could beaccessible to anyone. See > https://www.elastic.co/guide/en/elasticsearch/reference/7.17/security-minimal-setup.html > to enable security."] > 2023-11-07 17:41:41.420 WARN 1 --- [ dispatcher 451] > org.elasticsearch.client.RestClient : request [POST > http://flux-es-test:9200/transactions/_doc] returned 1 warnings: [299 > Elasticsearch-7.17.3-5ad023604c8d7416c9eb6c0eadb62b14e766caff "Elasticsearch > built-in security features are not enabled. Without authentication, your > cluster could be accessible to anyone. See > https://www.elastic.co/guide/en/elasticsearch/reference/7.17/security-minimal-setup.html > to enable security."] > 2023-11-07 17:41:41.421 ERROR 1 --- [p1242793343-101] > o.a.d.b.e.ID_6537e1053fad4b0013000109 : Failed delivery for (MessageId: > A531BE75947BFB1-000000000000037E on ExchangeId: > A531BE75947BFB1-000000000000037E). Exhausted after delivery attempt: 1 > caught: org.apache.camel.StreamCacheException: Error during type conversion > from type: org.assimbly.archive.ZipInputStreamWrapper to the required type: > org.apache.camel.StreamCache with value > org.assimbly.archive.ZipInputStreamWrapper@40da9800 due to > org.apache.camel.TypeConversionException: Error during type conversion from > type: org.assimbly.archive.ZipInputStreamWrapper to the required type: > org.apache.camel.StreamCache withvalue > org.assimbly.archive.ZipInputStreamWrapper@40da9800 due to > java.io.IOException: Stream closed. Processed by failure processor: > FatalFallbackErrorHandler[Channel[setExchangePattern76]]Message History > --------------------------------------------------------------------------------------------------------------------------------------- > Source ID > Processor Elapsed (ms) > xml:2 ID_6537e1053fad4b0013000109-6d > from[direct-vm://ID_654a65bc741e4f00070007da_test_ 40341210 > xml:8 ID_6537e1053fad4b0013000109-6d > direct-vm:ID_654a65bc741e4f00070007da_test_6df7e1e 0 > xml:5 onException138/setExchangePatt > setExchangePattern[InOnly] 0Exchange > --------------------------------------------------------------------------------------------------------------------------------------- > Exchange[ > Id A531BE75947BFB1-000000000000037E > Headers {Accept=*/*, > breadcrumbId=A531BE75947BFB1-000000000000037B, CamelFileName=enrich2.txt, > CamelRedelivered=false, CamelRedeliveryCounter=0, > CamelServletContextPath=/regressiontests/ArchiveUnpack, Connection=close, > Content-Length=1070, Content-Type=application/zip, Host=assimbly-test:9001, > User-Agent=curl/7.84.0, zipFileName=enrich2.txt} > BodyType org.assimbly.archive.ZipInputStreamWrapper > Body [Body is instance of java.io.InputStream] > ]Stacktrace > ---------------------------------------------------------------------------------------------------------------------------------------org.apache.camel.StreamCacheException: > Error during type conversion from type: > org.assimbly.archive.ZipInputStreamWrapper to the required type: > org.apache.camel.StreamCache with value > org.assimbly.archive.ZipInputStreamWrapper@40da9800 due to > org.apache.camel.TypeConversionException: Error during type conversion from > type: org.assimbly.archive.ZipInputStreamWrapper to the required type: > org.apache.camel.StreamCache with value > org.assimbly.archive.ZipInputStreamWrapper@40da9800 due to > java.io.IOException:Stream closed > at > org.apache.camel.impl.engine.CamelInternalProcessor$StreamCachingAdvice.before(CamelInternalProcessor.java:936) > at > org.apache.camel.impl.engine.CamelInternalProcessor$StreamCachingAdvice.before(CamelInternalProcessor.java:887) > at > org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:335) > at > org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.doRun(RedeliveryErrorHandler.java:829) > at > org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.run(RedeliveryErrorHandler.java:737) > at > org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:181) > at > org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:59) > at org.apache.camel.processor.Pipeline.process(Pipeline.java:165) > at > org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:392) > at > org.apache.camel.component.jetty.CamelContinuationServlet.doService(CamelContinuationServlet.java:245) > at > org.apache.camel.http.common.CamelServlet.service(CamelServlet.java:130) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:590) > at > org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799) > at > org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1656) > at > org.apache.camel.component.jetty.MultiPartFilter.doFilter(MultiPartFilter.java:50) > at > org.apache.camel.component.jetty.CamelFilterWrapper.doFilter(CamelFilterWrapper.java:49) > at > org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) > at > org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626) > at > org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:552) > at > org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) > at > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440) > at > org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) > at > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505) > at > org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) > at > org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355) > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) > at > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) > at org.eclipse.jetty.server.Server.handle(Server.java:516) > at > org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487) > at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732) > at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479) > at > org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277) > at > org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) > at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) > at > org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:555) > at > org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:410) > at > org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:164) > at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) > at > org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) > at > org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338) > at > org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315) > at > org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173) > at > org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131) > at > org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409) > at > org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883) > at > org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034) > at java.base/java.lang.Thread.run(Thread.java:829) > Caused by: org.apache.camel.TypeConversionException: Error during type > conversion from type: org.assimbly.archive.ZipInputStreamWrapper to the > required type: org.apache.camel.StreamCache with value > org.assimbly.archive.ZipInputStreamWrapper@40da9800 due to > java.io.IOException: Stream closed > at > org.apache.camel.converter.stream.StreamCacheBulkConverterLoader.convertTo(StreamCacheBulkConverterLoader.java:60) > at > org.apache.camel.impl.converter.CoreTypeConverterRegistry.doConvertTo(CoreTypeConverterRegistry.java:462) > at > org.apache.camel.impl.converter.CoreTypeConverterRegistry.doConvertTo(CoreTypeConverterRegistry.java:358) > at > org.apache.camel.impl.converter.CoreTypeConverterRegistry.convertTo(CoreTypeConverterRegistry.java:202) > at > org.apache.camel.impl.engine.DefaultStreamCachingStrategy.cache(DefaultStreamCachingStrategy.java:222) > at > org.apache.camel.impl.engine.CamelInternalProcessor$StreamCachingAdvice.before(CamelInternalProcessor.java:929) > ... 46 common frames omitted > Caused by: java.io.IOException: Stream closed > at > java.base/java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:176) > at > java.base/java.io.BufferedInputStream.read(BufferedInputStream.java:342) > at > java.base/java.io.FilterInputStream.read(FilterInputStream.java:107) > at org.apache.camel.util.IOHelper.copy(IOHelper.java:193) > at org.apache.camel.util.IOHelper.copy(IOHelper.java:161) > at org.apache.camel.util.IOHelper.copy(IOHelper.java:156) > at org.apache.camel.util.IOHelper.copyAndCloseInput(IOHelper.java:229) > at org.apache.camel.util.IOHelper.copyAndCloseInput(IOHelper.java:225) > at > org.apache.camel.converter.stream.StreamCacheConverter.convertToStreamCache(StreamCacheConverter.java:54) > at > org.apache.camel.converter.stream.StreamCacheBulkConverterLoader.doConvertTo(StreamCacheBulkConverterLoader.java:78) > at > org.apache.camel.converter.stream.StreamCacheBulkConverterLoader.convertTo(StreamCacheBulkConverterLoader.java:51) > {code} > If you need more input or testing let me know. > -- This message was sent by Atlassian Jira (v8.20.10#820010)