You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (Jira)" <ji...@apache.org> on 2023/11/09 12:04:00 UTC
[jira] [Updated] (CAMEL-20090) camel-zipfile - Stream close while unzipping
[ https://issues.apache.org/jira/browse/CAMEL-20090?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Claus Ibsen updated CAMEL-20090:
--------------------------------
Summary: camel-zipfile - Stream close while unzipping (was: Stream close while unzipping)
> 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)