[ 
https://issues.apache.org/jira/browse/SANDBOX-246?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12670744#action_12670744
 ] 

Stefan Bodewig commented on SANDBOX-246:
----------------------------------------

re-ran findbugs since some of the issues have been outdated.

In addition: 

ZipArchiveEntry clone may return null (this class doesn't exist in Ant)

TarInputStream and two methods in ZipFile ignore the result of 
InputStream.skip()

ArchiveStreamFactory createArchiveInputStream ignores result of InputStream 
read (not in Ant)

CpioArchiveEntry.setMode "forgets" to throw IllegalArgumentException (not in 
Ant)

redudant null check in CpioArchiveOutputStream.closeEntry (not in Ant)

JarArchiveEntry certificates and manifestattributes are never assigned to (not 
in Ant)

silly selfassignment of numToWrite in TarOutputStream write

JarArchivEntry returns pointer to private array (not in Ant) as does 
UnrecognizedExtraField

some static byte[] in ZipOutputStream could be abused by subclasses, not fixed 
in Ant because of backwards compatibility issues.  Not sure whether it should 
be fixed in compress, will discuss on list.

CpioArchiveOutputStream synchronization of crc is inconsistent (not in Ant)

dead store to c in BZip2CompressorOutputStream med3

oddness-check in BZip2CompressorOutputStream sendMTFValues may fail for 
negative numbers

The problems that have also been in Ant's codebase have been fixed there in svn 
revision 741089 and merged over to compress in svn revision 741092.

the additional problems in cpio, JarArchive and ArchiveStreamFactory  have been 
addressed in svn revision 741095.

will close this, once we know what to do with the remaining issues.

> Findbugs reports
> ----------------
>
>                 Key: SANDBOX-246
>                 URL: https://issues.apache.org/jira/browse/SANDBOX-246
>             Project: Commons Sandbox
>          Issue Type: Bug
>          Components: Compress
>            Reporter: Sebb
>            Assignee: Stefan Bodewig
>
> TarEntry defines equals(TarEntry) method which does not override 
> Object.equals() - is this intended?
> If so, maybe the method should be called something different such as isSame() 
> to avoid confusion.
> BZip2Compressor and ZipArchive return a pointer to a private byte array, thus 
> allowing external code to modfy the contents of the final array.
> They should return a copy.
> BZip2OutputStream line 1302:   m_block[ m_zptr[ ( lo + hi ) >> 1 ] + d + 1 ] 
> );
> Findbugs says:
> {quote}
> The code computes the average of two integers using either division or signed 
> right shift, and then uses the result as the index of an array. If the values 
> being averaged are very large, this can overflow (resulting in the 
> computation of a negative average). Assuming that the result is intended to 
> be nonnegative, you can use an unsigned right shift instead. In other words, 
> rather that using (low+high)/2, use (low+high) >>> 1 
> {quote}
> TarArchive line 74 may fail to close zInputStream
> The classes ZipShort, ZipLong and AsiExtraField implement Cloneable but do 
> not define or use the clone method.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to