[ 
https://issues.apache.org/jira/browse/SLING-6250?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15825874#comment-15825874
 ] 

Tommaso Teofili commented on SLING-6250:
----------------------------------------

the _stream.reset()_ call was set there to make 
{{LocalDistributionPackageImporter}} work together with 
{{AsyncDeliveryDispatchingStrategy}}, because there the same importer is used 
for both storing a reference package and the referenced (actual) package.
I have put a _TODO_ as I think that reset should be avoided at all if possible, 
but that's not needed in most of the cases (async dispatching is not used by 
default) anyway.
So I was thinking to fix the issue here (throwing a RE is probably too much 
anyway) and open a new one for improving the way headers are read in sync and 
async cases.

> Importing packages with large headers fails
> -------------------------------------------
>
>                 Key: SLING-6250
>                 URL: https://issues.apache.org/jira/browse/SLING-6250
>             Project: Sling
>          Issue Type: Bug
>          Components: Distribution
>    Affects Versions: Content Distribution Core 0.1.18
>            Reporter: Julian Sedding
>            Assignee: Tommaso Teofili
>         Attachments: SLING-6250-testcase.patch
>
>
> When importing packages with large headers, e.g. packages containing many 
> paths, the following exception is thrown:
> {noformat}
> java.lang.RuntimeException: java.io.IOException: Resetting to invalid mark
>       at java.io.BufferedInputStream.reset(BufferedInputStream.java:448)
>       at 
> org.apache.sling.distribution.packaging.impl.importer.LocalDistributionPackageImporter.importStream(LocalDistributionPackageImporter.java:122)
>       at 
> org.apache.sling.distribution.packaging.impl.importer.LocalDistributionPackageImporterTest.importPackageWithLargeHeader(LocalDistributionPackageImporterTest.java:100)
> {noformat}
> This happens when the header is larger than the default buffer size of the 
> {{BufferedInputStream}} and thus its {{#mark()}} is lost and {{#reset()}} 
> cannot happen anymore.
> I will investigate, whether we can stop relying on marked input streams. This 
> would be desirable, because we cannot know in advance how long the header is.
> cc [~teofili]



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to