commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Darabos (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (COMPRESS-174) BZip2CompressorInputStream doesn't handle being given a wrong-format compressed file
Date Fri, 18 Apr 2014 13:33:26 GMT

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

Daniel Darabos commented on COMPRESS-174:
-----------------------------------------

I get the same stack trace, but I'm not entirely sure it is the same issue. I'm still getting
ArrayIndexOutOfBoundsException after using CompressorStreamFactory, so I think my file is
in fact BZ2 compressed, just corrupted. Unfortunately it's one file out of a thousand in a
distributed system. I'll report back when I've narrowed down the problem. I'm using commons-compress-1.8,
so I'll also try with 1.9 or trunk. Thanks!

> BZip2CompressorInputStream doesn't handle being given a wrong-format compressed file
> ------------------------------------------------------------------------------------
>
>                 Key: COMPRESS-174
>                 URL: https://issues.apache.org/jira/browse/COMPRESS-174
>             Project: Commons Compress
>          Issue Type: Bug
>          Components: Compressors
>    Affects Versions: 1.3
>         Environment: Linux and Windows
>            Reporter: Andrew Pavlin
>            Priority: Minor
>             Fix For: 1.9
>
>
> When reading a file through BZip2CompressorInputStream, and the user selects a file of
the wrong type (such as ZIP or GZIP), the read blows up with a strange ArrayIndexOutOfBoundException,
instead of reporting immediately that the input data is of the wrong format.
> The Bzip2Compressor should be able to identify whether a stream is of BZip2 format or
not, and immediately reject it with a meaningful exception (example: "ProtocolException: not
a BZip2 compressed file").
> Alternatively, are there functions in commons-compress that can identify the compression
type of an InputStream by inspection?
> Example stack trace when using a ZIP input file:
> Exception in thread "OSM Decompressor" java.lang.ArrayIndexOutOfBoundsException: 900000

>         at org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream.getAndMoveToFrontDecode(BZip2CompressorInputStream.java:688)

>         at org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream.initBlock(BZip2CompressorInputStream.java:322)

>         at org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream.setupNoRandPartA(BZip2CompressorInputStream.java:880)

>         at org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream.setupNoRandPartB(BZip2CompressorInputStream.java:936)

>         at org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream.read0(BZip2CompressorInputStream.java:228)

>         at org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream.read(BZip2CompressorInputStream.java:180)

>         at java.io.InputStream.read(InputStream.java:82) 
>         at org.ka2ddo.yaac.osm.OsmXmlSegmenter$1.run(OsmXmlSegmenter.java:129) 
>         at java.lang.Thread.run(Thread.java:680) 
>  



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message