Author: bodewig Date: Sun Aug 7 07:56:19 2011 New Revision: 1154667 URL: http://svn.apache.org/viewvc?rev=1154667&view=rev Log: address most issues detected by findbugs
Added: commons/proper/compress/trunk/findbugs-exclude-filter.xml (with props) Modified: commons/proper/compress/trunk/pom.xml commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/jar/JarArchiveEntry.java commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/AbstractUnicodeExtraField.java commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/Simple8BitZipEncoding.java commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveOutputStream.java commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipEightByteInteger.java Added: commons/proper/compress/trunk/findbugs-exclude-filter.xml URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/findbugs-exclude-filter.xml?rev=1154667&view=auto ============================================================================== --- commons/proper/compress/trunk/findbugs-exclude-filter.xml (added) +++ commons/proper/compress/trunk/findbugs-exclude-filter.xml Sun Aug 7 07:56:19 2011 @@ -0,0 +1,65 @@ +<?xml version="1.0"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<!-- + This file contains some false positive bugs detected by findbugs. Their + false positive nature has been analyzed individually and they have been + put here to instruct findbugs it must ignore them. +--> +<FindBugsFilter> + + <!-- Reason: References to System.out/err == --> + <Match> + <Class name="org.apache.commons.compress.archivers.Lister" /> + <Or> + <Method name="main" /> + <Method name="usage" /> + </Or> + <Bug pattern="NP_ALWAYS_NULL" /> + </Match> + <Match> + <Class name="org.apache.commons.compress.archivers.zip.ZipFile" /> + <Method name="finalize" /> + <Bug pattern="NP_ALWAYS_NULL" /> + </Match> + + <!-- Reason: fallthrough is intended --> + <Match> + <Class name="org.apache.commons.compress.archivers.zip.ExtraFieldUtils" /> + <Method name="parse" /> + <Bug pattern="SF_SWITCH_FALLTHROUGH" /> + </Match> + + <!-- Reason: fields unused as documented --> + <Match> + <Class name="org.apache.commons.compress.archivers.jar.JarArchiveEntry" /> + <Or> + <Field name="certificates"/> + <Field name="manifestAttributes"/> + </Or> + <Bug pattern="UWF_NULL_FIELD" /> + </Match> + + <!-- Reason: exception in close swallowed in order to re-throw original --> + <Match> + <Class name="org.apache.commons.compress.archivers.zip.ZipFile" /> + <Method name="<init>" /> + <Bug pattern="DE_MIGHT_IGNORE" /> + </Match> + +</FindBugsFilter> Propchange: commons/proper/compress/trunk/findbugs-exclude-filter.xml ------------------------------------------------------------------------------ svn:eol-style = native Modified: commons/proper/compress/trunk/pom.xml URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/pom.xml?rev=1154667&r1=1154666&r2=1154667&view=diff ============================================================================== --- commons/proper/compress/trunk/pom.xml (original) +++ commons/proper/compress/trunk/pom.xml Sun Aug 7 07:56:19 2011 @@ -244,7 +244,7 @@ <configuration> <threshold>Normal</threshold> <effort>Default</effort> - <!--excludeFilterFile>${basedir}/findbugs-exclude-filter.xml</excludeFilterFile--> + <excludeFilterFile>${basedir}/findbugs-exclude-filter.xml</excludeFilterFile> </configuration> </plugin> </plugins> Modified: commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/jar/JarArchiveEntry.java URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/jar/JarArchiveEntry.java?rev=1154667&r1=1154666&r2=1154667&view=diff ============================================================================== --- commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/jar/JarArchiveEntry.java (original) +++ commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/jar/JarArchiveEntry.java Sun Aug 7 07:56:19 2011 @@ -66,4 +66,13 @@ public class JarArchiveEntry extends Zip return null; } + @Override + public boolean equals(Object o) { + return super.equals(o); + } + + @Override + public int hashCode() { + return super.hashCode(); + } } Modified: commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/AbstractUnicodeExtraField.java URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/AbstractUnicodeExtraField.java?rev=1154667&r1=1154666&r2=1154667&view=diff ============================================================================== --- commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/AbstractUnicodeExtraField.java (original) +++ commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/AbstractUnicodeExtraField.java Sun Aug 7 07:56:19 2011 @@ -103,14 +103,25 @@ public abstract class AbstractUnicodeExt * @return The utf-8 encoded name. */ public byte[] getUnicodeName() { - return unicodeName; + byte[] b = null; + if (unicodeName != null) { + b = new byte[unicodeName.length]; + System.arraycopy(unicodeName, 0, b, 0, b.length); + } + return b; } /** * @param unicodeName The utf-8 encoded name to set. */ public void setUnicodeName(byte[] unicodeName) { - this.unicodeName = unicodeName; + if (unicodeName != null) { + this.unicodeName = new byte[unicodeName.length]; + System.arraycopy(unicodeName, 0, this.unicodeName, 0, + unicodeName.length); + } else { + this.unicodeName = null; + } data = null; } @@ -119,7 +130,12 @@ public abstract class AbstractUnicodeExt if (data == null) { this.assembleData(); } - return data; + byte[] b = null; + if (data != null) { + b = new byte[data.length]; + System.arraycopy(data, 0, b, 0, b.length); + } + return b; } /** {@inheritDoc} */ Modified: commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/Simple8BitZipEncoding.java URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/Simple8BitZipEncoding.java?rev=1154667&r1=1154666&r2=1154667&view=diff ============================================================================== --- commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/Simple8BitZipEncoding.java (original) +++ commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/Simple8BitZipEncoding.java Sun Aug 7 07:56:19 2011 @@ -63,10 +63,25 @@ class Simple8BitZipEncoding implements Z return this.unicode - a.unicode; } + @Override public String toString() { return "0x" + Integer.toHexString(0xffff & unicode) + "->0x" + Integer.toHexString(0xff & code); } + + @Override + public boolean equals(Object o) { + if (o instanceof Simple8BitChar) { + Simple8BitChar other = (Simple8BitChar) o; + return unicode == other.unicode && code == other.code; + } + return false; + } + + @Override + public int hashCode() { + return unicode; + } } /** Modified: commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveOutputStream.java URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveOutputStream.java?rev=1154667&r1=1154666&r2=1154667&view=diff ============================================================================== --- commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveOutputStream.java (original) +++ commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveOutputStream.java Sun Aug 7 07:56:19 2011 @@ -297,7 +297,9 @@ public class ZipArchiveOutputStream exte public void setEncoding(final String encoding) { this.encoding = encoding; this.zipEncoding = ZipEncodingHelper.getZipEncoding(encoding); - useUTF8Flag &= ZipEncodingHelper.isUTF8(encoding); + if (useUTF8Flag && !ZipEncodingHelper.isUTF8(encoding)) { + useUTF8Flag = false; + } } /** @@ -463,7 +465,9 @@ public class ZipArchiveOutputStream exte // * reset hasUsedZip64 if it has been set because // of this entry - hasUsedZip64 &= !entry.causedUseOfZip64; + if (entry.causedUseOfZip64) { + hasUsedZip64 = false; + } } } raf.seek(save); Modified: commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipEightByteInteger.java URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipEightByteInteger.java?rev=1154667&r1=1154666&r2=1154667&view=diff ============================================================================== --- commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipEightByteInteger.java (original) +++ commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipEightByteInteger.java Sun Aug 7 07:56:19 2011 @@ -63,7 +63,7 @@ public final class ZipEightByteInteger { private final BigInteger value; - public static ZipEightByteInteger ZERO = new ZipEightByteInteger(0); + public static final ZipEightByteInteger ZERO = new ZipEightByteInteger(0); /** * Create instance from a number.