You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2021/06/13 12:23:16 UTC

[commons-compress] branch pack200 updated (b1bfa29 -> e251aa5)

This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a change to branch pack200
in repository https://gitbox.apache.org/repos/asf/commons-compress.git.


    from b1bfa29  Javadoc fixes, minimal Javadoc, and Jaavdoc TODOs.
     new 87d322a  Code clean ups.
     new e251aa5  Format.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../harmony/archive/internal/nls/Messages.java     |  160 ++-
 .../commons/compress/harmony/pack200/Archive.java  |   97 +-
 .../harmony/pack200/AttributeDefinitionBands.java  |  139 +--
 .../compress/harmony/pack200/BHSDCodec.java        |  222 ++--
 .../commons/compress/harmony/pack200/BandSet.java  |  492 +++++----
 .../commons/compress/harmony/pack200/BcBands.java  |  299 +++---
 .../commons/compress/harmony/pack200/CPClass.java  |   12 +-
 .../compress/harmony/pack200/CPConstant.java       |    6 +-
 .../commons/compress/harmony/pack200/CPDouble.java |    7 +-
 .../commons/compress/harmony/pack200/CPFloat.java  |    7 +-
 .../commons/compress/harmony/pack200/CPInt.java    |   13 +-
 .../commons/compress/harmony/pack200/CPLong.java   |   14 +-
 .../compress/harmony/pack200/CPMethodOrField.java  |   17 +-
 .../compress/harmony/pack200/CPNameAndType.java    |   15 +-
 .../compress/harmony/pack200/CPSignature.java      |   25 +-
 .../commons/compress/harmony/pack200/CPString.java |    8 +-
 .../commons/compress/harmony/pack200/CPUTF8.java   |    8 +-
 .../harmony/pack200/CanonicalCodecFamilies.java    |   61 +-
 .../compress/harmony/pack200/ClassBands.java       | 1126 +++++++++-----------
 .../commons/compress/harmony/pack200/Codec.java    |  167 ++-
 .../compress/harmony/pack200/CodecEncoding.java    |  345 +++---
 .../harmony/pack200/ConstantPoolEntry.java         |    2 +-
 .../commons/compress/harmony/pack200/CpBands.java  |  419 ++++----
 .../compress/harmony/pack200/FileBands.java        |   78 +-
 .../commons/compress/harmony/pack200/IcBands.java  |  112 +-
 .../commons/compress/harmony/pack200/IntList.java  |  120 +--
 .../harmony/pack200/MetadataBandGroup.java         |  324 +++---
 .../compress/harmony/pack200/NewAttribute.java     |   75 +-
 .../harmony/pack200/NewAttributeBands.java         |  451 ++++----
 .../compress/harmony/pack200/Pack200Adapter.java   |   46 +-
 .../harmony/pack200/Pack200ClassReader.java        |   29 +-
 .../compress/harmony/pack200/Pack200Exception.java |    5 +-
 .../harmony/pack200/Pack200PackerAdapter.java      |   69 +-
 .../compress/harmony/pack200/PackingOptions.java   |  187 ++--
 .../compress/harmony/pack200/PackingUtils.java     |  125 +--
 .../compress/harmony/pack200/PopulationCodec.java  |   62 +-
 .../commons/compress/harmony/pack200/RunCodec.java |   72 +-
 .../commons/compress/harmony/pack200/Segment.java  |  455 ++++----
 .../compress/harmony/pack200/SegmentHeader.java    |   87 +-
 .../compress/harmony/unpack200/Archive.java        |   81 +-
 .../harmony/unpack200/AttrDefinitionBands.java     |   34 +-
 .../harmony/unpack200/AttributeLayout.java         |   92 +-
 .../harmony/unpack200/AttributeLayoutMap.java      |  301 ++----
 .../compress/harmony/unpack200/BandSet.java        |  425 ++++----
 .../compress/harmony/unpack200/BcBands.java        |  268 ++---
 .../compress/harmony/unpack200/ClassBands.java     |  945 +++++++---------
 .../compress/harmony/unpack200/CpBands.java        |  421 +++-----
 .../compress/harmony/unpack200/FileBands.java      |   42 +-
 .../compress/harmony/unpack200/IMatcher.java       |    2 +-
 .../compress/harmony/unpack200/IcBands.java        |  214 ++--
 .../compress/harmony/unpack200/IcTuple.java        |   85 +-
 .../harmony/unpack200/MetadataBandGroup.java       |   82 +-
 .../harmony/unpack200/NewAttributeBands.java       |  420 ++++----
 .../harmony/unpack200/Pack200UnpackerAdapter.java  |   73 +-
 .../compress/harmony/unpack200/Segment.java        |  389 +++----
 .../harmony/unpack200/SegmentConstantPool.java     |  288 +++--
 .../unpack200/SegmentConstantPoolArrayCache.java   |  100 +-
 .../compress/harmony/unpack200/SegmentHeader.java  |  228 ++--
 .../compress/harmony/unpack200/SegmentOptions.java |   26 +-
 .../compress/harmony/unpack200/SegmentUtils.java   |   66 +-
 .../bytecode/AnnotationDefaultAttribute.java       |   21 +-
 .../unpack200/bytecode/AnnotationsAttribute.java   |   38 +-
 .../harmony/unpack200/bytecode/Attribute.java      |   48 +-
 .../unpack200/bytecode/BCIRenumberedAttribute.java |   30 +-
 .../harmony/unpack200/bytecode/ByteCode.java       |  228 ++--
 .../harmony/unpack200/bytecode/CPClass.java        |   34 +-
 .../harmony/unpack200/bytecode/CPConstant.java     |   30 +-
 .../unpack200/bytecode/CPConstantNumber.java       |    2 +-
 .../harmony/unpack200/bytecode/CPDouble.java       |    6 +-
 .../harmony/unpack200/bytecode/CPField.java        |    3 +-
 .../harmony/unpack200/bytecode/CPFieldRef.java     |   46 +-
 .../harmony/unpack200/bytecode/CPFloat.java        |    6 +-
 .../harmony/unpack200/bytecode/CPInteger.java      |    6 +-
 .../unpack200/bytecode/CPInterfaceMethodRef.java   |   11 +-
 .../harmony/unpack200/bytecode/CPLong.java         |    6 +-
 .../harmony/unpack200/bytecode/CPMember.java       |   53 +-
 .../harmony/unpack200/bytecode/CPMethod.java       |    7 +-
 .../harmony/unpack200/bytecode/CPMethodRef.java    |   10 +-
 .../harmony/unpack200/bytecode/CPNameAndType.java  |   49 +-
 .../compress/harmony/unpack200/bytecode/CPRef.java |   39 +-
 .../harmony/unpack200/bytecode/CPString.java       |   16 +-
 .../harmony/unpack200/bytecode/CPUTF8.java         |   29 +-
 .../unpack200/bytecode/ClassConstantPool.java      |  124 +--
 .../harmony/unpack200/bytecode/ClassFile.java      |    6 +-
 .../harmony/unpack200/bytecode/ClassFileEntry.java |   12 +-
 .../harmony/unpack200/bytecode/CodeAttribute.java  |   89 +-
 .../unpack200/bytecode/ConstantPoolEntry.java      |   13 +-
 .../unpack200/bytecode/ConstantValueAttribute.java |   34 +-
 .../unpack200/bytecode/DeprecatedAttribute.java    |    7 +-
 .../bytecode/EnclosingMethodAttribute.java         |   20 +-
 .../unpack200/bytecode/ExceptionTableEntry.java    |   42 +-
 .../unpack200/bytecode/ExceptionsAttribute.java    |   41 +-
 .../unpack200/bytecode/InnerClassesAttribute.java  |   75 +-
 .../bytecode/LineNumberTableAttribute.java         |   26 +-
 .../bytecode/LocalVariableTableAttribute.java      |   49 +-
 .../bytecode/LocalVariableTypeTableAttribute.java  |   49 +-
 .../harmony/unpack200/bytecode/NewAttribute.java   |  115 +-
 .../harmony/unpack200/bytecode/OperandManager.java |   34 +-
 ...timeVisibleorInvisibleAnnotationsAttribute.java |   28 +-
 ...leorInvisibleParameterAnnotationsAttribute.java |   34 +-
 .../unpack200/bytecode/SignatureAttribute.java     |   15 +-
 .../unpack200/bytecode/SourceFileAttribute.java    |   35 +-
 .../unpack200/bytecode/forms/ByteCodeForm.java     |  339 +++---
 .../harmony/unpack200/bytecode/forms/ByteForm.java |   15 +-
 .../unpack200/bytecode/forms/ClassRefForm.java     |   24 +-
 .../bytecode/forms/ClassSpecificReferenceForm.java |   25 +-
 .../unpack200/bytecode/forms/DoubleForm.java       |   10 +-
 .../unpack200/bytecode/forms/FieldRefForm.java     |    9 +-
 .../unpack200/bytecode/forms/FloatRefForm.java     |   14 +-
 .../unpack200/bytecode/forms/IMethodRefForm.java   |   26 +-
 .../harmony/unpack200/bytecode/forms/IincForm.java |   20 +-
 .../bytecode/forms/InitMethodReferenceForm.java    |   28 +-
 .../unpack200/bytecode/forms/IntRefForm.java       |   11 +-
 .../unpack200/bytecode/forms/LabelForm.java        |   43 +-
 .../unpack200/bytecode/forms/LocalForm.java        |   22 +-
 .../harmony/unpack200/bytecode/forms/LongForm.java |    9 +-
 .../unpack200/bytecode/forms/LookupSwitchForm.java |   17 +-
 .../unpack200/bytecode/forms/MethodRefForm.java    |   13 +-
 .../bytecode/forms/MultiANewArrayForm.java         |   19 +-
 .../bytecode/forms/NarrowClassRefForm.java         |   17 +-
 .../unpack200/bytecode/forms/NewClassRefForm.java  |   29 +-
 .../bytecode/forms/NewInitMethodRefForm.java       |   23 +-
 .../unpack200/bytecode/forms/NoArgumentForm.java   |   20 +-
 .../unpack200/bytecode/forms/ReferenceForm.java    |   32 +-
 .../unpack200/bytecode/forms/ShortForm.java        |   15 +-
 .../bytecode/forms/SingleByteReferenceForm.java    |   18 +-
 .../unpack200/bytecode/forms/StringRefForm.java    |   27 +-
 .../bytecode/forms/SuperFieldRefForm.java          |   14 +-
 .../bytecode/forms/SuperInitMethodRefForm.java     |    8 +-
 .../bytecode/forms/SuperMethodRefForm.java         |   16 +-
 .../unpack200/bytecode/forms/SwitchForm.java       |   22 +-
 .../unpack200/bytecode/forms/TableSwitchForm.java  |   19 +-
 .../unpack200/bytecode/forms/ThisFieldRefForm.java |   16 +-
 .../bytecode/forms/ThisInitMethodRefForm.java      |    8 +-
 .../bytecode/forms/ThisMethodRefForm.java          |   14 +-
 .../bytecode/forms/VariableInstructionForm.java    |   87 +-
 .../harmony/unpack200/bytecode/forms/WideForm.java |   68 +-
 137 files changed, 6030 insertions(+), 7173 deletions(-)

[commons-compress] 01/02: Code clean ups.

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch pack200
in repository https://gitbox.apache.org/repos/asf/commons-compress.git

commit 87d322ae1fcb5b54e3c108f6b552946435f715d7
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sun Jun 13 08:15:01 2021 -0400

    Code clean ups.
---
 .../harmony/archive/internal/nls/Messages.java     |  72 ++--
 .../commons/compress/harmony/pack200/Archive.java  |  66 +--
 .../harmony/pack200/AttributeDefinitionBands.java  |  75 ++--
 .../compress/harmony/pack200/BHSDCodec.java        |  76 ++--
 .../commons/compress/harmony/pack200/BandSet.java  | 272 ++++++------
 .../commons/compress/harmony/pack200/BcBands.java  | 141 ++++---
 .../commons/compress/harmony/pack200/CPClass.java  |   8 +-
 .../commons/compress/harmony/pack200/CPDouble.java |   5 +-
 .../commons/compress/harmony/pack200/CPFloat.java  |   5 +-
 .../commons/compress/harmony/pack200/CPInt.java    |  11 +-
 .../commons/compress/harmony/pack200/CPLong.java   |  12 +-
 .../compress/harmony/pack200/CPMethodOrField.java  |  17 +-
 .../compress/harmony/pack200/CPNameAndType.java    |  13 +-
 .../compress/harmony/pack200/CPSignature.java      |  12 +-
 .../commons/compress/harmony/pack200/CPString.java |   6 +-
 .../commons/compress/harmony/pack200/CPUTF8.java   |   6 +-
 .../harmony/pack200/CanonicalCodecFamilies.java    |  38 +-
 .../compress/harmony/pack200/ClassBands.java       | 440 ++++++++++----------
 .../commons/compress/harmony/pack200/Codec.java    |  14 +-
 .../compress/harmony/pack200/CodecEncoding.java    | 172 ++++----
 .../harmony/pack200/ConstantPoolEntry.java         |   2 +-
 .../commons/compress/harmony/pack200/CpBands.java  | 278 ++++++-------
 .../compress/harmony/pack200/FileBands.java        |  35 +-
 .../commons/compress/harmony/pack200/IcBands.java  |  62 +--
 .../commons/compress/harmony/pack200/IntList.java  |  96 +++--
 .../harmony/pack200/MetadataBandGroup.java         | 111 ++---
 .../compress/harmony/pack200/NewAttribute.java     |  48 ++-
 .../harmony/pack200/NewAttributeBands.java         | 369 +++++++++--------
 .../compress/harmony/pack200/Pack200Adapter.java   |  12 +-
 .../harmony/pack200/Pack200ClassReader.java        |  17 +-
 .../compress/harmony/pack200/Pack200Exception.java |   2 +-
 .../harmony/pack200/Pack200PackerAdapter.java      |  32 +-
 .../compress/harmony/pack200/PackingOptions.java   | 111 +++--
 .../compress/harmony/pack200/PackingUtils.java     |  97 ++---
 .../compress/harmony/pack200/PopulationCodec.java  |  35 +-
 .../commons/compress/harmony/pack200/RunCodec.java |  57 +--
 .../commons/compress/harmony/pack200/Segment.java  | 353 +++++++++-------
 .../compress/harmony/pack200/SegmentHeader.java    |  69 ++--
 .../compress/harmony/unpack200/Archive.java        |  41 +-
 .../harmony/unpack200/AttrDefinitionBands.java     |  14 +-
 .../harmony/unpack200/AttributeLayout.java         |  73 ++--
 .../harmony/unpack200/AttributeLayoutMap.java      |  34 +-
 .../compress/harmony/unpack200/BandSet.java        | 255 ++++++------
 .../compress/harmony/unpack200/BcBands.java        | 128 +++---
 .../compress/harmony/unpack200/ClassBands.java     | 459 +++++++++++----------
 .../compress/harmony/unpack200/CpBands.java        | 190 ++++-----
 .../compress/harmony/unpack200/FileBands.java      |  16 +-
 .../compress/harmony/unpack200/IMatcher.java       |   2 +-
 .../compress/harmony/unpack200/IcBands.java        |  83 ++--
 .../compress/harmony/unpack200/IcTuple.java        |  44 +-
 .../harmony/unpack200/MetadataBandGroup.java       |  58 +--
 .../harmony/unpack200/NewAttributeBands.java       | 275 ++++++------
 .../harmony/unpack200/Pack200UnpackerAdapter.java  |  24 +-
 .../compress/harmony/unpack200/Segment.java        | 161 ++++----
 .../harmony/unpack200/SegmentConstantPool.java     | 134 +++---
 .../unpack200/SegmentConstantPoolArrayCache.java   |  16 +-
 .../compress/harmony/unpack200/SegmentHeader.java  |  60 +--
 .../compress/harmony/unpack200/SegmentOptions.java |   7 +-
 .../compress/harmony/unpack200/SegmentUtils.java   |  53 +--
 .../bytecode/AnnotationDefaultAttribute.java       |  20 +-
 .../unpack200/bytecode/AnnotationsAttribute.java   |  28 +-
 .../harmony/unpack200/bytecode/Attribute.java      |  28 +-
 .../unpack200/bytecode/BCIRenumberedAttribute.java |  10 +-
 .../harmony/unpack200/bytecode/ByteCode.java       |  64 +--
 .../harmony/unpack200/bytecode/CPClass.java        |  26 +-
 .../harmony/unpack200/bytecode/CPConstant.java     |  21 +-
 .../unpack200/bytecode/CPConstantNumber.java       |   2 +-
 .../harmony/unpack200/bytecode/CPDouble.java       |   6 +-
 .../harmony/unpack200/bytecode/CPField.java        |   3 +-
 .../harmony/unpack200/bytecode/CPFieldRef.java     |  38 +-
 .../harmony/unpack200/bytecode/CPFloat.java        |   6 +-
 .../harmony/unpack200/bytecode/CPInteger.java      |   6 +-
 .../unpack200/bytecode/CPInterfaceMethodRef.java   |   6 +-
 .../harmony/unpack200/bytecode/CPLong.java         |   6 +-
 .../harmony/unpack200/bytecode/CPMember.java       |  45 +-
 .../harmony/unpack200/bytecode/CPMethod.java       |   7 +-
 .../harmony/unpack200/bytecode/CPMethodRef.java    |   7 +-
 .../harmony/unpack200/bytecode/CPNameAndType.java  |  32 +-
 .../compress/harmony/unpack200/bytecode/CPRef.java |  30 +-
 .../harmony/unpack200/bytecode/CPString.java       |  14 +-
 .../harmony/unpack200/bytecode/CPUTF8.java         |  26 +-
 .../unpack200/bytecode/ClassConstantPool.java      |  90 ++--
 .../harmony/unpack200/bytecode/ClassFile.java      |   5 +-
 .../harmony/unpack200/bytecode/ClassFileEntry.java |  12 +-
 .../harmony/unpack200/bytecode/CodeAttribute.java  |  57 +--
 .../unpack200/bytecode/ConstantPoolEntry.java      |   7 +-
 .../unpack200/bytecode/ConstantValueAttribute.java |  32 +-
 .../unpack200/bytecode/DeprecatedAttribute.java    |   7 +-
 .../bytecode/EnclosingMethodAttribute.java         |  16 +-
 .../unpack200/bytecode/ExceptionTableEntry.java    |  14 +-
 .../unpack200/bytecode/ExceptionsAttribute.java    |  38 +-
 .../unpack200/bytecode/InnerClassesAttribute.java  |  55 ++-
 .../bytecode/LineNumberTableAttribute.java         |  19 +-
 .../bytecode/LocalVariableTableAttribute.java      |  41 +-
 .../bytecode/LocalVariableTypeTableAttribute.java  |  39 +-
 .../harmony/unpack200/bytecode/NewAttribute.java   |  79 ++--
 .../harmony/unpack200/bytecode/OperandManager.java |  31 +-
 ...timeVisibleorInvisibleAnnotationsAttribute.java |  19 +-
 ...leorInvisibleParameterAnnotationsAttribute.java |  25 +-
 .../unpack200/bytecode/SignatureAttribute.java     |  13 +-
 .../unpack200/bytecode/SourceFileAttribute.java    |  33 +-
 .../unpack200/bytecode/forms/ByteCodeForm.java     |  27 +-
 .../harmony/unpack200/bytecode/forms/ByteForm.java |   7 +-
 .../unpack200/bytecode/forms/ClassRefForm.java     |  13 +-
 .../bytecode/forms/ClassSpecificReferenceForm.java |   9 +-
 .../unpack200/bytecode/forms/DoubleForm.java       |   6 +-
 .../unpack200/bytecode/forms/FieldRefForm.java     |   6 +-
 .../unpack200/bytecode/forms/FloatRefForm.java     |   8 +-
 .../unpack200/bytecode/forms/IMethodRefForm.java   |  11 +-
 .../harmony/unpack200/bytecode/forms/IincForm.java |   7 +-
 .../bytecode/forms/InitMethodReferenceForm.java    |  12 +-
 .../unpack200/bytecode/forms/IntRefForm.java       |   8 +-
 .../unpack200/bytecode/forms/LabelForm.java        |  14 +-
 .../unpack200/bytecode/forms/LocalForm.java        |   7 +-
 .../harmony/unpack200/bytecode/forms/LongForm.java |   6 +-
 .../unpack200/bytecode/forms/LookupSwitchForm.java |   7 +-
 .../unpack200/bytecode/forms/MethodRefForm.java    |   6 +-
 .../bytecode/forms/MultiANewArrayForm.java         |   7 +-
 .../bytecode/forms/NarrowClassRefForm.java         |  12 +-
 .../unpack200/bytecode/forms/NewClassRefForm.java  |   7 +-
 .../bytecode/forms/NewInitMethodRefForm.java       |  10 +-
 .../unpack200/bytecode/forms/NoArgumentForm.java   |   7 +-
 .../unpack200/bytecode/forms/ReferenceForm.java    |  11 +-
 .../unpack200/bytecode/forms/ShortForm.java        |   7 +-
 .../bytecode/forms/SingleByteReferenceForm.java    |  10 +-
 .../unpack200/bytecode/forms/StringRefForm.java    |  13 +-
 .../bytecode/forms/SuperFieldRefForm.java          |   9 +-
 .../bytecode/forms/SuperInitMethodRefForm.java     |   5 +-
 .../bytecode/forms/SuperMethodRefForm.java         |   9 +-
 .../unpack200/bytecode/forms/SwitchForm.java       |   7 +-
 .../unpack200/bytecode/forms/TableSwitchForm.java  |   7 +-
 .../unpack200/bytecode/forms/ThisFieldRefForm.java |   9 +-
 .../bytecode/forms/ThisInitMethodRefForm.java      |   5 +-
 .../bytecode/forms/ThisMethodRefForm.java          |   9 +-
 .../bytecode/forms/VariableInstructionForm.java    |   8 +-
 .../harmony/unpack200/bytecode/forms/WideForm.java |  15 +-
 136 files changed, 3609 insertions(+), 3149 deletions(-)

diff --git a/src/main/java/org/apache/commons/compress/harmony/archive/internal/nls/Messages.java b/src/main/java/org/apache/commons/compress/harmony/archive/internal/nls/Messages.java
index 1a99516..6d83f7b 100644
--- a/src/main/java/org/apache/commons/compress/harmony/archive/internal/nls/Messages.java
+++ b/src/main/java/org/apache/commons/compress/harmony/archive/internal/nls/Messages.java
@@ -57,13 +57,13 @@ public class Messages {
      *            String the key to look up.
      * @return String the message for that key in the system message bundle.
      */
-    static public String getString(String msg) {
+    static public String getString(final String msg) {
         if (bundle == null) {
             return msg;
         }
         try {
             return bundle.getString(msg);
-        } catch (MissingResourceException e) {
+        } catch (final MissingResourceException e) {
             return "Missing message: " + msg; //$NON-NLS-1$
         }
     }
@@ -77,7 +77,7 @@ public class Messages {
      *            Object the object to insert in the formatted output.
      * @return String the message for that key in the system message bundle.
      */
-    static public String getString(String msg, Object arg) {
+    static public String getString(final String msg, final Object arg) {
         return getString(msg, new Object[] { arg });
     }
 
@@ -90,7 +90,7 @@ public class Messages {
      *            int the integer to insert in the formatted output.
      * @return String the message for that key in the system message bundle.
      */
-    static public String getString(String msg, int arg) {
+    static public String getString(final String msg, final int arg) {
         return getString(msg, new Object[] { Integer.toString(arg) });
     }
 
@@ -103,7 +103,7 @@ public class Messages {
      *            char the character to insert in the formatted output.
      * @return String the message for that key in the system message bundle.
      */
-    static public String getString(String msg, char arg) {
+    static public String getString(final String msg, final char arg) {
         return getString(msg, new Object[] { String.valueOf(arg) });
     }
 
@@ -118,7 +118,7 @@ public class Messages {
      *            Object another object to insert in the formatted output.
      * @return String the message for that key in the system message bundle.
      */
-    static public String getString(String msg, Object arg1, Object arg2) {
+    static public String getString(final String msg, final Object arg1, final Object arg2) {
         return getString(msg, new Object[] { arg1, arg2 });
     }
 
@@ -131,13 +131,13 @@ public class Messages {
      *            Object[] the objects to insert in the formatted output.
      * @return String the message for that key in the system message bundle.
      */
-    static public String getString(String msg, Object[] args) {
+    static public String getString(final String msg, final Object[] args) {
         String format = msg;
 
         if (bundle != null) {
             try {
                 format = bundle.getString(msg);
-            } catch (MissingResourceException e) {
+            } catch (final MissingResourceException e) {
                 // ignore
             }
         }
@@ -161,10 +161,10 @@ public class Messages {
      *            Object[] the arguments to use.
      * @return String the formatted message.
      */
-    public static String format(String format, Object[] args) {
-        StringBuilder answer = new StringBuilder(format.length()
+    public static String format(final String format, final Object[] args) {
+        final StringBuilder answer = new StringBuilder(format.length()
                 + (args.length * 20));
-        String[] argStrings = new String[args.length];
+        final String[] argStrings = new String[args.length];
         for (int i = 0; i < args.length; ++i) {
             if (args[i] == null) {
                 argStrings[i] = "<null>"; //$NON-NLS-1$
@@ -182,34 +182,32 @@ public class Messages {
                 }
                 answer.append('{');
                 lastI = i + 1;
+            } else // It's a format character.
+            if (i > format.length() - 3) {
+                // Bad format, just print and loop.
+                answer.append(format.substring(lastI));
+                lastI = format.length();
             } else {
-                // It's a format character.
-                if (i > format.length() - 3) {
+                final int argnum = (byte) Character.digit(format.charAt(i + 1),
+                        10);
+                if (argnum < 0 || format.charAt(i + 2) != '}') {
                     // Bad format, just print and loop.
-                    answer.append(format.substring(lastI, format.length()));
-                    lastI = format.length();
+                    answer.append(format.substring(lastI, i + 1));
+                    lastI = i + 1;
                 } else {
-                    int argnum = (byte) Character.digit(format.charAt(i + 1),
-                            10);
-                    if (argnum < 0 || format.charAt(i + 2) != '}') {
-                        // Bad format, just print and loop.
-                        answer.append(format.substring(lastI, i + 1));
-                        lastI = i + 1;
+                    // Got a good one!
+                    answer.append(format.substring(lastI, i));
+                    if (argnum >= argStrings.length) {
+                        answer.append("<missing argument>"); //$NON-NLS-1$
                     } else {
-                        // Got a good one!
-                        answer.append(format.substring(lastI, i));
-                        if (argnum >= argStrings.length) {
-                            answer.append("<missing argument>"); //$NON-NLS-1$
-                        } else {
-                            answer.append(argStrings[argnum]);
-                        }
-                        lastI = i + 3;
+                        answer.append(argStrings[argnum]);
                     }
+                    lastI = i + 3;
                 }
             }
         }
         if (lastI < format.length()) {
-            answer.append(format.substring(lastI, format.length()));
+            answer.append(format.substring(lastI));
         }
         return answer.toString();
     }
@@ -228,14 +226,10 @@ public class Messages {
             // VM.bootCallerClassLoader() returns null
             final ClassLoader loader = null;//VM.bootCallerClassLoader();
             return (ResourceBundle) AccessController
-                    .doPrivileged(new PrivilegedAction<Object>() {
-                        public Object run() {
-                            return ResourceBundle.getBundle(resource, locale,
-                                    loader != null ? loader : ClassLoader
-                                            .getSystemClassLoader());
-                        }
-                    });
-        } catch (MissingResourceException e) {
+                    .doPrivileged((PrivilegedAction<Object>) () -> ResourceBundle.getBundle(resource, locale,
+                            loader != null ? loader : ClassLoader
+                                    .getSystemClassLoader()));
+        } catch (final MissingResourceException e) {
             // ignore
         }
         return null;
@@ -246,7 +240,7 @@ public class Messages {
         try {
             bundle = setLocale(Locale.getDefault(),
                     "org.apache.commons.compress.harmony.archive.internal.nls.messages"); //$NON-NLS-1$
-        } catch (Throwable e) {
+        } catch (final Throwable e) {
             e.printStackTrace();
         }
     }
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/Archive.java b/src/main/java/org/apache/commons/compress/harmony/pack200/Archive.java
index f47a0dd..ec6dc3e 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/Archive.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/Archive.java
@@ -26,6 +26,7 @@ import java.util.jar.JarEntry;
 import java.util.jar.JarFile;
 import java.util.jar.JarInputStream;
 import java.util.zip.GZIPOutputStream;
+import java.util.zip.ZipEntry;
 
 /**
  * Archive is the main entry point to pack200 and represents a packed archive.
@@ -49,7 +50,7 @@ public class Archive {
      * @param options - packing options (if null then defaults are used)
      * @throws IOException If an I/O error occurs.
      */
-    public Archive(JarInputStream inputStream, OutputStream outputStream,
+    public Archive(final JarInputStream inputStream, OutputStream outputStream,
             PackingOptions options) throws IOException {
         jarInputStream = inputStream;
         if(options == null) {
@@ -72,7 +73,7 @@ public class Archive {
      * @param options - packing options (if null then defaults are used)
      * @throws IOException If an I/O error occurs.
      */
-    public Archive(JarFile jarFile, OutputStream outputStream,
+    public Archive(final JarFile jarFile, OutputStream outputStream,
             PackingOptions options) throws IOException {
         if(options == null) { // use all defaults
             options = new PackingOptions();
@@ -120,11 +121,11 @@ public class Archive {
                     options.isKeepFileOrder());
         }
 
-        List segmentUnitList = splitIntoSegments(packingFileList);
+        final List segmentUnitList = splitIntoSegments(packingFileList);
         int previousByteAmount = 0;
         int packedByteAmount = 0;
 
-        int segmentSize = segmentUnitList.size();
+        final int segmentSize = segmentUnitList.size();
         SegmentUnit segmentUnit;
         for (int index = 0; index < segmentSize; index++) {
             segmentUnit = (SegmentUnit) segmentUnitList.get(index);
@@ -140,14 +141,14 @@ public class Archive {
         outputStream.close();
     }
 
-    private List splitIntoSegments(List packingFileList) throws IOException,
+    private List splitIntoSegments(final List packingFileList) throws IOException,
             Pack200Exception {
-        List segmentUnitList = new ArrayList();
+        final List segmentUnitList = new ArrayList();
         List classes = new ArrayList();
         List files = new ArrayList();
-        long segmentLimit = options.getSegmentLimit();
+        final long segmentLimit = options.getSegmentLimit();
 
-        int size = packingFileList.size();
+        final int size = packingFileList.size();
         PackingFile packingFile;
         for (int index = 0; index < size; index++) {
             packingFile = (PackingFile) packingFileList.get(index);
@@ -176,27 +177,26 @@ public class Archive {
         return segmentUnitList;
     }
 
-    private boolean addJarEntry(PackingFile packingFile, List javaClasses,
-            List files) throws IOException, Pack200Exception {
-        long segmentLimit = options.getSegmentLimit();
+    private boolean addJarEntry(final PackingFile packingFile, final List javaClasses,
+            final List files) throws IOException, Pack200Exception {
+        final long segmentLimit = options.getSegmentLimit();
         if (segmentLimit != -1 && segmentLimit != 0) {
             // -1 is a special case where only one segment is created and
             // 0 is a special case where one segment is created for each file
             // except for files in "META-INF"
-            long packedSize = estimateSize(packingFile);
+            final long packedSize = estimateSize(packingFile);
             if (packedSize + currentSegmentSize > segmentLimit
                     && currentSegmentSize > 0) {
                 // don't add this JarEntry to the current segment
                 return false;
-            } else {
-                // do add this JarEntry
-                currentSegmentSize += packedSize;
             }
+            // do add this JarEntry
+            currentSegmentSize += packedSize;
         }
 
-        String name = packingFile.getName();
+        final String name = packingFile.getName();
         if (name.endsWith(".class") && !options.isPassFile(name)) {
-            Pack200ClassReader classParser = new Pack200ClassReader(
+            final Pack200ClassReader classParser = new Pack200ClassReader(
                     packingFile.contents);
             classParser.setFileName(name);
             javaClasses.add(classParser);
@@ -206,19 +206,18 @@ public class Archive {
         return true;
     }
 
-    private long estimateSize(PackingFile packingFile) {
+    private long estimateSize(final PackingFile packingFile) {
         // The heuristic used here is for compatibility with the RI and should
         // not be changed
-        String name = packingFile.getName();
+        final String name = packingFile.getName();
         if (name.startsWith("META-INF") || name.startsWith("/META-INF")) {
             return 0;
-        } else {
-            long fileSize = packingFile.contents.length;
-            if (fileSize < 0) {
-                fileSize = 0;
-            }
-            return name.length() + fileSize + 5;
         }
+        long fileSize = packingFile.contents.length;
+        if (fileSize < 0) {
+            fileSize = 0;
+        }
+        return name.length() + fileSize + 5;
     }
 
     static class SegmentUnit {
@@ -231,19 +230,19 @@ public class Archive {
 
         private int packedByteAmount = 0;
 
-        public SegmentUnit(List classes, List files) {
+        public SegmentUnit(final List classes, final List files) {
             classList = classes;
             fileList = files;
 
             // Calculate the amount of bytes in classes and files before packing
             Pack200ClassReader classReader;
-            for (Iterator iterator = classList.iterator(); iterator.hasNext();) {
+            for (final Iterator iterator = classList.iterator(); iterator.hasNext();) {
                 classReader = (Pack200ClassReader) iterator.next();
                 byteAmount += classReader.b.length;
             }
 
             PackingFile file;
-            for (Iterator iterator = fileList.iterator(); iterator.hasNext();) {
+            for (final Iterator iterator = fileList.iterator(); iterator.hasNext();) {
                 file = (PackingFile) iterator.next();
                 byteAmount += file.contents.length;
             }
@@ -273,7 +272,7 @@ public class Archive {
             return packedByteAmount;
         }
 
-        public void addPackedByteAmount(int amount) {
+        public void addPackedByteAmount(final int amount) {
             packedByteAmount += amount;
         }
     }
@@ -286,7 +285,7 @@ public class Archive {
         private final boolean deflateHint;
         private final boolean isDirectory;
 
-        public PackingFile(String name, byte[] contents, long modtime) {
+        public PackingFile(final String name, final byte[] contents, final long modtime) {
             this.name = name;
             this.contents = contents;
             this.modtime = modtime;
@@ -294,11 +293,11 @@ public class Archive {
             isDirectory = false;
         }
 
-        public PackingFile(byte[] bytes, JarEntry jarEntry) {
+        public PackingFile(final byte[] bytes, final JarEntry jarEntry) {
             name = jarEntry.getName();
             contents = bytes;
             modtime = jarEntry.getTime();
-            deflateHint = jarEntry.getMethod() == JarEntry.DEFLATED;
+            deflateHint = jarEntry.getMethod() == ZipEntry.DEFLATED;
             isDirectory = jarEntry.isDirectory();
         }
 
@@ -314,7 +313,7 @@ public class Archive {
             return modtime;
         }
 
-        public void setContents(byte[] contents) {
+        public void setContents(final byte[] contents) {
             this.contents = contents;
         }
 
@@ -326,6 +325,7 @@ public class Archive {
             return isDirectory;
         }
 
+        @Override
         public String toString() {
             return name;
         }
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/AttributeDefinitionBands.java b/src/main/java/org/apache/commons/compress/harmony/pack200/AttributeDefinitionBands.java
index 6882170..2ea13ef 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/AttributeDefinitionBands.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/AttributeDefinitionBands.java
@@ -47,18 +47,18 @@ public class AttributeDefinitionBands extends BandSet {
     private final CpBands cpBands;
     private final Segment segment;
 
-    public AttributeDefinitionBands(Segment segment, int effort,
-            Attribute[] attributePrototypes) {
+    public AttributeDefinitionBands(final Segment segment, final int effort,
+            final Attribute[] attributePrototypes) {
         super(effort, segment.getSegmentHeader());
         this.cpBands = segment.getCpBands();
         this.segment = segment;
-        Map classLayouts = new HashMap();
-        Map methodLayouts = new HashMap();
-        Map fieldLayouts = new HashMap();
-        Map codeLayouts = new HashMap();
+        final Map classLayouts = new HashMap();
+        final Map methodLayouts = new HashMap();
+        final Map fieldLayouts = new HashMap();
+        final Map codeLayouts = new HashMap();
 
         for (int i = 0; i < attributePrototypes.length; i++) {
-            NewAttribute newAttribute = (NewAttribute) attributePrototypes[i];
+            final NewAttribute newAttribute = (NewAttribute) attributePrototypes[i];
             if(!(newAttribute instanceof NewAttribute.ErrorAttribute) && !(newAttribute instanceof NewAttribute.PassAttribute) && !(newAttribute instanceof NewAttribute.StripAttribute)) {
                 if (newAttribute.isContextClass()) {
                     classLayouts.put(newAttribute.type, newAttribute.getLayout());
@@ -74,38 +74,38 @@ public class AttributeDefinitionBands extends BandSet {
                 }
             }
         }
-        if (classLayouts.keySet().size() > 7) {
+        if (classLayouts.size() > 7) {
             segmentHeader.setHave_class_flags_hi(true);
         }
-        if (methodLayouts.keySet().size() > 6) {
+        if (methodLayouts.size() > 6) {
             segmentHeader.setHave_method_flags_hi(true);
         }
-        if (fieldLayouts.keySet().size() > 10) {
+        if (fieldLayouts.size() > 10) {
             segmentHeader.setHave_field_flags_hi(true);
         }
-        if (codeLayouts.keySet().size() > 15) {
+        if (codeLayouts.size() > 15) {
             segmentHeader.setHave_code_flags_hi(true);
         }
-        int[] availableClassIndices = new int[] { 25, 26, 27, 28, 29, 30, 31 };
+        int[] availableClassIndices = { 25, 26, 27, 28, 29, 30, 31 };
         if (classLayouts.size() > 7) {
             availableClassIndices = addHighIndices(availableClassIndices);
         }
         addAttributeDefinitions(classLayouts, availableClassIndices,
                 CONTEXT_CLASS);
-        int[] availableMethodIndices = new int[] { 26, 27, 28, 29, 30, 31 };
+        int[] availableMethodIndices = { 26, 27, 28, 29, 30, 31 };
         if (methodAttributeLayouts.size() > 6) {
             availableMethodIndices = addHighIndices(availableMethodIndices);
         }
         addAttributeDefinitions(methodLayouts, availableMethodIndices,
                 CONTEXT_METHOD);
-        int[] availableFieldIndices = new int[] { 18, 23, 24, 25, 26, 27, 28,
+        int[] availableFieldIndices = { 18, 23, 24, 25, 26, 27, 28,
                 29, 30, 31 };
         if (fieldAttributeLayouts.size() > 10) {
             availableFieldIndices = addHighIndices(availableFieldIndices);
         }
         addAttributeDefinitions(fieldLayouts, availableFieldIndices,
                 CONTEXT_FIELD);
-        int[] availableCodeIndices = new int[] { 17, 18, 19, 20, 21, 22, 23,
+        int[] availableCodeIndices = { 17, 18, 19, 20, 21, 22, 23,
                 24, 25, 26, 27, 28, 29, 30, 31 };
         if (codeAttributeLayouts.size() > 15) {
             availableCodeIndices = addHighIndices(availableCodeIndices);
@@ -123,13 +123,14 @@ public class AttributeDefinitionBands extends BandSet {
         segmentHeader.setAttribute_definition_count(attributeDefinitions.size());
     }
 
-    public void pack(OutputStream out) throws IOException, Pack200Exception {
+    @Override
+    public void pack(final OutputStream out) throws IOException, Pack200Exception {
         PackingUtils.log("Writing attribute definition bands...");
-        int[] attributeDefinitionHeader = new int[attributeDefinitions.size()];
-        int[] attributeDefinitionName = new int[attributeDefinitions.size()];
-        int[] attributeDefinitionLayout = new int[attributeDefinitions.size()];
+        final int[] attributeDefinitionHeader = new int[attributeDefinitions.size()];
+        final int[] attributeDefinitionName = new int[attributeDefinitions.size()];
+        final int[] attributeDefinitionLayout = new int[attributeDefinitions.size()];
         for (int i = 0; i < attributeDefinitionLayout.length; i++) {
-            AttributeDefinition def = (AttributeDefinition) attributeDefinitions
+            final AttributeDefinition def = (AttributeDefinition) attributeDefinitions
                     .get(i);
             attributeDefinitionHeader[i] = def.contextType
                     | (def.index + 1 << 2);
@@ -160,15 +161,15 @@ public class AttributeDefinitionBands extends BandSet {
     }
 
     private void addSyntheticDefinitions() {
-        boolean anySytheticClasses = segment.getClassBands()
+        final boolean anySytheticClasses = segment.getClassBands()
                 .isAnySyntheticClasses();
-        boolean anySyntheticMethods = segment.getClassBands()
+        final boolean anySyntheticMethods = segment.getClassBands()
                 .isAnySyntheticMethods();
-        boolean anySyntheticFields = segment.getClassBands()
+        final boolean anySyntheticFields = segment.getClassBands()
                 .isAnySyntheticFields();
         if (anySytheticClasses || anySyntheticMethods || anySyntheticFields) {
-            CPUTF8 syntheticUTF = cpBands.getCPUtf8("Synthetic");
-            CPUTF8 emptyUTF = cpBands.getCPUtf8("");
+            final CPUTF8 syntheticUTF = cpBands.getCPUtf8("Synthetic");
+            final CPUTF8 emptyUTF = cpBands.getCPUtf8("");
             if (anySytheticClasses) {
                 attributeDefinitions.add(new AttributeDefinition(12,
                         CONTEXT_CLASS, syntheticUTF, emptyUTF));
@@ -184,8 +185,8 @@ public class AttributeDefinitionBands extends BandSet {
         }
     }
 
-    private int[] addHighIndices(int[] availableIndices) {
-        int[] temp = new int[availableIndices.length + 32];
+    private int[] addHighIndices(final int[] availableIndices) {
+        final int[] temp = new int[availableIndices.length + 32];
         for (int i = 0; i < availableIndices.length; i++) {
             temp[i] = availableIndices[i];
         }
@@ -197,15 +198,15 @@ public class AttributeDefinitionBands extends BandSet {
         return temp;
     }
 
-    private void addAttributeDefinitions(Map layouts, int[] availableIndices,
-            int contextType) {
-        int i = 0;
-        for (Iterator iterator = layouts.keySet().iterator(); iterator
+    private void addAttributeDefinitions(final Map layouts, final int[] availableIndices,
+            final int contextType) {
+        final int i = 0;
+        for (final Iterator iterator = layouts.keySet().iterator(); iterator
                 .hasNext();) {
-            String name = (String) iterator.next();
-            String layout = (String) layouts.get(name);
-            int index = availableIndices[i];
-            AttributeDefinition definition = new AttributeDefinition(index,
+            final String name = (String) iterator.next();
+            final String layout = (String) layouts.get(name);
+            final int index = availableIndices[i];
+            final AttributeDefinition definition = new AttributeDefinition(index,
                     contextType, cpBands.getCPUtf8(name), cpBands
                             .getCPUtf8(layout));
             attributeDefinitions.add(definition);
@@ -248,8 +249,8 @@ public class AttributeDefinitionBands extends BandSet {
         public CPUTF8 name;
         public CPUTF8 layout;
 
-        public AttributeDefinition(int index, int contextType, CPUTF8 name,
-                CPUTF8 layout) {
+        public AttributeDefinition(final int index, final int contextType, final CPUTF8 name,
+                final CPUTF8 layout) {
             this.index = index;
             this.contextType = contextType;
             this.name = name;
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/BHSDCodec.java b/src/main/java/org/apache/commons/compress/harmony/pack200/BHSDCodec.java
index 5c9c83a..8746e6a 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/BHSDCodec.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/BHSDCodec.java
@@ -126,7 +126,7 @@ public final class BHSDCodec extends Codec {
      * @param h
      *            the radix of the encoding [1..256]
      */
-    public BHSDCodec(int b, int h) {
+    public BHSDCodec(final int b, final int h) {
         this(b, h, 0, 0);
     }
 
@@ -142,7 +142,7 @@ public final class BHSDCodec extends Codec {
      *            whether the encoding represents signed numbers (s=0 is
      *            unsigned; s=1 is signed with 1s complement; s=2 is signed with ?)
      */
-    public BHSDCodec(int b, int h, int s) {
+    public BHSDCodec(final int b, final int h, final int s) {
         this(b, h, s, 0);
     }
 
@@ -161,7 +161,7 @@ public final class BHSDCodec extends Codec {
      *            whether this is a delta encoding (d=0 is non-delta; d=1 is
      *            delta)
      */
-    public BHSDCodec(int b, int h, int s, int d) {
+    public BHSDCodec(final int b, final int h, final int s, final int d) {
         if (b < 1 || b > 5) {
             throw new IllegalArgumentException("1<=b<=5");
         }
@@ -210,7 +210,8 @@ public final class BHSDCodec extends Codec {
         return cardinality;
     }
 
-    public int decode(InputStream in) throws IOException, Pack200Exception {
+    @Override
+    public int decode(final InputStream in) throws IOException, Pack200Exception {
         if (d != 0) {
             throw new Pack200Exception(
                     "Delta encoding used without passing in last value; this is a coding error");
@@ -218,7 +219,8 @@ public final class BHSDCodec extends Codec {
         return decode(in, 0);
     }
 
-    public int decode(InputStream in, long last) throws IOException,
+    @Override
+    public int decode(final InputStream in, final long last) throws IOException,
             Pack200Exception {
         int n = 0;
         long z = 0;
@@ -234,9 +236,9 @@ public final class BHSDCodec extends Codec {
         if (x == -1) {
             throw new EOFException("End of stream reached whilst decoding");
         }
-        
+
         if (isSigned()) {
-            int u = ((1 << s) - 1);
+            final int u = ((1 << s) - 1);
             if ((z & u) == u) {
                 z = z >>> s ^ -1L;
             } else {
@@ -265,9 +267,10 @@ public final class BHSDCodec extends Codec {
         return (int)z;
     }
 
-    public int[] decodeInts(int n, InputStream in) throws IOException,
+    @Override
+    public int[] decodeInts(final int n, final InputStream in) throws IOException,
             Pack200Exception {
-        int[] band = super.decodeInts(n, in);
+        final int[] band = super.decodeInts(n, in);
         if (isDelta()) {
             for (int i = 0; i < band.length; i++) {
                 while (band[i] > largest) {
@@ -281,9 +284,10 @@ public final class BHSDCodec extends Codec {
         return band;
     }
 
-    public int[] decodeInts(int n, InputStream in, int firstValue)
+    @Override
+    public int[] decodeInts(final int n, final InputStream in, final int firstValue)
             throws IOException, Pack200Exception {
-        int[] band =  super.decodeInts(n, in, firstValue);
+        final int[] band =  super.decodeInts(n, in, firstValue);
         if (isDelta()) {
             for (int i = 0; i < band.length; i++) {
                 while (band[i] > largest) {
@@ -310,11 +314,12 @@ public final class BHSDCodec extends Codec {
      *            the value to check
      * @return <code>true</code> if the encoding can encode this value
      */
-    public boolean encodes(long value) {
+    public boolean encodes(final long value) {
         return value >= smallest && value <= largest;
     }
 
-    public byte[] encode(int value, int last) throws Pack200Exception {
+    @Override
+    public byte[] encode(final int value, final int last) throws Pack200Exception {
         if(!encodes(value)) {
             throw new Pack200Exception("The codec " + toString()
                   + " does not encode the value " + value);
@@ -332,28 +337,24 @@ public final class BHSDCodec extends Codec {
             }
             if (z < 0) {
                 z = (-z << s) - 1;
+            } else if (s == 1) {
+                z = z << s;
             } else {
-                if (s == 1) {
-                    z = z << s;
-                } else {
-                    z += (z - z % 3) / 3;
-                }
+                z += (z - z % 3) / 3;
             }
-        } else {
-            if (z < 0) {
-                // Need to use integer overflow here to represent negatives.
-                if (cardinality < 4294967296L) {
-                    z += cardinality;
-                } else {
-                    z += 4294967296L; // this value is equal to (1 << 32).
-                }
+        } else if (z < 0) {
+            // Need to use integer overflow here to represent negatives.
+            if (cardinality < 4294967296L) {
+                z += cardinality;
+            } else {
+                z += 4294967296L; // this value is equal to (1 << 32).
             }
         }
         if (z < 0) {
             throw new Pack200Exception("unable to encode");
         }
 
-        List byteList = new ArrayList();
+        final List byteList = new ArrayList();
         for (int n = 0; n < b; n++) {
             long byteN;
             if (z < l) {
@@ -364,21 +365,22 @@ public final class BHSDCodec extends Codec {
                     byteN += h;
                 }
             }
-            byteList.add(new Byte((byte) byteN));
+            byteList.add(Byte.valueOf((byte) byteN));
             if (byteN < l) {
                 break;
             }
             z -= byteN;
             z /= h;
         }
-        byte[] bytes = new byte[byteList.size()];
+        final byte[] bytes = new byte[byteList.size()];
         for (int i = 0; i < bytes.length; i++) {
             bytes[i] = ((Byte) byteList.get(i)).byteValue();
         }
         return bytes;
     }
 
-    public byte[] encode(int value) throws Pack200Exception {
+    @Override
+    public byte[] encode(final int value) throws Pack200Exception {
         return encode(value, 0);
     }
 
@@ -414,9 +416,10 @@ public final class BHSDCodec extends Codec {
         // TODO This can probably be optimized into a better mathematical
         // statement
         if (d == 1) {
-            BHSDCodec bh0 = new BHSDCodec(b, h);
+            final BHSDCodec bh0 = new BHSDCodec(b, h);
             return bh0.largest();
-        } else if (s == 0) {
+        }
+        if (s == 0) {
             result = cardinality() - 1;
         } else if (s == 1) {
             result = cardinality() / 2 - 1;
@@ -456,8 +459,9 @@ public final class BHSDCodec extends Codec {
      * Returns the codec in the form (1,256) or (1,64,1,1). Note that trailing
      * zero fields are not shown.
      */
+    @Override
     public String toString() {
-        StringBuffer buffer = new StringBuffer(11);
+        final StringBuffer buffer = new StringBuffer(11);
         buffer.append('(');
         buffer.append(b);
         buffer.append(',');
@@ -502,14 +506,16 @@ public final class BHSDCodec extends Codec {
         return l;
     }
 
-    public boolean equals(Object o) {
+    @Override
+    public boolean equals(final Object o) {
         if (o instanceof BHSDCodec) {
-            BHSDCodec codec = (BHSDCodec) o;
+            final BHSDCodec codec = (BHSDCodec) o;
             return codec.b == b && codec.h == h && codec.s == s && codec.d == d;
         }
         return false;
     }
 
+    @Override
     public int hashCode() {
         return ((b* 37 + h) * 37 + s) * 37 + d;
     }
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/BandSet.java b/src/main/java/org/apache/commons/compress/harmony/pack200/BandSet.java
index 3233778..ace90ec 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/BandSet.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/BandSet.java
@@ -20,7 +20,6 @@ import java.io.IOException;
 import java.io.OutputStream;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Comparator;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -36,7 +35,7 @@ public abstract class BandSet {
 
     // Minimum size of band for each effort level where we consider alternative codecs
     // Note: these values have been tuned - please test carefully if changing them
-    private static final int[] effortThresholds = new int[] {0, 0, 1000, 500, 100, 100, 100, 100, 100, 0};
+    private static final int[] effortThresholds = {0, 0, 1000, 500, 100, 100, 100, 100, 100, 0};
 
     private long[] canonicalLargest;
     private long[] canonicalSmallest;
@@ -46,7 +45,7 @@ public abstract class BandSet {
      * @param effort - the packing effort to be used (must be 1-9)
      * @param header - the segment header
      */
-    public BandSet(int effort, SegmentHeader header) {
+    public BandSet(final int effort, final SegmentHeader header) {
         this.effort = effort;
         this.segmentHeader = header;
     }
@@ -66,7 +65,7 @@ public abstract class BandSet {
      * @return the encoded band
      * @throws Pack200Exception TODO
      */
-    public byte[] encodeScalar(int[] band, BHSDCodec codec) throws Pack200Exception {
+    public byte[] encodeScalar(final int[] band, final BHSDCodec codec) throws Pack200Exception {
         return codec.encode(band);
     }
 
@@ -77,7 +76,7 @@ public abstract class BandSet {
      * @return the encoded value
      * @throws Pack200Exception TODO
      */
-    public byte[] encodeScalar(int value, BHSDCodec codec) throws Pack200Exception {
+    public byte[] encodeScalar(final int value, final BHSDCodec codec) throws Pack200Exception {
         return codec.encode(value);
     }
 
@@ -94,19 +93,19 @@ public abstract class BandSet {
      * @return the encoded band
      * @throws Pack200Exception TODO
      */
-    public byte[] encodeBandInt(String name, int[] ints, BHSDCodec defaultCodec) throws Pack200Exception {
+    public byte[] encodeBandInt(final String name, final int[] ints, final BHSDCodec defaultCodec) throws Pack200Exception {
         byte[] encodedBand = null;
      // Useful for debugging
 //        if(ints.length > 0) {
 //            System.out.println("encoding " + name + " " + ints.length);
 //        }
         if(effort > 1 && (ints.length >= effortThresholds[effort])) {
-            BandAnalysisResults results = analyseBand(name, ints, defaultCodec);
-            Codec betterCodec = results.betterCodec;
+            final BandAnalysisResults results = analyseBand(name, ints, defaultCodec);
+            final Codec betterCodec = results.betterCodec;
             encodedBand = results.encodedBand;
             if(betterCodec != null) {
                 if(betterCodec instanceof BHSDCodec) {
-                    int[] specifierBand = CodecEncoding.getSpecifier(betterCodec, defaultCodec);
+                    final int[] specifierBand = CodecEncoding.getSpecifier(betterCodec, defaultCodec);
                     int specifier = specifierBand[0];
                     if(specifierBand.length > 1) {
                         for (int i = 1; i < specifierBand.length; i++) {
@@ -118,18 +117,20 @@ public abstract class BandSet {
                     } else {
                         specifier = specifier + defaultCodec.getL();
                     }
-                    byte[] specifierEncoded = defaultCodec.encode(new int[] {specifier});
-                    byte[] band = new byte[specifierEncoded.length + encodedBand.length];
+                    final byte[] specifierEncoded = defaultCodec.encode(new int[] {specifier});
+                    final byte[] band = new byte[specifierEncoded.length + encodedBand.length];
                     System.arraycopy(specifierEncoded, 0, band, 0, specifierEncoded.length);
                     System.arraycopy(encodedBand, 0, band, specifierEncoded.length, encodedBand.length);
                     return band;
-                } else if (betterCodec instanceof PopulationCodec) {
-                    int[] extraSpecifierInfo = results.extraMetadata;
+                }
+                if (betterCodec instanceof PopulationCodec) {
+                    final int[] extraSpecifierInfo = results.extraMetadata;
                     for (int i = 0; i < extraSpecifierInfo.length; i++) {
                         segmentHeader.appendBandCodingSpecifier(extraSpecifierInfo[i]);
                     }
                     return encodedBand;
-                } else if (betterCodec instanceof RunCodec) {
+                }
+                if (betterCodec instanceof RunCodec) {
 
                 }
             }
@@ -140,20 +141,21 @@ public abstract class BandSet {
             if(encodedBand == null) {
                 encodedBand = defaultCodec.encode(ints);
             }
-            int first = ints[0];
+            final int first = ints[0];
             if(defaultCodec.getB() != 1) {
                 if (defaultCodec.isSigned() && first >= -256 && first <= -1) {
-                    int specifier = -1 - CodecEncoding.getSpecifierForDefaultCodec(defaultCodec);
-                    byte[] specifierEncoded = defaultCodec.encode(new int[] {specifier});
-                    byte[] band = new byte[specifierEncoded.length + encodedBand.length];
+                    final int specifier = -1 - CodecEncoding.getSpecifierForDefaultCodec(defaultCodec);
+                    final byte[] specifierEncoded = defaultCodec.encode(new int[] {specifier});
+                    final byte[] band = new byte[specifierEncoded.length + encodedBand.length];
                     System.arraycopy(specifierEncoded, 0, band, 0, specifierEncoded.length);
                     System.arraycopy(encodedBand, 0, band, specifierEncoded.length, encodedBand.length);
                     return band;
-                } else if (!defaultCodec.isSigned() && first >= defaultCodec.getL()
+                }
+                if (!defaultCodec.isSigned() && first >= defaultCodec.getL()
                         && first <= defaultCodec.getL() + 255) {
-                    int specifier = CodecEncoding.getSpecifierForDefaultCodec(defaultCodec) + defaultCodec.getL();
-                    byte[] specifierEncoded = defaultCodec.encode(new int[] {specifier});
-                    byte[] band = new byte[specifierEncoded.length + encodedBand.length];
+                    final int specifier = CodecEncoding.getSpecifierForDefaultCodec(defaultCodec) + defaultCodec.getL();
+                    final byte[] specifierEncoded = defaultCodec.encode(new int[] {specifier});
+                    final byte[] band = new byte[specifierEncoded.length + encodedBand.length];
                     System.arraycopy(specifierEncoded, 0, band, 0, specifierEncoded.length);
                     System.arraycopy(encodedBand, 0, band, specifierEncoded.length, encodedBand.length);
                     return band;
@@ -164,10 +166,10 @@ public abstract class BandSet {
         return new byte[0];
     }
 
-    private BandAnalysisResults analyseBand(String name, int[] band,
-            BHSDCodec defaultCodec) throws Pack200Exception {
+    private BandAnalysisResults analyseBand(final String name, final int[] band,
+            final BHSDCodec defaultCodec) throws Pack200Exception {
 
-        BandAnalysisResults results = new BandAnalysisResults();
+        final BandAnalysisResults results = new BandAnalysisResults();
 
         if(canonicalLargest == null) {
             canonicalLargest = new long[116];
@@ -177,10 +179,10 @@ public abstract class BandSet {
                 canonicalSmallest[i] = CodecEncoding.getCanonicalCodec(i).smallest();
             }
         }
-        BandData bandData = new BandData(band);
+        final BandData bandData = new BandData(band);
 
         // Check that there is a reasonable saving to be made
-        byte[] encoded = defaultCodec.encode(band);
+        final byte[] encoded = defaultCodec.encode(band);
         results.encodedBand = encoded;
 
         // Note: these values have been tuned - please test carefully if changing them
@@ -197,8 +199,8 @@ public abstract class BandSet {
 
         // Consider a population codec (but can't be nested)
         if(effort > 3 && !name.equals("POPULATION")) {
-            int numDistinctValues = bandData.numDistinctValues();
-            float distinctValuesAsProportion = (float)numDistinctValues / (float)band.length;
+            final int numDistinctValues = bandData.numDistinctValues();
+            final float distinctValuesAsProportion = (float)numDistinctValues / (float)band.length;
 
             // Note: these values have been tuned - please test carefully if changing them
             if(numDistinctValues < 100 || distinctValuesAsProportion < 0.02 ||  (effort > 6 && distinctValuesAsProportion < 0.04)) { // TODO: tweak
@@ -209,7 +211,7 @@ public abstract class BandSet {
             }
         }
 
-        List codecFamiliesToTry = new ArrayList();
+        final List codecFamiliesToTry = new ArrayList();
 
         // See if the deltas are mainly small increments
         if(bandData.mainlyPositiveDeltas() && bandData.mainlySmallDeltas()) {
@@ -236,34 +238,32 @@ public abstract class BandSet {
                 codecFamiliesToTry.add(CanonicalCodecFamilies.nonDeltaSignedCodecs1);
                 codecFamiliesToTry.add(CanonicalCodecFamilies.nonDeltaSignedCodecs2);
             }
+        } else if (bandData.anyNegatives()) {
+            codecFamiliesToTry.add(CanonicalCodecFamilies.nonDeltaSignedCodecs1);
+            codecFamiliesToTry.add(CanonicalCodecFamilies.nonDeltaSignedCodecs2);
+            codecFamiliesToTry.add(CanonicalCodecFamilies.deltaSignedCodecs1);
+            codecFamiliesToTry.add(CanonicalCodecFamilies.deltaSignedCodecs2);
+            codecFamiliesToTry.add(CanonicalCodecFamilies.deltaSignedCodecs3);
+            codecFamiliesToTry.add(CanonicalCodecFamilies.deltaSignedCodecs4);
+            codecFamiliesToTry.add(CanonicalCodecFamilies.deltaSignedCodecs5);
         } else {
-            if (bandData.anyNegatives()) {
-                codecFamiliesToTry.add(CanonicalCodecFamilies.nonDeltaSignedCodecs1);
-                codecFamiliesToTry.add(CanonicalCodecFamilies.nonDeltaSignedCodecs2);
-                codecFamiliesToTry.add(CanonicalCodecFamilies.deltaSignedCodecs1);
-                codecFamiliesToTry.add(CanonicalCodecFamilies.deltaSignedCodecs2);
-                codecFamiliesToTry.add(CanonicalCodecFamilies.deltaSignedCodecs3);
-                codecFamiliesToTry.add(CanonicalCodecFamilies.deltaSignedCodecs4);
-                codecFamiliesToTry.add(CanonicalCodecFamilies.deltaSignedCodecs5);
-            } else {
-                codecFamiliesToTry.add(CanonicalCodecFamilies.nonDeltaUnsignedCodecs1);
-                codecFamiliesToTry.add(CanonicalCodecFamilies.nonDeltaUnsignedCodecs3);
-                codecFamiliesToTry.add(CanonicalCodecFamilies.nonDeltaUnsignedCodecs4);
-                codecFamiliesToTry.add(CanonicalCodecFamilies.nonDeltaUnsignedCodecs5);
-                codecFamiliesToTry.add(CanonicalCodecFamilies.nonDeltaUnsignedCodecs2);
-                codecFamiliesToTry.add(CanonicalCodecFamilies.deltaUnsignedCodecs1);
-                codecFamiliesToTry.add(CanonicalCodecFamilies.deltaUnsignedCodecs3);
-                codecFamiliesToTry.add(CanonicalCodecFamilies.deltaUnsignedCodecs4);
-                codecFamiliesToTry.add(CanonicalCodecFamilies.deltaUnsignedCodecs5);
-            }
+            codecFamiliesToTry.add(CanonicalCodecFamilies.nonDeltaUnsignedCodecs1);
+            codecFamiliesToTry.add(CanonicalCodecFamilies.nonDeltaUnsignedCodecs3);
+            codecFamiliesToTry.add(CanonicalCodecFamilies.nonDeltaUnsignedCodecs4);
+            codecFamiliesToTry.add(CanonicalCodecFamilies.nonDeltaUnsignedCodecs5);
+            codecFamiliesToTry.add(CanonicalCodecFamilies.nonDeltaUnsignedCodecs2);
+            codecFamiliesToTry.add(CanonicalCodecFamilies.deltaUnsignedCodecs1);
+            codecFamiliesToTry.add(CanonicalCodecFamilies.deltaUnsignedCodecs3);
+            codecFamiliesToTry.add(CanonicalCodecFamilies.deltaUnsignedCodecs4);
+            codecFamiliesToTry.add(CanonicalCodecFamilies.deltaUnsignedCodecs5);
         }
         if(name.equalsIgnoreCase("cpint")) {
             System.out.print("");
         }
 
-        for (Iterator iterator = codecFamiliesToTry.iterator(); iterator
+        for (final Iterator iterator = codecFamiliesToTry.iterator(); iterator
                 .hasNext();) {
-            BHSDCodec[] family = (BHSDCodec[]) iterator.next();
+            final BHSDCodec[] family = (BHSDCodec[]) iterator.next();
             tryCodecs(name, band, defaultCodec, bandData, results, encoded,
                     family);
             if (timeToStop(results)) {
@@ -274,7 +274,7 @@ public abstract class BandSet {
         return results;
     }
 
-    private boolean timeToStop(BandAnalysisResults results) {
+    private boolean timeToStop(final BandAnalysisResults results) {
         // if tried more than effort number of codecs for this band then return
         // Note: these values have been tuned - please test carefully if changing them
         if(effort > 6) {
@@ -285,11 +285,11 @@ public abstract class BandSet {
         // || (float)results.saved/(float)results.encodedBand.length > (float)effort * 2/100;
     }
 
-    private void tryCodecs(String name, int[] band, BHSDCodec defaultCodec, BandData bandData,
-            BandAnalysisResults results, byte[] encoded,
-            BHSDCodec[] potentialCodecs) throws Pack200Exception {
+    private void tryCodecs(final String name, final int[] band, final BHSDCodec defaultCodec, final BandData bandData,
+            final BandAnalysisResults results, final byte[] encoded,
+            final BHSDCodec[] potentialCodecs) throws Pack200Exception {
         for (int i = 0; i < potentialCodecs.length; i++) {
-            BHSDCodec potential = potentialCodecs[i];
+            final BHSDCodec potential = potentialCodecs[i];
             if(potential.equals(defaultCodec)) {
                 return; // don't try codecs with greater cardinality in the same 'family' as the default codec as there won't be any savings
             }
@@ -299,11 +299,11 @@ public abstract class BandSet {
                         && potential.largest() >= bandData.largest
                         && potential.smallest() <= bandData.smallest) {
                     // TODO: can represent some negative deltas with overflow
-                    byte[] encoded2 = potential.encode(band);
+                    final byte[] encoded2 = potential.encode(band);
                     results.numCodecsTried++;
-                    byte[] specifierEncoded = defaultCodec.encode(CodecEncoding
+                    final byte[] specifierEncoded = defaultCodec.encode(CodecEncoding
                             .getSpecifier(potential, null));
-                    int saved = encoded.length - encoded2.length
+                    final int saved = encoded.length - encoded2.length
                             - specifierEncoded.length;
                     if (saved > results.saved) {
                         results.betterCodec = potential;
@@ -313,11 +313,11 @@ public abstract class BandSet {
                 }
             } else if (potential.largest() >= bandData.largest
                     && potential.smallest() <= bandData.smallest) {
-                byte[] encoded2 = potential.encode(band);
+                final byte[] encoded2 = potential.encode(band);
                 results.numCodecsTried++;
-                byte[] specifierEncoded = defaultCodec.encode(CodecEncoding
+                final byte[] specifierEncoded = defaultCodec.encode(CodecEncoding
                         .getSpecifier(potential, null));
-                int saved = encoded.length - encoded2.length
+                final int saved = encoded.length - encoded2.length
                         - specifierEncoded.length;
                 if (saved > results.saved) {
                     results.betterCodec = potential;
@@ -357,16 +357,16 @@ public abstract class BandSet {
 //        }
 //    }
 
-    private void encodeWithPopulationCodec(String name, int[] band,
-            BHSDCodec defaultCodec, BandData bandData, BandAnalysisResults results) throws Pack200Exception {
+    private void encodeWithPopulationCodec(final String name, final int[] band,
+            final BHSDCodec defaultCodec, final BandData bandData, final BandAnalysisResults results) throws Pack200Exception {
         results.numCodecsTried += 3; // quite a bit more effort to try this codec
         final Map distinctValues = bandData.distinctValues;
 
-        List favoured = new ArrayList();
-        for (Iterator iterator = distinctValues.keySet().iterator(); iterator
+        final List favoured = new ArrayList();
+        for (final Iterator iterator = distinctValues.keySet().iterator(); iterator
                 .hasNext();) {
-            Integer value = (Integer) iterator.next();
-            Integer count = (Integer) distinctValues.get(value);
+            final Integer value = (Integer) iterator.next();
+            final Integer count = (Integer) distinctValues.get(value);
             if(count.intValue() > 2 || distinctValues.size() < 256) { // TODO: tweak
                 favoured.add(value);
             }
@@ -374,23 +374,19 @@ public abstract class BandSet {
 
         // Sort the favoured list with the most commonly occurring first
         if(distinctValues.size() > 255) {
-            Collections.sort(favoured, new Comparator() {
-                public int compare(Object arg0, Object arg1) {
-                    return ((Integer)distinctValues.get(arg1)).compareTo((Integer)distinctValues.get(arg0));
-                }
-            });
+            Collections.sort(favoured, (arg0, arg1) -> ((Integer)distinctValues.get(arg1)).compareTo((Integer)distinctValues.get(arg0)));
         }
 
-        IntList unfavoured = new IntList();
-        Map favouredToIndex = new HashMap();
+        final IntList unfavoured = new IntList();
+        final Map favouredToIndex = new HashMap();
         for (int i = 0; i < favoured.size(); i++) {
-            Integer value = (Integer) favoured.get(i);
-            favouredToIndex.put(value, new Integer(i));
+            final Integer value = (Integer) favoured.get(i);
+            favouredToIndex.put(value, Integer.valueOf(i));
         }
 
-        int[] tokens = new int[band.length];
+        final int[] tokens = new int[band.length];
         for (int i = 0; i < band.length; i++) {
-            Integer favouredIndex = (Integer)favouredToIndex.get(new Integer(band[i]));
+            final Integer favouredIndex = (Integer)favouredToIndex.get(Integer.valueOf(band[i]));
             if(favouredIndex == null) {
                 tokens[i] = 0;
                 unfavoured.add(band[i]);
@@ -399,37 +395,37 @@ public abstract class BandSet {
             }
         }
         favoured.add(favoured.get(favoured.size() - 1)); // repeat last value
-        int[] favouredBand = integerListToArray(favoured);
-        int[] unfavouredBand = unfavoured.toArray();
+        final int[] favouredBand = integerListToArray(favoured);
+        final int[] unfavouredBand = unfavoured.toArray();
 
         // Analyse the three bands to get the best codec
-        BandAnalysisResults favouredResults = analyseBand("POPULATION", favouredBand, defaultCodec);
-        BandAnalysisResults unfavouredResults = analyseBand("POPULATION", unfavouredBand, defaultCodec);
+        final BandAnalysisResults favouredResults = analyseBand("POPULATION", favouredBand, defaultCodec);
+        final BandAnalysisResults unfavouredResults = analyseBand("POPULATION", unfavouredBand, defaultCodec);
 
         int tdefL = 0;
         int l = 0;
         Codec tokenCodec = null;
         byte[] tokensEncoded;
-        int k = favoured.size() - 1;
+        final int k = favoured.size() - 1;
         if(k < 256) {
             tdefL = 1;
             tokensEncoded = Codec.BYTE1.encode(tokens);
         } else {
-            BandAnalysisResults tokenResults = analyseBand("POPULATION", tokens, defaultCodec);
+            final BandAnalysisResults tokenResults = analyseBand("POPULATION", tokens, defaultCodec);
             tokenCodec = tokenResults.betterCodec;
             tokensEncoded = tokenResults.encodedBand;
             if(tokenCodec == null) {
                 tokenCodec = defaultCodec;
             }
             l = ((BHSDCodec) tokenCodec).getL();
-            int h = ((BHSDCodec) tokenCodec).getH();
-            int s = ((BHSDCodec) tokenCodec).getS();
-            int b = ((BHSDCodec) tokenCodec).getB();
-            int d = ((BHSDCodec) tokenCodec).isDelta() ? 1 : 0;
+            final int h = ((BHSDCodec) tokenCodec).getH();
+            final int s = ((BHSDCodec) tokenCodec).getS();
+            final int b = ((BHSDCodec) tokenCodec).getB();
+            final int d = ((BHSDCodec) tokenCodec).isDelta() ? 1 : 0;
             if(s == 0 && d == 0) {
                 boolean canUseTDefL = true;
                 if(b > 1) {
-                    BHSDCodec oneLowerB = new BHSDCodec(b-1, h);
+                    final BHSDCodec oneLowerB = new BHSDCodec(b-1, h);
                     if(oneLowerB.largest() >= k) {
                         canUseTDefL = false;
                     }
@@ -474,44 +470,44 @@ public abstract class BandSet {
             }
         }
 
-        byte[] favouredEncoded = favouredResults.encodedBand;
-        byte[] unfavouredEncoded = unfavouredResults.encodedBand;
-        Codec favouredCodec = favouredResults.betterCodec;
-        Codec unfavouredCodec = unfavouredResults.betterCodec;
+        final byte[] favouredEncoded = favouredResults.encodedBand;
+        final byte[] unfavouredEncoded = unfavouredResults.encodedBand;
+        final Codec favouredCodec = favouredResults.betterCodec;
+        final Codec unfavouredCodec = unfavouredResults.betterCodec;
 
         int specifier = 141 + (favouredCodec == null ? 1 : 0) + (4 * tdefL) + (unfavouredCodec == null ? 2 : 0);
-        IntList extraBandMetadata = new IntList(3);
+        final IntList extraBandMetadata = new IntList(3);
         if(favouredCodec != null) {
-            int[] specifiers = CodecEncoding.getSpecifier(favouredCodec, null);
+            final int[] specifiers = CodecEncoding.getSpecifier(favouredCodec, null);
             for (int i = 0; i < specifiers.length; i++) {
                 extraBandMetadata.add(specifiers[i]);
             }
         }
         if(tdefL == 0) {
-            int[] specifiers = CodecEncoding.getSpecifier(tokenCodec, null);
+            final int[] specifiers = CodecEncoding.getSpecifier(tokenCodec, null);
             for (int i = 0; i < specifiers.length; i++) {
                 extraBandMetadata.add(specifiers[i]);
             }
         }
         if(unfavouredCodec != null) {
-            int[] specifiers = CodecEncoding.getSpecifier(unfavouredCodec, null);
+            final int[] specifiers = CodecEncoding.getSpecifier(unfavouredCodec, null);
             for (int i = 0; i < specifiers.length; i++) {
                 extraBandMetadata.add(specifiers[i]);
             }
         }
-        int[] extraMetadata = extraBandMetadata.toArray();
-        byte[] extraMetadataEncoded = Codec.UNSIGNED5.encode(extraMetadata);
+        final int[] extraMetadata = extraBandMetadata.toArray();
+        final byte[] extraMetadataEncoded = Codec.UNSIGNED5.encode(extraMetadata);
         if(defaultCodec.isSigned()) {
             specifier = -1 -specifier;
         } else {
             specifier = specifier + defaultCodec.getL();
         }
-        byte[] firstValueEncoded = defaultCodec.encode(new int[] {specifier});
-        int totalBandLength = firstValueEncoded.length + favouredEncoded.length + tokensEncoded.length + unfavouredEncoded.length;
+        final byte[] firstValueEncoded = defaultCodec.encode(new int[] {specifier});
+        final int totalBandLength = firstValueEncoded.length + favouredEncoded.length + tokensEncoded.length + unfavouredEncoded.length;
 
         if(totalBandLength + extraMetadataEncoded.length < results.encodedBand.length) {
             results.saved += results.encodedBand.length - (totalBandLength + extraMetadataEncoded.length);
-            byte[] encodedBand = new byte[totalBandLength];
+            final byte[] encodedBand = new byte[totalBandLength];
             System.arraycopy(firstValueEncoded, 0, encodedBand, 0, firstValueEncoded.length);
             System.arraycopy(favouredEncoded, 0, encodedBand, firstValueEncoded.length, favouredEncoded.length);
             System.arraycopy(tokensEncoded, 0, encodedBand, firstValueEncoded.length + favouredEncoded.length, tokensEncoded.length);
@@ -543,30 +539,28 @@ public abstract class BandSet {
      * @return the encoded band
      * @throws Pack200Exception TODO
      */
-    protected byte[] encodeFlags(String name, long[] flags, BHSDCodec loCodec, BHSDCodec hiCodec,
-            boolean haveHiFlags) throws Pack200Exception {
+    protected byte[] encodeFlags(final String name, final long[] flags, final BHSDCodec loCodec, final BHSDCodec hiCodec,
+            final boolean haveHiFlags) throws Pack200Exception {
         if(!haveHiFlags) {
-            int[] loBits = new int[flags.length];
+            final int[] loBits = new int[flags.length];
             for (int i = 0; i < flags.length; i++) {
                 loBits[i] = (int) flags[i];
             }
             return encodeBandInt(name, loBits, loCodec);
-        } else {
-
-            int[] hiBits = new int[flags.length];
-            int[] loBits = new int[flags.length];
-            for (int i = 0; i < flags.length; i++) {
-                long l = flags[i];
-                hiBits[i] = (int) (l >> 32);
-                loBits[i] = (int) l;
-            }
-            byte[] hi = encodeBandInt(name, hiBits, hiCodec);
-            byte[] lo = encodeBandInt(name, loBits, loCodec);
-            byte[] total = new byte[hi.length + lo.length];
-            System.arraycopy(hi, 0, total, 0, hi.length);
-            System.arraycopy(lo, 0, total, hi.length + 1, lo.length);
-            return total;
         }
+        final int[] hiBits = new int[flags.length];
+        final int[] loBits = new int[flags.length];
+        for (int i = 0; i < flags.length; i++) {
+            final long l = flags[i];
+            hiBits[i] = (int) (l >> 32);
+            loBits[i] = (int) l;
+        }
+        final byte[] hi = encodeBandInt(name, hiBits, hiCodec);
+        final byte[] lo = encodeBandInt(name, loBits, loCodec);
+        final byte[] total = new byte[hi.length + lo.length];
+        System.arraycopy(hi, 0, total, 0, hi.length);
+        System.arraycopy(lo, 0, total, hi.length + 1, lo.length);
+        return total;
     }
 
     /**
@@ -574,8 +568,8 @@ public abstract class BandSet {
      * @param integerList conversion source.
      * @return conversion result.
      */
-    protected int[] integerListToArray(List integerList) {
-        int[] array = new int[integerList.size()];
+    protected int[] integerListToArray(final List integerList) {
+        final int[] array = new int[integerList.size()];
         for (int i = 0; i < array.length; i++) {
             array[i] = ((Integer)integerList.get(i)).intValue();
         }
@@ -587,8 +581,8 @@ public abstract class BandSet {
      * @param longList conversion source.
      * @return conversion result.
      */
-    protected long[] longListToArray(List longList) {
-        long[] array = new long[longList.size()];
+    protected long[] longListToArray(final List longList) {
+        final long[] array = new long[longList.size()];
         for (int i = 0; i < array.length; i++) {
             array[i] = ((Long)longList.get(i)).longValue();
         }
@@ -600,8 +594,8 @@ public abstract class BandSet {
      * @param list conversion source.
      * @return conversion result.
      */
-    protected int[] cpEntryListToArray(List list) {
-        int[] array = new int[list.size()];
+    protected int[] cpEntryListToArray(final List list) {
+        final int[] array = new int[list.size()];
         for (int i = 0; i < array.length; i++) {
             array[i] = ((ConstantPoolEntry)list.get(i)).getIndex();
             if(array[i] < 0) {
@@ -617,10 +611,10 @@ public abstract class BandSet {
      * @param theList conversion source.
      * @return conversion result.
      */
-    protected int[] cpEntryOrNullListToArray(List theList) {
-        int[] array = new int[theList.size()];
+    protected int[] cpEntryOrNullListToArray(final List theList) {
+        final int[] array = new int[theList.size()];
         for (int j = 0; j < array.length; j++) {
-            ConstantPoolEntry cpEntry = (ConstantPoolEntry) theList.get(j);
+            final ConstantPoolEntry cpEntry = (ConstantPoolEntry) theList.get(j);
             array[j] = cpEntry == null ? 0 : cpEntry.getIndex() + 1;
             if(cpEntry != null && cpEntry.getIndex() < 0) {
                 throw new RuntimeException("Index should be > 0");
@@ -629,20 +623,20 @@ public abstract class BandSet {
         return array;
     }
 
-    protected byte[] encodeFlags(String name, long[][] flags, BHSDCodec loCodec, BHSDCodec hiCodec,
-            boolean haveHiFlags) throws Pack200Exception {
+    protected byte[] encodeFlags(final String name, final long[][] flags, final BHSDCodec loCodec, final BHSDCodec hiCodec,
+            final boolean haveHiFlags) throws Pack200Exception {
         return encodeFlags(name, flatten(flags), loCodec, hiCodec, haveHiFlags);
    }
 
     /*
      * Flatten a 2-dimension array into a 1-dimension array
      */
-    private long[] flatten(long[][] flags) {
+    private long[] flatten(final long[][] flags) {
         int totalSize = 0;
         for (int i = 0; i < flags.length; i++) {
             totalSize += flags[i].length;
         }
-        long[] flatArray = new long[totalSize];
+        final long[] flatArray = new long[totalSize];
         int index = 0;
         for (int i = 0; i < flags.length; i++) {
             for (int j = 0; j < flags[i].length; j++) {
@@ -678,9 +672,9 @@ public abstract class BandSet {
          * Create a new instance of BandData.  The band is then analysed.
          * @param band - the band of integers
          */
-        public BandData(int[] band) {
+        public BandData(final int[] band) {
             this.band = band;
-            Integer one = new Integer(1);
+            final Integer one = Integer.valueOf(1);
             for (int i = 0; i < band.length; i++) {
                 if(band[i] < smallest) {
                     smallest = band[i];
@@ -689,7 +683,7 @@ public abstract class BandSet {
                     largest = band[i];
                 }
                 if(i != 0) {
-                    int delta = band[i] - band[i - 1];
+                    final int delta = band[i] - band[i - 1];
                     if(delta < smallestDelta) {
                         smallestDelta = delta;
                     }
@@ -712,12 +706,12 @@ public abstract class BandSet {
                     if(distinctValues == null) {
                         distinctValues = new HashMap();
                     }
-                    Integer value = new Integer(band[i]);
+                    final Integer value = Integer.valueOf(band[i]);
                     Integer count = (Integer) distinctValues.get(value);
                     if(count == null) {
                         count = one;
                     } else {
-                        count = new Integer(count.intValue() + 1);
+                        count = Integer.valueOf(count.intValue() + 1);
                     }
                     distinctValues.put(value, count);
                 }
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/BcBands.java b/src/main/java/org/apache/commons/compress/harmony/pack200/BcBands.java
index 2ac3c61..128705e 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/BcBands.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/BcBands.java
@@ -34,7 +34,7 @@ public class BcBands extends BandSet {
     private final CpBands cpBands;
     private final Segment segment;
 
-    public BcBands(CpBands cpBands, Segment segment, int effort) {
+    public BcBands(final CpBands cpBands, final Segment segment, final int effort) {
         super(effort, segment.getSegmentHeader());
         this.cpBands = cpBands;
         this.segment = segment;
@@ -81,7 +81,7 @@ public class BcBands extends BandSet {
     private int renumberedOffset;
     private final IntList bcLabelRelativeOffsets = new IntList();
 
-    public void setCurrentClass(String name, String superName) {
+    public void setCurrentClass(final String name, final String superName) {
         currentClass = name;
         superClass = superName;
     }
@@ -98,7 +98,8 @@ public class BcBands extends BandSet {
         bcInitRef = getIndexInClassForConstructor(bcInitRef);
     }
 
-    public void pack(OutputStream out) throws IOException, Pack200Exception {
+    @Override
+    public void pack(final OutputStream out) throws IOException, Pack200Exception {
         PackingUtils.log("Writing byte code bands...");
         byte[] encodedBand = encodeBandInt("bcCodes", bcCodes.toArray(),
                 Codec.BYTE1);
@@ -233,20 +234,20 @@ public class BcBands extends BandSet {
         // out.write(encodeBandInt(integerListToArray(bcEscByte), Codec.BYTE1));
     }
 
-    private List getIndexInClass(List cPMethodOrFieldList) {
-        List indices = new ArrayList(cPMethodOrFieldList.size());
+    private List getIndexInClass(final List cPMethodOrFieldList) {
+        final List indices = new ArrayList(cPMethodOrFieldList.size());
         for (int i = 0; i < cPMethodOrFieldList.size(); i++) {
-            CPMethodOrField cpMF = (CPMethodOrField) cPMethodOrFieldList.get(i);
-            indices.add(new Integer(cpMF.getIndexInClass()));
+            final CPMethodOrField cpMF = (CPMethodOrField) cPMethodOrFieldList.get(i);
+            indices.add(Integer.valueOf(cpMF.getIndexInClass()));
         }
         return indices;
     }
 
-    private List getIndexInClassForConstructor(List cPMethodList) {
-        List indices = new ArrayList(cPMethodList.size());
+    private List getIndexInClassForConstructor(final List cPMethodList) {
+        final List indices = new ArrayList(cPMethodList.size());
         for (int i = 0; i < cPMethodList.size(); i++) {
-            CPMethodOrField cpMF = (CPMethodOrField) cPMethodList.get(i);
-            indices.add(new Integer(cpMF.getIndexInClassForConstructor()));
+            final CPMethodOrField cpMF = (CPMethodOrField) cPMethodList.get(i);
+            indices.add(Integer.valueOf(cpMF.getIndexInClassForConstructor()));
         }
         return indices;
     }
@@ -263,14 +264,15 @@ public class BcBands extends BandSet {
                 throw new RuntimeException("Mistake made with renumbering");
             }
             for (int i = bcLabel.size() - 1; i >= 0; i--) {
-                Object label = bcLabel.get(i);
+                final Object label = bcLabel.get(i);
                 if (label instanceof Integer) {
                     break;
-                } else if (label instanceof Label) {
+                }
+                if (label instanceof Label) {
                     bcLabel.remove(i);
-                    Integer offset = (Integer) labelsToOffsets.get(label);
-                    int relativeOffset = bcLabelRelativeOffsets.get(i);
-                    bcLabel.add(i, new Integer(bciRenumbering.get(offset.intValue()) - bciRenumbering.get(relativeOffset)));
+                    final Integer offset = (Integer) labelsToOffsets.get(label);
+                    final int relativeOffset = bcLabelRelativeOffsets.get(i);
+                    bcLabel.add(i, Integer.valueOf(bciRenumbering.get(offset.intValue()) - bciRenumbering.get(relativeOffset)));
                 }
             }
             bcCodes.add(endMarker);
@@ -283,12 +285,12 @@ public class BcBands extends BandSet {
         }
     }
 
-    public void visitLabel(Label label) {
-        labelsToOffsets.put(label, new Integer(byteCodeOffset));
+    public void visitLabel(final Label label) {
+        labelsToOffsets.put(label, Integer.valueOf(byteCodeOffset));
     }
 
-    public void visitFieldInsn(int opcode, String owner, String name,
-            String desc) {
+    public void visitFieldInsn(int opcode, final String owner, final String name,
+            final String desc) {
         byteCodeOffset += 3;
         updateRenumbering();
         boolean aload_0 = false;
@@ -297,7 +299,7 @@ public class BcBands extends BandSet {
             bcCodes.remove(bcCodes.size() - 1);
             aload_0 = true;
         }
-        CPMethodOrField cpField = cpBands.getCPField(owner, name, desc);
+        final CPMethodOrField cpField = cpBands.getCPField(owner, name, desc);
         if (aload_0) {
             opcode += 7;
         }
@@ -331,7 +333,7 @@ public class BcBands extends BandSet {
         bciRenumbering.add(renumberedOffset);
     }
 
-    public void visitIincInsn(int var, int increment) {
+    public void visitIincInsn(final int var, final int increment) {
         if (var > 255 || increment > 255) {
             byteCodeOffset += 6;
             bcCodes.add(WIDE);
@@ -347,18 +349,17 @@ public class BcBands extends BandSet {
         updateRenumbering();
     }
 
-    public void visitInsn(int opcode) {
+    public void visitInsn(final int opcode) {
         if (opcode >= 202) {
             throw new RuntimeException(
                     "Non-standard bytecode instructions not supported");
-        } else {
-            bcCodes.add(opcode);
-            byteCodeOffset++;
-            updateRenumbering();
         }
+        bcCodes.add(opcode);
+        byteCodeOffset++;
+        updateRenumbering();
     }
 
-    public void visitIntInsn(int opcode, int operand) {
+    public void visitIntInsn(final int opcode, final int operand) {
         switch (opcode) {
         case 17: // sipush
             bcCodes.add(opcode);
@@ -374,7 +375,7 @@ public class BcBands extends BandSet {
         updateRenumbering();
     }
 
-    public void visitJumpInsn(int opcode, Label label) {
+    public void visitJumpInsn(final int opcode, final Label label) {
         bcCodes.add(opcode);
         bcLabel.add(label);
         bcLabelRelativeOffsets.add(byteCodeOffset);
@@ -382,8 +383,8 @@ public class BcBands extends BandSet {
         updateRenumbering();
     }
 
-    public void visitLdcInsn(Object cst) {
-        CPConstant constant = cpBands.getConstant(cst);
+    public void visitLdcInsn(final Object cst) {
+        final CPConstant constant = cpBands.getConstant(cst);
         if (segment.lastConstantHadWideIndex() || constant instanceof CPLong
                 || constant instanceof CPDouble) {
             byteCodeOffset += 3;
@@ -427,7 +428,7 @@ public class BcBands extends BandSet {
         updateRenumbering();
     }
 
-    public void visitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels) {
+    public void visitLookupSwitchInsn(final Label dflt, final int[] keys, final Label[] labels) {
         bcCodes.add(LOOKUPSWITCH);
         bcLabel.add(dflt);
         bcLabelRelativeOffsets.add(byteCodeOffset);
@@ -437,13 +438,13 @@ public class BcBands extends BandSet {
             bcLabel.add(labels[i]);
             bcLabelRelativeOffsets.add(byteCodeOffset);
         }
-        int padding = (byteCodeOffset + 1) % 4 == 0 ? 0 : 4 - ((byteCodeOffset + 1) % 4);
+        final int padding = (byteCodeOffset + 1) % 4 == 0 ? 0 : 4 - ((byteCodeOffset + 1) % 4);
         byteCodeOffset += 1 + padding + 8 + 8 * keys.length;
         updateRenumbering();
     }
 
-    public void visitMethodInsn(int opcode, String owner, String name,
-            String desc) {
+    public void visitMethodInsn(int opcode, final String owner, final String name,
+            final String desc) {
         byteCodeOffset += 3;
         switch (opcode) {
         case 182: // invokevirtual
@@ -495,7 +496,7 @@ public class BcBands extends BandSet {
             break;
         case 185: // invokeinterface
             byteCodeOffset += 2;
-            CPMethodOrField cpIMethod = cpBands.getCPIMethod(owner, name, desc);
+            final CPMethodOrField cpIMethod = cpBands.getCPIMethod(owner, name, desc);
             bcIMethodRef.add(cpIMethod);
             bcCodes.add(INVOKEINTERFACE);
             break;
@@ -503,7 +504,7 @@ public class BcBands extends BandSet {
         updateRenumbering();
     }
 
-    public void visitMultiANewArrayInsn(String desc, int dimensions) {
+    public void visitMultiANewArrayInsn(final String desc, final int dimensions) {
         byteCodeOffset += 4;
         updateRenumbering();
         bcCodes.add(MULTIANEWARRAY);
@@ -511,24 +512,24 @@ public class BcBands extends BandSet {
         bcByte.add(dimensions & 0xFF);
     }
 
-    public void visitTableSwitchInsn(int min, int max, Label dflt,
-            Label[] labels) {
+    public void visitTableSwitchInsn(final int min, final int max, final Label dflt,
+            final Label[] labels) {
         bcCodes.add(TABLESWITCH);
         bcLabel.add(dflt);
         bcLabelRelativeOffsets.add(byteCodeOffset);
         bcCaseValue.add(min);
-        int count = labels.length;
+        final int count = labels.length;
         bcCaseCount.add(count);
         for (int i = 0; i < count; i++) {
             bcLabel.add(labels[i]);
             bcLabelRelativeOffsets.add(byteCodeOffset);
         }
-        int padding = byteCodeOffset % 4 == 0 ? 0 : 4 - (byteCodeOffset % 4);
+        final int padding = byteCodeOffset % 4 == 0 ? 0 : 4 - (byteCodeOffset % 4);
         byteCodeOffset+= (padding + 12 + 4 * labels.length);
         updateRenumbering();
     }
 
-    public void visitTypeInsn(int opcode, String type) {
+    public void visitTypeInsn(final int opcode, final String type) {
         // NEW, ANEWARRAY, CHECKCAST or INSTANCEOF
         byteCodeOffset += 3;
         updateRenumbering();
@@ -539,42 +540,40 @@ public class BcBands extends BandSet {
         }
     }
 
-    public void visitVarInsn(int opcode, int var) {
+    public void visitVarInsn(final int opcode, final int var) {
         // ILOAD, LLOAD, FLOAD, DLOAD, ALOAD, ISTORE, LSTORE, FSTORE, DSTORE, ASTORE or RET
         if (var > 255) {
             byteCodeOffset += 4;
             bcCodes.add(WIDE);
             bcCodes.add(opcode);
             bcLocal.add(var);
+        } else if(var > 3 || opcode == 169 /* RET */) {
+            byteCodeOffset += 2;
+            bcCodes.add(opcode);
+            bcLocal.add(var);
         } else {
-            if(var > 3 || opcode == 169 /* RET */) {
-                byteCodeOffset += 2;
-                bcCodes.add(opcode);
-                bcLocal.add(var);
-            } else {
-                byteCodeOffset +=1;
-                switch(opcode) {
-                case 21: // ILOAD
-                case 54: // ISTORE
-                    bcCodes.add(opcode + 5 + var);
-                    break;
-                case 22: // LLOAD
-                case 55: // LSTORE
-                    bcCodes.add(opcode + 8 + var);
-                    break;
-                case 23: // FLOAD
-                case 56: // FSTORE
-                    bcCodes.add(opcode + 11 + var);
-                    break;
-                case 24: // DLOAD
-                case 57: // DSTORE
-                    bcCodes.add(opcode + 14 + var);
-                    break;
-                case 25: // A_LOAD
-                case 58: // A_STORE
-                    bcCodes.add(opcode + 17 + var);
-                    break;
-                }
+            byteCodeOffset +=1;
+            switch(opcode) {
+            case 21: // ILOAD
+            case 54: // ISTORE
+                bcCodes.add(opcode + 5 + var);
+                break;
+            case 22: // LLOAD
+            case 55: // LSTORE
+                bcCodes.add(opcode + 8 + var);
+                break;
+            case 23: // FLOAD
+            case 56: // FSTORE
+                bcCodes.add(opcode + 11 + var);
+                break;
+            case 24: // DLOAD
+            case 57: // DSTORE
+                bcCodes.add(opcode + 14 + var);
+                break;
+            case 25: // A_LOAD
+            case 58: // A_STORE
+                bcCodes.add(opcode + 17 + var);
+                break;
             }
         }
         updateRenumbering();
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/CPClass.java b/src/main/java/org/apache/commons/compress/harmony/pack200/CPClass.java
index b6d4282..79f667d 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/CPClass.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/CPClass.java
@@ -25,10 +25,10 @@ public class CPClass extends CPConstant implements Comparable {
     private final CPUTF8 utf8;
     private final boolean isInnerClass;
 
-    public CPClass(CPUTF8 utf8) {
+    public CPClass(final CPUTF8 utf8) {
         this.utf8 = utf8;
         this.className = utf8.getUnderlyingString();
-        char[] chars = className.toCharArray();
+        final char[] chars = className.toCharArray();
         for (int i = 0; i < chars.length; i++) {
             if(chars[i] <= 0x2D) {
                 isInnerClass = true;
@@ -38,10 +38,12 @@ public class CPClass extends CPConstant implements Comparable {
         isInnerClass = false;
     }
 
-    public int compareTo(Object arg0) {
+    @Override
+    public int compareTo(final Object arg0) {
         return className.compareTo(((CPClass)arg0).className);
     }
 
+    @Override
     public String toString() {
         return className;
     }
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/CPDouble.java b/src/main/java/org/apache/commons/compress/harmony/pack200/CPDouble.java
index bd4279c..8983b79 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/CPDouble.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/CPDouble.java
@@ -23,11 +23,12 @@ public class CPDouble extends CPConstant {
 
     private final double theDouble;
 
-    public CPDouble(double theDouble) {
+    public CPDouble(final double theDouble) {
         this.theDouble = theDouble;
     }
 
-    public int compareTo(Object obj) {
+    @Override
+    public int compareTo(final Object obj) {
         return Double.compare(theDouble, ((CPDouble)obj).theDouble);
     }
 
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/CPFloat.java b/src/main/java/org/apache/commons/compress/harmony/pack200/CPFloat.java
index e6cdf23..2f600d0 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/CPFloat.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/CPFloat.java
@@ -23,11 +23,12 @@ public class CPFloat extends CPConstant {
 
     private final float theFloat;
 
-    public CPFloat(float theFloat) {
+    public CPFloat(final float theFloat) {
         this.theFloat = theFloat;
     }
 
-    public int compareTo(Object obj) {
+    @Override
+    public int compareTo(final Object obj) {
         return Float.compare(theFloat, ((CPFloat)obj).theFloat);
     }
 
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/CPInt.java b/src/main/java/org/apache/commons/compress/harmony/pack200/CPInt.java
index dfc1563..e1b0ec7 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/CPInt.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/CPInt.java
@@ -23,18 +23,19 @@ public class CPInt extends CPConstant {
 
     private final int theInt;
 
-    public CPInt(int theInt) {
+    public CPInt(final int theInt) {
         this.theInt = theInt;
     }
 
-    public int compareTo(Object obj) {
+    @Override
+    public int compareTo(final Object obj) {
         if(theInt > ((CPInt)obj).theInt) {
             return 1;
-        } else if (theInt == ((CPInt)obj).theInt) {
+        }
+        if (theInt == ((CPInt)obj).theInt) {
             return 0;
-        } else {
-            return -1;
         }
+        return -1;
     }
 
     public int getInt() {
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/CPLong.java b/src/main/java/org/apache/commons/compress/harmony/pack200/CPLong.java
index 6074b2b..698fe17 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/CPLong.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/CPLong.java
@@ -23,24 +23,26 @@ public class CPLong extends CPConstant {
 
     private final long theLong;
 
-    public CPLong(long theLong) {
+    public CPLong(final long theLong) {
         this.theLong = theLong;
     }
 
-    public int compareTo(Object obj) {
+    @Override
+    public int compareTo(final Object obj) {
         if(theLong > ((CPLong)obj).theLong) {
             return 1;
-        } else if (theLong == ((CPLong)obj).theLong) {
+        }
+        if (theLong == ((CPLong)obj).theLong) {
             return 0;
-        } else {
-            return -1;
         }
+        return -1;
     }
 
     public long getLong() {
         return theLong;
     }
 
+    @Override
     public String toString() {
         return "" + theLong;
     }
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/CPMethodOrField.java b/src/main/java/org/apache/commons/compress/harmony/pack200/CPMethodOrField.java
index 8a8a676..93ec4b5 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/CPMethodOrField.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/CPMethodOrField.java
@@ -26,24 +26,25 @@ public class CPMethodOrField extends ConstantPoolEntry implements Comparable {
     private int indexInClass = -1;
     private int indexInClassForConstructor = -1;
 
-    public CPMethodOrField(CPClass className, CPNameAndType nameAndType) {
+    public CPMethodOrField(final CPClass className, final CPNameAndType nameAndType) {
         this.className = className;
         this.nameAndType = nameAndType;
     }
 
+    @Override
     public String toString() {
         return className + ": " + nameAndType;
     }
 
-    public int compareTo(Object obj) {
+    @Override
+    public int compareTo(final Object obj) {
         if (obj instanceof CPMethodOrField) {
-            CPMethodOrField mof = (CPMethodOrField) obj;
-            int compareName = className.compareTo(mof.className);
+            final CPMethodOrField mof = (CPMethodOrField) obj;
+            final int compareName = className.compareTo(mof.className);
             if (compareName == 0) {
                 return nameAndType.compareTo(mof.nameAndType);
-            } else {
-                return compareName;
             }
+            return compareName;
         }
         return 0;
     }
@@ -68,7 +69,7 @@ public class CPMethodOrField extends ConstantPoolEntry implements Comparable {
         return indexInClass;
     }
 
-    public void setIndexInClass(int index) {
+    public void setIndexInClass(final int index) {
         indexInClass = index;
     }
 
@@ -76,7 +77,7 @@ public class CPMethodOrField extends ConstantPoolEntry implements Comparable {
         return indexInClassForConstructor;
     }
 
-    public void setIndexInClassForConstructor(int index) {
+    public void setIndexInClassForConstructor(final int index) {
         indexInClassForConstructor = index;
     }
 
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/CPNameAndType.java b/src/main/java/org/apache/commons/compress/harmony/pack200/CPNameAndType.java
index 95a281b..195c5da 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/CPNameAndType.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/CPNameAndType.java
@@ -24,24 +24,25 @@ public class CPNameAndType extends ConstantPoolEntry implements Comparable {
     private final CPUTF8 name;
     private final CPSignature signature;
 
-    public CPNameAndType(CPUTF8 name, CPSignature signature) {
+    public CPNameAndType(final CPUTF8 name, final CPSignature signature) {
         this.name = name;
         this.signature = signature;
     }
 
+    @Override
     public String toString() {
         return name + ":" + signature;
     }
 
-    public int compareTo(Object obj) {
+    @Override
+    public int compareTo(final Object obj) {
         if (obj instanceof CPNameAndType) {
-            CPNameAndType nat = (CPNameAndType) obj;
-            int compareSignature = signature.compareTo(nat.signature);;
+            final CPNameAndType nat = (CPNameAndType) obj;
+            final int compareSignature = signature.compareTo(nat.signature);
             if(compareSignature == 0) {
                 return name.compareTo(nat.name);
-            } else {
-                return compareSignature;
             }
+            return compareSignature;
         }
         return 0;
     }
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/CPSignature.java b/src/main/java/org/apache/commons/compress/harmony/pack200/CPSignature.java
index 83d806b..2305e05 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/CPSignature.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/CPSignature.java
@@ -28,14 +28,15 @@ public class CPSignature extends ConstantPoolEntry implements Comparable {
     private final String signature;
     private final boolean formStartsWithBracket;
 
-    public CPSignature(String signature, CPUTF8 signatureForm, List classes) {
+    public CPSignature(final String signature, final CPUTF8 signatureForm, final List classes) {
         this.signature = signature;
         this.signatureForm = signatureForm;
         this.classes = classes;
         formStartsWithBracket = signatureForm.toString().startsWith("(");
     }
 
-    public int compareTo(Object arg0) {
+    @Override
+    public int compareTo(final Object arg0) {
         if(signature.equals(((CPSignature) arg0).signature)) {
             return 0;
         }
@@ -52,10 +53,10 @@ public class CPSignature extends ConstantPoolEntry implements Comparable {
         }
         if (classes.size() > 0) {
             for (int i = classes.size() - 1; i >=0; i--) {
-                CPClass cpClass = (CPClass) classes.get(i);
-                CPClass compareClass = (CPClass) ((CPSignature) arg0).classes
+                final CPClass cpClass = (CPClass) classes.get(i);
+                final CPClass compareClass = (CPClass) ((CPSignature) arg0).classes
                         .get(i);
-                int classComp = cpClass.compareTo(compareClass);
+                final int classComp = cpClass.compareTo(compareClass);
                 if(classComp != 0) {
                     return classComp;
                 }
@@ -72,6 +73,7 @@ public class CPSignature extends ConstantPoolEntry implements Comparable {
         return classes;
     }
 
+    @Override
     public String toString() {
         return signature;
     }
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/CPString.java b/src/main/java/org/apache/commons/compress/harmony/pack200/CPString.java
index 4b24767..197f837 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/CPString.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/CPString.java
@@ -24,15 +24,17 @@ public class CPString extends CPConstant {
     private final String string;
     private final CPUTF8 utf8;
 
-    public CPString(CPUTF8 utf8) {
+    public CPString(final CPUTF8 utf8) {
         this.utf8 = utf8;
         this.string = utf8.getUnderlyingString();
     }
 
-    public int compareTo(Object arg0) {
+    @Override
+    public int compareTo(final Object arg0) {
         return string.compareTo(((CPString)arg0).string);
     }
 
+    @Override
     public String toString() {
         return string;
     }
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/CPUTF8.java b/src/main/java/org/apache/commons/compress/harmony/pack200/CPUTF8.java
index d2de3a3..f0b2dae 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/CPUTF8.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/CPUTF8.java
@@ -23,14 +23,16 @@ public class CPUTF8 extends ConstantPoolEntry implements Comparable {
 
     private final String string;
 
-    public CPUTF8(String string) {
+    public CPUTF8(final String string) {
         this.string = string;
     }
 
-    public int compareTo(Object arg0) {
+    @Override
+    public int compareTo(final Object arg0) {
         return string.compareTo(((CPUTF8)arg0).string);
     }
 
+    @Override
     public String toString() {
         return string;
     }
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/CanonicalCodecFamilies.java b/src/main/java/org/apache/commons/compress/harmony/pack200/CanonicalCodecFamilies.java
index dbdf123..e7d6c26 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/CanonicalCodecFamilies.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/CanonicalCodecFamilies.java
@@ -25,7 +25,7 @@ public class CanonicalCodecFamilies {
     // Families of codecs for bands of positive integers that do not correlate
     // well (i.e. would not benefit from delta encoding)
 
-    public static BHSDCodec[] nonDeltaUnsignedCodecs1 = new BHSDCodec[] {
+    public static BHSDCodec[] nonDeltaUnsignedCodecs1 = {
      // (1,256) is a special case and is considered separately so shouldn't be included here
 //        CodecEncoding.getCanonicalCodec(1), // (1,256)
         CodecEncoding.getCanonicalCodec(5), // (2,256)
@@ -33,7 +33,7 @@ public class CanonicalCodecFamilies {
         CodecEncoding.getCanonicalCodec(13) // (4,256)
     };
 
-    public static BHSDCodec[] nonDeltaUnsignedCodecs2 = new BHSDCodec[] {
+    public static BHSDCodec[] nonDeltaUnsignedCodecs2 = {
         CodecEncoding.getCanonicalCodec(17), // (5,4)
         CodecEncoding.getCanonicalCodec(20), // (5,16)
         CodecEncoding.getCanonicalCodec(23), // (5,32)
@@ -41,7 +41,7 @@ public class CanonicalCodecFamilies {
         CodecEncoding.getCanonicalCodec(29) // (5,128)
     };
 
-    public static BHSDCodec[] nonDeltaUnsignedCodecs3 = new BHSDCodec[] {
+    public static BHSDCodec[] nonDeltaUnsignedCodecs3 = {
         CodecEncoding.getCanonicalCodec(47), // (2,192)
         CodecEncoding.getCanonicalCodec(48), // (2,224)
         CodecEncoding.getCanonicalCodec(49), // (2,240)
@@ -49,7 +49,7 @@ public class CanonicalCodecFamilies {
         CodecEncoding.getCanonicalCodec(51) // (2,252)
     };
 
-    public static BHSDCodec[] nonDeltaUnsignedCodecs4 = new BHSDCodec[] {
+    public static BHSDCodec[] nonDeltaUnsignedCodecs4 = {
         CodecEncoding.getCanonicalCodec(70), // (3,192)
         CodecEncoding.getCanonicalCodec(71), // (3,224)
         CodecEncoding.getCanonicalCodec(72), // (3,240)
@@ -57,7 +57,7 @@ public class CanonicalCodecFamilies {
         CodecEncoding.getCanonicalCodec(74) // (3,252)
     };
 
-    public static BHSDCodec[] nonDeltaUnsignedCodecs5 = new BHSDCodec[] {
+    public static BHSDCodec[] nonDeltaUnsignedCodecs5 = {
         CodecEncoding.getCanonicalCodec(93), // (4,192)
         CodecEncoding.getCanonicalCodec(94), // (4,224)
         CodecEncoding.getCanonicalCodec(95), // (4,240)
@@ -68,14 +68,14 @@ public class CanonicalCodecFamilies {
     // Families of codecs for bands of positive integers that do correlate well
     // and would benefit from delta encoding
 
-    public static BHSDCodec[] deltaUnsignedCodecs1 = new BHSDCodec[] {
+    public static BHSDCodec[] deltaUnsignedCodecs1 = {
         CodecEncoding.getCanonicalCodec(3), // (1,256,0,1)
         CodecEncoding.getCanonicalCodec(7), // (2,256,0,1)
         CodecEncoding.getCanonicalCodec(11), // (3,256,0,1)
         CodecEncoding.getCanonicalCodec(15) // (4,256,0,1)
     };
 
-    public static BHSDCodec[] deltaUnsignedCodecs2 = new BHSDCodec[] {
+    public static BHSDCodec[] deltaUnsignedCodecs2 = {
         CodecEncoding.getCanonicalCodec(32), // (5,4,0,1)
         CodecEncoding.getCanonicalCodec(35), // (5,16,0,1)
         CodecEncoding.getCanonicalCodec(38), // (5,32,0,1)
@@ -83,7 +83,7 @@ public class CanonicalCodecFamilies {
         CodecEncoding.getCanonicalCodec(44) // (5,128,0,1)
     };
 
-    public static BHSDCodec[] deltaUnsignedCodecs3 = new BHSDCodec[] {
+    public static BHSDCodec[] deltaUnsignedCodecs3 = {
         CodecEncoding.getCanonicalCodec(52), // (2,8,0,1)
         CodecEncoding.getCanonicalCodec(54), // (2,16,0,1)
         CodecEncoding.getCanonicalCodec(56), // (2,32,0,1)
@@ -95,7 +95,7 @@ public class CanonicalCodecFamilies {
         CodecEncoding.getCanonicalCodec(68) // (2,248,0,1)
     };
 
-    public static BHSDCodec[] deltaUnsignedCodecs4 = new BHSDCodec[] {
+    public static BHSDCodec[] deltaUnsignedCodecs4 = {
         CodecEncoding.getCanonicalCodec(75), // (3,8,0,1)
         CodecEncoding.getCanonicalCodec(77), // (3,16,0,1)
         CodecEncoding.getCanonicalCodec(79), // (3,32,0,1)
@@ -107,7 +107,7 @@ public class CanonicalCodecFamilies {
         CodecEncoding.getCanonicalCodec(91) // (3,248,0,1)
     };
 
-    public static BHSDCodec[] deltaUnsignedCodecs5 = new BHSDCodec[] {
+    public static BHSDCodec[] deltaUnsignedCodecs5 = {
         CodecEncoding.getCanonicalCodec(98), // (4,8,0,1)
         CodecEncoding.getCanonicalCodec(100), // (4,16,0,1)
         CodecEncoding.getCanonicalCodec(102), // (4,32,0,1)
@@ -122,14 +122,14 @@ public class CanonicalCodecFamilies {
     // Families of codecs for bands containing positive and negative integers
     // that do correlate well (i.e. delta encoding is used)
 
-    public static BHSDCodec[] deltaSignedCodecs1 = new BHSDCodec[] {
+    public static BHSDCodec[] deltaSignedCodecs1 = {
         CodecEncoding.getCanonicalCodec(4), // (1,256,1,1)
         CodecEncoding.getCanonicalCodec(8), // (2,256,1,1)
         CodecEncoding.getCanonicalCodec(12), // (3,256,1,1)
         CodecEncoding.getCanonicalCodec(16) // (4,256,1,1)
     };
 
-    public static BHSDCodec[] deltaSignedCodecs2 = new BHSDCodec[] {
+    public static BHSDCodec[] deltaSignedCodecs2 = {
         CodecEncoding.getCanonicalCodec(33), // (5,4,1,1)
         CodecEncoding.getCanonicalCodec(36), // (5,16,1,1)
         CodecEncoding.getCanonicalCodec(39), // (5,32,1,1)
@@ -137,7 +137,7 @@ public class CanonicalCodecFamilies {
         CodecEncoding.getCanonicalCodec(45) // (5,128,1,1)
     };
 
-    public static BHSDCodec[] deltaSignedCodecs3 = new BHSDCodec[] {
+    public static BHSDCodec[] deltaSignedCodecs3 = {
         CodecEncoding.getCanonicalCodec(53), // (2,8,1,1)
         CodecEncoding.getCanonicalCodec(55), // (2,16,1,1)
         CodecEncoding.getCanonicalCodec(57), // (2,32,1,1)
@@ -149,7 +149,7 @@ public class CanonicalCodecFamilies {
         CodecEncoding.getCanonicalCodec(69) // (2,248,1,1)
     };
 
-    public static BHSDCodec[] deltaSignedCodecs4 = new BHSDCodec[] {
+    public static BHSDCodec[] deltaSignedCodecs4 = {
         CodecEncoding.getCanonicalCodec(76), // (3,8,1,1)
         CodecEncoding.getCanonicalCodec(78), // (3,16,1,1)
         CodecEncoding.getCanonicalCodec(80), // (3,32,1,1)
@@ -161,7 +161,7 @@ public class CanonicalCodecFamilies {
         CodecEncoding.getCanonicalCodec(92) // (3,248,1,1)
     };
 
-    public static BHSDCodec[] deltaSignedCodecs5 = new BHSDCodec[] {
+    public static BHSDCodec[] deltaSignedCodecs5 = {
         CodecEncoding.getCanonicalCodec(99), // (4,8,1,1)
         CodecEncoding.getCanonicalCodec(101), // (4,16,1,1)
         CodecEncoding.getCanonicalCodec(103), // (4,32,1,1)
@@ -173,7 +173,7 @@ public class CanonicalCodecFamilies {
         CodecEncoding.getCanonicalCodec(115) // (4,248,1,1)
     };
 
-    public static BHSDCodec[] deltaDoubleSignedCodecs1 = new BHSDCodec[] {
+    public static BHSDCodec[] deltaDoubleSignedCodecs1 = {
         CodecEncoding.getCanonicalCodec(34), // (5,4,2,1)
         CodecEncoding.getCanonicalCodec(37), // (5,16,2,1)
         CodecEncoding.getCanonicalCodec(40), // (5,32,2,1)
@@ -184,14 +184,14 @@ public class CanonicalCodecFamilies {
     // Families of codecs for bands containing positive and negative values that
     // do not correlate well (i.e. delta encoding is not used)
 
-    public static BHSDCodec[] nonDeltaSignedCodecs1 = new BHSDCodec[] {
+    public static BHSDCodec[] nonDeltaSignedCodecs1 = {
         CodecEncoding.getCanonicalCodec(2), // (1,256,1)
         CodecEncoding.getCanonicalCodec(6), // (2,256,1)
         CodecEncoding.getCanonicalCodec(10), // (3,256,1)
         CodecEncoding.getCanonicalCodec(14) // (4,256,1)
     };
 
-    public static BHSDCodec[] nonDeltaSignedCodecs2 = new BHSDCodec[] {
+    public static BHSDCodec[] nonDeltaSignedCodecs2 = {
         CodecEncoding.getCanonicalCodec(18), // (5,4,1)
         CodecEncoding.getCanonicalCodec(21), // (5,16,1)
         CodecEncoding.getCanonicalCodec(24), // (5,32,1)
@@ -199,7 +199,7 @@ public class CanonicalCodecFamilies {
         CodecEncoding.getCanonicalCodec(30) // (5,128,1)
     };
 
-    public static BHSDCodec[] nonDeltaDoubleSignedCodecs1 = new BHSDCodec[] {
+    public static BHSDCodec[] nonDeltaDoubleSignedCodecs1 = {
         CodecEncoding.getCanonicalCodec(19), // (5,4,2)
         CodecEncoding.getCanonicalCodec(22), // (5,16,2)
         CodecEncoding.getCanonicalCodec(25), // (5,32,2)
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/ClassBands.java b/src/main/java/org/apache/commons/compress/harmony/pack200/ClassBands.java
index b852b90..029a0e1 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/ClassBands.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/ClassBands.java
@@ -139,7 +139,7 @@ public class ClassBands extends BandSet {
     private List classInnerClassesOuterRCN;
     private List classInnerClassesNameRUN;
 
-    public ClassBands(Segment segment, int numClasses, int effort, boolean stripDebug) throws IOException {
+    public ClassBands(final Segment segment, final int numClasses, final int effort, final boolean stripDebug) throws IOException {
         super(effort, segment.getSegmentHeader());
         this.stripDebug = stripDebug;
         this.segment = segment;
@@ -177,30 +177,30 @@ public class ClassBands extends BandSet {
     }
 
     private void createNewAttributeBands() throws IOException {
-        List classAttributeLayouts = attrBands.getClassAttributeLayouts();
-        for (Iterator iterator = classAttributeLayouts.iterator(); iterator.hasNext();) {
-            AttributeDefinition def = (AttributeDefinition) iterator.next();
+        final List classAttributeLayouts = attrBands.getClassAttributeLayouts();
+        for (final Iterator iterator = classAttributeLayouts.iterator(); iterator.hasNext();) {
+            final AttributeDefinition def = (AttributeDefinition) iterator.next();
             classAttributeBands.add(new NewAttributeBands(effort, cpBands, segment.getSegmentHeader(), def));
         }
-        List methodAttributeLayouts = attrBands.getMethodAttributeLayouts();
-        for (Iterator iterator = methodAttributeLayouts.iterator(); iterator.hasNext();) {
-            AttributeDefinition def = (AttributeDefinition) iterator.next();
+        final List methodAttributeLayouts = attrBands.getMethodAttributeLayouts();
+        for (final Iterator iterator = methodAttributeLayouts.iterator(); iterator.hasNext();) {
+            final AttributeDefinition def = (AttributeDefinition) iterator.next();
             methodAttributeBands.add(new NewAttributeBands(effort, cpBands, segment.getSegmentHeader(), def));
         }
-        List fieldAttributeLayouts = attrBands.getFieldAttributeLayouts();
-        for (Iterator iterator = fieldAttributeLayouts.iterator(); iterator.hasNext();) {
-            AttributeDefinition def = (AttributeDefinition) iterator.next();
+        final List fieldAttributeLayouts = attrBands.getFieldAttributeLayouts();
+        for (final Iterator iterator = fieldAttributeLayouts.iterator(); iterator.hasNext();) {
+            final AttributeDefinition def = (AttributeDefinition) iterator.next();
             fieldAttributeBands.add(new NewAttributeBands(effort, cpBands, segment.getSegmentHeader(), def));
         }
-        List codeAttributeLayouts = attrBands.getCodeAttributeLayouts();
-        for (Iterator iterator = codeAttributeLayouts.iterator(); iterator.hasNext();) {
-            AttributeDefinition def = (AttributeDefinition) iterator.next();
+        final List codeAttributeLayouts = attrBands.getCodeAttributeLayouts();
+        for (final Iterator iterator = codeAttributeLayouts.iterator(); iterator.hasNext();) {
+            final AttributeDefinition def = (AttributeDefinition) iterator.next();
             codeAttributeBands.add(new NewAttributeBands(effort, cpBands, segment.getSegmentHeader(), def));
         }
     }
 
-    public void addClass(int major, int flags, String className,
-            String signature, String superName, String[] interfaces) {
+    public void addClass(final int major, int flags, final String className,
+            final String signature, final String superName, final String[] interfaces) {
         class_this[index] = cpBands.getCPClass(className);
         class_super[index] = cpBands.getCPClass(superName);
         class_interface_count[index] = interfaces.length;
@@ -224,9 +224,9 @@ public class ClassBands extends BandSet {
         }
     }
 
-    public void currentClassReferencesInnerClass(CPClass inner) {
+    public void currentClassReferencesInnerClass(final CPClass inner) {
         if(!(index >= class_this.length)) {
-            CPClass currentClass = class_this[index];
+            final CPClass currentClass = class_this[index];
             if(currentClass != null && !currentClass.equals(inner) && !isInnerClassOf(currentClass.toString(), inner)) {
                 Set referencedInnerClasses = (Set)classReferencesInnerClass.get(currentClass);
                 if(referencedInnerClasses == null) {
@@ -238,24 +238,23 @@ public class ClassBands extends BandSet {
         }
     }
 
-    private boolean isInnerClassOf(String possibleInner, CPClass possibleOuter) {
+    private boolean isInnerClassOf(final String possibleInner, final CPClass possibleOuter) {
         if(isInnerClass(possibleInner)) {
-            String superClassName = possibleInner.substring(0, possibleInner.lastIndexOf('$'));
+            final String superClassName = possibleInner.substring(0, possibleInner.lastIndexOf('$'));
             if(superClassName.equals(possibleOuter.toString())) {
                 return true;
-            } else { // do this recursively
-                return isInnerClassOf(superClassName, possibleOuter);
             }
+            return isInnerClassOf(superClassName, possibleOuter);
         }
         return false;
     }
 
-    private boolean isInnerClass(String possibleInner) {
+    private boolean isInnerClass(final String possibleInner) {
         return possibleInner.indexOf('$') != -1;
     }
 
-    public void addField(int flags, String name, String desc, String signature,
-            Object value) {
+    public void addField(int flags, final String name, final String desc, final String signature,
+            final Object value) {
         flags = flags & 0xFFFF;
         tempFieldDesc.add(cpBands.getCPNameAndType(name, desc));
         if (signature != null) {
@@ -274,7 +273,7 @@ public class ClassBands extends BandSet {
             cpBands.addCPUtf8("Synthetic");
             anySyntheticFields = true;
         }
-        tempFieldFlags.add(new Long(flags));
+        tempFieldFlags.add(Long.valueOf(flags));
     }
 
     /**
@@ -283,9 +282,9 @@ public class ClassBands extends BandSet {
      * do while classes were being read.
      */
     public void finaliseBands() {
-        int defaultMajorVersion = segmentHeader.getDefaultMajorVersion();
+        final int defaultMajorVersion = segmentHeader.getDefaultMajorVersion();
         for (int i = 0; i < class_flags.length; i++) {
-            int major = major_versions[i];
+            final int major = major_versions[i];
             if (major != defaultMajorVersion) {
                 class_flags[i] |= 1 << 24;
                 classFileVersionMajor.add(major);
@@ -296,21 +295,21 @@ public class ClassBands extends BandSet {
         codeHeaders = new int[codeHandlerCount.size()];
         int removed = 0;
         for (int i = 0; i < codeHeaders.length; i++) {
-            int numHandlers = codeHandlerCount.get(i - removed);
-            int maxLocals = codeMaxLocals.get(i - removed);
-            int maxStack = codeMaxStack.get(i - removed);
+            final int numHandlers = codeHandlerCount.get(i - removed);
+            final int maxLocals = codeMaxLocals.get(i - removed);
+            final int maxStack = codeMaxStack.get(i - removed);
             if (numHandlers == 0) {
-                int header = maxLocals * 12 + maxStack + 1;
+                final int header = maxLocals * 12 + maxStack + 1;
                 if (header < 145 && maxStack < 12) {
                     codeHeaders[i] = header;
                 }
             } else if (numHandlers == 1) {
-                int header = maxLocals * 8 + maxStack + 145;
+                final int header = maxLocals * 8 + maxStack + 145;
                 if (header < 209 && maxStack < 8) {
                     codeHeaders[i] = header;
                 }
             } else if (numHandlers == 2) {
-                int header = maxLocals * 7 + maxStack + 209;
+                final int header = maxLocals * 7 + maxStack + 209;
                 if (header < 256 && maxStack < 7) {
                     codeHeaders[i] = header;
                 }
@@ -323,29 +322,29 @@ public class ClassBands extends BandSet {
                 codeMaxStack.remove(i - removed);
                 removed++;
             } else if (!segment.getSegmentHeader().have_all_code_flags()) {
-                codeFlags.add(new Long(0));
+                codeFlags.add(Long.valueOf(0));
             }
         }
 
         // Compute any required IcLocals
-        IntList innerClassesN = new IntList();
-        List icLocal = new ArrayList();
+        final IntList innerClassesN = new IntList();
+        final List icLocal = new ArrayList();
         for (int i = 0; i < class_this.length; i++) {
-            CPClass cpClass = class_this[i];
-            Set referencedInnerClasses = (Set) classReferencesInnerClass.get(cpClass);
+            final CPClass cpClass = class_this[i];
+            final Set referencedInnerClasses = (Set) classReferencesInnerClass.get(cpClass);
             if(referencedInnerClasses != null) {
                 int innerN = 0;
-                List innerClasses = segment.getIcBands().getInnerClassesForOuter(cpClass.toString());
+                final List innerClasses = segment.getIcBands().getInnerClassesForOuter(cpClass.toString());
                 if(innerClasses != null) {
-                    for (Iterator iterator2 = innerClasses.iterator(); iterator2
+                    for (final Iterator iterator2 = innerClasses.iterator(); iterator2
                             .hasNext();) {
                         referencedInnerClasses.remove(((IcTuple)iterator2.next()).C);
                     }
                 }
-                for (Iterator iterator2 = referencedInnerClasses.iterator(); iterator2
+                for (final Iterator iterator2 = referencedInnerClasses.iterator(); iterator2
                         .hasNext();) {
-                    CPClass inner = (CPClass) iterator2.next();
-                    IcTuple icTuple = segment.getIcBands().getIcTuple(inner);
+                    final CPClass inner = (CPClass) iterator2.next();
+                    final IcTuple icTuple = segment.getIcBands().getIcTuple(inner);
                     if(icTuple != null && ! icTuple.isAnonymous()) {
                         // should transmit an icLocal entry
                         icLocal.add(icTuple);
@@ -364,7 +363,7 @@ public class ClassBands extends BandSet {
         classInnerClassesOuterRCN = new ArrayList();
         classInnerClassesNameRUN = new ArrayList();
         for (int i = 0; i < class_InnerClasses_RC.length; i++) {
-            IcTuple icTuple = (IcTuple) icLocal.get(i);
+            final IcTuple icTuple = (IcTuple) icLocal.get(i);
             class_InnerClasses_RC[i] = (icTuple.C);
             if(icTuple.C2 == null && icTuple.N == null) {
                 class_InnerClasses_F[i] = 0;
@@ -379,10 +378,10 @@ public class ClassBands extends BandSet {
             }
         }
         // Calculate any backwards calls from metadata bands
-        IntList classAttrCalls = new IntList();
-        IntList fieldAttrCalls = new IntList();
-        IntList methodAttrCalls = new IntList();
-        IntList codeAttrCalls = new IntList();
+        final IntList classAttrCalls = new IntList();
+        final IntList fieldAttrCalls = new IntList();
+        final IntList methodAttrCalls = new IntList();
+        final IntList codeAttrCalls = new IntList();
 
         if(class_RVA_bands.hasContent()) {
             classAttrCalls.add(class_RVA_bands.numBackwardsCalls());
@@ -413,49 +412,47 @@ public class ClassBands extends BandSet {
         }
 
         // Sort non-predefined attribute bands
-        Comparator comparator = new Comparator() {
-            public int compare(Object arg0, Object arg1) {
-                NewAttributeBands bands0 = (NewAttributeBands)arg0;
-                NewAttributeBands bands1 = (NewAttributeBands)arg1;
-                return bands0.getFlagIndex() - bands1.getFlagIndex();
-            }
+        final Comparator comparator = (arg0, arg1) -> {
+            final NewAttributeBands bands0 = (NewAttributeBands)arg0;
+            final NewAttributeBands bands1 = (NewAttributeBands)arg1;
+            return bands0.getFlagIndex() - bands1.getFlagIndex();
         };
         Collections.sort(classAttributeBands, comparator);
         Collections.sort(methodAttributeBands, comparator);
         Collections.sort(fieldAttributeBands, comparator);
         Collections.sort(codeAttributeBands, comparator);
 
-        for (Iterator iterator = classAttributeBands.iterator(); iterator.hasNext();) {
-            NewAttributeBands bands = (NewAttributeBands) iterator.next();
+        for (final Iterator iterator = classAttributeBands.iterator(); iterator.hasNext();) {
+            final NewAttributeBands bands = (NewAttributeBands) iterator.next();
             if(bands.isUsedAtLeastOnce()) {
-                int[] backwardsCallCounts = bands.numBackwardsCalls();
+                final int[] backwardsCallCounts = bands.numBackwardsCalls();
                 for (int i = 0; i < backwardsCallCounts.length; i++) {
                     classAttrCalls.add(backwardsCallCounts[i]);
                 }
             }
         }
-        for (Iterator iterator = methodAttributeBands.iterator(); iterator.hasNext();) {
-            NewAttributeBands bands = (NewAttributeBands) iterator.next();
+        for (final Iterator iterator = methodAttributeBands.iterator(); iterator.hasNext();) {
+            final NewAttributeBands bands = (NewAttributeBands) iterator.next();
             if(bands.isUsedAtLeastOnce()) {
-                int[] backwardsCallCounts = bands.numBackwardsCalls();
+                final int[] backwardsCallCounts = bands.numBackwardsCalls();
                 for (int i = 0; i < backwardsCallCounts.length; i++) {
                     methodAttrCalls.add(backwardsCallCounts[i]);
                 }
             }
         }
-        for (Iterator iterator = fieldAttributeBands.iterator(); iterator.hasNext();) {
-            NewAttributeBands bands = (NewAttributeBands) iterator.next();
+        for (final Iterator iterator = fieldAttributeBands.iterator(); iterator.hasNext();) {
+            final NewAttributeBands bands = (NewAttributeBands) iterator.next();
             if(bands.isUsedAtLeastOnce()) {
-                int[] backwardsCallCounts = bands.numBackwardsCalls();
+                final int[] backwardsCallCounts = bands.numBackwardsCalls();
                 for (int i = 0; i < backwardsCallCounts.length; i++) {
                     fieldAttrCalls.add(backwardsCallCounts[i]);
                 }
             }
         }
-        for (Iterator iterator = codeAttributeBands.iterator(); iterator.hasNext();) {
-            NewAttributeBands bands = (NewAttributeBands) iterator.next();
+        for (final Iterator iterator = codeAttributeBands.iterator(); iterator.hasNext();) {
+            final NewAttributeBands bands = (NewAttributeBands) iterator.next();
             if(bands.isUsedAtLeastOnce()) {
-                int[] backwardsCallCounts = bands.numBackwardsCalls();
+                final int[] backwardsCallCounts = bands.numBackwardsCalls();
                 for (int i = 0; i < backwardsCallCounts.length; i++) {
                     codeAttrCalls.add(backwardsCallCounts[i]);
                 }
@@ -468,7 +465,8 @@ public class ClassBands extends BandSet {
         code_attr_calls = codeAttrCalls.toArray();
     }
 
-    public void pack(OutputStream out) throws IOException, Pack200Exception {
+    @Override
+    public void pack(final OutputStream out) throws IOException, Pack200Exception {
         PackingUtils.log("Writing class bands...");
 
         byte[] encodedBand = encodeBandInt("class_this", getInts(class_this),
@@ -490,13 +488,13 @@ public class ClassBands extends BandSet {
                 + " bytes from class_interface_count["
                 + class_interface_count.length + "]");
 
-        int totalInterfaces = sum(class_interface_count);
-        int[] classInterface = new int[totalInterfaces];
+        final int totalInterfaces = sum(class_interface_count);
+        final int[] classInterface = new int[totalInterfaces];
         int k = 0;
         for (int i = 0; i < class_interface.length; i++) {
             if (class_interface[i] != null) {
                 for (int j = 0; j < class_interface[i].length; j++) {
-                    CPClass cpClass = class_interface[i][j];
+                    final CPClass cpClass = class_interface[i][j];
                     classInterface[k] = cpClass.getIndex();
                     k++;
                 }
@@ -523,12 +521,12 @@ public class ClassBands extends BandSet {
                 + " bytes from class_method_count[" + class_method_count.length
                 + "]");
 
-        int totalFields = sum(class_field_count);
-        int[] fieldDescr = new int[totalFields];
+        final int totalFields = sum(class_field_count);
+        final int[] fieldDescr = new int[totalFields];
         k = 0;
         for (int i = 0; i < index; i++) {
             for (int j = 0; j < field_descr[i].length; j++) {
-                CPNameAndType descr = field_descr[i][j];
+                final CPNameAndType descr = field_descr[i][j];
                 fieldDescr[k] = descr.getIndex();
                 k++;
             }
@@ -541,12 +539,12 @@ public class ClassBands extends BandSet {
 
         writeFieldAttributeBands(out);
 
-        int totalMethods = sum(class_method_count);
-        int[] methodDescr = new int[totalMethods];
+        final int totalMethods = sum(class_method_count);
+        final int[] methodDescr = new int[totalMethods];
         k = 0;
         for (int i = 0; i < index; i++) {
             for (int j = 0; j < method_descr[i].length; j++) {
-                CPNameAndType descr = method_descr[i][j];
+                final CPNameAndType descr = method_descr[i][j];
                 methodDescr[k] = descr.getIndex();
                 k++;
             }
@@ -562,7 +560,7 @@ public class ClassBands extends BandSet {
         writeCodeBands(out);
     }
 
-    private int sum(int[] ints) {
+    private int sum(final int[] ints) {
         int sum = 0;
         for (int i = 0; i < ints.length; i++) {
             sum += ints[i];
@@ -570,7 +568,7 @@ public class ClassBands extends BandSet {
         return sum;
     }
 
-    private void writeFieldAttributeBands(OutputStream out) throws IOException,
+    private void writeFieldAttributeBands(final OutputStream out) throws IOException,
             Pack200Exception {
         byte[] encodedBand = encodeFlags("field_flags", field_flags,
                 Codec.UNSIGNED5, Codec.UNSIGNED5, segmentHeader
@@ -603,14 +601,14 @@ public class ClassBands extends BandSet {
 
         field_RVA_bands.pack(out);
         field_RIA_bands.pack(out);
-        for (Iterator iterator = fieldAttributeBands.iterator(); iterator
+        for (final Iterator iterator = fieldAttributeBands.iterator(); iterator
                 .hasNext();) {
-            NewAttributeBands bands = (NewAttributeBands) iterator.next();
+            final NewAttributeBands bands = (NewAttributeBands) iterator.next();
             bands.pack(out);
         }
     }
 
-    private void writeMethodAttributeBands(OutputStream out)
+    private void writeMethodAttributeBands(final OutputStream out)
             throws IOException, Pack200Exception {
         byte[] encodedBand = encodeFlags("method_flags", method_flags,
                 Codec.UNSIGNED5, Codec.UNSIGNED5, segmentHeader
@@ -655,14 +653,14 @@ public class ClassBands extends BandSet {
         method_RVPA_bands.pack(out);
         method_RIPA_bands.pack(out);
         method_AD_bands.pack(out);
-        for (Iterator iterator = methodAttributeBands.iterator(); iterator
+        for (final Iterator iterator = methodAttributeBands.iterator(); iterator
                 .hasNext();) {
-            NewAttributeBands bands = (NewAttributeBands) iterator.next();
+            final NewAttributeBands bands = (NewAttributeBands) iterator.next();
             bands.pack(out);
         }
     }
 
-    private void writeClassAttributeBands(OutputStream out) throws IOException,
+    private void writeClassAttributeBands(final OutputStream out) throws IOException,
             Pack200Exception {
         byte[] encodedBand = encodeFlags("class_flags", class_flags,
                 Codec.UNSIGNED5, Codec.UNSIGNED5, segmentHeader
@@ -770,15 +768,15 @@ public class ClassBands extends BandSet {
                 + " bytes from classFileVersionMajor["
                 + classFileVersionMajor.size() + "]");
 
-        for (Iterator iterator = classAttributeBands.iterator(); iterator
+        for (final Iterator iterator = classAttributeBands.iterator(); iterator
                 .hasNext();) {
-            NewAttributeBands bands = (NewAttributeBands) iterator.next();
+            final NewAttributeBands bands = (NewAttributeBands) iterator.next();
             bands.pack(out);
         }
     }
 
-    private int[] getInts(CPClass[] cpClasses) {
-        int[] ints = new int[cpClasses.length];
+    private int[] getInts(final CPClass[] cpClasses) {
+        final int[] ints = new int[cpClasses.length];
         for (int i = 0; i < ints.length; i++) {
             if(cpClasses[i] != null) {
                 ints[i] = cpClasses[i].getIndex();
@@ -787,7 +785,7 @@ public class ClassBands extends BandSet {
         return ints;
     }
 
-    private void writeCodeBands(OutputStream out) throws IOException,
+    private void writeCodeBands(final OutputStream out) throws IOException,
             Pack200Exception {
         byte[] encodedBand = encodeBandInt("codeHeaders", codeHeaders,
                 Codec.BYTE1);
@@ -845,7 +843,7 @@ public class ClassBands extends BandSet {
         writeCodeAttributeBands(out);
     }
 
-    private void writeCodeAttributeBands(OutputStream out) throws IOException,
+    private void writeCodeAttributeBands(final OutputStream out) throws IOException,
             Pack200Exception {
         byte[] encodedBand = encodeFlags("codeFlags",
                 longListToArray(codeFlags), Codec.UNSIGNED5, Codec.UNSIGNED5,
@@ -973,15 +971,15 @@ public class ClassBands extends BandSet {
                 + " bytes from code_LocalVariableTypeTable_slot["
                 + codeLocalVariableTypeTableSlot.size() + "]");
 
-        for (Iterator iterator = codeAttributeBands.iterator(); iterator.hasNext();) {
-            NewAttributeBands bands = (NewAttributeBands) iterator.next();
+        for (final Iterator iterator = codeAttributeBands.iterator(); iterator.hasNext();) {
+            final NewAttributeBands bands = (NewAttributeBands) iterator.next();
             bands.pack(out);
         }
     }
 
-    public void addMethod(int flags, String name, String desc,
-            String signature, String[] exceptions) {
-        CPNameAndType nt = cpBands.getCPNameAndType(name, desc);
+    public void addMethod(int flags, final String name, final String desc,
+            final String signature, final String[] exceptions) {
+        final CPNameAndType nt = cpBands.getCPNameAndType(name, desc);
         tempMethodDesc.add(nt);
         if (signature != null) {
             methodSignature.add(cpBands.getCPSignature(signature));
@@ -998,7 +996,7 @@ public class ClassBands extends BandSet {
             flags = flags & ~Opcodes.ACC_DEPRECATED;
             flags = flags | (1<<20);
         }
-        tempMethodFlags.add(new Long(flags));
+        tempMethodFlags.add(Long.valueOf(flags));
         numMethodArgs = countArgs(desc);
         if(!anySyntheticMethods && ((flags & (1 << 12)) != 0) && segment.getCurrentClassReader().hasSyntheticAttributes()) {
             cpBands.addCPUtf8("Synthetic");
@@ -1026,27 +1024,28 @@ public class ClassBands extends BandSet {
             tempMethodRIPA = null;
         }
         if(codeFlags.size() > 0) {
-            long latestCodeFlag = ((Long)codeFlags.get(codeFlags.size() - 1)).longValue();
-            int latestLocalVariableTableN = codeLocalVariableTableN.get(codeLocalVariableTableN.size() - 1);
+            final long latestCodeFlag = ((Long)codeFlags.get(codeFlags.size() - 1)).longValue();
+            final int latestLocalVariableTableN = codeLocalVariableTableN.get(codeLocalVariableTableN.size() - 1);
             if(latestCodeFlag == (1 << 2) && latestLocalVariableTableN == 0) {
                 codeLocalVariableTableN.remove(codeLocalVariableTableN.size() - 1);
                 codeFlags.remove(codeFlags.size() - 1);
-                codeFlags.add(new Integer(0));
+                codeFlags.add(Integer.valueOf(0));
             }
         }
     }
 
-    protected static int countArgs(String descriptor) {
-        int bra = descriptor.indexOf('(');
-        int ket = descriptor.indexOf(')');
-        if (bra == -1 || ket == -1 || ket < bra)
+    protected static int countArgs(final String descriptor) {
+        final int bra = descriptor.indexOf('(');
+        final int ket = descriptor.indexOf(')');
+        if (bra == -1 || ket == -1 || ket < bra) {
             throw new IllegalArgumentException("No arguments");
+        }
 
         boolean inType = false;
         boolean consumingNextType = false;
         int count = 0;
         for (int i = bra + 1; i < ket; i++) {
-            char charAt = descriptor.charAt(i);
+            final char charAt = descriptor.charAt(i);
             if (inType && charAt == ';') {
                 inType = false;
                 consumingNextType = false;
@@ -1057,17 +1056,13 @@ public class ClassBands extends BandSet {
                 consumingNextType = true;
             } else if (inType) {
                 // NOP
+            } else if (consumingNextType) {
+                count++;
+                consumingNextType = false;
+            } else if (charAt == 'D' || charAt == 'J') {
+                count += 2;
             } else {
-                if (consumingNextType) {
-                    count++;
-                    consumingNextType = false;
-                } else {
-                    if (charAt == 'D' || charAt == 'J') {
-                        count += 2;
-                    } else {
-                        count++;
-                    }
-                }
+                count++;
             }
         }
         return count;
@@ -1075,7 +1070,7 @@ public class ClassBands extends BandSet {
 
     public void endOfClass() { // All the data for the current class has been
                                 // read
-        int numFields = tempFieldDesc.size();
+        final int numFields = tempFieldDesc.size();
         class_field_count[index] = numFields;
         field_descr[index] = new CPNameAndType[numFields];
         field_flags[index] = new long[numFields];
@@ -1083,7 +1078,7 @@ public class ClassBands extends BandSet {
             field_descr[index][i] = (CPNameAndType) tempFieldDesc.get(i);
             field_flags[index][i] = ((Long) tempFieldFlags.get(i)).longValue();
         }
-        int numMethods = tempMethodDesc.size();
+        final int numMethods = tempMethodDesc.size();
         class_method_count[index] = numMethods;
         method_descr[index] = new CPNameAndType[numMethods];
         method_flags[index] = new long[numMethods];
@@ -1099,7 +1094,7 @@ public class ClassBands extends BandSet {
         index++;
     }
 
-    public void addSourceFile(String source) {
+    public void addSourceFile(final String source) {
         String implicitSourceFileName = class_this[index].toString();
         if(implicitSourceFileName.indexOf('$') != -1) {
             implicitSourceFileName = implicitSourceFileName.substring(0, implicitSourceFileName.indexOf('$'));
@@ -1115,21 +1110,21 @@ public class ClassBands extends BandSet {
         class_flags[index] |= (1 << 17);
     }
 
-    public void addEnclosingMethod(String owner, String name, String desc) {
+    public void addEnclosingMethod(final String owner, final String name, final String desc) {
         class_flags[index] |= (1 << 18);
         classEnclosingMethodClass.add(cpBands.getCPClass(owner));
         classEnclosingMethodDesc.add(name == null ? null : cpBands
                 .getCPNameAndType(name, desc));
     }
 
-    public void addClassAttribute(NewAttribute attribute) {
+    public void addClassAttribute(final NewAttribute attribute) {
         // TODO: backwards calls
-        String attributeName = attribute.type;
-        for (Iterator iterator = classAttributeBands.iterator(); iterator.hasNext();) {
-            NewAttributeBands bands = (NewAttributeBands) iterator.next();
+        final String attributeName = attribute.type;
+        for (final Iterator iterator = classAttributeBands.iterator(); iterator.hasNext();) {
+            final NewAttributeBands bands = (NewAttributeBands) iterator.next();
             if(bands.getAttributeName().equals(attributeName)) {
                 bands.addAttribute(attribute);
-                int flagIndex = bands.getFlagIndex();
+                final int flagIndex = bands.getFlagIndex();
                 class_flags[index] |= (1 << flagIndex);
                 return;
             }
@@ -1137,55 +1132,55 @@ public class ClassBands extends BandSet {
         throw new RuntimeException("No suitable definition for " + attributeName);
     }
 
-    public void addFieldAttribute(NewAttribute attribute) {
-        String attributeName = attribute.type;
-        for (Iterator iterator = fieldAttributeBands.iterator(); iterator.hasNext();) {
-            NewAttributeBands bands = (NewAttributeBands) iterator.next();
+    public void addFieldAttribute(final NewAttribute attribute) {
+        final String attributeName = attribute.type;
+        for (final Iterator iterator = fieldAttributeBands.iterator(); iterator.hasNext();) {
+            final NewAttributeBands bands = (NewAttributeBands) iterator.next();
             if(bands.getAttributeName().equals(attributeName)) {
                 bands.addAttribute(attribute);
-                int flagIndex = bands.getFlagIndex();
-                Long flags = (Long)tempFieldFlags.remove(tempFieldFlags.size() - 1);
-                tempFieldFlags.add(new Long(flags.longValue() | (1 << flagIndex)));
+                final int flagIndex = bands.getFlagIndex();
+                final Long flags = (Long)tempFieldFlags.remove(tempFieldFlags.size() - 1);
+                tempFieldFlags.add(Long.valueOf(flags.longValue() | (1 << flagIndex)));
                 return;
             }
         }
         throw new RuntimeException("No suitable definition for " + attributeName);
     }
 
-    public void addMethodAttribute(NewAttribute attribute) {
-        String attributeName = attribute.type;
-        for (Iterator iterator = methodAttributeBands.iterator(); iterator.hasNext();) {
-            NewAttributeBands bands = (NewAttributeBands) iterator.next();
+    public void addMethodAttribute(final NewAttribute attribute) {
+        final String attributeName = attribute.type;
+        for (final Iterator iterator = methodAttributeBands.iterator(); iterator.hasNext();) {
+            final NewAttributeBands bands = (NewAttributeBands) iterator.next();
             if(bands.getAttributeName().equals(attributeName)) {
                 bands.addAttribute(attribute);
-                int flagIndex = bands.getFlagIndex();
-                Long flags = (Long)tempMethodFlags.remove(tempMethodFlags.size() - 1);
-                tempMethodFlags.add(new Long(flags.longValue() | (1 << flagIndex)));
+                final int flagIndex = bands.getFlagIndex();
+                final Long flags = (Long)tempMethodFlags.remove(tempMethodFlags.size() - 1);
+                tempMethodFlags.add(Long.valueOf(flags.longValue() | (1 << flagIndex)));
                 return;
             }
         }
         throw new RuntimeException("No suitable definition for " + attributeName);
     }
 
-    public void addCodeAttribute(NewAttribute attribute) {
-        String attributeName = attribute.type;
-        for (Iterator iterator = codeAttributeBands.iterator(); iterator.hasNext();) {
-            NewAttributeBands bands = (NewAttributeBands) iterator.next();
+    public void addCodeAttribute(final NewAttribute attribute) {
+        final String attributeName = attribute.type;
+        for (final Iterator iterator = codeAttributeBands.iterator(); iterator.hasNext();) {
+            final NewAttributeBands bands = (NewAttributeBands) iterator.next();
             if(bands.getAttributeName().equals(attributeName)) {
                 bands.addAttribute(attribute);
-                int flagIndex = bands.getFlagIndex();
-                Long flags = (Long)codeFlags.remove(codeFlags.size() - 1);
-                codeFlags.add(new Long(flags.longValue() | (1 << flagIndex)));
+                final int flagIndex = bands.getFlagIndex();
+                final Long flags = (Long)codeFlags.remove(codeFlags.size() - 1);
+                codeFlags.add(Long.valueOf(flags.longValue() | (1 << flagIndex)));
                 return;
             }
         }
         throw new RuntimeException("No suitable definition for " + attributeName);
     }
 
-    public void addMaxStack(int maxStack, int maxLocals) {
-        Long latestFlag = (Long) tempMethodFlags
+    public void addMaxStack(final int maxStack, int maxLocals) {
+        final Long latestFlag = (Long) tempMethodFlags
                 .remove(tempMethodFlags.size() - 1);
-        Long newFlag = new Long(latestFlag.intValue() | (1 << 17));
+        final Long newFlag = Long.valueOf(latestFlag.intValue() | (1 << 17));
         tempMethodFlags.add(newFlag);
         codeMaxStack.add(maxStack);
         if ((newFlag.longValue() & (1 << 3)) == 0) { // not static
@@ -1198,13 +1193,13 @@ public class ClassBands extends BandSet {
     public void addCode() {
         codeHandlerCount.add(0);
         if(!stripDebug) {
-            codeFlags.add(new Long((1 << 2)));
+            codeFlags.add(Long.valueOf(1 << 2));
             codeLocalVariableTableN.add(0);
         }
     }
 
-    public void addHandler(Label start, Label end, Label handler, String type) {
-        int handlers = codeHandlerCount.remove(codeHandlerCount
+    public void addHandler(final Label start, final Label end, final Label handler, final String type) {
+        final int handlers = codeHandlerCount.remove(codeHandlerCount
                 .size() - 1);
         codeHandlerCount.add(handlers + 1);
         codeHandlerStartP.add(start);
@@ -1213,11 +1208,11 @@ public class ClassBands extends BandSet {
         codeHandlerClass.add(type == null ? null : cpBands.getCPClass(type));
     }
 
-    public void addLineNumber(int line, Label start) {
-        Long latestCodeFlag = (Long) codeFlags.get(codeFlags.size() - 1);
+    public void addLineNumber(final int line, final Label start) {
+        final Long latestCodeFlag = (Long) codeFlags.get(codeFlags.size() - 1);
         if ((latestCodeFlag.intValue() & (1 << 1)) == 0) {
             codeFlags.remove(codeFlags.size() - 1);
-            codeFlags.add(new Long(latestCodeFlag.intValue() | (1 << 1)));
+            codeFlags.add(Long.valueOf(latestCodeFlag.intValue() | (1 << 1)));
             codeLineNumberTableN.add(1);
         } else {
             codeLineNumberTableN
@@ -1227,13 +1222,13 @@ public class ClassBands extends BandSet {
         codeLineNumberTableBciP.add(start);
     }
 
-    public void addLocalVariable(String name, String desc, String signature,
-            Label start, Label end, int indx) {
+    public void addLocalVariable(final String name, final String desc, final String signature,
+            final Label start, final Label end, final int indx) {
         if (signature != null) { // LocalVariableTypeTable attribute
-            Long latestCodeFlag = (Long) codeFlags.get(codeFlags.size() - 1);
+            final Long latestCodeFlag = (Long) codeFlags.get(codeFlags.size() - 1);
             if ((latestCodeFlag.intValue() & (1 << 3)) == 0) {
                 codeFlags.remove(codeFlags.size() - 1);
-                codeFlags.add(new Long(latestCodeFlag.intValue() | (1 << 3)));
+                codeFlags.add(Long.valueOf(latestCodeFlag.intValue() | (1 << 3)));
                 codeLocalVariableTypeTableN.add(1);
             } else {
                 codeLocalVariableTypeTableN
@@ -1256,7 +1251,7 @@ public class ClassBands extends BandSet {
         codeLocalVariableTableSlot.add(indx);
     }
 
-    public void doBciRenumbering(IntList bciRenumbering, Map labelsToOffsets) {
+    public void doBciRenumbering(final IntList bciRenumbering, final Map labelsToOffsets) {
         renumberBci(codeLineNumberTableBciP, bciRenumbering, labelsToOffsets);
         renumberBci(codeLocalVariableTableBciP, bciRenumbering, labelsToOffsets);
         renumberOffsetBci(codeLocalVariableTableBciP,
@@ -1272,47 +1267,49 @@ public class ClassBands extends BandSet {
         renumberDoubleOffsetBci(codeHandlerStartP, codeHandlerEndPO, codeHandlerCatchPO,
                 bciRenumbering, labelsToOffsets);
 
-        for (Iterator iterator = classAttributeBands.iterator(); iterator.hasNext();) {
-            NewAttributeBands newAttributeBandSet = (NewAttributeBands) iterator.next();
+        for (final Iterator iterator = classAttributeBands.iterator(); iterator.hasNext();) {
+            final NewAttributeBands newAttributeBandSet = (NewAttributeBands) iterator.next();
             newAttributeBandSet.renumberBci(bciRenumbering, labelsToOffsets);
         }
-        for (Iterator iterator = methodAttributeBands.iterator(); iterator.hasNext();) {
-            NewAttributeBands newAttributeBandSet = (NewAttributeBands) iterator.next();
+        for (final Iterator iterator = methodAttributeBands.iterator(); iterator.hasNext();) {
+            final NewAttributeBands newAttributeBandSet = (NewAttributeBands) iterator.next();
             newAttributeBandSet.renumberBci(bciRenumbering, labelsToOffsets);
         }
-        for (Iterator iterator = fieldAttributeBands.iterator(); iterator.hasNext();) {
-            NewAttributeBands newAttributeBandSet = (NewAttributeBands) iterator.next();
+        for (final Iterator iterator = fieldAttributeBands.iterator(); iterator.hasNext();) {
+            final NewAttributeBands newAttributeBandSet = (NewAttributeBands) iterator.next();
             newAttributeBandSet.renumberBci(bciRenumbering, labelsToOffsets);
         }
-        for (Iterator iterator = codeAttributeBands.iterator(); iterator.hasNext();) {
-            NewAttributeBands newAttributeBandSet = (NewAttributeBands) iterator.next();
+        for (final Iterator iterator = codeAttributeBands.iterator(); iterator.hasNext();) {
+            final NewAttributeBands newAttributeBandSet = (NewAttributeBands) iterator.next();
             newAttributeBandSet.renumberBci(bciRenumbering, labelsToOffsets);
         }
     }
 
-    private void renumberBci(List list, IntList bciRenumbering, Map labelsToOffsets) {
+    private void renumberBci(final List list, final IntList bciRenumbering, final Map labelsToOffsets) {
         for (int i = list.size() - 1; i >= 0; i--) {
-            Object label = list.get(i);
+            final Object label = list.get(i);
             if (label instanceof Integer) {
                 break;
-            } else if (label instanceof Label) {
+            }
+            if (label instanceof Label) {
                 list.remove(i);
-                Integer bytecodeIndex = (Integer) labelsToOffsets.get(label);
-                list.add(i, new Integer(bciRenumbering.get(bytecodeIndex.intValue())));
+                final Integer bytecodeIndex = (Integer) labelsToOffsets.get(label);
+                list.add(i, Integer.valueOf(bciRenumbering.get(bytecodeIndex.intValue())));
             }
         }
     }
 
-    private void renumberOffsetBci(List relative, List list,
-            IntList bciRenumbering, Map labelsToOffsets) {
+    private void renumberOffsetBci(final List relative, final List list,
+            final IntList bciRenumbering, final Map labelsToOffsets) {
         for (int i = list.size() - 1; i >= 0; i--) {
-            Object label = list.get(i);
+            final Object label = list.get(i);
             if (label instanceof Integer) {
                 break;
-            } else if (label instanceof Label) {
+            }
+            if (label instanceof Label) {
                 list.remove(i);
-                Integer bytecodeIndex = (Integer) labelsToOffsets.get(label);
-                Integer renumberedOffset = new Integer(bciRenumbering
+                final Integer bytecodeIndex = (Integer) labelsToOffsets.get(label);
+                final Integer renumberedOffset = Integer.valueOf(bciRenumbering
                         .get(bytecodeIndex.intValue())
                         - ((Integer) relative.get(i)).intValue());
                 list.add(i, renumberedOffset);
@@ -1320,17 +1317,18 @@ public class ClassBands extends BandSet {
         }
     }
 
-    private void renumberDoubleOffsetBci(List relative, List firstOffset, List list,
-            IntList bciRenumbering, Map labelsToOffsets) {
+    private void renumberDoubleOffsetBci(final List relative, final List firstOffset, final List list,
+            final IntList bciRenumbering, final Map labelsToOffsets) {
         // TODO: There's probably a nicer way of doing this...
         for (int i = list.size() - 1; i >= 0; i--) {
-            Object label = list.get(i);
+            final Object label = list.get(i);
             if (label instanceof Integer) {
                 break;
-            } else if (label instanceof Label) {
+            }
+            if (label instanceof Label) {
                 list.remove(i);
-                Integer bytecodeIndex = (Integer) labelsToOffsets.get(label);
-                Integer renumberedOffset = new Integer(bciRenumbering
+                final Integer bytecodeIndex = (Integer) labelsToOffsets.get(label);
+                final Integer renumberedOffset = Integer.valueOf(bciRenumbering
                         .get(bytecodeIndex.intValue())
                         - ((Integer) relative.get(i)).intValue() - ((Integer) firstOffset.get(i)).intValue());
                 list.add(i, renumberedOffset);
@@ -1350,22 +1348,22 @@ public class ClassBands extends BandSet {
         return anySyntheticMethods;
     }
 
-    public void addParameterAnnotation(int parameter, String desc,
-            boolean visible, List nameRU, List t, List values, List caseArrayN, List nestTypeRS, List nestNameRU, List nestPairN) {
+    public void addParameterAnnotation(final int parameter, final String desc,
+            final boolean visible, final List nameRU, final List t, final List values, final List caseArrayN, final List nestTypeRS, final List nestNameRU, final List nestPairN) {
         if(visible) {
             if(tempMethodRVPA == null) {
                 tempMethodRVPA = new TempParamAnnotation(numMethodArgs);
                 tempMethodRVPA.addParameterAnnotation(parameter, desc, nameRU, t, values, caseArrayN, nestTypeRS, nestNameRU, nestPairN);
             }
-            Long flag = (Long) tempMethodFlags.remove(tempMethodFlags.size() - 1);
-            tempMethodFlags.add(new Long(flag.longValue() | (1<<23)));
+            final Long flag = (Long) tempMethodFlags.remove(tempMethodFlags.size() - 1);
+            tempMethodFlags.add(Long.valueOf(flag.longValue() | (1<<23)));
         } else {
             if(tempMethodRIPA == null) {
                 tempMethodRIPA = new TempParamAnnotation(numMethodArgs);
                 tempMethodRIPA.addParameterAnnotation(parameter, desc, nameRU, t, values, caseArrayN, nestTypeRS, nestNameRU, nestPairN);
             }
-            Long flag = (Long) tempMethodFlags.remove(tempMethodFlags.size() - 1);
-            tempMethodFlags.add(new Long(flag.longValue() | (1<<24)));
+            final Long flag = (Long) tempMethodFlags.remove(tempMethodFlags.size() - 1);
+            tempMethodFlags.add(Long.valueOf(flag.longValue() | (1<<24)));
         }
     }
 
@@ -1383,14 +1381,14 @@ public class ClassBands extends BandSet {
         List nestNameRU = new ArrayList();
         List nestPairN = new ArrayList();
 
-        public TempParamAnnotation (int numParams) {
+        public TempParamAnnotation (final int numParams) {
             this.numParams = numParams;
             annoN = new int[numParams];
         }
 
-        public void addParameterAnnotation(int parameter, String desc,
-                List nameRU, List t, List values, List caseArrayN,
-                List nestTypeRS, List nestNameRU, List nestPairN) {
+        public void addParameterAnnotation(final int parameter, final String desc,
+                final List nameRU, final List t, final List values, final List caseArrayN,
+                final List nestTypeRS, final List nestNameRU, final List nestPairN) {
             annoN[parameter]++;
             typeRS.add(desc);
             pairN.add(nameRU.size());
@@ -1404,7 +1402,7 @@ public class ClassBands extends BandSet {
         }
     }
 
-    public void addAnnotation(int context, String desc, boolean visible, List nameRU, List t, List values, List caseArrayN, List nestTypeRS, List nestNameRU, List nestPairN) {
+    public void addAnnotation(final int context, final String desc, final boolean visible, final List nameRU, final List t, final List values, final List caseArrayN, final List nestTypeRS, final List nestNameRU, final List nestPairN) {
         switch (context) {
         case MetadataBandGroup.CONTEXT_CLASS:
             if(visible) {
@@ -1428,52 +1426,52 @@ public class ClassBands extends BandSet {
         case MetadataBandGroup.CONTEXT_FIELD:
             if(visible) {
                 field_RVA_bands.addAnnotation(desc, nameRU, t, values, caseArrayN, nestTypeRS, nestNameRU, nestPairN);
-                Long flag = (Long) tempFieldFlags.remove(tempFieldFlags.size() - 1);
+                final Long flag = (Long) tempFieldFlags.remove(tempFieldFlags.size() - 1);
                 if((flag.intValue() & (1<<21)) != 0) {
                     field_RVA_bands.incrementAnnoN();
                 } else {
                     field_RVA_bands.newEntryInAnnoN();
                 }
-                tempFieldFlags.add(new Long(flag.intValue() | (1<<21)));
+                tempFieldFlags.add(Long.valueOf(flag.intValue() | (1<<21)));
             } else {
                 field_RIA_bands.addAnnotation(desc, nameRU, t, values, caseArrayN, nestTypeRS, nestNameRU, nestPairN);
-                Long flag = (Long) tempFieldFlags.remove(tempFieldFlags.size() - 1);
+                final Long flag = (Long) tempFieldFlags.remove(tempFieldFlags.size() - 1);
                 if((flag.intValue() & (1<<22)) != 0) {
                     field_RIA_bands.incrementAnnoN();
                 } else {
                     field_RIA_bands.newEntryInAnnoN();
                 }
-                tempFieldFlags.add(new Long(flag.intValue() | (1<<22)));
+                tempFieldFlags.add(Long.valueOf(flag.intValue() | (1<<22)));
             }
             break;
         case MetadataBandGroup.CONTEXT_METHOD:
             if(visible) {
                 method_RVA_bands.addAnnotation(desc, nameRU, t, values, caseArrayN, nestTypeRS, nestNameRU, nestPairN);
-                Long flag = (Long) tempMethodFlags.remove(tempMethodFlags.size() - 1);
+                final Long flag = (Long) tempMethodFlags.remove(tempMethodFlags.size() - 1);
                 if((flag.intValue() & (1<<21)) != 0) {
                     method_RVA_bands.incrementAnnoN();
                 } else {
                     method_RVA_bands.newEntryInAnnoN();
                 }
-                tempMethodFlags.add(new Long(flag.intValue() | (1<<21)));
+                tempMethodFlags.add(Long.valueOf(flag.intValue() | (1<<21)));
             } else {
                 method_RIA_bands.addAnnotation(desc, nameRU, t, values, caseArrayN, nestTypeRS, nestNameRU, nestPairN);
-                Long flag = (Long) tempMethodFlags.remove(tempMethodFlags.size() - 1);
+                final Long flag = (Long) tempMethodFlags.remove(tempMethodFlags.size() - 1);
                 if((flag.intValue() & (1<<22)) != 0) {
                     method_RIA_bands.incrementAnnoN();
                 } else {
                     method_RIA_bands.newEntryInAnnoN();
                 }
-                tempMethodFlags.add(new Long(flag.intValue() | (1<<22)));
+                tempMethodFlags.add(Long.valueOf(flag.intValue() | (1<<22)));
             }
             break;
         }
     }
 
-    public void addAnnotationDefault(List nameRU, List t, List values, List caseArrayN, List nestTypeRS, List nestNameRU, List nestPairN) {
+    public void addAnnotationDefault(final List nameRU, final List t, final List values, final List caseArrayN, final List nestTypeRS, final List nestNameRU, final List nestPairN) {
         method_AD_bands.addAnnotation(null, nameRU, t, values, caseArrayN, nestTypeRS, nestNameRU, nestPairN);
-        Long flag = (Long) tempMethodFlags.remove(tempMethodFlags.size() - 1);
-        tempMethodFlags.add(new Long(flag.longValue() | (1<<25)));
+        final Long flag = (Long) tempMethodFlags.remove(tempMethodFlags.size() - 1);
+        tempMethodFlags.add(Long.valueOf(flag.longValue() | (1<<25)));
     }
 
     /**
@@ -1500,9 +1498,9 @@ public class ClassBands extends BandSet {
         if ((class_flags[index] & (1 << 22)) != 0) {
             class_RIA_bands.removeLatest();
         }
-        for (Iterator iterator = tempFieldFlags.iterator(); iterator.hasNext();) {
-            Long flagsL = (Long) iterator.next();
-            long flags = flagsL.longValue();
+        for (final Iterator iterator = tempFieldFlags.iterator(); iterator.hasNext();) {
+            final Long flagsL = (Long) iterator.next();
+            final long flags = flagsL.longValue();
             if ((flags & (1 << 19)) != 0) {
                 fieldSignature.remove(fieldSignature.size() - 1);
             }
@@ -1516,14 +1514,14 @@ public class ClassBands extends BandSet {
                 field_RIA_bands.removeLatest();
             }
         }
-        for (Iterator iterator = tempMethodFlags.iterator(); iterator.hasNext();) {
-            Long flagsL = (Long) iterator.next();
-            long flags = flagsL.longValue();
+        for (final Iterator iterator = tempMethodFlags.iterator(); iterator.hasNext();) {
+            final Long flagsL = (Long) iterator.next();
+            final long flags = flagsL.longValue();
             if ((flags & (1 << 19)) != 0) {
                 methodSignature.remove(methodSignature.size() - 1);
             }
             if ((flags & (1 << 18)) != 0) {
-                int exceptions = methodExceptionNumber
+                final int exceptions = methodExceptionNumber
                         .remove(methodExceptionNumber.size() - 1);
                 for (int i = 0; i < exceptions; i++) {
                     methodExceptionClasses
@@ -1533,22 +1531,22 @@ public class ClassBands extends BandSet {
             if ((flags & (1 << 17)) != 0) { // has code attribute
                 codeMaxLocals.remove(codeMaxLocals.size() - 1);
                 codeMaxStack.remove(codeMaxStack.size() - 1);
-                int handlers = codeHandlerCount
+                final int handlers = codeHandlerCount
                         .remove(codeHandlerCount.size() - 1);
                 for (int i = 0; i < handlers; i++) {
-                    int index = codeHandlerStartP.size() - 1;
+                    final int index = codeHandlerStartP.size() - 1;
                     codeHandlerStartP.remove(index);
                     codeHandlerEndPO.remove(index);
                     codeHandlerCatchPO.remove(index);
                     codeHandlerClass.remove(index);
                 }
                 if (!stripDebug) {
-                    long cdeFlags = ((Long) codeFlags
+                    final long cdeFlags = ((Long) codeFlags
                             .remove(codeFlags.size() - 1)).longValue();
-                    int numLocalVariables = codeLocalVariableTableN
+                    final int numLocalVariables = codeLocalVariableTableN
                             .remove(codeLocalVariableTableN.size() - 1);
                     for (int i = 0; i < numLocalVariables; i++) {
-                        int location = codeLocalVariableTableBciP.size() - 1;
+                        final int location = codeLocalVariableTableBciP.size() - 1;
                         codeLocalVariableTableBciP.remove(location);
                         codeLocalVariableTableSpanO.remove(location);
                         codeLocalVariableTableNameRU.remove(location);
@@ -1556,10 +1554,10 @@ public class ClassBands extends BandSet {
                         codeLocalVariableTableSlot.remove(location);
                     }
                     if ((cdeFlags & (1 << 3)) != 0) {
-                        int numLocalVariablesInTypeTable = codeLocalVariableTypeTableN
+                        final int numLocalVariablesInTypeTable = codeLocalVariableTypeTableN
                                 .remove(codeLocalVariableTypeTableN.size() - 1);
                         for (int i = 0; i < numLocalVariablesInTypeTable; i++) {
-                            int location = codeLocalVariableTypeTableBciP
+                            final int location = codeLocalVariableTypeTableBciP
                                     .size() - 1;
                             codeLocalVariableTypeTableBciP.remove(location);
                             codeLocalVariableTypeTableSpanO.remove(location);
@@ -1569,10 +1567,10 @@ public class ClassBands extends BandSet {
                         }
                     }
                     if ((cdeFlags & (1 << 1)) != 0) {
-                        int numLineNumbers = codeLineNumberTableN
+                        final int numLineNumbers = codeLineNumberTableN
                                 .remove(codeLineNumberTableN.size() - 1);
                         for (int i = 0; i < numLineNumbers; i++) {
-                            int location = codeLineNumberTableBciP.size() - 1;
+                            final int location = codeLineNumberTableBciP.size() - 1;
                             codeLineNumberTableBciP.remove(location);
                             codeLineNumberTableLine.remove(location);
                         }
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/Codec.java b/src/main/java/org/apache/commons/compress/harmony/pack200/Codec.java
index eb2b9b0..943a86b 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/Codec.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/Codec.java
@@ -178,10 +178,10 @@ public abstract class Codec {
      *             if there is a problem decoding the value or that the value is
      *             invalid
      */
-    public int[] decodeInts(int n, InputStream in) throws IOException,
+    public int[] decodeInts(final int n, final InputStream in) throws IOException,
             Pack200Exception {
         lastBandLength = 0;
-        int result[] = new int[n];
+        final int result[] = new int[n];
         int last = 0;
         for (int i = 0; i < n; i++) {
             result[i] = last = decode(in, last);
@@ -207,9 +207,9 @@ public abstract class Codec {
      *             if there is a problem decoding the value or that the value is
      *             invalid
      */
-    public int[] decodeInts(int n, InputStream in, int firstValue)
+    public int[] decodeInts(final int n, final InputStream in, final int firstValue)
             throws IOException, Pack200Exception {
-        int result[] = new int[n + 1];
+        final int result[] = new int[n + 1];
         result[0] = firstValue;
         int last = firstValue;
         for (int i = 1; i < n + 1; i++) {
@@ -227,14 +227,14 @@ public abstract class Codec {
      * @throws Pack200Exception
      *             if there is a problem encoding any of the values
      */
-    public byte[] encode(int[] ints) throws Pack200Exception {
+    public byte[] encode(final int[] ints) throws Pack200Exception {
         int total = 0;
-        byte[][] bytes = new byte[ints.length][];
+        final byte[][] bytes = new byte[ints.length][];
         for (int i = 0; i < ints.length; i++) {
             bytes[i] = encode(ints[i], i > 0 ? ints[i-1] : 0);
             total += bytes[i].length;
         }
-        byte[] encoded = new byte[total];
+        final byte[] encoded = new byte[total];
         int index = 0;
         for (int i = 0; i < bytes.length; i++) {
             System.arraycopy(bytes[i], 0, encoded, index, bytes[i].length);
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/CodecEncoding.java b/src/main/java/org/apache/commons/compress/harmony/pack200/CodecEncoding.java
index 20def84..bf4cd1b 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/CodecEncoding.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/CodecEncoding.java
@@ -121,7 +121,7 @@ public class CodecEncoding {
      *             However, an EOFException could occur if things go wrong)
      * @throws Pack200Exception TODO
      */
-    public static Codec getCodec(int value, InputStream in, Codec defaultCodec)
+    public static Codec getCodec(final int value, final InputStream in, final Codec defaultCodec)
             throws IOException, Pack200Exception {
         // Sanity check to make sure that no-one has changed
         // the canonical codecs, which would really cause havoc
@@ -132,19 +132,22 @@ public class CodecEncoding {
         if (value < 0) {
             throw new IllegalArgumentException(
                     "Encoding cannot be less than zero");
-        } else if (value == 0) {
+        }
+        if (value == 0) {
             return defaultCodec;
-        } else if (value <= 115) {
+        }
+        if (value <= 115) {
             return canonicalCodec[value];
-        } else if (value == 116) {
+        }
+        if (value == 116) {
             int code = in.read();
             if (code == -1) {
                 throw new EOFException(
                         "End of buffer read whilst trying to decode codec");
             }
-            int d = (code & 0x01);
-            int s = (code >> 1 & 0x03);
-            int b = (code >> 3 & 0x07) + 1; // this might result in an invalid
+            final int d = (code & 0x01);
+            final int s = (code >> 1 & 0x03);
+            final int b = (code >> 3 & 0x07) + 1; // this might result in an invalid
             // number, but it's checked in the
             // Codec constructor
             code = in.read();
@@ -152,23 +155,24 @@ public class CodecEncoding {
                 throw new EOFException(
                         "End of buffer read whilst trying to decode codec");
             }
-            int h = code + 1;
+            final int h = code + 1;
             // This handles the special cases for invalid combinations of data.
             return new BHSDCodec(b, h, s, d);
-        } else if (value >= 117 && value <= 140) { // Run codec
-            int offset = value - 117;
-            int kx = offset & 3;
-            boolean kbflag = (offset >> 2 & 1) == 1;
-            boolean adef = (offset >> 3 & 1) == 1;
-            boolean bdef = (offset >> 4 & 1) == 1;
+        }
+        if (value >= 117 && value <= 140) { // Run codec
+            final int offset = value - 117;
+            final int kx = offset & 3;
+            final boolean kbflag = (offset >> 2 & 1) == 1;
+            final boolean adef = (offset >> 3 & 1) == 1;
+            final boolean bdef = (offset >> 4 & 1) == 1;
             // If both A and B use the default encoding, what's the point of
             // having a run of default values followed by default values
             if (adef && bdef) {
                 throw new Pack200Exception(
                         "ADef and BDef should never both be true");
             }
-            int kb = (kbflag ? in.read() : 3);
-            int k = (kb + 1) * (int) Math.pow(16, kx);
+            final int kb = (kbflag ? in.read() : 3);
+            final int k = (kb + 1) * (int) Math.pow(16, kx);
             Codec aCodec, bCodec;
             if (adef) {
                 aCodec = defaultCodec;
@@ -181,72 +185,73 @@ public class CodecEncoding {
                 bCodec = getCodec(in.read(), in, defaultCodec);
             }
             return new RunCodec(k, aCodec, bCodec);
-        } else if (value >= 141 && value <= 188) { // Population Codec
-            int offset = value - 141;
-            boolean fdef = (offset & 1) == 1;
-            boolean udef = (offset >> 1 & 1) == 1;
-            int tdefl = offset >> 2;
-            boolean tdef = tdefl != 0;
-            // From section 6.7.3 of spec
-            final int[] tdefToL = { 0, 4, 8, 16, 32, 64, 128, 192, 224, 240,
-                    248, 252 };
-            int l = tdefToL[tdefl];
-            // NOTE: Do not re-factor this to bring out uCodec; the order in
-            // which
-            // they are read from the stream is important
-            if (tdef) {
-                Codec fCodec = (fdef ? defaultCodec : getCodec(in.read(), in,
-                        defaultCodec));
-                Codec uCodec = (udef ? defaultCodec : getCodec(in.read(), in,
-                        defaultCodec));
-                // Unfortunately, if tdef, then tCodec depends both on l and
-                // also on k, the
-                // number of items read from the fCodec. So we don't know in
-                // advance what
-                // the codec will be.
-                return new PopulationCodec(fCodec, l, uCodec);
-            } else {
-                Codec fCodec = (fdef ? defaultCodec : getCodec(in.read(), in,
-                        defaultCodec));
-                Codec tCodec = getCodec(in.read(), in, defaultCodec);
-                Codec uCodec = (udef ? defaultCodec : getCodec(in.read(), in,
-                        defaultCodec));
-                return new PopulationCodec(fCodec, tCodec, uCodec);
-            }
-        } else {
+        }
+        if ((value < 141) || (value > 188)) {
             throw new Pack200Exception("Invalid codec encoding byte (" + value
                     + ") found");
         }
+        final int offset = value - 141;
+        final boolean fdef = (offset & 1) == 1;
+        final boolean udef = (offset >> 1 & 1) == 1;
+        final int tdefl = offset >> 2;
+        final boolean tdef = tdefl != 0;
+        // From section 6.7.3 of spec
+        final int[] tdefToL = { 0, 4, 8, 16, 32, 64, 128, 192, 224, 240,
+                248, 252 };
+        final int l = tdefToL[tdefl];
+        // NOTE: Do not re-factor this to bring out uCodec; the order in
+        // which
+        // they are read from the stream is important
+        if (tdef) {
+            final Codec fCodec = (fdef ? defaultCodec : getCodec(in.read(), in,
+                    defaultCodec));
+            final Codec uCodec = (udef ? defaultCodec : getCodec(in.read(), in,
+                    defaultCodec));
+            // Unfortunately, if tdef, then tCodec depends both on l and
+            // also on k, the
+            // number of items read from the fCodec. So we don't know in
+            // advance what
+            // the codec will be.
+            return new PopulationCodec(fCodec, l, uCodec);
+        }
+        final Codec fCodec = (fdef ? defaultCodec : getCodec(in.read(), in,
+                defaultCodec));
+        final Codec tCodec = getCodec(in.read(), in, defaultCodec);
+        final Codec uCodec = (udef ? defaultCodec : getCodec(in.read(), in,
+                defaultCodec));
+        return new PopulationCodec(fCodec, tCodec, uCodec);
     }
 
-    public static int getSpecifierForDefaultCodec(BHSDCodec defaultCodec) {
+    public static int getSpecifierForDefaultCodec(final BHSDCodec defaultCodec) {
         return getSpecifier(defaultCodec, null)[0];
     }
 
-    public static int[] getSpecifier(Codec codec, Codec defaultForBand) {
+    public static int[] getSpecifier(final Codec codec, final Codec defaultForBand) {
         // lazy initialization
         if(canonicalCodecsToSpecifiers == null) {
-            HashMap reverseMap = new HashMap(canonicalCodec.length);
+            final HashMap reverseMap = new HashMap(canonicalCodec.length);
             for (int i = 0; i < canonicalCodec.length; i++) {
-                reverseMap.put(canonicalCodec[i], new Integer(i));
+                reverseMap.put(canonicalCodec[i], Integer.valueOf(i));
             }
             canonicalCodecsToSpecifiers = reverseMap;
         }
 
         if(canonicalCodecsToSpecifiers.containsKey(codec)) {
             return new int[] {((Integer)canonicalCodecsToSpecifiers.get(codec)).intValue()};
-        } else if (codec instanceof BHSDCodec) {
+        }
+        if (codec instanceof BHSDCodec) {
             // Cache these?
-            BHSDCodec bhsdCodec = (BHSDCodec)codec;
-            int[] specifiers = new int[3];
+            final BHSDCodec bhsdCodec = (BHSDCodec)codec;
+            final int[] specifiers = new int[3];
             specifiers[0] = 116;
             specifiers[1] = (bhsdCodec.isDelta() ? 1 : 0) + 2
                     * bhsdCodec.getS() + 8 * (bhsdCodec.getB()-1);
             specifiers[2] = bhsdCodec.getH() - 1;
             return specifiers;
-        } else if (codec instanceof RunCodec) {
-            RunCodec runCodec = (RunCodec) codec;
-            int k = runCodec.getK();
+        }
+        if (codec instanceof RunCodec) {
+            final RunCodec runCodec = (RunCodec) codec;
+            final int k = runCodec.getK();
             int kb;
             int kx;
             if(k <= 256) {
@@ -262,18 +267,18 @@ public class CodecEncoding {
                 kb = 3;
                 kx = k/4096 - 1;
             }
-            Codec aCodec = runCodec.getACodec();
-            Codec bCodec = runCodec.getBCodec();
+            final Codec aCodec = runCodec.getACodec();
+            final Codec bCodec = runCodec.getBCodec();
             int abDef = 0;
             if(aCodec.equals(defaultForBand)) {
                 abDef = 1;
             } else if (bCodec.equals(defaultForBand)) {
                 abDef = 2;
             }
-            int first = 117 + kb + (kx==3 ? 0 : 4) + (8 * abDef);
-            int[] aSpecifier = abDef == 1 ? new int[0] : getSpecifier(aCodec, defaultForBand);
-            int[] bSpecifier = abDef == 2 ? new int[0] : getSpecifier(bCodec, defaultForBand);
-            int[] specifier = new int[1 + (kx==3 ? 0 : 1) + aSpecifier.length + bSpecifier.length];
+            final int first = 117 + kb + (kx==3 ? 0 : 4) + (8 * abDef);
+            final int[] aSpecifier = abDef == 1 ? new int[0] : getSpecifier(aCodec, defaultForBand);
+            final int[] bSpecifier = abDef == 2 ? new int[0] : getSpecifier(bCodec, defaultForBand);
+            final int[] specifier = new int[1 + (kx==3 ? 0 : 1) + aSpecifier.length + bSpecifier.length];
             specifier[0] = first;
             int index = 1;
             if(kx != 3) {
@@ -289,24 +294,25 @@ public class CodecEncoding {
                 index++;
             }
             return specifier;
-        } else if (codec instanceof PopulationCodec) {
-            PopulationCodec populationCodec = (PopulationCodec) codec;
-            Codec tokenCodec = populationCodec.getTokenCodec();
-            Codec favouredCodec = populationCodec.getFavouredCodec();
-            Codec unfavouredCodec = populationCodec.getUnfavouredCodec();
-            int fDef = favouredCodec.equals(defaultForBand) ? 1 : 0;
-            int uDef = unfavouredCodec.equals(defaultForBand) ? 1 : 0;
+        }
+        if (codec instanceof PopulationCodec) {
+            final PopulationCodec populationCodec = (PopulationCodec) codec;
+            final Codec tokenCodec = populationCodec.getTokenCodec();
+            final Codec favouredCodec = populationCodec.getFavouredCodec();
+            final Codec unfavouredCodec = populationCodec.getUnfavouredCodec();
+            final int fDef = favouredCodec.equals(defaultForBand) ? 1 : 0;
+            final int uDef = unfavouredCodec.equals(defaultForBand) ? 1 : 0;
             int tDefL = 0;
-            int[] favoured = populationCodec.getFavoured();
+            final int[] favoured = populationCodec.getFavoured();
             if(favoured != null) {
-                int k = favoured.length;
+                final int k = favoured.length;
                 if(tokenCodec == Codec.BYTE1) {
                     tDefL = 1;
                 } else if (tokenCodec instanceof BHSDCodec) {
-                    BHSDCodec tokenBHSD = (BHSDCodec) tokenCodec;
+                    final BHSDCodec tokenBHSD = (BHSDCodec) tokenCodec;
                     if(tokenBHSD.getS() == 0) {
-                        int[] possibleLValues = new int[] {4, 8, 16, 32, 64, 128, 192, 224, 240, 248, 252};
-                        int l = 256-tokenBHSD.getH();
+                        final int[] possibleLValues = {4, 8, 16, 32, 64, 128, 192, 224, 240, 248, 252};
+                        final int l = 256-tokenBHSD.getH();
                         int index = Arrays.binarySearch(possibleLValues, l);
                         if(index != -1) {
                             // TODO: check range is ok for ks
@@ -315,11 +321,11 @@ public class CodecEncoding {
                     }
                 }
             }
-            int first = 141 + fDef + (2 * uDef) + (4 * tDefL);
-            int[] favouredSpecifier = fDef == 1 ? new int[0] : getSpecifier(favouredCodec, defaultForBand);
-            int[] tokenSpecifier = tDefL != 0 ? new int[0] : getSpecifier(tokenCodec, defaultForBand);
-            int[] unfavouredSpecifier = uDef == 1 ? new int[0] : getSpecifier(unfavouredCodec, defaultForBand);
-            int[] specifier = new int[1 + favouredSpecifier.length + unfavouredSpecifier.length + tokenSpecifier.length];
+            final int first = 141 + fDef + (2 * uDef) + (4 * tDefL);
+            final int[] favouredSpecifier = fDef == 1 ? new int[0] : getSpecifier(favouredCodec, defaultForBand);
+            final int[] tokenSpecifier = tDefL != 0 ? new int[0] : getSpecifier(tokenCodec, defaultForBand);
+            final int[] unfavouredSpecifier = uDef == 1 ? new int[0] : getSpecifier(unfavouredCodec, defaultForBand);
+            final int[] specifier = new int[1 + favouredSpecifier.length + unfavouredSpecifier.length + tokenSpecifier.length];
             specifier[0] = first;
             int index = 1;
             for (int i = 0; i < favouredSpecifier.length; i++) {
@@ -340,7 +346,7 @@ public class CodecEncoding {
         return null;
     }
 
-    public static BHSDCodec getCanonicalCodec(int i) {
+    public static BHSDCodec getCanonicalCodec(final int i) {
         return canonicalCodec[i];
     }
 }
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/ConstantPoolEntry.java b/src/main/java/org/apache/commons/compress/harmony/pack200/ConstantPoolEntry.java
index 4a92275..7ff1609 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/ConstantPoolEntry.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/ConstantPoolEntry.java
@@ -27,7 +27,7 @@ public abstract class ConstantPoolEntry {
         return index;
     }
 
-    public void setIndex(int index) {
+    public void setIndex(final int index) {
         this.index = index;
     }
 
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/CpBands.java b/src/main/java/org/apache/commons/compress/harmony/pack200/CpBands.java
index f4061cd..22024fa 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/CpBands.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/CpBands.java
@@ -62,7 +62,7 @@ public class CpBands extends BandSet {
 
     private final Segment segment;
 
-    public CpBands(Segment segment, int effort) {
+    public CpBands(final Segment segment, final int effort) {
         super(effort, segment.getSegmentHeader());
         this.segment = segment;
         defaultAttributeNames.add("AnnotationDefault");
@@ -83,7 +83,8 @@ public class CpBands extends BandSet {
         defaultAttributeNames.add("SourceFile");
     }
 
-    public void pack(OutputStream out) throws IOException, Pack200Exception {
+    @Override
+    public void pack(final OutputStream out) throws IOException, Pack200Exception {
         PackingUtils.log("Writing constant pool bands...");
         writeCpUtf8(out);
         writeCpInt(out);
@@ -99,52 +100,51 @@ public class CpBands extends BandSet {
         writeCpMethodOrField(cp_Imethod, out, "cp_Imethod");
     }
 
-    private void writeCpUtf8(OutputStream out) throws IOException,
+    private void writeCpUtf8(final OutputStream out) throws IOException,
             Pack200Exception {
         PackingUtils.log("Writing " + cp_Utf8.size() + " UTF8 entries...");
-        int[] cpUtf8Prefix = new int[cp_Utf8.size() - 2];
-        int[] cpUtf8Suffix = new int[cp_Utf8.size() - 1];
-        List chars = new ArrayList();
-        List bigSuffix = new ArrayList();
-        List bigChars = new ArrayList();
-        Object[] cpUtf8Array = cp_Utf8.toArray();
-        String first = ((CPUTF8) cpUtf8Array[1]).getUnderlyingString();
+        final int[] cpUtf8Prefix = new int[cp_Utf8.size() - 2];
+        final int[] cpUtf8Suffix = new int[cp_Utf8.size() - 1];
+        final List chars = new ArrayList();
+        final List bigSuffix = new ArrayList();
+        final List bigChars = new ArrayList();
+        final Object[] cpUtf8Array = cp_Utf8.toArray();
+        final String first = ((CPUTF8) cpUtf8Array[1]).getUnderlyingString();
         cpUtf8Suffix[0] = first.length();
         addCharacters(chars, first.toCharArray());
         for (int i = 2; i < cpUtf8Array.length; i++) {
-            char[] previous = ((CPUTF8) cpUtf8Array[i - 1])
+            final char[] previous = ((CPUTF8) cpUtf8Array[i - 1])
                     .getUnderlyingString().toCharArray();
             String currentStr = ((CPUTF8) cpUtf8Array[i]).getUnderlyingString();
-            char[] current = currentStr.toCharArray();
+            final char[] current = currentStr.toCharArray();
             int prefix = 0;
             for (int j = 0; j < previous.length; j++) {
-                if (previous[j] == current[j]) {
-                    prefix++;
-                } else {
+                if (previous[j] != current[j]) {
                     break;
                 }
+                prefix++;
             }
             cpUtf8Prefix[i - 2] = prefix;
             currentStr = currentStr.substring(prefix);
-            char[] suffix = currentStr.toCharArray();
+            final char[] suffix = currentStr.toCharArray();
             if (suffix.length > 1000) { // big suffix (1000 is arbitrary - can we
                 // do better?)
                 cpUtf8Suffix[i - 1] = 0;
-                bigSuffix.add(new Integer(suffix.length));
+                bigSuffix.add(Integer.valueOf(suffix.length));
                 addCharacters(bigChars, suffix);
             } else {
                 cpUtf8Suffix[i - 1] = suffix.length;
                 addCharacters(chars, suffix);
             }
         }
-        int[] cpUtf8Chars = new int[chars.size()];
-        int[] cpUtf8BigSuffix = new int[bigSuffix.size()];
-        int[][] cpUtf8BigChars = new int[bigSuffix.size()][];
+        final int[] cpUtf8Chars = new int[chars.size()];
+        final int[] cpUtf8BigSuffix = new int[bigSuffix.size()];
+        final int[][] cpUtf8BigChars = new int[bigSuffix.size()][];
         for (int i = 0; i < cpUtf8Chars.length; i++) {
             cpUtf8Chars[i] = ((Character) chars.get(i)).charValue();
         }
         for (int i = 0; i < cpUtf8BigSuffix.length; i++) {
-            int numBigChars = ((Integer) bigSuffix.get(i)).intValue();
+            final int numBigChars = ((Integer) bigSuffix.get(i)).intValue();
             cpUtf8BigSuffix[i] = numBigChars;
             cpUtf8BigChars[i] = new int[numBigChars];
             for (int j = 0; j < numBigChars; j++) {
@@ -183,53 +183,53 @@ public class CpBands extends BandSet {
         }
     }
 
-    private void addCharacters(List chars, char[] charArray) {
+    private void addCharacters(final List chars, final char[] charArray) {
         for (int i = 0; i < charArray.length; i++) {
-            chars.add(new Character(charArray[i]));
+            chars.add(Character.valueOf(charArray[i]));
         }
     }
 
-    private void writeCpInt(OutputStream out) throws IOException,
+    private void writeCpInt(final OutputStream out) throws IOException,
             Pack200Exception {
         PackingUtils.log("Writing " + cp_Int.size() + " Integer entries...");
-        int[] cpInt = new int[cp_Int.size()];
+        final int[] cpInt = new int[cp_Int.size()];
         int i = 0;
-        for (Iterator iterator = cp_Int.iterator(); iterator.hasNext();) {
-            CPInt integer = (CPInt) iterator.next();
+        for (final Iterator iterator = cp_Int.iterator(); iterator.hasNext();) {
+            final CPInt integer = (CPInt) iterator.next();
             cpInt[i] = integer.getInt();
             i++;
         }
-        byte[] encodedBand = encodeBandInt("cp_Int", cpInt, Codec.UDELTA5);
+        final byte[] encodedBand = encodeBandInt("cp_Int", cpInt, Codec.UDELTA5);
         out.write(encodedBand);
         PackingUtils.log("Wrote " + encodedBand.length
                 + " bytes from cp_Int[" + cpInt.length + "]");
     }
 
-    private void writeCpFloat(OutputStream out) throws IOException,
+    private void writeCpFloat(final OutputStream out) throws IOException,
             Pack200Exception {
         PackingUtils.log("Writing " + cp_Float.size() + " Float entries...");
-        int[] cpFloat = new int[cp_Float.size()];
+        final int[] cpFloat = new int[cp_Float.size()];
         int i = 0;
-        for (Iterator iterator = cp_Float.iterator(); iterator.hasNext();) {
-            CPFloat fl = (CPFloat) iterator.next();
+        for (final Iterator iterator = cp_Float.iterator(); iterator.hasNext();) {
+            final CPFloat fl = (CPFloat) iterator.next();
             cpFloat[i] = Float.floatToIntBits(fl.getFloat());
             i++;
         }
-        byte[] encodedBand = encodeBandInt("cp_Float", cpFloat, Codec.UDELTA5);
+        final byte[] encodedBand = encodeBandInt("cp_Float", cpFloat, Codec.UDELTA5);
         out.write(encodedBand);
         PackingUtils.log("Wrote " + encodedBand.length
                 + " bytes from cp_Float[" + cpFloat.length + "]");
     }
 
-    private void writeCpLong(OutputStream out) throws IOException,
+    private void writeCpLong(final OutputStream out) throws IOException,
             Pack200Exception {
         PackingUtils.log("Writing " + cp_Long.size() + " Long entries...");
-        int[] highBits = new int[cp_Long.size()];
-        int[] loBits = new int[cp_Long.size()];
+        final int[] highBits = new int[cp_Long.size()];
+        final int[] loBits = new int[cp_Long.size()];
         int i = 0;
-        for (Iterator iterator = cp_Long.iterator(); iterator.hasNext();) {
-            CPLong lng = (CPLong) iterator.next();
-            long l = lng.getLong();
+        for (final Iterator iterator = cp_Long.iterator(); iterator.hasNext();) {
+            final CPLong lng = (CPLong) iterator.next();
+            final long l = lng.getLong();
             highBits[i] = (int) (l >> 32);
             loBits[i] = (int) l;
             i++;
@@ -245,15 +245,15 @@ public class CpBands extends BandSet {
                 + " bytes from cp_Long_lo[" + loBits.length + "]");
     }
 
-    private void writeCpDouble(OutputStream out) throws IOException,
+    private void writeCpDouble(final OutputStream out) throws IOException,
             Pack200Exception {
         PackingUtils.log("Writing " + cp_Double.size() + " Double entries...");
-        int[] highBits = new int[cp_Double.size()];
-        int[] loBits = new int[cp_Double.size()];
+        final int[] highBits = new int[cp_Double.size()];
+        final int[] loBits = new int[cp_Double.size()];
         int i = 0;
-        for (Iterator iterator = cp_Double.iterator(); iterator.hasNext();) {
-            CPDouble dbl = (CPDouble) iterator.next();
-            long l = Double.doubleToLongBits(dbl.getDouble());
+        for (final Iterator iterator = cp_Double.iterator(); iterator.hasNext();) {
+            final CPDouble dbl = (CPDouble) iterator.next();
+            final long l = Double.doubleToLongBits(dbl.getDouble());
             highBits[i] = (int) (l >> 32);
             loBits[i] = (int) l;
             i++;
@@ -269,51 +269,51 @@ public class CpBands extends BandSet {
                 + " bytes from cp_Double_lo[" + loBits.length + "]");
     }
 
-    private void writeCpString(OutputStream out) throws IOException,
+    private void writeCpString(final OutputStream out) throws IOException,
             Pack200Exception {
         PackingUtils.log("Writing " + cp_String.size() + " String entries...");
-        int[] cpString = new int[cp_String.size()];
+        final int[] cpString = new int[cp_String.size()];
         int i = 0;
-        for (Iterator iterator = cp_String.iterator(); iterator.hasNext();) {
-            CPString cpStr = (CPString) iterator.next();
+        for (final Iterator iterator = cp_String.iterator(); iterator.hasNext();) {
+            final CPString cpStr = (CPString) iterator.next();
             cpString[i] = cpStr.getIndexInCpUtf8();
             i++;
         }
-        byte[] encodedBand = encodeBandInt("cpString", cpString, Codec.UDELTA5);
+        final byte[] encodedBand = encodeBandInt("cpString", cpString, Codec.UDELTA5);
         out.write(encodedBand);
         PackingUtils.log("Wrote " + encodedBand.length
                 + " bytes from cpString[" + cpString.length + "]");
     }
 
-    private void writeCpClass(OutputStream out) throws IOException,
+    private void writeCpClass(final OutputStream out) throws IOException,
             Pack200Exception {
         PackingUtils.log("Writing " + cp_Class.size() + " Class entries...");
-        int[] cpClass = new int[cp_Class.size()];
+        final int[] cpClass = new int[cp_Class.size()];
         int i = 0;
-        for (Iterator iterator = cp_Class.iterator(); iterator.hasNext();) {
-            CPClass cpCl = (CPClass) iterator.next();
+        for (final Iterator iterator = cp_Class.iterator(); iterator.hasNext();) {
+            final CPClass cpCl = (CPClass) iterator.next();
             cpClass[i] = cpCl.getIndexInCpUtf8();
             i++;
         }
-        byte[] encodedBand = encodeBandInt("cpClass", cpClass, Codec.UDELTA5);
+        final byte[] encodedBand = encodeBandInt("cpClass", cpClass, Codec.UDELTA5);
         out.write(encodedBand);
         PackingUtils.log("Wrote " + encodedBand.length
                 + " bytes from cpClass[" + cpClass.length + "]");
     }
 
-    private void writeCpSignature(OutputStream out) throws IOException,
+    private void writeCpSignature(final OutputStream out) throws IOException,
             Pack200Exception {
         PackingUtils.log("Writing " + cp_Signature.size() + " Signature entries...");
-        int[] cpSignatureForm = new int[cp_Signature.size()];
-        List classes = new ArrayList();
+        final int[] cpSignatureForm = new int[cp_Signature.size()];
+        final List classes = new ArrayList();
         int i = 0;
-        for (Iterator iterator = cp_Signature.iterator(); iterator.hasNext();) {
-            CPSignature cpS = (CPSignature) iterator.next();
+        for (final Iterator iterator = cp_Signature.iterator(); iterator.hasNext();) {
+            final CPSignature cpS = (CPSignature) iterator.next();
             classes.addAll(cpS.getClasses());
             cpSignatureForm[i] = cpS.getIndexInCpUtf8();
             i++;
         }
-        int[] cpSignatureClasses = new int[classes.size()];
+        final int[] cpSignatureClasses = new int[classes.size()];
         for (int j = 0; j < cpSignatureClasses.length; j++) {
             cpSignatureClasses[j] = ((CPClass) classes.get(j)).getIndex();
         }
@@ -331,15 +331,15 @@ public class CpBands extends BandSet {
                 + " bytes from cpSignatureClasses[" + cpSignatureClasses.length + "]");
     }
 
-    private void writeCpDescr(OutputStream out) throws IOException,
+    private void writeCpDescr(final OutputStream out) throws IOException,
             Pack200Exception {
         PackingUtils.log("Writing " + cp_Descr.size()
                 + " Descriptor entries...");
-        int[] cpDescrName = new int[cp_Descr.size()];
-        int[] cpDescrType = new int[cp_Descr.size()];
+        final int[] cpDescrName = new int[cp_Descr.size()];
+        final int[] cpDescrType = new int[cp_Descr.size()];
         int i = 0;
-        for (Iterator iterator = cp_Descr.iterator(); iterator.hasNext();) {
-            CPNameAndType nameAndType = (CPNameAndType) iterator.next();
+        for (final Iterator iterator = cp_Descr.iterator(); iterator.hasNext();) {
+            final CPNameAndType nameAndType = (CPNameAndType) iterator.next();
             cpDescrName[i] = nameAndType.getNameIndex();
             cpDescrType[i] = nameAndType.getTypeIndex();
             i++;
@@ -357,15 +357,15 @@ public class CpBands extends BandSet {
                 + " bytes from cp_Descr_Type[" + cpDescrType.length + "]");
     }
 
-    private void writeCpMethodOrField(Set cp, OutputStream out, String name)
+    private void writeCpMethodOrField(final Set cp, final OutputStream out, final String name)
             throws IOException, Pack200Exception {
         PackingUtils.log("Writing " + cp.size()
                 + " Method and Field entries...");
-        int[] cp_methodOrField_class = new int[cp.size()];
-        int[] cp_methodOrField_desc = new int[cp.size()];
+        final int[] cp_methodOrField_class = new int[cp.size()];
+        final int[] cp_methodOrField_desc = new int[cp.size()];
         int i = 0;
-        for (Iterator iterator = cp.iterator(); iterator.hasNext();) {
-            CPMethodOrField mOrF = (CPMethodOrField) iterator.next();
+        for (final Iterator iterator = cp.iterator(); iterator.hasNext();) {
+            final CPMethodOrField mOrF = (CPMethodOrField) iterator.next();
             cp_methodOrField_class[i] = mOrF.getClassIndex();
             cp_methodOrField_desc[i] = mOrF.getDescIndex();
             i++;
@@ -407,11 +407,11 @@ public class CpBands extends BandSet {
     }
 
     private void removeSignaturesFromCpUTF8() {
-        for (Iterator iterator = cp_Signature.iterator(); iterator.hasNext();) {
-            CPSignature signature = (CPSignature) iterator.next();
-            String sigStr = signature.getUnderlyingString();
-            CPUTF8 utf8 = signature.getSignatureForm();
-            String form = utf8.getUnderlyingString();
+        for (final Iterator iterator = cp_Signature.iterator(); iterator.hasNext();) {
+            final CPSignature signature = (CPSignature) iterator.next();
+            final String sigStr = signature.getUnderlyingString();
+            final CPUTF8 utf8 = signature.getSignatureForm();
+            final String form = utf8.getUnderlyingString();
             if (!sigStr.equals(form)) {
                 removeCpUtf8(sigStr);
             }
@@ -419,74 +419,72 @@ public class CpBands extends BandSet {
     }
 
     private void addIndices() {
-        Set[] sets = new Set[] { cp_Utf8, cp_Int, cp_Float, cp_Long, cp_Double,
+        final Set[] sets = { cp_Utf8, cp_Int, cp_Float, cp_Long, cp_Double,
                 cp_String, cp_Class, cp_Signature, cp_Descr, cp_Field,
                 cp_Method, cp_Imethod };
         for (int i = 0; i < sets.length; i++) {
             int j = 0;
-            for (Iterator iterator = sets[i].iterator(); iterator.hasNext();) {
-                ConstantPoolEntry entry = (ConstantPoolEntry) iterator.next();
+            for (final Iterator iterator = sets[i].iterator(); iterator.hasNext();) {
+                final ConstantPoolEntry entry = (ConstantPoolEntry) iterator.next();
                 entry.setIndex(j);
                 j++;
             }
         }
-        Map classNameToIndex = new HashMap();
-        for (Iterator iterator = cp_Field.iterator(); iterator.hasNext();) {
-            CPMethodOrField mOrF = (CPMethodOrField) iterator.next();
-            CPClass className = mOrF.getClassName();
-            Integer index = (Integer) classNameToIndex.get(className);
+        final Map classNameToIndex = new HashMap();
+        for (final Iterator iterator = cp_Field.iterator(); iterator.hasNext();) {
+            final CPMethodOrField mOrF = (CPMethodOrField) iterator.next();
+            final CPClass className = mOrF.getClassName();
+            final Integer index = (Integer) classNameToIndex.get(className);
             if (index == null) {
-                classNameToIndex.put(className, new Integer(1));
+                classNameToIndex.put(className, Integer.valueOf(1));
                 mOrF.setIndexInClass(0);
             } else {
-                int theIndex = index.intValue();
+                final int theIndex = index.intValue();
                 mOrF.setIndexInClass(theIndex);
-                classNameToIndex.put(className, new Integer(theIndex + 1));
+                classNameToIndex.put(className, Integer.valueOf(theIndex + 1));
             }
         }
         classNameToIndex.clear();
-        Map classNameToConstructorIndex = new HashMap();
-        for (Iterator iterator = cp_Method.iterator(); iterator.hasNext();) {
-            CPMethodOrField mOrF = (CPMethodOrField) iterator.next();
-            CPClass className = mOrF.getClassName();
-            Integer index = (Integer) classNameToIndex.get(className);
+        final Map classNameToConstructorIndex = new HashMap();
+        for (final Iterator iterator = cp_Method.iterator(); iterator.hasNext();) {
+            final CPMethodOrField mOrF = (CPMethodOrField) iterator.next();
+            final CPClass className = mOrF.getClassName();
+            final Integer index = (Integer) classNameToIndex.get(className);
             if (index == null) {
-                classNameToIndex.put(className, new Integer(1));
+                classNameToIndex.put(className, Integer.valueOf(1));
                 mOrF.setIndexInClass(0);
             } else {
-                int theIndex = index.intValue();
+                final int theIndex = index.intValue();
                 mOrF.setIndexInClass(theIndex);
-                classNameToIndex.put(className, new Integer(theIndex + 1));
+                classNameToIndex.put(className, Integer.valueOf(theIndex + 1));
             }
             if(mOrF.getDesc().getName().equals("<init>")) {
-                Integer constructorIndex = (Integer) classNameToConstructorIndex.get(className);
+                final Integer constructorIndex = (Integer) classNameToConstructorIndex.get(className);
                 if (constructorIndex == null) {
-                    classNameToConstructorIndex.put(className, new Integer(1));
+                    classNameToConstructorIndex.put(className, Integer.valueOf(1));
                     mOrF.setIndexInClassForConstructor(0);
                 } else {
-                    int theIndex = constructorIndex.intValue();
+                    final int theIndex = constructorIndex.intValue();
                     mOrF.setIndexInClassForConstructor(theIndex);
-                    classNameToConstructorIndex.put(className, new Integer(theIndex + 1));
+                    classNameToConstructorIndex.put(className, Integer.valueOf(theIndex + 1));
                 }
             }
         }
     }
 
-    private void removeCpUtf8(String string) {
-        CPUTF8 utf8 = (CPUTF8) stringsToCpUtf8.get(string);
-        if (utf8 != null) {
-            if(stringsToCpClass.get(string) == null) { // don't remove if strings are also in cpclass
-                stringsToCpUtf8.remove(string);
-                cp_Utf8.remove(utf8);
-            }
+    private void removeCpUtf8(final String string) {
+        final CPUTF8 utf8 = (CPUTF8) stringsToCpUtf8.get(string);
+        if((utf8 != null) && (stringsToCpClass.get(string) == null)) { // don't remove if strings are also in cpclass
+            stringsToCpUtf8.remove(string);
+            cp_Utf8.remove(utf8);
         }
     }
 
-    void addCPUtf8(String utf8) {
+    void addCPUtf8(final String utf8) {
         getCPUtf8(utf8);
     }
 
-    public CPUTF8 getCPUtf8(String utf8) {
+    public CPUTF8 getCPUtf8(final String utf8) {
         if(utf8 == null) {
             return null;
         }
@@ -499,37 +497,35 @@ public class CpBands extends BandSet {
         return cpUtf8;
     }
 
-    public CPSignature getCPSignature(String signature) {
+    public CPSignature getCPSignature(final String signature) {
         if(signature == null) {
             return null;
         }
         CPSignature cpS = (CPSignature) stringsToCpSignature.get(signature);
         if (cpS == null) {
-            List cpClasses = new ArrayList();
+            final List cpClasses = new ArrayList();
             CPUTF8 signatureUTF8;
             if (signature.length() > 1 && signature.indexOf('L') != -1) {
-                List classes = new ArrayList();
-                char[] chars = signature.toCharArray();
-                StringBuffer signatureString = new StringBuffer();
+                final List classes = new ArrayList();
+                final char[] chars = signature.toCharArray();
+                final StringBuffer signatureString = new StringBuffer();
                 for (int i = 0; i < chars.length; i++) {
                     signatureString.append(chars[i]);
                     if (chars[i] == 'L') {
-                        StringBuffer className = new StringBuffer();
+                        final StringBuffer className = new StringBuffer();
                         for (int j = i + 1; j < chars.length; j++) {
-                            char c = chars[j];
-                            if (Character.isLetter(c) || Character.isDigit(c)
-                                    || c == '/' || c == '$' || c == '_') {
-                                className.append(c);
-                            } else {
+                            final char c = chars[j];
+                            if (!Character.isLetter(c) && !Character.isDigit(c) && (c != '/') && (c != '$') && (c != '_')) {
                                 classes.add(className.toString());
                                 i = j - 1;
                                 break;
                             }
+                            className.append(c);
                         }
                     }
                 }
                 removeCpUtf8(signature);
-                for (Iterator iterator2 = classes.iterator(); iterator2
+                for (final Iterator iterator2 = classes.iterator(); iterator2
                         .hasNext();) {
                     String className = (String) iterator2.next();
                     CPClass cpClass = null;
@@ -537,7 +533,7 @@ public class CpBands extends BandSet {
                         className = className.replace('.', '/');
                         cpClass = (CPClass) stringsToCpClass.get(className);
                         if (cpClass == null) {
-                            CPUTF8 cpUtf8 = getCPUtf8(className);
+                            final CPUTF8 cpUtf8 = getCPUtf8(className);
                             cpClass = new CPClass(cpUtf8);
                             cp_Class.add(cpClass);
                             stringsToCpClass.put(className, cpClass);
@@ -564,7 +560,7 @@ public class CpBands extends BandSet {
         className = className.replace('.', '/');
         CPClass cpClass = (CPClass) stringsToCpClass.get(className);
         if (cpClass == null) {
-            CPUTF8 cpUtf8 = getCPUtf8(className);
+            final CPUTF8 cpUtf8 = getCPUtf8(className);
             cpClass = new CPClass(cpUtf8);
             cp_Class.add(cpClass);
             stringsToCpClass.put(className, cpClass);
@@ -575,12 +571,12 @@ public class CpBands extends BandSet {
         return cpClass;
     }
 
-    public void addCPClass(String className) {
+    public void addCPClass(final String className) {
         getCPClass(className);
     }
 
-    public CPNameAndType getCPNameAndType(String name, String signature) {
-        String descr = name + ":" + signature;
+    public CPNameAndType getCPNameAndType(final String name, final String signature) {
+        final String descr = name + ":" + signature;
         CPNameAndType nameAndType = (CPNameAndType) stringsToCpNameAndType
                 .get(descr);
         if (nameAndType == null) {
@@ -592,12 +588,12 @@ public class CpBands extends BandSet {
         return nameAndType;
     }
 
-    public CPMethodOrField getCPField(CPClass cpClass, String name, String desc) {
-        String key = cpClass.toString() + ":" + name + ":" + desc;
+    public CPMethodOrField getCPField(final CPClass cpClass, final String name, final String desc) {
+        final String key = cpClass.toString() + ":" + name + ":" + desc;
         CPMethodOrField cpF = (CPMethodOrField) stringsToCpField
                 .get(key);
         if (cpF == null) {
-            CPNameAndType nAndT = getCPNameAndType(name, desc);
+            final CPNameAndType nAndT = getCPNameAndType(name, desc);
             cpF = new CPMethodOrField(cpClass, nAndT);
             cp_Field.add(cpF);
             stringsToCpField.put(key, cpF);
@@ -605,7 +601,7 @@ public class CpBands extends BandSet {
         return cpF;
     }
 
-    public CPConstant getConstant(Object value) {
+    public CPConstant getConstant(final Object value) {
         CPConstant constant = (CPConstant) objectsToCPConstant.get(value);
         if (constant == null) {
             if (value instanceof Integer) {
@@ -639,12 +635,12 @@ public class CpBands extends BandSet {
         return constant;
     }
 
-    public CPMethodOrField getCPMethod(CPClass cpClass, String name, String desc) {
-        String key = cpClass.toString() + ":" + name + ":" + desc;
+    public CPMethodOrField getCPMethod(final CPClass cpClass, final String name, final String desc) {
+        final String key = cpClass.toString() + ":" + name + ":" + desc;
         CPMethodOrField cpM = (CPMethodOrField) stringsToCpMethod
                 .get(key);
         if (cpM == null) {
-            CPNameAndType nAndT = getCPNameAndType(name, desc);
+            final CPNameAndType nAndT = getCPNameAndType(name, desc);
             cpM = new CPMethodOrField(cpClass, nAndT);
             cp_Method.add(cpM);
             stringsToCpMethod.put(key, cpM);
@@ -652,13 +648,13 @@ public class CpBands extends BandSet {
         return cpM;
     }
 
-    public CPMethodOrField getCPIMethod(CPClass cpClass, String name,
-            String desc) {
-        String key = cpClass.toString() + ":" + name + ":" + desc;
+    public CPMethodOrField getCPIMethod(final CPClass cpClass, final String name,
+            final String desc) {
+        final String key = cpClass.toString() + ":" + name + ":" + desc;
         CPMethodOrField cpIM = (CPMethodOrField) stringsToCpIMethod
                 .get(key);
         if (cpIM == null) {
-            CPNameAndType nAndT = getCPNameAndType(name, desc);
+            final CPNameAndType nAndT = getCPNameAndType(name, desc);
             cpIM = new CPMethodOrField(cpClass, nAndT);
             cp_Imethod.add(cpIM);
             stringsToCpIMethod.put(key, cpIM);
@@ -666,20 +662,20 @@ public class CpBands extends BandSet {
         return cpIM;
     }
 
-    public CPMethodOrField getCPField(String owner, String name, String desc) {
+    public CPMethodOrField getCPField(final String owner, final String name, final String desc) {
         return getCPField(getCPClass(owner), name, desc);
     }
 
-    public CPMethodOrField getCPMethod(String owner, String name, String desc) {
+    public CPMethodOrField getCPMethod(final String owner, final String name, final String desc) {
         return getCPMethod(getCPClass(owner), name, desc);
     }
 
-    public CPMethodOrField getCPIMethod(String owner, String name, String desc) {
+    public CPMethodOrField getCPIMethod(final String owner, final String name, final String desc) {
         return getCPIMethod(getCPClass(owner), name, desc);
     }
 
-    public boolean existsCpClass(String className) {
-        CPClass cpClass = (CPClass) stringsToCpClass.get(className);
+    public boolean existsCpClass(final String className) {
+        final CPClass cpClass = (CPClass) stringsToCpClass.get(className);
         return cpClass != null;
     }
 
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/FileBands.java b/src/main/java/org/apache/commons/compress/harmony/pack200/FileBands.java
index f7eaead..7f0db8c 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/FileBands.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/FileBands.java
@@ -45,35 +45,35 @@ public class FileBands extends BandSet {
     private final PackingOptions options;
     private final CpBands cpBands;
 
-    public FileBands(CpBands cpBands, SegmentHeader segmentHeader,
-            PackingOptions options, SegmentUnit segmentUnit, int effort) {
+    public FileBands(final CpBands cpBands, final SegmentHeader segmentHeader,
+            final PackingOptions options, final SegmentUnit segmentUnit, final int effort) {
         super(effort, segmentHeader);
         fileList = segmentUnit.getFileList();
         this.options = options;
         this.cpBands = cpBands;
-        int size = fileList.size();
+        final int size = fileList.size();
         fileName = new CPUTF8[size];
         file_modtime = new int[size];
         file_size = new long[size];
         file_options = new int[size];
         int totalSize = 0;
         file_bits = new byte[size][];
-        int archiveModtime = segmentHeader.getArchive_modtime();
+        final int archiveModtime = segmentHeader.getArchive_modtime();
 
-        Set classNames = new HashSet();
-        for (Iterator iterator = segmentUnit.getClassList().iterator(); iterator
+        final Set classNames = new HashSet();
+        for (final Iterator iterator = segmentUnit.getClassList().iterator(); iterator
                 .hasNext();) {
-            ClassReader reader = (ClassReader) iterator.next();
+            final ClassReader reader = (ClassReader) iterator.next();
             classNames.add(reader.getClassName());
         }
-        CPUTF8 emptyString = cpBands.getCPUtf8("");
+        final CPUTF8 emptyString = cpBands.getCPUtf8("");
         long modtime;
         int latestModtime = Integer.MIN_VALUE;
-        boolean isLatest = !PackingOptions.KEEP.equals(options
+        final boolean isLatest = !PackingOptions.KEEP.equals(options
                 .getModificationTime());
         for (int i = 0; i < size; i++) {
-            PackingFile packingFile = (PackingFile) fileList.get(i);
-            String name = packingFile.getName();
+            final PackingFile packingFile = (PackingFile) fileList.get(i);
+            final String name = packingFile.getName();
             if (name.endsWith(".class") && !options.isPassFile(name)) {
                 file_options[i] |= (1 << 1);
                 if (classNames.contains(name.substring(0, name.length() - 6))) {
@@ -88,7 +88,7 @@ public class FileBands extends BandSet {
             if (options.isKeepDeflateHint() && packingFile.isDefalteHint()) {
                 file_options[i] |= 0x1;
             }
-            byte[] bytes = packingFile.getContents();
+            final byte[] bytes = packingFile.getContents();
             file_size[i] = bytes.length;
             totalSize += file_size[i];
 
@@ -118,8 +118,8 @@ public class FileBands extends BandSet {
         file_name = new int[fileName.length];
         for (int i = 0; i < file_name.length; i++) {
             if (fileName[i].equals(cpBands.getCPUtf8(""))) {
-                PackingFile packingFile = (PackingFile) fileList.get(i);
-                String name = packingFile.getName();
+                final PackingFile packingFile = (PackingFile) fileList.get(i);
+                final String name = packingFile.getName();
                 if (options.isPassFile(name)) {
                     fileName[i] = cpBands.getCPUtf8(name);
                     file_options[i] &= (1 << 1) ^ 0xFFFFFFFF;
@@ -129,7 +129,8 @@ public class FileBands extends BandSet {
         }
     }
 
-    public void pack(OutputStream out) throws IOException, Pack200Exception {
+    @Override
+    public void pack(final OutputStream out) throws IOException, Pack200Exception {
         PackingUtils.log("Writing file bands...");
         byte[] encodedBand = encodeBandInt("file_name", file_name,
                 Codec.UNSIGNED5);
@@ -165,12 +166,12 @@ public class FileBands extends BandSet {
                 + " bytes from file_bits[" + file_bits.length + "]");
     }
 
-    private int[] flatten(byte[][] bytes) {
+    private int[] flatten(final byte[][] bytes) {
         int total = 0;
         for (int i = 0; i < bytes.length; i++) {
             total += bytes[i].length;
         }
-        int[] band = new int[total];
+        final int[] band = new int[total];
         int index = 0;
         for (int i = 0; i < bytes.length; i++) {
             for (int j = 0; j < bytes[i].length; j++) {
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/IcBands.java b/src/main/java/org/apache/commons/compress/harmony/pack200/IcBands.java
index 0ebe9fa..bcb89b8 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/IcBands.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/IcBands.java
@@ -38,7 +38,7 @@ public class IcBands extends BandSet {
 
     private final Map outerToInner = new HashMap();
 
-    public IcBands(SegmentHeader segmentHeader, CpBands cpBands, int effort) {
+    public IcBands(final SegmentHeader segmentHeader, final CpBands cpBands, final int effort) {
         super(effort, segmentHeader);
         this.cpBands = cpBands;
     }
@@ -52,17 +52,18 @@ public class IcBands extends BandSet {
         segmentHeader.setIc_count(innerClasses.size());
     }
 
-    public void pack(OutputStream out) throws IOException, Pack200Exception {
+    @Override
+    public void pack(final OutputStream out) throws IOException, Pack200Exception {
         PackingUtils.log("Writing internal class bands...");
-        int[] ic_this_class = new int[innerClasses.size()];
-        int[] ic_flags = new int[innerClasses.size()];
-        int[] ic_outer_class = new int[bit16Count];
-        int[] ic_name = new int[bit16Count];
+        final int[] ic_this_class = new int[innerClasses.size()];
+        final int[] ic_flags = new int[innerClasses.size()];
+        final int[] ic_outer_class = new int[bit16Count];
+        final int[] ic_name = new int[bit16Count];
 
         int index2 = 0;
-        List innerClassesList = new ArrayList(innerClasses);
+        final List innerClassesList = new ArrayList(innerClasses);
         for (int i = 0; i < ic_this_class.length; i++) {
-            IcTuple icTuple = (IcTuple) innerClassesList.get(i);
+            final IcTuple icTuple = (IcTuple) innerClassesList.get(i);
             ic_this_class[i] = icTuple.C.getIndex();
             ic_flags[i] = icTuple.F;
             if((icTuple.F & (1<<16)) != 0) {
@@ -94,46 +95,46 @@ public class IcBands extends BandSet {
                 + " bytes from ic_name[" + ic_name.length + "]");
     }
 
-    public void addInnerClass(String name, String outerName, String innerName,
+    public void addInnerClass(final String name, final String outerName, final String innerName,
             int flags) {
         if(outerName != null || innerName != null) {
             if(namesArePredictable(name, outerName, innerName)) {
-                IcTuple innerClass = new IcTuple(cpBands.getCPClass(name), flags, null, null);
+                final IcTuple innerClass = new IcTuple(cpBands.getCPClass(name), flags, null, null);
                 addToMap(outerName, innerClass);
                 innerClasses.add(innerClass);
             } else {
                 flags |= (1<<16);
-                IcTuple icTuple = new IcTuple(cpBands.getCPClass(name), flags, cpBands.getCPClass(outerName), cpBands.getCPUtf8(innerName));
-                boolean added = innerClasses.add(icTuple);
+                final IcTuple icTuple = new IcTuple(cpBands.getCPClass(name), flags, cpBands.getCPClass(outerName), cpBands.getCPUtf8(innerName));
+                final boolean added = innerClasses.add(icTuple);
                 if(added) {
                     bit16Count++;
                     addToMap(outerName, icTuple);
                 }
             }
         } else {
-            IcTuple innerClass = new IcTuple(cpBands.getCPClass(name), flags, null, null);
+            final IcTuple innerClass = new IcTuple(cpBands.getCPClass(name), flags, null, null);
             addToMap(getOuter(name), innerClass);
             innerClasses.add(innerClass);
         }
     }
 
-    public List getInnerClassesForOuter(String outerClassName) {
+    public List getInnerClassesForOuter(final String outerClassName) {
         return (List) outerToInner.get(outerClassName);
     }
 
-    private String getOuter(String name) {
+    private String getOuter(final String name) {
         return name.substring(0, name.lastIndexOf('$'));
     }
 
-    private void addToMap(String outerName, IcTuple icTuple) {
+    private void addToMap(final String outerName, final IcTuple icTuple) {
         List tuples = (List) outerToInner.get(outerName);
         if(tuples == null) {
             tuples = new ArrayList();
             outerToInner.put(outerName, tuples);
             tuples.add(icTuple);
         } else {
-            for (Iterator iterator = tuples.iterator(); iterator.hasNext();) {
-                IcTuple icT = (IcTuple) iterator.next();
+            for (final Iterator iterator = tuples.iterator(); iterator.hasNext();) {
+                final IcTuple icT = (IcTuple) iterator.next();
                 if(icTuple.equals(icT)) {
                     return;
                 }
@@ -142,8 +143,8 @@ public class IcBands extends BandSet {
         }
     }
 
-    private boolean namesArePredictable(String name, String outerName,
-            String innerName) {
+    private boolean namesArePredictable(final String name, final String outerName,
+            final String innerName) {
         // TODO: Could be multiple characters, not just $
         return name.equals(outerName + '$' + innerName) && innerName.indexOf('$') == -1;
     }
@@ -155,40 +156,43 @@ public class IcBands extends BandSet {
         protected CPClass C2; // outer class
         protected CPUTF8 N; // name
 
-        public IcTuple(CPClass C, int F, CPClass C2, CPUTF8 N) {
+        public IcTuple(final CPClass C, final int F, final CPClass C2, final CPUTF8 N) {
             this.C = C;
             this.F = F;
             this.C2 = C2;
             this.N = N;
         }
 
-        public boolean equals(Object o) {
+        @Override
+        public boolean equals(final Object o) {
             if(o instanceof IcTuple) {
-                IcTuple icT = (IcTuple)o;
+                final IcTuple icT = (IcTuple)o;
                 return C.equals(icT.C) && F == icT.F && (C2 != null ? C2.equals(icT.C2) : icT.C2 == null) && (N != null ? N.equals(icT.N) : icT.N == null);
             }
             return false;
         }
 
+        @Override
         public String toString() {
             return C.toString();
         }
 
-        public int compareTo(Object arg0) {
+        @Override
+        public int compareTo(final Object arg0) {
             return C.compareTo(((IcTuple)arg0).C);
         }
 
         public boolean isAnonymous() {
-            String className = C.toString();
-            String innerName = className.substring(className.lastIndexOf('$') + 1);
+            final String className = C.toString();
+            final String innerName = className.substring(className.lastIndexOf('$') + 1);
             return Character.isDigit(innerName.charAt(0));
         }
 
     }
 
-    public IcTuple getIcTuple(CPClass inner) {
-        for (Iterator iterator = innerClasses.iterator(); iterator.hasNext();) {
-            IcTuple icTuple = (IcTuple) iterator.next();
+    public IcTuple getIcTuple(final CPClass inner) {
+        for (final Iterator iterator = innerClasses.iterator(); iterator.hasNext();) {
+            final IcTuple icTuple = (IcTuple) iterator.next();
             if(icTuple.C.equals(inner)) {
                 return icTuple;
             }
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/IntList.java b/src/main/java/org/apache/commons/compress/harmony/pack200/IntList.java
index fe8f86c..273b38e 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/IntList.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/IntList.java
@@ -43,7 +43,7 @@ public class IntList {
      * @param capacity
      *            the initial capacity of this IntList
      */
-    public IntList(int capacity) {
+    public IntList(final int capacity) {
         if (capacity < 0) {
             throw new IllegalArgumentException();
         }
@@ -58,7 +58,7 @@ public class IntList {
      *            the object to add
      * @return true
      */
-    public boolean add(int object) {
+    public boolean add(final int object) {
         if (lastIndex == array.length) {
             growAtEnd(1);
         }
@@ -67,8 +67,8 @@ public class IntList {
         return true;
     }
 
-    public void add(int location, int object) {
-        int size = lastIndex - firstIndex;
+    public void add(final int location, final int object) {
+        final int size = lastIndex - firstIndex;
         if (0 < location && location < size) {
             if (firstIndex == 0 && lastIndex == array.length) {
                 growForInsert(location, 1);
@@ -77,7 +77,7 @@ public class IntList {
                 System.arraycopy(array, firstIndex, array, --firstIndex,
                         location);
             } else {
-                int index = location + firstIndex;
+                final int index = location + firstIndex;
                 System.arraycopy(array, index, array, index + 1, size
                         - location);
                 lastIndex++;
@@ -108,17 +108,17 @@ public class IntList {
         }
     }
 
-    public int get(int location) {
+    public int get(final int location) {
         if (0 <= location && location < (lastIndex - firstIndex)) {
             return array[firstIndex + location];
         }
         throw new IndexOutOfBoundsException("" + location);
     }
 
-    private void growAtEnd(int required) {
-        int size = lastIndex - firstIndex;
+    private void growAtEnd(final int required) {
+        final int size = lastIndex - firstIndex;
         if (firstIndex >= required - (array.length - lastIndex)) {
-            int newLast = lastIndex - firstIndex;
+            final int newLast = lastIndex - firstIndex;
             if (size > 0) {
                 System.arraycopy(array, firstIndex, array, 0, size);
             }
@@ -132,7 +132,7 @@ public class IntList {
             if (increment < 12) {
                 increment = 12;
             }
-            int[] newArray = new int[size + increment];
+            final int[] newArray = new int[size + increment];
             if (size > 0) {
                 System.arraycopy(array, firstIndex, newArray, 0, size);
                 firstIndex = 0;
@@ -142,10 +142,10 @@ public class IntList {
         }
     }
 
-    private void growAtFront(int required) {
-        int size = lastIndex - firstIndex;
+    private void growAtFront(final int required) {
+        final int size = lastIndex - firstIndex;
         if (array.length - lastIndex + firstIndex >= required) {
-            int newFirst = array.length - size;
+            final int newFirst = array.length - size;
             if (size > 0) {
                 System.arraycopy(array, firstIndex, array, newFirst, size);
             }
@@ -159,7 +159,7 @@ public class IntList {
             if (increment < 12) {
                 increment = 12;
             }
-            int[] newArray = new int[size + increment];
+            final int[] newArray = new int[size + increment];
             if (size > 0) {
                 System.arraycopy(array, firstIndex, newArray, newArray.length
                         - size, size);
@@ -170,8 +170,8 @@ public class IntList {
         }
     }
 
-    private void growForInsert(int location, int required) {
-        int size = lastIndex - firstIndex;
+    private void growForInsert(final int location, final int required) {
+        final int size = lastIndex - firstIndex;
         int increment = size / 2;
         if (required > increment) {
             increment = required;
@@ -179,8 +179,8 @@ public class IntList {
         if (increment < 12) {
             increment = 12;
         }
-        int[] newArray = new int[size + increment];
-        int newFirst = increment - required;
+        final int[] newArray = new int[size + increment];
+        final int newFirst = increment - required;
         // Copy elements after location to the new array skipping inserted
         // elements
         System.arraycopy(array, location + firstIndex, newArray, newFirst
@@ -193,46 +193,44 @@ public class IntList {
         array = newArray;
     }
 
-    public void increment(int location) {
-        if (0 <= location && location < (lastIndex - firstIndex)) {
-            array[firstIndex + location]++;
-        } else {
+    public void increment(final int location) {
+        if ((0 > location) || (location >= (lastIndex - firstIndex))) {
             throw new IndexOutOfBoundsException("" + location);
         }
+        array[firstIndex + location]++;
     }
 
     public boolean isEmpty() {
         return lastIndex == firstIndex;
     }
 
-    public int remove(int location) {
+    public int remove(final int location) {
         int result;
-        int size = lastIndex - firstIndex;
-        if (0 <= location && location < size) {
-            if (location == size - 1) {
-                result = array[--lastIndex];
-                array[lastIndex] = 0;
-            } else if (location == 0) {
-                result = array[firstIndex];
+        final int size = lastIndex - firstIndex;
+        if ((0 > location) || (location >= size)) {
+            throw new IndexOutOfBoundsException();
+        }
+        if (location == size - 1) {
+            result = array[--lastIndex];
+            array[lastIndex] = 0;
+        } else if (location == 0) {
+            result = array[firstIndex];
+            array[firstIndex++] = 0;
+        } else {
+            final int elementIndex = firstIndex + location;
+            result = array[elementIndex];
+            if (location < size / 2) {
+                System.arraycopy(array, firstIndex, array, firstIndex + 1,
+                        location);
                 array[firstIndex++] = 0;
             } else {
-                int elementIndex = firstIndex + location;
-                result = array[elementIndex];
-                if (location < size / 2) {
-                    System.arraycopy(array, firstIndex, array, firstIndex + 1,
-                            location);
-                    array[firstIndex++] = 0;
-                } else {
-                    System.arraycopy(array, elementIndex + 1, array,
-                            elementIndex, size - location - 1);
-                    array[--lastIndex] = 0;
-                }
-            }
-            if (firstIndex == lastIndex) {
-                firstIndex = lastIndex = 0;
+                System.arraycopy(array, elementIndex + 1, array,
+                        elementIndex, size - location - 1);
+                array[--lastIndex] = 0;
             }
-        } else {
-            throw new IndexOutOfBoundsException();
+        }
+        if (firstIndex == lastIndex) {
+            firstIndex = lastIndex = 0;
         }
 
         modCount++;
@@ -244,13 +242,13 @@ public class IntList {
     }
 
     public int[] toArray() {
-        int size = lastIndex - firstIndex;
-        int[] result = new int[size];
+        final int size = lastIndex - firstIndex;
+        final int[] result = new int[size];
         System.arraycopy(array, firstIndex, result, 0, size);
         return result;
     }
 
-    public void addAll(IntList list) {
+    public void addAll(final IntList list) {
         growAtEnd(list.size());
         for (int i = 0; i < list.size(); i++) {
             add(list.get(i));
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/MetadataBandGroup.java b/src/main/java/org/apache/commons/compress/harmony/pack200/MetadataBandGroup.java
index 9ea5a88..e0f6317 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/MetadataBandGroup.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/MetadataBandGroup.java
@@ -72,7 +72,7 @@ public class MetadataBandGroup extends BandSet {
      * @param effort
      *            packing effort
      */
-    public MetadataBandGroup(String type, int context, CpBands cpBands, SegmentHeader segmentHeader, int effort) {
+    public MetadataBandGroup(final String type, final int context, final CpBands cpBands, final SegmentHeader segmentHeader, final int effort) {
         super(effort, segmentHeader);
         this.type = type;
         this.cpBands = cpBands;
@@ -82,7 +82,8 @@ public class MetadataBandGroup extends BandSet {
     /* (non-Javadoc)
      * @see org.apache.commons.compress.harmony.pack200.BandSet#pack(java.io.OutputStream)
      */
-    public void pack(OutputStream out) throws IOException, Pack200Exception {
+    @Override
+    public void pack(final OutputStream out) throws IOException, Pack200Exception {
         PackingUtils.log("Writing metadata band group...");
         if(hasContent()) {
             String contextStr;
@@ -232,8 +233,8 @@ public class MetadataBandGroup extends BandSet {
         }
     }
 
-    private int[] tagListToArray(List t2) {
-        int[] ints = new int[t2.size()];
+    private int[] tagListToArray(final List t2) {
+        final int[] ints = new int[t2.size()];
         for (int i = 0; i < ints.length; i++) {
             ints[i] = ((String)t2.get(i)).charAt(0);
         }
@@ -254,66 +255,66 @@ public class MetadataBandGroup extends BandSet {
      * @param nestNameRU TODO
      * @param nestPairN TODO
      */
-    public void addParameterAnnotation(int numParams, int[] annoN, IntList pairN, List typeRS, List nameRU, List t, List values, List caseArrayN, List nestTypeRS, List nestNameRU, List nestPairN) {
+    public void addParameterAnnotation(final int numParams, final int[] annoN, final IntList pairN, final List typeRS, final List nameRU, final List t, final List values, final List caseArrayN, final List nestTypeRS, final List nestNameRU, final List nestPairN) {
         param_NB.add(numParams);
         for (int i = 0; i < annoN.length; i++) {
             anno_N.add(annoN[i]);
         }
         pair_N.addAll(pairN);
-        for (Iterator iterator = typeRS.iterator(); iterator.hasNext();) {
-            String desc = (String) iterator.next();
+        for (final Iterator iterator = typeRS.iterator(); iterator.hasNext();) {
+            final String desc = (String) iterator.next();
             type_RS.add(cpBands.getCPSignature(desc));
         }
-        for (Iterator iterator = nameRU.iterator(); iterator.hasNext();) {
-            String name = (String) iterator.next();
+        for (final Iterator iterator = nameRU.iterator(); iterator.hasNext();) {
+            final String name = (String) iterator.next();
             name_RU.add(cpBands.getCPUtf8(name));
         }
-        Iterator valuesIterator = values.iterator();
-        for (Iterator iterator = t.iterator(); iterator.hasNext();) {
-            String tag = (String) iterator.next();
+        final Iterator valuesIterator = values.iterator();
+        for (final Iterator iterator = t.iterator(); iterator.hasNext();) {
+            final String tag = (String) iterator.next();
             T.add(tag);
             if (tag.equals("B") || tag.equals("C") || tag.equals("I")
                     || tag.equals("S") || tag.equals("Z")) {
-                Integer value = (Integer)valuesIterator.next();
+                final Integer value = (Integer)valuesIterator.next();
                 caseI_KI.add(cpBands.getConstant(value));
             } else if (tag.equals("D")) {
-                Double value = (Double)valuesIterator.next();
+                final Double value = (Double)valuesIterator.next();
                 caseD_KD.add(cpBands.getConstant(value));
             } else if (tag.equals("F")) {
-                Float value = (Float)valuesIterator.next();
+                final Float value = (Float)valuesIterator.next();
                 caseF_KF.add(cpBands.getConstant(value));
             } else if (tag.equals("J")) {
-                Long value = (Long)valuesIterator.next();
+                final Long value = (Long)valuesIterator.next();
                 caseJ_KJ.add(cpBands.getConstant(value));
             } else if (tag.equals("c")) {
-                String value = (String)valuesIterator.next();
+                final String value = (String)valuesIterator.next();
                 casec_RS.add(cpBands.getCPSignature(value));
             } else if (tag.equals("e")) {
-                String value = (String)valuesIterator.next();
-                String value2 = (String)valuesIterator.next();
+                final String value = (String)valuesIterator.next();
+                final String value2 = (String)valuesIterator.next();
                 caseet_RS.add(cpBands.getCPSignature(value));
                 caseec_RU.add(cpBands.getCPUtf8(value2));
             } else if (tag.equals("s")) {
-                String value = (String)valuesIterator.next();
+                final String value = (String)valuesIterator.next();
                 cases_RU.add(cpBands.getCPUtf8(value));
             }
             // do nothing here for [ or @ (handled below)
         }
-        for (Iterator iterator = caseArrayN.iterator(); iterator.hasNext();) {
-            int arraySize = ((Integer)iterator.next()).intValue();
+        for (final Iterator iterator = caseArrayN.iterator(); iterator.hasNext();) {
+            final int arraySize = ((Integer)iterator.next()).intValue();
             casearray_N.add(arraySize);
             numBackwardsCalls += arraySize;
         }
-        for (Iterator iterator = nestTypeRS.iterator(); iterator.hasNext();) {
-            String type = (String) iterator.next();
+        for (final Iterator iterator = nestTypeRS.iterator(); iterator.hasNext();) {
+            final String type = (String) iterator.next();
             nesttype_RS.add(cpBands.getCPSignature(type));
         }
-        for (Iterator iterator = nestNameRU.iterator(); iterator.hasNext();) {
-            String name = (String) iterator.next();
+        for (final Iterator iterator = nestNameRU.iterator(); iterator.hasNext();) {
+            final String name = (String) iterator.next();
             nestname_RU.add(cpBands.getCPUtf8(name));
         }
-        for (Iterator iterator = nestPairN.iterator(); iterator.hasNext();) {
-            Integer numPairs = (Integer) iterator.next();
+        for (final Iterator iterator = nestPairN.iterator(); iterator.hasNext();) {
+            final Integer numPairs = (Integer) iterator.next();
             nestpair_N.add(numPairs.intValue());
             numBackwardsCalls += numPairs.intValue();
         }
@@ -331,61 +332,61 @@ public class MetadataBandGroup extends BandSet {
      * @param nestNameRU TODO
      * @param nestPairN TODO
      */
-    public void addAnnotation(String desc, List nameRU, List t, List values, List caseArrayN, List nestTypeRS, List nestNameRU, List nestPairN) {
+    public void addAnnotation(final String desc, final List nameRU, final List t, final List values, final List caseArrayN, final List nestTypeRS, final List nestNameRU, final List nestPairN) {
         type_RS.add(cpBands.getCPSignature(desc));
         pair_N.add(nameRU.size());
 
-        for (Iterator iterator = nameRU.iterator(); iterator.hasNext();) {
-            String name = (String) iterator.next();
+        for (final Iterator iterator = nameRU.iterator(); iterator.hasNext();) {
+            final String name = (String) iterator.next();
             name_RU.add(cpBands.getCPUtf8(name));
         }
 
-        Iterator valuesIterator = values.iterator();
-        for (Iterator iterator = t.iterator(); iterator.hasNext();) {
-            String tag = (String) iterator.next();
+        final Iterator valuesIterator = values.iterator();
+        for (final Iterator iterator = t.iterator(); iterator.hasNext();) {
+            final String tag = (String) iterator.next();
             T.add(tag);
             if (tag.equals("B") || tag.equals("C") || tag.equals("I")
                     || tag.equals("S") || tag.equals("Z")) {
-                Integer value = (Integer)valuesIterator.next();
+                final Integer value = (Integer)valuesIterator.next();
                 caseI_KI.add(cpBands.getConstant(value));
             } else if (tag.equals("D")) {
-                Double value = (Double)valuesIterator.next();
+                final Double value = (Double)valuesIterator.next();
                 caseD_KD.add(cpBands.getConstant(value));
             } else if (tag.equals("F")) {
-                Float value = (Float)valuesIterator.next();
+                final Float value = (Float)valuesIterator.next();
                 caseF_KF.add(cpBands.getConstant(value));
             } else if (tag.equals("J")) {
-                Long value = (Long)valuesIterator.next();
+                final Long value = (Long)valuesIterator.next();
                 caseJ_KJ.add(cpBands.getConstant(value));
             } else if (tag.equals("c")) {
-                String value = (String)valuesIterator.next();
+                final String value = (String)valuesIterator.next();
                 casec_RS.add(cpBands.getCPSignature(value));
             } else if (tag.equals("e")) {
-                String value = (String)valuesIterator.next();
-                String value2 = (String)valuesIterator.next();
+                final String value = (String)valuesIterator.next();
+                final String value2 = (String)valuesIterator.next();
                 caseet_RS.add(cpBands.getCPSignature(value));
                 caseec_RU.add(cpBands.getCPUtf8(value2));
             } else if (tag.equals("s")) {
-                String value = (String)valuesIterator.next();
+                final String value = (String)valuesIterator.next();
                 cases_RU.add(cpBands.getCPUtf8(value));
             }
             // do nothing here for [ or @ (handled below)
         }
-        for (Iterator iterator = caseArrayN.iterator(); iterator.hasNext();) {
-            int arraySize = ((Integer)iterator.next()).intValue();
+        for (final Iterator iterator = caseArrayN.iterator(); iterator.hasNext();) {
+            final int arraySize = ((Integer)iterator.next()).intValue();
             casearray_N.add(arraySize);
             numBackwardsCalls += arraySize;
         }
-        for (Iterator iterator = nestTypeRS.iterator(); iterator.hasNext();) {
-            String type = (String) iterator.next();
+        for (final Iterator iterator = nestTypeRS.iterator(); iterator.hasNext();) {
+            final String type = (String) iterator.next();
             nesttype_RS.add(cpBands.getCPSignature(type));
         }
-        for (Iterator iterator = nestNameRU.iterator(); iterator.hasNext();) {
-            String name = (String) iterator.next();
+        for (final Iterator iterator = nestNameRU.iterator(); iterator.hasNext();) {
+            final String name = (String) iterator.next();
             nestname_RU.add(cpBands.getCPUtf8(name));
         }
-        for (Iterator iterator = nestPairN.iterator(); iterator.hasNext();) {
-            Integer numPairs = (Integer) iterator.next();
+        for (final Iterator iterator = nestPairN.iterator(); iterator.hasNext();) {
+            final Integer numPairs = (Integer) iterator.next();
             nestpair_N.add(numPairs.intValue());
             numBackwardsCalls += numPairs.intValue();
         }
@@ -416,10 +417,10 @@ public class MetadataBandGroup extends BandSet {
      * Remove the latest annotation that was added to this group
      */
     public void removeLatest() {
-        int latest = anno_N.remove(anno_N.size() -1);
+        final int latest = anno_N.remove(anno_N.size() -1);
         for (int i = 0; i < latest; i++) {
             type_RS.remove(type_RS.size() - 1);
-            int pairs = pair_N.remove(pair_N.size() - 1);
+            final int pairs = pair_N.remove(pair_N.size() - 1);
             for (int j = 0; j < pairs; j++) {
                 removeOnePair();
             }
@@ -430,7 +431,7 @@ public class MetadataBandGroup extends BandSet {
      * Convenience method for removeLatest
      */
     private void removeOnePair() {
-        String tag = (String) T.remove(T.size() - 1);
+        final String tag = (String) T.remove(T.size() - 1);
         if (tag.equals("B") || tag.equals("C") || tag.equals("I")
                 || tag.equals("S") || tag.equals("Z")) {
             caseI_KI.remove(caseI_KI.size() - 1);
@@ -448,14 +449,14 @@ public class MetadataBandGroup extends BandSet {
         } else if (tag.equals("s")) {
             cases_RU.remove(cases_RU.size() - 1);
         } else if (tag.equals("[")) {
-            int arraySize = casearray_N.remove(casearray_N.size() - 1);
+            final int arraySize = casearray_N.remove(casearray_N.size() - 1);
             numBackwardsCalls -= arraySize;
             for (int k = 0; k < arraySize; k++) {
                 removeOnePair();
             }
         } else if (tag.equals("@")) {
             nesttype_RS.remove(nesttype_RS.size() - 1);
-            int numPairs = nestpair_N.remove(nestpair_N.size() - 1);
+            final int numPairs = nestpair_N.remove(nestpair_N.size() - 1);
             numBackwardsCalls -= numPairs;
             for (int i = 0; i < numPairs; i++) {
                 removeOnePair();
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/NewAttribute.java b/src/main/java/org/apache/commons/compress/harmony/pack200/NewAttribute.java
index 86b6b8e..4889c05 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/NewAttribute.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/NewAttribute.java
@@ -39,14 +39,14 @@ public class NewAttribute extends Attribute {
     private ClassReader classReader;
     private char[] buf;
 
-    public NewAttribute(String type, String layout, int context) {
+    public NewAttribute(final String type, final String layout, final int context) {
         super(type);
         this.layout = layout;
         addContext(context);
     }
 
-    public NewAttribute(ClassReader classReader, String type, String layout, byte[] contents, char[] buf,
-            int codeOff, Label[] labels) {
+    public NewAttribute(final ClassReader classReader, final String type, final String layout, final byte[] contents, final char[] buf,
+            final int codeOff, final Label[] labels) {
         super(type);
         this.classReader = classReader;
         this.contents = contents;
@@ -56,7 +56,7 @@ public class NewAttribute extends Attribute {
         this.buf = buf;
     }
 
-    public void addContext(int context) {
+    public void addContext(final int context) {
         switch(context) {
         case AttributeDefinitionBands.CONTEXT_CLASS:
             contextClass = true;
@@ -93,23 +93,26 @@ public class NewAttribute extends Attribute {
         return layout;
     }
 
+    @Override
     public boolean isUnknown() {
         return false;
     }
 
+    @Override
     public boolean isCodeAttribute() {
         return codeOff != -1;
     }
 
-    protected Attribute read(ClassReader cr, int off, int len, char[] buf,
-            int codeOff, Label[] labels) {
-        byte[] attributeContents = new byte[len];
+    @Override
+    protected Attribute read(final ClassReader cr, final int off, final int len, final char[] buf,
+            final int codeOff, final Label[] labels) {
+        final byte[] attributeContents = new byte[len];
         System.arraycopy(cr.b, off, attributeContents, 0, len);
         return new NewAttribute(cr, type, layout, attributeContents, buf, codeOff,
                 labels);
     }
 
-    public boolean isUnknown(int context) {
+    public boolean isUnknown(final int context) {
         switch(context) {
         case AttributeDefinitionBands.CONTEXT_CLASS:
             return !contextClass;
@@ -123,15 +126,15 @@ public class NewAttribute extends Attribute {
         return false;
     }
 
-    public String readUTF8(int index) {
+    public String readUTF8(final int index) {
         return classReader.readUTF8(index, buf);
     }
 
-    public String readClass(int index) {
+    public String readClass(final int index) {
         return classReader.readClass(index, buf);
     }
 
-    public Object readConst(int index) {
+    public Object readConst(final int index) {
         return classReader.readConst(index, buf);
     }
 
@@ -139,7 +142,7 @@ public class NewAttribute extends Attribute {
         return contents;
     }
 
-    public Label getLabel(int index) {
+    public Label getLabel(final int index) {
         return labels[index];
     }
 
@@ -151,12 +154,13 @@ public class NewAttribute extends Attribute {
      */
     public static class ErrorAttribute extends NewAttribute {
 
-        public ErrorAttribute(String type, int context) {
+        public ErrorAttribute(final String type, final int context) {
             super(type, "", context);
         }
 
-        protected Attribute read(ClassReader cr, int off, int len, char[] buf,
-                int codeOff, Label[] labels) {
+        @Override
+        protected Attribute read(final ClassReader cr, final int off, final int len, final char[] buf,
+                final int codeOff, final Label[] labels) {
             throw new Error("Attribute " + type + " was found");
         }
 
@@ -170,12 +174,13 @@ public class NewAttribute extends Attribute {
      */
     public static class StripAttribute extends NewAttribute {
 
-        public StripAttribute(String type, int context) {
+        public StripAttribute(final String type, final int context) {
             super(type, "", context);
         }
 
-        protected Attribute read(ClassReader cr, int off, int len, char[] buf,
-                int codeOff, Label[] labels) {
+        @Override
+        protected Attribute read(final ClassReader cr, final int off, final int len, final char[] buf,
+                final int codeOff, final Label[] labels) {
             // TODO Not sure if this works, can we really strip an attribute if we don't know the layout?
             return null;
         }
@@ -189,12 +194,13 @@ public class NewAttribute extends Attribute {
      */
     public static class PassAttribute extends NewAttribute {
 
-        public PassAttribute(String type, int context) {
+        public PassAttribute(final String type, final int context) {
             super(type, "", context);
         }
 
-        protected Attribute read(ClassReader cr, int off, int len, char[] buf,
-                int codeOff, Label[] labels) {
+        @Override
+        protected Attribute read(final ClassReader cr, final int off, final int len, final char[] buf,
+                final int codeOff, final Label[] labels) {
             throw new Segment.PassException();
         }
 
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/NewAttributeBands.java b/src/main/java/org/apache/commons/compress/harmony/pack200/NewAttributeBands.java
index 8405d9e..d451c80 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/NewAttributeBands.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/NewAttributeBands.java
@@ -46,25 +46,26 @@ public class NewAttributeBands extends BandSet {
     // used when parsing
     private Integral lastPIntegral;
 
-    public NewAttributeBands(int effort, CpBands cpBands, SegmentHeader header, AttributeDefinition def) throws IOException {
+    public NewAttributeBands(final int effort, final CpBands cpBands, final SegmentHeader header, final AttributeDefinition def) throws IOException {
         super(effort, header);
         this.def = def;
         this.cpBands = cpBands;
         parseLayout();
     }
 
-    public void addAttribute(NewAttribute attribute) {
+    public void addAttribute(final NewAttribute attribute) {
         usedAtLeastOnce = true;
-        InputStream stream = new ByteArrayInputStream(attribute.getBytes());
-        for (Iterator iterator = attributeLayoutElements.iterator(); iterator.hasNext();) {
-            AttributeLayoutElement layoutElement = (AttributeLayoutElement) iterator.next();
+        final InputStream stream = new ByteArrayInputStream(attribute.getBytes());
+        for (final Iterator iterator = attributeLayoutElements.iterator(); iterator.hasNext();) {
+            final AttributeLayoutElement layoutElement = (AttributeLayoutElement) iterator.next();
             layoutElement.addAttributeToBand(attribute, stream);
         }
     }
 
-    public void pack(OutputStream out) throws IOException, Pack200Exception {
-        for (Iterator iterator = attributeLayoutElements.iterator(); iterator.hasNext();) {
-            AttributeLayoutElement layoutElement = (AttributeLayoutElement) iterator.next();
+    @Override
+    public void pack(final OutputStream out) throws IOException, Pack200Exception {
+        for (final Iterator iterator = attributeLayoutElements.iterator(); iterator.hasNext();) {
+            final AttributeLayoutElement layoutElement = (AttributeLayoutElement) iterator.next();
             layoutElement.pack(out);
         }
     }
@@ -86,10 +87,10 @@ public class NewAttributeBands extends BandSet {
     }
 
     private void parseLayout() throws IOException {
-        String layout = def.layout.getUnderlyingString();
+        final String layout = def.layout.getUnderlyingString();
         if (attributeLayoutElements == null) {
             attributeLayoutElements = new ArrayList();
-            StringReader stream = new StringReader(layout);
+            final StringReader stream = new StringReader(layout);
             AttributeLayoutElement e;
             while ((e = readNextAttributeElement(stream)) != null) {
                 attributeLayoutElements.add(e);
@@ -107,13 +108,13 @@ public class NewAttributeBands extends BandSet {
      */
     private void resolveCalls() {
         for (int i = 0; i < attributeLayoutElements.size(); i++) {
-            AttributeLayoutElement element = (AttributeLayoutElement) attributeLayoutElements
+            final AttributeLayoutElement element = (AttributeLayoutElement) attributeLayoutElements
                     .get(i);
             if (element instanceof Callable) {
-                Callable callable = (Callable) element;
-                List body = callable.body; // Look for calls in the body
+                final Callable callable = (Callable) element;
+                final List body = callable.body; // Look for calls in the body
                 for (int iIndex = 0; iIndex < body.size(); iIndex++) {
-                    LayoutElement layoutElement = (LayoutElement) body
+                    final LayoutElement layoutElement = (LayoutElement) body
                             .get(iIndex);
                     // Set the callable for each call
                     resolveCallsForElement(i, callable, layoutElement);
@@ -122,10 +123,10 @@ public class NewAttributeBands extends BandSet {
         }
         int backwardsCallableIndex = 0;
         for (int i = 0; i < attributeLayoutElements.size(); i++) {
-            AttributeLayoutElement element = (AttributeLayoutElement) attributeLayoutElements
+            final AttributeLayoutElement element = (AttributeLayoutElement) attributeLayoutElements
                     .get(i);
             if (element instanceof Callable) {
-                Callable callable = (Callable) element;
+                final Callable callable = (Callable) element;
                 if(callable.isBackwardsCallable) {
                     callable.setBackwardsCallableIndex(backwardsCallableIndex);
                     backwardsCallableIndex++;
@@ -135,16 +136,16 @@ public class NewAttributeBands extends BandSet {
         backwardsCallCounts = new int[backwardsCallableIndex];
     }
 
-    private void resolveCallsForElement(int i,
-            Callable currentCallable, LayoutElement layoutElement) {
+    private void resolveCallsForElement(final int i,
+            final Callable currentCallable, final LayoutElement layoutElement) {
         if (layoutElement instanceof Call) {
-            Call call = (Call) layoutElement;
+            final Call call = (Call) layoutElement;
             int index = call.callableIndex;
             if (index == 0) { // Calls the parent callable
                 call.setCallable(currentCallable);
             } else if (index > 0) { // Forwards call
                 for (int k = i + 1; k < attributeLayoutElements.size(); k++) {
-                    AttributeLayoutElement el = (AttributeLayoutElement) attributeLayoutElements
+                    final AttributeLayoutElement el = (AttributeLayoutElement) attributeLayoutElements
                             .get(k);
                     if (el instanceof Callable) {
                         index--;
@@ -156,7 +157,7 @@ public class NewAttributeBands extends BandSet {
                 }
             } else { // Backwards call
                 for (int k = i - 1; k >= 0; k--) {
-                    AttributeLayoutElement el = (AttributeLayoutElement) attributeLayoutElements
+                    final AttributeLayoutElement el = (AttributeLayoutElement) attributeLayoutElements
                             .get(k);
                     if (el instanceof Callable) {
                         index++;
@@ -168,33 +169,32 @@ public class NewAttributeBands extends BandSet {
                 }
             }
         } else if (layoutElement instanceof Replication) {
-            List children = ((Replication)layoutElement).layoutElements;
-            for (Iterator iterator = children.iterator(); iterator.hasNext();) {
-                LayoutElement object = (LayoutElement) iterator.next();
+            final List children = ((Replication)layoutElement).layoutElements;
+            for (final Iterator iterator = children.iterator(); iterator.hasNext();) {
+                final LayoutElement object = (LayoutElement) iterator.next();
                 resolveCallsForElement(i, currentCallable, object);
             }
         }
     }
 
-    private AttributeLayoutElement readNextAttributeElement(StringReader stream)
+    private AttributeLayoutElement readNextAttributeElement(final StringReader stream)
             throws IOException {
         stream.mark(1);
-        int nextChar = stream.read();
+        final int nextChar = stream.read();
         if (nextChar == -1) {
             return null;
         }
         if (nextChar == '[') {
-            List body = readBody(getStreamUpToMatchingBracket(stream));
+            final List body = readBody(getStreamUpToMatchingBracket(stream));
             return new Callable(body);
-        } else {
-            stream.reset();
-            return readNextLayoutElement(stream);
         }
+        stream.reset();
+        return readNextLayoutElement(stream);
     }
 
-    private LayoutElement readNextLayoutElement(StringReader stream)
+    private LayoutElement readNextLayoutElement(final StringReader stream)
             throws IOException {
-        int nextChar = stream.read();
+        final int nextChar = stream.read();
         if (nextChar == -1) {
             return null;
         }
@@ -231,9 +231,9 @@ public class NewAttributeBands extends BandSet {
 
             // Replication
         case 'N':
-            char uint_type = (char) stream.read();
+            final char uint_type = (char) stream.read();
             stream.read(); // '['
-            String str = readUpToMatchingBracket(stream);
+            final String str = readUpToMatchingBracket(stream);
             return new Replication("" + uint_type, str);
 
             // Union
@@ -242,7 +242,7 @@ public class NewAttributeBands extends BandSet {
             if (int_type.equals("S")) {
                 int_type += (char) stream.read();
             }
-            List unionCases = new ArrayList();
+            final List unionCases = new ArrayList();
             UnionCase c;
             while ((c = readNextUnionCase(stream)) != null) {
                 unionCases.add(c);
@@ -252,7 +252,7 @@ public class NewAttributeBands extends BandSet {
             stream.read(); // '['
             List body = null;
             stream.mark(1);
-            char next = (char) stream.read();
+            final char next = (char) stream.read();
             if (next != ']') {
                 stream.reset();
                 body = readBody(getStreamUpToMatchingBracket(stream));
@@ -261,19 +261,19 @@ public class NewAttributeBands extends BandSet {
 
             // Call
         case '(':
-            int number = readNumber(stream).intValue();
+            final int number = readNumber(stream).intValue();
             stream.read(); // ')'
             return new Call(number);
             // Reference
         case 'K':
         case 'R':
-            String string = "" + (char)nextChar + (char) stream.read();
-            char nxt = (char) stream.read();
-            string += nxt;
+            final StringBuilder string = new StringBuilder("").append((char)nextChar).append((char) stream.read());
+            final char nxt = (char) stream.read();
+            string.append(nxt);
             if (nxt == 'N') {
-                string += (char) stream.read();
+                string.append((char) stream.read());
             }
-            return new Reference(string);
+            return new Reference(string.toString());
         }
         return null;
     }
@@ -285,18 +285,17 @@ public class NewAttributeBands extends BandSet {
      * @return
      * @throws IOException If an I/O error occurs.
      */
-    private UnionCase readNextUnionCase(StringReader stream) throws IOException {
+    private UnionCase readNextUnionCase(final StringReader stream) throws IOException {
         stream.mark(2);
         stream.read(); // '('
         char next = (char) stream.read();
         if (next == ')') {
             stream.reset();
             return null;
-        } else {
-            stream.reset();
-            stream.read(); // '('
         }
-        List tags = new ArrayList();
+        stream.reset();
+        stream.read(); // '('
+        final List tags = new ArrayList();
         Integer nextTag;
         do {
             nextTag = readNumber(stream);
@@ -310,11 +309,10 @@ public class NewAttributeBands extends BandSet {
         next = (char) stream.read();
         if (next == ']') {
             return new UnionCase(tags);
-        } else {
-            stream.reset();
-            return new UnionCase(tags,
-                    readBody(getStreamUpToMatchingBracket(stream)));
         }
+        stream.reset();
+        return new UnionCase(tags,
+                readBody(getStreamUpToMatchingBracket(stream)));
     }
 
     /**
@@ -324,17 +322,17 @@ public class NewAttributeBands extends BandSet {
      */
     public interface AttributeLayoutElement {
 
-        public void addAttributeToBand(NewAttribute attribute, InputStream stream);
+        void addAttributeToBand(NewAttribute attribute, InputStream stream);
 
-        public void pack(OutputStream out) throws IOException, Pack200Exception;
+        void pack(OutputStream out) throws IOException, Pack200Exception;
 
-        public void renumberBci(IntList bciRenumbering, Map labelsToOffsets);
+        void renumberBci(IntList bciRenumbering, Map labelsToOffsets);
 
     }
 
     public abstract class LayoutElement implements AttributeLayoutElement {
 
-        protected int getLength(char uint_type) {
+        protected int getLength(final char uint_type) {
             int length = 0;
             switch (uint_type) {
             case 'B':
@@ -365,12 +363,12 @@ public class NewAttributeBands extends BandSet {
         private Integral previousIntegral;
         private int previousPValue;
 
-        public Integral(String tag) {
+        public Integral(final String tag) {
             this.tag = tag;
             this.defaultCodec = getCodec(tag);
         }
 
-        public Integral(String tag, Integral previousIntegral) {
+        public Integral(final String tag, final Integral previousIntegral) {
             this.tag = tag;
             this.defaultCodec = getCodec(tag);
             this.previousIntegral = previousIntegral;
@@ -380,8 +378,9 @@ public class NewAttributeBands extends BandSet {
             return tag;
         }
 
-        public void addAttributeToBand(NewAttribute attribute,
-                InputStream stream) {
+        @Override
+        public void addAttributeToBand(final NewAttribute attribute,
+                final InputStream stream) {
             Object val = null;
             int value = 0;
             if (tag.equals("B") || tag.equals("FB")) {
@@ -399,35 +398,36 @@ public class NewAttributeBands extends BandSet {
             } else if (tag.equals("V") || tag.equals("FV") || tag.equals("SV")) {
                 // Not currently supported
             } else if (tag.startsWith("PO") || tag.startsWith("OS")) {
-                char uint_type = tag.substring(2).toCharArray()[0];
-                int length = getLength(uint_type);
+                final char uint_type = tag.substring(2).toCharArray()[0];
+                final int length = getLength(uint_type);
                 value = readInteger(length, stream);
                 value += previousIntegral.previousPValue;
                 val = attribute.getLabel(value);
                 previousPValue = value;
             } else if (tag.startsWith("P")) {
-                char uint_type = tag.substring(1).toCharArray()[0];
-                int length = getLength(uint_type);
+                final char uint_type = tag.substring(1).toCharArray()[0];
+                final int length = getLength(uint_type);
                 value = readInteger(length, stream);
                 val = attribute.getLabel(value);
                 previousPValue = value;
             } else if (tag.startsWith("O")) {
-                char uint_type = tag.substring(1).toCharArray()[0];
-                int length = getLength(uint_type);
+                final char uint_type = tag.substring(1).toCharArray()[0];
+                final int length = getLength(uint_type);
                 value = readInteger(length, stream);
                 value += previousIntegral.previousPValue;
                 val = attribute.getLabel(value);
                 previousPValue = value;
             }
             if(val == null) {
-                val = new Integer(value);
+                val = Integer.valueOf(value);
             }
             band.add(val);
         }
 
-        public void pack(OutputStream out) throws IOException, Pack200Exception {
+        @Override
+        public void pack(final OutputStream out) throws IOException, Pack200Exception {
             PackingUtils.log("Writing new attribute bands...");
-            byte[] encodedBand = encodeBandInt(tag, integerListToArray(band),
+            final byte[] encodedBand = encodeBandInt(tag, integerListToArray(band),
                     defaultCodec);
             out.write(encodedBand);
             PackingUtils.log("Wrote " + encodedBand.length + " bytes from "
@@ -438,35 +438,38 @@ public class NewAttributeBands extends BandSet {
             return ((Integer)band.get(band.size() - 1)).intValue();
         }
 
-        public void renumberBci(IntList bciRenumbering, Map labelsToOffsets) {
+        @Override
+        public void renumberBci(final IntList bciRenumbering, final Map labelsToOffsets) {
             if(tag.startsWith("O") || tag.startsWith("PO")) {
                 renumberOffsetBci(previousIntegral.band, bciRenumbering, labelsToOffsets);
             } else if (tag.startsWith("P")) {
                 for (int i = band.size() - 1; i >= 0; i--) {
-                    Object label = band.get(i);
+                    final Object label = band.get(i);
                     if (label instanceof Integer) {
                         break;
-                    } else if (label instanceof Label) {
+                    }
+                    if (label instanceof Label) {
                         band.remove(i);
-                        Integer bytecodeIndex = (Integer) labelsToOffsets
+                        final Integer bytecodeIndex = (Integer) labelsToOffsets
                                 .get(label);
-                        band.add(i, new Integer(bciRenumbering.get(bytecodeIndex
+                        band.add(i, Integer.valueOf(bciRenumbering.get(bytecodeIndex
                                 .intValue())));
                     }
                 }
             }
         }
 
-        private void renumberOffsetBci(List relative,
-                IntList bciRenumbering, Map labelsToOffsets) {
+        private void renumberOffsetBci(final List relative,
+                final IntList bciRenumbering, final Map labelsToOffsets) {
             for (int i = band.size() - 1; i >= 0; i--) {
-                Object label = band.get(i);
+                final Object label = band.get(i);
                 if (label instanceof Integer) {
                     break;
-                } else if (label instanceof Label) {
+                }
+                if (label instanceof Label) {
                     band.remove(i);
-                    Integer bytecodeIndex = (Integer) labelsToOffsets.get(label);
-                    Integer renumberedOffset = new Integer(bciRenumbering
+                    final Integer bytecodeIndex = (Integer) labelsToOffsets.get(label);
+                    final Integer renumberedOffset = Integer.valueOf(bciRenumbering
                             .get(bytecodeIndex.intValue())
                             - ((Integer) relative.get(i)).intValue());
                     band.add(i, renumberedOffset);
@@ -493,38 +496,41 @@ public class NewAttributeBands extends BandSet {
             return layoutElements;
         }
 
-        public Replication(String tag, String contents) throws IOException {
+        public Replication(final String tag, final String contents) throws IOException {
             this.countElement = new Integral(tag);
-            StringReader stream = new StringReader(contents);
+            final StringReader stream = new StringReader(contents);
             LayoutElement e;
             while ((e = readNextLayoutElement(stream)) != null) {
                 layoutElements.add(e);
             }
         }
 
-        public void addAttributeToBand(NewAttribute attribute,
-                InputStream stream) {
+        @Override
+        public void addAttributeToBand(final NewAttribute attribute,
+                final InputStream stream) {
             countElement.addAttributeToBand(attribute, stream);
-            int count = countElement.latestValue();
+            final int count = countElement.latestValue();
             for (int i = 0; i < count; i++) {
-                for (Iterator iterator = layoutElements.iterator(); iterator.hasNext();) {
-                    AttributeLayoutElement layoutElement = (AttributeLayoutElement) iterator.next();
+                for (final Iterator iterator = layoutElements.iterator(); iterator.hasNext();) {
+                    final AttributeLayoutElement layoutElement = (AttributeLayoutElement) iterator.next();
                     layoutElement.addAttributeToBand(attribute, stream);
                 }
             }
         }
 
-        public void pack(OutputStream out) throws IOException, Pack200Exception {
+        @Override
+        public void pack(final OutputStream out) throws IOException, Pack200Exception {
             countElement.pack(out);
-            for (Iterator iterator = layoutElements.iterator(); iterator.hasNext();) {
-                AttributeLayoutElement layoutElement = (AttributeLayoutElement) iterator.next();
+            for (final Iterator iterator = layoutElements.iterator(); iterator.hasNext();) {
+                final AttributeLayoutElement layoutElement = (AttributeLayoutElement) iterator.next();
                 layoutElement.pack(out);
             }
         }
 
-        public void renumberBci(IntList bciRenumbering, Map labelsToOffsets) {
-            for (Iterator iterator = layoutElements.iterator(); iterator.hasNext();) {
-                AttributeLayoutElement layoutElement = (AttributeLayoutElement) iterator.next();
+        @Override
+        public void renumberBci(final IntList bciRenumbering, final Map labelsToOffsets) {
+            for (final Iterator iterator = layoutElements.iterator(); iterator.hasNext();) {
+                final AttributeLayoutElement layoutElement = (AttributeLayoutElement) iterator.next();
                 layoutElement.renumberBci(bciRenumbering, labelsToOffsets);
             }
         }
@@ -540,19 +546,20 @@ public class NewAttributeBands extends BandSet {
         private final List unionCases;
         private final List defaultCaseBody;
 
-        public Union(String tag, List unionCases, List body) {
+        public Union(final String tag, final List unionCases, final List body) {
             this.unionTag = new Integral(tag);
             this.unionCases = unionCases;
             this.defaultCaseBody = body;
         }
 
-        public void addAttributeToBand(NewAttribute attribute,
-                InputStream stream) {
+        @Override
+        public void addAttributeToBand(final NewAttribute attribute,
+                final InputStream stream) {
             unionTag.addAttributeToBand(attribute, stream);
-            long tag = unionTag.latestValue();
+            final long tag = unionTag.latestValue();
             boolean defaultCase = true;
             for (int i = 0; i < unionCases.size(); i++) {
-                UnionCase element = (UnionCase) unionCases.get(i);
+                final UnionCase element = (UnionCase) unionCases.get(i);
                 if (element.hasTag(tag)) {
                     defaultCase = false;
                     element.addAttributeToBand(attribute, stream);
@@ -560,35 +567,37 @@ public class NewAttributeBands extends BandSet {
             }
             if (defaultCase) {
                 for (int i = 0; i < defaultCaseBody.size(); i++) {
-                    LayoutElement element = (LayoutElement) defaultCaseBody
+                    final LayoutElement element = (LayoutElement) defaultCaseBody
                             .get(i);
                     element.addAttributeToBand(attribute, stream);
                 }
             }
         }
 
-        public void pack(OutputStream out) throws IOException, Pack200Exception {
+        @Override
+        public void pack(final OutputStream out) throws IOException, Pack200Exception {
             unionTag.pack(out);
-            for (Iterator iterator = unionCases.iterator(); iterator.hasNext();) {
-                UnionCase unionCase = (UnionCase) iterator.next();
+            for (final Iterator iterator = unionCases.iterator(); iterator.hasNext();) {
+                final UnionCase unionCase = (UnionCase) iterator.next();
                 unionCase.pack(out);
             }
-            for (Iterator iterator = defaultCaseBody.iterator(); iterator
+            for (final Iterator iterator = defaultCaseBody.iterator(); iterator
                     .hasNext();) {
-                AttributeLayoutElement layoutElement = (AttributeLayoutElement) iterator
+                final AttributeLayoutElement layoutElement = (AttributeLayoutElement) iterator
                         .next();
                 layoutElement.pack(out);
             }
         }
 
-        public void renumberBci(IntList bciRenumbering, Map labelsToOffsets) {
-            for (Iterator iterator = unionCases.iterator(); iterator.hasNext();) {
-                UnionCase unionCase = (UnionCase) iterator.next();
+        @Override
+        public void renumberBci(final IntList bciRenumbering, final Map labelsToOffsets) {
+            for (final Iterator iterator = unionCases.iterator(); iterator.hasNext();) {
+                final UnionCase unionCase = (UnionCase) iterator.next();
                 unionCase.renumberBci(bciRenumbering, labelsToOffsets);
             }
-            for (Iterator iterator = defaultCaseBody.iterator(); iterator
+            for (final Iterator iterator = defaultCaseBody.iterator(); iterator
                     .hasNext();) {
-                AttributeLayoutElement layoutElement = (AttributeLayoutElement) iterator
+                final AttributeLayoutElement layoutElement = (AttributeLayoutElement) iterator
                         .next();
                 layoutElement.renumberBci(bciRenumbering, labelsToOffsets);
             }
@@ -612,30 +621,33 @@ public class NewAttributeBands extends BandSet {
         private final int callableIndex;
         private Callable callable;
 
-        public Call(int callableIndex) {
+        public Call(final int callableIndex) {
             this.callableIndex = callableIndex;
         }
 
-        public void setCallable(Callable callable) {
+        public void setCallable(final Callable callable) {
             this.callable = callable;
             if (callableIndex < 1) {
                 callable.setBackwardsCallable();
             }
         }
 
-        public void addAttributeToBand(NewAttribute attribute,
-                InputStream stream) {
+        @Override
+        public void addAttributeToBand(final NewAttribute attribute,
+                final InputStream stream) {
             callable.addAttributeToBand(attribute, stream);
             if(callableIndex < 1) {
                 callable.addBackwardsCall();
             }
         }
 
-        public void pack(OutputStream out) {
+        @Override
+        public void pack(final OutputStream out) {
             // do nothing here as pack will be called on the callable at another time
         }
 
-        public void renumberBci(IntList bciRenumbering, Map labelsToOffsets) {
+        @Override
+        public void renumberBci(final IntList bciRenumbering, final Map labelsToOffsets) {
             // do nothing here as renumberBci will be called on the callable at another time
         }
 
@@ -659,14 +671,15 @@ public class NewAttributeBands extends BandSet {
 
         private boolean nullsAllowed = false;
 
-        public Reference(String tag) {
+        public Reference(final String tag) {
             this.tag = tag;
             nullsAllowed = tag.indexOf('N') != -1;
         }
 
-        public void addAttributeToBand(NewAttribute attribute,
-                InputStream stream) {
-            int index = readInteger(4, stream);
+        @Override
+        public void addAttributeToBand(final NewAttribute attribute,
+                final InputStream stream) {
+            final int index = readInteger(4, stream);
             if(tag.startsWith("RC")) { // Class
                 band.add(cpBands.getCPClass(attribute.readClass(index)));
             } else if (tag.startsWith("RU")) { // UTF8 String
@@ -683,20 +696,22 @@ public class NewAttributeBands extends BandSet {
             return tag;
         }
 
-        public void pack(OutputStream out) throws IOException, Pack200Exception {
+        @Override
+        public void pack(final OutputStream out) throws IOException, Pack200Exception {
             int[] ints;
             if(nullsAllowed) {
                 ints = cpEntryOrNullListToArray(band);
             } else {
                 ints = cpEntryListToArray(band);
             }
-            byte[] encodedBand = encodeBandInt(tag, ints, Codec.UNSIGNED5);
+            final byte[] encodedBand = encodeBandInt(tag, ints, Codec.UNSIGNED5);
             out.write(encodedBand);
             PackingUtils.log("Wrote " + encodedBand.length + " bytes from "
                     + tag + "[" + ints.length + "]");
         }
 
-        public void renumberBci(IntList bciRenumbering, Map labelsToOffsets) {
+        @Override
+        public void renumberBci(final IntList bciRenumbering, final Map labelsToOffsets) {
             // nothing to do here
         }
 
@@ -710,11 +725,11 @@ public class NewAttributeBands extends BandSet {
 
         private int backwardsCallableIndex;
 
-        public Callable(List body) throws IOException {
+        public Callable(final List body) throws IOException {
             this.body = body;
         }
 
-        public void setBackwardsCallableIndex(int backwardsCallableIndex) {
+        public void setBackwardsCallableIndex(final int backwardsCallableIndex) {
             this.backwardsCallableIndex = backwardsCallableIndex;
         }
 
@@ -733,24 +748,27 @@ public class NewAttributeBands extends BandSet {
             this.isBackwardsCallable = true;
         }
 
-        public void addAttributeToBand(NewAttribute attribute,
-                InputStream stream) {
-            for (Iterator iterator = body.iterator(); iterator.hasNext();) {
-                AttributeLayoutElement layoutElement = (AttributeLayoutElement) iterator.next();
+        @Override
+        public void addAttributeToBand(final NewAttribute attribute,
+                final InputStream stream) {
+            for (final Iterator iterator = body.iterator(); iterator.hasNext();) {
+                final AttributeLayoutElement layoutElement = (AttributeLayoutElement) iterator.next();
                 layoutElement.addAttributeToBand(attribute, stream);
             }
         }
 
-        public void pack(OutputStream out) throws IOException, Pack200Exception {
-            for (Iterator iterator = body.iterator(); iterator.hasNext();) {
-                AttributeLayoutElement layoutElement = (AttributeLayoutElement) iterator.next();
+        @Override
+        public void pack(final OutputStream out) throws IOException, Pack200Exception {
+            for (final Iterator iterator = body.iterator(); iterator.hasNext();) {
+                final AttributeLayoutElement layoutElement = (AttributeLayoutElement) iterator.next();
                 layoutElement.pack(out);
             }
         }
 
-        public void renumberBci(IntList bciRenumbering, Map labelsToOffsets) {
-            for (Iterator iterator = body.iterator(); iterator.hasNext();) {
-                AttributeLayoutElement layoutElement = (AttributeLayoutElement) iterator.next();
+        @Override
+        public void renumberBci(final IntList bciRenumbering, final Map labelsToOffsets) {
+            for (final Iterator iterator = body.iterator(); iterator.hasNext();) {
+                final AttributeLayoutElement layoutElement = (AttributeLayoutElement) iterator.next();
                 layoutElement.renumberBci(bciRenumbering, labelsToOffsets);
             }
         }
@@ -769,38 +787,41 @@ public class NewAttributeBands extends BandSet {
 
         private final List tags;
 
-        public UnionCase(List tags) {
+        public UnionCase(final List tags) {
             this.tags = tags;
             this.body = Collections.EMPTY_LIST;
         }
 
-        public boolean hasTag(long l) {
-            return tags.contains(new Integer((int) l));
+        public boolean hasTag(final long l) {
+            return tags.contains(Integer.valueOf((int) l));
         }
 
-        public UnionCase(List tags, List body) throws IOException {
+        public UnionCase(final List tags, final List body) throws IOException {
             this.tags = tags;
             this.body = body;
         }
 
-        public void addAttributeToBand(NewAttribute attribute,
-                InputStream stream) {
+        @Override
+        public void addAttributeToBand(final NewAttribute attribute,
+                final InputStream stream) {
             for (int i = 0; i < body.size(); i++) {
-                LayoutElement element = (LayoutElement) body.get(i);
+                final LayoutElement element = (LayoutElement) body.get(i);
                 element.addAttributeToBand(attribute, stream);
             }
         }
 
-        public void pack(OutputStream out) throws IOException, Pack200Exception {
+        @Override
+        public void pack(final OutputStream out) throws IOException, Pack200Exception {
             for (int i = 0; i < body.size(); i++) {
-                LayoutElement element = (LayoutElement) body.get(i);
+                final LayoutElement element = (LayoutElement) body.get(i);
                 element.pack(out);
             }
         }
 
-        public void renumberBci(IntList bciRenumbering, Map labelsToOffsets) {
+        @Override
+        public void renumberBci(final IntList bciRenumbering, final Map labelsToOffsets) {
             for (int i = 0; i < body.size(); i++) {
-                LayoutElement element = (LayoutElement) body.get(i);
+                final LayoutElement element = (LayoutElement) body.get(i);
                 element.renumberBci(bciRenumbering, labelsToOffsets);
             }
         }
@@ -818,12 +839,12 @@ public class NewAttributeBands extends BandSet {
      * @return
      * @throws IOException If an I/O error occurs.
      */
-    private StringReader getStreamUpToMatchingBracket(StringReader stream)
+    private StringReader getStreamUpToMatchingBracket(final StringReader stream)
             throws IOException {
-        StringBuffer sb = new StringBuffer();
+        final StringBuffer sb = new StringBuffer();
         int foundBracket = -1;
         while (foundBracket != 0) {
-            char c = (char) stream.read();
+            final char c = (char) stream.read();
             if (c == ']') {
                 foundBracket++;
             }
@@ -837,18 +858,22 @@ public class NewAttributeBands extends BandSet {
         return new StringReader(sb.toString());
     }
 
-    private int readInteger(int i, InputStream stream) {
+    private int readInteger(final int i, final InputStream stream) {
         int result = 0;
         for (int j = 0; j < i; j++) {
             try {
                 result = result << 8 | stream.read();
-            } catch (IOException e) {
+            } catch (final IOException e) {
                 throw new RuntimeException("Error reading unknown attribute");
             }
         }
         // use casting to preserve sign
-        if(i == 1) result = (byte) result;
-        if(i == 2) result = (short) result;
+        if(i == 1) {
+            result = (byte) result;
+        }
+        if(i == 2) {
+            result = (short) result;
+        }
         return result;
     }
 
@@ -858,19 +883,21 @@ public class NewAttributeBands extends BandSet {
      *
      * @param layoutElement
      */
-    private BHSDCodec getCodec(String layoutElement) {
+    private BHSDCodec getCodec(final String layoutElement) {
         if (layoutElement.indexOf('O') >= 0) {
             return Codec.BRANCH5;
-        } else if (layoutElement.indexOf('P') >= 0) {
+        }
+        if (layoutElement.indexOf('P') >= 0) {
             return Codec.BCI5;
-        } else if (layoutElement.indexOf('S') >= 0 && layoutElement.indexOf("KS") < 0 //$NON-NLS-1$
+        }
+        if (layoutElement.indexOf('S') >= 0 && layoutElement.indexOf("KS") < 0 //$NON-NLS-1$
                 && layoutElement.indexOf("RS") < 0) { //$NON-NLS-1$
             return Codec.SIGNED5;
-        } else if (layoutElement.indexOf('B') >= 0) {
+        }
+        if (layoutElement.indexOf('B') >= 0) {
             return Codec.BYTE1;
-        } else {
-            return Codec.UNSIGNED5;
         }
+        return Codec.UNSIGNED5;
     }
 
     /**
@@ -881,12 +908,12 @@ public class NewAttributeBands extends BandSet {
      * @return
      * @throws IOException If an I/O error occurs.
      */
-    private String readUpToMatchingBracket(StringReader stream)
+    private String readUpToMatchingBracket(final StringReader stream)
             throws IOException {
-        StringBuffer sb = new StringBuffer();
+        final StringBuffer sb = new StringBuffer();
         int foundBracket = -1;
         while (foundBracket != 0) {
-            char c = (char) stream.read();
+            final char c = (char) stream.read();
             if (c == ']') {
                 foundBracket++;
             }
@@ -907,10 +934,10 @@ public class NewAttributeBands extends BandSet {
      * @return
      * @throws IOException If an I/O error occurs.
      */
-    private Integer readNumber(StringReader stream) throws IOException {
+    private Integer readNumber(final StringReader stream) throws IOException {
         stream.mark(1);
-        char first = (char) stream.read();
-        boolean negative = first == '-';
+        final char first = (char) stream.read();
+        final boolean negative = first == '-';
         if (!negative) {
             stream.reset();
         }
@@ -924,12 +951,12 @@ public class NewAttributeBands extends BandSet {
         if(length == 0) {
             return null;
         }
-        char[] digits = new char[length];
-        int read = stream.read(digits);
+        final char[] digits = new char[length];
+        final int read = stream.read(digits);
         if (read != digits.length) {
             throw new IOException("Error reading from the input stream");
         }
-        return new Integer(Integer.parseInt((negative ? "-" : "") + new String(digits)));
+        return Integer.valueOf(Integer.parseInt((negative ? "-" : "") + new String(digits)));
     }
 
     /**
@@ -939,8 +966,8 @@ public class NewAttributeBands extends BandSet {
      * @return List of LayoutElements
      * @throws IOException If an I/O error occurs.
      */
-    private List readBody(StringReader stream) throws IOException {
-        List layoutElements = new ArrayList();
+    private List readBody(final StringReader stream) throws IOException {
+        final List layoutElements = new ArrayList();
         LayoutElement e;
         while ((e = readNextLayoutElement(stream)) != null) {
             layoutElements.add(e);
@@ -955,9 +982,9 @@ public class NewAttributeBands extends BandSet {
      * @param bciRenumbering TODO
      * @param labelsToOffsets TODO
      */
-    public void renumberBci(IntList bciRenumbering, Map labelsToOffsets) {
-        for (Iterator iterator = attributeLayoutElements.iterator(); iterator.hasNext();) {
-            AttributeLayoutElement element = (AttributeLayoutElement) iterator.next();
+    public void renumberBci(final IntList bciRenumbering, final Map labelsToOffsets) {
+        for (final Iterator iterator = attributeLayoutElements.iterator(); iterator.hasNext();) {
+            final AttributeLayoutElement element = (AttributeLayoutElement) iterator.next();
             element.renumberBci(bciRenumbering, labelsToOffsets);
         }
     }
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200Adapter.java b/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200Adapter.java
index 5e0f21c..16b6605 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200Adapter.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200Adapter.java
@@ -30,22 +30,22 @@ public abstract class Pack200Adapter {
 
 	private final PropertyChangeSupport support = new PropertyChangeSupport(this);
 
-	private final SortedMap<String, String> properties = new TreeMap<String, String>();
+	private final SortedMap<String, String> properties = new TreeMap<>();
 
 	public SortedMap<String, String> properties() {
 		return properties;
 	}
 
-	public void addPropertyChangeListener(PropertyChangeListener listener) {
+	public void addPropertyChangeListener(final PropertyChangeListener listener) {
 		support.addPropertyChangeListener(listener);
 	}
 
-	protected void firePropertyChange(String propertyName, Object oldValue,
-			Object newValue) {
+	protected void firePropertyChange(final String propertyName, final Object oldValue,
+			final Object newValue) {
 		support.firePropertyChange(propertyName, oldValue, newValue);
 	}
 
-	public void removePropertyChangeListener(PropertyChangeListener listener) {
+	public void removePropertyChangeListener(final PropertyChangeListener listener) {
 		support.removePropertyChangeListener(listener);
 	}
 
@@ -53,7 +53,7 @@ public abstract class Pack200Adapter {
 	 * Completion between 0..1.
 	 * @param value Completion between 0..1.
 	 */
-	protected void completed(double value) {
+	protected void completed(final double value) {
 		firePropertyChange("pack.progress", null, String.valueOf((int)(100*value))); //$NON-NLS-1$
 	}
 }
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200ClassReader.java b/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200ClassReader.java
index d9e288e..fef52c2 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200ClassReader.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200ClassReader.java
@@ -33,14 +33,15 @@ public class Pack200ClassReader extends ClassReader {
      * @param b
      *            the contents of class file in the format of bytes
      */
-    public Pack200ClassReader(byte[] b) {
+    public Pack200ClassReader(final byte[] b) {
         super(b);
     }
 
-    public int readUnsignedShort(int index) {
+    @Override
+    public int readUnsignedShort(final int index) {
         // Doing this to check whether last load-constant instruction was ldc (18) or ldc_w (19)
         // TODO:  Assess whether this impacts on performance
-        int unsignedShort = super.readUnsignedShort(index);
+        final int unsignedShort = super.readUnsignedShort(index);
         if(b[index - 1] == 19) {
             lastUnsignedShort = unsignedShort;
         } else {
@@ -49,13 +50,15 @@ public class Pack200ClassReader extends ClassReader {
         return unsignedShort;
     }
 
-    public Object readConst(int item, char[] buf) {
+    @Override
+    public Object readConst(final int item, final char[] buf) {
         lastConstantHadWideIndex = item == lastUnsignedShort;
         return super.readConst(item, buf);
     }
 
-    public String readUTF8(int arg0, char[] arg1) {
-        String utf8 = super.readUTF8(arg0, arg1);
+    @Override
+    public String readUTF8(final int arg0, final char[] arg1) {
+        final String utf8 = super.readUTF8(arg0, arg1);
         if(!anySyntheticAttributes && "Synthetic".equals(utf8)) {
             anySyntheticAttributes = true;
         }
@@ -70,7 +73,7 @@ public class Pack200ClassReader extends ClassReader {
         return anySyntheticAttributes;
     }
 
-    public void setFileName(String name) {
+    public void setFileName(final String name) {
         this.fileName = name;
     }
 
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200Exception.java b/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200Exception.java
index 4af7ee5..e20f172 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200Exception.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200Exception.java
@@ -29,7 +29,7 @@ public class Pack200Exception extends Exception {
      * @param message
      *            the text message to display
      */
-    public Pack200Exception(String message) {
+    public Pack200Exception(final String message) {
         super(message);
     }
 
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200PackerAdapter.java b/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200PackerAdapter.java
index b82aff0..f6a2dbc 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200PackerAdapter.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200PackerAdapter.java
@@ -20,6 +20,7 @@ import java.io.IOException;
 import java.io.OutputStream;
 import java.util.jar.JarFile;
 import java.util.jar.JarInputStream;
+
 import org.apache.commons.compress.java.util.jar.Pack200.Packer;
 
 
@@ -33,56 +34,61 @@ public class Pack200PackerAdapter extends Pack200Adapter implements Packer {
 
     private final PackingOptions options = new PackingOptions();
 
-    public void pack(JarFile file, OutputStream out) throws IOException {
-        if (file == null || out == null)
+    @Override
+    public void pack(final JarFile file, final OutputStream out) throws IOException {
+        if (file == null || out == null) {
             throw new IllegalArgumentException(
                     "Must specify both input and output streams");
+        }
         completed(0);
         try {
             new org.apache.commons.compress.harmony.pack200.Archive(file, out, options).pack();
-        } catch (Pack200Exception e) {
+        } catch (final Pack200Exception e) {
             throw new IOException("Failed to pack Jar:" + String.valueOf(e));
         }
         completed(1);
     }
 
-    public void pack(JarInputStream in, OutputStream out) throws IOException {
-        if (in == null || out == null)
+    @Override
+    public void pack(final JarInputStream in, final OutputStream out) throws IOException {
+        if (in == null || out == null) {
             throw new IllegalArgumentException(
                     "Must specify both input and output streams");
+        }
         completed(0);
-        PackingOptions options = new PackingOptions();
+        final PackingOptions options = new PackingOptions();
 
         try {
             new org.apache.commons.compress.harmony.pack200.Archive(in, out, options).pack();
-        } catch (Pack200Exception e) {
+        } catch (final Pack200Exception e) {
             throw new IOException("Failed to pack Jar:" + String.valueOf(e));
         }
         completed(1);
         in.close();
     }
 
-    protected void firePropertyChange(String propertyName, Object oldValue,
-            Object newValue) {
+    @Override
+    protected void firePropertyChange(final String propertyName, final Object oldValue,
+            final Object newValue) {
         super.firePropertyChange(propertyName, oldValue, newValue);
         if(newValue != null && !newValue.equals(oldValue)) {
             if (propertyName.startsWith(CLASS_ATTRIBUTE_PFX)) {
-                String attributeName = propertyName.substring(CLASS_ATTRIBUTE_PFX.length());
+                final String attributeName = propertyName.substring(CLASS_ATTRIBUTE_PFX.length());
                 options.addClassAttributeAction(attributeName, (String)newValue);
             } else if (propertyName.startsWith(CODE_ATTRIBUTE_PFX)) {
-                String attributeName = propertyName.substring(CODE_ATTRIBUTE_PFX.length());
+                final String attributeName = propertyName.substring(CODE_ATTRIBUTE_PFX.length());
                 options.addCodeAttributeAction(attributeName, (String)newValue);
             } else if (propertyName.equals(DEFLATE_HINT)) {
                 options.setDeflateHint((String) newValue);
             } else if (propertyName.equals(EFFORT)) {
                 options.setEffort(Integer.parseInt((String)newValue));
             } else if (propertyName.startsWith(FIELD_ATTRIBUTE_PFX)) {
-                String attributeName = propertyName.substring(FIELD_ATTRIBUTE_PFX.length());
+                final String attributeName = propertyName.substring(FIELD_ATTRIBUTE_PFX.length());
                 options.addFieldAttributeAction(attributeName, (String)newValue);
             } else if (propertyName.equals(KEEP_FILE_ORDER)) {
                 options.setKeepFileOrder(Boolean.parseBoolean((String)newValue));
             } else if (propertyName.startsWith(METHOD_ATTRIBUTE_PFX)) {
-                String attributeName = propertyName.substring(METHOD_ATTRIBUTE_PFX.length());
+                final String attributeName = propertyName.substring(METHOD_ATTRIBUTE_PFX.length());
                 options.addMethodAttributeAction(attributeName, (String)newValue);
             } else if (propertyName.equals(MODIFICATION_TIME)) {
                 options.setModificationTime((String)newValue);
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/PackingOptions.java b/src/main/java/org/apache/commons/compress/harmony/pack200/PackingOptions.java
index 060b230..f4f7f5e 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/PackingOptions.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/PackingOptions.java
@@ -57,7 +57,7 @@ public class PackingOptions {
         return gzip;
     }
 
-    public void setGzip(boolean gzip) {
+    public void setGzip(final boolean gzip) {
         this.gzip = gzip;
     }
 
@@ -73,7 +73,7 @@ public class PackingOptions {
      *
      * @param stripDebug If true, all debug attributes.
      */
-    public void setStripDebug(boolean stripDebug) {
+    public void setStripDebug(final boolean stripDebug) {
         this.stripDebug = stripDebug;
     }
 
@@ -81,7 +81,7 @@ public class PackingOptions {
         return keepFileOrder;
     }
 
-    public void setKeepFileOrder(boolean keepFileOrder) {
+    public void setKeepFileOrder(final boolean keepFileOrder) {
         this.keepFileOrder = keepFileOrder;
     }
 
@@ -93,7 +93,7 @@ public class PackingOptions {
      * Set the segment limit (equivalent to -S command line option)
      * @param segmentLimit - the limit in bytes
      */
-    public void setSegmentLimit(long segmentLimit) {
+    public void setSegmentLimit(final long segmentLimit) {
         this.segmentLimit = segmentLimit;
     }
 
@@ -105,7 +105,7 @@ public class PackingOptions {
      * Sets the compression effort level (0-9, equivalent to -E command line option)
      * @param effort the compression effort level, 0-9.
      */
-    public void setEffort(int effort) {
+    public void setEffort(final int effort) {
         this.effort = effort;
     }
 
@@ -117,7 +117,7 @@ public class PackingOptions {
         return KEEP.equals(deflateHint);
     }
 
-    public void setDeflateHint(String deflateHint) {
+    public void setDeflateHint(final String deflateHint) {
         if (!KEEP.equals(deflateHint)
                 && !"true".equals(deflateHint)
                 && !"false".equals(deflateHint)) {
@@ -133,7 +133,7 @@ public class PackingOptions {
         return modificationTime;
     }
 
-    public void setModificationTime(String modificationTime) {
+    public void setModificationTime(final String modificationTime) {
         if (!KEEP.equals(modificationTime)
                 && !"latest".equals(modificationTime)) {
             throw new IllegalArgumentException(
@@ -144,13 +144,14 @@ public class PackingOptions {
         this.modificationTime = modificationTime;
     }
 
-    public boolean isPassFile(String passFileName) {
+    public boolean isPassFile(final String passFileName) {
         if (passFiles != null) {
-            for (Iterator iterator = passFiles.iterator(); iterator.hasNext();) {
+            for (final Iterator iterator = passFiles.iterator(); iterator.hasNext();) {
                 String pass = (String) iterator.next();
                 if (passFileName.equals(pass)) {
                     return true;
-                } else if (!pass.endsWith(".class")) { // a whole directory is
+                }
+                if (!pass.endsWith(".class")) { // a whole directory is
                     // passed
                     if (!pass.endsWith("/")) {
                         // Make sure we don't get any false positives (e.g.
@@ -185,7 +186,7 @@ public class PackingOptions {
         passFiles.add(passFileName);
     }
 
-    public void removePassFile(String passFileName) {
+    public void removePassFile(final String passFileName) {
         passFiles.remove(passFileName);
     }
 
@@ -197,7 +198,7 @@ public class PackingOptions {
      * Tell the compressor what to do if an unknown attribute is encountered
      * @param unknownAttributeAction - the action to perform
      */
-    public void setUnknownAttributeAction(String unknownAttributeAction) {
+    public void setUnknownAttributeAction(final String unknownAttributeAction) {
         this.unknownAttributeAction = unknownAttributeAction;
         if (!PASS.equals(unknownAttributeAction)
                 && !ERROR.equals(unknownAttributeAction)
@@ -207,28 +208,28 @@ public class PackingOptions {
         }
     }
 
-    public void addClassAttributeAction(String attributeName, String action) {
+    public void addClassAttributeAction(final String attributeName, final String action) {
         if(classAttributeActions == null) {
             classAttributeActions = new HashMap();
         }
         classAttributeActions.put(attributeName, action);
     }
 
-    public void addFieldAttributeAction(String attributeName, String action) {
+    public void addFieldAttributeAction(final String attributeName, final String action) {
         if(fieldAttributeActions == null) {
             fieldAttributeActions = new HashMap();
         }
         fieldAttributeActions.put(attributeName, action);
     }
 
-    public void addMethodAttributeAction(String attributeName, String action) {
+    public void addMethodAttributeAction(final String attributeName, final String action) {
         if(methodAttributeActions == null) {
             methodAttributeActions = new HashMap();
         }
         methodAttributeActions.put(attributeName, action);
     }
 
-    public void addCodeAttributeAction(String attributeName, String action) {
+    public void addCodeAttributeAction(final String attributeName, final String action) {
         if(codeAttributeActions == null) {
             codeAttributeActions = new HashMap();
         }
@@ -239,11 +240,11 @@ public class PackingOptions {
         return verbose;
     }
 
-    public void setVerbose(boolean verbose) {
+    public void setVerbose(final boolean verbose) {
         this.verbose = verbose;
     }
 
-    public void setQuiet(boolean quiet) {
+    public void setQuiet(final boolean quiet) {
         this.verbose = !quiet;
     }
 
@@ -251,45 +252,43 @@ public class PackingOptions {
         return logFile;
     }
 
-    public void setLogFile(String logFile) {
+    public void setLogFile(final String logFile) {
         this.logFile = logFile;
     }
 
-    private void addOrUpdateAttributeActions(List prototypes, Map attributeActions,
-            int tag) {
-        if (attributeActions != null) {
-            if (attributeActions.size() > 0) {
-                String name, action;
-                boolean prototypeExists;
-                NewAttribute newAttribute;
-                for (Iterator iteratorI = attributeActions.keySet().iterator(); iteratorI
+    private void addOrUpdateAttributeActions(final List prototypes, final Map attributeActions,
+            final int tag) {
+        if ((attributeActions != null) && (attributeActions.size() > 0)) {
+            String name, action;
+            boolean prototypeExists;
+            NewAttribute newAttribute;
+            for (final Iterator iteratorI = attributeActions.keySet().iterator(); iteratorI
+                    .hasNext();) {
+                name = (String) iteratorI.next();
+                action = (String) attributeActions.get(name);
+                prototypeExists = false;
+                for (final Iterator iteratorJ = prototypes.iterator(); iteratorJ
                         .hasNext();) {
-                    name = (String) iteratorI.next();
-                    action = (String) attributeActions.get(name);
-                    prototypeExists = false;
-                    for (Iterator iteratorJ = prototypes.iterator(); iteratorJ
-                            .hasNext();) {
-                        newAttribute = (NewAttribute) iteratorJ.next();
-                        if (newAttribute.type.equals(name)) {
-                            // if the attribute exists, update its context
-                            newAttribute.addContext(tag);
-                            prototypeExists = true;
-                            break;
-                        }
+                    newAttribute = (NewAttribute) iteratorJ.next();
+                    if (newAttribute.type.equals(name)) {
+                        // if the attribute exists, update its context
+                        newAttribute.addContext(tag);
+                        prototypeExists = true;
+                        break;
                     }
-                    // if no attribute is found, add a new attribute
-                    if (!prototypeExists) {
-                        if (ERROR.equals(action)) {
-                            newAttribute = new NewAttribute.ErrorAttribute(name, tag);
-                        } else if (STRIP.equals(action)) {
-                            newAttribute = new NewAttribute.StripAttribute(name, tag);
-                        } else if (PASS.equals(action)) {
-                            newAttribute = new NewAttribute.PassAttribute(name, tag);
-                        } else {
-                            newAttribute = new NewAttribute(name, action, tag);
-                        }
-                        prototypes.add(newAttribute);
+                }
+                // if no attribute is found, add a new attribute
+                if (!prototypeExists) {
+                    if (ERROR.equals(action)) {
+                        newAttribute = new NewAttribute.ErrorAttribute(name, tag);
+                    } else if (STRIP.equals(action)) {
+                        newAttribute = new NewAttribute.StripAttribute(name, tag);
+                    } else if (PASS.equals(action)) {
+                        newAttribute = new NewAttribute.PassAttribute(name, tag);
+                    } else {
+                        newAttribute = new NewAttribute(name, action, tag);
                     }
+                    prototypes.add(newAttribute);
                 }
             }
         }
@@ -297,7 +296,7 @@ public class PackingOptions {
 
     public Attribute[] getUnknownAttributePrototypes() {
         if (unknownAttributeTypes == null) {
-            List prototypes = new ArrayList();
+            final List prototypes = new ArrayList();
             addOrUpdateAttributeActions(prototypes, classAttributeActions,
                     AttributeDefinitionBands.CONTEXT_CLASS);
 
@@ -316,7 +315,7 @@ public class PackingOptions {
         return unknownAttributeTypes;
     }
 
-    public String getUnknownClassAttributeAction(String type) {
+    public String getUnknownClassAttributeAction(final String type) {
         if (classAttributeActions == null) {
             return unknownAttributeAction;
         }
@@ -327,7 +326,7 @@ public class PackingOptions {
         return action;
     }
 
-    public String getUnknownMethodAttributeAction(String type) {
+    public String getUnknownMethodAttributeAction(final String type) {
         if (methodAttributeActions == null) {
             return unknownAttributeAction;
         }
@@ -338,7 +337,7 @@ public class PackingOptions {
         return action;
     }
 
-    public String getUnknownFieldAttributeAction(String type) {
+    public String getUnknownFieldAttributeAction(final String type) {
         if (fieldAttributeActions == null) {
             return unknownAttributeAction;
         }
@@ -349,7 +348,7 @@ public class PackingOptions {
         return action;
     }
 
-    public String getUnknownCodeAttributeAction(String type) {
+    public String getUnknownCodeAttributeAction(final String type) {
         if (codeAttributeActions == null) {
             return unknownAttributeAction;
         }
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/PackingUtils.java b/src/main/java/org/apache/commons/compress/harmony/pack200/PackingUtils.java
index b2bece6..e4f797f 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/PackingUtils.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/PackingUtils.java
@@ -23,7 +23,6 @@ import java.io.InputStream;
 import java.io.OutputStream;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Comparator;
 import java.util.Enumeration;
 import java.util.Iterator;
 import java.util.List;
@@ -54,25 +53,26 @@ public class PackingUtils {
 
         private boolean verbose = false;
 
-        protected PackingLogger(String name, String resourceBundleName) {
+        protected PackingLogger(final String name, final String resourceBundleName) {
             super(name, resourceBundleName);
         }
 
-        public void log(LogRecord logRecord) {
+        @Override
+        public void log(final LogRecord logRecord) {
             if (verbose) {
                 super.log(logRecord);
             }
         }
 
-        public void setVerbose(boolean isVerbose) {
+        public void setVerbose(final boolean isVerbose) {
             verbose = isVerbose;
         }
     }
 
-    public static void config(PackingOptions options) throws IOException {
-        String logFileName = options.getLogFile();
+    public static void config(final PackingOptions options) throws IOException {
+        final String logFileName = options.getLogFile();
         if (logFileName != null) {
-            FileHandler fileHandler = new FileHandler(logFileName, false);
+            final FileHandler fileHandler = new FileHandler(logFileName, false);
             fileHandler.setFormatter(new SimpleFormatter());
             packingLogger.addHandler(fileHandler);
             packingLogger.setUseParentHandlers(false);
@@ -81,29 +81,29 @@ public class PackingUtils {
         packingLogger.setVerbose(options.isVerbose());
     }
 
-    public static void log(String message) {
+    public static void log(final String message) {
         packingLogger.log(Level.INFO, message);
     }
 
     /**
      * When effort is 0, the packer copies through the original jar input stream
      * without compression
-     * 
+     *
      * @param jarInputStream
      *            the jar input stream
      * @param outputStream
      *            the jar output stream
      * @throws IOException If an I/O error occurs.
      */
-    public static void copyThroughJar(JarInputStream jarInputStream,
-            OutputStream outputStream) throws IOException {
-        Manifest manifest = jarInputStream.getManifest();
-        JarOutputStream jarOutputStream = new JarOutputStream(outputStream,
+    public static void copyThroughJar(final JarInputStream jarInputStream,
+            final OutputStream outputStream) throws IOException {
+        final Manifest manifest = jarInputStream.getManifest();
+        final JarOutputStream jarOutputStream = new JarOutputStream(outputStream,
                 manifest);
         jarOutputStream.setComment("PACK200");
         log("Packed " + JarFile.MANIFEST_NAME);
 
-        byte[] bytes = new byte[16384];
+        final byte[] bytes = new byte[16384];
         JarEntry jarEntry;
         int bytesRead;
         while ((jarEntry = jarInputStream.getNextJarEntry()) != null) {
@@ -120,19 +120,19 @@ public class PackingUtils {
     /**
      * When effort is 0, the packer copys through the original jar file without
      * compression
-     * 
+     *
      * @param jarFile
      *            the input jar file
      * @param outputStream
      *            the jar output stream
      * @throws IOException If an I/O error occurs.
      */
-    public static void copyThroughJar(JarFile jarFile, OutputStream outputStream)
+    public static void copyThroughJar(final JarFile jarFile, final OutputStream outputStream)
             throws IOException {
-        JarOutputStream jarOutputStream = new JarOutputStream(outputStream);
+        final JarOutputStream jarOutputStream = new JarOutputStream(outputStream);
         jarOutputStream.setComment("PACK200");
-        byte[] bytes = new byte[16384];
-        Enumeration entries = jarFile.entries();
+        final byte[] bytes = new byte[16384];
+        final Enumeration entries = jarFile.entries();
         InputStream inputStream;
         JarEntry jarEntry;
         int bytesRead;
@@ -150,14 +150,14 @@ public class PackingUtils {
         jarOutputStream.close();
     }
 
-    public static List getPackingFileListFromJar(JarInputStream jarInputStream,
-            boolean keepFileOrder) throws IOException {
-        List packingFileList = new ArrayList();
+    public static List getPackingFileListFromJar(final JarInputStream jarInputStream,
+            final boolean keepFileOrder) throws IOException {
+        final List packingFileList = new ArrayList();
 
         // add manifest file
-        Manifest manifest = jarInputStream.getManifest();
+        final Manifest manifest = jarInputStream.getManifest();
         if (manifest != null) {
-            ByteArrayOutputStream baos = new ByteArrayOutputStream();
+            final ByteArrayOutputStream baos = new ByteArrayOutputStream();
             manifest.write(baos);
             packingFileList.add(new PackingFile(JarFile.MANIFEST_NAME, baos
                     .toByteArray(), 0));
@@ -179,10 +179,10 @@ public class PackingUtils {
         return packingFileList;
     }
 
-    public static List getPackingFileListFromJar(JarFile jarFile,
-            boolean keepFileOrder) throws IOException {
-        List packingFileList = new ArrayList();
-        Enumeration jarEntries = jarFile.entries();
+    public static List getPackingFileListFromJar(final JarFile jarFile,
+            final boolean keepFileOrder) throws IOException {
+        final List packingFileList = new ArrayList();
+        final Enumeration jarEntries = jarFile.entries();
         JarEntry jarEntry;
         byte[] bytes;
         while (jarEntries.hasMoreElements()) {
@@ -199,24 +199,25 @@ public class PackingUtils {
         return packingFileList;
     }
 
-    private static byte[] readJarEntry(JarEntry jarEntry,
-            InputStream inputStream) throws IOException {
+    private static byte[] readJarEntry(final JarEntry jarEntry,
+            final InputStream inputStream) throws IOException {
         long size = jarEntry.getSize();
         if (size > Integer.MAX_VALUE) {
             // TODO: Should probably allow this
             throw new RuntimeException("Large Class!");
-        } else if (size < 0) {
+        }
+        if (size < 0) {
             size = 0;
         }
-        byte[] bytes = new byte[(int) size];
+        final byte[] bytes = new byte[(int) size];
         if (inputStream.read(bytes) != size) {
             throw new RuntimeException("Error reading from stream");
         }
         return bytes;
     }
 
-    private static void reorderPackingFiles(List packingFileList) {
-        Iterator iterator = packingFileList.iterator();
+    private static void reorderPackingFiles(final List packingFileList) {
+        final Iterator iterator = packingFileList.iterator();
         PackingFile packingFile;
         while (iterator.hasNext()) {
             packingFile = (PackingFile) iterator.next();
@@ -228,22 +229,22 @@ public class PackingUtils {
 
         // Sort files by name, "META-INF/MANIFEST.MF" should be put in the 1st
         // position
-        Collections.sort(packingFileList, new Comparator() {
-            public int compare(Object arg0, Object arg1) {
-                if (arg0 instanceof PackingFile && arg1 instanceof PackingFile) {
-                    String fileName0 = ((PackingFile) arg0).getName();
-                    String fileName1 = ((PackingFile) arg1).getName();
-                    if (fileName0.equals(fileName1)) {
-                        return 0;
-                    } else if (JarFile.MANIFEST_NAME.equals(fileName0)) {
-                        return -1;
-                    } else if (JarFile.MANIFEST_NAME.equals(fileName1)) {
-                        return 1;
-                    }
-                    return fileName0.compareTo(fileName1);
+        Collections.sort(packingFileList, (arg0, arg1) -> {
+            if (arg0 instanceof PackingFile && arg1 instanceof PackingFile) {
+                final String fileName0 = ((PackingFile) arg0).getName();
+                final String fileName1 = ((PackingFile) arg1).getName();
+                if (fileName0.equals(fileName1)) {
+                    return 0;
+                }
+                if (JarFile.MANIFEST_NAME.equals(fileName0)) {
+                    return -1;
+                }
+                if (JarFile.MANIFEST_NAME.equals(fileName1)) {
+                    return 1;
                 }
-                throw new IllegalArgumentException();
+                return fileName0.compareTo(fileName1);
             }
+            throw new IllegalArgumentException();
         });
     }
 
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/PopulationCodec.java b/src/main/java/org/apache/commons/compress/harmony/pack200/PopulationCodec.java
index ea21bd0..aab3a35 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/PopulationCodec.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/PopulationCodec.java
@@ -34,14 +34,14 @@ public class PopulationCodec extends Codec {
     private int l;
     private int[] favoured;
 
-    public PopulationCodec(Codec favouredCodec, Codec tokenCodec,
-            Codec unvafouredCodec) {
+    public PopulationCodec(final Codec favouredCodec, final Codec tokenCodec,
+            final Codec unvafouredCodec) {
         this.favouredCodec = favouredCodec;
         this.tokenCodec = tokenCodec;
         this.unfavouredCodec = unvafouredCodec;
     }
 
-    public PopulationCodec(Codec favouredCodec, int l, Codec unfavouredCodec) {
+    public PopulationCodec(final Codec favouredCodec, final int l, final Codec unfavouredCodec) {
         if (l >= 256 || l <= 0) {
             throw new IllegalArgumentException("L must be between 1..255");
         }
@@ -50,18 +50,21 @@ public class PopulationCodec extends Codec {
         this.unfavouredCodec = unfavouredCodec;
     }
 
-    public int decode(InputStream in) throws IOException, Pack200Exception {
+    @Override
+    public int decode(final InputStream in) throws IOException, Pack200Exception {
         throw new Pack200Exception(
                 "Population encoding does not work unless the number of elements are known");
     }
 
-    public int decode(InputStream in, long last) throws IOException,
+    @Override
+    public int decode(final InputStream in, final long last) throws IOException,
             Pack200Exception {
         throw new Pack200Exception(
                 "Population encoding does not work unless the number of elements are known");
     }
 
-    public int[] decodeInts(int n, InputStream in) throws IOException,
+    @Override
+    public int[] decodeInts(final int n, final InputStream in) throws IOException,
             Pack200Exception {
         lastBandLength = 0;
         favoured = new int[n]; // there must be <= n values, but probably a lot
@@ -117,7 +120,7 @@ public class PopulationCodec extends Codec {
         // read unfavorites
         last = 0;
         for (int i = 0; i < n; i++) {
-            int index = result[i];
+            final int index = result[i];
             if (index == 0) {
                 lastBandLength++;
                 result[i] = last = unfavouredCodec.decode(in, last);
@@ -140,24 +143,26 @@ public class PopulationCodec extends Codec {
         return unfavouredCodec;
     }
 
-    public byte[] encode(int value, int last) throws Pack200Exception {
+    @Override
+    public byte[] encode(final int value, final int last) throws Pack200Exception {
         throw new Pack200Exception(
         "Population encoding does not work unless the number of elements are known");
     }
 
-    public byte[] encode(int value) throws Pack200Exception {
+    @Override
+    public byte[] encode(final int value) throws Pack200Exception {
         throw new Pack200Exception(
         "Population encoding does not work unless the number of elements are known");
     }
 
-    public byte[] encode(int[] favoured, int[] tokens, int[] unfavoured) throws Pack200Exception {
-        int[] favoured2 = new int[favoured.length + 1];
+    public byte[] encode(final int[] favoured, final int[] tokens, final int[] unfavoured) throws Pack200Exception {
+        final int[] favoured2 = new int[favoured.length + 1];
         System.arraycopy(favoured, 0, favoured2, 0, favoured.length);
         favoured2[favoured2.length - 1] = favoured[favoured.length - 1]; // repeat last value;
-        byte[] favouredEncoded = favouredCodec.encode(favoured2);
-        byte[] tokensEncoded = tokenCodec.encode(tokens);
-        byte[] unfavouredEncoded = unfavouredCodec.encode(unfavoured);
-        byte[] band = new byte[favouredEncoded.length + tokensEncoded.length + unfavouredEncoded.length];
+        final byte[] favouredEncoded = favouredCodec.encode(favoured2);
+        final byte[] tokensEncoded = tokenCodec.encode(tokens);
+        final byte[] unfavouredEncoded = unfavouredCodec.encode(unfavoured);
+        final byte[] band = new byte[favouredEncoded.length + tokensEncoded.length + unfavouredEncoded.length];
         System.arraycopy(favouredEncoded, 0, band, 0, favouredEncoded.length);
         System.arraycopy(tokensEncoded, 0, band, favouredEncoded.length, tokensEncoded.length);
         System.arraycopy(unfavouredEncoded, 0, band, favouredEncoded.length + tokensEncoded.length, unfavouredEncoded.length);
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/RunCodec.java b/src/main/java/org/apache/commons/compress/harmony/pack200/RunCodec.java
index 6df25a2..22e14ba 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/RunCodec.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/RunCodec.java
@@ -33,7 +33,7 @@ public class RunCodec extends Codec {
     private final Codec bCodec;
     private int last;
 
-    public RunCodec(int k, Codec aCodec, Codec bCodec) throws Pack200Exception {
+    public RunCodec(final int k, final Codec aCodec, final Codec bCodec) throws Pack200Exception {
         if (k <= 0) {
             throw new Pack200Exception(
                     "Cannot have a RunCodec for a negative number of numbers");
@@ -46,27 +46,28 @@ public class RunCodec extends Codec {
         this.bCodec = bCodec;
     }
 
-    public int decode(InputStream in) throws IOException, Pack200Exception {
+    @Override
+    public int decode(final InputStream in) throws IOException, Pack200Exception {
         return decode(in, this.last);
     }
 
-    public int decode(InputStream in, long last) throws IOException,
+    @Override
+    public int decode(final InputStream in, final long last) throws IOException,
             Pack200Exception {
         if (--k >= 0) {
-            int value = aCodec.decode(in, this.last);
+            final int value = aCodec.decode(in, this.last);
             this.last = (k == 0 ? 0 : value);
             return normalise(value, aCodec);
-        } else {
-            this.last = bCodec.decode(in, this.last);
-            return normalise(this.last, bCodec);
         }
+        this.last = bCodec.decode(in, this.last);
+        return normalise(this.last, bCodec);
     }
 
-    private int normalise(int value, Codec codecUsed) {
+    private int normalise(int value, final Codec codecUsed) {
         if (codecUsed instanceof BHSDCodec) {
-            BHSDCodec bhsd = (BHSDCodec) codecUsed;
+            final BHSDCodec bhsd = (BHSDCodec) codecUsed;
             if (bhsd.isDelta()) {
-                long cardinality = bhsd.cardinality();
+                final long cardinality = bhsd.cardinality();
                 while (value > bhsd.largest()) {
                     value -= cardinality;
                 }
@@ -78,12 +79,13 @@ public class RunCodec extends Codec {
         return value;
     }
 
-    public int[] decodeInts(int n, InputStream in) throws IOException,
+    @Override
+    public int[] decodeInts(final int n, final InputStream in) throws IOException,
             Pack200Exception {
-        int[] band = new int[n];
-        int[] aValues = aCodec.decodeInts(k, in);
+        final int[] band = new int[n];
+        final int[] aValues = aCodec.decodeInts(k, in);
         normalise(aValues, aCodec);
-        int[] bValues = bCodec.decodeInts(n - k, in);
+        final int[] bValues = bCodec.decodeInts(n - k, in);
         normalise(bValues, bCodec);
         System.arraycopy(aValues, 0, band, 0, k);
         System.arraycopy(bValues, 0, band, k, n - k);
@@ -91,11 +93,11 @@ public class RunCodec extends Codec {
         return band;
     }
 
-    private void normalise(int[] band, Codec codecUsed) {
+    private void normalise(final int[] band, final Codec codecUsed) {
         if (codecUsed instanceof BHSDCodec) {
-            BHSDCodec bhsd = (BHSDCodec) codecUsed;
+            final BHSDCodec bhsd = (BHSDCodec) codecUsed;
             if (bhsd.isDelta()) {
-                long cardinality = bhsd.cardinality();
+                final long cardinality = bhsd.cardinality();
                 for (int i = 0; i < band.length; i++) {
                     while (band[i] > bhsd.largest()) {
                         band[i] -= cardinality;
@@ -106,17 +108,17 @@ public class RunCodec extends Codec {
                 }
             }
         } else if (codecUsed instanceof PopulationCodec) {
-            PopulationCodec popCodec = (PopulationCodec) codecUsed;
-            int[] favoured = (int[]) popCodec.getFavoured().clone();
+            final PopulationCodec popCodec = (PopulationCodec) codecUsed;
+            final int[] favoured = (int[]) popCodec.getFavoured().clone();
             Arrays.sort(favoured);
             for (int i = 0; i < band.length; i++) {
-                boolean favouredValue = Arrays.binarySearch(favoured, band[i]) > -1;
-                Codec theCodec = favouredValue ? popCodec.getFavouredCodec()
+                final boolean favouredValue = Arrays.binarySearch(favoured, band[i]) > -1;
+                final Codec theCodec = favouredValue ? popCodec.getFavouredCodec()
                         : popCodec.getUnfavouredCodec();
                 if (theCodec instanceof BHSDCodec) {
-                    BHSDCodec bhsd = (BHSDCodec) theCodec;
+                    final BHSDCodec bhsd = (BHSDCodec) theCodec;
                     if (bhsd.isDelta()) {
-                        long cardinality = bhsd.cardinality();
+                        final long cardinality = bhsd.cardinality();
                         while (band[i] > bhsd.largest()) {
                             band[i] -= cardinality;
                         }
@@ -128,17 +130,20 @@ public class RunCodec extends Codec {
             }
         }
     }
-    
+
+    @Override
     public String toString() {
         return "RunCodec[k=" + k + ";aCodec=" + aCodec + "bCodec=" + bCodec
                 + "]";
     }
 
-    public byte[] encode(int value, int last) throws Pack200Exception {
+    @Override
+    public byte[] encode(final int value, final int last) throws Pack200Exception {
         throw new Pack200Exception("Must encode entire band at once with a RunCodec");
     }
 
-    public byte[] encode(int value) throws Pack200Exception {
+    @Override
+    public byte[] encode(final int value) throws Pack200Exception {
         throw new Pack200Exception("Must encode entire band at once with a RunCodec");
     }
 
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/Segment.java b/src/main/java/org/apache/commons/compress/harmony/pack200/Segment.java
index 494a0b3..66f7866 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/Segment.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/Segment.java
@@ -66,11 +66,11 @@ public class Segment implements ClassVisitor {
      * @throws IOException If an I/O error occurs.
      * @throws Pack200Exception TODO
      */
-    public void pack(SegmentUnit segmentUnit, OutputStream out, PackingOptions options)
+    public void pack(final SegmentUnit segmentUnit, final OutputStream out, final PackingOptions options)
             throws IOException, Pack200Exception {
         this.options = options;
         this.stripDebug = options.isStripDebug();
-        int effort = options.getEffort();
+        final int effort = options.getEffort();
         nonStandardAttributePrototypes = options.getUnknownAttributePrototypes();
 
         PackingUtils.log("Start to pack a new segment with "
@@ -117,10 +117,10 @@ public class Segment implements ClassVisitor {
         // before segmentHeader because the band_headers band is only created
         // when the other bands are packed, but comes before them in the packed
         // file.
-        ByteArrayOutputStream bandsOutputStream = new ByteArrayOutputStream();
+        final ByteArrayOutputStream bandsOutputStream = new ByteArrayOutputStream();
 
         PackingUtils.log("Packing...");
-        int finalNumberOfClasses = classBands.numClassesProcessed();
+        final int finalNumberOfClasses = classBands.numClassesProcessed();
         segmentHeader.setClass_count(finalNumberOfClasses);
         cpBands.pack(bandsOutputStream);
         if(finalNumberOfClasses > 0) {
@@ -131,7 +131,7 @@ public class Segment implements ClassVisitor {
         }
         fileBands.pack(bandsOutputStream);
 
-        ByteArrayOutputStream headerOutputStream = new ByteArrayOutputStream();
+        final ByteArrayOutputStream headerOutputStream = new ByteArrayOutputStream();
         segmentHeader.pack(headerOutputStream);
 
         headerOutputStream.writeTo(out);
@@ -147,10 +147,10 @@ public class Segment implements ClassVisitor {
                 + segmentUnit.getPackedByteAmount() + " bytes");
     }
 
-    private void processClasses(SegmentUnit segmentUnit, Attribute[] attributes) throws Pack200Exception {
+    private void processClasses(final SegmentUnit segmentUnit, final Attribute[] attributes) throws Pack200Exception {
         segmentHeader.setClass_count(segmentUnit.classListSize());
-        for (Iterator iterator = segmentUnit.getClassList().iterator(); iterator.hasNext();) {
-            Pack200ClassReader classReader = (Pack200ClassReader) iterator
+        for (final Iterator iterator = segmentUnit.getClassList().iterator(); iterator.hasNext();) {
+            final Pack200ClassReader classReader = (Pack200ClassReader) iterator
                     .next();
             currentClassReader = classReader;
             int flags = 0;
@@ -159,17 +159,17 @@ public class Segment implements ClassVisitor {
             }
             try {
                 classReader.accept(this, attributes, flags);
-            } catch (PassException pe) {
+            } catch (final PassException pe) {
                 // Pass this class through as-is rather than packing it
                 // TODO: probably need to deal with any inner classes
                 classBands.removeCurrentClass();
-                String name = classReader.getFileName();
+                final String name = classReader.getFileName();
                 options.addPassFile(name);
                 cpBands.addCPUtf8(name);
                 boolean found = false;
-                for (Iterator iterator2 = segmentUnit.getFileList().iterator(); iterator2
+                for (final Iterator iterator2 = segmentUnit.getFileList().iterator(); iterator2
                         .hasNext();) {
-                    PackingFile file = (PackingFile) iterator2.next();
+                    final PackingFile file = (PackingFile) iterator2.next();
                     if(file.getName().equals(name)) {
                         found = true;
                         file.setContents(classReader.b);
@@ -183,73 +183,80 @@ public class Segment implements ClassVisitor {
         }
     }
 
-    public void visit(int version, int access, String name, String signature,
-            String superName, String[] interfaces) {
+    @Override
+    public void visit(final int version, final int access, final String name, final String signature,
+            final String superName, final String[] interfaces) {
         bcBands.setCurrentClass(name, superName);
         segmentHeader.addMajorVersion(version);
         classBands.addClass(version, access, name, signature, superName,
                 interfaces);
     }
 
-    public void visitSource(String source, String debug) {
+    @Override
+    public void visitSource(final String source, final String debug) {
         if(!stripDebug) {
             classBands.addSourceFile(source);
         }
     }
 
-    public void visitOuterClass(String owner, String name, String desc) {
+    @Override
+    public void visitOuterClass(final String owner, final String name, final String desc) {
         classBands.addEnclosingMethod(owner, name, desc);
 
     }
 
-    public AnnotationVisitor visitAnnotation(String desc, boolean visible) {
+    @Override
+    public AnnotationVisitor visitAnnotation(final String desc, final boolean visible) {
         return new SegmentAnnotationVisitor(MetadataBandGroup.CONTEXT_CLASS,
                 desc, visible);
     }
 
-    public void visitAttribute(Attribute attribute) {
+    @Override
+    public void visitAttribute(final Attribute attribute) {
         if(attribute.isUnknown()) {
-            String action = options.getUnknownAttributeAction();
+            final String action = options.getUnknownAttributeAction();
             if(action.equals(PackingOptions.PASS)) {
                 passCurrentClass();
             } else if (action.equals(PackingOptions.ERROR)) {
                 throw new Error("Unknown attribute encountered");
             } // else skip
-        } else {
-            if(attribute instanceof NewAttribute) {
-                NewAttribute newAttribute = (NewAttribute) attribute;
-                if(newAttribute.isUnknown(AttributeDefinitionBands.CONTEXT_CLASS)) {
-                    String action = options.getUnknownClassAttributeAction(newAttribute.type);
-                    if(action.equals(PackingOptions.PASS)) {
-                        passCurrentClass();
-                    } else if (action.equals(PackingOptions.ERROR)) {
-                        throw new Error("Unknown attribute encountered");
-                    } // else skip
-                }
-                classBands.addClassAttribute(newAttribute);
-            } else {
-                throw new RuntimeException("Unexpected attribute encountered: " + attribute.type);
+        } else if(attribute instanceof NewAttribute) {
+            final NewAttribute newAttribute = (NewAttribute) attribute;
+            if(newAttribute.isUnknown(AttributeDefinitionBands.CONTEXT_CLASS)) {
+                final String action = options.getUnknownClassAttributeAction(newAttribute.type);
+                if(action.equals(PackingOptions.PASS)) {
+                    passCurrentClass();
+                } else if (action.equals(PackingOptions.ERROR)) {
+                    throw new Error("Unknown attribute encountered");
+                } // else skip
             }
+            classBands.addClassAttribute(newAttribute);
+        } else {
+            throw new RuntimeException("Unexpected attribute encountered: " + attribute.type);
         }
     }
 
-    public void visitInnerClass(String name, String outerName,
-            String innerName, int flags) {
+    @Override
+    public void visitInnerClass(final String name, final String outerName,
+            final String innerName, final int flags) {
         icBands.addInnerClass(name, outerName, innerName, flags);
     }
 
-    public FieldVisitor visitField(int flags, String name, String desc,
-            String signature, Object value) {
+    @Override
+    public FieldVisitor visitField(final int flags, final String name, final String desc,
+            final String signature, final Object value) {
         classBands.addField(flags, name, desc, signature, value);
         return fieldVisitor;
     }
 
-    public MethodVisitor visitMethod(int flags, String name, String desc,
-            String signature, String[] exceptions) {
+    @Override
+    public MethodVisitor visitMethod(final int flags, final String name, final String desc,
+            final String signature, final String[] exceptions) {
         classBands.addMethod(flags, name, desc, signature, exceptions);
         return methodVisitor;
     }
 
+    @Override
     public void visitEnd() {
         classBands.endOfClass();
     }
@@ -263,151 +270,173 @@ public class Segment implements ClassVisitor {
      */
     public class SegmentMethodVisitor implements MethodVisitor {
 
-        public AnnotationVisitor visitAnnotation(String desc, boolean visible) {
+        @Override
+        public AnnotationVisitor visitAnnotation(final String desc, final boolean visible) {
             return new SegmentAnnotationVisitor(
                     MetadataBandGroup.CONTEXT_METHOD, desc, visible);
         }
 
+        @Override
         public AnnotationVisitor visitAnnotationDefault() {
             return new SegmentAnnotationVisitor(MetadataBandGroup.CONTEXT_METHOD);
         }
 
-        public void visitAttribute(Attribute attribute) {
+        @Override
+        public void visitAttribute(final Attribute attribute) {
             if(attribute.isUnknown()) {
-                String action = options.getUnknownAttributeAction();
+                final String action = options.getUnknownAttributeAction();
                 if(action.equals(PackingOptions.PASS)) {
                     passCurrentClass();
                 } else if (action.equals(PackingOptions.ERROR)) {
                     throw new Error("Unknown attribute encountered");
                 } // else skip
-            } else {
-                if(attribute instanceof NewAttribute) {
-                    NewAttribute newAttribute = (NewAttribute) attribute;
-                    if (attribute.isCodeAttribute()) {
-                        if (newAttribute.isUnknown(AttributeDefinitionBands.CONTEXT_CODE)) {
-                            String action = options
-                                    .getUnknownCodeAttributeAction(newAttribute.type);
-                            if (action.equals(PackingOptions.PASS)) {
-                                passCurrentClass();
-                            } else if (action.equals(PackingOptions.ERROR)) {
-                                throw new Error("Unknown attribute encountered");
-                            } // else skip
-                        }
-                        classBands.addCodeAttribute(newAttribute);
-                    } else {
-                        if (newAttribute.isUnknown(AttributeDefinitionBands.CONTEXT_METHOD)) {
-                            String action = options
-                                    .getUnknownMethodAttributeAction(newAttribute.type);
-                            if (action.equals(PackingOptions.PASS)) {
-                                passCurrentClass();
-                            } else if (action.equals(PackingOptions.ERROR)) {
-                                throw new Error("Unknown attribute encountered");
-                            } // else skip
-                        }
-                        classBands.addMethodAttribute(newAttribute);
+            } else if(attribute instanceof NewAttribute) {
+                final NewAttribute newAttribute = (NewAttribute) attribute;
+                if (attribute.isCodeAttribute()) {
+                    if (newAttribute.isUnknown(AttributeDefinitionBands.CONTEXT_CODE)) {
+                        final String action = options
+                                .getUnknownCodeAttributeAction(newAttribute.type);
+                        if (action.equals(PackingOptions.PASS)) {
+                            passCurrentClass();
+                        } else if (action.equals(PackingOptions.ERROR)) {
+                            throw new Error("Unknown attribute encountered");
+                        } // else skip
                     }
+                    classBands.addCodeAttribute(newAttribute);
                 } else {
-                    throw new RuntimeException("Unexpected attribute encountered: " + attribute.type);
+                    if (newAttribute.isUnknown(AttributeDefinitionBands.CONTEXT_METHOD)) {
+                        final String action = options
+                                .getUnknownMethodAttributeAction(newAttribute.type);
+                        if (action.equals(PackingOptions.PASS)) {
+                            passCurrentClass();
+                        } else if (action.equals(PackingOptions.ERROR)) {
+                            throw new Error("Unknown attribute encountered");
+                        } // else skip
+                    }
+                    classBands.addMethodAttribute(newAttribute);
                 }
+            } else {
+                throw new RuntimeException("Unexpected attribute encountered: " + attribute.type);
             }
         }
 
+        @Override
         public void visitCode() {
             classBands.addCode();
         }
 
-        public void visitFrame(int arg0, int arg1, Object[] arg2, int arg3,
-                Object[] arg4) {
+        @Override
+        public void visitFrame(final int arg0, final int arg1, final Object[] arg2, final int arg3,
+                final Object[] arg4) {
             // TODO: Java 6 - implement support for this
 
         }
 
-        public void visitLabel(Label label) {
+        @Override
+        public void visitLabel(final Label label) {
             bcBands.visitLabel(label);
         }
 
-        public void visitLineNumber(int line, Label start) {
+        @Override
+        public void visitLineNumber(final int line, final Label start) {
             if(!stripDebug) {
                 classBands.addLineNumber(line, start);
             }
         }
 
-        public void visitLocalVariable(String name, String desc,
-                String signature, Label start, Label end, int index) {
+        @Override
+        public void visitLocalVariable(final String name, final String desc,
+                final String signature, final Label start, final Label end, final int index) {
             if(!stripDebug) {
                 classBands.addLocalVariable(name, desc, signature, start, end,
                         index);
             }
         }
 
-        public void visitMaxs(int maxStack, int maxLocals) {
+        @Override
+        public void visitMaxs(final int maxStack, final int maxLocals) {
             classBands.addMaxStack(maxStack, maxLocals);
         }
 
-        public AnnotationVisitor visitParameterAnnotation(int parameter,
-                String desc, boolean visible) {
+        @Override
+        public AnnotationVisitor visitParameterAnnotation(final int parameter,
+                final String desc, final boolean visible) {
             return new SegmentAnnotationVisitor(
                     MetadataBandGroup.CONTEXT_METHOD, parameter, desc, visible);
         }
 
-        public void visitTryCatchBlock(Label start, Label end, Label handler,
-                String type) {
+        @Override
+        public void visitTryCatchBlock(final Label start, final Label end, final Label handler,
+                final String type) {
             classBands.addHandler(start, end, handler, type);
         }
 
+        @Override
         public void visitEnd() {
             classBands.endOfMethod();
             bcBands.visitEnd();
         }
 
-        public void visitFieldInsn(int opcode, String owner, String name,
-                String desc) {
+        @Override
+        public void visitFieldInsn(final int opcode, final String owner, final String name,
+                final String desc) {
             bcBands.visitFieldInsn(opcode, owner, name, desc);
         }
 
-        public void visitIincInsn(int var, int increment) {
+        @Override
+        public void visitIincInsn(final int var, final int increment) {
             bcBands.visitIincInsn(var, increment);
         }
 
-        public void visitInsn(int opcode) {
+        @Override
+        public void visitInsn(final int opcode) {
             bcBands.visitInsn(opcode);
         }
 
-        public void visitIntInsn(int opcode, int operand) {
+        @Override
+        public void visitIntInsn(final int opcode, final int operand) {
             bcBands.visitIntInsn(opcode, operand);
         }
 
-        public void visitJumpInsn(int opcode, Label label) {
+        @Override
+        public void visitJumpInsn(final int opcode, final Label label) {
             bcBands.visitJumpInsn(opcode, label);
         }
 
-        public void visitLdcInsn(Object cst) {
+        @Override
+        public void visitLdcInsn(final Object cst) {
             bcBands.visitLdcInsn(cst);
         }
 
-        public void visitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels) {
+        @Override
+        public void visitLookupSwitchInsn(final Label dflt, final int[] keys, final Label[] labels) {
             bcBands.visitLookupSwitchInsn(dflt, keys, labels);
         }
 
-        public void visitMethodInsn(int opcode, String owner, String name,
-                String desc) {
+        @Override
+        public void visitMethodInsn(final int opcode, final String owner, final String name,
+                final String desc) {
             bcBands.visitMethodInsn(opcode, owner, name, desc);
         }
 
-        public void visitMultiANewArrayInsn(String desc, int dimensions) {
+        @Override
+        public void visitMultiANewArrayInsn(final String desc, final int dimensions) {
             bcBands.visitMultiANewArrayInsn(desc, dimensions);
         }
 
-        public void visitTableSwitchInsn(int min, int max, Label dflt,
-                Label[] labels) {
+        @Override
+        public void visitTableSwitchInsn(final int min, final int max, final Label dflt,
+                final Label[] labels) {
             bcBands.visitTableSwitchInsn(min, max, dflt, labels);
         }
 
-        public void visitTypeInsn(int opcode, String type) {
+        @Override
+        public void visitTypeInsn(final int opcode, final String type) {
             bcBands.visitTypeInsn(opcode, type);
         }
 
-        public void visitVarInsn(int opcode, int var) {
+        @Override
+        public void visitVarInsn(final int opcode, final int var) {
             bcBands.visitVarInsn(opcode, var);
         }
 
@@ -436,65 +465,72 @@ public class Segment implements ClassVisitor {
         private final List nestNameRU = new ArrayList();
         private final List nestPairN = new ArrayList();
 
-        public SegmentAnnotationVisitor(int context, String desc,
-                boolean visible) {
+        public SegmentAnnotationVisitor(final int context, final String desc,
+                final boolean visible) {
             this.context = context;
             this.desc = desc;
             this.visible = visible;
         }
 
-        public SegmentAnnotationVisitor(int context) {
+        public SegmentAnnotationVisitor(final int context) {
             this.context = context;
         }
 
-        public SegmentAnnotationVisitor(int context, int parameter,
-                String desc, boolean visible) {
+        public SegmentAnnotationVisitor(final int context, final int parameter,
+                final String desc, final boolean visible) {
             this.context = context;
             this.parameter = parameter;
             this.desc = desc;
             this.visible = visible;
         }
 
-        public void visit(String name, Object value) {
+        @Override
+        public void visit(String name, final Object value) {
             if (name == null) {
                 name = "";
             }
             nameRU.add(name);
             addValueAndTag(value, T, values);
         }
-        public AnnotationVisitor visitAnnotation(String name, String desc) {
+        @Override
+        public AnnotationVisitor visitAnnotation(String name, final String desc) {
             T.add("@");
             if (name == null) {
                 name = "";
             }
             nameRU.add(name);
             nestTypeRS.add(desc);
-            nestPairN.add(new Integer(0));
+            nestPairN.add(Integer.valueOf(0));
             return new AnnotationVisitor() {
-                public void visit(String name, Object value) {
-                    Integer numPairs = (Integer) nestPairN.remove(nestPairN.size() - 1);
-                    nestPairN.add(new Integer(numPairs.intValue() + 1));
+                @Override
+                public void visit(final String name, final Object value) {
+                    final Integer numPairs = (Integer) nestPairN.remove(nestPairN.size() - 1);
+                    nestPairN.add(Integer.valueOf(numPairs.intValue() + 1));
                     nestNameRU.add(name);
                     addValueAndTag(value, T, values);
                 }
 
-                public AnnotationVisitor visitAnnotation(String arg0,
-                        String arg1) {
+                @Override
+                public AnnotationVisitor visitAnnotation(final String arg0,
+                        final String arg1) {
                     throw new RuntimeException("Not yet supported");
 //                    return null;
                 }
 
-                public AnnotationVisitor visitArray(String arg0) {
+                @Override
+                public AnnotationVisitor visitArray(final String arg0) {
                     throw new RuntimeException("Not yet supported");
 //                    return null;
                 }
 
+                @Override
                 public void visitEnd() {
                 }
 
-                public void visitEnum(String name, String desc, String value) {
-                    Integer numPairs = (Integer) nestPairN.remove(nestPairN.size() - 1);
-                    nestPairN.add(new Integer(numPairs.intValue() + 1));
+                @Override
+                public void visitEnum(final String name, final String desc, final String value) {
+                    final Integer numPairs = (Integer) nestPairN.remove(nestPairN.size() - 1);
+                    nestPairN.add(Integer.valueOf(numPairs.intValue() + 1));
                     T.add("e");
                     nestNameRU.add(name);
                     values.add(desc);
@@ -503,16 +539,18 @@ public class Segment implements ClassVisitor {
             };
         }
 
+        @Override
         public AnnotationVisitor visitArray(String name) {
             T.add("[");
             if (name == null) {
                 name = "";
             }
             nameRU.add(name);
-            caseArrayN.add(new Integer(0));
+            caseArrayN.add(Integer.valueOf(0));
             return new ArrayVisitor(caseArrayN, T, nameRU, values);
         }
 
+        @Override
         public void visitEnd() {
             if (desc == null) {
                 Segment.this.classBands.addAnnotationDefault(nameRU, T, values, caseArrayN, nestTypeRS, nestNameRU, nestPairN);
@@ -523,7 +561,8 @@ public class Segment implements ClassVisitor {
             }
         }
 
-        public void visitEnum(String name, String desc, String value) {
+        @Override
+        public void visitEnum(String name, final String desc, final String value) {
             T.add("e");
             if (name == null) {
                 name = "";
@@ -533,53 +572,58 @@ public class Segment implements ClassVisitor {
             values.add(value);
         }
     }
-    
+
     public class ArrayVisitor implements AnnotationVisitor  {
-        
-        private int indexInCaseArrayN;
-        private List caseArrayN;
-        private List values;
-        private List nameRU;
-        private List T;
-
-        public ArrayVisitor(List caseArrayN, List T, List nameRU, List values) {
+
+        private final int indexInCaseArrayN;
+        private final List caseArrayN;
+        private final List values;
+        private final List nameRU;
+        private final List T;
+
+        public ArrayVisitor(final List caseArrayN, final List T, final List nameRU, final List values) {
             this.caseArrayN = caseArrayN;
             this.T = T;
             this.nameRU = nameRU;
             this.values = values;
             this.indexInCaseArrayN = caseArrayN.size() - 1;
         }
-        
-        public void visit(String name, Object value) {
-            Integer numCases = (Integer) caseArrayN.remove(indexInCaseArrayN);
-            caseArrayN.add(indexInCaseArrayN, new Integer(numCases.intValue() + 1));
+
+        @Override
+        public void visit(String name, final Object value) {
+            final Integer numCases = (Integer) caseArrayN.remove(indexInCaseArrayN);
+            caseArrayN.add(indexInCaseArrayN, Integer.valueOf(numCases.intValue() + 1));
             if (name == null) {
                 name = "";
             }
             addValueAndTag(value, T, values);
         }
 
-        public AnnotationVisitor visitAnnotation(String arg0,
-                String arg1) {
+        @Override
+        public AnnotationVisitor visitAnnotation(final String arg0,
+                final String arg1) {
             throw new RuntimeException("Not yet supported");
         }
 
+        @Override
         public AnnotationVisitor visitArray(String name) {
             T.add("[");
             if (name == null) {
                 name = "";
             }
             nameRU.add(name);
-            caseArrayN.add(new Integer(0));
+            caseArrayN.add(Integer.valueOf(0));
             return new ArrayVisitor(caseArrayN, T, nameRU, values);
         }
 
+        @Override
         public void visitEnd() {
         }
 
-        public void visitEnum(String name, String desc, String value) {
-            Integer numCases = (Integer) caseArrayN.remove(caseArrayN.size() - 1);
-            caseArrayN.add(new Integer(numCases.intValue() + 1));
+        @Override
+        public void visitEnum(final String name, final String desc, final String value) {
+            final Integer numCases = (Integer) caseArrayN.remove(caseArrayN.size() - 1);
+            caseArrayN.add(Integer.valueOf(numCases.intValue() + 1));
             T.add("e");
             values.add(desc);
             values.add(value);
@@ -592,43 +636,44 @@ public class Segment implements ClassVisitor {
      */
     public class SegmentFieldVisitor implements FieldVisitor {
 
-        public AnnotationVisitor visitAnnotation(String desc, boolean visible) {
+        @Override
+        public AnnotationVisitor visitAnnotation(final String desc, final boolean visible) {
             return new SegmentAnnotationVisitor(MetadataBandGroup.CONTEXT_FIELD,
                     desc, visible);
         }
 
-        public void visitAttribute(Attribute attribute) {
+        @Override
+        public void visitAttribute(final Attribute attribute) {
             if(attribute.isUnknown()) {
-                String action = options.getUnknownAttributeAction();
+                final String action = options.getUnknownAttributeAction();
                 if(action.equals(PackingOptions.PASS)) {
                     passCurrentClass();
                 } else if (action.equals(PackingOptions.ERROR)) {
                     throw new Error("Unknown attribute encountered");
                 } // else skip
-            } else {
-                if(attribute instanceof NewAttribute) {
-                    NewAttribute newAttribute = (NewAttribute) attribute;
-                    if(newAttribute.isUnknown(AttributeDefinitionBands.CONTEXT_FIELD)) {
-                        String action = options.getUnknownFieldAttributeAction(newAttribute.type);
-                        if(action.equals(PackingOptions.PASS)) {
-                            passCurrentClass();
-                        } else if (action.equals(PackingOptions.ERROR)) {
-                            throw new Error("Unknown attribute encountered");
-                        } // else skip
-                    }
-                    classBands.addFieldAttribute(newAttribute);
-                } else {
-                    throw new RuntimeException("Unexpected attribute encountered: " + attribute.type);
+            } else if(attribute instanceof NewAttribute) {
+                final NewAttribute newAttribute = (NewAttribute) attribute;
+                if(newAttribute.isUnknown(AttributeDefinitionBands.CONTEXT_FIELD)) {
+                    final String action = options.getUnknownFieldAttributeAction(newAttribute.type);
+                    if(action.equals(PackingOptions.PASS)) {
+                        passCurrentClass();
+                    } else if (action.equals(PackingOptions.ERROR)) {
+                        throw new Error("Unknown attribute encountered");
+                    } // else skip
                 }
+                classBands.addFieldAttribute(newAttribute);
+            } else {
+                throw new RuntimeException("Unexpected attribute encountered: " + attribute.type);
             }
         }
 
+        @Override
         public void visitEnd() {
         }
     }
 
     // helper method for annotation visitors
-    private void addValueAndTag(Object value, List T, List values) {
+    private void addValueAndTag(final Object value, final List T, final List values) {
         if(value instanceof Integer) {
             T.add("I");
             values.add(value);
@@ -643,16 +688,16 @@ public class Segment implements ClassVisitor {
             values.add(value);
         } else if (value instanceof Byte) {
             T.add("B");
-            values.add(new Integer(((Byte)value).intValue()));
+            values.add(Integer.valueOf(((Byte)value).intValue()));
         } else if (value instanceof Character) {
             T.add("C");
-            values.add(new Integer(((Character)value).charValue()));
+            values.add(Integer.valueOf(((Character)value).charValue()));
         } else if (value instanceof Short) {
             T.add("S");
-            values.add(new Integer(((Short)value).intValue()));
+            values.add(Integer.valueOf(((Short)value).intValue()));
         } else if (value instanceof Boolean) {
             T.add("Z");
-            values.add(new Integer(((Boolean)value).booleanValue() ? 1 : 0));
+            values.add(Integer.valueOf(((Boolean)value).booleanValue() ? 1 : 0));
         } else if (value instanceof String) {
             T.add("s");
             values.add(value);
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/SegmentHeader.java b/src/main/java/org/apache/commons/compress/harmony/pack200/SegmentHeader.java
index 80b0749..4d3a72b 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/SegmentHeader.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/SegmentHeader.java
@@ -79,7 +79,8 @@ public class SegmentHeader extends BandSet {
     /**
      * Encode and write the SegmentHeader bands to the OutputStream
      */
-    public void pack(OutputStream out) throws IOException, Pack200Exception {
+    @Override
+    public void pack(final OutputStream out) throws IOException, Pack200Exception {
         out.write(encodeScalar(magic, Codec.BYTE1));
         out.write(encodeScalar(archive_minver, Codec.UNSIGNED5));
         out.write(encodeScalar(archive_majver, Codec.UNSIGNED5));
@@ -90,7 +91,7 @@ public class SegmentHeader extends BandSet {
         writeCpCounts(out);
         writeClassCounts(out);
         if (band_headers.size()> 0) {
-            out.write(encodeScalar(band_headers.toArray(), BHSDCodec.BYTE1));
+            out.write(encodeScalar(band_headers.toArray(), Codec.BYTE1));
         }
     }
 
@@ -134,59 +135,59 @@ public class SegmentHeader extends BandSet {
         }
     }
 
-    public void setCp_Utf8_count(int count) {
+    public void setCp_Utf8_count(final int count) {
         cp_Utf8_count = count;
     }
 
-    public void setCp_Int_count(int count) {
+    public void setCp_Int_count(final int count) {
         cp_Int_count = count;
     }
 
-    public void setCp_Float_count(int count) {
+    public void setCp_Float_count(final int count) {
         cp_Float_count = count;
     }
 
-    public void setCp_Long_count(int count) {
+    public void setCp_Long_count(final int count) {
         cp_Long_count = count;
     }
 
-    public void setCp_Double_count(int count) {
+    public void setCp_Double_count(final int count) {
         cp_Double_count = count;
     }
 
-    public void setCp_String_count(int count) {
+    public void setCp_String_count(final int count) {
         cp_String_count = count;
     }
 
-    public void setCp_Class_count(int count) {
+    public void setCp_Class_count(final int count) {
         cp_Class_count = count;
     }
 
-    public void setCp_Signature_count(int count) {
+    public void setCp_Signature_count(final int count) {
         cp_Signature_count = count;
     }
 
-    public void setCp_Descr_count(int count) {
+    public void setCp_Descr_count(final int count) {
         cp_Descr_count = count;
     }
 
-    public void setCp_Field_count(int count) {
+    public void setCp_Field_count(final int count) {
         cp_Field_count = count;
     }
 
-    public void setCp_Method_count(int count) {
+    public void setCp_Method_count(final int count) {
         cp_Method_count = count;
     }
 
-    public void setCp_Imethod_count(int count) {
+    public void setCp_Imethod_count(final int count) {
         cp_Imethod_count = count;
     }
 
-    public void setAttribute_definition_count(int attribute_definition_count) {
+    public void setAttribute_definition_count(final int attribute_definition_count) {
         this.attribute_definition_count = attribute_definition_count;
     }
 
-    public void setHave_all_code_flags(boolean have_all_code_flags) {
+    public void setHave_all_code_flags(final boolean have_all_code_flags) {
         this.have_all_code_flags = have_all_code_flags;
     }
 
@@ -194,27 +195,27 @@ public class SegmentHeader extends BandSet {
         return archive_modtime;
     }
 
-    public void setFile_count(int file_count) {
+    public void setFile_count(final int file_count) {
         this.file_count = file_count;
     }
 
-    public void setDeflate_hint(boolean deflate_hint) {
+    public void setDeflate_hint(final boolean deflate_hint) {
         this.deflate_hint = deflate_hint;
     }
 
-    public void setHave_class_flags_hi(boolean have_class_flags_hi) {
+    public void setHave_class_flags_hi(final boolean have_class_flags_hi) {
         this.have_class_flags_hi = have_class_flags_hi;
     }
 
-    public void setHave_field_flags_hi(boolean have_field_flags_hi) {
+    public void setHave_field_flags_hi(final boolean have_field_flags_hi) {
         this.have_field_flags_hi = have_field_flags_hi;
     }
 
-    public void setHave_method_flags_hi(boolean have_method_flags_hi) {
+    public void setHave_method_flags_hi(final boolean have_method_flags_hi) {
         this.have_method_flags_hi = have_method_flags_hi;
     }
 
-    public void setHave_code_flags_hi(boolean have_code_flags_hi) {
+    public void setHave_code_flags_hi(final boolean have_code_flags_hi) {
         this.have_code_flags_hi = have_code_flags_hi;
     }
 
@@ -234,15 +235,15 @@ public class SegmentHeader extends BandSet {
         return have_code_flags_hi;
     }
 
-    public void setIc_count(int ic_count) {
+    public void setIc_count(final int ic_count) {
         this.ic_count = ic_count;
     }
 
-    public void setClass_count(int class_count) {
+    public void setClass_count(final int class_count) {
         this.class_count = class_count;
     }
 
-    private void writeCpCounts(OutputStream out) throws IOException,
+    private void writeCpCounts(final OutputStream out) throws IOException,
             Pack200Exception {
         out.write(encodeScalar(cp_Utf8_count, Codec.UNSIGNED5));
         if ((archive_options & (1 << 1)) != 0) { // have_cp_numbers
@@ -260,17 +261,17 @@ public class SegmentHeader extends BandSet {
         out.write(encodeScalar(cp_Imethod_count, Codec.UNSIGNED5));
     }
 
-    private void writeClassCounts(OutputStream out) throws IOException,
+    private void writeClassCounts(final OutputStream out) throws IOException,
             Pack200Exception {
-        int default_class_minver = 0;
-        int default_class_majver = majverCounter.getMostCommon();
+        final int default_class_minver = 0;
+        final int default_class_majver = majverCounter.getMostCommon();
         out.write(encodeScalar(ic_count, Codec.UNSIGNED5));
         out.write(encodeScalar(default_class_minver, Codec.UNSIGNED5));
         out.write(encodeScalar(default_class_majver, Codec.UNSIGNED5));
         out.write(encodeScalar(class_count, Codec.UNSIGNED5));
     }
 
-    private void writeArchiveSpecialCounts(OutputStream out)
+    private void writeArchiveSpecialCounts(final OutputStream out)
             throws IOException, Pack200Exception {
         if ((archive_options & 1) > 0) { // have_special_formats
             out.write(encodeScalar(band_headers.size(), Codec.UNSIGNED5));
@@ -279,7 +280,7 @@ public class SegmentHeader extends BandSet {
         }
     }
 
-    private void writeArchiveFileCounts(OutputStream out) throws IOException,
+    private void writeArchiveFileCounts(final OutputStream out) throws IOException,
             Pack200Exception {
         if ((archive_options & (1 << 4)) > 0) { // have_file_headers
             out.write(encodeScalar(archive_size_hi, Codec.UNSIGNED5));
@@ -290,7 +291,7 @@ public class SegmentHeader extends BandSet {
         }
     }
 
-    public void addMajorVersion(int major) {
+    public void addMajorVersion(final int major) {
         majverCounter.add(major);
     }
 
@@ -303,7 +304,7 @@ public class SegmentHeader extends BandSet {
         private final int[] counts = new int[8];
         private int length;
 
-        public void add(int obj) {
+        public void add(final int obj) {
             boolean found = false;
             for (int i = 0; i < length; i++) {
                 if (objs[i] == obj) {
@@ -316,7 +317,7 @@ public class SegmentHeader extends BandSet {
                 counts[length] = 1;
                 length++;
                 if (length > objs.length - 1) {
-                    Object[] newArray = new Object[objs.length + 8];
+                    final Object[] newArray = new Object[objs.length + 8];
                     System.arraycopy(objs, 0, newArray, 0, length);
                 }
             }
@@ -353,7 +354,7 @@ public class SegmentHeader extends BandSet {
         return have_all_code_flags;
     }
 
-    public void appendBandCodingSpecifier(int specifier) {
+    public void appendBandCodingSpecifier(final int specifier) {
         band_headers.add(specifier);
     }
 
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/Archive.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/Archive.java
index cbf0e32..e848a2e 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/Archive.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/Archive.java
@@ -68,7 +68,7 @@ public class Archive {
      * @throws FileNotFoundException TODO
      * @throws IOException TODO
      */
-    public Archive(String inputFile, String outputFile)
+    public Archive(final String inputFile, final String outputFile)
             throws FileNotFoundException, IOException {
         this.inputFileName = inputFile;
         this.outputFileName = outputFile;
@@ -85,7 +85,7 @@ public class Archive {
      * @param outputStream TODO
      * @throws IOException TODO
      */
-    public Archive(InputStream inputStream, JarOutputStream outputStream)
+    public Archive(final InputStream inputStream, final JarOutputStream outputStream)
             throws IOException {
         this.inputStream = inputStream;
         this.outputStream = outputStream;
@@ -102,8 +102,9 @@ public class Archive {
         try {
             if (!inputStream.markSupported()) {
                 inputStream = new BufferedInputStream(inputStream);
-                if (!inputStream.markSupported())
+                if (!inputStream.markSupported()) {
                     throw new IllegalStateException();
+                }
             }
             inputStream.mark(2);
             if (((inputStream.read() & 0xFF) | (inputStream.read() & 0xFF) << 8) == GZIPInputStream.GZIP_MAGIC) {
@@ -114,9 +115,9 @@ public class Archive {
                 inputStream.reset();
             }
             inputStream.mark(4);
-            int[] magic = { 0xCA, 0xFE, 0xD0, 0x0D }; // Magic word for
+            final int[] magic = { 0xCA, 0xFE, 0xD0, 0x0D }; // Magic word for
             // pack200
-            int word[] = new int[4];
+            final int word[] = new int[4];
             for (int i = 0; i < word.length; i++) {
                 word[i] = inputStream.read();
             }
@@ -129,11 +130,11 @@ public class Archive {
             inputStream.reset();
             if (compressedWithE0) { // The original Jar was not packed, so just
                 // copy it across
-                JarInputStream jarInputStream = new JarInputStream(inputStream);
+                final JarInputStream jarInputStream = new JarInputStream(inputStream);
                 JarEntry jarEntry;
                 while ((jarEntry = jarInputStream.getNextJarEntry()) != null) {
                     outputStream.putNextEntry(jarEntry);
-                    byte[] bytes = new byte[16384];
+                    final byte[] bytes = new byte[16384];
                     int bytesRead = jarInputStream.read(bytes);
                     while (bytesRead != -1) {
                         outputStream.write(bytes, 0, bytesRead);
@@ -145,7 +146,7 @@ public class Archive {
                 int i = 0;
                 while (available(inputStream)) {
                     i++;
-                    Segment segment = new Segment();
+                    final Segment segment = new Segment();
                     segment.setLogLevel(logLevel);
                     segment
                             .setLogStream(logFile != null ? (OutputStream) logFile
@@ -174,23 +175,23 @@ public class Archive {
         } finally {
             try {
                 inputStream.close();
-            } catch (Exception e) {
+            } catch (final Exception e) {
             }
             try {
                 outputStream.close();
-            } catch (Exception e) {
+            } catch (final Exception e) {
             }
             if (logFile != null) {
                 try {
                     logFile.close();
-                } catch (Exception e) {
+                } catch (final Exception e) {
                 }
             }
         }
         if (removePackFile) {
             boolean deleted = false;
             if(inputFileName != null) {
-                File file = new File(inputFileName);
+                final File file = new File(inputFileName);
                 deleted = file.delete();
             }
             if (!deleted) {
@@ -199,9 +200,9 @@ public class Archive {
         }
     }
 
-    private boolean available(InputStream inputStream) throws IOException {
+    private boolean available(final InputStream inputStream) throws IOException {
         inputStream.mark(1);
-        int check = inputStream.read();
+        final int check = inputStream.read();
         inputStream.reset();
         return check != -1;
     }
@@ -213,11 +214,11 @@ public class Archive {
      * @param removePackFile If true, the input file is deleted after
      * unpacking.
      */
-    public void setRemovePackFile(boolean removePackFile) {
+    public void setRemovePackFile(final boolean removePackFile) {
         this.removePackFile = removePackFile;
     }
 
-    public void setVerbose(boolean verbose) {
+    public void setVerbose(final boolean verbose) {
         if (verbose) {
             logLevel = Segment.LOG_LEVEL_VERBOSE;
         } else if (logLevel == Segment.LOG_LEVEL_VERBOSE) {
@@ -225,7 +226,7 @@ public class Archive {
         }
     }
 
-    public void setQuiet(boolean quiet) {
+    public void setQuiet(final boolean quiet) {
         if (quiet) {
             logLevel = Segment.LOG_LEVEL_QUIET;
         } else if (logLevel == Segment.LOG_LEVEL_QUIET) {
@@ -233,16 +234,16 @@ public class Archive {
         }
     }
 
-    public void setLogFile(String logFileName) throws FileNotFoundException {
+    public void setLogFile(final String logFileName) throws FileNotFoundException {
         this.logFile = new FileOutputStream(logFileName);
     }
 
-    public void setLogFile(String logFileName, boolean append)
+    public void setLogFile(final String logFileName, final boolean append)
             throws FileNotFoundException {
         logFile = new FileOutputStream(logFileName, append);
     }
 
-    public void setDeflateHint(boolean deflateHint) {
+    public void setDeflateHint(final boolean deflateHint) {
         overrideDeflateHint = true;
         this.deflateHint = deflateHint;
     }
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/AttrDefinitionBands.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/AttrDefinitionBands.java
index 23177bc..8a63352 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/AttrDefinitionBands.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/AttrDefinitionBands.java
@@ -50,7 +50,7 @@ public class AttrDefinitionBands extends BandSet {
 
     private final String[] cpUTF8;
 
-    public AttrDefinitionBands(Segment segment) {
+    public AttrDefinitionBands(final Segment segment) {
         super(segment);
         this.cpUTF8 = segment.getCpBands().getCpUTF8();
     }
@@ -60,8 +60,9 @@ public class AttrDefinitionBands extends BandSet {
      *
      * @see org.apache.commons.compress.harmony.unpack200.BandSet#unpack(java.io.InputStream)
      */
-    public void read(InputStream in) throws IOException, Pack200Exception {
-        int attributeDefinitionCount = header.getAttributeDefinitionCount();
+    @Override
+    public void read(final InputStream in) throws IOException, Pack200Exception {
+        final int attributeDefinitionCount = header.getAttributeDefinitionCount();
         attributeDefinitionHeader = decodeBandInt("attr_definition_headers",
                 in, Codec.BYTE1, attributeDefinitionCount);
         attributeDefinitionName = parseReferences("attr_definition_name", in,
@@ -76,21 +77,22 @@ public class AttrDefinitionBands extends BandSet {
             overflowIndex = 63;
         }
         for (int i = 0; i < attributeDefinitionCount; i++) {
-            int context = attributeDefinitionHeader[i] & 0x03;
+            final int context = attributeDefinitionHeader[i] & 0x03;
             int index = (attributeDefinitionHeader[i] >> 2) - 1;
             if (index == -1) {
                 index = overflowIndex++;
             }
-            AttributeLayout layout = new AttributeLayout(
+            final AttributeLayout layout = new AttributeLayout(
                     attributeDefinitionName[i], context,
                     attributeDefinitionLayout[i], index, false);
-            NewAttributeBands newBands = new NewAttributeBands(segment, layout);
+            final NewAttributeBands newBands = new NewAttributeBands(segment, layout);
             attributeDefinitionMap.add(layout, newBands);
         }
         attributeDefinitionMap.checkMap();
         setupDefaultAttributeNames();
     }
 
+    @Override
     public void unpack() throws Pack200Exception, IOException {
 
     }
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/AttributeLayout.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/AttributeLayout.java
index a8aa166..dce31bb 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/AttributeLayout.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/AttributeLayout.java
@@ -65,19 +65,21 @@ public class AttributeLayout implements IMatcher {
     public static final String[] contextNames = { "Class", "Field", "Method", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
             "Code", }; //$NON-NLS-1$
 
-    private static ClassFileEntry getValue(String layout, long value,
-            SegmentConstantPool pool) throws Pack200Exception {
+    private static ClassFileEntry getValue(final String layout, long value,
+            final SegmentConstantPool pool) throws Pack200Exception {
         if (layout.startsWith("R")) { //$NON-NLS-1$
             // references
-            if (layout.indexOf('N') != -1)
+            if (layout.indexOf('N') != -1) {
                 value--;
+            }
             if (layout.startsWith("RU")) { //$NON-NLS-1$
                 return pool.getValue(SegmentConstantPool.UTF_8, value);
-            } else if (layout.startsWith("RS")) { //$NON-NLS-1$
+            }
+            if (layout.startsWith("RS")) { //$NON-NLS-1$
                 return pool.getValue(SegmentConstantPool.SIGNATURE, value);
             }
         } else if (layout.startsWith("K")) { //$NON-NLS-1$
-            char type = layout.charAt(1);
+            final char type = layout.charAt(1);
             switch (type) {
             case 'S': // String
                 return pool.getValue(SegmentConstantPool.CP_STRING, value);
@@ -114,18 +116,18 @@ public class AttributeLayout implements IMatcher {
      * @param name TODO
      * @param context TODO
      * @param layout TODO
-     * @param index TODO 
+     * @param index TODO
      * @throws Pack200Exception Attribute context out of range.
      * @throws Pack200Exception Cannot have a null layout.
      * @throws Pack200Exception Cannot have an unnamed layout.
      */
-    public AttributeLayout(String name, int context, String layout, int index)
+    public AttributeLayout(final String name, final int context, final String layout, final int index)
             throws Pack200Exception {
         this(name, context, layout, index, true);
     }
 
-    public AttributeLayout(String name, int context, String layout, int index,
-            boolean isDefault) throws Pack200Exception {
+    public AttributeLayout(final String name, final int context, final String layout, final int index,
+            final boolean isDefault) throws Pack200Exception {
         super();
         this.index = index;
         this.context = context;
@@ -135,13 +137,16 @@ public class AttributeLayout implements IMatcher {
             this.mask = 0;
         }
         if (context != CONTEXT_CLASS && context != CONTEXT_CODE
-                && context != CONTEXT_FIELD && context != CONTEXT_METHOD)
+                && context != CONTEXT_FIELD && context != CONTEXT_METHOD) {
             throw new Pack200Exception("Attribute context out of range: "
                     + context);
-        if (layout == null) // || layout.length() == 0)
+        }
+        if (layout == null) {
             throw new Pack200Exception("Cannot have a null layout");
-        if (name == null || name.length() == 0)
+        }
+        if (name == null || name.length() == 0) {
             throw new Pack200Exception("Cannot have an unnamed layout");
+        }
         this.name = name;
         this.layout = layout;
         this.isDefault = isDefault;
@@ -150,47 +155,48 @@ public class AttributeLayout implements IMatcher {
     public Codec getCodec() {
         if (layout.indexOf('O') >= 0) {
             return Codec.BRANCH5;
-        } else if (layout.indexOf('P') >= 0) {
+        }
+        if (layout.indexOf('P') >= 0) {
             return Codec.BCI5;
-        } else if (layout.indexOf('S') >= 0 && layout.indexOf("KS") < 0 //$NON-NLS-1$
+        }
+        if (layout.indexOf('S') >= 0 && layout.indexOf("KS") < 0 //$NON-NLS-1$
                 && layout.indexOf("RS") < 0) { //$NON-NLS-1$
             return Codec.SIGNED5;
-        } else if (layout.indexOf('B') >= 0) {
+        }
+        if (layout.indexOf('B') >= 0) {
             return Codec.BYTE1;
-        } else {
-            return Codec.UNSIGNED5;
         }
+        return Codec.UNSIGNED5;
     }
 
     public String getLayout() {
         return layout;
     }
 
-    public ClassFileEntry getValue(long value, SegmentConstantPool pool)
+    public ClassFileEntry getValue(final long value, final SegmentConstantPool pool)
             throws Pack200Exception {
         return getValue(layout, value, pool);
     }
 
-    public ClassFileEntry getValue(long value, String type, SegmentConstantPool pool)
+    public ClassFileEntry getValue(final long value, final String type, final SegmentConstantPool pool)
             throws Pack200Exception {
         // TODO This really needs to be better tested, esp. the different types
         // TODO This should have the ability to deal with RUN stuff too, and
         // unions
-        if (layout.startsWith("KQ")) { //$NON-NLS-1$
-            if (type.equals("Ljava/lang/String;")) { //$NON-NLS-1$
-                ClassFileEntry value2 = getValue("KS", value, pool); //$NON-NLS-1$
-                return value2;
-            } else {
-                return getValue("K" + type + layout.substring(2), value, //$NON-NLS-1$
-                        pool);
-            }
-        } else {
+        if (!layout.startsWith("KQ")) {
             return getValue(layout, value, pool);
         }
+        if (type.equals("Ljava/lang/String;")) { //$NON-NLS-1$
+            final ClassFileEntry value2 = getValue("KS", value, pool); //$NON-NLS-1$
+            return value2;
+        }
+        return getValue("K" + type + layout.substring(2), value, //$NON-NLS-1$
+                pool);
     }
 
+    @Override
     public int hashCode() {
-        int PRIME = 31;
+        final int PRIME = 31;
         int r = 1;
         if (name != null) {
             r = r * PRIME + name.hashCode();
@@ -208,10 +214,12 @@ public class AttributeLayout implements IMatcher {
      *
      * @see org.apache.commons.compress.harmony.unpack200.IMatches#matches(long)
      */
-    public boolean matches(long value) {
+    @Override
+    public boolean matches(final long value) {
         return (value & mask) != 0;
     }
 
+    @Override
     public String toString() {
         return contextNames[context] + ": " + name;
     }
@@ -231,16 +239,15 @@ public class AttributeLayout implements IMatcher {
     public int numBackwardsCallables() {
         if (layout == "*") {
             return 1;
-        } else {
-            return backwardsCallCount;
         }
+        return backwardsCallCount;
     }
 
     public boolean isDefaultLayout() {
         return isDefault;
     }
 
-    public void setBackwardsCallCount(int backwardsCallCount) {
+    public void setBackwardsCallCount(final int backwardsCallCount) {
         this.backwardsCallCount = backwardsCallCount;
     }
 
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/AttributeLayoutMap.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/AttributeLayoutMap.java
index fcf9fee..3ee1a7b 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/AttributeLayoutMap.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/AttributeLayoutMap.java
@@ -202,33 +202,33 @@ public class AttributeLayoutMap {
     // The order of the maps in this array should not be changed as their
     // indices correspond to
     // the value of their context constants (AttributeLayout.CONTEXT_CLASS etc.)
-    private final Map[] layouts = new Map[] { classLayouts, fieldLayouts,
+    private final Map[] layouts = { classLayouts, fieldLayouts,
             methodLayouts, codeLayouts };
 
     private final Map layoutsToBands = new HashMap();
 
     public AttributeLayoutMap() throws Pack200Exception {
-        AttributeLayout[] defaultAttributeLayouts = getDefaultAttributeLayouts();
+        final AttributeLayout[] defaultAttributeLayouts = getDefaultAttributeLayouts();
         for (int i = 0; i < defaultAttributeLayouts.length; i++) {
             add(defaultAttributeLayouts[i]);
         }
     }
 
-    public void add(AttributeLayout layout) {
+    public void add(final AttributeLayout layout) {
         layouts[layout.getContext()]
-                .put(new Integer(layout.getIndex()), layout);
+                .put(Integer.valueOf(layout.getIndex()), layout);
     }
 
-    public void add(AttributeLayout layout, NewAttributeBands newBands) {
+    public void add(final AttributeLayout layout, final NewAttributeBands newBands) {
         add(layout);
         layoutsToBands.put(layout, newBands);
     }
 
-    public AttributeLayout getAttributeLayout(String name, int context)
+    public AttributeLayout getAttributeLayout(final String name, final int context)
             throws Pack200Exception {
-        Map map = layouts[context];
-        for (Iterator iter = map.values().iterator(); iter.hasNext();) {
-            AttributeLayout layout = (AttributeLayout) iter.next();
+        final Map map = layouts[context];
+        for (final Iterator iter = map.values().iterator(); iter.hasNext();) {
+            final AttributeLayout layout = (AttributeLayout) iter.next();
             if (layout.getName().equals(name)) {
                 return layout;
             }
@@ -236,10 +236,10 @@ public class AttributeLayoutMap {
         return null;
     }
 
-    public AttributeLayout getAttributeLayout(int index, int context)
+    public AttributeLayout getAttributeLayout(final int index, final int context)
             throws Pack200Exception {
-        Map map = layouts[context];
-        return (AttributeLayout) map.get(new Integer(index));
+        final Map map = layouts[context];
+        return (AttributeLayout) map.get(Integer.valueOf(index));
     }
 
     /**
@@ -250,16 +250,16 @@ public class AttributeLayoutMap {
      */
     public void checkMap() throws Pack200Exception {
         for (int i = 0; i < layouts.length; i++) {
-            Map map = layouts[i];
+            final Map map = layouts[i];
             Collection c = map.values();
             if (!(c instanceof List)) {
                 c = new ArrayList(c);
             }
-            List l = (List) c;
+            final List l = (List) c;
             for (int j = 0; j < l.size(); j++) {
-                AttributeLayout layout1 = (AttributeLayout) l.get(j);
+                final AttributeLayout layout1 = (AttributeLayout) l.get(j);
                 for (int j2 = j + 1; j2 < l.size(); j2++) {
-                    AttributeLayout layout2 = (AttributeLayout) l.get(j2);
+                    final AttributeLayout layout2 = (AttributeLayout) l.get(j2);
                     if (layout1.getName().equals(layout2.getName())
                             && layout1.getLayout().equals(layout2.getLayout())) {
                         throw new Pack200Exception(
@@ -276,7 +276,7 @@ public class AttributeLayoutMap {
         }
     }
 
-    public NewAttributeBands getAttributeBands(AttributeLayout layout) {
+    public NewAttributeBands getAttributeBands(final AttributeLayout layout) {
         return (NewAttributeBands) layoutsToBands.get(layout);
     }
 
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/BandSet.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/BandSet.java
index d42d27a..4d9a0e3 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/BandSet.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/BandSet.java
@@ -47,7 +47,7 @@ public abstract class BandSet {
 
     public abstract void unpack() throws IOException, Pack200Exception;
 
-    public void unpack(InputStream in) throws IOException, Pack200Exception {
+    public void unpack(final InputStream in) throws IOException, Pack200Exception {
         read(in);
         unpack();
     }
@@ -56,7 +56,7 @@ public abstract class BandSet {
 
     protected SegmentHeader header;
 
-    public BandSet(Segment segment) {
+    public BandSet(final Segment segment) {
         this.segment = segment;
         this.header = segment.getSegmentHeader();
     }
@@ -81,8 +81,8 @@ public abstract class BandSet {
      *             if there is a problem decoding the value or that the value is
      *             invalid
      */
-    public int[] decodeBandInt(String name, InputStream in, BHSDCodec codec,
-            int count) throws IOException, Pack200Exception {
+    public int[] decodeBandInt(final String name, final InputStream in, final BHSDCodec codec,
+            final int count) throws IOException, Pack200Exception {
         int[] band;
         // Useful for debugging
 //        if(count > 0) {
@@ -92,11 +92,11 @@ public abstract class BandSet {
         if (codec.getB() == 1 || count == 0) {
             return codec.decodeInts(count, in);
         }
-        int[] getFirst = codec.decodeInts(1, in);
+        final int[] getFirst = codec.decodeInts(1, in);
         if (getFirst.length == 0) {
             return getFirst;
         }
-        int first = getFirst[0];
+        final int first = getFirst[0];
         if (codec.isSigned() && first >= -256 && first <= -1) {
             // Non-default codec should be used
             codecUsed = CodecEncoding.getCodec((-1 - first), header
@@ -118,17 +118,17 @@ public abstract class BandSet {
         //    System.out.println(count + " " + name + " encoded with " + codecUsed + " "  + bytes);
         //}
         if (codecUsed instanceof PopulationCodec) {
-            PopulationCodec popCodec = (PopulationCodec) codecUsed;
-            int[] favoured = (int[]) popCodec.getFavoured().clone();
+            final PopulationCodec popCodec = (PopulationCodec) codecUsed;
+            final int[] favoured = (int[]) popCodec.getFavoured().clone();
             Arrays.sort(favoured);
             for (int i = 0; i < band.length; i++) {
-                boolean favouredValue = Arrays.binarySearch(favoured, band[i]) > -1;
-                Codec theCodec = favouredValue ? popCodec.getFavouredCodec()
+                final boolean favouredValue = Arrays.binarySearch(favoured, band[i]) > -1;
+                final Codec theCodec = favouredValue ? popCodec.getFavouredCodec()
                         : popCodec.getUnfavouredCodec();
                 if (theCodec instanceof BHSDCodec
                         && ((BHSDCodec) theCodec).isDelta()) {
-                    BHSDCodec bhsd = (BHSDCodec) theCodec;
-                    long cardinality = bhsd.cardinality();
+                    final BHSDCodec bhsd = (BHSDCodec) theCodec;
+                    final long cardinality = bhsd.cardinality();
                     while (band[i] > bhsd.largest()) {
                         band[i] -= cardinality;
                     }
@@ -162,15 +162,15 @@ public abstract class BandSet {
      *             if there is a problem decoding the value or that the value is
      *             invalid
      */
-    public int[][] decodeBandInt(String name, InputStream in,
-            BHSDCodec defaultCodec, int[] counts) throws IOException,
+    public int[][] decodeBandInt(final String name, final InputStream in,
+            final BHSDCodec defaultCodec, final int[] counts) throws IOException,
             Pack200Exception {
-        int[][] result = new int[counts.length][];
+        final int[][] result = new int[counts.length][];
         int totalCount = 0;
         for (int i = 0; i < counts.length; i++) {
             totalCount += counts[i];
         }
-        int[] twoDResult = decodeBandInt(name, in, defaultCodec, totalCount);
+        final int[] twoDResult = decodeBandInt(name, in, defaultCodec, totalCount);
         int index = 0;
         for (int i = 0; i < result.length; i++) {
             result[i] = new int[counts[i]];
@@ -182,34 +182,34 @@ public abstract class BandSet {
         return result;
     }
 
-    public long[] parseFlags(String name, InputStream in, int count,
-            BHSDCodec codec, boolean hasHi) throws IOException,
+    public long[] parseFlags(final String name, final InputStream in, final int count,
+            final BHSDCodec codec, final boolean hasHi) throws IOException,
             Pack200Exception {
         return parseFlags(name, in, new int[] { count },
                 (hasHi ? codec : null), codec)[0];
     }
 
-    public long[][] parseFlags(String name, InputStream in, int counts[],
-            BHSDCodec codec, boolean hasHi) throws IOException,
+    public long[][] parseFlags(final String name, final InputStream in, final int counts[],
+            final BHSDCodec codec, final boolean hasHi) throws IOException,
             Pack200Exception {
         return parseFlags(name, in, counts, (hasHi ? codec : null), codec);
     }
 
-    public long[] parseFlags(String name, InputStream in, int count,
-            BHSDCodec hiCodec, BHSDCodec loCodec) throws IOException,
+    public long[] parseFlags(final String name, final InputStream in, final int count,
+            final BHSDCodec hiCodec, final BHSDCodec loCodec) throws IOException,
             Pack200Exception {
         return parseFlags(name, in, new int[] { count }, hiCodec, loCodec)[0];
     }
 
-    public long[][] parseFlags(String name, InputStream in, int counts[],
-            BHSDCodec hiCodec, BHSDCodec loCodec) throws IOException,
+    public long[][] parseFlags(final String name, final InputStream in, final int counts[],
+            final BHSDCodec hiCodec, final BHSDCodec loCodec) throws IOException,
             Pack200Exception {
-        int count = counts.length;
+        final int count = counts.length;
         if (count == 0) {
             return new long[][] { {} };
         }
         int sum = 0;
-        long[][] result = new long[count][];
+        final long[][] result = new long[count][];
         for (int i = 0; i < count; i++) {
             result[i] = new long[counts[i]];
             sum += counts[i];
@@ -263,8 +263,8 @@ public abstract class BandSet {
      *             if a problem occurs with an unexpected value or unsupported
      *             Codec
      */
-    public String[] parseReferences(String name, InputStream in,
-            BHSDCodec codec, int count, String[] reference) throws IOException,
+    public String[] parseReferences(final String name, final InputStream in,
+            final BHSDCodec codec, final int count, final String[] reference) throws IOException,
             Pack200Exception {
         return parseReferences(name, in, codec, new int[] { count }, reference)[0];
     }
@@ -287,7 +287,7 @@ public abstract class BandSet {
      *            the numbers of references to decode for each array entry
      * @param reference
      *            the array of values to use for the references
-     * @return Parsed references. 
+     * @return Parsed references.
      *
      * @throws IOException
      *             if a problem occurs during reading from the underlying stream
@@ -295,35 +295,36 @@ public abstract class BandSet {
      *             if a problem occurs with an unexpected value or unsupported
      *             Codec
      */
-    public String[][] parseReferences(String name, InputStream in,
-            BHSDCodec codec, int counts[], String[] reference)
+    public String[][] parseReferences(final String name, final InputStream in,
+            final BHSDCodec codec, final int counts[], final String[] reference)
             throws IOException, Pack200Exception {
-        int count = counts.length;
+        final int count = counts.length;
         if (count == 0) {
             return new String[][] { {} };
         }
-        String[][] result = new String[count][];
+        final String[][] result = new String[count][];
         int sum = 0;
         for (int i = 0; i < count; i++) {
             result[i] = new String[counts[i]];
             sum += counts[i];
         }
         // TODO Merge the decode and parsing of a multiple structure into one
-        String[] result1 = new String[sum];
-        int[] indices = decodeBandInt(name, in, codec, sum);
+        final String[] result1 = new String[sum];
+        final int[] indices = decodeBandInt(name, in, codec, sum);
         for (int i1 = 0; i1 < sum; i1++) {
-            int index = indices[i1];
-            if (index < 0 || index >= reference.length)
+            final int index = indices[i1];
+            if (index < 0 || index >= reference.length) {
                 throw new Pack200Exception(
                         "Something has gone wrong during parsing references, index = "
                                 + index + ", array size = " + reference.length);
+            }
             result1[i1] = reference[index];
         }
-        String[] refs = result1;
+        final String[] refs = result1;
         // TODO Merge the decode and parsing of a multiple structure into one
         int pos = 0;
         for (int i = 0; i < count; i++) {
-            int num = counts[i];
+            final int num = counts[i];
             result[i] = new String[num];
             System.arraycopy(refs, pos, result[i], 0, num);
             pos += num;
@@ -331,89 +332,91 @@ public abstract class BandSet {
         return result;
     }
 
-    public CPInteger[] parseCPIntReferences(String name, InputStream in,
-            BHSDCodec codec, int count) throws IOException, Pack200Exception {
-        int[] reference = segment.getCpBands().getCpInt();
-        int[] indices = decodeBandInt(name, in, codec, count);
-        CPInteger[] result = new CPInteger[indices.length];
+    public CPInteger[] parseCPIntReferences(final String name, final InputStream in,
+            final BHSDCodec codec, final int count) throws IOException, Pack200Exception {
+        final int[] reference = segment.getCpBands().getCpInt();
+        final int[] indices = decodeBandInt(name, in, codec, count);
+        final CPInteger[] result = new CPInteger[indices.length];
         for (int i1 = 0; i1 < count; i1++) {
-            int index = indices[i1];
-            if (index < 0 || index >= reference.length)
+            final int index = indices[i1];
+            if (index < 0 || index >= reference.length) {
                 throw new Pack200Exception(
                         "Something has gone wrong during parsing references, index = "
                                 + index + ", array size = " + reference.length);
+            }
             result[i1] = segment.getCpBands().cpIntegerValue(index);
         }
         return result;
     }
 
-    public CPDouble[] parseCPDoubleReferences(String name, InputStream in,
-            BHSDCodec codec, int count) throws IOException, Pack200Exception {
-        int[] indices = decodeBandInt(name, in, codec, count);
-        CPDouble[] result = new CPDouble[indices.length];
+    public CPDouble[] parseCPDoubleReferences(final String name, final InputStream in,
+            final BHSDCodec codec, final int count) throws IOException, Pack200Exception {
+        final int[] indices = decodeBandInt(name, in, codec, count);
+        final CPDouble[] result = new CPDouble[indices.length];
         for (int i1 = 0; i1 < count; i1++) {
-            int index = indices[i1];
+            final int index = indices[i1];
             result[i1] = segment.getCpBands().cpDoubleValue(index);
         }
         return result;
     }
 
-    public CPFloat[] parseCPFloatReferences(String name, InputStream in,
-            BHSDCodec codec, int count) throws IOException, Pack200Exception {
-        int[] indices = decodeBandInt(name, in, codec, count);
-        CPFloat[] result = new CPFloat[indices.length];
+    public CPFloat[] parseCPFloatReferences(final String name, final InputStream in,
+            final BHSDCodec codec, final int count) throws IOException, Pack200Exception {
+        final int[] indices = decodeBandInt(name, in, codec, count);
+        final CPFloat[] result = new CPFloat[indices.length];
         for (int i1 = 0; i1 < count; i1++) {
-            int index = indices[i1];
+            final int index = indices[i1];
             result[i1] = segment.getCpBands().cpFloatValue(index);
         }
         return result;
     }
 
-    public CPLong[] parseCPLongReferences(String name, InputStream in,
-            BHSDCodec codec, int count) throws IOException, Pack200Exception {
-        long[] reference = segment.getCpBands().getCpLong();
-        int[] indices = decodeBandInt(name, in, codec, count);
-        CPLong[] result = new CPLong[indices.length];
+    public CPLong[] parseCPLongReferences(final String name, final InputStream in,
+            final BHSDCodec codec, final int count) throws IOException, Pack200Exception {
+        final long[] reference = segment.getCpBands().getCpLong();
+        final int[] indices = decodeBandInt(name, in, codec, count);
+        final CPLong[] result = new CPLong[indices.length];
         for (int i1 = 0; i1 < count; i1++) {
-            int index = indices[i1];
-            if (index < 0 || index >= reference.length)
+            final int index = indices[i1];
+            if (index < 0 || index >= reference.length) {
                 throw new Pack200Exception(
                         "Something has gone wrong during parsing references, index = "
                                 + index + ", array size = " + reference.length);
+            }
             result[i1] = segment.getCpBands().cpLongValue(index);
         }
         return result;
     }
 
-    public CPUTF8[] parseCPUTF8References(String name, InputStream in,
-            BHSDCodec codec, int count) throws IOException, Pack200Exception {
-        int[] indices = decodeBandInt(name, in, codec, count);
-        CPUTF8[] result = new CPUTF8[indices.length];
+    public CPUTF8[] parseCPUTF8References(final String name, final InputStream in,
+            final BHSDCodec codec, final int count) throws IOException, Pack200Exception {
+        final int[] indices = decodeBandInt(name, in, codec, count);
+        final CPUTF8[] result = new CPUTF8[indices.length];
         for (int i1 = 0; i1 < count; i1++) {
-            int index = indices[i1];
+            final int index = indices[i1];
             result[i1] = segment.getCpBands().cpUTF8Value(index);
         }
         return result;
     }
 
-    public CPUTF8[][] parseCPUTF8References(String name, InputStream in,
-            BHSDCodec codec, int[] counts) throws IOException, Pack200Exception {
-        CPUTF8[][] result = new CPUTF8[counts.length][];
+    public CPUTF8[][] parseCPUTF8References(final String name, final InputStream in,
+            final BHSDCodec codec, final int[] counts) throws IOException, Pack200Exception {
+        final CPUTF8[][] result = new CPUTF8[counts.length][];
         int sum = 0;
         for (int i = 0; i < counts.length; i++) {
             result[i] = new CPUTF8[counts[i]];
             sum += counts[i];
         }
-        CPUTF8[] result1 = new CPUTF8[sum];
-        int[] indices = decodeBandInt(name, in, codec, sum);
+        final CPUTF8[] result1 = new CPUTF8[sum];
+        final int[] indices = decodeBandInt(name, in, codec, sum);
         for (int i1 = 0; i1 < sum; i1++) {
-            int index = indices[i1];
+            final int index = indices[i1];
             result1[i1] = segment.getCpBands().cpUTF8Value(index);
         }
-        CPUTF8[] refs = result1;
+        final CPUTF8[] refs = result1;
         int pos = 0;
         for (int i = 0; i < counts.length; i++) {
-            int num = counts[i];
+            final int num = counts[i];
             result[i] = new CPUTF8[num];
             System.arraycopy(refs, pos, result[i], 0, num);
             pos += num;
@@ -421,97 +424,97 @@ public abstract class BandSet {
         return result;
     }
 
-    public CPString[] parseCPStringReferences(String name, InputStream in,
-            BHSDCodec codec, int count) throws IOException, Pack200Exception {
-        int[] indices = decodeBandInt(name, in, codec, count);
-        CPString[] result = new CPString[indices.length];
+    public CPString[] parseCPStringReferences(final String name, final InputStream in,
+            final BHSDCodec codec, final int count) throws IOException, Pack200Exception {
+        final int[] indices = decodeBandInt(name, in, codec, count);
+        final CPString[] result = new CPString[indices.length];
         for (int i1 = 0; i1 < count; i1++) {
-            int index = indices[i1];
+            final int index = indices[i1];
             result[i1] = segment.getCpBands().cpStringValue(index);
         }
         return result;
     }
 
     public CPInterfaceMethodRef[] parseCPInterfaceMethodRefReferences(
-            String name, InputStream in, BHSDCodec codec, int count)
+            final String name, final InputStream in, final BHSDCodec codec, final int count)
             throws IOException, Pack200Exception {
-        CpBands cpBands = segment.getCpBands();
-        int[] indices = decodeBandInt(name, in, codec, count);
-        CPInterfaceMethodRef[] result = new CPInterfaceMethodRef[indices.length];
+        final CpBands cpBands = segment.getCpBands();
+        final int[] indices = decodeBandInt(name, in, codec, count);
+        final CPInterfaceMethodRef[] result = new CPInterfaceMethodRef[indices.length];
         for (int i1 = 0; i1 < count; i1++) {
-            int index = indices[i1];
+            final int index = indices[i1];
             result[i1] = cpBands.cpIMethodValue(index);
         }
         return result;
     }
 
-    public CPMethodRef[] parseCPMethodRefReferences(String name,
-            InputStream in, BHSDCodec codec, int count) throws IOException,
+    public CPMethodRef[] parseCPMethodRefReferences(final String name,
+            final InputStream in, final BHSDCodec codec, final int count) throws IOException,
             Pack200Exception {
-        CpBands cpBands = segment.getCpBands();
-        int[] indices = decodeBandInt(name, in, codec, count);
-        CPMethodRef[] result = new CPMethodRef[indices.length];
+        final CpBands cpBands = segment.getCpBands();
+        final int[] indices = decodeBandInt(name, in, codec, count);
+        final CPMethodRef[] result = new CPMethodRef[indices.length];
         for (int i1 = 0; i1 < count; i1++) {
-            int index = indices[i1];
+            final int index = indices[i1];
             result[i1] = cpBands.cpMethodValue(index);
         }
         return result;
     }
 
-    public CPFieldRef[] parseCPFieldRefReferences(String name, InputStream in,
-            BHSDCodec codec, int count) throws IOException, Pack200Exception {
-        CpBands cpBands = segment.getCpBands();
-        int[] indices = decodeBandInt(name, in, codec, count);
-        CPFieldRef[] result = new CPFieldRef[indices.length];
+    public CPFieldRef[] parseCPFieldRefReferences(final String name, final InputStream in,
+            final BHSDCodec codec, final int count) throws IOException, Pack200Exception {
+        final CpBands cpBands = segment.getCpBands();
+        final int[] indices = decodeBandInt(name, in, codec, count);
+        final CPFieldRef[] result = new CPFieldRef[indices.length];
         for (int i1 = 0; i1 < count; i1++) {
-            int index = indices[i1];
+            final int index = indices[i1];
             result[i1] = cpBands.cpFieldValue(index);
         }
         return result;
     }
 
-    public CPNameAndType[] parseCPDescriptorReferences(String name,
-            InputStream in, BHSDCodec codec, int count) throws IOException,
+    public CPNameAndType[] parseCPDescriptorReferences(final String name,
+            final InputStream in, final BHSDCodec codec, final int count) throws IOException,
             Pack200Exception {
-        CpBands cpBands = segment.getCpBands();
-        int[] indices = decodeBandInt(name, in, codec, count);
-        CPNameAndType[] result = new CPNameAndType[indices.length];
+        final CpBands cpBands = segment.getCpBands();
+        final int[] indices = decodeBandInt(name, in, codec, count);
+        final CPNameAndType[] result = new CPNameAndType[indices.length];
         for (int i1 = 0; i1 < count; i1++) {
-            int index = indices[i1];
+            final int index = indices[i1];
             result[i1] = cpBands.cpNameAndTypeValue(index);
         }
         return result;
     }
 
-    public CPUTF8[] parseCPSignatureReferences(String name, InputStream in,
-            BHSDCodec codec, int count) throws IOException, Pack200Exception {
-        int[] indices = decodeBandInt(name, in, codec, count);
-        CPUTF8[] result = new CPUTF8[indices.length];
+    public CPUTF8[] parseCPSignatureReferences(final String name, final InputStream in,
+            final BHSDCodec codec, final int count) throws IOException, Pack200Exception {
+        final int[] indices = decodeBandInt(name, in, codec, count);
+        final CPUTF8[] result = new CPUTF8[indices.length];
         for (int i1 = 0; i1 < count; i1++) {
-            int index = indices[i1];
+            final int index = indices[i1];
             result[i1] = segment.getCpBands().cpSignatureValue(index);
         }
         return result;
     }
 
-    protected CPUTF8[][] parseCPSignatureReferences(String name, InputStream in,
-            BHSDCodec codec, int[] counts) throws IOException, Pack200Exception {
-        CPUTF8[][] result = new CPUTF8[counts.length][];
+    protected CPUTF8[][] parseCPSignatureReferences(final String name, final InputStream in,
+            final BHSDCodec codec, final int[] counts) throws IOException, Pack200Exception {
+        final CPUTF8[][] result = new CPUTF8[counts.length][];
         int sum = 0;
         for (int i = 0; i < counts.length; i++) {
             result[i] = new CPUTF8[counts[i]];
             sum += counts[i];
         }
-        CPUTF8[] result1 = new CPUTF8[sum];
-        int[] indices = decodeBandInt(name, in, codec, sum);
+        final CPUTF8[] result1 = new CPUTF8[sum];
+        final int[] indices = decodeBandInt(name, in, codec, sum);
         for (int i1 = 0; i1 < sum; i1++) {
-            int index = indices[i1];
+            final int index = indices[i1];
             result1[i1] = segment.getCpBands().cpSignatureValue(index);
         }
-        CPUTF8[] refs = result1;
+        final CPUTF8[] refs = result1;
         int pos = 0;
         for (int i = 0; i < counts.length; i++) {
-            int num = counts[i];
+            final int num = counts[i];
             result[i] = new CPUTF8[num];
             System.arraycopy(refs, pos, result[i], 0, num);
             pos += num;
@@ -519,27 +522,27 @@ public abstract class BandSet {
         return result;
     }
 
-    public CPClass[] parseCPClassReferences(String name, InputStream in,
-            BHSDCodec codec, int count) throws IOException, Pack200Exception {
-        int[] indices = decodeBandInt(name, in, codec, count);
-        CPClass[] result = new CPClass[indices.length];
+    public CPClass[] parseCPClassReferences(final String name, final InputStream in,
+            final BHSDCodec codec, final int count) throws IOException, Pack200Exception {
+        final int[] indices = decodeBandInt(name, in, codec, count);
+        final CPClass[] result = new CPClass[indices.length];
         for (int i1 = 0; i1 < count; i1++) {
-            int index = indices[i1];
+            final int index = indices[i1];
             result[i1] = segment.getCpBands().cpClassValue(index);
         }
         return result;
     }
 
-    protected String[] getReferences(int[] ints, String[] reference) {
-        String[] result = new String[ints.length];
+    protected String[] getReferences(final int[] ints, final String[] reference) {
+        final String[] result = new String[ints.length];
         for (int i = 0; i < result.length; i++) {
             result[i] = reference[ints[i]];
         }
         return result;
     }
 
-    protected String[][] getReferences(int[][] ints, String[] reference) {
-        String[][] result = new String[ints.length][];
+    protected String[][] getReferences(final int[][] ints, final String[] reference) {
+        final String[][] result = new String[ints.length][];
         for (int i = 0; i < result.length; i++) {
             result[i] = new String[ints[i].length];
             for (int j = 0; j < result[i].length; j++) {
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/BcBands.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/BcBands.java
index f3f5ced..88ee6ca 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/BcBands.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/BcBands.java
@@ -75,7 +75,7 @@ public class BcBands extends BandSet {
     /**
      * @param segment TODO
      */
-    public BcBands(Segment segment) {
+    public BcBands(final Segment segment) {
         super(segment);
     }
 
@@ -84,12 +84,13 @@ public class BcBands extends BandSet {
      *
      * @see org.apache.commons.compress.harmony.unpack200.BandSet#unpack(java.io.InputStream)
      */
-    public void read(InputStream in) throws IOException, Pack200Exception {
+    @Override
+    public void read(final InputStream in) throws IOException, Pack200Exception {
 
-        AttributeLayoutMap attributeDefinitionMap = segment
+        final AttributeLayoutMap attributeDefinitionMap = segment
                 .getAttrDefinitionBands().getAttributeDefinitionMap();
-        int classCount = header.getClassCount();
-        long[][] methodFlags = segment.getClassBands().getMethodFlags();
+        final int classCount = header.getClassCount();
+        final long[][] methodFlags = segment.getClassBands().getMethodFlags();
 
         int bcCaseCountCount = 0;
         int bcByteCount = 0;
@@ -113,37 +114,38 @@ public class BcBands extends BandSet {
         int bcEscCount = 0;
         int bcEscRefCount = 0;
 
-        AttributeLayout abstractModifier = attributeDefinitionMap
+        final AttributeLayout abstractModifier = attributeDefinitionMap
                 .getAttributeLayout(AttributeLayout.ACC_ABSTRACT,
                         AttributeLayout.CONTEXT_METHOD);
-        AttributeLayout nativeModifier = attributeDefinitionMap
+        final AttributeLayout nativeModifier = attributeDefinitionMap
                 .getAttributeLayout(AttributeLayout.ACC_NATIVE,
                         AttributeLayout.CONTEXT_METHOD);
 
         methodByteCodePacked = new byte[classCount][][];
         int bcParsed = 0;
 
-        List switchIsTableSwitch = new ArrayList();
+        final List switchIsTableSwitch = new ArrayList();
         wideByteCodes = new ArrayList();
         for (int c = 0; c < classCount; c++) {
-            int numberOfMethods = methodFlags[c].length;
+            final int numberOfMethods = methodFlags[c].length;
             methodByteCodePacked[c] = new byte[numberOfMethods][];
             for (int m = 0; m < numberOfMethods; m++) {
-                long methodFlag = methodFlags[c][m];
+                final long methodFlag = methodFlags[c][m];
                 if (!abstractModifier.matches(methodFlag)
                         && !nativeModifier.matches(methodFlag)) {
-                    ByteArrayOutputStream codeBytes = new ByteArrayOutputStream();
+                    final ByteArrayOutputStream codeBytes = new ByteArrayOutputStream();
                     byte code;
-                    while ((code = (byte) (0xff & in.read())) != -1)
+                    while ((code = (byte) (0xff & in.read())) != -1) {
                         codeBytes.write(code);
+                    }
                     methodByteCodePacked[c][m] = codeBytes.toByteArray();
                     bcParsed += methodByteCodePacked[c][m].length;
-                    int[] codes = new int[methodByteCodePacked[c][m].length];
+                    final int[] codes = new int[methodByteCodePacked[c][m].length];
                     for (int i = 0; i < codes.length; i++) {
                         codes[i] = methodByteCodePacked[c][m][i] & 0xff;
                     }
                     for (int i = 0; i < methodByteCodePacked[c][m].length; i++) {
-                        int codePacked = 0xff & methodByteCodePacked[c][m][i];
+                        final int codePacked = 0xff & methodByteCodePacked[c][m][i];
                         switch (codePacked) {
                         case 16: // bipush
                         case 188: // newarray
@@ -191,12 +193,12 @@ public class BcBands extends BandSet {
                             bcLabelCount++;
                             break;
                         case 170: // tableswitch
-                            switchIsTableSwitch.add(new Boolean(true));
+                            switchIsTableSwitch.add(Boolean.valueOf(true));
                             bcCaseCountCount++;
                             bcLabelCount++;
                             break;
                         case 171: // lookupswitch
-                            switchIsTableSwitch.add(new Boolean(false));
+                            switchIsTableSwitch.add(Boolean.valueOf(false));
                             bcCaseCountCount++;
                             bcLabelCount++;
                             break;
@@ -255,8 +257,8 @@ public class BcBands extends BandSet {
                             bcByteCount++;
                             break;
                         case 196: // wide
-                            int nextInstruction = 0xff & methodByteCodePacked[c][m][i + 1];
-                            wideByteCodes.add(new Integer(nextInstruction));
+                            final int nextInstruction = 0xff & methodByteCodePacked[c][m][i + 1];
+                            wideByteCodes.add(Integer.valueOf(nextInstruction));
                             if (nextInstruction == 132) { // iinc
                                 bcLocalCount++;
                                 bcShortCount++;
@@ -302,7 +304,7 @@ public class BcBands extends BandSet {
                 bcCaseCountCount);
         int bcCaseValueCount = 0;
         for (int i = 0; i < bcCaseCount.length; i++) {
-            boolean isTableSwitch = ((Boolean) switchIsTableSwitch.get(i))
+            final boolean isTableSwitch = ((Boolean) switchIsTableSwitch.get(i))
                     .booleanValue();
             if (isTableSwitch) {
                 bcCaseValueCount += 1;
@@ -357,34 +359,35 @@ public class BcBands extends BandSet {
         bcEscByte = decodeBandInt("bc_escbyte", in, Codec.BYTE1, bcEscSize);
     }
 
+    @Override
     public void unpack() throws Pack200Exception {
-        int classCount = header.getClassCount();
-        long[][] methodFlags = segment.getClassBands().getMethodFlags();
-        int[] codeMaxNALocals = segment.getClassBands().getCodeMaxNALocals();
-        int[] codeMaxStack = segment.getClassBands().getCodeMaxStack();
-        ArrayList[][] methodAttributes = segment.getClassBands()
+        final int classCount = header.getClassCount();
+        final long[][] methodFlags = segment.getClassBands().getMethodFlags();
+        final int[] codeMaxNALocals = segment.getClassBands().getCodeMaxNALocals();
+        final int[] codeMaxStack = segment.getClassBands().getCodeMaxStack();
+        final ArrayList[][] methodAttributes = segment.getClassBands()
                 .getMethodAttributes();
-        String[][] methodDescr = segment.getClassBands().getMethodDescr();
+        final String[][] methodDescr = segment.getClassBands().getMethodDescr();
 
-        AttributeLayoutMap attributeDefinitionMap = segment
+        final AttributeLayoutMap attributeDefinitionMap = segment
                 .getAttrDefinitionBands().getAttributeDefinitionMap();
 
-        AttributeLayout abstractModifier = attributeDefinitionMap
+        final AttributeLayout abstractModifier = attributeDefinitionMap
                 .getAttributeLayout(AttributeLayout.ACC_ABSTRACT,
                         AttributeLayout.CONTEXT_METHOD);
-        AttributeLayout nativeModifier = attributeDefinitionMap
+        final AttributeLayout nativeModifier = attributeDefinitionMap
                 .getAttributeLayout(AttributeLayout.ACC_NATIVE,
                         AttributeLayout.CONTEXT_METHOD);
-        AttributeLayout staticModifier = attributeDefinitionMap
+        final AttributeLayout staticModifier = attributeDefinitionMap
                 .getAttributeLayout(AttributeLayout.ACC_STATIC,
                         AttributeLayout.CONTEXT_METHOD);
 
-        int[] wideByteCodeArray = new int[wideByteCodes.size()];
+        final int[] wideByteCodeArray = new int[wideByteCodes.size()];
         for (int index = 0; index < wideByteCodeArray.length; index++) {
             wideByteCodeArray[index] = ((Integer) wideByteCodes.get(index))
                     .intValue();
         }
-        OperandManager operandManager = new OperandManager(bcCaseCount,
+        final OperandManager operandManager = new OperandManager(bcCaseCount,
                 bcCaseValue, bcByte, bcShort, bcLocal, bcLabel, bcIntRef,
                 bcFloatRef, bcLongRef, bcDoubleRef, bcStringRef, bcClassRef,
                 bcFieldRef, bcMethodRef, bcIMethodRef, bcThisField,
@@ -393,45 +396,47 @@ public class BcBands extends BandSet {
         operandManager.setSegment(segment);
 
         int i = 0;
-        ArrayList orderedCodeAttributes = segment.getClassBands()
+        final ArrayList orderedCodeAttributes = segment.getClassBands()
                 .getOrderedCodeAttributes();
         int codeAttributeIndex = 0;
 
         // Exception table fields
-        int[] handlerCount = segment.getClassBands().getCodeHandlerCount();
-        int[][] handlerStartPCs = segment.getClassBands()
+        final int[] handlerCount = segment.getClassBands().getCodeHandlerCount();
+        final int[][] handlerStartPCs = segment.getClassBands()
                 .getCodeHandlerStartP();
-        int[][] handlerEndPCs = segment.getClassBands().getCodeHandlerEndPO();
-        int[][] handlerCatchPCs = segment.getClassBands()
+        final int[][] handlerEndPCs = segment.getClassBands().getCodeHandlerEndPO();
+        final int[][] handlerCatchPCs = segment.getClassBands()
                 .getCodeHandlerCatchPO();
-        int[][] handlerClassTypes = segment.getClassBands()
+        final int[][] handlerClassTypes = segment.getClassBands()
                 .getCodeHandlerClassRCN();
 
-        boolean allCodeHasFlags = segment.getSegmentHeader().getOptions().hasAllCodeFlags();
-        boolean[] codeHasFlags = segment.getClassBands().getCodeHasAttributes();
+        final boolean allCodeHasFlags = segment.getSegmentHeader().getOptions().hasAllCodeFlags();
+        final boolean[] codeHasFlags = segment.getClassBands().getCodeHasAttributes();
 
         for (int c = 0; c < classCount; c++) {
-            int numberOfMethods = methodFlags[c].length;
+            final int numberOfMethods = methodFlags[c].length;
             for (int m = 0; m < numberOfMethods; m++) {
-                long methodFlag = methodFlags[c][m];
+                final long methodFlag = methodFlags[c][m];
                 if (!abstractModifier.matches(methodFlag)
                         && !nativeModifier.matches(methodFlag)) {
-                    int maxStack = codeMaxStack[i];
+                    final int maxStack = codeMaxStack[i];
                     int maxLocal = codeMaxNALocals[i];
                     if (!staticModifier.matches(methodFlag))
+                     {
                         maxLocal++; // one for 'this' parameter
+                    }
                     // I believe this has to take wide arguments into account
                     maxLocal += SegmentUtils
                             .countInvokeInterfaceArgs(methodDescr[c][m]);
-                    String[] cpClass = segment.getCpBands().getCpClass();
+                    final String[] cpClass = segment.getCpBands().getCpClass();
                     operandManager.setCurrentClass(cpClass[segment
                             .getClassBands().getClassThisInts()[c]]);
                     operandManager.setSuperClass(cpClass[segment
                             .getClassBands().getClassSuperInts()[c]]);
-                    List exceptionTable = new ArrayList();
+                    final List exceptionTable = new ArrayList();
                     if (handlerCount != null) {
                         for (int j = 0; j < handlerCount[i]; j++) {
-                            int handlerClass = handlerClassTypes[i][j] - 1;
+                            final int handlerClass = handlerClassTypes[i][j] - 1;
                             CPClass cpHandlerClass = null;
                             if (handlerClass != -1) {
                                 // The handlerClass will be null if the
@@ -440,42 +445,39 @@ public class BcBands extends BandSet {
                                 cpHandlerClass = segment.getCpBands()
                                         .cpClassValue(handlerClass);
                             }
-                            ExceptionTableEntry entry = new ExceptionTableEntry(
+                            final ExceptionTableEntry entry = new ExceptionTableEntry(
                                     handlerStartPCs[i][j], handlerEndPCs[i][j],
                                     handlerCatchPCs[i][j], cpHandlerClass);
                             exceptionTable.add(entry);
                         }
                     }
-                    CodeAttribute codeAttr = new CodeAttribute(maxStack,
+                    final CodeAttribute codeAttr = new CodeAttribute(maxStack,
                             maxLocal, methodByteCodePacked[c][m], segment,
                             operandManager, exceptionTable);
-                    ArrayList methodAttributesList = methodAttributes[c][m];
+                    final ArrayList methodAttributesList = methodAttributes[c][m];
                     // Make sure we add the code attribute in the right place
                     int indexForCodeAttr = 0;
                     for (int index = 0; index < methodAttributesList.size(); index++) {
-                        Attribute attribute = (Attribute) methodAttributesList.get(index);
-                        if((attribute instanceof NewAttribute && ((NewAttribute)attribute).getLayoutIndex() < 15)) {
-                            indexForCodeAttr ++;
-                        } else {
+                        final Attribute attribute = (Attribute) methodAttributesList.get(index);
+                        if(!(attribute instanceof NewAttribute) || (((NewAttribute)attribute).getLayoutIndex() >= 15)) {
                             break;
                         }
+                        indexForCodeAttr ++;
                     }
                     methodAttributesList.add(indexForCodeAttr, codeAttr);
                     codeAttr.renumber(codeAttr.byteCodeOffsets);
                     List currentAttributes;
                     if (allCodeHasFlags) {
                         currentAttributes = (List) orderedCodeAttributes.get(i);
+                    } else if (codeHasFlags[i]) {
+                        currentAttributes = (List) orderedCodeAttributes
+                                .get(codeAttributeIndex);
+                        codeAttributeIndex++;
                     } else {
-                        if (codeHasFlags[i]) {
-                            currentAttributes = (List) orderedCodeAttributes
-                                    .get(codeAttributeIndex);
-                            codeAttributeIndex++;
-                        } else {
-                            currentAttributes = Collections.EMPTY_LIST;
-                        }
+                        currentAttributes = Collections.EMPTY_LIST;
                     }
                     for (int index = 0; index < currentAttributes.size(); index++) {
-                        Attribute currentAttribute = (Attribute) currentAttributes
+                        final Attribute currentAttribute = (Attribute) currentAttributes
                                 .get(index);
                         codeAttr.addAttribute(currentAttribute);
                         // Fix up the line numbers if needed
@@ -490,16 +492,16 @@ public class BcBands extends BandSet {
         }
     }
 
-    private boolean startsWithIf(int codePacked) {
+    private boolean startsWithIf(final int codePacked) {
         return (codePacked >= 153 && codePacked <= 166) || (codePacked == 198)
                 || (codePacked == 199);
     }
 
-    private boolean endsWithLoad(int codePacked) {
+    private boolean endsWithLoad(final int codePacked) {
         return (codePacked >= 21 && codePacked <= 25);
     }
 
-    private boolean endsWithStore(int codePacked) {
+    private boolean endsWithStore(final int codePacked) {
         return (codePacked >= 54 && codePacked <= 58);
     }
 
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/ClassBands.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/ClassBands.java
index 0b5c275..9c82f6c 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/ClassBands.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/ClassBands.java
@@ -119,7 +119,7 @@ public class ClassBands extends BandSet {
     /**
      * @param segment TODO
      */
-    public ClassBands(Segment segment) {
+    public ClassBands(final Segment segment) {
         super(segment);
         this.attrMap = segment.getAttrDefinitionBands()
                 .getAttributeDefinitionMap();
@@ -134,13 +134,14 @@ public class ClassBands extends BandSet {
      *
      * @see org.apache.commons.compress.harmony.unpack200.BandSet#unpack(java.io.InputStream)
      */
-    public void read(InputStream in) throws IOException, Pack200Exception {
-        int classCount = header.getClassCount();
+    @Override
+    public void read(final InputStream in) throws IOException, Pack200Exception {
+        final int classCount = header.getClassCount();
         classThisInts = decodeBandInt("class_this", in, Codec.DELTA5, classCount);
         classThis = getReferences(classThisInts, cpBands.getCpClass());
         classSuperInts = decodeBandInt("class_super", in, Codec.DELTA5,
                 classCount);
-        int[] classInterfaceLengths = decodeBandInt("class_interface_count",
+        final int[] classInterfaceLengths = decodeBandInt("class_interface_count",
                 in, Codec.DELTA5, classCount);
         classInterfacesInts = decodeBandInt("class_interface", in, Codec.DELTA5,
                 classInterfaceLengths);
@@ -155,11 +156,12 @@ public class ClassBands extends BandSet {
 
     }
 
+    @Override
     public void unpack() {
 
     }
 
-    private void parseFieldBands(InputStream in) throws IOException,
+    private void parseFieldBands(final InputStream in) throws IOException,
             Pack200Exception {
         fieldDescrInts = decodeBandInt("field_descr", in, Codec.DELTA5,
                 classFieldCount);
@@ -167,18 +169,18 @@ public class ClassBands extends BandSet {
         parseFieldAttrBands(in);
     }
 
-    private void parseFieldAttrBands(InputStream in) throws IOException,
+    private void parseFieldAttrBands(final InputStream in) throws IOException,
             Pack200Exception {
         fieldFlags = parseFlags("field_flags", in, classFieldCount,
                 Codec.UNSIGNED5, options.hasFieldFlagsHi());
-        int fieldAttrCount = SegmentUtils.countBit16(fieldFlags);
-        int[] fieldAttrCounts = decodeBandInt("field_attr_count", in,
+        final int fieldAttrCount = SegmentUtils.countBit16(fieldFlags);
+        final int[] fieldAttrCounts = decodeBandInt("field_attr_count", in,
                 Codec.UNSIGNED5, fieldAttrCount);
-        int[][] fieldAttrIndexes = decodeBandInt("field_attr_indexes", in,
+        final int[][] fieldAttrIndexes = decodeBandInt("field_attr_indexes", in,
                 Codec.UNSIGNED5, fieldAttrCounts);
-        int callCount = getCallCount(fieldAttrIndexes, fieldFlags,
+        final int callCount = getCallCount(fieldAttrIndexes, fieldFlags,
                 AttributeLayout.CONTEXT_FIELD);
-        int[] fieldAttrCalls = decodeBandInt("field_attr_calls", in,
+        final int[] fieldAttrCalls = decodeBandInt("field_attr_calls", in,
                 Codec.UNSIGNED5, callCount);
 
         // Assign empty field attributes
@@ -190,43 +192,44 @@ public class ClassBands extends BandSet {
             }
         }
 
-        AttributeLayout constantValueLayout = attrMap.getAttributeLayout(
+        final AttributeLayout constantValueLayout = attrMap.getAttributeLayout(
                 "ConstantValue", AttributeLayout.CONTEXT_FIELD);
-        int constantCount = SegmentUtils.countMatches(fieldFlags,
+        final int constantCount = SegmentUtils.countMatches(fieldFlags,
                 constantValueLayout);
-        int[] field_constantValue_KQ = decodeBandInt("field_ConstantValue_KQ",
+        final int[] field_constantValue_KQ = decodeBandInt("field_ConstantValue_KQ",
                 in, Codec.UNSIGNED5, constantCount);
         int constantValueIndex = 0;
 
-        AttributeLayout signatureLayout = attrMap.getAttributeLayout(
+        final AttributeLayout signatureLayout = attrMap.getAttributeLayout(
                 AttributeLayout.ATTRIBUTE_SIGNATURE,
                 AttributeLayout.CONTEXT_FIELD);
-        int signatureCount = SegmentUtils.countMatches(fieldFlags,
+        final int signatureCount = SegmentUtils.countMatches(fieldFlags,
                 signatureLayout);
-        int[] fieldSignatureRS = decodeBandInt("field_Signature_RS", in,
+        final int[] fieldSignatureRS = decodeBandInt("field_Signature_RS", in,
                 Codec.UNSIGNED5, signatureCount);
         int signatureIndex = 0;
 
-        AttributeLayout deprecatedLayout = attrMap.getAttributeLayout(
+        final AttributeLayout deprecatedLayout = attrMap.getAttributeLayout(
                 AttributeLayout.ATTRIBUTE_DEPRECATED,
                 AttributeLayout.CONTEXT_FIELD);
 
         for (int i = 0; i < classCount; i++) {
             for (int j = 0; j < fieldFlags[i].length; j++) {
-                long flag = fieldFlags[i][j];
+                final long flag = fieldFlags[i][j];
                 if (deprecatedLayout.matches(flag)) {
                     fieldAttributes[i][j].add(new DeprecatedAttribute());
                 }
                 if (constantValueLayout.matches(flag)) {
                     // we've got a value to read
-                    long result = field_constantValue_KQ[constantValueIndex];
-                    String desc = fieldDescr[i][j];
-                    int colon = desc.indexOf(':');
+                    final long result = field_constantValue_KQ[constantValueIndex];
+                    final String desc = fieldDescr[i][j];
+                    final int colon = desc.indexOf(':');
                     String type = desc.substring(colon + 1);
                     if (type.equals("B") || type.equals("S")
-                            || type.equals("C") || type.equals("Z"))
+                            || type.equals("C") || type.equals("Z")) {
                         type = "I";
-                    ClassFileEntry value = constantValueLayout.getValue(result,
+                    }
+                    final ClassFileEntry value = constantValueLayout.getValue(result,
                             type, cpBands.getConstantPool());
                     fieldAttributes[i][j]
                             .add(new ConstantValueAttribute(value));
@@ -234,11 +237,11 @@ public class ClassBands extends BandSet {
                 }
                 if (signatureLayout.matches(flag)) {
                     // we've got a signature attribute
-                    long result = fieldSignatureRS[signatureIndex];
-                    String desc = fieldDescr[i][j];
-                    int colon = desc.indexOf(':');
-                    String type = desc.substring(colon + 1);
-                    CPUTF8 value = (CPUTF8) signatureLayout.getValue(result,
+                    final long result = fieldSignatureRS[signatureIndex];
+                    final String desc = fieldDescr[i][j];
+                    final int colon = desc.indexOf(':');
+                    final String type = desc.substring(colon + 1);
+                    final CPUTF8 value = (CPUTF8) signatureLayout.getValue(result,
                             type, cpBands.getConstantPool());
                     fieldAttributes[i][j].add(new SignatureAttribute(value));
                     signatureIndex++;
@@ -246,16 +249,16 @@ public class ClassBands extends BandSet {
             }
         }
 
-        int backwardsCallsUsed = parseFieldMetadataBands(in, fieldAttrCalls);
+        final int backwardsCallsUsed = parseFieldMetadataBands(in, fieldAttrCalls);
 
         // Parse non-predefined attribute bands
         int backwardsCallIndex = backwardsCallsUsed;
-        int limit = options.hasFieldFlagsHi() ? 62 : 31;
-        AttributeLayout[] otherLayouts = new AttributeLayout[limit + 1];
-        int[] counts = new int[limit + 1];
-        List[] otherAttributes = new List[limit + 1];
+        final int limit = options.hasFieldFlagsHi() ? 62 : 31;
+        final AttributeLayout[] otherLayouts = new AttributeLayout[limit + 1];
+        final int[] counts = new int[limit + 1];
+        final List[] otherAttributes = new List[limit + 1];
         for (int i = 0; i < limit; i++) {
-            AttributeLayout layout = attrMap.getAttributeLayout(i,
+            final AttributeLayout layout = attrMap.getAttributeLayout(i,
                     AttributeLayout.CONTEXT_FIELD);
             if (layout != null && !(layout.isDefaultLayout())) {
                 otherLayouts[i] = layout;
@@ -264,13 +267,13 @@ public class ClassBands extends BandSet {
         }
         for (int i = 0; i < counts.length; i++) {
             if (counts[i] > 0) {
-                NewAttributeBands bands = attrMap
+                final NewAttributeBands bands = attrMap
                         .getAttributeBands(otherLayouts[i]);
                 otherAttributes[i] = bands.parseAttributes(in, counts[i]);
-                int numBackwardsCallables = otherLayouts[i]
+                final int numBackwardsCallables = otherLayouts[i]
                         .numBackwardsCallables();
                 if (numBackwardsCallables > 0) {
-                    int[] backwardsCalls = new int[numBackwardsCallables];
+                    final int[] backwardsCalls = new int[numBackwardsCallables];
                     System.arraycopy(fieldAttrCalls, backwardsCallIndex,
                             backwardsCalls, 0, numBackwardsCallables);
                     bands.setBackwardsCalls(backwardsCalls);
@@ -282,7 +285,7 @@ public class ClassBands extends BandSet {
         // Non-predefined attributes
         for (int i = 0; i < classCount; i++) {
             for (int j = 0; j < fieldFlags[i].length; j++) {
-                long flag = fieldFlags[i][j];
+                final long flag = fieldFlags[i][j];
                 int othersAddedAtStart = 0;
                 for (int k = 0; k < otherLayouts.length; k++) {
                     if (otherLayouts[k] != null
@@ -300,7 +303,7 @@ public class ClassBands extends BandSet {
         }
     }
 
-    private void parseMethodBands(InputStream in) throws IOException,
+    private void parseMethodBands(final InputStream in) throws IOException,
             Pack200Exception {
         methodDescrInts = decodeBandInt("method_descr", in, Codec.MDELTA5,
                 classMethodCount);
@@ -308,16 +311,16 @@ public class ClassBands extends BandSet {
         parseMethodAttrBands(in);
     }
 
-    private void parseMethodAttrBands(InputStream in) throws IOException,
+    private void parseMethodAttrBands(final InputStream in) throws IOException,
             Pack200Exception {
         methodFlags = parseFlags("method_flags", in, classMethodCount,
                 Codec.UNSIGNED5, options.hasMethodFlagsHi());
-        int methodAttrCount = SegmentUtils.countBit16(methodFlags);
-        int[] methodAttrCounts = decodeBandInt("method_attr_count", in,
+        final int methodAttrCount = SegmentUtils.countBit16(methodFlags);
+        final int[] methodAttrCounts = decodeBandInt("method_attr_count", in,
                 Codec.UNSIGNED5, methodAttrCount);
-        int[][] methodAttrIndexes = decodeBandInt("method_attr_indexes", in,
+        final int[][] methodAttrIndexes = decodeBandInt("method_attr_indexes", in,
                 Codec.UNSIGNED5, methodAttrCounts);
-        int callCount = getCallCount(methodAttrIndexes, methodFlags,
+        final int callCount = getCallCount(methodAttrIndexes, methodFlags,
                 AttributeLayout.CONTEXT_METHOD);
         methodAttrCalls = decodeBandInt("method_attr_calls", in, Codec.UNSIGNED5,
                 callCount);
@@ -332,26 +335,26 @@ public class ClassBands extends BandSet {
         }
 
         // Parse method exceptions attributes
-        AttributeLayout methodExceptionsLayout = attrMap.getAttributeLayout(
+        final AttributeLayout methodExceptionsLayout = attrMap.getAttributeLayout(
                 AttributeLayout.ATTRIBUTE_EXCEPTIONS,
                 AttributeLayout.CONTEXT_METHOD);
-        int count = SegmentUtils.countMatches(methodFlags,
+        final int count = SegmentUtils.countMatches(methodFlags,
                 methodExceptionsLayout);
-        int[] numExceptions = decodeBandInt("method_Exceptions_n", in,
+        final int[] numExceptions = decodeBandInt("method_Exceptions_n", in,
                 Codec.UNSIGNED5, count);
-        int[][] methodExceptionsRS = decodeBandInt("method_Exceptions_RC",
+        final int[][] methodExceptionsRS = decodeBandInt("method_Exceptions_RC",
                 in, Codec.UNSIGNED5, numExceptions);
 
         // Parse method signature attributes
-        AttributeLayout methodSignatureLayout = attrMap.getAttributeLayout(
+        final AttributeLayout methodSignatureLayout = attrMap.getAttributeLayout(
                 AttributeLayout.ATTRIBUTE_SIGNATURE,
                 AttributeLayout.CONTEXT_METHOD);
-        int count1 = SegmentUtils.countMatches(methodFlags,
+        final int count1 = SegmentUtils.countMatches(methodFlags,
                 methodSignatureLayout);
-        int[] methodSignatureRS = decodeBandInt("method_signature_RS", in,
+        final int[] methodSignatureRS = decodeBandInt("method_signature_RS", in,
                 Codec.UNSIGNED5, count1);
 
-        AttributeLayout deprecatedLayout = attrMap.getAttributeLayout(
+        final AttributeLayout deprecatedLayout = attrMap.getAttributeLayout(
                 AttributeLayout.ATTRIBUTE_DEPRECATED,
                 AttributeLayout.CONTEXT_METHOD);
 
@@ -360,11 +363,11 @@ public class ClassBands extends BandSet {
         int methodSignatureIndex = 0;
         for (int i = 0; i < methodAttributes.length; i++) {
             for (int j = 0; j < methodAttributes[i].length; j++) {
-                long flag = methodFlags[i][j];
+                final long flag = methodFlags[i][j];
                 if (methodExceptionsLayout.matches(flag)) {
-                    int n = numExceptions[methodExceptionsIndex];
-                    int[] exceptions = methodExceptionsRS[methodExceptionsIndex];
-                    CPClass[] exceptionClasses = new CPClass[n];
+                    final int n = numExceptions[methodExceptionsIndex];
+                    final int[] exceptions = methodExceptionsRS[methodExceptionsIndex];
+                    final CPClass[] exceptionClasses = new CPClass[n];
                     for (int k = 0; k < n; k++) {
                         exceptionClasses[k] = cpBands
                                 .cpClassValue(exceptions[k]);
@@ -375,15 +378,16 @@ public class ClassBands extends BandSet {
                 }
                 if (methodSignatureLayout.matches(flag)) {
                     // We've got a signature attribute
-                    long result = methodSignatureRS[methodSignatureIndex];
-                    String desc = methodDescr[i][j];
-                    int colon = desc.indexOf(':');
+                    final long result = methodSignatureRS[methodSignatureIndex];
+                    final String desc = methodDescr[i][j];
+                    final int colon = desc.indexOf(':');
                     String type = desc.substring(colon + 1);
                     // TODO Got to get better at this ... in any case, it should
                     // be e.g. KIB or KIH
-                    if (type.equals("B") || type.equals("H"))
+                    if (type.equals("B") || type.equals("H")) {
                         type = "I";
-                    CPUTF8 value = (CPUTF8) methodSignatureLayout.getValue(
+                    }
+                    final CPUTF8 value = (CPUTF8) methodSignatureLayout.getValue(
                             result, type, cpBands.getConstantPool());
                     methodAttributes[i][j]
                             .add(new SignatureAttribute(value));
@@ -396,16 +400,16 @@ public class ClassBands extends BandSet {
         }
 
         // Parse method metadata bands
-        int backwardsCallsUsed = parseMethodMetadataBands(in, methodAttrCalls);
+        final int backwardsCallsUsed = parseMethodMetadataBands(in, methodAttrCalls);
 
         // Parse non-predefined attribute bands
         int backwardsCallIndex = backwardsCallsUsed;
-        int limit = options.hasMethodFlagsHi() ? 62 : 31;
-        AttributeLayout[] otherLayouts = new AttributeLayout[limit + 1];
-        int[] counts = new int[limit + 1];
-        List[] otherAttributes = new List[limit + 1];
+        final int limit = options.hasMethodFlagsHi() ? 62 : 31;
+        final AttributeLayout[] otherLayouts = new AttributeLayout[limit + 1];
+        final int[] counts = new int[limit + 1];
+        final List[] otherAttributes = new List[limit + 1];
         for (int i = 0; i < limit; i++) {
-            AttributeLayout layout = attrMap.getAttributeLayout(i,
+            final AttributeLayout layout = attrMap.getAttributeLayout(i,
                     AttributeLayout.CONTEXT_METHOD);
             if (layout != null && !(layout.isDefaultLayout())) {
                 otherLayouts[i] = layout;
@@ -414,13 +418,13 @@ public class ClassBands extends BandSet {
         }
         for (int i = 0; i < counts.length; i++) {
             if (counts[i] > 0) {
-                NewAttributeBands bands = attrMap
+                final NewAttributeBands bands = attrMap
                         .getAttributeBands(otherLayouts[i]);
                 otherAttributes[i] = bands.parseAttributes(in, counts[i]);
-                int numBackwardsCallables = otherLayouts[i]
+                final int numBackwardsCallables = otherLayouts[i]
                         .numBackwardsCallables();
                 if (numBackwardsCallables > 0) {
-                    int[] backwardsCalls = new int[numBackwardsCallables];
+                    final int[] backwardsCalls = new int[numBackwardsCallables];
                     System.arraycopy(methodAttrCalls, backwardsCallIndex,
                             backwardsCalls, 0, numBackwardsCallables);
                     bands.setBackwardsCalls(backwardsCalls);
@@ -432,7 +436,7 @@ public class ClassBands extends BandSet {
         // Non-predefined attributes
         for (int i = 0; i < methodAttributes.length; i++) {
             for (int j = 0; j < methodAttributes[i].length; j++) {
-                long flag = methodFlags[i][j];
+                final long flag = methodFlags[i][j];
                 int othersAddedAtStart = 0;
                 for (int k = 0; k < otherLayouts.length; k++) {
                     if (otherLayouts[k] != null
@@ -450,13 +454,13 @@ public class ClassBands extends BandSet {
         }
     }
 
-    private int getCallCount(int[][] methodAttrIndexes, long[][] flags,
-            int context) throws Pack200Exception {
+    private int getCallCount(final int[][] methodAttrIndexes, final long[][] flags,
+            final int context) throws Pack200Exception {
         int callCount = 0;
         for (int i = 0; i < methodAttrIndexes.length; i++) {
             for (int j = 0; j < methodAttrIndexes[i].length; j++) {
-                int index = methodAttrIndexes[i][j];
-                AttributeLayout layout = attrMap.getAttributeLayout(index,
+                final int index = methodAttrIndexes[i][j];
+                final AttributeLayout layout = attrMap.getAttributeLayout(index,
                         context);
                 callCount += layout.numBackwardsCallables();
             }
@@ -469,17 +473,17 @@ public class ClassBands extends BandSet {
         }
         for (int i = 0; i < 26; i++) {
             if ((layoutsUsed & 1 << i) != 0) {
-                AttributeLayout layout = attrMap.getAttributeLayout(i, context);
+                final AttributeLayout layout = attrMap.getAttributeLayout(i, context);
                 callCount += layout.numBackwardsCallables();
             }
         }
         return callCount;
     }
 
-    private void parseClassAttrBands(InputStream in) throws IOException,
+    private void parseClassAttrBands(final InputStream in) throws IOException,
             Pack200Exception {
-        String[] cpUTF8 = cpBands.getCpUTF8();
-        String[] cpClass = cpBands.getCpClass();
+        final String[] cpUTF8 = cpBands.getCpUTF8();
+        final String[] cpClass = cpBands.getCpClass();
 
         // Prepare empty attribute lists
         classAttributes = new ArrayList[classCount];
@@ -489,60 +493,60 @@ public class ClassBands extends BandSet {
 
         classFlags = parseFlags("class_flags", in, classCount, Codec.UNSIGNED5,
                 options.hasClassFlagsHi());
-        int classAttrCount = SegmentUtils.countBit16(classFlags);
-        int[] classAttrCounts = decodeBandInt("class_attr_count", in,
+        final int classAttrCount = SegmentUtils.countBit16(classFlags);
+        final int[] classAttrCounts = decodeBandInt("class_attr_count", in,
                 Codec.UNSIGNED5, classAttrCount);
-        int[][] classAttrIndexes = decodeBandInt("class_attr_indexes", in,
+        final int[][] classAttrIndexes = decodeBandInt("class_attr_indexes", in,
                 Codec.UNSIGNED5, classAttrCounts);
-        int callCount = getCallCount(classAttrIndexes,
+        final int callCount = getCallCount(classAttrIndexes,
                 new long[][] { classFlags }, AttributeLayout.CONTEXT_CLASS);
-        int[] classAttrCalls = decodeBandInt("class_attr_calls", in,
+        final int[] classAttrCalls = decodeBandInt("class_attr_calls", in,
                 Codec.UNSIGNED5, callCount);
 
-        AttributeLayout deprecatedLayout = attrMap.getAttributeLayout(
+        final AttributeLayout deprecatedLayout = attrMap.getAttributeLayout(
                 AttributeLayout.ATTRIBUTE_DEPRECATED,
                 AttributeLayout.CONTEXT_CLASS);
 
-        AttributeLayout sourceFileLayout = attrMap.getAttributeLayout(
+        final AttributeLayout sourceFileLayout = attrMap.getAttributeLayout(
                 AttributeLayout.ATTRIBUTE_SOURCE_FILE,
                 AttributeLayout.CONTEXT_CLASS);
-        int sourceFileCount = SegmentUtils.countMatches(classFlags,
+        final int sourceFileCount = SegmentUtils.countMatches(classFlags,
                 sourceFileLayout);
-        int[] classSourceFile = decodeBandInt("class_SourceFile_RUN", in,
+        final int[] classSourceFile = decodeBandInt("class_SourceFile_RUN", in,
                 Codec.UNSIGNED5, sourceFileCount);
 
-        AttributeLayout enclosingMethodLayout = attrMap.getAttributeLayout(
+        final AttributeLayout enclosingMethodLayout = attrMap.getAttributeLayout(
                 AttributeLayout.ATTRIBUTE_ENCLOSING_METHOD,
                 AttributeLayout.CONTEXT_CLASS);
-        int enclosingMethodCount = SegmentUtils.countMatches(classFlags,
+        final int enclosingMethodCount = SegmentUtils.countMatches(classFlags,
                 enclosingMethodLayout);
-        int[] enclosingMethodRC = decodeBandInt(
+        final int[] enclosingMethodRC = decodeBandInt(
                 "class_EnclosingMethod_RC", in, Codec.UNSIGNED5,
                 enclosingMethodCount);
-        int[] enclosingMethodRDN = decodeBandInt(
+        final int[] enclosingMethodRDN = decodeBandInt(
                 "class_EnclosingMethod_RDN", in, Codec.UNSIGNED5,
                 enclosingMethodCount);
 
-        AttributeLayout signatureLayout = attrMap.getAttributeLayout(
+        final AttributeLayout signatureLayout = attrMap.getAttributeLayout(
                 AttributeLayout.ATTRIBUTE_SIGNATURE,
                 AttributeLayout.CONTEXT_CLASS);
-        int signatureCount = SegmentUtils.countMatches(classFlags,
+        final int signatureCount = SegmentUtils.countMatches(classFlags,
                 signatureLayout);
-        int[] classSignature = decodeBandInt("class_Signature_RS", in,
+        final int[] classSignature = decodeBandInt("class_Signature_RS", in,
                 Codec.UNSIGNED5, signatureCount);
 
-        int backwardsCallsUsed = parseClassMetadataBands(in, classAttrCalls);
+        final int backwardsCallsUsed = parseClassMetadataBands(in, classAttrCalls);
 
-        AttributeLayout innerClassLayout = attrMap.getAttributeLayout(
+        final AttributeLayout innerClassLayout = attrMap.getAttributeLayout(
                 AttributeLayout.ATTRIBUTE_INNER_CLASSES,
                 AttributeLayout.CONTEXT_CLASS);
-        int innerClassCount = SegmentUtils.countMatches(classFlags,
+        final int innerClassCount = SegmentUtils.countMatches(classFlags,
                 innerClassLayout);
-        int[] classInnerClassesN = decodeBandInt("class_InnerClasses_N", in,
+        final int[] classInnerClassesN = decodeBandInt("class_InnerClasses_N", in,
                 Codec.UNSIGNED5, innerClassCount);
-        int[][] classInnerClassesRC = decodeBandInt("class_InnerClasses_RC",
+        final int[][] classInnerClassesRC = decodeBandInt("class_InnerClasses_RC",
                 in, Codec.UNSIGNED5, classInnerClassesN);
-        int[][] classInnerClassesF = decodeBandInt("class_InnerClasses_F", in,
+        final int[][] classInnerClassesF = decodeBandInt("class_InnerClasses_F", in,
                 Codec.UNSIGNED5, classInnerClassesN);
         int flagsCount = 0;
         for (int i = 0; i < classInnerClassesF.length; i++) {
@@ -552,34 +556,34 @@ public class ClassBands extends BandSet {
                 }
             }
         }
-        int[] classInnerClassesOuterRCN = decodeBandInt(
+        final int[] classInnerClassesOuterRCN = decodeBandInt(
                 "class_InnerClasses_outer_RCN", in, Codec.UNSIGNED5, flagsCount);
-        int[] classInnerClassesNameRUN = decodeBandInt(
+        final int[] classInnerClassesNameRUN = decodeBandInt(
                 "class_InnerClasses_name_RUN", in, Codec.UNSIGNED5, flagsCount);
 
-        AttributeLayout versionLayout = attrMap.getAttributeLayout(
+        final AttributeLayout versionLayout = attrMap.getAttributeLayout(
                 AttributeLayout.ATTRIBUTE_CLASS_FILE_VERSION,
                 AttributeLayout.CONTEXT_CLASS);
-        int versionCount = SegmentUtils.countMatches(classFlags, versionLayout);
-        int[] classFileVersionMinorH = decodeBandInt(
+        final int versionCount = SegmentUtils.countMatches(classFlags, versionLayout);
+        final int[] classFileVersionMinorH = decodeBandInt(
                 "class_file_version_minor_H", in, Codec.UNSIGNED5, versionCount);
-        int[] classFileVersionMajorH = decodeBandInt(
+        final int[] classFileVersionMajorH = decodeBandInt(
                 "class_file_version_major_H", in, Codec.UNSIGNED5, versionCount);
         if (versionCount > 0) {
             classVersionMajor = new int[classCount];
             classVersionMinor = new int[classCount];
         }
-        int defaultVersionMajor = header.getDefaultClassMajorVersion();
-        int defaultVersionMinor = header.getDefaultClassMinorVersion();
+        final int defaultVersionMajor = header.getDefaultClassMajorVersion();
+        final int defaultVersionMinor = header.getDefaultClassMinorVersion();
 
         // Parse non-predefined attribute bands
         int backwardsCallIndex = backwardsCallsUsed;
-        int limit = options.hasClassFlagsHi() ? 62 : 31;
-        AttributeLayout[] otherLayouts = new AttributeLayout[limit + 1];
-        int[] counts = new int[limit + 1];
-        List[] otherAttributes = new List[limit + 1];
+        final int limit = options.hasClassFlagsHi() ? 62 : 31;
+        final AttributeLayout[] otherLayouts = new AttributeLayout[limit + 1];
+        final int[] counts = new int[limit + 1];
+        final List[] otherAttributes = new List[limit + 1];
         for (int i = 0; i < limit; i++) {
-            AttributeLayout layout = attrMap.getAttributeLayout(i,
+            final AttributeLayout layout = attrMap.getAttributeLayout(i,
                     AttributeLayout.CONTEXT_CLASS);
             if (layout != null && !(layout.isDefaultLayout())) {
                 otherLayouts[i] = layout;
@@ -588,13 +592,13 @@ public class ClassBands extends BandSet {
         }
         for (int i = 0; i < counts.length; i++) {
             if (counts[i] > 0) {
-                NewAttributeBands bands = attrMap
+                final NewAttributeBands bands = attrMap
                         .getAttributeBands(otherLayouts[i]);
                 otherAttributes[i] = bands.parseAttributes(in, counts[i]);
-                int numBackwardsCallables = otherLayouts[i]
+                final int numBackwardsCallables = otherLayouts[i]
                         .numBackwardsCallables();
                 if (numBackwardsCallables > 0) {
-                    int[] backwardsCalls = new int[numBackwardsCallables];
+                    final int[] backwardsCalls = new int[numBackwardsCallables];
                     System.arraycopy(classAttrCalls, backwardsCallIndex,
                             backwardsCalls, 0, numBackwardsCallables);
                     bands.setBackwardsCalls(backwardsCalls);
@@ -612,12 +616,12 @@ public class ClassBands extends BandSet {
         int versionIndex = 0;
         icLocal = new IcTuple[classCount][];
         for (int i = 0; i < classCount; i++) {
-            long flag = classFlags[i];
+            final long flag = classFlags[i];
             if (deprecatedLayout.matches(classFlags[i])) {
                 classAttributes[i].add(new DeprecatedAttribute());
             }
             if (sourceFileLayout.matches(flag)) {
-                long result = classSourceFile[sourceFileIndex];
+                final long result = classSourceFile[sourceFileIndex];
                 ClassFileEntry value = sourceFileLayout.getValue(result,
                         cpBands.getConstantPool());
                 if (value == null) {
@@ -628,7 +632,7 @@ public class ClassBands extends BandSet {
                             .substring(className.lastIndexOf('.') + 1);
 
                     // Remove mangled nested class names
-                    char[] chars = className.toCharArray();
+                    final char[] chars = className.toCharArray();
                     int index = -1;
                     for (int j = 0; j < chars.length; j++) {
                         if (chars[j] <= 0x2D) {
@@ -646,7 +650,7 @@ public class ClassBands extends BandSet {
                 sourceFileIndex++;
             }
             if (enclosingMethodLayout.matches(flag)) {
-                CPClass theClass = cpBands
+                final CPClass theClass = cpBands
                         .cpClassValue(enclosingMethodRC[enclosingMethodIndex]);
                 CPNameAndType theMethod = null;
                 if(enclosingMethodRDN[enclosingMethodIndex] != 0) {
@@ -658,8 +662,8 @@ public class ClassBands extends BandSet {
                 enclosingMethodIndex++;
             }
             if (signatureLayout.matches(flag)) {
-                long result = classSignature[signatureIndex];
-                CPUTF8 value = (CPUTF8) signatureLayout.getValue(result, cpBands
+                final long result = classSignature[signatureIndex];
+                final CPUTF8 value = (CPUTF8) signatureLayout.getValue(result, cpBands
                         .getConstantPool());
                 classAttributes[i].add(new SignatureAttribute(value));
                 signatureIndex++;
@@ -669,11 +673,11 @@ public class ClassBands extends BandSet {
                 // decided at the end when creating class constant pools
                 icLocal[i] = new IcTuple[classInnerClassesN[innerClassIndex]];
                 for (int j = 0; j < icLocal[i].length; j++) {
-                    int icTupleCIndex = classInnerClassesRC[innerClassIndex][j];
+                    final int icTupleCIndex = classInnerClassesRC[innerClassIndex][j];
                     int icTupleC2Index = -1;
                     int icTupleNIndex = -1;
 
-                    String icTupleC = cpClass[icTupleCIndex];
+                    final String icTupleC = cpClass[icTupleCIndex];
                     int icTupleF = classInnerClassesF[innerClassIndex][j];
                     String icTupleC2 = null;
                     String icTupleN = null;
@@ -686,8 +690,8 @@ public class ClassBands extends BandSet {
                         innerClassC2NIndex++;
                     } else {
                         // Get from icBands
-                        IcBands icBands = segment.getIcBands();
-                        IcTuple[] icAll = icBands.getIcTuples();
+                        final IcBands icBands = segment.getIcBands();
+                        final IcTuple[] icAll = icBands.getIcTuples();
                         for (int k = 0; k < icAll.length; k++) {
                             if (icAll[k].getC().equals(icTupleC)) {
                                 icTupleF = icAll[k].getF();
@@ -698,7 +702,7 @@ public class ClassBands extends BandSet {
                         }
                     }
 
-                    IcTuple icTuple = new IcTuple(icTupleC, icTupleF,
+                    final IcTuple icTuple = new IcTuple(icTupleC, icTupleF,
                             icTupleC2, icTupleN, icTupleCIndex, icTupleC2Index, icTupleNIndex, j);
                     icLocal[i][j] = icTuple;
                 }
@@ -724,16 +728,16 @@ public class ClassBands extends BandSet {
         }
     }
 
-    private void parseCodeBands(InputStream in) throws Pack200Exception,
+    private void parseCodeBands(final InputStream in) throws Pack200Exception,
             IOException {
-        AttributeLayout layout = attrMap.getAttributeLayout(
+        final AttributeLayout layout = attrMap.getAttributeLayout(
                 AttributeLayout.ATTRIBUTE_CODE, AttributeLayout.CONTEXT_METHOD);
 
-        int codeCount = SegmentUtils.countMatches(methodFlags, layout);
-        int[] codeHeaders = decodeBandInt("code_headers", in, Codec.BYTE1,
+        final int codeCount = SegmentUtils.countMatches(methodFlags, layout);
+        final int[] codeHeaders = decodeBandInt("code_headers", in, Codec.BYTE1,
                 codeCount);
 
-        boolean allCodeHasFlags = segment.getSegmentHeader().getOptions().hasAllCodeFlags();
+        final boolean allCodeHasFlags = segment.getSegmentHeader().getOptions().hasAllCodeFlags();
         if(!allCodeHasFlags) {
             codeHasAttributes = new boolean[codeCount];
         }
@@ -746,11 +750,11 @@ public class ClassBands extends BandSet {
                 }
             }
         }
-        int[] codeMaxStackSpecials = decodeBandInt("code_max_stack", in,
+        final int[] codeMaxStackSpecials = decodeBandInt("code_max_stack", in,
                 Codec.UNSIGNED5, codeSpecialHeader);
-        int[] codeMaxNALocalsSpecials = decodeBandInt("code_max_na_locals", in,
+        final int[] codeMaxNALocalsSpecials = decodeBandInt("code_max_na_locals", in,
                 Codec.UNSIGNED5, codeSpecialHeader);
-        int[] codeHandlerCountSpecials = decodeBandInt("code_handler_count",
+        final int[] codeHandlerCountSpecials = decodeBandInt("code_handler_count",
                 in, Codec.UNSIGNED5, codeSpecialHeader);
 
         codeMaxStack = new int[codeCount];
@@ -758,10 +762,11 @@ public class ClassBands extends BandSet {
         codeHandlerCount = new int[codeCount];
         int special = 0;
         for (int i = 0; i < codeCount; i++) {
-            int header = 0xff & codeHeaders[i];
+            final int header = 0xff & codeHeaders[i];
             if (header < 0) {
                 throw new IllegalStateException("Shouldn't get here");
-            } else if (header == 0) {
+            }
+            if (header == 0) {
                 codeMaxStack[i] = codeMaxStackSpecials[special];
                 codeMaxNALocals[i] = codeMaxNALocalsSpecials[special];
                 codeHandlerCount[i] = codeHandlerCountSpecials[special];
@@ -791,7 +796,7 @@ public class ClassBands extends BandSet {
         codeHandlerClassRCN = decodeBandInt(
                 "code_handler_class_RCN", in, Codec.UNSIGNED5, codeHandlerCount);
 
-        int codeFlagsCount = allCodeHasFlags ? codeCount : codeSpecialHeader;
+        final int codeFlagsCount = allCodeHasFlags ? codeCount : codeSpecialHeader;
 
         codeAttributes = new List[codeFlagsCount];
         for (int i = 0; i < codeAttributes.length; i++) {
@@ -800,98 +805,98 @@ public class ClassBands extends BandSet {
         parseCodeAttrBands(in, codeFlagsCount);
     }
 
-    private void parseCodeAttrBands(InputStream in, int codeFlagsCount)
+    private void parseCodeAttrBands(final InputStream in, final int codeFlagsCount)
             throws IOException, Pack200Exception {
-        long[] codeFlags = parseFlags("code_flags", in, codeFlagsCount,
+        final long[] codeFlags = parseFlags("code_flags", in, codeFlagsCount,
                 Codec.UNSIGNED5, segment.getSegmentHeader().getOptions()
                         .hasCodeFlagsHi());
-        int codeAttrCount = SegmentUtils.countBit16(codeFlags);
-        int[] codeAttrCounts = decodeBandInt("code_attr_count", in,
+        final int codeAttrCount = SegmentUtils.countBit16(codeFlags);
+        final int[] codeAttrCounts = decodeBandInt("code_attr_count", in,
                 Codec.UNSIGNED5, codeAttrCount);
-        int[][] codeAttrIndexes = decodeBandInt("code_attr_indexes", in,
+        final int[][] codeAttrIndexes = decodeBandInt("code_attr_indexes", in,
                 Codec.UNSIGNED5, codeAttrCounts);
         int callCount = 0;
         for (int i = 0; i < codeAttrIndexes.length; i++) {
             for (int j = 0; j < codeAttrIndexes[i].length; j++) {
-                int index = codeAttrIndexes[i][j];
-                AttributeLayout layout = attrMap.getAttributeLayout(index,
+                final int index = codeAttrIndexes[i][j];
+                final AttributeLayout layout = attrMap.getAttributeLayout(index,
                         AttributeLayout.CONTEXT_CODE);
                 callCount += layout.numBackwardsCallables();
             }
         }
-        int[] codeAttrCalls = decodeBandInt("code_attr_calls", in,
+        final int[] codeAttrCalls = decodeBandInt("code_attr_calls", in,
                 Codec.UNSIGNED5, callCount);
 
-        AttributeLayout lineNumberTableLayout = attrMap.getAttributeLayout(
+        final AttributeLayout lineNumberTableLayout = attrMap.getAttributeLayout(
                 AttributeLayout.ATTRIBUTE_LINE_NUMBER_TABLE,
                 AttributeLayout.CONTEXT_CODE);
-        int lineNumberTableCount = SegmentUtils.countMatches(codeFlags,
+        final int lineNumberTableCount = SegmentUtils.countMatches(codeFlags,
                 lineNumberTableLayout);
-        int[] lineNumberTableN = decodeBandInt("code_LineNumberTable_N", in,
+        final int[] lineNumberTableN = decodeBandInt("code_LineNumberTable_N", in,
                 Codec.UNSIGNED5, lineNumberTableCount);
-        int[][] lineNumberTableBciP = decodeBandInt(
+        final int[][] lineNumberTableBciP = decodeBandInt(
                 "code_LineNumberTable_bci_P", in, Codec.BCI5, lineNumberTableN);
-        int[][] lineNumberTableLine = decodeBandInt(
+        final int[][] lineNumberTableLine = decodeBandInt(
                 "code_LineNumberTable_line", in, Codec.UNSIGNED5,
                 lineNumberTableN);
 
-        AttributeLayout localVariableTableLayout = attrMap.getAttributeLayout(
+        final AttributeLayout localVariableTableLayout = attrMap.getAttributeLayout(
                 AttributeLayout.ATTRIBUTE_LOCAL_VARIABLE_TABLE,
                 AttributeLayout.CONTEXT_CODE);
-        AttributeLayout localVariableTypeTableLayout = attrMap
+        final AttributeLayout localVariableTypeTableLayout = attrMap
                 .getAttributeLayout(
                         AttributeLayout.ATTRIBUTE_LOCAL_VARIABLE_TYPE_TABLE,
                         AttributeLayout.CONTEXT_CODE);
 
-        int lengthLocalVariableNBand = SegmentUtils.countMatches(codeFlags,
+        final int lengthLocalVariableNBand = SegmentUtils.countMatches(codeFlags,
                 localVariableTableLayout);
-        int[] localVariableTableN = decodeBandInt("code_LocalVariableTable_N",
+        final int[] localVariableTableN = decodeBandInt("code_LocalVariableTable_N",
                 in, Codec.UNSIGNED5, lengthLocalVariableNBand);
-        int[][] localVariableTableBciP = decodeBandInt(
+        final int[][] localVariableTableBciP = decodeBandInt(
                 "code_LocalVariableTable_bci_P", in, Codec.BCI5,
                 localVariableTableN);
-        int[][] localVariableTableSpanO = decodeBandInt(
+        final int[][] localVariableTableSpanO = decodeBandInt(
                 "code_LocalVariableTable_span_O", in, Codec.BRANCH5,
                 localVariableTableN);
-        CPUTF8[][] localVariableTableNameRU = parseCPUTF8References(
+        final CPUTF8[][] localVariableTableNameRU = parseCPUTF8References(
                 "code_LocalVariableTable_name_RU", in, Codec.UNSIGNED5,
                 localVariableTableN);
-        CPUTF8[][] localVariableTableTypeRS = parseCPSignatureReferences(
+        final CPUTF8[][] localVariableTableTypeRS = parseCPSignatureReferences(
                 "code_LocalVariableTable_type_RS", in, Codec.UNSIGNED5,
                 localVariableTableN);
-        int[][] localVariableTableSlot = decodeBandInt(
+        final int[][] localVariableTableSlot = decodeBandInt(
                 "code_LocalVariableTable_slot", in, Codec.UNSIGNED5,
                 localVariableTableN);
 
-        int lengthLocalVariableTypeTableNBand = SegmentUtils.countMatches(
+        final int lengthLocalVariableTypeTableNBand = SegmentUtils.countMatches(
                 codeFlags, localVariableTypeTableLayout);
-        int[] localVariableTypeTableN = decodeBandInt(
+        final int[] localVariableTypeTableN = decodeBandInt(
                 "code_LocalVariableTypeTable_N", in, Codec.UNSIGNED5,
                 lengthLocalVariableTypeTableNBand);
-        int[][] localVariableTypeTableBciP = decodeBandInt(
+        final int[][] localVariableTypeTableBciP = decodeBandInt(
                 "code_LocalVariableTypeTable_bci_P", in, Codec.BCI5,
                 localVariableTypeTableN);
-        int[][] localVariableTypeTableSpanO = decodeBandInt(
+        final int[][] localVariableTypeTableSpanO = decodeBandInt(
                 "code_LocalVariableTypeTable_span_O", in, Codec.BRANCH5,
                 localVariableTypeTableN);
-        CPUTF8[][] localVariableTypeTableNameRU = parseCPUTF8References(
+        final CPUTF8[][] localVariableTypeTableNameRU = parseCPUTF8References(
                 "code_LocalVariableTypeTable_name_RU", in, Codec.UNSIGNED5,
                 localVariableTypeTableN);
-        CPUTF8[][] localVariableTypeTableTypeRS = parseCPSignatureReferences(
+        final CPUTF8[][] localVariableTypeTableTypeRS = parseCPSignatureReferences(
                 "code_LocalVariableTypeTable_type_RS", in, Codec.UNSIGNED5,
                 localVariableTypeTableN);
-        int[][] localVariableTypeTableSlot = decodeBandInt(
+        final int[][] localVariableTypeTableSlot = decodeBandInt(
                 "code_LocalVariableTypeTable_slot", in, Codec.UNSIGNED5,
                 localVariableTypeTableN);
 
         // Parse non-predefined attribute bands
         int backwardsCallIndex = 0;
-        int limit = options.hasCodeFlagsHi() ? 62 : 31;
-        AttributeLayout[] otherLayouts = new AttributeLayout[limit + 1];
-        int[] counts = new int[limit + 1];
-        List[] otherAttributes = new List[limit + 1];
+        final int limit = options.hasCodeFlagsHi() ? 62 : 31;
+        final AttributeLayout[] otherLayouts = new AttributeLayout[limit + 1];
+        final int[] counts = new int[limit + 1];
+        final List[] otherAttributes = new List[limit + 1];
         for (int i = 0; i < limit; i++) {
-            AttributeLayout layout = attrMap.getAttributeLayout(i,
+            final AttributeLayout layout = attrMap.getAttributeLayout(i,
                     AttributeLayout.CONTEXT_CODE);
             if (layout != null && !(layout.isDefaultLayout())) {
                 otherLayouts[i] = layout;
@@ -900,13 +905,13 @@ public class ClassBands extends BandSet {
         }
         for (int i = 0; i < counts.length; i++) {
             if (counts[i] > 0) {
-                NewAttributeBands bands = attrMap
+                final NewAttributeBands bands = attrMap
                         .getAttributeBands(otherLayouts[i]);
                 otherAttributes[i] = bands.parseAttributes(in, counts[i]);
-                int numBackwardsCallables = otherLayouts[i]
+                final int numBackwardsCallables = otherLayouts[i]
                         .numBackwardsCallables();
                 if (numBackwardsCallables > 0) {
-                    int[] backwardsCalls = new int[numBackwardsCallables];
+                    final int[] backwardsCalls = new int[numBackwardsCallables];
                     System.arraycopy(codeAttrCalls, backwardsCallIndex,
                             backwardsCalls, 0, numBackwardsCallables);
                     bands.setBackwardsCalls(backwardsCalls);
@@ -920,7 +925,7 @@ public class ClassBands extends BandSet {
         int lvttIndex = 0;
         for (int i = 0; i < codeFlagsCount; i++) {
             if (lineNumberTableLayout.matches(codeFlags[i])) {
-                LineNumberTableAttribute lnta = new LineNumberTableAttribute(
+                final LineNumberTableAttribute lnta = new LineNumberTableAttribute(
                         lineNumberTableN[lineNumberIndex],
                         lineNumberTableBciP[lineNumberIndex],
                         lineNumberTableLine[lineNumberIndex]);
@@ -928,7 +933,7 @@ public class ClassBands extends BandSet {
                 codeAttributes[i].add(lnta);
             }
             if (localVariableTableLayout.matches(codeFlags[i])) {
-                LocalVariableTableAttribute lvta = new LocalVariableTableAttribute(
+                final LocalVariableTableAttribute lvta = new LocalVariableTableAttribute(
                         localVariableTableN[lvtIndex],
                         localVariableTableBciP[lvtIndex],
                         localVariableTableSpanO[lvtIndex],
@@ -939,7 +944,7 @@ public class ClassBands extends BandSet {
                 codeAttributes[i].add(lvta);
             }
             if (localVariableTypeTableLayout.matches(codeFlags[i])) {
-                LocalVariableTypeTableAttribute lvtta = new LocalVariableTypeTableAttribute(
+                final LocalVariableTypeTableAttribute lvtta = new LocalVariableTypeTableAttribute(
                         localVariableTypeTableN[lvttIndex],
                         localVariableTypeTableBciP[lvttIndex],
                         localVariableTypeTableSpanO[lvttIndex],
@@ -962,22 +967,22 @@ public class ClassBands extends BandSet {
 
     }
 
-    private int parseFieldMetadataBands(InputStream in, int[] fieldAttrCalls)
+    private int parseFieldMetadataBands(final InputStream in, final int[] fieldAttrCalls)
             throws Pack200Exception, IOException {
         int backwardsCallsUsed = 0;
-        String[] RxA = new String[] { "RVA", "RIA" };
+        final String[] RxA = { "RVA", "RIA" };
 
-        AttributeLayout rvaLayout = attrMap.getAttributeLayout(
+        final AttributeLayout rvaLayout = attrMap.getAttributeLayout(
                 AttributeLayout.ATTRIBUTE_RUNTIME_VISIBLE_ANNOTATIONS,
                 AttributeLayout.CONTEXT_FIELD);
-        AttributeLayout riaLayout = attrMap.getAttributeLayout(
+        final AttributeLayout riaLayout = attrMap.getAttributeLayout(
                 AttributeLayout.ATTRIBUTE_RUNTIME_INVISIBLE_ANNOTATIONS,
                 AttributeLayout.CONTEXT_FIELD);
 
-        int rvaCount = SegmentUtils.countMatches(fieldFlags, rvaLayout);
-        int riaCount = SegmentUtils.countMatches(fieldFlags, riaLayout);
-        int[] RxACount = new int[] { rvaCount, riaCount };
-        int[] backwardsCalls = new int[] { 0, 0 };
+        final int rvaCount = SegmentUtils.countMatches(fieldFlags, rvaLayout);
+        final int riaCount = SegmentUtils.countMatches(fieldFlags, riaLayout);
+        final int[] RxACount = { rvaCount, riaCount };
+        final int[] backwardsCalls = { 0, 0 };
         if (rvaCount > 0) {
             backwardsCalls[0] = fieldAttrCalls[0];
             backwardsCallsUsed++;
@@ -989,10 +994,10 @@ public class ClassBands extends BandSet {
             backwardsCalls[1] = fieldAttrCalls[0];
             backwardsCallsUsed++;
         }
-        MetadataBandGroup[] mb = parseMetadata(in, RxA, RxACount,
+        final MetadataBandGroup[] mb = parseMetadata(in, RxA, RxACount,
                 backwardsCalls, "field");
-        List rvaAttributes = mb[0].getAttributes();
-        List riaAttributes = mb[1].getAttributes();
+        final List rvaAttributes = mb[0].getAttributes();
+        final List riaAttributes = mb[1].getAttributes();
         int rvaAttributesIndex = 0;
         int riaAttributesIndex = 0;
         for (int i = 0; i < fieldFlags.length; i++) {
@@ -1008,13 +1013,13 @@ public class ClassBands extends BandSet {
         return backwardsCallsUsed;
     }
 
-    private MetadataBandGroup[] parseMetadata(InputStream in, String[] RxA,
-            int[] RxACount, int[] backwardsCallCounts, String contextName)
+    private MetadataBandGroup[] parseMetadata(final InputStream in, final String[] RxA,
+            final int[] RxACount, final int[] backwardsCallCounts, final String contextName)
             throws IOException, Pack200Exception {
-        MetadataBandGroup[] mbg = new MetadataBandGroup[RxA.length];
+        final MetadataBandGroup[] mbg = new MetadataBandGroup[RxA.length];
         for (int i = 0; i < RxA.length; i++) {
             mbg[i] = new MetadataBandGroup(RxA[i], cpBands);
-            String rxa = RxA[i];
+            final String rxa = RxA[i];
             if (rxa.indexOf('P') >= 0) {
                 mbg[i].param_NB = decodeBandInt(contextName + "_" + rxa
                         + "_param_NB", in, Codec.BYTE1, RxACount[i]);
@@ -1044,7 +1049,7 @@ public class ClassBands extends BandSet {
                     Codec.BYTE1, pairCount + backwardsCallCounts[i]);
             int ICount = 0, DCount = 0, FCount = 0, JCount = 0, cCount = 0, eCount = 0, sCount = 0, arrayCount = 0, atCount = 0;
             for (int j = 0; j < mbg[i].T.length; j++) {
-                char c = (char) mbg[i].T[j];
+                final char c = (char) mbg[i].T[j];
                 switch (c) {
                 case 'B':
                 case 'C':
@@ -1113,37 +1118,37 @@ public class ClassBands extends BandSet {
         return mbg;
     }
 
-    private int parseMethodMetadataBands(InputStream in, int[] methodAttrCalls)
+    private int parseMethodMetadataBands(final InputStream in, final int[] methodAttrCalls)
             throws Pack200Exception, IOException {
         int backwardsCallsUsed = 0;
-        String[] RxA = new String[] { "RVA", "RIA", "RVPA", "RIPA", "AD" };
-        int[] rxaCounts = new int[] { 0, 0, 0, 0, 0 };
-        
-        AttributeLayout rvaLayout = attrMap.getAttributeLayout(
+        final String[] RxA = { "RVA", "RIA", "RVPA", "RIPA", "AD" };
+        final int[] rxaCounts = { 0, 0, 0, 0, 0 };
+
+        final AttributeLayout rvaLayout = attrMap.getAttributeLayout(
                 AttributeLayout.ATTRIBUTE_RUNTIME_VISIBLE_ANNOTATIONS,
                 AttributeLayout.CONTEXT_METHOD);
-        AttributeLayout riaLayout = attrMap.getAttributeLayout(
+        final AttributeLayout riaLayout = attrMap.getAttributeLayout(
                 AttributeLayout.ATTRIBUTE_RUNTIME_INVISIBLE_ANNOTATIONS,
                 AttributeLayout.CONTEXT_METHOD);
-        AttributeLayout rvpaLayout = attrMap
+        final AttributeLayout rvpaLayout = attrMap
                 .getAttributeLayout(
                         AttributeLayout.ATTRIBUTE_RUNTIME_VISIBLE_PARAMETER_ANNOTATIONS,
                         AttributeLayout.CONTEXT_METHOD);
-        AttributeLayout ripaLayout = attrMap
+        final AttributeLayout ripaLayout = attrMap
                 .getAttributeLayout(
                         AttributeLayout.ATTRIBUTE_RUNTIME_INVISIBLE_PARAMETER_ANNOTATIONS,
                         AttributeLayout.CONTEXT_METHOD);
-        AttributeLayout adLayout = attrMap.getAttributeLayout(
+        final AttributeLayout adLayout = attrMap.getAttributeLayout(
                 AttributeLayout.ATTRIBUTE_ANNOTATION_DEFAULT,
                 AttributeLayout.CONTEXT_METHOD);
-        AttributeLayout[] rxaLayouts = new AttributeLayout[] { rvaLayout,
+        final AttributeLayout[] rxaLayouts = { rvaLayout,
                 riaLayout, rvpaLayout, ripaLayout, adLayout };
 
         for (int i = 0; i < rxaLayouts.length; i++) {
             rxaCounts[i] = SegmentUtils
                     .countMatches(methodFlags, rxaLayouts[i]);
         }
-        int[] backwardsCalls = new int[5];
+        final int[] backwardsCalls = new int[5];
         int methodAttrIndex = 0;
         for (int i = 0; i < backwardsCalls.length; i++) {
             if (rxaCounts[i] > 0) {
@@ -1154,10 +1159,10 @@ public class ClassBands extends BandSet {
                 backwardsCalls[i] = 0;
             }
         }
-        MetadataBandGroup[] mbgs = parseMetadata(in, RxA, rxaCounts,
+        final MetadataBandGroup[] mbgs = parseMetadata(in, RxA, rxaCounts,
                 backwardsCalls, "method");
-        List[] attributeLists = new List[RxA.length];
-        int[] attributeListIndexes = new int[RxA.length];
+        final List[] attributeLists = new List[RxA.length];
+        final int[] attributeListIndexes = new int[RxA.length];
         for (int i = 0; i < mbgs.length; i++) {
             attributeLists[i] = mbgs[i].getAttributes();
... 7351 lines suppressed ...

[commons-compress] 02/02: Format.

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch pack200
in repository https://gitbox.apache.org/repos/asf/commons-compress.git

commit e251aa55ed78d4a1040eb7c3a9f8ac4590c1a91f
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sun Jun 13 08:22:37 2021 -0400

    Format.
---
 .../harmony/archive/internal/nls/Messages.java     | 100 +--
 .../commons/compress/harmony/pack200/Archive.java  |  43 +-
 .../harmony/pack200/AttributeDefinitionBands.java  |  96 +--
 .../compress/harmony/pack200/BHSDCodec.java        | 152 ++--
 .../commons/compress/harmony/pack200/BandSet.java  | 264 ++++---
 .../commons/compress/harmony/pack200/BcBands.java  | 178 ++---
 .../commons/compress/harmony/pack200/CPClass.java  |   4 +-
 .../compress/harmony/pack200/CPConstant.java       |   6 +-
 .../commons/compress/harmony/pack200/CPDouble.java |   2 +-
 .../commons/compress/harmony/pack200/CPFloat.java  |   2 +-
 .../commons/compress/harmony/pack200/CPInt.java    |   4 +-
 .../commons/compress/harmony/pack200/CPLong.java   |   4 +-
 .../compress/harmony/pack200/CPNameAndType.java    |   2 +-
 .../compress/harmony/pack200/CPSignature.java      |  15 +-
 .../commons/compress/harmony/pack200/CPString.java |   2 +-
 .../commons/compress/harmony/pack200/CPUTF8.java   |   2 +-
 .../harmony/pack200/CanonicalCodecFamilies.java    |  59 +-
 .../compress/harmony/pack200/ClassBands.java       | 792 +++++++++------------
 .../commons/compress/harmony/pack200/Codec.java    | 153 ++--
 .../compress/harmony/pack200/CodecEncoding.java    | 203 ++----
 .../commons/compress/harmony/pack200/CpBands.java  | 173 ++---
 .../compress/harmony/pack200/FileBands.java        |  51 +-
 .../commons/compress/harmony/pack200/IcBands.java  |  60 +-
 .../commons/compress/harmony/pack200/IntList.java  |  32 +-
 .../harmony/pack200/MetadataBandGroup.java         | 257 +++----
 .../compress/harmony/pack200/NewAttribute.java     |  41 +-
 .../harmony/pack200/NewAttributeBands.java         | 168 ++---
 .../compress/harmony/pack200/Pack200Adapter.java   |  46 +-
 .../harmony/pack200/Pack200ClassReader.java        |  12 +-
 .../compress/harmony/pack200/Pack200Exception.java |   3 +-
 .../harmony/pack200/Pack200PackerAdapter.java      |  41 +-
 .../compress/harmony/pack200/PackingOptions.java   |  86 +--
 .../compress/harmony/pack200/PackingUtils.java     |  48 +-
 .../compress/harmony/pack200/PopulationCodec.java  |  35 +-
 .../commons/compress/harmony/pack200/RunCodec.java |  21 +-
 .../commons/compress/harmony/pack200/Segment.java  | 192 +++--
 .../compress/harmony/pack200/SegmentHeader.java    |  26 +-
 .../compress/harmony/unpack200/Archive.java        |  48 +-
 .../harmony/unpack200/AttrDefinitionBands.java     |  22 +-
 .../harmony/unpack200/AttributeLayout.java         |  31 +-
 .../harmony/unpack200/AttributeLayoutMap.java      | 275 +++----
 .../compress/harmony/unpack200/BandSet.java        | 258 +++----
 .../compress/harmony/unpack200/BcBands.java        | 176 ++---
 .../compress/harmony/unpack200/ClassBands.java     | 742 ++++++++-----------
 .../compress/harmony/unpack200/CpBands.java        | 275 +++----
 .../compress/harmony/unpack200/FileBands.java      |  24 +-
 .../compress/harmony/unpack200/IcBands.java        | 171 +++--
 .../compress/harmony/unpack200/IcTuple.java        |  43 +-
 .../harmony/unpack200/MetadataBandGroup.java       |  38 +-
 .../harmony/unpack200/NewAttributeBands.java       | 205 ++----
 .../harmony/unpack200/Pack200UnpackerAdapter.java  |  67 +-
 .../compress/harmony/unpack200/Segment.java        | 260 +++----
 .../harmony/unpack200/SegmentConstantPool.java     | 188 ++---
 .../unpack200/SegmentConstantPoolArrayCache.java   |  88 +--
 .../compress/harmony/unpack200/SegmentHeader.java  | 186 ++---
 .../compress/harmony/unpack200/SegmentOptions.java |  19 +-
 .../compress/harmony/unpack200/SegmentUtils.java   |  13 +-
 .../bytecode/AnnotationDefaultAttribute.java       |   1 +
 .../unpack200/bytecode/AnnotationsAttribute.java   |  12 +-
 .../harmony/unpack200/bytecode/Attribute.java      |  20 +-
 .../unpack200/bytecode/BCIRenumberedAttribute.java |  20 +-
 .../harmony/unpack200/bytecode/ByteCode.java       | 168 ++---
 .../harmony/unpack200/bytecode/CPClass.java        |   8 +-
 .../harmony/unpack200/bytecode/CPConstant.java     |   9 +-
 .../harmony/unpack200/bytecode/CPFieldRef.java     |   8 +-
 .../unpack200/bytecode/CPInterfaceMethodRef.java   |   5 +-
 .../harmony/unpack200/bytecode/CPMember.java       |   8 +-
 .../harmony/unpack200/bytecode/CPMethodRef.java    |   3 +-
 .../harmony/unpack200/bytecode/CPNameAndType.java  |  17 +-
 .../compress/harmony/unpack200/bytecode/CPRef.java |   9 +-
 .../harmony/unpack200/bytecode/CPString.java       |   2 +-
 .../harmony/unpack200/bytecode/CPUTF8.java         |   3 +-
 .../unpack200/bytecode/ClassConstantPool.java      |  42 +-
 .../harmony/unpack200/bytecode/ClassFile.java      |   3 +-
 .../harmony/unpack200/bytecode/CodeAttribute.java  |  42 +-
 .../unpack200/bytecode/ConstantPoolEntry.java      |   6 +-
 .../unpack200/bytecode/ConstantValueAttribute.java |   2 +-
 .../bytecode/EnclosingMethodAttribute.java         |   4 +-
 .../unpack200/bytecode/ExceptionTableEntry.java    |  32 +-
 .../unpack200/bytecode/ExceptionsAttribute.java    |   3 +-
 .../unpack200/bytecode/InnerClassesAttribute.java  |  30 +-
 .../bytecode/LineNumberTableAttribute.java         |  11 +-
 .../bytecode/LocalVariableTableAttribute.java      |  18 +-
 .../bytecode/LocalVariableTypeTableAttribute.java  |  18 +-
 .../harmony/unpack200/bytecode/NewAttribute.java   |  44 +-
 .../harmony/unpack200/bytecode/OperandManager.java |  17 +-
 ...timeVisibleorInvisibleAnnotationsAttribute.java |  13 +-
 ...leorInvisibleParameterAnnotationsAttribute.java |  11 +-
 .../unpack200/bytecode/SignatureAttribute.java     |   2 +-
 .../unpack200/bytecode/SourceFileAttribute.java    |   2 +-
 .../unpack200/bytecode/forms/ByteCodeForm.java     | 316 +++-----
 .../harmony/unpack200/bytecode/forms/ByteForm.java |  12 +-
 .../unpack200/bytecode/forms/ClassRefForm.java     |  15 +-
 .../bytecode/forms/ClassSpecificReferenceForm.java |  20 +-
 .../unpack200/bytecode/forms/DoubleForm.java       |   4 +-
 .../unpack200/bytecode/forms/FieldRefForm.java     |   3 +-
 .../unpack200/bytecode/forms/FloatRefForm.java     |   6 +-
 .../unpack200/bytecode/forms/IMethodRefForm.java   |  19 +-
 .../harmony/unpack200/bytecode/forms/IincForm.java |  17 +-
 .../bytecode/forms/InitMethodReferenceForm.java    |  20 +-
 .../unpack200/bytecode/forms/IntRefForm.java       |   3 +-
 .../unpack200/bytecode/forms/LabelForm.java        |  37 +-
 .../unpack200/bytecode/forms/LocalForm.java        |  19 +-
 .../harmony/unpack200/bytecode/forms/LongForm.java |   3 +-
 .../unpack200/bytecode/forms/LookupSwitchForm.java |  14 +-
 .../unpack200/bytecode/forms/MethodRefForm.java    |   7 +-
 .../bytecode/forms/MultiANewArrayForm.java         |  16 +-
 .../bytecode/forms/NarrowClassRefForm.java         |  13 +-
 .../unpack200/bytecode/forms/NewClassRefForm.java  |  26 +-
 .../bytecode/forms/NewInitMethodRefForm.java       |  17 +-
 .../unpack200/bytecode/forms/NoArgumentForm.java   |  17 +-
 .../unpack200/bytecode/forms/ReferenceForm.java    |  29 +-
 .../unpack200/bytecode/forms/ShortForm.java        |  12 +-
 .../bytecode/forms/SingleByteReferenceForm.java    |  12 +-
 .../unpack200/bytecode/forms/StringRefForm.java    |  18 +-
 .../bytecode/forms/SuperFieldRefForm.java          |   5 +-
 .../bytecode/forms/SuperInitMethodRefForm.java     |   5 +-
 .../bytecode/forms/SuperMethodRefForm.java         |   7 +-
 .../unpack200/bytecode/forms/SwitchForm.java       |  19 +-
 .../unpack200/bytecode/forms/TableSwitchForm.java  |  16 +-
 .../unpack200/bytecode/forms/ThisFieldRefForm.java |   7 +-
 .../bytecode/forms/ThisInitMethodRefForm.java      |   3 +-
 .../bytecode/forms/ThisMethodRefForm.java          |   5 +-
 .../bytecode/forms/VariableInstructionForm.java    |  79 +-
 .../harmony/unpack200/bytecode/forms/WideForm.java |  65 +-
 125 files changed, 3190 insertions(+), 4793 deletions(-)

diff --git a/src/main/java/org/apache/commons/compress/harmony/archive/internal/nls/Messages.java b/src/main/java/org/apache/commons/compress/harmony/archive/internal/nls/Messages.java
index 6d83f7b..bee8b77 100644
--- a/src/main/java/org/apache/commons/compress/harmony/archive/internal/nls/Messages.java
+++ b/src/main/java/org/apache/commons/compress/harmony/archive/internal/nls/Messages.java
@@ -32,16 +32,13 @@ import java.util.ResourceBundle;
 //import org.apache.commons.compress.harmony.kernel.vm.VM;
 
 /**
- * This class retrieves strings from a resource bundle and returns them,
- * formatting them with MessageFormat when required.
+ * This class retrieves strings from a resource bundle and returns them, formatting them with MessageFormat when
+ * required.
  * <p>
- * It is used by the system classes to provide national language support, by
- * looking up messages in the <code>
+ * It is used by the system classes to provide national language support, by looking up messages in the <code>
  *    org.apache.commons.compress.harmony.archive.internal.nls.messages
- * </code>
- * resource bundle. Note that if this file is not available, or an invalid key
- * is looked up, or resource bundle support is not available, the key itself
- * will be returned as the associated message. This means that the <em>KEY</em>
+ * </code> resource bundle. Note that if this file is not available, or an invalid key is looked up, or resource bundle
+ * support is not available, the key itself will be returned as the associated message. This means that the <em>KEY</em>
  * should a reasonable human-readable (english) string.
  *
  */
@@ -53,8 +50,7 @@ public class Messages {
     /**
      * Retrieves a message which has no arguments.
      *
-     * @param msg
-     *            String the key to look up.
+     * @param msg String the key to look up.
      * @return String the message for that key in the system message bundle.
      */
     static public String getString(final String msg) {
@@ -71,64 +67,53 @@ public class Messages {
     /**
      * Retrieves a message which takes 1 argument.
      *
-     * @param msg
-     *            String the key to look up.
-     * @param arg
-     *            Object the object to insert in the formatted output.
+     * @param msg String the key to look up.
+     * @param arg Object the object to insert in the formatted output.
      * @return String the message for that key in the system message bundle.
      */
     static public String getString(final String msg, final Object arg) {
-        return getString(msg, new Object[] { arg });
+        return getString(msg, new Object[] {arg});
     }
 
     /**
      * Retrieves a message which takes 1 integer argument.
      *
-     * @param msg
-     *            String the key to look up.
-     * @param arg
-     *            int the integer to insert in the formatted output.
+     * @param msg String the key to look up.
+     * @param arg int the integer to insert in the formatted output.
      * @return String the message for that key in the system message bundle.
      */
     static public String getString(final String msg, final int arg) {
-        return getString(msg, new Object[] { Integer.toString(arg) });
+        return getString(msg, new Object[] {Integer.toString(arg)});
     }
 
     /**
      * Retrieves a message which takes 1 character argument.
      *
-     * @param msg
-     *            String the key to look up.
-     * @param arg
-     *            char the character to insert in the formatted output.
+     * @param msg String the key to look up.
+     * @param arg char the character to insert in the formatted output.
      * @return String the message for that key in the system message bundle.
      */
     static public String getString(final String msg, final char arg) {
-        return getString(msg, new Object[] { String.valueOf(arg) });
+        return getString(msg, new Object[] {String.valueOf(arg)});
     }
 
     /**
      * Retrieves a message which takes 2 arguments.
      *
-     * @param msg
-     *            String the key to look up.
-     * @param arg1
-     *            Object an object to insert in the formatted output.
-     * @param arg2
-     *            Object another object to insert in the formatted output.
+     * @param msg String the key to look up.
+     * @param arg1 Object an object to insert in the formatted output.
+     * @param arg2 Object another object to insert in the formatted output.
      * @return String the message for that key in the system message bundle.
      */
     static public String getString(final String msg, final Object arg1, final Object arg2) {
-        return getString(msg, new Object[] { arg1, arg2 });
+        return getString(msg, new Object[] {arg1, arg2});
     }
 
     /**
      * Retrieves a message which takes several arguments.
      *
-     * @param msg
-     *            String the key to look up.
-     * @param args
-     *            Object[] the objects to insert in the formatted output.
+     * @param msg String the key to look up.
+     * @param args Object[] the objects to insert in the formatted output.
      * @return String the message for that key in the system message bundle.
      */
     static public String getString(final String msg, final Object[] args) {
@@ -146,24 +131,19 @@ public class Messages {
     }
 
     /**
-     * Generates a formatted text string given a source string containing
-     * "argument markers" of the form "{argNum}" where each argNum must be in
-     * the range 0..9. The result is generated by inserting the toString of each
-     * argument into the position indicated in the string.
+     * Generates a formatted text string given a source string containing "argument markers" of the form "{argNum}"
+     * where each argNum must be in the range 0..9. The result is generated by inserting the toString of each argument
+     * into the position indicated in the string.
      * <p>
-     * To insert the "{" character into the output, use a single backslash
-     * character to escape it (i.e. "\{"). The "}" character does not need to be
-     * escaped.
+     * To insert the "{" character into the output, use a single backslash character to escape it (i.e. "\{"). The "}"
+     * character does not need to be escaped.
      *
-     * @param format
-     *            String the format to use when printing.
-     * @param args
-     *            Object[] the arguments to use.
+     * @param format String the format to use when printing.
+     * @param args Object[] the arguments to use.
      * @return String the formatted message.
      */
     public static String format(final String format, final Object[] args) {
-        final StringBuilder answer = new StringBuilder(format.length()
-                + (args.length * 20));
+        final StringBuilder answer = new StringBuilder(format.length() + (args.length * 20));
         final String[] argStrings = new String[args.length];
         for (int i = 0; i < args.length; ++i) {
             if (args[i] == null) {
@@ -173,8 +153,7 @@ public class Messages {
             }
         }
         int lastI = 0;
-        for (int i = format.indexOf('{', 0); i >= 0; i = format.indexOf('{',
-                lastI)) {
+        for (int i = format.indexOf('{', 0); i >= 0; i = format.indexOf('{', lastI)) {
             if (i != 0 && format.charAt(i - 1) == '\\') {
                 // It's escaped, just print and loop.
                 if (i != 1) {
@@ -188,8 +167,7 @@ public class Messages {
                 answer.append(format.substring(lastI));
                 lastI = format.length();
             } else {
-                final int argnum = (byte) Character.digit(format.charAt(i + 1),
-                        10);
+                final int argnum = (byte) Character.digit(format.charAt(i + 1), 10);
                 if (argnum < 0 || format.charAt(i + 2) != '}') {
                     // Bad format, just print and loop.
                     answer.append(format.substring(lastI, i + 1));
@@ -215,20 +193,16 @@ public class Messages {
     /**
      * Changes the locale of the messages.
      *
-     * @param locale
-     *            Locale the locale to change to.
+     * @param locale Locale the locale to change to.
      * @param resource resource name.
      * @return The ResourceBundle.
      */
-    static public ResourceBundle setLocale(final Locale locale,
-            final String resource) {
+    static public ResourceBundle setLocale(final Locale locale, final String resource) {
         try {
             // VM.bootCallerClassLoader() returns null
-            final ClassLoader loader = null;//VM.bootCallerClassLoader();
-            return (ResourceBundle) AccessController
-                    .doPrivileged((PrivilegedAction<Object>) () -> ResourceBundle.getBundle(resource, locale,
-                            loader != null ? loader : ClassLoader
-                                    .getSystemClassLoader()));
+            final ClassLoader loader = null;// VM.bootCallerClassLoader();
+            return (ResourceBundle) AccessController.doPrivileged((PrivilegedAction<Object>) () -> ResourceBundle
+                .getBundle(resource, locale, loader != null ? loader : ClassLoader.getSystemClassLoader()));
         } catch (final MissingResourceException e) {
             // ignore
         }
@@ -239,7 +213,7 @@ public class Messages {
         // Attempt to load the messages.
         try {
             bundle = setLocale(Locale.getDefault(),
-                    "org.apache.commons.compress.harmony.archive.internal.nls.messages"); //$NON-NLS-1$
+                "org.apache.commons.compress.harmony.archive.internal.nls.messages"); //$NON-NLS-1$
         } catch (final Throwable e) {
             e.printStackTrace();
         }
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/Archive.java b/src/main/java/org/apache/commons/compress/harmony/pack200/Archive.java
index ec6dc3e..fca897c 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/Archive.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/Archive.java
@@ -29,9 +29,8 @@ import java.util.zip.GZIPOutputStream;
 import java.util.zip.ZipEntry;
 
 /**
- * Archive is the main entry point to pack200 and represents a packed archive.
- * An archive is constructed with either a JarInputStream and an output stream
- * or a JarFile as input and an OutputStream. Options can be set, then
+ * Archive is the main entry point to pack200 and represents a packed archive. An archive is constructed with either a
+ * JarInputStream and an output stream or a JarFile as input and an OutputStream. Options can be set, then
  * <code>pack()</code> is called, to pack the Jar file into a pack200 archive.
  */
 public class Archive {
@@ -50,10 +49,10 @@ public class Archive {
      * @param options - packing options (if null then defaults are used)
      * @throws IOException If an I/O error occurs.
      */
-    public Archive(final JarInputStream inputStream, OutputStream outputStream,
-            PackingOptions options) throws IOException {
+    public Archive(final JarInputStream inputStream, OutputStream outputStream, PackingOptions options)
+        throws IOException {
         jarInputStream = inputStream;
-        if(options == null) {
+        if (options == null) {
             // use all defaults
             options = new PackingOptions();
         }
@@ -73,9 +72,8 @@ public class Archive {
      * @param options - packing options (if null then defaults are used)
      * @throws IOException If an I/O error occurs.
      */
-    public Archive(final JarFile jarFile, OutputStream outputStream,
-            PackingOptions options) throws IOException {
-        if(options == null) { // use all defaults
+    public Archive(final JarFile jarFile, OutputStream outputStream, PackingOptions options) throws IOException {
+        if (options == null) { // use all defaults
             options = new PackingOptions();
         }
         this.options = options;
@@ -90,6 +88,7 @@ public class Archive {
 
     /**
      * Pack the archive
+     * 
      * @throws Pack200Exception TODO
      * @throws IOException If an I/O error occurs.
      */
@@ -114,11 +113,9 @@ public class Archive {
         PackingUtils.log("Start to perform a normal packing");
         List packingFileList;
         if (jarInputStream != null) {
-            packingFileList = PackingUtils.getPackingFileListFromJar(
-                    jarInputStream, options.isKeepFileOrder());
+            packingFileList = PackingUtils.getPackingFileListFromJar(jarInputStream, options.isKeepFileOrder());
         } else {
-            packingFileList = PackingUtils.getPackingFileListFromJar(jarFile,
-                    options.isKeepFileOrder());
+            packingFileList = PackingUtils.getPackingFileListFromJar(jarFile, options.isKeepFileOrder());
         }
 
         final List segmentUnitList = splitIntoSegments(packingFileList);
@@ -134,15 +131,13 @@ public class Archive {
             packedByteAmount += segmentUnit.getPackedByteAmount();
         }
 
-        PackingUtils.log("Total: Packed " + previousByteAmount
-                + " input bytes of " + packingFileList.size() + " files into "
-                + packedByteAmount + " bytes in " + segmentSize + " segments");
+        PackingUtils.log("Total: Packed " + previousByteAmount + " input bytes of " + packingFileList.size()
+            + " files into " + packedByteAmount + " bytes in " + segmentSize + " segments");
 
         outputStream.close();
     }
 
-    private List splitIntoSegments(final List packingFileList) throws IOException,
-            Pack200Exception {
+    private List splitIntoSegments(final List packingFileList) throws IOException, Pack200Exception {
         final List segmentUnitList = new ArrayList();
         List classes = new ArrayList();
         List files = new ArrayList();
@@ -177,16 +172,15 @@ public class Archive {
         return segmentUnitList;
     }
 
-    private boolean addJarEntry(final PackingFile packingFile, final List javaClasses,
-            final List files) throws IOException, Pack200Exception {
+    private boolean addJarEntry(final PackingFile packingFile, final List javaClasses, final List files)
+        throws IOException, Pack200Exception {
         final long segmentLimit = options.getSegmentLimit();
         if (segmentLimit != -1 && segmentLimit != 0) {
             // -1 is a special case where only one segment is created and
             // 0 is a special case where one segment is created for each file
             // except for files in "META-INF"
             final long packedSize = estimateSize(packingFile);
-            if (packedSize + currentSegmentSize > segmentLimit
-                    && currentSegmentSize > 0) {
+            if (packedSize + currentSegmentSize > segmentLimit && currentSegmentSize > 0) {
                 // don't add this JarEntry to the current segment
                 return false;
             }
@@ -196,8 +190,7 @@ public class Archive {
 
         final String name = packingFile.getName();
         if (name.endsWith(".class") && !options.isPassFile(name)) {
-            final Pack200ClassReader classParser = new Pack200ClassReader(
-                    packingFile.contents);
+            final Pack200ClassReader classParser = new Pack200ClassReader(packingFile.contents);
             classParser.setFileName(name);
             javaClasses.add(classParser);
             packingFile.contents = new byte[0];
@@ -321,7 +314,7 @@ public class Archive {
             return deflateHint;
         }
 
-        public boolean isDirectory(){
+        public boolean isDirectory() {
             return isDirectory;
         }
 
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/AttributeDefinitionBands.java b/src/main/java/org/apache/commons/compress/harmony/pack200/AttributeDefinitionBands.java
index 2ea13ef..b2885b0 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/AttributeDefinitionBands.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/AttributeDefinitionBands.java
@@ -27,8 +27,7 @@ import java.util.Map;
 import org.objectweb.asm.Attribute;
 
 /**
- * Attribute Definition bands define how any unknown attributes should be read
- * by the decompressor.
+ * Attribute Definition bands define how any unknown attributes should be read by the decompressor.
  */
 public class AttributeDefinitionBands extends BandSet {
 
@@ -47,8 +46,7 @@ public class AttributeDefinitionBands extends BandSet {
     private final CpBands cpBands;
     private final Segment segment;
 
-    public AttributeDefinitionBands(final Segment segment, final int effort,
-            final Attribute[] attributePrototypes) {
+    public AttributeDefinitionBands(final Segment segment, final int effort, final Attribute[] attributePrototypes) {
         super(effort, segment.getSegmentHeader());
         this.cpBands = segment.getCpBands();
         this.segment = segment;
@@ -59,7 +57,9 @@ public class AttributeDefinitionBands extends BandSet {
 
         for (int i = 0; i < attributePrototypes.length; i++) {
             final NewAttribute newAttribute = (NewAttribute) attributePrototypes[i];
-            if(!(newAttribute instanceof NewAttribute.ErrorAttribute) && !(newAttribute instanceof NewAttribute.PassAttribute) && !(newAttribute instanceof NewAttribute.StripAttribute)) {
+            if (!(newAttribute instanceof NewAttribute.ErrorAttribute)
+                && !(newAttribute instanceof NewAttribute.PassAttribute)
+                && !(newAttribute instanceof NewAttribute.StripAttribute)) {
                 if (newAttribute.isContextClass()) {
                     classLayouts.put(newAttribute.type, newAttribute.getLayout());
                 }
@@ -86,27 +86,22 @@ public class AttributeDefinitionBands extends BandSet {
         if (codeLayouts.size() > 15) {
             segmentHeader.setHave_code_flags_hi(true);
         }
-        int[] availableClassIndices = { 25, 26, 27, 28, 29, 30, 31 };
+        int[] availableClassIndices = {25, 26, 27, 28, 29, 30, 31};
         if (classLayouts.size() > 7) {
             availableClassIndices = addHighIndices(availableClassIndices);
         }
-        addAttributeDefinitions(classLayouts, availableClassIndices,
-                CONTEXT_CLASS);
-        int[] availableMethodIndices = { 26, 27, 28, 29, 30, 31 };
+        addAttributeDefinitions(classLayouts, availableClassIndices, CONTEXT_CLASS);
+        int[] availableMethodIndices = {26, 27, 28, 29, 30, 31};
         if (methodAttributeLayouts.size() > 6) {
             availableMethodIndices = addHighIndices(availableMethodIndices);
         }
-        addAttributeDefinitions(methodLayouts, availableMethodIndices,
-                CONTEXT_METHOD);
-        int[] availableFieldIndices = { 18, 23, 24, 25, 26, 27, 28,
-                29, 30, 31 };
+        addAttributeDefinitions(methodLayouts, availableMethodIndices, CONTEXT_METHOD);
+        int[] availableFieldIndices = {18, 23, 24, 25, 26, 27, 28, 29, 30, 31};
         if (fieldAttributeLayouts.size() > 10) {
             availableFieldIndices = addHighIndices(availableFieldIndices);
         }
-        addAttributeDefinitions(fieldLayouts, availableFieldIndices,
-                CONTEXT_FIELD);
-        int[] availableCodeIndices = { 17, 18, 19, 20, 21, 22, 23,
-                24, 25, 26, 27, 28, 29, 30, 31 };
+        addAttributeDefinitions(fieldLayouts, availableFieldIndices, CONTEXT_FIELD);
+        int[] availableCodeIndices = {17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31};
         if (codeAttributeLayouts.size() > 15) {
             availableCodeIndices = addHighIndices(availableCodeIndices);
         }
@@ -114,9 +109,8 @@ public class AttributeDefinitionBands extends BandSet {
     }
 
     /**
-     * All input classes for the segment have now been read in, so this method
-     * is called so that this class can calculate/complete anything it could not
-     * do while classes were being read.
+     * All input classes for the segment have now been read in, so this method is called so that this class can
+     * calculate/complete anything it could not do while classes were being read.
      */
     public void finaliseBands() {
         addSyntheticDefinitions();
@@ -130,57 +124,43 @@ public class AttributeDefinitionBands extends BandSet {
         final int[] attributeDefinitionName = new int[attributeDefinitions.size()];
         final int[] attributeDefinitionLayout = new int[attributeDefinitions.size()];
         for (int i = 0; i < attributeDefinitionLayout.length; i++) {
-            final AttributeDefinition def = (AttributeDefinition) attributeDefinitions
-                    .get(i);
-            attributeDefinitionHeader[i] = def.contextType
-                    | (def.index + 1 << 2);
+            final AttributeDefinition def = (AttributeDefinition) attributeDefinitions.get(i);
+            attributeDefinitionHeader[i] = def.contextType | (def.index + 1 << 2);
             attributeDefinitionName[i] = def.name.getIndex();
             attributeDefinitionLayout[i] = def.layout.getIndex();
         }
 
-        byte[] encodedBand = encodeBandInt("attributeDefinitionHeader",
-                attributeDefinitionHeader, Codec.BYTE1);
+        byte[] encodedBand = encodeBandInt("attributeDefinitionHeader", attributeDefinitionHeader, Codec.BYTE1);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from attributeDefinitionHeader["
-                + attributeDefinitionHeader.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from attributeDefinitionHeader["
+            + attributeDefinitionHeader.length + "]");
 
-        encodedBand = encodeBandInt("attributeDefinitionName",
-                attributeDefinitionName, Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("attributeDefinitionName", attributeDefinitionName, Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from attributeDefinitionName["
-                + attributeDefinitionName.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from attributeDefinitionName["
+            + attributeDefinitionName.length + "]");
 
-        encodedBand = encodeBandInt("attributeDefinitionLayout",
-                attributeDefinitionLayout, Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("attributeDefinitionLayout", attributeDefinitionLayout, Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from attributeDefinitionLayout["
-                + attributeDefinitionLayout.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from attributeDefinitionLayout["
+            + attributeDefinitionLayout.length + "]");
     }
 
     private void addSyntheticDefinitions() {
-        final boolean anySytheticClasses = segment.getClassBands()
-                .isAnySyntheticClasses();
-        final boolean anySyntheticMethods = segment.getClassBands()
-                .isAnySyntheticMethods();
-        final boolean anySyntheticFields = segment.getClassBands()
-                .isAnySyntheticFields();
+        final boolean anySytheticClasses = segment.getClassBands().isAnySyntheticClasses();
+        final boolean anySyntheticMethods = segment.getClassBands().isAnySyntheticMethods();
+        final boolean anySyntheticFields = segment.getClassBands().isAnySyntheticFields();
         if (anySytheticClasses || anySyntheticMethods || anySyntheticFields) {
             final CPUTF8 syntheticUTF = cpBands.getCPUtf8("Synthetic");
             final CPUTF8 emptyUTF = cpBands.getCPUtf8("");
             if (anySytheticClasses) {
-                attributeDefinitions.add(new AttributeDefinition(12,
-                        CONTEXT_CLASS, syntheticUTF, emptyUTF));
+                attributeDefinitions.add(new AttributeDefinition(12, CONTEXT_CLASS, syntheticUTF, emptyUTF));
             }
             if (anySyntheticMethods) {
-                attributeDefinitions.add(new AttributeDefinition(12,
-                        CONTEXT_METHOD, syntheticUTF, emptyUTF));
+                attributeDefinitions.add(new AttributeDefinition(12, CONTEXT_METHOD, syntheticUTF, emptyUTF));
             }
             if (anySyntheticFields) {
-                attributeDefinitions.add(new AttributeDefinition(12,
-                        CONTEXT_FIELD, syntheticUTF, emptyUTF));
+                attributeDefinitions.add(new AttributeDefinition(12, CONTEXT_FIELD, syntheticUTF, emptyUTF));
             }
         }
     }
@@ -198,17 +178,14 @@ public class AttributeDefinitionBands extends BandSet {
         return temp;
     }
 
-    private void addAttributeDefinitions(final Map layouts, final int[] availableIndices,
-            final int contextType) {
+    private void addAttributeDefinitions(final Map layouts, final int[] availableIndices, final int contextType) {
         final int i = 0;
-        for (final Iterator iterator = layouts.keySet().iterator(); iterator
-                .hasNext();) {
+        for (final Iterator iterator = layouts.keySet().iterator(); iterator.hasNext();) {
             final String name = (String) iterator.next();
             final String layout = (String) layouts.get(name);
             final int index = availableIndices[i];
-            final AttributeDefinition definition = new AttributeDefinition(index,
-                    contextType, cpBands.getCPUtf8(name), cpBands
-                            .getCPUtf8(layout));
+            final AttributeDefinition definition = new AttributeDefinition(index, contextType, cpBands.getCPUtf8(name),
+                cpBands.getCPUtf8(layout));
             attributeDefinitions.add(definition);
             switch (contextType) {
             case CONTEXT_CLASS:
@@ -249,8 +226,7 @@ public class AttributeDefinitionBands extends BandSet {
         public CPUTF8 name;
         public CPUTF8 layout;
 
-        public AttributeDefinition(final int index, final int contextType, final CPUTF8 name,
-                final CPUTF8 layout) {
+        public AttributeDefinition(final int index, final int contextType, final CPUTF8 name, final CPUTF8 layout) {
             this.index = index;
             this.contextType = contextType;
             this.name = name;
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/BHSDCodec.java b/src/main/java/org/apache/commons/compress/harmony/pack200/BHSDCodec.java
index 8746e6a..32f59ee 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/BHSDCodec.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/BHSDCodec.java
@@ -22,61 +22,45 @@ import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.List;
 
-
 /**
- * A BHSD codec is a means of encoding integer values as a sequence of bytes or
- * vice versa using a specified "BHSD" encoding mechanism. It uses a
- * variable-length encoding and a modified sign representation such that small
- * numbers are represented as a single byte, whilst larger numbers take more
- * bytes to encode. The number may be signed or unsigned; if it is unsigned, it
- * can be weighted towards positive numbers or equally distributed using a one's
- * complement. The Codec also supports delta coding, where a sequence of numbers
- * is represented as a series of first-order differences. So a delta encoding of
- * the integers [1..10] would be represented as a sequence of 10x1s. This allows
- * the absolute value of a coded integer to fall outside of the 'small number'
- * range, whilst still being encoded as a single byte.
+ * A BHSD codec is a means of encoding integer values as a sequence of bytes or vice versa using a specified "BHSD"
+ * encoding mechanism. It uses a variable-length encoding and a modified sign representation such that small numbers are
+ * represented as a single byte, whilst larger numbers take more bytes to encode. The number may be signed or unsigned;
+ * if it is unsigned, it can be weighted towards positive numbers or equally distributed using a one's complement. The
+ * Codec also supports delta coding, where a sequence of numbers is represented as a series of first-order differences.
+ * So a delta encoding of the integers [1..10] would be represented as a sequence of 10x1s. This allows the absolute
+ * value of a coded integer to fall outside of the 'small number' range, whilst still being encoded as a single byte.
  *
  * A BHSD codec is configured with four parameters:
  * <dl>
  * <dt>B</dt>
- * <dd>The maximum number of bytes that each value is encoded as. B must be a
- * value between [1..5]. For a pass-through coding (where each byte is encoded
- * as itself, aka {@link #BYTE1}, B is 1 (each byte takes a maximum of 1 byte).</dd>
+ * <dd>The maximum number of bytes that each value is encoded as. B must be a value between [1..5]. For a pass-through
+ * coding (where each byte is encoded as itself, aka {@link #BYTE1}, B is 1 (each byte takes a maximum of 1 byte).</dd>
  * <dt>H</dt>
- * <dd>The radix of the integer. Values are defined as a sequence of values,
- * where value <code>n</code> is multiplied by <code>H^<sup>n</sup></code>.
- * So the number 1234 may be represented as the sequence 4 3 2 1 with a radix
- * (H) of 10. Note that other permutations are also possible; 43 2 1 will also
- * encode 1234. The co-parameter L is defined as 256-H. This is important
- * because only the last value in a sequence may be &lt; L; all prior values
- * must be &gt; L.</dd>
+ * <dd>The radix of the integer. Values are defined as a sequence of values, where value <code>n</code> is multiplied by
+ * <code>H^<sup>n</sup></code>. So the number 1234 may be represented as the sequence 4 3 2 1 with a radix (H) of 10.
+ * Note that other permutations are also possible; 43 2 1 will also encode 1234. The co-parameter L is defined as 256-H.
+ * This is important because only the last value in a sequence may be &lt; L; all prior values must be &gt; L.</dd>
  * <dt>S</dt>
- * <dd>Whether the codec represents signed values (or not). This may have 3
- * values; 0 (unsigned), 1 (signed, one's complement) or 2 (signed, two's
- * complement)</dd>
+ * <dd>Whether the codec represents signed values (or not). This may have 3 values; 0 (unsigned), 1 (signed, one's
+ * complement) or 2 (signed, two's complement)</dd>
  * <dt>D</dt>
- * <dd>Whether the codec represents a delta encoding. This may be 0 (no delta)
- * or 1 (delta encoding). A delta encoding of 1 indicates that values are
- * cumulative; a sequence of <code>1 1 1 1 1</code> will represent the
- * sequence <code>1 2 3 4 5</code>. For this reason, the codec supports two
- * variants of decode; one {@link #decode(InputStream, long) with} and one
- * {@link #decode(InputStream) without} a <code>last</code> parameter. If the
- * codec is a non-delta encoding, then the value is ignored if passed. If the
- * codec is a delta encoding, it is a run-time error to call the value without
- * the extra parameter, and the previous value should be returned. (It was
- * designed this way to support multi-threaded access without requiring a new
- * instance of the Codec to be cloned for each use.)
+ * <dd>Whether the codec represents a delta encoding. This may be 0 (no delta) or 1 (delta encoding). A delta encoding
+ * of 1 indicates that values are cumulative; a sequence of <code>1 1 1 1 1</code> will represent the sequence
+ * <code>1 2 3 4 5</code>. For this reason, the codec supports two variants of decode; one
+ * {@link #decode(InputStream, long) with} and one {@link #decode(InputStream) without} a <code>last</code> parameter.
+ * If the codec is a non-delta encoding, then the value is ignored if passed. If the codec is a delta encoding, it is a
+ * run-time error to call the value without the extra parameter, and the previous value should be returned. (It was
+ * designed this way to support multi-threaded access without requiring a new instance of the Codec to be cloned for
+ * each use.)
  * <dt>
  * </dl>
  *
- * Codecs are notated as (B,H,S,D) and either D or S,D may be omitted if zero.
- * Thus {@link #BYTE1} is denoted (1,256,0,0) or (1,256). The
- * {@link #toString()} method prints out the condensed form of the encoding.
- * Often, the last character in the name ({@link #BYTE1}, {@link #UNSIGNED5})
- * gives a clue as to the B value. Those that start with U ({@link #UDELTA5},
- * {@link #UNSIGNED5}) are unsigned; otherwise, in most cases, they are signed.
- * The presence of the word Delta ({@link #DELTA5}, {@link #UDELTA5})
- * indicates a delta encoding is used.
+ * Codecs are notated as (B,H,S,D) and either D or S,D may be omitted if zero. Thus {@link #BYTE1} is denoted
+ * (1,256,0,0) or (1,256). The {@link #toString()} method prints out the condensed form of the encoding. Often, the last
+ * character in the name ({@link #BYTE1}, {@link #UNSIGNED5}) gives a clue as to the B value. Those that start with U
+ * ({@link #UDELTA5}, {@link #UNSIGNED5}) are unsigned; otherwise, in most cases, they are signed. The presence of the
+ * word Delta ({@link #DELTA5}, {@link #UDELTA5}) indicates a delta encoding is used.
  *
  */
 public final class BHSDCodec extends Codec {
@@ -120,11 +104,8 @@ public final class BHSDCodec extends Codec {
     /**
      * Constructs an unsigned, non-delta Codec with the given B and H values.
      *
-     * @param b
-     *            the maximum number of bytes that a value can be encoded as
-     *            [1..5]
-     * @param h
-     *            the radix of the encoding [1..256]
+     * @param b the maximum number of bytes that a value can be encoded as [1..5]
+     * @param h the radix of the encoding [1..256]
      */
     public BHSDCodec(final int b, final int h) {
         this(b, h, 0, 0);
@@ -133,14 +114,10 @@ public final class BHSDCodec extends Codec {
     /**
      * Constructs a non-delta Codec with the given B, H and S values.
      *
-     * @param b
-     *            the maximum number of bytes that a value can be encoded as
-     *            [1..5]
-     * @param h
-     *            the radix of the encoding [1..256]
-     * @param s
-     *            whether the encoding represents signed numbers (s=0 is
-     *            unsigned; s=1 is signed with 1s complement; s=2 is signed with ?)
+     * @param b the maximum number of bytes that a value can be encoded as [1..5]
+     * @param h the radix of the encoding [1..256]
+     * @param s whether the encoding represents signed numbers (s=0 is unsigned; s=1 is signed with 1s complement; s=2
+     *        is signed with ?)
      */
     public BHSDCodec(final int b, final int h, final int s) {
         this(b, h, s, 0);
@@ -149,17 +126,11 @@ public final class BHSDCodec extends Codec {
     /**
      * Constructs a Codec with the given B, H, S and D values.
      *
-     * @param b
-     *            the maximum number of bytes that a value can be encoded as
-     *            [1..5]
-     * @param h
-     *            the radix of the encoding [1..256]
-     * @param s
-     *            whether the encoding represents signed numbers (s=0 is
-     *            unsigned; s=1 is signed with 1s complement; s=2 is signed with ?)
-     * @param d
-     *            whether this is a delta encoding (d=0 is non-delta; d=1 is
-     *            delta)
+     * @param b the maximum number of bytes that a value can be encoded as [1..5]
+     * @param h the radix of the encoding [1..256]
+     * @param s whether the encoding represents signed numbers (s=0 is unsigned; s=1 is signed with 1s complement; s=2
+     *        is signed with ?)
+     * @param d whether this is a delta encoding (d=0 is non-delta; d=1 is delta)
      */
     public BHSDCodec(final int b, final int h, final int s, final int d) {
         if (b < 1 || b > 5) {
@@ -188,21 +159,19 @@ public final class BHSDCodec extends Codec {
         if (h == 1) {
             cardinality = b * 255 + 1;
         } else {
-            cardinality = (long) ((long) (l * (1 - Math.pow(h, b)) / (1 - h)) + Math
-                    .pow(h, b));
+            cardinality = (long) ((long) (l * (1 - Math.pow(h, b)) / (1 - h)) + Math.pow(h, b));
         }
         smallest = calculateSmallest();
         largest = calculateLargest();
 
         powers = new long[b];
-        for(int c = 0; c < b; c++) {
-            powers[c] = (long)Math.pow(h, c);
+        for (int c = 0; c < b; c++) {
+            powers[c] = (long) Math.pow(h, c);
         }
     }
 
     /**
-     * Returns the cardinality of this codec; that is, the number of distinct
-     * values that it can contain.
+     * Returns the cardinality of this codec; that is, the number of distinct values that it can contain.
      *
      * @return the cardinality of this codec
      */
@@ -213,22 +182,20 @@ public final class BHSDCodec extends Codec {
     @Override
     public int decode(final InputStream in) throws IOException, Pack200Exception {
         if (d != 0) {
-            throw new Pack200Exception(
-                    "Delta encoding used without passing in last value; this is a coding error");
+            throw new Pack200Exception("Delta encoding used without passing in last value; this is a coding error");
         }
         return decode(in, 0);
     }
 
     @Override
-    public int decode(final InputStream in, final long last) throws IOException,
-            Pack200Exception {
+    public int decode(final InputStream in, final long last) throws IOException, Pack200Exception {
         int n = 0;
         long z = 0;
         long x = 0;
 
         do {
             x = in.read();
-            lastBandLength ++;
+            lastBandLength++;
             z += x * powers[n];
             n++;
         } while (x >= l && n < b);
@@ -264,12 +231,11 @@ public final class BHSDCodec extends Codec {
         if (isDelta()) {
             z += last;
         }
-        return (int)z;
+        return (int) z;
     }
 
     @Override
-    public int[] decodeInts(final int n, final InputStream in) throws IOException,
-            Pack200Exception {
+    public int[] decodeInts(final int n, final InputStream in) throws IOException, Pack200Exception {
         final int[] band = super.decodeInts(n, in);
         if (isDelta()) {
             for (int i = 0; i < band.length; i++) {
@@ -286,8 +252,8 @@ public final class BHSDCodec extends Codec {
 
     @Override
     public int[] decodeInts(final int n, final InputStream in, final int firstValue)
-            throws IOException, Pack200Exception {
-        final int[] band =  super.decodeInts(n, in, firstValue);
+        throws IOException, Pack200Exception {
+        final int[] band = super.decodeInts(n, in, firstValue);
         if (isDelta()) {
             for (int i = 0; i < band.length; i++) {
                 while (band[i] > largest) {
@@ -310,8 +276,7 @@ public final class BHSDCodec extends Codec {
     /**
      * True if this encoding can code the given value
      *
-     * @param value
-     *            the value to check
+     * @param value the value to check
      * @return <code>true</code> if the encoding can encode this value
      */
     public boolean encodes(final long value) {
@@ -320,9 +285,8 @@ public final class BHSDCodec extends Codec {
 
     @Override
     public byte[] encode(final int value, final int last) throws Pack200Exception {
-        if(!encodes(value)) {
-            throw new Pack200Exception("The codec " + toString()
-                  + " does not encode the value " + value);
+        if (!encodes(value)) {
+            throw new Pack200Exception("The codec " + toString() + " does not encode the value " + value);
         }
 
         long z = value;
@@ -330,7 +294,7 @@ public final class BHSDCodec extends Codec {
             z -= last;
         }
         if (isSigned()) {
-            if(z < Integer.MIN_VALUE) {
+            if (z < Integer.MIN_VALUE) {
                 z += 4294967296L;
             } else if (z > Integer.MAX_VALUE) {
                 z -= 4294967296L;
@@ -428,8 +392,7 @@ public final class BHSDCodec extends Codec {
         } else {
             throw new Error("Unknown s value");
         }
-        return Math.min((s == 0 ? ((long) Integer.MAX_VALUE) << 1
-                : Integer.MAX_VALUE) - 1, result);
+        return Math.min((s == 0 ? ((long) Integer.MAX_VALUE) << 1 : Integer.MAX_VALUE) - 1, result);
     }
 
     /**
@@ -456,8 +419,7 @@ public final class BHSDCodec extends Codec {
     }
 
     /**
-     * Returns the codec in the form (1,256) or (1,64,1,1). Note that trailing
-     * zero fields are not shown.
+     * Returns the codec in the form (1,256) or (1,64,1,1). Note that trailing zero fields are not shown.
      */
     @Override
     public String toString() {
@@ -517,6 +479,6 @@ public final class BHSDCodec extends Codec {
 
     @Override
     public int hashCode() {
-        return ((b* 37 + h) * 37 + s) * 37 + d;
+        return ((b * 37 + h) * 37 + s) * 37 + d;
     }
 }
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/BandSet.java b/src/main/java/org/apache/commons/compress/harmony/pack200/BandSet.java
index ace90ec..b447cfe 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/BandSet.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/BandSet.java
@@ -42,6 +42,7 @@ public abstract class BandSet {
 
     /**
      * Create a new BandSet
+     * 
      * @param effort - the packing effort to be used (must be 1-9)
      * @param header - the segment header
      */
@@ -52,6 +53,7 @@ public abstract class BandSet {
 
     /**
      * Write the packed set of bands to the given output stream
+     * 
      * @param out TODO
      * @throws IOException If an I/O error occurs.
      * @throws Pack200Exception TODO
@@ -60,6 +62,7 @@ public abstract class BandSet {
 
     /**
      * Encode a band without considering other Codecs
+     * 
      * @param band - the band
      * @param codec - the Codec to use
      * @return the encoded band
@@ -71,6 +74,7 @@ public abstract class BandSet {
 
     /**
      * Encode a single value with the given Codec
+     * 
      * @param value - the value to encode
      * @param codec - Codec to use
      * @return the encoded value
@@ -81,39 +85,37 @@ public abstract class BandSet {
     }
 
     /**
-     * Encode a band of integers. The default codec may be used, but other
-     * Codecs are considered if effort is greater than 1.
+     * Encode a band of integers. The default codec may be used, but other Codecs are considered if effort is greater
+     * than 1.
      *
-     * @param name
-     *            - name of the band (used for debugging)
-     * @param ints
-     *            - the band
-     * @param defaultCodec
-     *            - the default Codec
+     * @param name - name of the band (used for debugging)
+     * @param ints - the band
+     * @param defaultCodec - the default Codec
      * @return the encoded band
      * @throws Pack200Exception TODO
      */
-    public byte[] encodeBandInt(final String name, final int[] ints, final BHSDCodec defaultCodec) throws Pack200Exception {
+    public byte[] encodeBandInt(final String name, final int[] ints, final BHSDCodec defaultCodec)
+        throws Pack200Exception {
         byte[] encodedBand = null;
-     // Useful for debugging
+        // Useful for debugging
 //        if(ints.length > 0) {
 //            System.out.println("encoding " + name + " " + ints.length);
 //        }
-        if(effort > 1 && (ints.length >= effortThresholds[effort])) {
+        if (effort > 1 && (ints.length >= effortThresholds[effort])) {
             final BandAnalysisResults results = analyseBand(name, ints, defaultCodec);
             final Codec betterCodec = results.betterCodec;
             encodedBand = results.encodedBand;
-            if(betterCodec != null) {
-                if(betterCodec instanceof BHSDCodec) {
+            if (betterCodec != null) {
+                if (betterCodec instanceof BHSDCodec) {
                     final int[] specifierBand = CodecEncoding.getSpecifier(betterCodec, defaultCodec);
                     int specifier = specifierBand[0];
-                    if(specifierBand.length > 1) {
+                    if (specifierBand.length > 1) {
                         for (int i = 1; i < specifierBand.length; i++) {
                             segmentHeader.appendBandCodingSpecifier(specifierBand[i]);
                         }
                     }
-                    if(defaultCodec.isSigned()) {
-                        specifier = -1 -specifier;
+                    if (defaultCodec.isSigned()) {
+                        specifier = -1 - specifier;
                     } else {
                         specifier = specifier + defaultCodec.getL();
                     }
@@ -137,12 +139,12 @@ public abstract class BandSet {
         }
 
         // If we get here then we've decided to use the default codec.
-        if(ints.length > 0) {
-            if(encodedBand == null) {
+        if (ints.length > 0) {
+            if (encodedBand == null) {
                 encodedBand = defaultCodec.encode(ints);
             }
             final int first = ints[0];
-            if(defaultCodec.getB() != 1) {
+            if (defaultCodec.getB() != 1) {
                 if (defaultCodec.isSigned() && first >= -256 && first <= -1) {
                     final int specifier = -1 - CodecEncoding.getSpecifierForDefaultCodec(defaultCodec);
                     final byte[] specifierEncoded = defaultCodec.encode(new int[] {specifier});
@@ -151,8 +153,7 @@ public abstract class BandSet {
                     System.arraycopy(encodedBand, 0, band, specifierEncoded.length, encodedBand.length);
                     return band;
                 }
-                if (!defaultCodec.isSigned() && first >= defaultCodec.getL()
-                        && first <= defaultCodec.getL() + 255) {
+                if (!defaultCodec.isSigned() && first >= defaultCodec.getL() && first <= defaultCodec.getL() + 255) {
                     final int specifier = CodecEncoding.getSpecifierForDefaultCodec(defaultCodec) + defaultCodec.getL();
                     final byte[] specifierEncoded = defaultCodec.encode(new int[] {specifier});
                     final byte[] band = new byte[specifierEncoded.length + encodedBand.length];
@@ -166,12 +167,12 @@ public abstract class BandSet {
         return new byte[0];
     }
 
-    private BandAnalysisResults analyseBand(final String name, final int[] band,
-            final BHSDCodec defaultCodec) throws Pack200Exception {
+    private BandAnalysisResults analyseBand(final String name, final int[] band, final BHSDCodec defaultCodec)
+        throws Pack200Exception {
 
         final BandAnalysisResults results = new BandAnalysisResults();
 
-        if(canonicalLargest == null) {
+        if (canonicalLargest == null) {
             canonicalLargest = new long[116];
             canonicalSmallest = new long[116];
             for (int i = 1; i < canonicalLargest.length; i++) {
@@ -186,26 +187,27 @@ public abstract class BandSet {
         results.encodedBand = encoded;
 
         // Note: these values have been tuned - please test carefully if changing them
-        if(encoded.length <= band.length + 23 - 2*effort) { // TODO: tweak
+        if (encoded.length <= band.length + 23 - 2 * effort) { // TODO: tweak
             return results;
         }
 
         // Check if we can use BYTE1 as that's a 1:1 mapping if we can
-        if(!bandData.anyNegatives() && bandData.largest <= Codec.BYTE1.largest()) {
-              results.encodedBand = Codec.BYTE1.encode(band)  ;
-              results.betterCodec = Codec.BYTE1;
-              return results;
+        if (!bandData.anyNegatives() && bandData.largest <= Codec.BYTE1.largest()) {
+            results.encodedBand = Codec.BYTE1.encode(band);
+            results.betterCodec = Codec.BYTE1;
+            return results;
         }
 
         // Consider a population codec (but can't be nested)
-        if(effort > 3 && !name.equals("POPULATION")) {
+        if (effort > 3 && !name.equals("POPULATION")) {
             final int numDistinctValues = bandData.numDistinctValues();
-            final float distinctValuesAsProportion = (float)numDistinctValues / (float)band.length;
+            final float distinctValuesAsProportion = (float) numDistinctValues / (float) band.length;
 
             // Note: these values have been tuned - please test carefully if changing them
-            if(numDistinctValues < 100 || distinctValuesAsProportion < 0.02 ||  (effort > 6 && distinctValuesAsProportion < 0.04)) { // TODO: tweak
+            if (numDistinctValues < 100 || distinctValuesAsProportion < 0.02
+                || (effort > 6 && distinctValuesAsProportion < 0.04)) { // TODO: tweak
                 encodeWithPopulationCodec(name, band, defaultCodec, bandData, results);
-                if(timeToStop(results)) {
+                if (timeToStop(results)) {
                     return results;
                 }
             }
@@ -214,7 +216,7 @@ public abstract class BandSet {
         final List codecFamiliesToTry = new ArrayList();
 
         // See if the deltas are mainly small increments
-        if(bandData.mainlyPositiveDeltas() && bandData.mainlySmallDeltas()) {
+        if (bandData.mainlyPositiveDeltas() && bandData.mainlySmallDeltas()) {
             codecFamiliesToTry.add(CanonicalCodecFamilies.deltaUnsignedCodecs2);
         }
 
@@ -257,15 +259,13 @@ public abstract class BandSet {
             codecFamiliesToTry.add(CanonicalCodecFamilies.deltaUnsignedCodecs4);
             codecFamiliesToTry.add(CanonicalCodecFamilies.deltaUnsignedCodecs5);
         }
-        if(name.equalsIgnoreCase("cpint")) {
+        if (name.equalsIgnoreCase("cpint")) {
             System.out.print("");
         }
 
-        for (final Iterator iterator = codecFamiliesToTry.iterator(); iterator
-                .hasNext();) {
+        for (final Iterator iterator = codecFamiliesToTry.iterator(); iterator.hasNext();) {
             final BHSDCodec[] family = (BHSDCodec[]) iterator.next();
-            tryCodecs(name, band, defaultCodec, bandData, results, encoded,
-                    family);
+            tryCodecs(name, band, defaultCodec, bandData, results, encoded, family);
             if (timeToStop(results)) {
                 break;
             }
@@ -277,7 +277,7 @@ public abstract class BandSet {
     private boolean timeToStop(final BandAnalysisResults results) {
         // if tried more than effort number of codecs for this band then return
         // Note: these values have been tuned - please test carefully if changing them
-        if(effort > 6) {
+        if (effort > 6) {
             return results.numCodecsTried >= effort * 2;
         }
         return results.numCodecsTried >= effort;
@@ -286,46 +286,40 @@ public abstract class BandSet {
     }
 
     private void tryCodecs(final String name, final int[] band, final BHSDCodec defaultCodec, final BandData bandData,
-            final BandAnalysisResults results, final byte[] encoded,
-            final BHSDCodec[] potentialCodecs) throws Pack200Exception {
+        final BandAnalysisResults results, final byte[] encoded, final BHSDCodec[] potentialCodecs)
+        throws Pack200Exception {
         for (int i = 0; i < potentialCodecs.length; i++) {
             final BHSDCodec potential = potentialCodecs[i];
-            if(potential.equals(defaultCodec)) {
-                return; // don't try codecs with greater cardinality in the same 'family' as the default codec as there won't be any savings
+            if (potential.equals(defaultCodec)) {
+                return; // don't try codecs with greater cardinality in the same 'family' as the default codec as there
+                        // won't be any savings
             }
             if (potential.isDelta()) {
-                if (potential.largest() >= bandData.largestDelta
-                        && potential.smallest() <= bandData.smallestDelta
-                        && potential.largest() >= bandData.largest
-                        && potential.smallest() <= bandData.smallest) {
+                if (potential.largest() >= bandData.largestDelta && potential.smallest() <= bandData.smallestDelta
+                    && potential.largest() >= bandData.largest && potential.smallest() <= bandData.smallest) {
                     // TODO: can represent some negative deltas with overflow
                     final byte[] encoded2 = potential.encode(band);
                     results.numCodecsTried++;
-                    final byte[] specifierEncoded = defaultCodec.encode(CodecEncoding
-                            .getSpecifier(potential, null));
-                    final int saved = encoded.length - encoded2.length
-                            - specifierEncoded.length;
+                    final byte[] specifierEncoded = defaultCodec.encode(CodecEncoding.getSpecifier(potential, null));
+                    final int saved = encoded.length - encoded2.length - specifierEncoded.length;
                     if (saved > results.saved) {
                         results.betterCodec = potential;
                         results.encodedBand = encoded2;
                         results.saved = saved;
                     }
                 }
-            } else if (potential.largest() >= bandData.largest
-                    && potential.smallest() <= bandData.smallest) {
+            } else if (potential.largest() >= bandData.largest && potential.smallest() <= bandData.smallest) {
                 final byte[] encoded2 = potential.encode(band);
                 results.numCodecsTried++;
-                final byte[] specifierEncoded = defaultCodec.encode(CodecEncoding
-                        .getSpecifier(potential, null));
-                final int saved = encoded.length - encoded2.length
-                        - specifierEncoded.length;
+                final byte[] specifierEncoded = defaultCodec.encode(CodecEncoding.getSpecifier(potential, null));
+                final int saved = encoded.length - encoded2.length - specifierEncoded.length;
                 if (saved > results.saved) {
                     results.betterCodec = potential;
                     results.encodedBand = encoded2;
                     results.saved = saved;
                 }
             }
-            if(timeToStop(results)) {
+            if (timeToStop(results)) {
                 return;
             }
         }
@@ -357,24 +351,24 @@ public abstract class BandSet {
 //        }
 //    }
 
-    private void encodeWithPopulationCodec(final String name, final int[] band,
-            final BHSDCodec defaultCodec, final BandData bandData, final BandAnalysisResults results) throws Pack200Exception {
+    private void encodeWithPopulationCodec(final String name, final int[] band, final BHSDCodec defaultCodec,
+        final BandData bandData, final BandAnalysisResults results) throws Pack200Exception {
         results.numCodecsTried += 3; // quite a bit more effort to try this codec
         final Map distinctValues = bandData.distinctValues;
 
         final List favoured = new ArrayList();
-        for (final Iterator iterator = distinctValues.keySet().iterator(); iterator
-                .hasNext();) {
+        for (final Iterator iterator = distinctValues.keySet().iterator(); iterator.hasNext();) {
             final Integer value = (Integer) iterator.next();
             final Integer count = (Integer) distinctValues.get(value);
-            if(count.intValue() > 2 || distinctValues.size() < 256) { // TODO: tweak
+            if (count.intValue() > 2 || distinctValues.size() < 256) { // TODO: tweak
                 favoured.add(value);
             }
         }
 
         // Sort the favoured list with the most commonly occurring first
-        if(distinctValues.size() > 255) {
-            Collections.sort(favoured, (arg0, arg1) -> ((Integer)distinctValues.get(arg1)).compareTo((Integer)distinctValues.get(arg0)));
+        if (distinctValues.size() > 255) {
+            Collections.sort(favoured,
+                (arg0, arg1) -> ((Integer) distinctValues.get(arg1)).compareTo((Integer) distinctValues.get(arg0)));
         }
 
         final IntList unfavoured = new IntList();
@@ -386,8 +380,8 @@ public abstract class BandSet {
 
         final int[] tokens = new int[band.length];
         for (int i = 0; i < band.length; i++) {
-            final Integer favouredIndex = (Integer)favouredToIndex.get(Integer.valueOf(band[i]));
-            if(favouredIndex == null) {
+            final Integer favouredIndex = (Integer) favouredToIndex.get(Integer.valueOf(band[i]));
+            if (favouredIndex == null) {
                 tokens[i] = 0;
                 unfavoured.add(band[i]);
             } else {
@@ -407,14 +401,14 @@ public abstract class BandSet {
         Codec tokenCodec = null;
         byte[] tokensEncoded;
         final int k = favoured.size() - 1;
-        if(k < 256) {
+        if (k < 256) {
             tdefL = 1;
             tokensEncoded = Codec.BYTE1.encode(tokens);
         } else {
             final BandAnalysisResults tokenResults = analyseBand("POPULATION", tokens, defaultCodec);
             tokenCodec = tokenResults.betterCodec;
             tokensEncoded = tokenResults.encodedBand;
-            if(tokenCodec == null) {
+            if (tokenCodec == null) {
                 tokenCodec = defaultCodec;
             }
             l = ((BHSDCodec) tokenCodec).getL();
@@ -422,15 +416,15 @@ public abstract class BandSet {
             final int s = ((BHSDCodec) tokenCodec).getS();
             final int b = ((BHSDCodec) tokenCodec).getB();
             final int d = ((BHSDCodec) tokenCodec).isDelta() ? 1 : 0;
-            if(s == 0 && d == 0) {
+            if (s == 0 && d == 0) {
                 boolean canUseTDefL = true;
-                if(b > 1) {
-                    final BHSDCodec oneLowerB = new BHSDCodec(b-1, h);
-                    if(oneLowerB.largest() >= k) {
+                if (b > 1) {
+                    final BHSDCodec oneLowerB = new BHSDCodec(b - 1, h);
+                    if (oneLowerB.largest() >= k) {
                         canUseTDefL = false;
                     }
                 }
-                if(canUseTDefL) {
+                if (canUseTDefL) {
                     switch (l) {
                     case 4:
                         tdefL = 1;
@@ -477,19 +471,19 @@ public abstract class BandSet {
 
         int specifier = 141 + (favouredCodec == null ? 1 : 0) + (4 * tdefL) + (unfavouredCodec == null ? 2 : 0);
         final IntList extraBandMetadata = new IntList(3);
-        if(favouredCodec != null) {
+        if (favouredCodec != null) {
             final int[] specifiers = CodecEncoding.getSpecifier(favouredCodec, null);
             for (int i = 0; i < specifiers.length; i++) {
                 extraBandMetadata.add(specifiers[i]);
             }
         }
-        if(tdefL == 0) {
+        if (tdefL == 0) {
             final int[] specifiers = CodecEncoding.getSpecifier(tokenCodec, null);
             for (int i = 0; i < specifiers.length; i++) {
                 extraBandMetadata.add(specifiers[i]);
             }
         }
-        if(unfavouredCodec != null) {
+        if (unfavouredCodec != null) {
             final int[] specifiers = CodecEncoding.getSpecifier(unfavouredCodec, null);
             for (int i = 0; i < specifiers.length; i++) {
                 extraBandMetadata.add(specifiers[i]);
@@ -497,24 +491,27 @@ public abstract class BandSet {
         }
         final int[] extraMetadata = extraBandMetadata.toArray();
         final byte[] extraMetadataEncoded = Codec.UNSIGNED5.encode(extraMetadata);
-        if(defaultCodec.isSigned()) {
-            specifier = -1 -specifier;
+        if (defaultCodec.isSigned()) {
+            specifier = -1 - specifier;
         } else {
             specifier = specifier + defaultCodec.getL();
         }
         final byte[] firstValueEncoded = defaultCodec.encode(new int[] {specifier});
-        final int totalBandLength = firstValueEncoded.length + favouredEncoded.length + tokensEncoded.length + unfavouredEncoded.length;
+        final int totalBandLength = firstValueEncoded.length + favouredEncoded.length + tokensEncoded.length
+            + unfavouredEncoded.length;
 
-        if(totalBandLength + extraMetadataEncoded.length < results.encodedBand.length) {
+        if (totalBandLength + extraMetadataEncoded.length < results.encodedBand.length) {
             results.saved += results.encodedBand.length - (totalBandLength + extraMetadataEncoded.length);
             final byte[] encodedBand = new byte[totalBandLength];
             System.arraycopy(firstValueEncoded, 0, encodedBand, 0, firstValueEncoded.length);
             System.arraycopy(favouredEncoded, 0, encodedBand, firstValueEncoded.length, favouredEncoded.length);
-            System.arraycopy(tokensEncoded, 0, encodedBand, firstValueEncoded.length + favouredEncoded.length, tokensEncoded.length);
-            System.arraycopy(unfavouredEncoded, 0, encodedBand, firstValueEncoded.length + favouredEncoded.length + tokensEncoded.length, unfavouredEncoded.length);
+            System.arraycopy(tokensEncoded, 0, encodedBand, firstValueEncoded.length + favouredEncoded.length,
+                tokensEncoded.length);
+            System.arraycopy(unfavouredEncoded, 0, encodedBand,
+                firstValueEncoded.length + favouredEncoded.length + tokensEncoded.length, unfavouredEncoded.length);
             results.encodedBand = encodedBand;
             results.extraMetadata = extraMetadata;
-            if(l != 0) {
+            if (l != 0) {
                 results.betterCodec = new PopulationCodec(favouredCodec, l, unfavouredCodec);
             } else {
                 results.betterCodec = new PopulationCodec(favouredCodec, tokenCodec, unfavouredCodec);
@@ -523,25 +520,19 @@ public abstract class BandSet {
     }
 
     /**
-     * Encode a band of longs (values are split into their high and low 32 bits
-     * and then encoded as two separate bands
+     * Encode a band of longs (values are split into their high and low 32 bits and then encoded as two separate bands
      *
-     * @param name
-     *            - name of the band (for debugging purposes)
-     * @param flags
-     *            - the band
-     * @param loCodec
-     *            - Codec for the low 32-bits band
-     * @param hiCodec
-     *            - Codec for the high 32-bits band
-     * @param haveHiFlags
-     *            - ignores the high band if true as all values would be zero
+     * @param name - name of the band (for debugging purposes)
+     * @param flags - the band
+     * @param loCodec - Codec for the low 32-bits band
+     * @param hiCodec - Codec for the high 32-bits band
+     * @param haveHiFlags - ignores the high band if true as all values would be zero
      * @return the encoded band
      * @throws Pack200Exception TODO
      */
-    protected byte[] encodeFlags(final String name, final long[] flags, final BHSDCodec loCodec, final BHSDCodec hiCodec,
-            final boolean haveHiFlags) throws Pack200Exception {
-        if(!haveHiFlags) {
+    protected byte[] encodeFlags(final String name, final long[] flags, final BHSDCodec loCodec,
+        final BHSDCodec hiCodec, final boolean haveHiFlags) throws Pack200Exception {
+        if (!haveHiFlags) {
             final int[] loBits = new int[flags.length];
             for (int i = 0; i < flags.length; i++) {
                 loBits[i] = (int) flags[i];
@@ -565,40 +556,43 @@ public abstract class BandSet {
 
     /**
      * Converts a list of Integers to an int[] array.
+     * 
      * @param integerList conversion source.
      * @return conversion result.
      */
     protected int[] integerListToArray(final List integerList) {
         final int[] array = new int[integerList.size()];
         for (int i = 0; i < array.length; i++) {
-            array[i] = ((Integer)integerList.get(i)).intValue();
+            array[i] = ((Integer) integerList.get(i)).intValue();
         }
         return array;
     }
 
     /**
      * Converts a list of Longs to an long[] array.
+     * 
      * @param longList conversion source.
      * @return conversion result.
      */
     protected long[] longListToArray(final List longList) {
         final long[] array = new long[longList.size()];
         for (int i = 0; i < array.length; i++) {
-            array[i] = ((Long)longList.get(i)).longValue();
+            array[i] = ((Long) longList.get(i)).longValue();
         }
         return array;
     }
 
     /**
      * Converts a list of ConstantPoolEntrys to an int[] array of their indices
+     * 
      * @param list conversion source.
      * @return conversion result.
      */
     protected int[] cpEntryListToArray(final List list) {
         final int[] array = new int[list.size()];
         for (int i = 0; i < array.length; i++) {
-            array[i] = ((ConstantPoolEntry)list.get(i)).getIndex();
-            if(array[i] < 0) {
+            array[i] = ((ConstantPoolEntry) list.get(i)).getIndex();
+            if (array[i] < 0) {
                 throw new RuntimeException("Index should be > 0");
             }
         }
@@ -606,8 +600,8 @@ public abstract class BandSet {
     }
 
     /**
-     * Converts a list of ConstantPoolEntrys or nulls to an int[] array of their
-     * indices +1 (or 0 for nulls)
+     * Converts a list of ConstantPoolEntrys or nulls to an int[] array of their indices +1 (or 0 for nulls)
+     * 
      * @param theList conversion source.
      * @return conversion result.
      */
@@ -616,17 +610,17 @@ public abstract class BandSet {
         for (int j = 0; j < array.length; j++) {
             final ConstantPoolEntry cpEntry = (ConstantPoolEntry) theList.get(j);
             array[j] = cpEntry == null ? 0 : cpEntry.getIndex() + 1;
-            if(cpEntry != null && cpEntry.getIndex() < 0) {
+            if (cpEntry != null && cpEntry.getIndex() < 0) {
                 throw new RuntimeException("Index should be > 0");
             }
         }
         return array;
     }
 
-    protected byte[] encodeFlags(final String name, final long[][] flags, final BHSDCodec loCodec, final BHSDCodec hiCodec,
-            final boolean haveHiFlags) throws Pack200Exception {
+    protected byte[] encodeFlags(final String name, final long[][] flags, final BHSDCodec loCodec,
+        final BHSDCodec hiCodec, final boolean haveHiFlags) throws Pack200Exception {
         return encodeFlags(name, flatten(flags), loCodec, hiCodec, haveHiFlags);
-   }
+    }
 
     /*
      * Flatten a 2-dimension array into a 1-dimension array
@@ -648,9 +642,8 @@ public abstract class BandSet {
     }
 
     /**
-     * BandData represents information about a band, e.g. largest value etc
-     * and is used in the heuristics that calculate whether an alternative
-     * Codec could make the encoded band smaller.
+     * BandData represents information about a band, e.g. largest value etc and is used in the heuristics that calculate
+     * whether an alternative Codec could make the encoded band smaller.
      */
     public class BandData {
 
@@ -669,46 +662,47 @@ public abstract class BandSet {
         private Map distinctValues;
 
         /**
-         * Create a new instance of BandData.  The band is then analysed.
+         * Create a new instance of BandData. The band is then analysed.
+         * 
          * @param band - the band of integers
          */
         public BandData(final int[] band) {
             this.band = band;
             final Integer one = Integer.valueOf(1);
             for (int i = 0; i < band.length; i++) {
-                if(band[i] < smallest) {
+                if (band[i] < smallest) {
                     smallest = band[i];
                 }
-                if(band[i] > largest) {
+                if (band[i] > largest) {
                     largest = band[i];
                 }
-                if(i != 0) {
+                if (i != 0) {
                     final int delta = band[i] - band[i - 1];
-                    if(delta < smallestDelta) {
+                    if (delta < smallestDelta) {
                         smallestDelta = delta;
                     }
-                    if(delta > largestDelta) {
+                    if (delta > largestDelta) {
                         largestDelta = delta;
                     }
-                    if(delta >= 0) {
+                    if (delta >= 0) {
                         deltaIsAscending++;
                     }
-                    averageAbsoluteDelta += (double)Math.abs(delta)/(double)(band.length - 1);
-                    if(Math.abs(delta) < 256) {
+                    averageAbsoluteDelta += (double) Math.abs(delta) / (double) (band.length - 1);
+                    if (Math.abs(delta) < 256) {
                         smallDeltaCount++;
                     }
                 } else {
                     smallestDelta = band[0];
                     largestDelta = band[0];
                 }
-                averageAbsoluteValue += (double)Math.abs(band[i])/(double)band.length;
-                if(effort > 3) { // do calculations needed to consider population codec
-                    if(distinctValues == null) {
+                averageAbsoluteValue += (double) Math.abs(band[i]) / (double) band.length;
+                if (effort > 3) { // do calculations needed to consider population codec
+                    if (distinctValues == null) {
                         distinctValues = new HashMap();
                     }
                     final Integer value = Integer.valueOf(band[i]);
                     Integer count = (Integer) distinctValues.get(value);
-                    if(count == null) {
+                    if (count == null) {
                         count = one;
                     } else {
                         count = Integer.valueOf(count.intValue() + 1);
@@ -719,23 +713,19 @@ public abstract class BandSet {
         }
 
         /**
-         * Returns true if the deltas between adjacent band elements are mainly
-         * small (heuristic).
+         * Returns true if the deltas between adjacent band elements are mainly small (heuristic).
          *
-         * @return true if the deltas between adjacent band elements are mainly
-         * small (heuristic).
+         * @return true if the deltas between adjacent band elements are mainly small (heuristic).
          */
         public boolean mainlySmallDeltas() {
             // Note: the value below has been tuned - please test carefully if changing it
-            return (float)smallDeltaCount/(float)band.length > 0.7F;
+            return (float) smallDeltaCount / (float) band.length > 0.7F;
         }
 
         /**
-         * Returns true if the band is well correlated (i.e. would be suitable
-         * for a delta encoding) (heuristic).
+         * Returns true if the band is well correlated (i.e. would be suitable for a delta encoding) (heuristic).
          *
-         * @return true if the band is well correlated (i.e. would be suitable
-         * for a delta encoding) (heuristic).
+         * @return true if the band is well correlated (i.e. would be suitable for a delta encoding) (heuristic).
          */
         public boolean wellCorrelated() {
             // Note: the value below has been tuned - please test carefully if changing it
@@ -749,7 +739,7 @@ public abstract class BandSet {
          */
         public boolean mainlyPositiveDeltas() {
             // Note: the value below has been tuned - please test carefully if changing it
-            return (float)deltaIsAscending/(float)band.length > 0.95F;
+            return (float) deltaIsAscending / (float) band.length > 0.95F;
         }
 
         /**
@@ -767,7 +757,7 @@ public abstract class BandSet {
          * @return the total number of distinct values found in the band.
          */
         public int numDistinctValues() {
-            if(distinctValues == null) {
+            if (distinctValues == null) {
                 return band.length;
             }
             return distinctValues.size();
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/BcBands.java b/src/main/java/org/apache/commons/compress/harmony/pack200/BcBands.java
index 128705e..53457a0 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/BcBands.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/BcBands.java
@@ -26,8 +26,7 @@ import java.util.Map;
 import org.objectweb.asm.Label;
 
 /**
- * Bytecode bands (corresponds to the <code>bc_bands</code> set of bands in the
- * pack200 specification)
+ * Bytecode bands (corresponds to the <code>bc_bands</code> set of bands in the pack200 specification)
  */
 public class BcBands extends BandSet {
 
@@ -87,9 +86,8 @@ public class BcBands extends BandSet {
     }
 
     /**
-     * All input classes for the segment have now been read in, so this method
-     * is called so that this class can calculate/complete anything it could not
-     * do while classes were being read.
+     * All input classes for the segment have now been read in, so this method is called so that this class can
+     * calculate/complete anything it could not do while classes were being read.
      */
     public void finaliseBands() {
         bcThisField = getIndexInClass(bcThisField);
@@ -101,129 +99,89 @@ public class BcBands extends BandSet {
     @Override
     public void pack(final OutputStream out) throws IOException, Pack200Exception {
         PackingUtils.log("Writing byte code bands...");
-        byte[] encodedBand = encodeBandInt("bcCodes", bcCodes.toArray(),
-                Codec.BYTE1);
+        byte[] encodedBand = encodeBandInt("bcCodes", bcCodes.toArray(), Codec.BYTE1);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length + " bytes from bcCodes["
-                + bcCodes.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from bcCodes[" + bcCodes.size() + "]");
 
-        encodedBand = encodeBandInt("bcCaseCount", bcCaseCount.toArray(),
-                Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("bcCaseCount", bcCaseCount.toArray(), Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from bcCaseCount[" + bcCaseCount.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from bcCaseCount[" + bcCaseCount.size() + "]");
 
-        encodedBand = encodeBandInt("bcCaseValue", bcCaseValue.toArray(),
-                Codec.DELTA5);
+        encodedBand = encodeBandInt("bcCaseValue", bcCaseValue.toArray(), Codec.DELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from bcCaseValue[" + bcCaseValue.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from bcCaseValue[" + bcCaseValue.size() + "]");
 
         encodedBand = encodeBandInt("bcByte", bcByte.toArray(), Codec.BYTE1);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length + " bytes from bcByte["
-                + bcByte.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from bcByte[" + bcByte.size() + "]");
 
         encodedBand = encodeBandInt("bcShort", bcShort.toArray(), Codec.DELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length + " bytes from bcShort["
-                + bcShort.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from bcShort[" + bcShort.size() + "]");
 
-        encodedBand = encodeBandInt("bcLocal", bcLocal.toArray(),
-                Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("bcLocal", bcLocal.toArray(), Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length + " bytes from bcLocal["
-                + bcLocal.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from bcLocal[" + bcLocal.size() + "]");
 
-        encodedBand = encodeBandInt("bcLabel", integerListToArray(bcLabel),
-                Codec.BRANCH5);
+        encodedBand = encodeBandInt("bcLabel", integerListToArray(bcLabel), Codec.BRANCH5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length + " bytes from bcLabel["
-                + bcLabel.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from bcLabel[" + bcLabel.size() + "]");
 
-        encodedBand = encodeBandInt("bcIntref", cpEntryListToArray(bcIntref),
-                Codec.DELTA5);
+        encodedBand = encodeBandInt("bcIntref", cpEntryListToArray(bcIntref), Codec.DELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from bcIntref[" + bcIntref.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from bcIntref[" + bcIntref.size() + "]");
 
-        encodedBand = encodeBandInt("bcFloatRef",
-                cpEntryListToArray(bcFloatRef), Codec.DELTA5);
+        encodedBand = encodeBandInt("bcFloatRef", cpEntryListToArray(bcFloatRef), Codec.DELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from bcFloatRef[" + bcFloatRef.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from bcFloatRef[" + bcFloatRef.size() + "]");
 
-        encodedBand = encodeBandInt("bcLongRef", cpEntryListToArray(bcLongRef),
-                Codec.DELTA5);
+        encodedBand = encodeBandInt("bcLongRef", cpEntryListToArray(bcLongRef), Codec.DELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from bcLongRef[" + bcLongRef.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from bcLongRef[" + bcLongRef.size() + "]");
 
-        encodedBand = encodeBandInt("bcDoubleRef",
-                cpEntryListToArray(bcDoubleRef), Codec.DELTA5);
+        encodedBand = encodeBandInt("bcDoubleRef", cpEntryListToArray(bcDoubleRef), Codec.DELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from bcDoubleRef[" + bcDoubleRef.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from bcDoubleRef[" + bcDoubleRef.size() + "]");
 
-        encodedBand = encodeBandInt("bcStringRef",
-                cpEntryListToArray(bcStringRef), Codec.DELTA5);
+        encodedBand = encodeBandInt("bcStringRef", cpEntryListToArray(bcStringRef), Codec.DELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from bcStringRef[" + bcStringRef.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from bcStringRef[" + bcStringRef.size() + "]");
 
-        encodedBand = encodeBandInt("bcClassRef",
-                cpEntryOrNullListToArray(bcClassRef), Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("bcClassRef", cpEntryOrNullListToArray(bcClassRef), Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from bcClassRef[" + bcClassRef.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from bcClassRef[" + bcClassRef.size() + "]");
 
-        encodedBand = encodeBandInt("bcFieldRef",
-                cpEntryListToArray(bcFieldRef), Codec.DELTA5);
+        encodedBand = encodeBandInt("bcFieldRef", cpEntryListToArray(bcFieldRef), Codec.DELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from bcFieldRef[" + bcFieldRef.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from bcFieldRef[" + bcFieldRef.size() + "]");
 
-        encodedBand = encodeBandInt("bcMethodRef",
-                cpEntryListToArray(bcMethodRef), Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("bcMethodRef", cpEntryListToArray(bcMethodRef), Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from bcMethodRef[" + bcMethodRef.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from bcMethodRef[" + bcMethodRef.size() + "]");
 
-        encodedBand = encodeBandInt("bcIMethodRef",
-                cpEntryListToArray(bcIMethodRef), Codec.DELTA5);
+        encodedBand = encodeBandInt("bcIMethodRef", cpEntryListToArray(bcIMethodRef), Codec.DELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from bcIMethodRef[" + bcIMethodRef.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from bcIMethodRef[" + bcIMethodRef.size() + "]");
 
-        encodedBand = encodeBandInt("bcThisField",
-                integerListToArray(bcThisField), Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("bcThisField", integerListToArray(bcThisField), Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from bcThisField[" + bcThisField.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from bcThisField[" + bcThisField.size() + "]");
 
-        encodedBand = encodeBandInt("bcSuperField",
-                integerListToArray(bcSuperField), Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("bcSuperField", integerListToArray(bcSuperField), Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from bcSuperField[" + bcSuperField.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from bcSuperField[" + bcSuperField.size() + "]");
 
-        encodedBand = encodeBandInt("bcThisMethod",
-                integerListToArray(bcThisMethod), Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("bcThisMethod", integerListToArray(bcThisMethod), Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from bcThisMethod[" + bcThisMethod.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from bcThisMethod[" + bcThisMethod.size() + "]");
 
-        encodedBand = encodeBandInt("bcSuperMethod",
-                integerListToArray(bcSuperMethod), Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("bcSuperMethod", integerListToArray(bcSuperMethod), Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from bcSuperMethod[" + bcSuperMethod.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from bcSuperMethod[" + bcSuperMethod.size() + "]");
 
-        encodedBand = encodeBandInt("bcInitRef", integerListToArray(bcInitRef),
-                Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("bcInitRef", integerListToArray(bcInitRef), Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from bcInitRef[" + bcInitRef.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from bcInitRef[" + bcInitRef.size() + "]");
 
         // out.write(encodeBandInt(cpEntryintegerListToArray(bcEscRef),
         // Codec.UNSIGNED5));
@@ -260,7 +218,7 @@ public class BcBands extends BandSet {
             }
         }
         if (renumberedOffset != 0) {
-            if(renumberedOffset + 1 != bciRenumbering.size()) {
+            if (renumberedOffset + 1 != bciRenumbering.size()) {
                 throw new RuntimeException("Mistake made with renumbering");
             }
             for (int i = bcLabel.size() - 1; i >= 0; i--) {
@@ -272,12 +230,12 @@ public class BcBands extends BandSet {
                     bcLabel.remove(i);
                     final Integer offset = (Integer) labelsToOffsets.get(label);
                     final int relativeOffset = bcLabelRelativeOffsets.get(i);
-                    bcLabel.add(i, Integer.valueOf(bciRenumbering.get(offset.intValue()) - bciRenumbering.get(relativeOffset)));
+                    bcLabel.add(i,
+                        Integer.valueOf(bciRenumbering.get(offset.intValue()) - bciRenumbering.get(relativeOffset)));
                 }
             }
             bcCodes.add(endMarker);
-            segment.getClassBands().doBciRenumbering(bciRenumbering,
-                    labelsToOffsets);
+            segment.getClassBands().doBciRenumbering(bciRenumbering, labelsToOffsets);
             bciRenumbering.clear();
             labelsToOffsets.clear();
             byteCodeOffset = 0;
@@ -289,13 +247,11 @@ public class BcBands extends BandSet {
         labelsToOffsets.put(label, Integer.valueOf(byteCodeOffset));
     }
 
-    public void visitFieldInsn(int opcode, final String owner, final String name,
-            final String desc) {
+    public void visitFieldInsn(int opcode, final String owner, final String name, final String desc) {
         byteCodeOffset += 3;
         updateRenumbering();
         boolean aload_0 = false;
-        if (bcCodes.size() > 0
-                && (bcCodes.get(bcCodes.size() - 1)) == ALOAD_0) {
+        if (bcCodes.size() > 0 && (bcCodes.get(bcCodes.size() - 1)) == ALOAD_0) {
             bcCodes.remove(bcCodes.size() - 1);
             aload_0 = true;
         }
@@ -323,10 +279,10 @@ public class BcBands extends BandSet {
     }
 
     private void updateRenumbering() {
-        if(bciRenumbering.isEmpty()) {
+        if (bciRenumbering.isEmpty()) {
             bciRenumbering.add(0);
         }
-        renumberedOffset ++;
+        renumberedOffset++;
         for (int i = bciRenumbering.size(); i < byteCodeOffset; i++) {
             bciRenumbering.add(-1);
         }
@@ -351,8 +307,7 @@ public class BcBands extends BandSet {
 
     public void visitInsn(final int opcode) {
         if (opcode >= 202) {
-            throw new RuntimeException(
-                    "Non-standard bytecode instructions not supported");
+            throw new RuntimeException("Non-standard bytecode instructions not supported");
         }
         bcCodes.add(opcode);
         byteCodeOffset++;
@@ -385,8 +340,7 @@ public class BcBands extends BandSet {
 
     public void visitLdcInsn(final Object cst) {
         final CPConstant constant = cpBands.getConstant(cst);
-        if (segment.lastConstantHadWideIndex() || constant instanceof CPLong
-                || constant instanceof CPDouble) {
+        if (segment.lastConstantHadWideIndex() || constant instanceof CPLong || constant instanceof CPDouble) {
             byteCodeOffset += 3;
             if (constant instanceof CPInt) {
                 bcCodes.add(237); // ildc_w
@@ -443,17 +397,14 @@ public class BcBands extends BandSet {
         updateRenumbering();
     }
 
-    public void visitMethodInsn(int opcode, final String owner, final String name,
-            final String desc) {
+    public void visitMethodInsn(int opcode, final String owner, final String name, final String desc) {
         byteCodeOffset += 3;
         switch (opcode) {
         case 182: // invokevirtual
         case 183: // invokespecial
         case 184: // invokestatic
             boolean aload_0 = false;
-            if (bcCodes.size() > 0
-                    && (bcCodes.get(bcCodes.size() - 1))
-                             == (ALOAD_0)) {
+            if (bcCodes.size() > 0 && (bcCodes.get(bcCodes.size() - 1)) == (ALOAD_0)) {
                 bcCodes.remove(bcCodes.size() - 1);
                 aload_0 = true;
                 opcode += 7;
@@ -462,7 +413,7 @@ public class BcBands extends BandSet {
                 opcode += 24; // change to invokevirtual_this,
                 // invokespecial_this etc.
 
-                if(name.equals("<init>") && opcode == 207) {
+                if (name.equals("<init>") && opcode == 207) {
                     opcode = 230; // invokespecial_this_init
                     bcInitRef.add(cpBands.getCPMethod(owner, name, desc));
                 } else {
@@ -471,7 +422,7 @@ public class BcBands extends BandSet {
             } else if (owner.equals(superClass)) { // TODO
                 opcode += 38; // change to invokevirtual_super,
                 // invokespecial_super etc.
-                if(name.equals("<init>") && opcode == 221) {
+                if (name.equals("<init>") && opcode == 221) {
                     opcode = 231; // invokespecial_super_init
                     bcInitRef.add(cpBands.getCPMethod(owner, name, desc));
                 } else {
@@ -485,7 +436,7 @@ public class BcBands extends BandSet {
                     // special rewrite in this
                     // case.
                 }
-                if(name.equals("<init>") && opcode == 183 && owner.equals(currentNewClass)) {
+                if (name.equals("<init>") && opcode == 183 && owner.equals(currentNewClass)) {
                     opcode = 232; // invokespecial_new_init
                     bcInitRef.add(cpBands.getCPMethod(owner, name, desc));
                 } else {
@@ -512,8 +463,7 @@ public class BcBands extends BandSet {
         bcByte.add(dimensions & 0xFF);
     }
 
-    public void visitTableSwitchInsn(final int min, final int max, final Label dflt,
-            final Label[] labels) {
+    public void visitTableSwitchInsn(final int min, final int max, final Label dflt, final Label[] labels) {
         bcCodes.add(TABLESWITCH);
         bcLabel.add(dflt);
         bcLabelRelativeOffsets.add(byteCodeOffset);
@@ -525,7 +475,7 @@ public class BcBands extends BandSet {
             bcLabelRelativeOffsets.add(byteCodeOffset);
         }
         final int padding = byteCodeOffset % 4 == 0 ? 0 : 4 - (byteCodeOffset % 4);
-        byteCodeOffset+= (padding + 12 + 4 * labels.length);
+        byteCodeOffset += (padding + 12 + 4 * labels.length);
         updateRenumbering();
     }
 
@@ -535,7 +485,7 @@ public class BcBands extends BandSet {
         updateRenumbering();
         bcCodes.add(opcode);
         bcClassRef.add(cpBands.getCPClass(type));
-        if(opcode == 187) { // NEW
+        if (opcode == 187) { // NEW
             currentNewClass = type;
         }
     }
@@ -547,13 +497,13 @@ public class BcBands extends BandSet {
             bcCodes.add(WIDE);
             bcCodes.add(opcode);
             bcLocal.add(var);
-        } else if(var > 3 || opcode == 169 /* RET */) {
+        } else if (var > 3 || opcode == 169 /* RET */) {
             byteCodeOffset += 2;
             bcCodes.add(opcode);
             bcLocal.add(var);
         } else {
-            byteCodeOffset +=1;
-            switch(opcode) {
+            byteCodeOffset += 1;
+            switch (opcode) {
             case 21: // ILOAD
             case 54: // ISTORE
                 bcCodes.add(opcode + 5 + var);
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/CPClass.java b/src/main/java/org/apache/commons/compress/harmony/pack200/CPClass.java
index 79f667d..2d9120e 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/CPClass.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/CPClass.java
@@ -30,7 +30,7 @@ public class CPClass extends CPConstant implements Comparable {
         this.className = utf8.getUnderlyingString();
         final char[] chars = className.toCharArray();
         for (int i = 0; i < chars.length; i++) {
-            if(chars[i] <= 0x2D) {
+            if (chars[i] <= 0x2D) {
                 isInnerClass = true;
                 return;
             }
@@ -40,7 +40,7 @@ public class CPClass extends CPConstant implements Comparable {
 
     @Override
     public int compareTo(final Object arg0) {
-        return className.compareTo(((CPClass)arg0).className);
+        return className.compareTo(((CPClass) arg0).className);
     }
 
     @Override
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/CPConstant.java b/src/main/java/org/apache/commons/compress/harmony/pack200/CPConstant.java
index 4409945..50769f2 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/CPConstant.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/CPConstant.java
@@ -17,10 +17,8 @@
 package org.apache.commons.compress.harmony.pack200;
 
 /**
- * Abstract superclass for constant pool constant entries such as numbers or
- * Strings
+ * Abstract superclass for constant pool constant entries such as numbers or Strings
  */
-public abstract class CPConstant extends ConstantPoolEntry implements
-        Comparable {
+public abstract class CPConstant extends ConstantPoolEntry implements Comparable {
 
 }
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/CPDouble.java b/src/main/java/org/apache/commons/compress/harmony/pack200/CPDouble.java
index 8983b79..f35b03f 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/CPDouble.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/CPDouble.java
@@ -29,7 +29,7 @@ public class CPDouble extends CPConstant {
 
     @Override
     public int compareTo(final Object obj) {
-        return Double.compare(theDouble, ((CPDouble)obj).theDouble);
+        return Double.compare(theDouble, ((CPDouble) obj).theDouble);
     }
 
     public double getDouble() {
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/CPFloat.java b/src/main/java/org/apache/commons/compress/harmony/pack200/CPFloat.java
index 2f600d0..0fc54a4 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/CPFloat.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/CPFloat.java
@@ -29,7 +29,7 @@ public class CPFloat extends CPConstant {
 
     @Override
     public int compareTo(final Object obj) {
-        return Float.compare(theFloat, ((CPFloat)obj).theFloat);
+        return Float.compare(theFloat, ((CPFloat) obj).theFloat);
     }
 
     public float getFloat() {
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/CPInt.java b/src/main/java/org/apache/commons/compress/harmony/pack200/CPInt.java
index e1b0ec7..a28f2a5 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/CPInt.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/CPInt.java
@@ -29,10 +29,10 @@ public class CPInt extends CPConstant {
 
     @Override
     public int compareTo(final Object obj) {
-        if(theInt > ((CPInt)obj).theInt) {
+        if (theInt > ((CPInt) obj).theInt) {
             return 1;
         }
-        if (theInt == ((CPInt)obj).theInt) {
+        if (theInt == ((CPInt) obj).theInt) {
             return 0;
         }
         return -1;
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/CPLong.java b/src/main/java/org/apache/commons/compress/harmony/pack200/CPLong.java
index 698fe17..934867d 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/CPLong.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/CPLong.java
@@ -29,10 +29,10 @@ public class CPLong extends CPConstant {
 
     @Override
     public int compareTo(final Object obj) {
-        if(theLong > ((CPLong)obj).theLong) {
+        if (theLong > ((CPLong) obj).theLong) {
             return 1;
         }
-        if (theLong == ((CPLong)obj).theLong) {
+        if (theLong == ((CPLong) obj).theLong) {
             return 0;
         }
         return -1;
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/CPNameAndType.java b/src/main/java/org/apache/commons/compress/harmony/pack200/CPNameAndType.java
index 195c5da..614df8a 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/CPNameAndType.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/CPNameAndType.java
@@ -39,7 +39,7 @@ public class CPNameAndType extends ConstantPoolEntry implements Comparable {
         if (obj instanceof CPNameAndType) {
             final CPNameAndType nat = (CPNameAndType) obj;
             final int compareSignature = signature.compareTo(nat.signature);
-            if(compareSignature == 0) {
+            if (compareSignature == 0) {
                 return name.compareTo(nat.name);
             }
             return compareSignature;
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/CPSignature.java b/src/main/java/org/apache/commons/compress/harmony/pack200/CPSignature.java
index 2305e05..dab2719 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/CPSignature.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/CPSignature.java
@@ -37,27 +37,24 @@ public class CPSignature extends ConstantPoolEntry implements Comparable {
 
     @Override
     public int compareTo(final Object arg0) {
-        if(signature.equals(((CPSignature) arg0).signature)) {
+        if (signature.equals(((CPSignature) arg0).signature)) {
             return 0;
         }
-        if (formStartsWithBracket
-                && !((CPSignature) arg0).formStartsWithBracket) {
+        if (formStartsWithBracket && !((CPSignature) arg0).formStartsWithBracket) {
             return 1;
         }
-        if (((CPSignature) arg0).formStartsWithBracket
-                && !formStartsWithBracket) {
+        if (((CPSignature) arg0).formStartsWithBracket && !formStartsWithBracket) {
             return -1;
         }
         if (classes.size() - ((CPSignature) arg0).classes.size() != 0) {
             return classes.size() - ((CPSignature) arg0).classes.size();
         }
         if (classes.size() > 0) {
-            for (int i = classes.size() - 1; i >=0; i--) {
+            for (int i = classes.size() - 1; i >= 0; i--) {
                 final CPClass cpClass = (CPClass) classes.get(i);
-                final CPClass compareClass = (CPClass) ((CPSignature) arg0).classes
-                        .get(i);
+                final CPClass compareClass = (CPClass) ((CPSignature) arg0).classes.get(i);
                 final int classComp = cpClass.compareTo(compareClass);
-                if(classComp != 0) {
+                if (classComp != 0) {
                     return classComp;
                 }
             }
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/CPString.java b/src/main/java/org/apache/commons/compress/harmony/pack200/CPString.java
index 197f837..a6860f6 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/CPString.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/CPString.java
@@ -31,7 +31,7 @@ public class CPString extends CPConstant {
 
     @Override
     public int compareTo(final Object arg0) {
-        return string.compareTo(((CPString)arg0).string);
+        return string.compareTo(((CPString) arg0).string);
     }
 
     @Override
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/CPUTF8.java b/src/main/java/org/apache/commons/compress/harmony/pack200/CPUTF8.java
index f0b2dae..d571285 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/CPUTF8.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/CPUTF8.java
@@ -29,7 +29,7 @@ public class CPUTF8 extends ConstantPoolEntry implements Comparable {
 
     @Override
     public int compareTo(final Object arg0) {
-        return string.compareTo(((CPUTF8)arg0).string);
+        return string.compareTo(((CPUTF8) arg0).string);
     }
 
     @Override
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/CanonicalCodecFamilies.java b/src/main/java/org/apache/commons/compress/harmony/pack200/CanonicalCodecFamilies.java
index e7d6c26..2e58806 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/CanonicalCodecFamilies.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/CanonicalCodecFamilies.java
@@ -17,8 +17,7 @@
 package org.apache.commons.compress.harmony.pack200;
 
 /**
- * Sets of codecs that share characteristics. Mainly used for different effort
- * compression heuristics in BandSet.
+ * Sets of codecs that share characteristics. Mainly used for different effort compression heuristics in BandSet.
  */
 public class CanonicalCodecFamilies {
 
@@ -26,39 +25,35 @@ public class CanonicalCodecFamilies {
     // well (i.e. would not benefit from delta encoding)
 
     public static BHSDCodec[] nonDeltaUnsignedCodecs1 = {
-     // (1,256) is a special case and is considered separately so shouldn't be included here
+        // (1,256) is a special case and is considered separately so shouldn't be included here
 //        CodecEncoding.getCanonicalCodec(1), // (1,256)
         CodecEncoding.getCanonicalCodec(5), // (2,256)
         CodecEncoding.getCanonicalCodec(9), // (3,256)
         CodecEncoding.getCanonicalCodec(13) // (4,256)
     };
 
-    public static BHSDCodec[] nonDeltaUnsignedCodecs2 = {
-        CodecEncoding.getCanonicalCodec(17), // (5,4)
+    public static BHSDCodec[] nonDeltaUnsignedCodecs2 = {CodecEncoding.getCanonicalCodec(17), // (5,4)
         CodecEncoding.getCanonicalCodec(20), // (5,16)
         CodecEncoding.getCanonicalCodec(23), // (5,32)
         CodecEncoding.getCanonicalCodec(26), // (5,64)
         CodecEncoding.getCanonicalCodec(29) // (5,128)
     };
 
-    public static BHSDCodec[] nonDeltaUnsignedCodecs3 = {
-        CodecEncoding.getCanonicalCodec(47), // (2,192)
+    public static BHSDCodec[] nonDeltaUnsignedCodecs3 = {CodecEncoding.getCanonicalCodec(47), // (2,192)
         CodecEncoding.getCanonicalCodec(48), // (2,224)
         CodecEncoding.getCanonicalCodec(49), // (2,240)
         CodecEncoding.getCanonicalCodec(50), // (2,248)
         CodecEncoding.getCanonicalCodec(51) // (2,252)
     };
 
-    public static BHSDCodec[] nonDeltaUnsignedCodecs4 = {
-        CodecEncoding.getCanonicalCodec(70), // (3,192)
+    public static BHSDCodec[] nonDeltaUnsignedCodecs4 = {CodecEncoding.getCanonicalCodec(70), // (3,192)
         CodecEncoding.getCanonicalCodec(71), // (3,224)
         CodecEncoding.getCanonicalCodec(72), // (3,240)
         CodecEncoding.getCanonicalCodec(73), // (3,248)
         CodecEncoding.getCanonicalCodec(74) // (3,252)
     };
 
-    public static BHSDCodec[] nonDeltaUnsignedCodecs5 = {
-        CodecEncoding.getCanonicalCodec(93), // (4,192)
+    public static BHSDCodec[] nonDeltaUnsignedCodecs5 = {CodecEncoding.getCanonicalCodec(93), // (4,192)
         CodecEncoding.getCanonicalCodec(94), // (4,224)
         CodecEncoding.getCanonicalCodec(95), // (4,240)
         CodecEncoding.getCanonicalCodec(96), // (4,248)
@@ -68,23 +63,20 @@ public class CanonicalCodecFamilies {
     // Families of codecs for bands of positive integers that do correlate well
     // and would benefit from delta encoding
 
-    public static BHSDCodec[] deltaUnsignedCodecs1 = {
-        CodecEncoding.getCanonicalCodec(3), // (1,256,0,1)
+    public static BHSDCodec[] deltaUnsignedCodecs1 = {CodecEncoding.getCanonicalCodec(3), // (1,256,0,1)
         CodecEncoding.getCanonicalCodec(7), // (2,256,0,1)
         CodecEncoding.getCanonicalCodec(11), // (3,256,0,1)
         CodecEncoding.getCanonicalCodec(15) // (4,256,0,1)
     };
 
-    public static BHSDCodec[] deltaUnsignedCodecs2 = {
-        CodecEncoding.getCanonicalCodec(32), // (5,4,0,1)
+    public static BHSDCodec[] deltaUnsignedCodecs2 = {CodecEncoding.getCanonicalCodec(32), // (5,4,0,1)
         CodecEncoding.getCanonicalCodec(35), // (5,16,0,1)
         CodecEncoding.getCanonicalCodec(38), // (5,32,0,1)
         CodecEncoding.getCanonicalCodec(41), // (5,64,0,1)
         CodecEncoding.getCanonicalCodec(44) // (5,128,0,1)
     };
 
-    public static BHSDCodec[] deltaUnsignedCodecs3 = {
-        CodecEncoding.getCanonicalCodec(52), // (2,8,0,1)
+    public static BHSDCodec[] deltaUnsignedCodecs3 = {CodecEncoding.getCanonicalCodec(52), // (2,8,0,1)
         CodecEncoding.getCanonicalCodec(54), // (2,16,0,1)
         CodecEncoding.getCanonicalCodec(56), // (2,32,0,1)
         CodecEncoding.getCanonicalCodec(58), // (2,64,0,1)
@@ -95,8 +87,7 @@ public class CanonicalCodecFamilies {
         CodecEncoding.getCanonicalCodec(68) // (2,248,0,1)
     };
 
-    public static BHSDCodec[] deltaUnsignedCodecs4 = {
-        CodecEncoding.getCanonicalCodec(75), // (3,8,0,1)
+    public static BHSDCodec[] deltaUnsignedCodecs4 = {CodecEncoding.getCanonicalCodec(75), // (3,8,0,1)
         CodecEncoding.getCanonicalCodec(77), // (3,16,0,1)
         CodecEncoding.getCanonicalCodec(79), // (3,32,0,1)
         CodecEncoding.getCanonicalCodec(81), // (3,64,0,1)
@@ -107,8 +98,7 @@ public class CanonicalCodecFamilies {
         CodecEncoding.getCanonicalCodec(91) // (3,248,0,1)
     };
 
-    public static BHSDCodec[] deltaUnsignedCodecs5 = {
-        CodecEncoding.getCanonicalCodec(98), // (4,8,0,1)
+    public static BHSDCodec[] deltaUnsignedCodecs5 = {CodecEncoding.getCanonicalCodec(98), // (4,8,0,1)
         CodecEncoding.getCanonicalCodec(100), // (4,16,0,1)
         CodecEncoding.getCanonicalCodec(102), // (4,32,0,1)
         CodecEncoding.getCanonicalCodec(104), // (4,64,0,1)
@@ -122,23 +112,20 @@ public class CanonicalCodecFamilies {
     // Families of codecs for bands containing positive and negative integers
     // that do correlate well (i.e. delta encoding is used)
 
-    public static BHSDCodec[] deltaSignedCodecs1 = {
-        CodecEncoding.getCanonicalCodec(4), // (1,256,1,1)
+    public static BHSDCodec[] deltaSignedCodecs1 = {CodecEncoding.getCanonicalCodec(4), // (1,256,1,1)
         CodecEncoding.getCanonicalCodec(8), // (2,256,1,1)
         CodecEncoding.getCanonicalCodec(12), // (3,256,1,1)
         CodecEncoding.getCanonicalCodec(16) // (4,256,1,1)
     };
 
-    public static BHSDCodec[] deltaSignedCodecs2 = {
-        CodecEncoding.getCanonicalCodec(33), // (5,4,1,1)
+    public static BHSDCodec[] deltaSignedCodecs2 = {CodecEncoding.getCanonicalCodec(33), // (5,4,1,1)
         CodecEncoding.getCanonicalCodec(36), // (5,16,1,1)
         CodecEncoding.getCanonicalCodec(39), // (5,32,1,1)
         CodecEncoding.getCanonicalCodec(42), // (5,64,1,1)
         CodecEncoding.getCanonicalCodec(45) // (5,128,1,1)
     };
 
-    public static BHSDCodec[] deltaSignedCodecs3 = {
-        CodecEncoding.getCanonicalCodec(53), // (2,8,1,1)
+    public static BHSDCodec[] deltaSignedCodecs3 = {CodecEncoding.getCanonicalCodec(53), // (2,8,1,1)
         CodecEncoding.getCanonicalCodec(55), // (2,16,1,1)
         CodecEncoding.getCanonicalCodec(57), // (2,32,1,1)
         CodecEncoding.getCanonicalCodec(59), // (2,64,1,1)
@@ -149,8 +136,7 @@ public class CanonicalCodecFamilies {
         CodecEncoding.getCanonicalCodec(69) // (2,248,1,1)
     };
 
-    public static BHSDCodec[] deltaSignedCodecs4 = {
-        CodecEncoding.getCanonicalCodec(76), // (3,8,1,1)
+    public static BHSDCodec[] deltaSignedCodecs4 = {CodecEncoding.getCanonicalCodec(76), // (3,8,1,1)
         CodecEncoding.getCanonicalCodec(78), // (3,16,1,1)
         CodecEncoding.getCanonicalCodec(80), // (3,32,1,1)
         CodecEncoding.getCanonicalCodec(82), // (3,64,1,1)
@@ -161,8 +147,7 @@ public class CanonicalCodecFamilies {
         CodecEncoding.getCanonicalCodec(92) // (3,248,1,1)
     };
 
-    public static BHSDCodec[] deltaSignedCodecs5 = {
-        CodecEncoding.getCanonicalCodec(99), // (4,8,1,1)
+    public static BHSDCodec[] deltaSignedCodecs5 = {CodecEncoding.getCanonicalCodec(99), // (4,8,1,1)
         CodecEncoding.getCanonicalCodec(101), // (4,16,1,1)
         CodecEncoding.getCanonicalCodec(103), // (4,32,1,1)
         CodecEncoding.getCanonicalCodec(105), // (4,64,1,1)
@@ -173,8 +158,7 @@ public class CanonicalCodecFamilies {
         CodecEncoding.getCanonicalCodec(115) // (4,248,1,1)
     };
 
-    public static BHSDCodec[] deltaDoubleSignedCodecs1 = {
-        CodecEncoding.getCanonicalCodec(34), // (5,4,2,1)
+    public static BHSDCodec[] deltaDoubleSignedCodecs1 = {CodecEncoding.getCanonicalCodec(34), // (5,4,2,1)
         CodecEncoding.getCanonicalCodec(37), // (5,16,2,1)
         CodecEncoding.getCanonicalCodec(40), // (5,32,2,1)
         CodecEncoding.getCanonicalCodec(43), // (5,64,2,1)
@@ -184,23 +168,20 @@ public class CanonicalCodecFamilies {
     // Families of codecs for bands containing positive and negative values that
     // do not correlate well (i.e. delta encoding is not used)
 
-    public static BHSDCodec[] nonDeltaSignedCodecs1 = {
-        CodecEncoding.getCanonicalCodec(2), // (1,256,1)
+    public static BHSDCodec[] nonDeltaSignedCodecs1 = {CodecEncoding.getCanonicalCodec(2), // (1,256,1)
         CodecEncoding.getCanonicalCodec(6), // (2,256,1)
         CodecEncoding.getCanonicalCodec(10), // (3,256,1)
         CodecEncoding.getCanonicalCodec(14) // (4,256,1)
     };
 
-    public static BHSDCodec[] nonDeltaSignedCodecs2 = {
-        CodecEncoding.getCanonicalCodec(18), // (5,4,1)
+    public static BHSDCodec[] nonDeltaSignedCodecs2 = {CodecEncoding.getCanonicalCodec(18), // (5,4,1)
         CodecEncoding.getCanonicalCodec(21), // (5,16,1)
         CodecEncoding.getCanonicalCodec(24), // (5,32,1)
         CodecEncoding.getCanonicalCodec(27), // (5,64,1)
         CodecEncoding.getCanonicalCodec(30) // (5,128,1)
     };
 
-    public static BHSDCodec[] nonDeltaDoubleSignedCodecs1 = {
-        CodecEncoding.getCanonicalCodec(19), // (5,4,2)
+    public static BHSDCodec[] nonDeltaDoubleSignedCodecs1 = {CodecEncoding.getCanonicalCodec(19), // (5,4,2)
         CodecEncoding.getCanonicalCodec(22), // (5,16,2)
         CodecEncoding.getCanonicalCodec(25), // (5,32,2)
         CodecEncoding.getCanonicalCodec(28), // (5,64,2)
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/ClassBands.java b/src/main/java/org/apache/commons/compress/harmony/pack200/ClassBands.java
index 029a0e1..6325746 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/ClassBands.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/ClassBands.java
@@ -34,8 +34,7 @@ import org.objectweb.asm.Label;
 import org.objectweb.asm.Opcodes;
 
 /**
- * Class bands (corresponds to the <code>class_bands</code> set of bands in the
- * pack200 specification)
+ * Class bands (corresponds to the <code>class_bands</code> set of bands in the pack200 specification)
  */
 public class ClassBands extends BandSet {
 
@@ -139,7 +138,8 @@ public class ClassBands extends BandSet {
     private List classInnerClassesOuterRCN;
     private List classInnerClassesNameRUN;
 
-    public ClassBands(final Segment segment, final int numClasses, final int effort, final boolean stripDebug) throws IOException {
+    public ClassBands(final Segment segment, final int numClasses, final int effort, final boolean stripDebug)
+        throws IOException {
         super(effort, segment.getSegmentHeader());
         this.stripDebug = stripDebug;
         this.segment = segment;
@@ -167,10 +167,14 @@ public class ClassBands extends BandSet {
         class_RIA_bands = new MetadataBandGroup("RIA", MetadataBandGroup.CONTEXT_CLASS, cpBands, segmentHeader, effort);
         field_RVA_bands = new MetadataBandGroup("RVA", MetadataBandGroup.CONTEXT_FIELD, cpBands, segmentHeader, effort);
         field_RIA_bands = new MetadataBandGroup("RIA", MetadataBandGroup.CONTEXT_FIELD, cpBands, segmentHeader, effort);
-        method_RVA_bands = new MetadataBandGroup("RVA", MetadataBandGroup.CONTEXT_METHOD, cpBands, segmentHeader, effort);
-        method_RIA_bands = new MetadataBandGroup("RIA", MetadataBandGroup.CONTEXT_METHOD, cpBands, segmentHeader, effort);
-        method_RVPA_bands = new MetadataBandGroup("RVPA", MetadataBandGroup.CONTEXT_METHOD, cpBands, segmentHeader, effort);
-        method_RIPA_bands = new MetadataBandGroup("RIPA", MetadataBandGroup.CONTEXT_METHOD, cpBands, segmentHeader, effort);
+        method_RVA_bands = new MetadataBandGroup("RVA", MetadataBandGroup.CONTEXT_METHOD, cpBands, segmentHeader,
+            effort);
+        method_RIA_bands = new MetadataBandGroup("RIA", MetadataBandGroup.CONTEXT_METHOD, cpBands, segmentHeader,
+            effort);
+        method_RVPA_bands = new MetadataBandGroup("RVPA", MetadataBandGroup.CONTEXT_METHOD, cpBands, segmentHeader,
+            effort);
+        method_RIPA_bands = new MetadataBandGroup("RIPA", MetadataBandGroup.CONTEXT_METHOD, cpBands, segmentHeader,
+            effort);
         method_AD_bands = new MetadataBandGroup("AD", MetadataBandGroup.CONTEXT_METHOD, cpBands, segmentHeader, effort);
 
         createNewAttributeBands();
@@ -199,8 +203,8 @@ public class ClassBands extends BandSet {
         }
     }
 
-    public void addClass(final int major, int flags, final String className,
-            final String signature, final String superName, final String[] interfaces) {
+    public void addClass(final int major, int flags, final String className, final String signature,
+        final String superName, final String[] interfaces) {
         class_this[index] = cpBands.getCPClass(className);
         class_super[index] = cpBands.getCPClass(superName);
         class_interface_count[index] = interfaces.length;
@@ -210,26 +214,28 @@ public class ClassBands extends BandSet {
         }
         major_versions[index] = major;
         class_flags[index] = flags;
-        if(!anySyntheticClasses && ((flags & (1 << 12)) != 0) && segment.getCurrentClassReader().hasSyntheticAttributes()) {
+        if (!anySyntheticClasses && ((flags & (1 << 12)) != 0)
+            && segment.getCurrentClassReader().hasSyntheticAttributes()) {
             cpBands.addCPUtf8("Synthetic");
             anySyntheticClasses = true;
         }
-        if((flags & Opcodes.ACC_DEPRECATED) != 0) { // ASM uses (1<<17) flag for deprecated
+        if ((flags & Opcodes.ACC_DEPRECATED) != 0) { // ASM uses (1<<17) flag for deprecated
             flags = flags & ~Opcodes.ACC_DEPRECATED;
-            flags = flags | (1<<20);
+            flags = flags | (1 << 20);
         }
-        if(signature != null) {
+        if (signature != null) {
             class_flags[index] |= (1 << 19);
             classSignature.add(cpBands.getCPSignature(signature));
         }
     }
 
     public void currentClassReferencesInnerClass(final CPClass inner) {
-        if(!(index >= class_this.length)) {
+        if (!(index >= class_this.length)) {
             final CPClass currentClass = class_this[index];
-            if(currentClass != null && !currentClass.equals(inner) && !isInnerClassOf(currentClass.toString(), inner)) {
-                Set referencedInnerClasses = (Set)classReferencesInnerClass.get(currentClass);
-                if(referencedInnerClasses == null) {
+            if (currentClass != null && !currentClass.equals(inner)
+                && !isInnerClassOf(currentClass.toString(), inner)) {
+                Set referencedInnerClasses = (Set) classReferencesInnerClass.get(currentClass);
+                if (referencedInnerClasses == null) {
                     referencedInnerClasses = new HashSet();
                     classReferencesInnerClass.put(currentClass, referencedInnerClasses);
                 }
@@ -239,9 +245,9 @@ public class ClassBands extends BandSet {
     }
 
     private boolean isInnerClassOf(final String possibleInner, final CPClass possibleOuter) {
-        if(isInnerClass(possibleInner)) {
+        if (isInnerClass(possibleInner)) {
             final String superClassName = possibleInner.substring(0, possibleInner.lastIndexOf('$'));
-            if(superClassName.equals(possibleOuter.toString())) {
+            if (superClassName.equals(possibleOuter.toString())) {
                 return true;
             }
             return isInnerClassOf(superClassName, possibleOuter);
@@ -253,23 +259,23 @@ public class ClassBands extends BandSet {
         return possibleInner.indexOf('$') != -1;
     }
 
-    public void addField(int flags, final String name, final String desc, final String signature,
-            final Object value) {
+    public void addField(int flags, final String name, final String desc, final String signature, final Object value) {
         flags = flags & 0xFFFF;
         tempFieldDesc.add(cpBands.getCPNameAndType(name, desc));
         if (signature != null) {
             fieldSignature.add(cpBands.getCPSignature(signature));
             flags |= (1 << 19);
         }
-        if((flags & Opcodes.ACC_DEPRECATED) != 0) { // ASM uses (1<<17) flag for deprecated
+        if ((flags & Opcodes.ACC_DEPRECATED) != 0) { // ASM uses (1<<17) flag for deprecated
             flags = flags & ~Opcodes.ACC_DEPRECATED;
-            flags = flags | (1<<20);
+            flags = flags | (1 << 20);
         }
         if (value != null) {
             fieldConstantValueKQ.add(cpBands.getConstant(value));
             flags |= (1 << 17);
         }
-        if(!anySyntheticFields && ((flags & (1 << 12)) != 0) && segment.getCurrentClassReader().hasSyntheticAttributes()) {
+        if (!anySyntheticFields && ((flags & (1 << 12)) != 0)
+            && segment.getCurrentClassReader().hasSyntheticAttributes()) {
             cpBands.addCPUtf8("Synthetic");
             anySyntheticFields = true;
         }
@@ -277,9 +283,8 @@ public class ClassBands extends BandSet {
     }
 
     /**
-     * All input classes for the segment have now been read in, so this method
-     * is called so that this class can calculate/complete anything it could not
-     * do while classes were being read.
+     * All input classes for the segment have now been read in, so this method is called so that this class can
+     * calculate/complete anything it could not do while classes were being read.
      */
     public void finaliseBands() {
         final int defaultMajorVersion = segmentHeader.getDefaultMajorVersion();
@@ -315,8 +320,8 @@ public class ClassBands extends BandSet {
                 }
             }
             if (codeHeaders[i] != 0) { // Remove the redundant values from
-                                        // codeHandlerCount, codeMaxLocals and
-                                        // codeMaxStack
+                                       // codeHandlerCount, codeMaxLocals and
+                                       // codeMaxStack
                 codeHandlerCount.remove(i - removed);
                 codeMaxLocals.remove(i - removed);
                 codeMaxStack.remove(i - removed);
@@ -332,26 +337,24 @@ public class ClassBands extends BandSet {
         for (int i = 0; i < class_this.length; i++) {
             final CPClass cpClass = class_this[i];
             final Set referencedInnerClasses = (Set) classReferencesInnerClass.get(cpClass);
-            if(referencedInnerClasses != null) {
+            if (referencedInnerClasses != null) {
                 int innerN = 0;
                 final List innerClasses = segment.getIcBands().getInnerClassesForOuter(cpClass.toString());
-                if(innerClasses != null) {
-                    for (final Iterator iterator2 = innerClasses.iterator(); iterator2
-                            .hasNext();) {
-                        referencedInnerClasses.remove(((IcTuple)iterator2.next()).C);
+                if (innerClasses != null) {
+                    for (final Iterator iterator2 = innerClasses.iterator(); iterator2.hasNext();) {
+                        referencedInnerClasses.remove(((IcTuple) iterator2.next()).C);
                     }
                 }
-                for (final Iterator iterator2 = referencedInnerClasses.iterator(); iterator2
-                        .hasNext();) {
+                for (final Iterator iterator2 = referencedInnerClasses.iterator(); iterator2.hasNext();) {
                     final CPClass inner = (CPClass) iterator2.next();
                     final IcTuple icTuple = segment.getIcBands().getIcTuple(inner);
-                    if(icTuple != null && ! icTuple.isAnonymous()) {
+                    if (icTuple != null && !icTuple.isAnonymous()) {
                         // should transmit an icLocal entry
                         icLocal.add(icTuple);
                         innerN++;
                     }
                 }
-                if(innerN != 0) {
+                if (innerN != 0) {
                     innerClassesN.add(innerN);
                     class_flags[i] |= (1 << 23);
                 }
@@ -365,7 +368,7 @@ public class ClassBands extends BandSet {
         for (int i = 0; i < class_InnerClasses_RC.length; i++) {
             final IcTuple icTuple = (IcTuple) icLocal.get(i);
             class_InnerClasses_RC[i] = (icTuple.C);
-            if(icTuple.C2 == null && icTuple.N == null) {
+            if (icTuple.C2 == null && icTuple.N == null) {
                 class_InnerClasses_F[i] = 0;
             } else {
                 if (icTuple.F == 0) {
@@ -383,38 +386,38 @@ public class ClassBands extends BandSet {
         final IntList methodAttrCalls = new IntList();
         final IntList codeAttrCalls = new IntList();
 
-        if(class_RVA_bands.hasContent()) {
+        if (class_RVA_bands.hasContent()) {
             classAttrCalls.add(class_RVA_bands.numBackwardsCalls());
         }
-        if(class_RIA_bands.hasContent()) {
+        if (class_RIA_bands.hasContent()) {
             classAttrCalls.add(class_RIA_bands.numBackwardsCalls());
         }
-        if(field_RVA_bands.hasContent()) {
+        if (field_RVA_bands.hasContent()) {
             fieldAttrCalls.add(field_RVA_bands.numBackwardsCalls());
         }
-        if(field_RIA_bands.hasContent()) {
+        if (field_RIA_bands.hasContent()) {
             fieldAttrCalls.add(field_RIA_bands.numBackwardsCalls());
         }
-        if(method_RVA_bands.hasContent()) {
+        if (method_RVA_bands.hasContent()) {
             methodAttrCalls.add(method_RVA_bands.numBackwardsCalls());
         }
-        if(method_RIA_bands.hasContent()) {
+        if (method_RIA_bands.hasContent()) {
             methodAttrCalls.add(method_RIA_bands.numBackwardsCalls());
         }
-        if(method_RVPA_bands.hasContent()) {
+        if (method_RVPA_bands.hasContent()) {
             methodAttrCalls.add(method_RVPA_bands.numBackwardsCalls());
         }
-        if(method_RIPA_bands.hasContent()) {
+        if (method_RIPA_bands.hasContent()) {
             methodAttrCalls.add(method_RIPA_bands.numBackwardsCalls());
         }
-        if(method_AD_bands.hasContent()) {
+        if (method_AD_bands.hasContent()) {
             methodAttrCalls.add(method_AD_bands.numBackwardsCalls());
         }
 
         // Sort non-predefined attribute bands
         final Comparator comparator = (arg0, arg1) -> {
-            final NewAttributeBands bands0 = (NewAttributeBands)arg0;
-            final NewAttributeBands bands1 = (NewAttributeBands)arg1;
+            final NewAttributeBands bands0 = (NewAttributeBands) arg0;
+            final NewAttributeBands bands1 = (NewAttributeBands) arg1;
             return bands0.getFlagIndex() - bands1.getFlagIndex();
         };
         Collections.sort(classAttributeBands, comparator);
@@ -424,7 +427,7 @@ public class ClassBands extends BandSet {
 
         for (final Iterator iterator = classAttributeBands.iterator(); iterator.hasNext();) {
             final NewAttributeBands bands = (NewAttributeBands) iterator.next();
-            if(bands.isUsedAtLeastOnce()) {
+            if (bands.isUsedAtLeastOnce()) {
                 final int[] backwardsCallCounts = bands.numBackwardsCalls();
                 for (int i = 0; i < backwardsCallCounts.length; i++) {
                     classAttrCalls.add(backwardsCallCounts[i]);
@@ -433,7 +436,7 @@ public class ClassBands extends BandSet {
         }
         for (final Iterator iterator = methodAttributeBands.iterator(); iterator.hasNext();) {
             final NewAttributeBands bands = (NewAttributeBands) iterator.next();
-            if(bands.isUsedAtLeastOnce()) {
+            if (bands.isUsedAtLeastOnce()) {
                 final int[] backwardsCallCounts = bands.numBackwardsCalls();
                 for (int i = 0; i < backwardsCallCounts.length; i++) {
                     methodAttrCalls.add(backwardsCallCounts[i]);
@@ -442,7 +445,7 @@ public class ClassBands extends BandSet {
         }
         for (final Iterator iterator = fieldAttributeBands.iterator(); iterator.hasNext();) {
             final NewAttributeBands bands = (NewAttributeBands) iterator.next();
-            if(bands.isUsedAtLeastOnce()) {
+            if (bands.isUsedAtLeastOnce()) {
                 final int[] backwardsCallCounts = bands.numBackwardsCalls();
                 for (int i = 0; i < backwardsCallCounts.length; i++) {
                     fieldAttrCalls.add(backwardsCallCounts[i]);
@@ -451,7 +454,7 @@ public class ClassBands extends BandSet {
         }
         for (final Iterator iterator = codeAttributeBands.iterator(); iterator.hasNext();) {
             final NewAttributeBands bands = (NewAttributeBands) iterator.next();
-            if(bands.isUsedAtLeastOnce()) {
+            if (bands.isUsedAtLeastOnce()) {
                 final int[] backwardsCallCounts = bands.numBackwardsCalls();
                 for (int i = 0; i < backwardsCallCounts.length; i++) {
                     codeAttrCalls.add(backwardsCallCounts[i]);
@@ -469,24 +472,18 @@ public class ClassBands extends BandSet {
     public void pack(final OutputStream out) throws IOException, Pack200Exception {
         PackingUtils.log("Writing class bands...");
 
-        byte[] encodedBand = encodeBandInt("class_this", getInts(class_this),
-                Codec.DELTA5);
+        byte[] encodedBand = encodeBandInt("class_this", getInts(class_this), Codec.DELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from class_this[" + class_this.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from class_this[" + class_this.length + "]");
 
-        encodedBand = encodeBandInt("class_super", getInts(class_super),
-                Codec.DELTA5);
+        encodedBand = encodeBandInt("class_super", getInts(class_super), Codec.DELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from class_super[" + class_super.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from class_super[" + class_super.length + "]");
 
-        encodedBand = encodeBandInt("class_interface_count",
-                class_interface_count, Codec.DELTA5);
+        encodedBand = encodeBandInt("class_interface_count", class_interface_count, Codec.DELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from class_interface_count["
-                + class_interface_count.length + "]");
+        PackingUtils.log(
+            "Wrote " + encodedBand.length + " bytes from class_interface_count[" + class_interface_count.length + "]");
 
         final int totalInterfaces = sum(class_interface_count);
         final int[] classInterface = new int[totalInterfaces];
@@ -501,25 +498,19 @@ public class ClassBands extends BandSet {
             }
         }
 
-        encodedBand = encodeBandInt("class_interface", classInterface,
-                Codec.DELTA5);
+        encodedBand = encodeBandInt("class_interface", classInterface, Codec.DELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from class_interface[" + classInterface.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from class_interface[" + classInterface.length + "]");
 
-        encodedBand = encodeBandInt("class_field_count", class_field_count,
-                Codec.DELTA5);
+        encodedBand = encodeBandInt("class_field_count", class_field_count, Codec.DELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from class_field_count[" + class_field_count.length
-                + "]");
+        PackingUtils
+            .log("Wrote " + encodedBand.length + " bytes from class_field_count[" + class_field_count.length + "]");
 
-        encodedBand = encodeBandInt("class_method_count", class_method_count,
-                Codec.DELTA5);
+        encodedBand = encodeBandInt("class_method_count", class_method_count, Codec.DELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from class_method_count[" + class_method_count.length
-                + "]");
+        PackingUtils
+            .log("Wrote " + encodedBand.length + " bytes from class_method_count[" + class_method_count.length + "]");
 
         final int totalFields = sum(class_field_count);
         final int[] fieldDescr = new int[totalFields];
@@ -534,8 +525,7 @@ public class ClassBands extends BandSet {
 
         encodedBand = encodeBandInt("field_descr", fieldDescr, Codec.DELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from field_descr[" + fieldDescr.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from field_descr[" + fieldDescr.length + "]");
 
         writeFieldAttributeBands(out);
 
@@ -552,8 +542,7 @@ public class ClassBands extends BandSet {
 
         encodedBand = encodeBandInt("method_descr", methodDescr, Codec.MDELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from method_descr[" + methodDescr.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from method_descr[" + methodDescr.length + "]");
 
         writeMethodAttributeBands(out);
         writeClassAttributeBands(out);
@@ -568,106 +557,80 @@ public class ClassBands extends BandSet {
         return sum;
     }
 
-    private void writeFieldAttributeBands(final OutputStream out) throws IOException,
-            Pack200Exception {
-        byte[] encodedBand = encodeFlags("field_flags", field_flags,
-                Codec.UNSIGNED5, Codec.UNSIGNED5, segmentHeader
-                        .have_field_flags_hi());
+    private void writeFieldAttributeBands(final OutputStream out) throws IOException, Pack200Exception {
+        byte[] encodedBand = encodeFlags("field_flags", field_flags, Codec.UNSIGNED5, Codec.UNSIGNED5,
+            segmentHeader.have_field_flags_hi());
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from field_flags[" + field_flags.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from field_flags[" + field_flags.length + "]");
 
         // *field_attr_count :UNSIGNED5 [COUNT(1<<16,...)]
         // *field_attr_indexes :UNSIGNED5 [SUM(*field_attr_count)]
-        encodedBand = encodeBandInt("field_attr_calls", field_attr_calls,
-                Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("field_attr_calls", field_attr_calls, Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from field_attr_calls[" + field_attr_calls.length
-                + "]");
+        PackingUtils
+            .log("Wrote " + encodedBand.length + " bytes from field_attr_calls[" + field_attr_calls.length + "]");
 
-        encodedBand = encodeBandInt("fieldConstantValueKQ",
-                cpEntryListToArray(fieldConstantValueKQ), Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("fieldConstantValueKQ", cpEntryListToArray(fieldConstantValueKQ), Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from fieldConstantValueKQ["
-                + fieldConstantValueKQ.size() + "]");
+        PackingUtils.log(
+            "Wrote " + encodedBand.length + " bytes from fieldConstantValueKQ[" + fieldConstantValueKQ.size() + "]");
 
-        encodedBand = encodeBandInt("fieldSignature",
-                cpEntryListToArray(fieldSignature), Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("fieldSignature", cpEntryListToArray(fieldSignature), Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from fieldSignature[" + fieldSignature.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from fieldSignature[" + fieldSignature.size() + "]");
 
         field_RVA_bands.pack(out);
         field_RIA_bands.pack(out);
-        for (final Iterator iterator = fieldAttributeBands.iterator(); iterator
-                .hasNext();) {
+        for (final Iterator iterator = fieldAttributeBands.iterator(); iterator.hasNext();) {
             final NewAttributeBands bands = (NewAttributeBands) iterator.next();
             bands.pack(out);
         }
     }
 
-    private void writeMethodAttributeBands(final OutputStream out)
-            throws IOException, Pack200Exception {
-        byte[] encodedBand = encodeFlags("method_flags", method_flags,
-                Codec.UNSIGNED5, Codec.UNSIGNED5, segmentHeader
-                        .have_method_flags_hi());
+    private void writeMethodAttributeBands(final OutputStream out) throws IOException, Pack200Exception {
+        byte[] encodedBand = encodeFlags("method_flags", method_flags, Codec.UNSIGNED5, Codec.UNSIGNED5,
+            segmentHeader.have_method_flags_hi());
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from method_flags[" + method_flags.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from method_flags[" + method_flags.length + "]");
 
         // *method_attr_count :UNSIGNED5 [COUNT(1<<16,...)]
         // *method_attr_indexes :UNSIGNED5 [SUM(*method_attr_count)]
-        encodedBand = encodeBandInt("method_attr_calls", method_attr_calls,
-                Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("method_attr_calls", method_attr_calls, Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from method_attr_calls[" + method_attr_calls.length
-                + "]");
+        PackingUtils
+            .log("Wrote " + encodedBand.length + " bytes from method_attr_calls[" + method_attr_calls.length + "]");
 
-        encodedBand = encodeBandInt("methodExceptionNumber",
-                methodExceptionNumber.toArray(), Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("methodExceptionNumber", methodExceptionNumber.toArray(), Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from methodExceptionNumber["
-                + methodExceptionNumber.size() + "]");
+        PackingUtils.log(
+            "Wrote " + encodedBand.length + " bytes from methodExceptionNumber[" + methodExceptionNumber.size() + "]");
 
-        encodedBand = encodeBandInt("methodExceptionClasses",
-                cpEntryListToArray(methodExceptionClasses), Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("methodExceptionClasses", cpEntryListToArray(methodExceptionClasses),
+            Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from methodExceptionClasses["
-                + methodExceptionClasses.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from methodExceptionClasses["
+            + methodExceptionClasses.size() + "]");
 
-        encodedBand = encodeBandInt("methodSignature",
-                cpEntryListToArray(methodSignature), Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("methodSignature", cpEntryListToArray(methodSignature), Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils
-                .log("Wrote " + encodedBand.length
-                        + " bytes from methodSignature["
-                        + methodSignature.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from methodSignature[" + methodSignature.size() + "]");
 
         method_RVA_bands.pack(out);
         method_RIA_bands.pack(out);
         method_RVPA_bands.pack(out);
         method_RIPA_bands.pack(out);
         method_AD_bands.pack(out);
-        for (final Iterator iterator = methodAttributeBands.iterator(); iterator
-                .hasNext();) {
+        for (final Iterator iterator = methodAttributeBands.iterator(); iterator.hasNext();) {
             final NewAttributeBands bands = (NewAttributeBands) iterator.next();
             bands.pack(out);
         }
     }
 
-    private void writeClassAttributeBands(final OutputStream out) throws IOException,
-            Pack200Exception {
-        byte[] encodedBand = encodeFlags("class_flags", class_flags,
-                Codec.UNSIGNED5, Codec.UNSIGNED5, segmentHeader
-                        .have_class_flags_hi());
+    private void writeClassAttributeBands(final OutputStream out) throws IOException, Pack200Exception {
+        byte[] encodedBand = encodeFlags("class_flags", class_flags, Codec.UNSIGNED5, Codec.UNSIGNED5,
+            segmentHeader.have_class_flags_hi());
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from class_flags[" + class_flags.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from class_flags[" + class_flags.length + "]");
 
         // These bands are not needed, but could be used to reduce the size of
         // the archive if there are enough different non-standard attributes
@@ -677,99 +640,73 @@ public class ClassBands extends BandSet {
         // *class_attr_count :UNSIGNED5 [COUNT(1<<16,...)]
         // *class_attr_indexes :UNSIGNED5 [SUM(*class_attr_count)]
 
-        encodedBand = encodeBandInt("class_attr_calls", class_attr_calls,
-                Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("class_attr_calls", class_attr_calls, Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from class_attr_calls[" + class_attr_calls.length
-                + "]");
+        PackingUtils
+            .log("Wrote " + encodedBand.length + " bytes from class_attr_calls[" + class_attr_calls.length + "]");
 
-        encodedBand = encodeBandInt("classSourceFile",
-                cpEntryOrNullListToArray(classSourceFile), Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("classSourceFile", cpEntryOrNullListToArray(classSourceFile), Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils
-                .log("Wrote " + encodedBand.length
-                        + " bytes from classSourceFile["
-                        + classSourceFile.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from classSourceFile[" + classSourceFile.size() + "]");
 
-        encodedBand = encodeBandInt("class_enclosing_method_RC",
-                cpEntryListToArray(classEnclosingMethodClass), Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("class_enclosing_method_RC", cpEntryListToArray(classEnclosingMethodClass),
+            Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from class_enclosing_method_RC["
-                + classEnclosingMethodClass.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from class_enclosing_method_RC["
+            + classEnclosingMethodClass.size() + "]");
 
-        encodedBand = encodeBandInt("class_EnclosingMethod_RDN",
-                cpEntryOrNullListToArray(classEnclosingMethodDesc),
-                Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("class_EnclosingMethod_RDN", cpEntryOrNullListToArray(classEnclosingMethodDesc),
+            Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from class_EnclosingMethod_RDN["
-                + classEnclosingMethodDesc.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from class_EnclosingMethod_RDN["
+            + classEnclosingMethodDesc.size() + "]");
 
-        encodedBand = encodeBandInt("class_Signature_RS",
-                cpEntryListToArray(classSignature), Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("class_Signature_RS", cpEntryListToArray(classSignature), Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from class_Signature_RS[" + classSignature.size()
-                + "]");
+        PackingUtils
+            .log("Wrote " + encodedBand.length + " bytes from class_Signature_RS[" + classSignature.size() + "]");
 
         class_RVA_bands.pack(out);
         class_RIA_bands.pack(out);
 
-        encodedBand = encodeBandInt("class_InnerClasses_N",
-                class_InnerClasses_N, Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("class_InnerClasses_N", class_InnerClasses_N, Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from class_InnerClasses_N["
-                + class_InnerClasses_N.length + "]");
+        PackingUtils.log(
+            "Wrote " + encodedBand.length + " bytes from class_InnerClasses_N[" + class_InnerClasses_N.length + "]");
 
-        encodedBand = encodeBandInt("class_InnerClasses_RC",
-                getInts(class_InnerClasses_RC), Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("class_InnerClasses_RC", getInts(class_InnerClasses_RC), Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from class_InnerClasses_RC["
-                + class_InnerClasses_RC.length + "]");
+        PackingUtils.log(
+            "Wrote " + encodedBand.length + " bytes from class_InnerClasses_RC[" + class_InnerClasses_RC.length + "]");
 
-        encodedBand = encodeBandInt("class_InnerClasses_F",
-                class_InnerClasses_F, Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("class_InnerClasses_F", class_InnerClasses_F, Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from class_InnerClasses_F["
-                + class_InnerClasses_F.length + "]");
+        PackingUtils.log(
+            "Wrote " + encodedBand.length + " bytes from class_InnerClasses_F[" + class_InnerClasses_F.length + "]");
 
-        encodedBand = encodeBandInt("class_InnerClasses_outer_RCN",
-                cpEntryOrNullListToArray(classInnerClassesOuterRCN),
-                Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("class_InnerClasses_outer_RCN", cpEntryOrNullListToArray(classInnerClassesOuterRCN),
+            Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from class_InnerClasses_outer_RCN["
-                + classInnerClassesOuterRCN.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from class_InnerClasses_outer_RCN["
+            + classInnerClassesOuterRCN.size() + "]");
 
-        encodedBand = encodeBandInt("class_InnerClasses_name_RUN",
-                cpEntryOrNullListToArray(classInnerClassesNameRUN),
-                Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("class_InnerClasses_name_RUN", cpEntryOrNullListToArray(classInnerClassesNameRUN),
+            Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from class_InnerClasses_name_RUN["
-                + classInnerClassesNameRUN.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from class_InnerClasses_name_RUN["
+            + classInnerClassesNameRUN.size() + "]");
 
-        encodedBand = encodeBandInt("classFileVersionMinor",
-                classFileVersionMinor.toArray(), Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("classFileVersionMinor", classFileVersionMinor.toArray(), Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from classFileVersionMinor["
-                + classFileVersionMinor.size() + "]");
+        PackingUtils.log(
+            "Wrote " + encodedBand.length + " bytes from classFileVersionMinor[" + classFileVersionMinor.size() + "]");
 
-        encodedBand = encodeBandInt("classFileVersionMajor",
-                classFileVersionMajor.toArray(), Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("classFileVersionMajor", classFileVersionMajor.toArray(), Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from classFileVersionMajor["
-                + classFileVersionMajor.size() + "]");
+        PackingUtils.log(
+            "Wrote " + encodedBand.length + " bytes from classFileVersionMajor[" + classFileVersionMajor.size() + "]");
 
-        for (final Iterator iterator = classAttributeBands.iterator(); iterator
-                .hasNext();) {
+        for (final Iterator iterator = classAttributeBands.iterator(); iterator.hasNext();) {
             final NewAttributeBands bands = (NewAttributeBands) iterator.next();
             bands.pack(out);
         }
@@ -778,198 +715,152 @@ public class ClassBands extends BandSet {
     private int[] getInts(final CPClass[] cpClasses) {
         final int[] ints = new int[cpClasses.length];
         for (int i = 0; i < ints.length; i++) {
-            if(cpClasses[i] != null) {
+            if (cpClasses[i] != null) {
                 ints[i] = cpClasses[i].getIndex();
             }
         }
         return ints;
     }
 
-    private void writeCodeBands(final OutputStream out) throws IOException,
-            Pack200Exception {
-        byte[] encodedBand = encodeBandInt("codeHeaders", codeHeaders,
-                Codec.BYTE1);
+    private void writeCodeBands(final OutputStream out) throws IOException, Pack200Exception {
+        byte[] encodedBand = encodeBandInt("codeHeaders", codeHeaders, Codec.BYTE1);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from codeHeaders[" + codeHeaders.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from codeHeaders[" + codeHeaders.length + "]");
 
-        encodedBand = encodeBandInt("codeMaxStack", codeMaxStack.toArray(),
-                Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("codeMaxStack", codeMaxStack.toArray(), Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from codeMaxStack[" + codeMaxStack.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from codeMaxStack[" + codeMaxStack.size() + "]");
 
-        encodedBand = encodeBandInt("codeMaxLocals", codeMaxLocals.toArray(),
-                Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("codeMaxLocals", codeMaxLocals.toArray(), Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from codeMaxLocals[" + codeMaxLocals.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from codeMaxLocals[" + codeMaxLocals.size() + "]");
 
-        encodedBand = encodeBandInt("codeHandlerCount", codeHandlerCount
-                .toArray(), Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("codeHandlerCount", codeHandlerCount.toArray(), Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from codeHandlerCount[" + codeHandlerCount.size()
-                + "]");
+        PackingUtils
+            .log("Wrote " + encodedBand.length + " bytes from codeHandlerCount[" + codeHandlerCount.size() + "]");
 
-        encodedBand = encodeBandInt("codeHandlerStartP",
-                integerListToArray(codeHandlerStartP), Codec.BCI5);
+        encodedBand = encodeBandInt("codeHandlerStartP", integerListToArray(codeHandlerStartP), Codec.BCI5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from codeHandlerStartP[" + codeHandlerStartP.size()
-                + "]");
+        PackingUtils
+            .log("Wrote " + encodedBand.length + " bytes from codeHandlerStartP[" + codeHandlerStartP.size() + "]");
 
-        encodedBand = encodeBandInt("codeHandlerEndPO",
-                integerListToArray(codeHandlerEndPO), Codec.BRANCH5);
+        encodedBand = encodeBandInt("codeHandlerEndPO", integerListToArray(codeHandlerEndPO), Codec.BRANCH5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from codeHandlerEndPO[" + codeHandlerEndPO.size()
-                + "]");
+        PackingUtils
+            .log("Wrote " + encodedBand.length + " bytes from codeHandlerEndPO[" + codeHandlerEndPO.size() + "]");
 
-        encodedBand = encodeBandInt("codeHandlerCatchPO",
-                integerListToArray(codeHandlerCatchPO), Codec.BRANCH5);
+        encodedBand = encodeBandInt("codeHandlerCatchPO", integerListToArray(codeHandlerCatchPO), Codec.BRANCH5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from codeHandlerCatchPO[" + codeHandlerCatchPO.size()
-                + "]");
+        PackingUtils
+            .log("Wrote " + encodedBand.length + " bytes from codeHandlerCatchPO[" + codeHandlerCatchPO.size() + "]");
 
-        encodedBand = encodeBandInt("codeHandlerClass",
-                cpEntryOrNullListToArray(codeHandlerClass), Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("codeHandlerClass", cpEntryOrNullListToArray(codeHandlerClass), Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from codeHandlerClass[" + codeHandlerClass.size()
-                + "]");
+        PackingUtils
+            .log("Wrote " + encodedBand.length + " bytes from codeHandlerClass[" + codeHandlerClass.size() + "]");
 
         writeCodeAttributeBands(out);
     }
 
-    private void writeCodeAttributeBands(final OutputStream out) throws IOException,
-            Pack200Exception {
-        byte[] encodedBand = encodeFlags("codeFlags",
-                longListToArray(codeFlags), Codec.UNSIGNED5, Codec.UNSIGNED5,
-                segmentHeader.have_code_flags_hi());
+    private void writeCodeAttributeBands(final OutputStream out) throws IOException, Pack200Exception {
+        byte[] encodedBand = encodeFlags("codeFlags", longListToArray(codeFlags), Codec.UNSIGNED5, Codec.UNSIGNED5,
+            segmentHeader.have_code_flags_hi());
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from codeFlags[" + codeFlags.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from codeFlags[" + codeFlags.size() + "]");
 
         // *code_attr_count :UNSIGNED5 [COUNT(1<<16,...)]
         // *code_attr_indexes :UNSIGNED5 [SUM(*code_attr_count)]
-        encodedBand = encodeBandInt("code_attr_calls", code_attr_calls,
-                Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("code_attr_calls", code_attr_calls, Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils
-                .log("Wrote " + encodedBand.length
-                        + " bytes from code_attr_calls["
-                        + code_attr_calls.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_attr_calls[" + code_attr_calls.length + "]");
 
-        encodedBand = encodeBandInt("code_LineNumberTable_N",
-                codeLineNumberTableN.toArray(), Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("code_LineNumberTable_N", codeLineNumberTableN.toArray(), Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from code_LineNumberTable_N["
-                + codeLineNumberTableN.size() + "]");
+        PackingUtils.log(
+            "Wrote " + encodedBand.length + " bytes from code_LineNumberTable_N[" + codeLineNumberTableN.size() + "]");
 
-        encodedBand = encodeBandInt("code_LineNumberTable_bci_P",
-                integerListToArray(codeLineNumberTableBciP), Codec.BCI5);
+        encodedBand = encodeBandInt("code_LineNumberTable_bci_P", integerListToArray(codeLineNumberTableBciP),
+            Codec.BCI5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from code_LineNumberTable_bci_P["
-                + codeLineNumberTableBciP.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LineNumberTable_bci_P["
+            + codeLineNumberTableBciP.size() + "]");
 
-        encodedBand = encodeBandInt("code_LineNumberTable_line",
-                codeLineNumberTableLine.toArray(), Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("code_LineNumberTable_line", codeLineNumberTableLine.toArray(), Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from code_LineNumberTable_line["
-                + codeLineNumberTableLine.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LineNumberTable_line["
+            + codeLineNumberTableLine.size() + "]");
 
-        encodedBand = encodeBandInt("code_LocalVariableTable_N",
-                codeLocalVariableTableN.toArray(), Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("code_LocalVariableTable_N", codeLocalVariableTableN.toArray(), Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from code_LocalVariableTable_N["
-                + codeLocalVariableTableN.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTable_N["
+            + codeLocalVariableTableN.size() + "]");
 
-        encodedBand = encodeBandInt("code_LocalVariableTable_bci_P",
-                integerListToArray(codeLocalVariableTableBciP), Codec.BCI5);
+        encodedBand = encodeBandInt("code_LocalVariableTable_bci_P", integerListToArray(codeLocalVariableTableBciP),
+            Codec.BCI5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from code_LocalVariableTable_bci_P["
-                + codeLocalVariableTableBciP.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTable_bci_P["
+            + codeLocalVariableTableBciP.size() + "]");
 
-        encodedBand = encodeBandInt("code_LocalVariableTable_span_O",
-                integerListToArray(codeLocalVariableTableSpanO), Codec.BRANCH5);
+        encodedBand = encodeBandInt("code_LocalVariableTable_span_O", integerListToArray(codeLocalVariableTableSpanO),
+            Codec.BRANCH5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from code_LocalVariableTable_span_O["
-                + codeLocalVariableTableSpanO.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTable_span_O["
+            + codeLocalVariableTableSpanO.size() + "]");
 
-        encodedBand = encodeBandInt("code_LocalVariableTable_name_RU",
-                cpEntryListToArray(codeLocalVariableTableNameRU),
-                Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("code_LocalVariableTable_name_RU", cpEntryListToArray(codeLocalVariableTableNameRU),
+            Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from code_LocalVariableTable_name_RU["
-                + codeLocalVariableTableNameRU.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTable_name_RU["
+            + codeLocalVariableTableNameRU.size() + "]");
 
-        encodedBand = encodeBandInt("code_LocalVariableTable_type_RS",
-                cpEntryListToArray(codeLocalVariableTableTypeRS),
-                Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("code_LocalVariableTable_type_RS", cpEntryListToArray(codeLocalVariableTableTypeRS),
+            Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from code_LocalVariableTable_type_RS["
-                + codeLocalVariableTableTypeRS.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTable_type_RS["
+            + codeLocalVariableTableTypeRS.size() + "]");
 
-        encodedBand = encodeBandInt("code_LocalVariableTable_slot",
-                codeLocalVariableTableSlot.toArray(), Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("code_LocalVariableTable_slot", codeLocalVariableTableSlot.toArray(),
+            Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from code_LocalVariableTable_slot["
-                + codeLocalVariableTableSlot.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTable_slot["
+            + codeLocalVariableTableSlot.size() + "]");
 
-        encodedBand = encodeBandInt("code_LocalVariableTypeTable_N",
-                codeLocalVariableTypeTableN.toArray(), Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("code_LocalVariableTypeTable_N", codeLocalVariableTypeTableN.toArray(),
+            Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from code_LocalVariableTypeTable_N["
-                + codeLocalVariableTypeTableN.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTypeTable_N["
+            + codeLocalVariableTypeTableN.size() + "]");
 
         encodedBand = encodeBandInt("code_LocalVariableTypeTable_bci_P",
-                integerListToArray(codeLocalVariableTypeTableBciP), Codec.BCI5);
+            integerListToArray(codeLocalVariableTypeTableBciP), Codec.BCI5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from code_LocalVariableTypeTable_bci_P["
-                + codeLocalVariableTypeTableBciP.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTypeTable_bci_P["
+            + codeLocalVariableTypeTableBciP.size() + "]");
 
         encodedBand = encodeBandInt("code_LocalVariableTypeTable_span_O",
-                integerListToArray(codeLocalVariableTypeTableSpanO), Codec.BRANCH5);
+            integerListToArray(codeLocalVariableTypeTableSpanO), Codec.BRANCH5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from code_LocalVariableTypeTable_span_O["
-                + codeLocalVariableTypeTableSpanO.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTypeTable_span_O["
+            + codeLocalVariableTypeTableSpanO.size() + "]");
 
         encodedBand = encodeBandInt("code_LocalVariableTypeTable_name_RU",
-                cpEntryListToArray(codeLocalVariableTypeTableNameRU),
-                Codec.UNSIGNED5);
+            cpEntryListToArray(codeLocalVariableTypeTableNameRU), Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from code_LocalVariableTypeTable_name_RU["
-                + codeLocalVariableTypeTableNameRU.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTypeTable_name_RU["
+            + codeLocalVariableTypeTableNameRU.size() + "]");
 
         encodedBand = encodeBandInt("code_LocalVariableTypeTable_type_RS",
-                cpEntryListToArray(codeLocalVariableTypeTableTypeRS),
-                Codec.UNSIGNED5);
+            cpEntryListToArray(codeLocalVariableTypeTableTypeRS), Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from code_LocalVariableTypeTable_type_RS["
-                + codeLocalVariableTypeTableTypeRS.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTypeTable_type_RS["
+            + codeLocalVariableTypeTableTypeRS.size() + "]");
 
-        encodedBand = encodeBandInt("code_LocalVariableTypeTable_slot",
-                codeLocalVariableTypeTableSlot.toArray(), Codec.UNSIGNED5);
+        encodedBand = encodeBandInt("code_LocalVariableTypeTable_slot", codeLocalVariableTypeTableSlot.toArray(),
+            Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from code_LocalVariableTypeTable_slot["
-                + codeLocalVariableTypeTableSlot.size() + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTypeTable_slot["
+            + codeLocalVariableTypeTableSlot.size() + "]");
 
         for (final Iterator iterator = codeAttributeBands.iterator(); iterator.hasNext();) {
             final NewAttributeBands bands = (NewAttributeBands) iterator.next();
@@ -977,8 +868,8 @@ public class ClassBands extends BandSet {
         }
     }
 
-    public void addMethod(int flags, final String name, final String desc,
-            final String signature, final String[] exceptions) {
+    public void addMethod(int flags, final String name, final String desc, final String signature,
+        final String[] exceptions) {
         final CPNameAndType nt = cpBands.getCPNameAndType(name, desc);
         tempMethodDesc.add(nt);
         if (signature != null) {
@@ -992,13 +883,14 @@ public class ClassBands extends BandSet {
             }
             flags |= (1 << 18);
         }
-        if((flags & Opcodes.ACC_DEPRECATED) != 0) { // ASM uses (1<<17) flag for deprecated
+        if ((flags & Opcodes.ACC_DEPRECATED) != 0) { // ASM uses (1<<17) flag for deprecated
             flags = flags & ~Opcodes.ACC_DEPRECATED;
-            flags = flags | (1<<20);
+            flags = flags | (1 << 20);
         }
         tempMethodFlags.add(Long.valueOf(flags));
         numMethodArgs = countArgs(desc);
-        if(!anySyntheticMethods && ((flags & (1 << 12)) != 0) && segment.getCurrentClassReader().hasSyntheticAttributes()) {
+        if (!anySyntheticMethods && ((flags & (1 << 12)) != 0)
+            && segment.getCurrentClassReader().hasSyntheticAttributes()) {
             cpBands.addCPUtf8("Synthetic");
             anySyntheticMethods = true;
         }
@@ -1006,27 +898,23 @@ public class ClassBands extends BandSet {
 
     public void endOfMethod() {
         if (tempMethodRVPA != null) {
-            method_RVPA_bands.addParameterAnnotation(tempMethodRVPA.numParams,
-                    tempMethodRVPA.annoN, tempMethodRVPA.pairN,
-                    tempMethodRVPA.typeRS, tempMethodRVPA.nameRU,
-                    tempMethodRVPA.t, tempMethodRVPA.values,
-                    tempMethodRVPA.caseArrayN, tempMethodRVPA.nestTypeRS,
-                    tempMethodRVPA.nestNameRU, tempMethodRVPA.nestPairN);
+            method_RVPA_bands.addParameterAnnotation(tempMethodRVPA.numParams, tempMethodRVPA.annoN,
+                tempMethodRVPA.pairN, tempMethodRVPA.typeRS, tempMethodRVPA.nameRU, tempMethodRVPA.t,
+                tempMethodRVPA.values, tempMethodRVPA.caseArrayN, tempMethodRVPA.nestTypeRS, tempMethodRVPA.nestNameRU,
+                tempMethodRVPA.nestPairN);
             tempMethodRVPA = null;
         }
         if (tempMethodRIPA != null) {
-            method_RIPA_bands.addParameterAnnotation(tempMethodRIPA.numParams,
-                    tempMethodRIPA.annoN, tempMethodRIPA.pairN,
-                    tempMethodRIPA.typeRS, tempMethodRIPA.nameRU,
-                    tempMethodRIPA.t, tempMethodRIPA.values,
-                    tempMethodRIPA.caseArrayN, tempMethodRIPA.nestTypeRS,
-                    tempMethodRIPA.nestNameRU, tempMethodRIPA.nestPairN);
+            method_RIPA_bands.addParameterAnnotation(tempMethodRIPA.numParams, tempMethodRIPA.annoN,
+                tempMethodRIPA.pairN, tempMethodRIPA.typeRS, tempMethodRIPA.nameRU, tempMethodRIPA.t,
+                tempMethodRIPA.values, tempMethodRIPA.caseArrayN, tempMethodRIPA.nestTypeRS, tempMethodRIPA.nestNameRU,
+                tempMethodRIPA.nestPairN);
             tempMethodRIPA = null;
         }
-        if(codeFlags.size() > 0) {
-            final long latestCodeFlag = ((Long)codeFlags.get(codeFlags.size() - 1)).longValue();
+        if (codeFlags.size() > 0) {
+            final long latestCodeFlag = ((Long) codeFlags.get(codeFlags.size() - 1)).longValue();
             final int latestLocalVariableTableN = codeLocalVariableTableN.get(codeLocalVariableTableN.size() - 1);
-            if(latestCodeFlag == (1 << 2) && latestLocalVariableTableN == 0) {
+            if (latestCodeFlag == (1 << 2) && latestLocalVariableTableN == 0) {
                 codeLocalVariableTableN.remove(codeLocalVariableTableN.size() - 1);
                 codeFlags.remove(codeFlags.size() - 1);
                 codeFlags.add(Integer.valueOf(0));
@@ -1069,7 +957,7 @@ public class ClassBands extends BandSet {
     }
 
     public void endOfClass() { // All the data for the current class has been
-                                // read
+                               // read
         final int numFields = tempFieldDesc.size();
         class_field_count[index] = numFields;
         field_descr[index] = new CPNameAndType[numFields];
@@ -1084,8 +972,7 @@ public class ClassBands extends BandSet {
         method_flags[index] = new long[numMethods];
         for (int i = 0; i < numMethods; i++) {
             method_descr[index][i] = (CPNameAndType) tempMethodDesc.get(i);
-            method_flags[index][i] = ((Long) tempMethodFlags.get(i))
-                    .longValue();
+            method_flags[index][i] = ((Long) tempMethodFlags.get(i)).longValue();
         }
         tempFieldDesc.clear();
         tempFieldFlags.clear();
@@ -1096,12 +983,11 @@ public class ClassBands extends BandSet {
 
     public void addSourceFile(final String source) {
         String implicitSourceFileName = class_this[index].toString();
-        if(implicitSourceFileName.indexOf('$') != -1) {
+        if (implicitSourceFileName.indexOf('$') != -1) {
             implicitSourceFileName = implicitSourceFileName.substring(0, implicitSourceFileName.indexOf('$'));
         }
-        implicitSourceFileName = implicitSourceFileName
-                .substring(implicitSourceFileName.lastIndexOf('/') + 1)
-                + ".java";
+        implicitSourceFileName = implicitSourceFileName.substring(implicitSourceFileName.lastIndexOf('/') + 1)
+            + ".java";
         if (source.equals(implicitSourceFileName)) {
             classSourceFile.add(null);
         } else {
@@ -1113,8 +999,7 @@ public class ClassBands extends BandSet {
     public void addEnclosingMethod(final String owner, final String name, final String desc) {
         class_flags[index] |= (1 << 18);
         classEnclosingMethodClass.add(cpBands.getCPClass(owner));
-        classEnclosingMethodDesc.add(name == null ? null : cpBands
-                .getCPNameAndType(name, desc));
+        classEnclosingMethodDesc.add(name == null ? null : cpBands.getCPNameAndType(name, desc));
     }
 
     public void addClassAttribute(final NewAttribute attribute) {
@@ -1122,7 +1007,7 @@ public class ClassBands extends BandSet {
         final String attributeName = attribute.type;
         for (final Iterator iterator = classAttributeBands.iterator(); iterator.hasNext();) {
             final NewAttributeBands bands = (NewAttributeBands) iterator.next();
-            if(bands.getAttributeName().equals(attributeName)) {
+            if (bands.getAttributeName().equals(attributeName)) {
                 bands.addAttribute(attribute);
                 final int flagIndex = bands.getFlagIndex();
                 class_flags[index] |= (1 << flagIndex);
@@ -1136,10 +1021,10 @@ public class ClassBands extends BandSet {
         final String attributeName = attribute.type;
         for (final Iterator iterator = fieldAttributeBands.iterator(); iterator.hasNext();) {
             final NewAttributeBands bands = (NewAttributeBands) iterator.next();
-            if(bands.getAttributeName().equals(attributeName)) {
+            if (bands.getAttributeName().equals(attributeName)) {
                 bands.addAttribute(attribute);
                 final int flagIndex = bands.getFlagIndex();
-                final Long flags = (Long)tempFieldFlags.remove(tempFieldFlags.size() - 1);
+                final Long flags = (Long) tempFieldFlags.remove(tempFieldFlags.size() - 1);
                 tempFieldFlags.add(Long.valueOf(flags.longValue() | (1 << flagIndex)));
                 return;
             }
@@ -1151,10 +1036,10 @@ public class ClassBands extends BandSet {
         final String attributeName = attribute.type;
         for (final Iterator iterator = methodAttributeBands.iterator(); iterator.hasNext();) {
             final NewAttributeBands bands = (NewAttributeBands) iterator.next();
-            if(bands.getAttributeName().equals(attributeName)) {
+            if (bands.getAttributeName().equals(attributeName)) {
                 bands.addAttribute(attribute);
                 final int flagIndex = bands.getFlagIndex();
-                final Long flags = (Long)tempMethodFlags.remove(tempMethodFlags.size() - 1);
+                final Long flags = (Long) tempMethodFlags.remove(tempMethodFlags.size() - 1);
                 tempMethodFlags.add(Long.valueOf(flags.longValue() | (1 << flagIndex)));
                 return;
             }
@@ -1166,10 +1051,10 @@ public class ClassBands extends BandSet {
         final String attributeName = attribute.type;
         for (final Iterator iterator = codeAttributeBands.iterator(); iterator.hasNext();) {
             final NewAttributeBands bands = (NewAttributeBands) iterator.next();
-            if(bands.getAttributeName().equals(attributeName)) {
+            if (bands.getAttributeName().equals(attributeName)) {
                 bands.addAttribute(attribute);
                 final int flagIndex = bands.getFlagIndex();
-                final Long flags = (Long)codeFlags.remove(codeFlags.size() - 1);
+                final Long flags = (Long) codeFlags.remove(codeFlags.size() - 1);
                 codeFlags.add(Long.valueOf(flags.longValue() | (1 << flagIndex)));
                 return;
             }
@@ -1178,8 +1063,7 @@ public class ClassBands extends BandSet {
     }
 
     public void addMaxStack(final int maxStack, int maxLocals) {
-        final Long latestFlag = (Long) tempMethodFlags
-                .remove(tempMethodFlags.size() - 1);
+        final Long latestFlag = (Long) tempMethodFlags.remove(tempMethodFlags.size() - 1);
         final Long newFlag = Long.valueOf(latestFlag.intValue() | (1 << 17));
         tempMethodFlags.add(newFlag);
         codeMaxStack.add(maxStack);
@@ -1192,15 +1076,14 @@ public class ClassBands extends BandSet {
 
     public void addCode() {
         codeHandlerCount.add(0);
-        if(!stripDebug) {
+        if (!stripDebug) {
             codeFlags.add(Long.valueOf(1 << 2));
             codeLocalVariableTableN.add(0);
         }
     }
 
     public void addHandler(final Label start, final Label end, final Label handler, final String type) {
-        final int handlers = codeHandlerCount.remove(codeHandlerCount
-                .size() - 1);
+        final int handlers = codeHandlerCount.remove(codeHandlerCount.size() - 1);
         codeHandlerCount.add(handlers + 1);
         codeHandlerStartP.add(start);
         codeHandlerEndPO.add(end);
@@ -1215,15 +1098,14 @@ public class ClassBands extends BandSet {
             codeFlags.add(Long.valueOf(latestCodeFlag.intValue() | (1 << 1)));
             codeLineNumberTableN.add(1);
         } else {
-            codeLineNumberTableN
-                    .increment(codeLineNumberTableN.size() - 1);
+            codeLineNumberTableN.increment(codeLineNumberTableN.size() - 1);
         }
         codeLineNumberTableLine.add(line);
         codeLineNumberTableBciP.add(start);
     }
 
-    public void addLocalVariable(final String name, final String desc, final String signature,
-            final Label start, final Label end, final int indx) {
+    public void addLocalVariable(final String name, final String desc, final String signature, final Label start,
+        final Label end, final int indx) {
         if (signature != null) { // LocalVariableTypeTable attribute
             final Long latestCodeFlag = (Long) codeFlags.get(codeFlags.size() - 1);
             if ((latestCodeFlag.intValue() & (1 << 3)) == 0) {
@@ -1231,19 +1113,16 @@ public class ClassBands extends BandSet {
                 codeFlags.add(Long.valueOf(latestCodeFlag.intValue() | (1 << 3)));
                 codeLocalVariableTypeTableN.add(1);
             } else {
-                codeLocalVariableTypeTableN
-                        .increment(codeLocalVariableTypeTableN.size() - 1);
+                codeLocalVariableTypeTableN.increment(codeLocalVariableTypeTableN.size() - 1);
             }
             codeLocalVariableTypeTableBciP.add(start);
             codeLocalVariableTypeTableSpanO.add(end);
             codeLocalVariableTypeTableNameRU.add(cpBands.getCPUtf8(name));
-            codeLocalVariableTypeTableTypeRS.add(cpBands
-                    .getCPSignature(signature));
+            codeLocalVariableTypeTableTypeRS.add(cpBands.getCPSignature(signature));
             codeLocalVariableTypeTableSlot.add(indx);
         }
         // LocalVariableTable attribute
-        codeLocalVariableTableN
-                .increment(codeLocalVariableTableN.size() - 1);
+        codeLocalVariableTableN.increment(codeLocalVariableTableN.size() - 1);
         codeLocalVariableTableBciP.add(start);
         codeLocalVariableTableSpanO.add(end);
         codeLocalVariableTableNameRU.add(cpBands.getCPUtf8(name));
@@ -1254,18 +1133,14 @@ public class ClassBands extends BandSet {
     public void doBciRenumbering(final IntList bciRenumbering, final Map labelsToOffsets) {
         renumberBci(codeLineNumberTableBciP, bciRenumbering, labelsToOffsets);
         renumberBci(codeLocalVariableTableBciP, bciRenumbering, labelsToOffsets);
-        renumberOffsetBci(codeLocalVariableTableBciP,
-                codeLocalVariableTableSpanO, bciRenumbering, labelsToOffsets);
-        renumberBci(codeLocalVariableTypeTableBciP, bciRenumbering,
-                labelsToOffsets);
-        renumberOffsetBci(codeLocalVariableTypeTableBciP,
-                codeLocalVariableTypeTableSpanO, bciRenumbering,
-                labelsToOffsets);
+        renumberOffsetBci(codeLocalVariableTableBciP, codeLocalVariableTableSpanO, bciRenumbering, labelsToOffsets);
+        renumberBci(codeLocalVariableTypeTableBciP, bciRenumbering, labelsToOffsets);
+        renumberOffsetBci(codeLocalVariableTypeTableBciP, codeLocalVariableTypeTableSpanO, bciRenumbering,
+            labelsToOffsets);
         renumberBci(codeHandlerStartP, bciRenumbering, labelsToOffsets);
-        renumberOffsetBci(codeHandlerStartP, codeHandlerEndPO,
-                bciRenumbering, labelsToOffsets);
-        renumberDoubleOffsetBci(codeHandlerStartP, codeHandlerEndPO, codeHandlerCatchPO,
-                bciRenumbering, labelsToOffsets);
+        renumberOffsetBci(codeHandlerStartP, codeHandlerEndPO, bciRenumbering, labelsToOffsets);
+        renumberDoubleOffsetBci(codeHandlerStartP, codeHandlerEndPO, codeHandlerCatchPO, bciRenumbering,
+            labelsToOffsets);
 
         for (final Iterator iterator = classAttributeBands.iterator(); iterator.hasNext();) {
             final NewAttributeBands newAttributeBandSet = (NewAttributeBands) iterator.next();
@@ -1299,8 +1174,8 @@ public class ClassBands extends BandSet {
         }
     }
 
-    private void renumberOffsetBci(final List relative, final List list,
-            final IntList bciRenumbering, final Map labelsToOffsets) {
+    private void renumberOffsetBci(final List relative, final List list, final IntList bciRenumbering,
+        final Map labelsToOffsets) {
         for (int i = list.size() - 1; i >= 0; i--) {
             final Object label = list.get(i);
             if (label instanceof Integer) {
@@ -1309,16 +1184,15 @@ public class ClassBands extends BandSet {
             if (label instanceof Label) {
                 list.remove(i);
                 final Integer bytecodeIndex = (Integer) labelsToOffsets.get(label);
-                final Integer renumberedOffset = Integer.valueOf(bciRenumbering
-                        .get(bytecodeIndex.intValue())
-                        - ((Integer) relative.get(i)).intValue());
+                final Integer renumberedOffset = Integer
+                    .valueOf(bciRenumbering.get(bytecodeIndex.intValue()) - ((Integer) relative.get(i)).intValue());
                 list.add(i, renumberedOffset);
             }
         }
     }
 
     private void renumberDoubleOffsetBci(final List relative, final List firstOffset, final List list,
-            final IntList bciRenumbering, final Map labelsToOffsets) {
+        final IntList bciRenumbering, final Map labelsToOffsets) {
         // TODO: There's probably a nicer way of doing this...
         for (int i = list.size() - 1; i >= 0; i--) {
             final Object label = list.get(i);
@@ -1328,9 +1202,8 @@ public class ClassBands extends BandSet {
             if (label instanceof Label) {
                 list.remove(i);
                 final Integer bytecodeIndex = (Integer) labelsToOffsets.get(label);
-                final Integer renumberedOffset = Integer.valueOf(bciRenumbering
-                        .get(bytecodeIndex.intValue())
-                        - ((Integer) relative.get(i)).intValue() - ((Integer) firstOffset.get(i)).intValue());
+                final Integer renumberedOffset = Integer.valueOf(bciRenumbering.get(bytecodeIndex.intValue())
+                    - ((Integer) relative.get(i)).intValue() - ((Integer) firstOffset.get(i)).intValue());
                 list.add(i, renumberedOffset);
             }
         }
@@ -1348,22 +1221,25 @@ public class ClassBands extends BandSet {
         return anySyntheticMethods;
     }
 
-    public void addParameterAnnotation(final int parameter, final String desc,
-            final boolean visible, final List nameRU, final List t, final List values, final List caseArrayN, final List nestTypeRS, final List nestNameRU, final List nestPairN) {
-        if(visible) {
-            if(tempMethodRVPA == null) {
+    public void addParameterAnnotation(final int parameter, final String desc, final boolean visible, final List nameRU,
+        final List t, final List values, final List caseArrayN, final List nestTypeRS, final List nestNameRU,
+        final List nestPairN) {
+        if (visible) {
+            if (tempMethodRVPA == null) {
                 tempMethodRVPA = new TempParamAnnotation(numMethodArgs);
-                tempMethodRVPA.addParameterAnnotation(parameter, desc, nameRU, t, values, caseArrayN, nestTypeRS, nestNameRU, nestPairN);
+                tempMethodRVPA.addParameterAnnotation(parameter, desc, nameRU, t, values, caseArrayN, nestTypeRS,
+                    nestNameRU, nestPairN);
             }
             final Long flag = (Long) tempMethodFlags.remove(tempMethodFlags.size() - 1);
-            tempMethodFlags.add(Long.valueOf(flag.longValue() | (1<<23)));
+            tempMethodFlags.add(Long.valueOf(flag.longValue() | (1 << 23)));
         } else {
-            if(tempMethodRIPA == null) {
+            if (tempMethodRIPA == null) {
                 tempMethodRIPA = new TempParamAnnotation(numMethodArgs);
-                tempMethodRIPA.addParameterAnnotation(parameter, desc, nameRU, t, values, caseArrayN, nestTypeRS, nestNameRU, nestPairN);
+                tempMethodRIPA.addParameterAnnotation(parameter, desc, nameRU, t, values, caseArrayN, nestTypeRS,
+                    nestNameRU, nestPairN);
             }
             final Long flag = (Long) tempMethodFlags.remove(tempMethodFlags.size() - 1);
-            tempMethodFlags.add(Long.valueOf(flag.longValue() | (1<<24)));
+            tempMethodFlags.add(Long.valueOf(flag.longValue() | (1 << 24)));
         }
     }
 
@@ -1381,14 +1257,14 @@ public class ClassBands extends BandSet {
         List nestNameRU = new ArrayList();
         List nestPairN = new ArrayList();
 
-        public TempParamAnnotation (final int numParams) {
+        public TempParamAnnotation(final int numParams) {
             this.numParams = numParams;
             annoN = new int[numParams];
         }
 
-        public void addParameterAnnotation(final int parameter, final String desc,
-                final List nameRU, final List t, final List values, final List caseArrayN,
-                final List nestTypeRS, final List nestNameRU, final List nestPairN) {
+        public void addParameterAnnotation(final int parameter, final String desc, final List nameRU, final List t,
+            final List values, final List caseArrayN, final List nestTypeRS, final List nestNameRU,
+            final List nestPairN) {
             annoN[parameter]++;
             typeRS.add(desc);
             pairN.add(nameRU.size());
@@ -1402,76 +1278,79 @@ public class ClassBands extends BandSet {
         }
     }
 
-    public void addAnnotation(final int context, final String desc, final boolean visible, final List nameRU, final List t, final List values, final List caseArrayN, final List nestTypeRS, final List nestNameRU, final List nestPairN) {
+    public void addAnnotation(final int context, final String desc, final boolean visible, final List nameRU,
+        final List t, final List values, final List caseArrayN, final List nestTypeRS, final List nestNameRU,
+        final List nestPairN) {
         switch (context) {
         case MetadataBandGroup.CONTEXT_CLASS:
-            if(visible) {
+            if (visible) {
                 class_RVA_bands.addAnnotation(desc, nameRU, t, values, caseArrayN, nestTypeRS, nestNameRU, nestPairN);
-                if((class_flags[index] & (1<<21)) != 0) {
+                if ((class_flags[index] & (1 << 21)) != 0) {
                     class_RVA_bands.incrementAnnoN();
                 } else {
                     class_RVA_bands.newEntryInAnnoN();
-                    class_flags[index] = class_flags[index] | (1<<21);
+                    class_flags[index] = class_flags[index] | (1 << 21);
                 }
             } else {
                 class_RIA_bands.addAnnotation(desc, nameRU, t, values, caseArrayN, nestTypeRS, nestNameRU, nestPairN);
-                if((class_flags[index] & (1<<22)) != 0) {
+                if ((class_flags[index] & (1 << 22)) != 0) {
                     class_RIA_bands.incrementAnnoN();
                 } else {
                     class_RIA_bands.newEntryInAnnoN();
-                    class_flags[index] = class_flags[index] | (1<<22);
+                    class_flags[index] = class_flags[index] | (1 << 22);
                 }
             }
             break;
         case MetadataBandGroup.CONTEXT_FIELD:
-            if(visible) {
+            if (visible) {
                 field_RVA_bands.addAnnotation(desc, nameRU, t, values, caseArrayN, nestTypeRS, nestNameRU, nestPairN);
                 final Long flag = (Long) tempFieldFlags.remove(tempFieldFlags.size() - 1);
-                if((flag.intValue() & (1<<21)) != 0) {
+                if ((flag.intValue() & (1 << 21)) != 0) {
                     field_RVA_bands.incrementAnnoN();
                 } else {
                     field_RVA_bands.newEntryInAnnoN();
                 }
-                tempFieldFlags.add(Long.valueOf(flag.intValue() | (1<<21)));
+                tempFieldFlags.add(Long.valueOf(flag.intValue() | (1 << 21)));
             } else {
                 field_RIA_bands.addAnnotation(desc, nameRU, t, values, caseArrayN, nestTypeRS, nestNameRU, nestPairN);
                 final Long flag = (Long) tempFieldFlags.remove(tempFieldFlags.size() - 1);
-                if((flag.intValue() & (1<<22)) != 0) {
+                if ((flag.intValue() & (1 << 22)) != 0) {
                     field_RIA_bands.incrementAnnoN();
                 } else {
                     field_RIA_bands.newEntryInAnnoN();
                 }
-                tempFieldFlags.add(Long.valueOf(flag.intValue() | (1<<22)));
+                tempFieldFlags.add(Long.valueOf(flag.intValue() | (1 << 22)));
             }
             break;
         case MetadataBandGroup.CONTEXT_METHOD:
-            if(visible) {
+            if (visible) {
                 method_RVA_bands.addAnnotation(desc, nameRU, t, values, caseArrayN, nestTypeRS, nestNameRU, nestPairN);
                 final Long flag = (Long) tempMethodFlags.remove(tempMethodFlags.size() - 1);
-                if((flag.intValue() & (1<<21)) != 0) {
+                if ((flag.intValue() & (1 << 21)) != 0) {
                     method_RVA_bands.incrementAnnoN();
                 } else {
                     method_RVA_bands.newEntryInAnnoN();
                 }
-                tempMethodFlags.add(Long.valueOf(flag.intValue() | (1<<21)));
+                tempMethodFlags.add(Long.valueOf(flag.intValue() | (1 << 21)));
             } else {
                 method_RIA_bands.addAnnotation(desc, nameRU, t, values, caseArrayN, nestTypeRS, nestNameRU, nestPairN);
                 final Long flag = (Long) tempMethodFlags.remove(tempMethodFlags.size() - 1);
-                if((flag.intValue() & (1<<22)) != 0) {
+                if ((flag.intValue() & (1 << 22)) != 0) {
                     method_RIA_bands.incrementAnnoN();
                 } else {
                     method_RIA_bands.newEntryInAnnoN();
                 }
-                tempMethodFlags.add(Long.valueOf(flag.intValue() | (1<<22)));
+                tempMethodFlags.add(Long.valueOf(flag.intValue() | (1 << 22)));
             }
             break;
         }
     }
 
-    public void addAnnotationDefault(final List nameRU, final List t, final List values, final List caseArrayN, final List nestTypeRS, final List nestNameRU, final List nestPairN) {
+    public void addAnnotationDefault(final List nameRU, final List t, final List values, final List caseArrayN,
+        final List nestTypeRS, final List nestNameRU, final List nestPairN) {
         method_AD_bands.addAnnotation(null, nameRU, t, values, caseArrayN, nestTypeRS, nestNameRU, nestPairN);
         final Long flag = (Long) tempMethodFlags.remove(tempMethodFlags.size() - 1);
-        tempMethodFlags.add(Long.valueOf(flag.longValue() | (1<<25)));
+        tempMethodFlags.add(Long.valueOf(flag.longValue() | (1 << 25)));
     }
 
     /**
@@ -1484,10 +1363,8 @@ public class ClassBands extends BandSet {
             classSourceFile.remove(classSourceFile.size() - 1);
         }
         if ((class_flags[index] & (1 << 18)) != 0) {
-            classEnclosingMethodClass
-                    .remove(classEnclosingMethodClass.size() - 1);
-            classEnclosingMethodDesc
-                    .remove(classEnclosingMethodDesc.size() - 1);
+            classEnclosingMethodClass.remove(classEnclosingMethodClass.size() - 1);
+            classEnclosingMethodDesc.remove(classEnclosingMethodDesc.size() - 1);
         }
         if ((class_flags[index] & (1 << 19)) != 0) {
             classSignature.remove(classSignature.size() - 1);
@@ -1521,18 +1398,15 @@ public class ClassBands extends BandSet {
                 methodSignature.remove(methodSignature.size() - 1);
             }
             if ((flags & (1 << 18)) != 0) {
-                final int exceptions = methodExceptionNumber
-                        .remove(methodExceptionNumber.size() - 1);
+                final int exceptions = methodExceptionNumber.remove(methodExceptionNumber.size() - 1);
                 for (int i = 0; i < exceptions; i++) {
-                    methodExceptionClasses
-                            .remove(methodExceptionClasses.size() - 1);
+                    methodExceptionClasses.remove(methodExceptionClasses.size() - 1);
                 }
             }
             if ((flags & (1 << 17)) != 0) { // has code attribute
                 codeMaxLocals.remove(codeMaxLocals.size() - 1);
                 codeMaxStack.remove(codeMaxStack.size() - 1);
-                final int handlers = codeHandlerCount
-                        .remove(codeHandlerCount.size() - 1);
+                final int handlers = codeHandlerCount.remove(codeHandlerCount.size() - 1);
                 for (int i = 0; i < handlers; i++) {
                     final int index = codeHandlerStartP.size() - 1;
                     codeHandlerStartP.remove(index);
@@ -1541,10 +1415,8 @@ public class ClassBands extends BandSet {
                     codeHandlerClass.remove(index);
                 }
                 if (!stripDebug) {
-                    final long cdeFlags = ((Long) codeFlags
-                            .remove(codeFlags.size() - 1)).longValue();
-                    final int numLocalVariables = codeLocalVariableTableN
-                            .remove(codeLocalVariableTableN.size() - 1);
+                    final long cdeFlags = ((Long) codeFlags.remove(codeFlags.size() - 1)).longValue();
+                    final int numLocalVariables = codeLocalVariableTableN.remove(codeLocalVariableTableN.size() - 1);
                     for (int i = 0; i < numLocalVariables; i++) {
                         final int location = codeLocalVariableTableBciP.size() - 1;
                         codeLocalVariableTableBciP.remove(location);
@@ -1555,10 +1427,9 @@ public class ClassBands extends BandSet {
                     }
                     if ((cdeFlags & (1 << 3)) != 0) {
                         final int numLocalVariablesInTypeTable = codeLocalVariableTypeTableN
-                                .remove(codeLocalVariableTypeTableN.size() - 1);
+                            .remove(codeLocalVariableTypeTableN.size() - 1);
                         for (int i = 0; i < numLocalVariablesInTypeTable; i++) {
-                            final int location = codeLocalVariableTypeTableBciP
-                                    .size() - 1;
+                            final int location = codeLocalVariableTypeTableBciP.size() - 1;
                             codeLocalVariableTypeTableBciP.remove(location);
                             codeLocalVariableTypeTableSpanO.remove(location);
                             codeLocalVariableTypeTableNameRU.remove(location);
@@ -1567,8 +1438,7 @@ public class ClassBands extends BandSet {
                         }
                     }
                     if ((cdeFlags & (1 << 1)) != 0) {
-                        final int numLineNumbers = codeLineNumberTableN
-                                .remove(codeLineNumberTableN.size() - 1);
+                        final int numLineNumbers = codeLineNumberTableN.remove(codeLineNumberTableN.size() - 1);
                         for (int i = 0; i < numLineNumbers; i++) {
                             final int location = codeLineNumberTableBciP.size() - 1;
                             codeLineNumberTableBciP.remove(location);
@@ -1603,7 +1473,7 @@ public class ClassBands extends BandSet {
         tempFieldFlags.clear();
         tempMethodDesc.clear();
         tempMethodFlags.clear();
-        if(index > 0) {
+        if (index > 0) {
             index--;
         }
     }
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/Codec.java b/src/main/java/org/apache/commons/compress/harmony/pack200/Codec.java
index 943a86b..8ba689a 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/Codec.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/Codec.java
@@ -19,18 +19,14 @@ package org.apache.commons.compress.harmony.pack200;
 import java.io.IOException;
 import java.io.InputStream;
 
-
 /**
- * A Codec allows a sequence of bytes to be decoded into integer values (or vice
- * versa).
+ * A Codec allows a sequence of bytes to be decoded into integer values (or vice versa).
  *
- * There are a number of standard Codecs ({@link #UDELTA5}, {@link #UNSIGNED5},
- * {@link #BYTE1}, {@link #CHAR3}) that are used in the implementation of many
- * bands; but there are a variety of other ones, and indeed the specification
- * assumes that other combinations of values can result in more specific and
- * efficient formats. There are also a sequence of canonical encodings defined
- * by the Pack200 specification, which allow a Codec to be referred to by
- * canonical number. {@link CodecEncoding#getCodec(int, InputStream, Codec)})
+ * There are a number of standard Codecs ({@link #UDELTA5}, {@link #UNSIGNED5}, {@link #BYTE1}, {@link #CHAR3}) that are
+ * used in the implementation of many bands; but there are a variety of other ones, and indeed the specification assumes
+ * that other combinations of values can result in more specific and efficient formats. There are also a sequence of
+ * canonical encodings defined by the Pack200 specification, which allow a Codec to be referred to by canonical number.
+ * {@link CodecEncoding#getCodec(int, InputStream, Codec)})
  */
 public abstract class Codec {
 
@@ -50,22 +46,20 @@ public abstract class Codec {
     public static final BHSDCodec BYTE1 = new BHSDCodec(1, 256);
 
     /**
-     * CHAR3 = (3,128): Used for storing text (UTF-8) strings. NB This isn't
-     * quite the same as UTF-8, but has similar properties; ASCII characters
-     * &lt; 127 are stored in a single byte.
+     * CHAR3 = (3,128): Used for storing text (UTF-8) strings. NB This isn't quite the same as UTF-8, but has similar
+     * properties; ASCII characters &lt; 127 are stored in a single byte.
      */
     public static final BHSDCodec CHAR3 = new BHSDCodec(3, 128);
 
     /**
-     * DELTA5 = (5,64,1,1): Used for the majority of numerical codings where
-     * there is a correlated sequence of signed values.
+     * DELTA5 = (5,64,1,1): Used for the majority of numerical codings where there is a correlated sequence of signed
+     * values.
      */
     public static final BHSDCodec DELTA5 = new BHSDCodec(5, 64, 1, 1);
 
     /**
-     * MDELTA5 = (5,64,2,1): Used for the majority of numerical codings where
-     * there is a correlated sequence of signed values, but where most of them
-     * are expected to be non-negative.
+     * MDELTA5 = (5,64,2,1): Used for the majority of numerical codings where there is a correlated sequence of signed
+     * values, but where most of them are expected to be non-negative.
      */
     public static final BHSDCodec MDELTA5 = new BHSDCodec(5, 64, 2, 1);
 
@@ -75,8 +69,8 @@ public abstract class Codec {
     public static final BHSDCodec SIGNED5 = new BHSDCodec(5, 64, 1);
 
     /**
-     * UDELTA5 = (5,64,0,1): Used for the majority of numerical codings where
-     * there is a correlated sequence of unsigned values.
+     * UDELTA5 = (5,64,0,1): Used for the majority of numerical codings where there is a correlated sequence of unsigned
+     * values.
      */
     public static final BHSDCodec UDELTA5 = new BHSDCodec(5, 64, 0, 1);
 
@@ -88,52 +82,40 @@ public abstract class Codec {
     public int lastBandLength;
 
     /**
-     * Decode a sequence of bytes from the given input stream, returning the
-     * value as a long. Note that this method can only be applied for non-delta
-     * encodings.
+     * Decode a sequence of bytes from the given input stream, returning the value as a long. Note that this method can
+     * only be applied for non-delta encodings.
      *
-     * @param in
-     *            the input stream to read from
+     * @param in the input stream to read from
      * @return the value as a long
-     * @throws IOException
-     *             if there is a problem reading from the underlying input
-     *             stream
-     * @throws Pack200Exception
-     *             if the encoding is a delta encoding
+     * @throws IOException if there is a problem reading from the underlying input stream
+     * @throws Pack200Exception if the encoding is a delta encoding
      */
-    public abstract int decode(InputStream in) throws IOException,
-            Pack200Exception;
+    public abstract int decode(InputStream in) throws IOException, Pack200Exception;
 
     /**
      * Encode a single value into a sequence of bytes.
      *
-     * @param value
-     *            the value to encode
-     * @param last
-     *            the previous value encoded (for delta encodings)
+     * @param value the value to encode
+     * @param last the previous value encoded (for delta encodings)
      * @return the encoded bytes
      * @throws Pack200Exception TODO
      */
-    public abstract byte[] encode(int value, int last)
-            throws Pack200Exception;
+    public abstract byte[] encode(int value, int last) throws Pack200Exception;
 
     /**
-     * Encode a single value into a sequence of bytes. Note that this method can
-     * only be used for non-delta encodings.
+     * Encode a single value into a sequence of bytes. Note that this method can only be used for non-delta encodings.
      *
-     * @param value
-     *            the value to encode
+     * @param value the value to encode
      * @return the encoded bytes
      * @throws Pack200Exception TODO
      */
     public abstract byte[] encode(int value) throws Pack200Exception;
 
     /**
-     * Decode a sequence of bytes from the given input stream, returning the
-     * value as a long. If this encoding is a delta encoding (d=1) then the
-     * previous value must be passed in as a parameter. If it is a non-delta
-     * encoding, then it does not matter what value is passed in, so it makes
-     * sense for the value to be passed in by default using code similar to:
+     * Decode a sequence of bytes from the given input stream, returning the value as a long. If this encoding is a
+     * delta encoding (d=1) then the previous value must be passed in as a parameter. If it is a non-delta encoding,
+     * then it does not matter what value is passed in, so it makes sense for the value to be passed in by default using
+     * code similar to:
      *
      * <pre>
      * long last = 0;
@@ -143,43 +125,25 @@ public abstract class Codec {
      * }
      * </pre>
      *
-     * @param in
-     *            the input stream to read from
-     * @param last
-     *            the previous value read, which must be supplied if the codec
-     *            is a delta encoding
+     * @param in the input stream to read from
+     * @param last the previous value read, which must be supplied if the codec is a delta encoding
      * @return the value as a long
-     * @throws IOException
-     *             if there is a problem reading from the underlying input
-     *             stream
-     * @throws Pack200Exception
-     *             if there is a problem decoding the value or that the value is
-     *             invalid
+     * @throws IOException if there is a problem reading from the underlying input stream
+     * @throws Pack200Exception if there is a problem decoding the value or that the value is invalid
      */
-    public abstract int decode(InputStream in, long last) throws IOException,
-            Pack200Exception;
+    public abstract int decode(InputStream in, long last) throws IOException, Pack200Exception;
 
     /**
-     * Decodes a sequence of <code>n</code> values from <code>in</code>.
-     * This should probably be used in most cases, since some codecs (such as
-     * {@link PopulationCodec}) only work when the number of values to be read is
-     *        known.
+     * Decodes a sequence of <code>n</code> values from <code>in</code>. This should probably be used in most cases,
+     * since some codecs (such as {@link PopulationCodec}) only work when the number of values to be read is known.
      *
-     * @param n
-     *            the number of values to decode
-     * @param in
-     *            the input stream to read from
-     * @return an array of <code>int</code> values corresponding to values
-     *         decoded
-     * @throws IOException
-     *             if there is a problem reading from the underlying input
-     *             stream
-     * @throws Pack200Exception
-     *             if there is a problem decoding the value or that the value is
-     *             invalid
-     */
-    public int[] decodeInts(final int n, final InputStream in) throws IOException,
-            Pack200Exception {
+     * @param n the number of values to decode
+     * @param in the input stream to read from
+     * @return an array of <code>int</code> values corresponding to values decoded
+     * @throws IOException if there is a problem reading from the underlying input stream
+     * @throws Pack200Exception if there is a problem decoding the value or that the value is invalid
+     */
+    public int[] decodeInts(final int n, final InputStream in) throws IOException, Pack200Exception {
         lastBandLength = 0;
         final int result[] = new int[n];
         int last = 0;
@@ -192,23 +156,16 @@ public abstract class Codec {
     /**
      * Decodes a sequence of <code>n</code> values from <code>in</code>.
      *
-     * @param n
-     *            the number of values to decode
-     * @param in
-     *            the input stream to read from
-     * @param firstValue
-     *            the first value in the band if it has already been read
-     * @return an array of <code>int</code> values corresponding to values
-     *         decoded, with firstValue as the first value in the array.
-     * @throws IOException
-     *             if there is a problem reading from the underlying input
-     *             stream
-     * @throws Pack200Exception
-     *             if there is a problem decoding the value or that the value is
-     *             invalid
+     * @param n the number of values to decode
+     * @param in the input stream to read from
+     * @param firstValue the first value in the band if it has already been read
+     * @return an array of <code>int</code> values corresponding to values decoded, with firstValue as the first value
+     *         in the array.
+     * @throws IOException if there is a problem reading from the underlying input stream
+     * @throws Pack200Exception if there is a problem decoding the value or that the value is invalid
      */
     public int[] decodeInts(final int n, final InputStream in, final int firstValue)
-            throws IOException, Pack200Exception {
+        throws IOException, Pack200Exception {
         final int result[] = new int[n + 1];
         result[0] = firstValue;
         int last = firstValue;
@@ -221,17 +178,15 @@ public abstract class Codec {
     /**
      * Encode a sequence of integers into a byte array
      *
-     * @param ints
-     *            the values to encode
+     * @param ints the values to encode
      * @return byte[] encoded bytes
-     * @throws Pack200Exception
-     *             if there is a problem encoding any of the values
+     * @throws Pack200Exception if there is a problem encoding any of the values
      */
     public byte[] encode(final int[] ints) throws Pack200Exception {
         int total = 0;
         final byte[][] bytes = new byte[ints.length][];
         for (int i = 0; i < ints.length; i++) {
-            bytes[i] = encode(ints[i], i > 0 ? ints[i-1] : 0);
+            bytes[i] = encode(ints[i], i > 0 ? ints[i - 1] : 0);
             total += bytes[i].length;
         }
         final byte[] encoded = new byte[total];
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/CodecEncoding.java b/src/main/java/org/apache/commons/compress/harmony/pack200/CodecEncoding.java
index bf4cd1b..9628344 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/CodecEncoding.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/CodecEncoding.java
@@ -23,115 +23,75 @@ import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;
 
-
 /**
  * CodecEncoding is used to get the right Codec for a given meta-encoding
  */
 public class CodecEncoding {
 
     /**
-     * The canonical encodings are defined to allow a single byte to represent
-     * one of the standard encodings. The following values are defined in the
-     * Pack200 specification, and this array cannot be changed.
+     * The canonical encodings are defined to allow a single byte to represent one of the standard encodings. The
+     * following values are defined in the Pack200 specification, and this array cannot be changed.
      */
-    private static final BHSDCodec[] canonicalCodec = { null,
-            new BHSDCodec(1, 256), new BHSDCodec(1, 256, 1),
-            new BHSDCodec(1, 256, 0, 1), new BHSDCodec(1, 256, 1, 1),
-            new BHSDCodec(2, 256), new BHSDCodec(2, 256, 1),
-            new BHSDCodec(2, 256, 0, 1), new BHSDCodec(2, 256, 1, 1),
-            new BHSDCodec(3, 256), new BHSDCodec(3, 256, 1),
-            new BHSDCodec(3, 256, 0, 1), new BHSDCodec(3, 256, 1, 1),
-            new BHSDCodec(4, 256), new BHSDCodec(4, 256, 1),
-            new BHSDCodec(4, 256, 0, 1), new BHSDCodec(4, 256, 1, 1),
-            new BHSDCodec(5, 4), new BHSDCodec(5, 4, 1),
-            new BHSDCodec(5, 4, 2), new BHSDCodec(5, 16),
-            new BHSDCodec(5, 16, 1), new BHSDCodec(5, 16, 2),
-            new BHSDCodec(5, 32), new BHSDCodec(5, 32, 1),
-            new BHSDCodec(5, 32, 2), new BHSDCodec(5, 64),
-            new BHSDCodec(5, 64, 1), new BHSDCodec(5, 64, 2),
-            new BHSDCodec(5, 128), new BHSDCodec(5, 128, 1),
-            new BHSDCodec(5, 128, 2), new BHSDCodec(5, 4, 0, 1),
-            new BHSDCodec(5, 4, 1, 1), new BHSDCodec(5, 4, 2, 1),
-            new BHSDCodec(5, 16, 0, 1), new BHSDCodec(5, 16, 1, 1),
-            new BHSDCodec(5, 16, 2, 1), new BHSDCodec(5, 32, 0, 1),
-            new BHSDCodec(5, 32, 1, 1), new BHSDCodec(5, 32, 2, 1),
-            new BHSDCodec(5, 64, 0, 1), new BHSDCodec(5, 64, 1, 1),
-            new BHSDCodec(5, 64, 2, 1), new BHSDCodec(5, 128, 0, 1),
-            new BHSDCodec(5, 128, 1, 1), new BHSDCodec(5, 128, 2, 1),
-            new BHSDCodec(2, 192), new BHSDCodec(2, 224),
-            new BHSDCodec(2, 240), new BHSDCodec(2, 248),
-            new BHSDCodec(2, 252), new BHSDCodec(2, 8, 0, 1),
-            new BHSDCodec(2, 8, 1, 1), new BHSDCodec(2, 16, 0, 1),
-            new BHSDCodec(2, 16, 1, 1), new BHSDCodec(2, 32, 0, 1),
-            new BHSDCodec(2, 32, 1, 1), new BHSDCodec(2, 64, 0, 1),
-            new BHSDCodec(2, 64, 1, 1), new BHSDCodec(2, 128, 0, 1),
-            new BHSDCodec(2, 128, 1, 1), new BHSDCodec(2, 192, 0, 1),
-            new BHSDCodec(2, 192, 1, 1), new BHSDCodec(2, 224, 0, 1),
-            new BHSDCodec(2, 224, 1, 1), new BHSDCodec(2, 240, 0, 1),
-            new BHSDCodec(2, 240, 1, 1), new BHSDCodec(2, 248, 0, 1),
-            new BHSDCodec(2, 248, 1, 1), new BHSDCodec(3, 192),
-            new BHSDCodec(3, 224), new BHSDCodec(3, 240),
-            new BHSDCodec(3, 248), new BHSDCodec(3, 252),
-            new BHSDCodec(3, 8, 0, 1), new BHSDCodec(3, 8, 1, 1),
-            new BHSDCodec(3, 16, 0, 1), new BHSDCodec(3, 16, 1, 1),
-            new BHSDCodec(3, 32, 0, 1), new BHSDCodec(3, 32, 1, 1),
-            new BHSDCodec(3, 64, 0, 1), new BHSDCodec(3, 64, 1, 1),
-            new BHSDCodec(3, 128, 0, 1), new BHSDCodec(3, 128, 1, 1),
-            new BHSDCodec(3, 192, 0, 1), new BHSDCodec(3, 192, 1, 1),
-            new BHSDCodec(3, 224, 0, 1), new BHSDCodec(3, 224, 1, 1),
-            new BHSDCodec(3, 240, 0, 1), new BHSDCodec(3, 240, 1, 1),
-            new BHSDCodec(3, 248, 0, 1), new BHSDCodec(3, 248, 1, 1),
-            new BHSDCodec(4, 192), new BHSDCodec(4, 224),
-            new BHSDCodec(4, 240), new BHSDCodec(4, 248),
-            new BHSDCodec(4, 252), new BHSDCodec(4, 8, 0, 1),
-            new BHSDCodec(4, 8, 1, 1), new BHSDCodec(4, 16, 0, 1),
-            new BHSDCodec(4, 16, 1, 1), new BHSDCodec(4, 32, 0, 1),
-            new BHSDCodec(4, 32, 1, 1), new BHSDCodec(4, 64, 0, 1),
-            new BHSDCodec(4, 64, 1, 1), new BHSDCodec(4, 128, 0, 1),
-            new BHSDCodec(4, 128, 1, 1), new BHSDCodec(4, 192, 0, 1),
-            new BHSDCodec(4, 192, 1, 1), new BHSDCodec(4, 224, 0, 1),
-            new BHSDCodec(4, 224, 1, 1), new BHSDCodec(4, 240, 0, 1),
-            new BHSDCodec(4, 240, 1, 1), new BHSDCodec(4, 248, 0, 1),
-            new BHSDCodec(4, 248, 1, 1) };
+    private static final BHSDCodec[] canonicalCodec = {null, new BHSDCodec(1, 256), new BHSDCodec(1, 256, 1),
+        new BHSDCodec(1, 256, 0, 1), new BHSDCodec(1, 256, 1, 1), new BHSDCodec(2, 256), new BHSDCodec(2, 256, 1),
+        new BHSDCodec(2, 256, 0, 1), new BHSDCodec(2, 256, 1, 1), new BHSDCodec(3, 256), new BHSDCodec(3, 256, 1),
+        new BHSDCodec(3, 256, 0, 1), new BHSDCodec(3, 256, 1, 1), new BHSDCodec(4, 256), new BHSDCodec(4, 256, 1),
+        new BHSDCodec(4, 256, 0, 1), new BHSDCodec(4, 256, 1, 1), new BHSDCodec(5, 4), new BHSDCodec(5, 4, 1),
+        new BHSDCodec(5, 4, 2), new BHSDCodec(5, 16), new BHSDCodec(5, 16, 1), new BHSDCodec(5, 16, 2),
+        new BHSDCodec(5, 32), new BHSDCodec(5, 32, 1), new BHSDCodec(5, 32, 2), new BHSDCodec(5, 64),
+        new BHSDCodec(5, 64, 1), new BHSDCodec(5, 64, 2), new BHSDCodec(5, 128), new BHSDCodec(5, 128, 1),
+        new BHSDCodec(5, 128, 2), new BHSDCodec(5, 4, 0, 1), new BHSDCodec(5, 4, 1, 1), new BHSDCodec(5, 4, 2, 1),
+        new BHSDCodec(5, 16, 0, 1), new BHSDCodec(5, 16, 1, 1), new BHSDCodec(5, 16, 2, 1), new BHSDCodec(5, 32, 0, 1),
+        new BHSDCodec(5, 32, 1, 1), new BHSDCodec(5, 32, 2, 1), new BHSDCodec(5, 64, 0, 1), new BHSDCodec(5, 64, 1, 1),
+        new BHSDCodec(5, 64, 2, 1), new BHSDCodec(5, 128, 0, 1), new BHSDCodec(5, 128, 1, 1),
+        new BHSDCodec(5, 128, 2, 1), new BHSDCodec(2, 192), new BHSDCodec(2, 224), new BHSDCodec(2, 240),
+        new BHSDCodec(2, 248), new BHSDCodec(2, 252), new BHSDCodec(2, 8, 0, 1), new BHSDCodec(2, 8, 1, 1),
+        new BHSDCodec(2, 16, 0, 1), new BHSDCodec(2, 16, 1, 1), new BHSDCodec(2, 32, 0, 1), new BHSDCodec(2, 32, 1, 1),
+        new BHSDCodec(2, 64, 0, 1), new BHSDCodec(2, 64, 1, 1), new BHSDCodec(2, 128, 0, 1),
+        new BHSDCodec(2, 128, 1, 1), new BHSDCodec(2, 192, 0, 1), new BHSDCodec(2, 192, 1, 1),
+        new BHSDCodec(2, 224, 0, 1), new BHSDCodec(2, 224, 1, 1), new BHSDCodec(2, 240, 0, 1),
+        new BHSDCodec(2, 240, 1, 1), new BHSDCodec(2, 248, 0, 1), new BHSDCodec(2, 248, 1, 1), new BHSDCodec(3, 192),
+        new BHSDCodec(3, 224), new BHSDCodec(3, 240), new BHSDCodec(3, 248), new BHSDCodec(3, 252),
+        new BHSDCodec(3, 8, 0, 1), new BHSDCodec(3, 8, 1, 1), new BHSDCodec(3, 16, 0, 1), new BHSDCodec(3, 16, 1, 1),
+        new BHSDCodec(3, 32, 0, 1), new BHSDCodec(3, 32, 1, 1), new BHSDCodec(3, 64, 0, 1), new BHSDCodec(3, 64, 1, 1),
+        new BHSDCodec(3, 128, 0, 1), new BHSDCodec(3, 128, 1, 1), new BHSDCodec(3, 192, 0, 1),
+        new BHSDCodec(3, 192, 1, 1), new BHSDCodec(3, 224, 0, 1), new BHSDCodec(3, 224, 1, 1),
+        new BHSDCodec(3, 240, 0, 1), new BHSDCodec(3, 240, 1, 1), new BHSDCodec(3, 248, 0, 1),
+        new BHSDCodec(3, 248, 1, 1), new BHSDCodec(4, 192), new BHSDCodec(4, 224), new BHSDCodec(4, 240),
+        new BHSDCodec(4, 248), new BHSDCodec(4, 252), new BHSDCodec(4, 8, 0, 1), new BHSDCodec(4, 8, 1, 1),
+        new BHSDCodec(4, 16, 0, 1), new BHSDCodec(4, 16, 1, 1), new BHSDCodec(4, 32, 0, 1), new BHSDCodec(4, 32, 1, 1),
+        new BHSDCodec(4, 64, 0, 1), new BHSDCodec(4, 64, 1, 1), new BHSDCodec(4, 128, 0, 1),
+        new BHSDCodec(4, 128, 1, 1), new BHSDCodec(4, 192, 0, 1), new BHSDCodec(4, 192, 1, 1),
+        new BHSDCodec(4, 224, 0, 1), new BHSDCodec(4, 224, 1, 1), new BHSDCodec(4, 240, 0, 1),
+        new BHSDCodec(4, 240, 1, 1), new BHSDCodec(4, 248, 0, 1), new BHSDCodec(4, 248, 1, 1)};
 
     private static Map canonicalCodecsToSpecifiers;
 
-
     /**
-     * Returns the codec specified by the given value byte and optional byte
-     * header. If the value is &gt;= 116, then bytes may be consumed from the
-     * secondary input stream, which is taken to be the contents of the
-     * band_headers byte array. Since the values from this are consumed and not
-     * repeated, the input stream should be reused for subsequent encodings.
-     * This does not therefore close the input stream.
+     * Returns the codec specified by the given value byte and optional byte header. If the value is &gt;= 116, then
+     * bytes may be consumed from the secondary input stream, which is taken to be the contents of the band_headers byte
+     * array. Since the values from this are consumed and not repeated, the input stream should be reused for subsequent
+     * encodings. This does not therefore close the input stream.
      *
-     * @param value
-     *            the canonical encoding value
-     * @param in
-     *            the input stream to read additional byte headers from
-     * @param defaultCodec
-     *            TODO
-     * @return the corresponding codec, or <code>null</code> if the default
-     *         should be used
+     * @param value the canonical encoding value
+     * @param in the input stream to read additional byte headers from
+     * @param defaultCodec TODO
+     * @return the corresponding codec, or <code>null</code> if the default should be used
      *
-     * @throws IOException
-     *             if there is a problem reading from the input stream (which in
-     *             reality, is never, since the band_headers are likely stored
-     *             in a byte array and accessed via a ByteArrayInputStream.
-     *             However, an EOFException could occur if things go wrong)
+     * @throws IOException if there is a problem reading from the input stream (which in reality, is never, since the
+     *         band_headers are likely stored in a byte array and accessed via a ByteArrayInputStream. However, an
+     *         EOFException could occur if things go wrong)
      * @throws Pack200Exception TODO
      */
     public static Codec getCodec(final int value, final InputStream in, final Codec defaultCodec)
-            throws IOException, Pack200Exception {
+        throws IOException, Pack200Exception {
         // Sanity check to make sure that no-one has changed
         // the canonical codecs, which would really cause havoc
         if (canonicalCodec.length != 116) {
-            throw new Error(
-                    "Canonical encodings have been incorrectly modified");
+            throw new Error("Canonical encodings have been incorrectly modified");
         }
         if (value < 0) {
-            throw new IllegalArgumentException(
-                    "Encoding cannot be less than zero");
+            throw new IllegalArgumentException("Encoding cannot be less than zero");
         }
         if (value == 0) {
             return defaultCodec;
@@ -142,8 +102,7 @@ public class CodecEncoding {
         if (value == 116) {
             int code = in.read();
             if (code == -1) {
-                throw new EOFException(
-                        "End of buffer read whilst trying to decode codec");
+                throw new EOFException("End of buffer read whilst trying to decode codec");
             }
             final int d = (code & 0x01);
             final int s = (code >> 1 & 0x03);
@@ -152,8 +111,7 @@ public class CodecEncoding {
             // Codec constructor
             code = in.read();
             if (code == -1) {
-                throw new EOFException(
-                        "End of buffer read whilst trying to decode codec");
+                throw new EOFException("End of buffer read whilst trying to decode codec");
             }
             final int h = code + 1;
             // This handles the special cases for invalid combinations of data.
@@ -168,8 +126,7 @@ public class CodecEncoding {
             // If both A and B use the default encoding, what's the point of
             // having a run of default values followed by default values
             if (adef && bdef) {
-                throw new Pack200Exception(
-                        "ADef and BDef should never both be true");
+                throw new Pack200Exception("ADef and BDef should never both be true");
             }
             final int kb = (kbflag ? in.read() : 3);
             final int k = (kb + 1) * (int) Math.pow(16, kx);
@@ -187,8 +144,7 @@ public class CodecEncoding {
             return new RunCodec(k, aCodec, bCodec);
         }
         if ((value < 141) || (value > 188)) {
-            throw new Pack200Exception("Invalid codec encoding byte (" + value
-                    + ") found");
+            throw new Pack200Exception("Invalid codec encoding byte (" + value + ") found");
         }
         final int offset = value - 141;
         final boolean fdef = (offset & 1) == 1;
@@ -196,17 +152,14 @@ public class CodecEncoding {
         final int tdefl = offset >> 2;
         final boolean tdef = tdefl != 0;
         // From section 6.7.3 of spec
-        final int[] tdefToL = { 0, 4, 8, 16, 32, 64, 128, 192, 224, 240,
-                248, 252 };
+        final int[] tdefToL = {0, 4, 8, 16, 32, 64, 128, 192, 224, 240, 248, 252};
         final int l = tdefToL[tdefl];
         // NOTE: Do not re-factor this to bring out uCodec; the order in
         // which
         // they are read from the stream is important
         if (tdef) {
-            final Codec fCodec = (fdef ? defaultCodec : getCodec(in.read(), in,
-                    defaultCodec));
-            final Codec uCodec = (udef ? defaultCodec : getCodec(in.read(), in,
-                    defaultCodec));
+            final Codec fCodec = (fdef ? defaultCodec : getCodec(in.read(), in, defaultCodec));
+            final Codec uCodec = (udef ? defaultCodec : getCodec(in.read(), in, defaultCodec));
             // Unfortunately, if tdef, then tCodec depends both on l and
             // also on k, the
             // number of items read from the fCodec. So we don't know in
@@ -214,11 +167,9 @@ public class CodecEncoding {
             // the codec will be.
             return new PopulationCodec(fCodec, l, uCodec);
         }
-        final Codec fCodec = (fdef ? defaultCodec : getCodec(in.read(), in,
-                defaultCodec));
+        final Codec fCodec = (fdef ? defaultCodec : getCodec(in.read(), in, defaultCodec));
         final Codec tCodec = getCodec(in.read(), in, defaultCodec);
-        final Codec uCodec = (udef ? defaultCodec : getCodec(in.read(), in,
-                defaultCodec));
+        final Codec uCodec = (udef ? defaultCodec : getCodec(in.read(), in, defaultCodec));
         return new PopulationCodec(fCodec, tCodec, uCodec);
     }
 
@@ -228,7 +179,7 @@ public class CodecEncoding {
 
     public static int[] getSpecifier(final Codec codec, final Codec defaultForBand) {
         // lazy initialization
-        if(canonicalCodecsToSpecifiers == null) {
+        if (canonicalCodecsToSpecifiers == null) {
             final HashMap reverseMap = new HashMap(canonicalCodec.length);
             for (int i = 0; i < canonicalCodec.length; i++) {
                 reverseMap.put(canonicalCodec[i], Integer.valueOf(i));
@@ -236,16 +187,15 @@ public class CodecEncoding {
             canonicalCodecsToSpecifiers = reverseMap;
         }
 
-        if(canonicalCodecsToSpecifiers.containsKey(codec)) {
-            return new int[] {((Integer)canonicalCodecsToSpecifiers.get(codec)).intValue()};
+        if (canonicalCodecsToSpecifiers.containsKey(codec)) {
+            return new int[] {((Integer) canonicalCodecsToSpecifiers.get(codec)).intValue()};
         }
         if (codec instanceof BHSDCodec) {
             // Cache these?
-            final BHSDCodec bhsdCodec = (BHSDCodec)codec;
+            final BHSDCodec bhsdCodec = (BHSDCodec) codec;
             final int[] specifiers = new int[3];
             specifiers[0] = 116;
-            specifiers[1] = (bhsdCodec.isDelta() ? 1 : 0) + 2
-                    * bhsdCodec.getS() + 8 * (bhsdCodec.getB()-1);
+            specifiers[1] = (bhsdCodec.isDelta() ? 1 : 0) + 2 * bhsdCodec.getS() + 8 * (bhsdCodec.getB() - 1);
             specifiers[2] = bhsdCodec.getH() - 1;
             return specifiers;
         }
@@ -254,34 +204,34 @@ public class CodecEncoding {
             final int k = runCodec.getK();
             int kb;
             int kx;
-            if(k <= 256) {
+            if (k <= 256) {
                 kb = 0;
                 kx = k - 1;
             } else if (k <= 4096) {
                 kb = 1;
-                kx = k/16 - 1;
+                kx = k / 16 - 1;
             } else if (k <= 65536) {
                 kb = 2;
-                kx = k/256 - 1;
+                kx = k / 256 - 1;
             } else {
                 kb = 3;
-                kx = k/4096 - 1;
+                kx = k / 4096 - 1;
             }
             final Codec aCodec = runCodec.getACodec();
             final Codec bCodec = runCodec.getBCodec();
             int abDef = 0;
-            if(aCodec.equals(defaultForBand)) {
+            if (aCodec.equals(defaultForBand)) {
                 abDef = 1;
             } else if (bCodec.equals(defaultForBand)) {
                 abDef = 2;
             }
-            final int first = 117 + kb + (kx==3 ? 0 : 4) + (8 * abDef);
+            final int first = 117 + kb + (kx == 3 ? 0 : 4) + (8 * abDef);
             final int[] aSpecifier = abDef == 1 ? new int[0] : getSpecifier(aCodec, defaultForBand);
             final int[] bSpecifier = abDef == 2 ? new int[0] : getSpecifier(bCodec, defaultForBand);
-            final int[] specifier = new int[1 + (kx==3 ? 0 : 1) + aSpecifier.length + bSpecifier.length];
+            final int[] specifier = new int[1 + (kx == 3 ? 0 : 1) + aSpecifier.length + bSpecifier.length];
             specifier[0] = first;
             int index = 1;
-            if(kx != 3) {
+            if (kx != 3) {
                 specifier[1] = kx;
                 index++;
             }
@@ -304,17 +254,17 @@ public class CodecEncoding {
             final int uDef = unfavouredCodec.equals(defaultForBand) ? 1 : 0;
             int tDefL = 0;
             final int[] favoured = populationCodec.getFavoured();
-            if(favoured != null) {
+            if (favoured != null) {
                 final int k = favoured.length;
-                if(tokenCodec == Codec.BYTE1) {
+                if (tokenCodec == Codec.BYTE1) {
                     tDefL = 1;
                 } else if (tokenCodec instanceof BHSDCodec) {
                     final BHSDCodec tokenBHSD = (BHSDCodec) tokenCodec;
-                    if(tokenBHSD.getS() == 0) {
+                    if (tokenBHSD.getS() == 0) {
                         final int[] possibleLValues = {4, 8, 16, 32, 64, 128, 192, 224, 240, 248, 252};
-                        final int l = 256-tokenBHSD.getH();
+                        final int l = 256 - tokenBHSD.getH();
                         int index = Arrays.binarySearch(possibleLValues, l);
-                        if(index != -1) {
+                        if (index != -1) {
                             // TODO: check range is ok for ks
                             tDefL = index++;
                         }
@@ -325,7 +275,8 @@ public class CodecEncoding {
             final int[] favouredSpecifier = fDef == 1 ? new int[0] : getSpecifier(favouredCodec, defaultForBand);
             final int[] tokenSpecifier = tDefL != 0 ? new int[0] : getSpecifier(tokenCodec, defaultForBand);
             final int[] unfavouredSpecifier = uDef == 1 ? new int[0] : getSpecifier(unfavouredCodec, defaultForBand);
-            final int[] specifier = new int[1 + favouredSpecifier.length + unfavouredSpecifier.length + tokenSpecifier.length];
+            final int[] specifier = new int[1 + favouredSpecifier.length + unfavouredSpecifier.length
+                + tokenSpecifier.length];
             specifier[0] = first;
             int index = 1;
             for (int i = 0; i < favouredSpecifier.length; i++) {
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/CpBands.java b/src/main/java/org/apache/commons/compress/harmony/pack200/CpBands.java
index 22024fa..a19c63d 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/CpBands.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/CpBands.java
@@ -100,8 +100,7 @@ public class CpBands extends BandSet {
         writeCpMethodOrField(cp_Imethod, out, "cp_Imethod");
     }
 
-    private void writeCpUtf8(final OutputStream out) throws IOException,
-            Pack200Exception {
+    private void writeCpUtf8(final OutputStream out) throws IOException, Pack200Exception {
         PackingUtils.log("Writing " + cp_Utf8.size() + " UTF8 entries...");
         final int[] cpUtf8Prefix = new int[cp_Utf8.size() - 2];
         final int[] cpUtf8Suffix = new int[cp_Utf8.size() - 1];
@@ -113,8 +112,7 @@ public class CpBands extends BandSet {
         cpUtf8Suffix[0] = first.length();
         addCharacters(chars, first.toCharArray());
         for (int i = 2; i < cpUtf8Array.length; i++) {
-            final char[] previous = ((CPUTF8) cpUtf8Array[i - 1])
-                    .getUnderlyingString().toCharArray();
+            final char[] previous = ((CPUTF8) cpUtf8Array[i - 1]).getUnderlyingString().toCharArray();
             String currentStr = ((CPUTF8) cpUtf8Array[i]).getUnderlyingString();
             final char[] current = currentStr.toCharArray();
             int prefix = 0;
@@ -154,32 +152,25 @@ public class CpBands extends BandSet {
 
         byte[] encodedBand = encodeBandInt("cpUtf8Prefix", cpUtf8Prefix, Codec.DELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from cpUtf8Prefix[" + cpUtf8Prefix.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from cpUtf8Prefix[" + cpUtf8Prefix.length + "]");
 
         encodedBand = encodeBandInt("cpUtf8Suffix", cpUtf8Suffix, Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from cpUtf8Suffix[" + cpUtf8Suffix.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from cpUtf8Suffix[" + cpUtf8Suffix.length + "]");
 
         encodedBand = encodeBandInt("cpUtf8Chars", cpUtf8Chars, Codec.CHAR3);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from cpUtf8Chars[" + cpUtf8Chars.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from cpUtf8Chars[" + cpUtf8Chars.length + "]");
 
-        encodedBand = encodeBandInt("cpUtf8BigSuffix", cpUtf8BigSuffix,
-                Codec.DELTA5);
+        encodedBand = encodeBandInt("cpUtf8BigSuffix", cpUtf8BigSuffix, Codec.DELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from cpUtf8BigSuffix[" + cpUtf8BigSuffix.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from cpUtf8BigSuffix[" + cpUtf8BigSuffix.length + "]");
 
         for (int i = 0; i < cpUtf8BigChars.length; i++) {
-            encodedBand = encodeBandInt("cpUtf8BigChars " + i,
-                    cpUtf8BigChars[i], Codec.DELTA5);
+            encodedBand = encodeBandInt("cpUtf8BigChars " + i, cpUtf8BigChars[i], Codec.DELTA5);
             out.write(encodedBand);
-            PackingUtils.log("Wrote " + encodedBand.length
-                    + " bytes from cpUtf8BigChars" + i + "["
-                    + cpUtf8BigChars[i].length + "]");
+            PackingUtils.log("Wrote " + encodedBand.length + " bytes from cpUtf8BigChars" + i + "["
+                + cpUtf8BigChars[i].length + "]");
         }
     }
 
@@ -189,8 +180,7 @@ public class CpBands extends BandSet {
         }
     }
 
-    private void writeCpInt(final OutputStream out) throws IOException,
-            Pack200Exception {
+    private void writeCpInt(final OutputStream out) throws IOException, Pack200Exception {
         PackingUtils.log("Writing " + cp_Int.size() + " Integer entries...");
         final int[] cpInt = new int[cp_Int.size()];
         int i = 0;
@@ -201,12 +191,10 @@ public class CpBands extends BandSet {
         }
         final byte[] encodedBand = encodeBandInt("cp_Int", cpInt, Codec.UDELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from cp_Int[" + cpInt.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from cp_Int[" + cpInt.length + "]");
     }
 
-    private void writeCpFloat(final OutputStream out) throws IOException,
-            Pack200Exception {
+    private void writeCpFloat(final OutputStream out) throws IOException, Pack200Exception {
         PackingUtils.log("Writing " + cp_Float.size() + " Float entries...");
         final int[] cpFloat = new int[cp_Float.size()];
         int i = 0;
@@ -217,12 +205,10 @@ public class CpBands extends BandSet {
         }
         final byte[] encodedBand = encodeBandInt("cp_Float", cpFloat, Codec.UDELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from cp_Float[" + cpFloat.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from cp_Float[" + cpFloat.length + "]");
     }
 
-    private void writeCpLong(final OutputStream out) throws IOException,
-            Pack200Exception {
+    private void writeCpLong(final OutputStream out) throws IOException, Pack200Exception {
         PackingUtils.log("Writing " + cp_Long.size() + " Long entries...");
         final int[] highBits = new int[cp_Long.size()];
         final int[] loBits = new int[cp_Long.size()];
@@ -236,17 +222,14 @@ public class CpBands extends BandSet {
         }
         byte[] encodedBand = encodeBandInt("cp_Long_hi", highBits, Codec.UDELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from cp_Long_hi[" + highBits.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from cp_Long_hi[" + highBits.length + "]");
 
         encodedBand = encodeBandInt("cp_Long_lo", loBits, Codec.DELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from cp_Long_lo[" + loBits.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from cp_Long_lo[" + loBits.length + "]");
     }
 
-    private void writeCpDouble(final OutputStream out) throws IOException,
-            Pack200Exception {
+    private void writeCpDouble(final OutputStream out) throws IOException, Pack200Exception {
         PackingUtils.log("Writing " + cp_Double.size() + " Double entries...");
         final int[] highBits = new int[cp_Double.size()];
         final int[] loBits = new int[cp_Double.size()];
@@ -260,17 +243,14 @@ public class CpBands extends BandSet {
         }
         byte[] encodedBand = encodeBandInt("cp_Double_hi", highBits, Codec.UDELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from cp_Double_hi[" + highBits.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from cp_Double_hi[" + highBits.length + "]");
 
         encodedBand = encodeBandInt("cp_Double_lo", loBits, Codec.DELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from cp_Double_lo[" + loBits.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from cp_Double_lo[" + loBits.length + "]");
     }
 
-    private void writeCpString(final OutputStream out) throws IOException,
-            Pack200Exception {
+    private void writeCpString(final OutputStream out) throws IOException, Pack200Exception {
         PackingUtils.log("Writing " + cp_String.size() + " String entries...");
         final int[] cpString = new int[cp_String.size()];
         int i = 0;
@@ -281,12 +261,10 @@ public class CpBands extends BandSet {
         }
         final byte[] encodedBand = encodeBandInt("cpString", cpString, Codec.UDELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from cpString[" + cpString.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from cpString[" + cpString.length + "]");
     }
 
-    private void writeCpClass(final OutputStream out) throws IOException,
-            Pack200Exception {
+    private void writeCpClass(final OutputStream out) throws IOException, Pack200Exception {
         PackingUtils.log("Writing " + cp_Class.size() + " Class entries...");
         final int[] cpClass = new int[cp_Class.size()];
         int i = 0;
@@ -297,12 +275,10 @@ public class CpBands extends BandSet {
         }
         final byte[] encodedBand = encodeBandInt("cpClass", cpClass, Codec.UDELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from cpClass[" + cpClass.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from cpClass[" + cpClass.length + "]");
     }
 
-    private void writeCpSignature(final OutputStream out) throws IOException,
-            Pack200Exception {
+    private void writeCpSignature(final OutputStream out) throws IOException, Pack200Exception {
         PackingUtils.log("Writing " + cp_Signature.size() + " Signature entries...");
         final int[] cpSignatureForm = new int[cp_Signature.size()];
         final List classes = new ArrayList();
@@ -318,23 +294,18 @@ public class CpBands extends BandSet {
             cpSignatureClasses[j] = ((CPClass) classes.get(j)).getIndex();
         }
 
-        byte[] encodedBand = encodeBandInt("cpSignatureForm", cpSignatureForm,
-                Codec.DELTA5);
+        byte[] encodedBand = encodeBandInt("cpSignatureForm", cpSignatureForm, Codec.DELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from cpSignatureForm[" + cpSignatureForm.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from cpSignatureForm[" + cpSignatureForm.length + "]");
 
-        encodedBand = encodeBandInt("cpSignatureClasses", cpSignatureClasses,
-                Codec.UDELTA5);
+        encodedBand = encodeBandInt("cpSignatureClasses", cpSignatureClasses, Codec.UDELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from cpSignatureClasses[" + cpSignatureClasses.length + "]");
+        PackingUtils
+            .log("Wrote " + encodedBand.length + " bytes from cpSignatureClasses[" + cpSignatureClasses.length + "]");
     }
 
-    private void writeCpDescr(final OutputStream out) throws IOException,
-            Pack200Exception {
-        PackingUtils.log("Writing " + cp_Descr.size()
-                + " Descriptor entries...");
+    private void writeCpDescr(final OutputStream out) throws IOException, Pack200Exception {
+        PackingUtils.log("Writing " + cp_Descr.size() + " Descriptor entries...");
         final int[] cpDescrName = new int[cp_Descr.size()];
         final int[] cpDescrType = new int[cp_Descr.size()];
         int i = 0;
@@ -345,22 +316,18 @@ public class CpBands extends BandSet {
             i++;
         }
 
-        byte[] encodedBand = encodeBandInt("cp_Descr_Name", cpDescrName,
-                Codec.DELTA5);
+        byte[] encodedBand = encodeBandInt("cp_Descr_Name", cpDescrName, Codec.DELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from cp_Descr_Name[" + cpDescrName.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from cp_Descr_Name[" + cpDescrName.length + "]");
 
         encodedBand = encodeBandInt("cp_Descr_Type", cpDescrType, Codec.UDELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from cp_Descr_Type[" + cpDescrType.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from cp_Descr_Type[" + cpDescrType.length + "]");
     }
 
     private void writeCpMethodOrField(final Set cp, final OutputStream out, final String name)
-            throws IOException, Pack200Exception {
-        PackingUtils.log("Writing " + cp.size()
-                + " Method and Field entries...");
+        throws IOException, Pack200Exception {
+        PackingUtils.log("Writing " + cp.size() + " Method and Field entries...");
         final int[] cp_methodOrField_class = new int[cp.size()];
         final int[] cp_methodOrField_desc = new int[cp.size()];
         int i = 0;
@@ -370,23 +337,20 @@ public class CpBands extends BandSet {
             cp_methodOrField_desc[i] = mOrF.getDescIndex();
             i++;
         }
-        byte[] encodedBand = encodeBandInt(name + "_class",
-                cp_methodOrField_class, Codec.DELTA5);
+        byte[] encodedBand = encodeBandInt(name + "_class", cp_methodOrField_class, Codec.DELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length + " bytes from "
-                + name + "_class[" + cp_methodOrField_class.length + "]");
+        PackingUtils.log(
+            "Wrote " + encodedBand.length + " bytes from " + name + "_class[" + cp_methodOrField_class.length + "]");
 
-        encodedBand = encodeBandInt(name + "_desc", cp_methodOrField_desc,
-                Codec.UDELTA5);
+        encodedBand = encodeBandInt(name + "_desc", cp_methodOrField_desc, Codec.UDELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length + " bytes from "
-                + name + "_desc[" + cp_methodOrField_desc.length + "]");
+        PackingUtils
+            .log("Wrote " + encodedBand.length + " bytes from " + name + "_desc[" + cp_methodOrField_desc.length + "]");
     }
 
     /**
-     * All input classes for the segment have now been read in, so this method
-     * is called so that this class can calculate/complete anything it could not
-     * do while classes were being read.
+     * All input classes for the segment have now been read in, so this method is called so that this class can
+     * calculate/complete anything it could not do while classes were being read.
      */
     public void finaliseBands() {
         addCPUtf8("");
@@ -419,9 +383,8 @@ public class CpBands extends BandSet {
     }
 
     private void addIndices() {
-        final Set[] sets = { cp_Utf8, cp_Int, cp_Float, cp_Long, cp_Double,
-                cp_String, cp_Class, cp_Signature, cp_Descr, cp_Field,
-                cp_Method, cp_Imethod };
+        final Set[] sets = {cp_Utf8, cp_Int, cp_Float, cp_Long, cp_Double, cp_String, cp_Class, cp_Signature, cp_Descr,
+            cp_Field, cp_Method, cp_Imethod};
         for (int i = 0; i < sets.length; i++) {
             int j = 0;
             for (final Iterator iterator = sets[i].iterator(); iterator.hasNext();) {
@@ -458,7 +421,7 @@ public class CpBands extends BandSet {
                 mOrF.setIndexInClass(theIndex);
                 classNameToIndex.put(className, Integer.valueOf(theIndex + 1));
             }
-            if(mOrF.getDesc().getName().equals("<init>")) {
+            if (mOrF.getDesc().getName().equals("<init>")) {
                 final Integer constructorIndex = (Integer) classNameToConstructorIndex.get(className);
                 if (constructorIndex == null) {
                     classNameToConstructorIndex.put(className, Integer.valueOf(1));
@@ -474,7 +437,7 @@ public class CpBands extends BandSet {
 
     private void removeCpUtf8(final String string) {
         final CPUTF8 utf8 = (CPUTF8) stringsToCpUtf8.get(string);
-        if((utf8 != null) && (stringsToCpClass.get(string) == null)) { // don't remove if strings are also in cpclass
+        if ((utf8 != null) && (stringsToCpClass.get(string) == null)) { // don't remove if strings are also in cpclass
             stringsToCpUtf8.remove(string);
             cp_Utf8.remove(utf8);
         }
@@ -485,7 +448,7 @@ public class CpBands extends BandSet {
     }
 
     public CPUTF8 getCPUtf8(final String utf8) {
-        if(utf8 == null) {
+        if (utf8 == null) {
             return null;
         }
         CPUTF8 cpUtf8 = (CPUTF8) stringsToCpUtf8.get(utf8);
@@ -498,7 +461,7 @@ public class CpBands extends BandSet {
     }
 
     public CPSignature getCPSignature(final String signature) {
-        if(signature == null) {
+        if (signature == null) {
             return null;
         }
         CPSignature cpS = (CPSignature) stringsToCpSignature.get(signature);
@@ -515,7 +478,8 @@ public class CpBands extends BandSet {
                         final StringBuffer className = new StringBuffer();
                         for (int j = i + 1; j < chars.length; j++) {
                             final char c = chars[j];
-                            if (!Character.isLetter(c) && !Character.isDigit(c) && (c != '/') && (c != '$') && (c != '_')) {
+                            if (!Character.isLetter(c) && !Character.isDigit(c) && (c != '/') && (c != '$')
+                                && (c != '_')) {
                                 classes.add(className.toString());
                                 i = j - 1;
                                 break;
@@ -525,11 +489,10 @@ public class CpBands extends BandSet {
                     }
                 }
                 removeCpUtf8(signature);
-                for (final Iterator iterator2 = classes.iterator(); iterator2
-                        .hasNext();) {
+                for (final Iterator iterator2 = classes.iterator(); iterator2.hasNext();) {
                     String className = (String) iterator2.next();
                     CPClass cpClass = null;
-                    if(className!= null) {
+                    if (className != null) {
                         className = className.replace('.', '/');
                         cpClass = (CPClass) stringsToCpClass.get(className);
                         if (cpClass == null) {
@@ -554,7 +517,7 @@ public class CpBands extends BandSet {
     }
 
     public CPClass getCPClass(String className) {
-        if(className == null) {
+        if (className == null) {
             return null;
         }
         className = className.replace('.', '/');
@@ -565,7 +528,7 @@ public class CpBands extends BandSet {
             cp_Class.add(cpClass);
             stringsToCpClass.put(className, cpClass);
         }
-        if(cpClass.isInnerClass()) {
+        if (cpClass.isInnerClass()) {
             segment.getClassBands().currentClassReferencesInnerClass(cpClass);
         }
         return cpClass;
@@ -577,11 +540,9 @@ public class CpBands extends BandSet {
 
     public CPNameAndType getCPNameAndType(final String name, final String signature) {
         final String descr = name + ":" + signature;
-        CPNameAndType nameAndType = (CPNameAndType) stringsToCpNameAndType
-                .get(descr);
+        CPNameAndType nameAndType = (CPNameAndType) stringsToCpNameAndType.get(descr);
         if (nameAndType == null) {
-            nameAndType = new CPNameAndType(getCPUtf8(name),
-                    getCPSignature(signature));
+            nameAndType = new CPNameAndType(getCPUtf8(name), getCPSignature(signature));
             stringsToCpNameAndType.put(descr, nameAndType);
             cp_Descr.add(nameAndType);
         }
@@ -590,8 +551,7 @@ public class CpBands extends BandSet {
 
     public CPMethodOrField getCPField(final CPClass cpClass, final String name, final String desc) {
         final String key = cpClass.toString() + ":" + name + ":" + desc;
-        CPMethodOrField cpF = (CPMethodOrField) stringsToCpField
-                .get(key);
+        CPMethodOrField cpF = (CPMethodOrField) stringsToCpField.get(key);
         if (cpF == null) {
             final CPNameAndType nAndT = getCPNameAndType(name, desc);
             cpF = new CPMethodOrField(cpClass, nAndT);
@@ -621,9 +581,9 @@ public class CpBands extends BandSet {
                 cp_String.add(constant);
             } else if (value instanceof Type) {
                 String className = ((Type) value).getClassName();
-                if(className.endsWith("[]")) {
+                if (className.endsWith("[]")) {
                     className = "[L" + className.substring(0, className.length() - 2);
-                    while(className.endsWith("[]")) {
+                    while (className.endsWith("[]")) {
                         className = "[" + className.substring(0, className.length() - 2);
                     }
                     className += ";";
@@ -637,8 +597,7 @@ public class CpBands extends BandSet {
 
     public CPMethodOrField getCPMethod(final CPClass cpClass, final String name, final String desc) {
         final String key = cpClass.toString() + ":" + name + ":" + desc;
-        CPMethodOrField cpM = (CPMethodOrField) stringsToCpMethod
-                .get(key);
+        CPMethodOrField cpM = (CPMethodOrField) stringsToCpMethod.get(key);
         if (cpM == null) {
             final CPNameAndType nAndT = getCPNameAndType(name, desc);
             cpM = new CPMethodOrField(cpClass, nAndT);
@@ -648,11 +607,9 @@ public class CpBands extends BandSet {
         return cpM;
     }
 
-    public CPMethodOrField getCPIMethod(final CPClass cpClass, final String name,
-            final String desc) {
+    public CPMethodOrField getCPIMethod(final CPClass cpClass, final String name, final String desc) {
         final String key = cpClass.toString() + ":" + name + ":" + desc;
-        CPMethodOrField cpIM = (CPMethodOrField) stringsToCpIMethod
-                .get(key);
+        CPMethodOrField cpIM = (CPMethodOrField) stringsToCpIMethod.get(key);
         if (cpIM == null) {
             final CPNameAndType nAndT = getCPNameAndType(name, desc);
             cpIM = new CPMethodOrField(cpClass, nAndT);
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/FileBands.java b/src/main/java/org/apache/commons/compress/harmony/pack200/FileBands.java
index 7f0db8c..be292a0 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/FileBands.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/FileBands.java
@@ -29,9 +29,8 @@ import org.apache.commons.compress.harmony.pack200.Archive.SegmentUnit;
 import org.objectweb.asm.ClassReader;
 
 /**
- * Bands containing information about files in the pack200 archive and the file
- * contents for non-class-files. Corresponds to the <code>file_bands</code> set
- * of bands described in the specification.
+ * Bands containing information about files in the pack200 archive and the file contents for non-class-files.
+ * Corresponds to the <code>file_bands</code> set of bands described in the specification.
  */
 public class FileBands extends BandSet {
 
@@ -45,8 +44,8 @@ public class FileBands extends BandSet {
     private final PackingOptions options;
     private final CpBands cpBands;
 
-    public FileBands(final CpBands cpBands, final SegmentHeader segmentHeader,
-            final PackingOptions options, final SegmentUnit segmentUnit, final int effort) {
+    public FileBands(final CpBands cpBands, final SegmentHeader segmentHeader, final PackingOptions options,
+        final SegmentUnit segmentUnit, final int effort) {
         super(effort, segmentHeader);
         fileList = segmentUnit.getFileList();
         this.options = options;
@@ -61,16 +60,14 @@ public class FileBands extends BandSet {
         final int archiveModtime = segmentHeader.getArchive_modtime();
 
         final Set classNames = new HashSet();
-        for (final Iterator iterator = segmentUnit.getClassList().iterator(); iterator
-                .hasNext();) {
+        for (final Iterator iterator = segmentUnit.getClassList().iterator(); iterator.hasNext();) {
             final ClassReader reader = (ClassReader) iterator.next();
             classNames.add(reader.getClassName());
         }
         final CPUTF8 emptyString = cpBands.getCPUtf8("");
         long modtime;
         int latestModtime = Integer.MIN_VALUE;
-        final boolean isLatest = !PackingOptions.KEEP.equals(options
-                .getModificationTime());
+        final boolean isLatest = !PackingOptions.KEEP.equals(options.getModificationTime());
         for (int i = 0; i < size; i++) {
             final PackingFile packingFile = (PackingFile) fileList.get(i);
             final String name = packingFile.getName();
@@ -110,9 +107,8 @@ public class FileBands extends BandSet {
     }
 
     /**
-     * All input classes for the segment have now been read in, so this method
-     * is called so that this class can calculate/complete anything it could not
-     * do while classes were being read.
+     * All input classes for the segment have now been read in, so this method is called so that this class can
+     * calculate/complete anything it could not do while classes were being read.
      */
     public void finaliseBands() {
         file_name = new int[fileName.length];
@@ -132,38 +128,29 @@ public class FileBands extends BandSet {
     @Override
     public void pack(final OutputStream out) throws IOException, Pack200Exception {
         PackingUtils.log("Writing file bands...");
-        byte[] encodedBand = encodeBandInt("file_name", file_name,
-                Codec.UNSIGNED5);
+        byte[] encodedBand = encodeBandInt("file_name", file_name, Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from file_name[" + file_name.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from file_name[" + file_name.length + "]");
 
-        encodedBand = encodeFlags("file_size", file_size, Codec.UNSIGNED5,
-                Codec.UNSIGNED5, segmentHeader.have_file_size_hi());
+        encodedBand = encodeFlags("file_size", file_size, Codec.UNSIGNED5, Codec.UNSIGNED5,
+            segmentHeader.have_file_size_hi());
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from file_size[" + file_size.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from file_size[" + file_size.length + "]");
 
         if (segmentHeader.have_file_modtime()) {
-            encodedBand = encodeBandInt("file_modtime", file_modtime,
-                    Codec.DELTA5);
+            encodedBand = encodeBandInt("file_modtime", file_modtime, Codec.DELTA5);
             out.write(encodedBand);
-            PackingUtils.log("Wrote " + encodedBand.length
-                    + " bytes from file_modtime[" + file_modtime.length + "]");
+            PackingUtils.log("Wrote " + encodedBand.length + " bytes from file_modtime[" + file_modtime.length + "]");
         }
         if (segmentHeader.have_file_options()) {
-            encodedBand = encodeBandInt("file_options", file_options,
-                    Codec.UNSIGNED5);
+            encodedBand = encodeBandInt("file_options", file_options, Codec.UNSIGNED5);
             out.write(encodedBand);
-            PackingUtils.log("Wrote " + encodedBand.length
-                    + " bytes from file_options[" + file_options.length + "]");
+            PackingUtils.log("Wrote " + encodedBand.length + " bytes from file_options[" + file_options.length + "]");
         }
 
-        encodedBand = encodeBandInt("file_bits", flatten(file_bits),
-                Codec.BYTE1);
+        encodedBand = encodeBandInt("file_bits", flatten(file_bits), Codec.BYTE1);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from file_bits[" + file_bits.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from file_bits[" + file_bits.length + "]");
     }
 
     private int[] flatten(final byte[][] bytes) {
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/IcBands.java b/src/main/java/org/apache/commons/compress/harmony/pack200/IcBands.java
index bcb89b8..69db2cf 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/IcBands.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/IcBands.java
@@ -27,8 +27,7 @@ import java.util.Set;
 import java.util.TreeSet;
 
 /**
- * Inner class bands (corresponds to the <code>ic_bands</code> set of bands in
- * the pack200 specification)
+ * Inner class bands (corresponds to the <code>ic_bands</code> set of bands in the pack200 specification)
  */
 public class IcBands extends BandSet {
 
@@ -44,9 +43,8 @@ public class IcBands extends BandSet {
     }
 
     /**
-     * All input classes for the segment have now been read in, so this method
-     * is called so that this class can calculate/complete anything it could not
-     * do while classes were being read.
+     * All input classes for the segment have now been read in, so this method is called so that this class can
+     * calculate/complete anything it could not do while classes were being read.
      */
     public void finaliseBands() {
         segmentHeader.setIc_count(innerClasses.size());
@@ -66,47 +64,41 @@ public class IcBands extends BandSet {
             final IcTuple icTuple = (IcTuple) innerClassesList.get(i);
             ic_this_class[i] = icTuple.C.getIndex();
             ic_flags[i] = icTuple.F;
-            if((icTuple.F & (1<<16)) != 0) {
+            if ((icTuple.F & (1 << 16)) != 0) {
                 ic_outer_class[index2] = icTuple.C2 == null ? 0 : icTuple.C2.getIndex() + 1;
                 ic_name[index2] = icTuple.N == null ? 0 : icTuple.N.getIndex() + 1;
                 index2++;
             }
         }
-        byte[] encodedBand = encodeBandInt("ic_this_class", ic_this_class,
-                Codec.UDELTA5);
+        byte[] encodedBand = encodeBandInt("ic_this_class", ic_this_class, Codec.UDELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from ic_this_class[" + ic_this_class.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from ic_this_class[" + ic_this_class.length + "]");
 
         encodedBand = encodeBandInt("ic_flags", ic_flags, Codec.UNSIGNED5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from ic_flags[" + ic_flags.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from ic_flags[" + ic_flags.length + "]");
 
-        encodedBand = encodeBandInt("ic_outer_class", ic_outer_class,
-                Codec.DELTA5);
+        encodedBand = encodeBandInt("ic_outer_class", ic_outer_class, Codec.DELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from ic_outer_class[" + ic_outer_class.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from ic_outer_class[" + ic_outer_class.length + "]");
 
         encodedBand = encodeBandInt("ic_name", ic_name, Codec.DELTA5);
         out.write(encodedBand);
-        PackingUtils.log("Wrote " + encodedBand.length
-                + " bytes from ic_name[" + ic_name.length + "]");
+        PackingUtils.log("Wrote " + encodedBand.length + " bytes from ic_name[" + ic_name.length + "]");
     }
 
-    public void addInnerClass(final String name, final String outerName, final String innerName,
-            int flags) {
-        if(outerName != null || innerName != null) {
-            if(namesArePredictable(name, outerName, innerName)) {
+    public void addInnerClass(final String name, final String outerName, final String innerName, int flags) {
+        if (outerName != null || innerName != null) {
+            if (namesArePredictable(name, outerName, innerName)) {
                 final IcTuple innerClass = new IcTuple(cpBands.getCPClass(name), flags, null, null);
                 addToMap(outerName, innerClass);
                 innerClasses.add(innerClass);
             } else {
-                flags |= (1<<16);
-                final IcTuple icTuple = new IcTuple(cpBands.getCPClass(name), flags, cpBands.getCPClass(outerName), cpBands.getCPUtf8(innerName));
+                flags |= (1 << 16);
+                final IcTuple icTuple = new IcTuple(cpBands.getCPClass(name), flags, cpBands.getCPClass(outerName),
+                    cpBands.getCPUtf8(innerName));
                 final boolean added = innerClasses.add(icTuple);
-                if(added) {
+                if (added) {
                     bit16Count++;
                     addToMap(outerName, icTuple);
                 }
@@ -128,14 +120,14 @@ public class IcBands extends BandSet {
 
     private void addToMap(final String outerName, final IcTuple icTuple) {
         List tuples = (List) outerToInner.get(outerName);
-        if(tuples == null) {
+        if (tuples == null) {
             tuples = new ArrayList();
             outerToInner.put(outerName, tuples);
             tuples.add(icTuple);
         } else {
             for (final Iterator iterator = tuples.iterator(); iterator.hasNext();) {
                 final IcTuple icT = (IcTuple) iterator.next();
-                if(icTuple.equals(icT)) {
+                if (icTuple.equals(icT)) {
                     return;
                 }
             }
@@ -143,8 +135,7 @@ public class IcBands extends BandSet {
         }
     }
 
-    private boolean namesArePredictable(final String name, final String outerName,
-            final String innerName) {
+    private boolean namesArePredictable(final String name, final String outerName, final String innerName) {
         // TODO: Could be multiple characters, not just $
         return name.equals(outerName + '$' + innerName) && innerName.indexOf('$') == -1;
     }
@@ -165,9 +156,10 @@ public class IcBands extends BandSet {
 
         @Override
         public boolean equals(final Object o) {
-            if(o instanceof IcTuple) {
-                final IcTuple icT = (IcTuple)o;
-                return C.equals(icT.C) && F == icT.F && (C2 != null ? C2.equals(icT.C2) : icT.C2 == null) && (N != null ? N.equals(icT.N) : icT.N == null);
+            if (o instanceof IcTuple) {
+                final IcTuple icT = (IcTuple) o;
+                return C.equals(icT.C) && F == icT.F && (C2 != null ? C2.equals(icT.C2) : icT.C2 == null)
+                    && (N != null ? N.equals(icT.N) : icT.N == null);
             }
             return false;
         }
@@ -179,7 +171,7 @@ public class IcBands extends BandSet {
 
         @Override
         public int compareTo(final Object arg0) {
-            return C.compareTo(((IcTuple)arg0).C);
+            return C.compareTo(((IcTuple) arg0).C);
         }
 
         public boolean isAnonymous() {
@@ -193,7 +185,7 @@ public class IcBands extends BandSet {
     public IcTuple getIcTuple(final CPClass inner) {
         for (final Iterator iterator = innerClasses.iterator(); iterator.hasNext();) {
             final IcTuple icTuple = (IcTuple) iterator.next();
-            if(icTuple.C.equals(inner)) {
+            if (icTuple.C.equals(inner)) {
                 return icTuple;
             }
         }
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/IntList.java b/src/main/java/org/apache/commons/compress/harmony/pack200/IntList.java
index 273b38e..1b76877 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/IntList.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/IntList.java
@@ -19,9 +19,8 @@ package org.apache.commons.compress.harmony.pack200;
 import java.util.Arrays;
 
 /**
- * IntList is based on <code>java.util.ArrayList</code>, but is written
- * specifically for ints in order to reduce boxing and unboxing to Integers,
- * reduce the memory required and improve performance of pack200.
+ * IntList is based on <code>java.util.ArrayList</code>, but is written specifically for ints in order to reduce boxing
+ * and unboxing to Integers, reduce the memory required and improve performance of pack200.
  */
 public class IntList {
 
@@ -40,8 +39,7 @@ public class IntList {
     /**
      * Constructs a new instance of IntList with the specified capacity.
      *
-     * @param capacity
-     *            the initial capacity of this IntList
+     * @param capacity the initial capacity of this IntList
      */
     public IntList(final int capacity) {
         if (capacity < 0) {
@@ -54,8 +52,7 @@ public class IntList {
     /**
      * Adds the specified object at the end of this IntList.
      *
-     * @param object
-     *            the object to add
+     * @param object the object to add
      * @return true
      */
     public boolean add(final int object) {
@@ -72,14 +69,11 @@ public class IntList {
         if (0 < location && location < size) {
             if (firstIndex == 0 && lastIndex == array.length) {
                 growForInsert(location, 1);
-            } else if ((location < size / 2 && firstIndex > 0)
-                    || lastIndex == array.length) {
-                System.arraycopy(array, firstIndex, array, --firstIndex,
-                        location);
+            } else if ((location < size / 2 && firstIndex > 0) || lastIndex == array.length) {
+                System.arraycopy(array, firstIndex, array, --firstIndex, location);
             } else {
                 final int index = location + firstIndex;
-                System.arraycopy(array, index, array, index + 1, size
-                        - location);
+                System.arraycopy(array, index, array, index + 1, size - location);
                 lastIndex++;
             }
             array[location + firstIndex] = object;
@@ -161,8 +155,7 @@ public class IntList {
             }
             final int[] newArray = new int[size + increment];
             if (size > 0) {
-                System.arraycopy(array, firstIndex, newArray, newArray.length
-                        - size, size);
+                System.arraycopy(array, firstIndex, newArray, newArray.length - size, size);
             }
             firstIndex = newArray.length - size;
             lastIndex = newArray.length;
@@ -183,8 +176,7 @@ public class IntList {
         final int newFirst = increment - required;
         // Copy elements after location to the new array skipping inserted
         // elements
-        System.arraycopy(array, location + firstIndex, newArray, newFirst
-                + location + required, size - location);
+        System.arraycopy(array, location + firstIndex, newArray, newFirst + location + required, size - location);
         // Copy elements before location to the new array from firstIndex
         System.arraycopy(array, firstIndex, newArray, newFirst, location);
         firstIndex = newFirst;
@@ -220,12 +212,10 @@ public class IntList {
             final int elementIndex = firstIndex + location;
             result = array[elementIndex];
             if (location < size / 2) {
-                System.arraycopy(array, firstIndex, array, firstIndex + 1,
-                        location);
+                System.arraycopy(array, firstIndex, array, firstIndex + 1, location);
                 array[firstIndex++] = 0;
             } else {
-                System.arraycopy(array, elementIndex + 1, array,
-                        elementIndex, size - location - 1);
+                System.arraycopy(array, elementIndex + 1, array, elementIndex, size - location - 1);
                 array[--lastIndex] = 0;
             }
         }
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/MetadataBandGroup.java b/src/main/java/org/apache/commons/compress/harmony/pack200/MetadataBandGroup.java
index e0f6317..1b378c7 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/MetadataBandGroup.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/MetadataBandGroup.java
@@ -23,8 +23,7 @@ import java.util.Iterator;
 import java.util.List;
 
 /**
- * A group of metadata (annotation) bands, such as class_RVA_bands,
- * method_AD_bands etc.
+ * A group of metadata (annotation) bands, such as class_RVA_bands, method_AD_bands etc.
  */
 public class MetadataBandGroup extends BandSet {
 
@@ -60,34 +59,31 @@ public class MetadataBandGroup extends BandSet {
     /**
      * Constructs a new MetadataBandGroup
      *
-     * @param type
-     *            must be either AD, RVA, RIA, RVPA or RIPA.
-     * @param context
-     *            <code>CONTEXT_CLASS</code>, <code>CONTEXT_METHOD</code> or
-     *            <code>CONTEXT_FIELD</code>
-     * @param cpBands
-     *            constant pool bands
-     * @param segmentHeader
-     *            segment header
-     * @param effort
-     *            packing effort
+     * @param type must be either AD, RVA, RIA, RVPA or RIPA.
+     * @param context <code>CONTEXT_CLASS</code>, <code>CONTEXT_METHOD</code> or <code>CONTEXT_FIELD</code>
+     * @param cpBands constant pool bands
+     * @param segmentHeader segment header
+     * @param effort packing effort
      */
-    public MetadataBandGroup(final String type, final int context, final CpBands cpBands, final SegmentHeader segmentHeader, final int effort) {
+    public MetadataBandGroup(final String type, final int context, final CpBands cpBands,
+        final SegmentHeader segmentHeader, final int effort) {
         super(effort, segmentHeader);
         this.type = type;
         this.cpBands = cpBands;
         this.context = context;
     }
 
-    /* (non-Javadoc)
+    /*
+     * (non-Javadoc)
+     * 
      * @see org.apache.commons.compress.harmony.pack200.BandSet#pack(java.io.OutputStream)
      */
     @Override
     public void pack(final OutputStream out) throws IOException, Pack200Exception {
         PackingUtils.log("Writing metadata band group...");
-        if(hasContent()) {
+        if (hasContent()) {
             String contextStr;
-            if(context == CONTEXT_CLASS) {
+            if (context == CONTEXT_CLASS) {
                 contextStr = "Class";
             } else if (context == CONTEXT_FIELD) {
                 contextStr = "Field";
@@ -95,155 +91,126 @@ public class MetadataBandGroup extends BandSet {
                 contextStr = "Method";
             }
             byte[] encodedBand = null;
-            if(!type.equals("AD")) {
-                if(type.indexOf('P') != -1) {
+            if (!type.equals("AD")) {
+                if (type.indexOf('P') != -1) {
                     // Parameter annotation so we need to transmit param_NB
-                    encodedBand = encodeBandInt(
-                            contextStr + "_" + type + " param_NB", param_NB.toArray(),
-                            Codec.BYTE1);
+                    encodedBand = encodeBandInt(contextStr + "_" + type + " param_NB", param_NB.toArray(), Codec.BYTE1);
                     out.write(encodedBand);
-                    PackingUtils.log("Wrote " + encodedBand.length
-                            + " bytes from " + contextStr + "_" + type + " anno_N["
-                            + param_NB.size() + "]");
+                    PackingUtils.log("Wrote " + encodedBand.length + " bytes from " + contextStr + "_" + type
+                        + " anno_N[" + param_NB.size() + "]");
                 }
-                encodedBand = encodeBandInt(
-                        contextStr + "_" + type + " anno_N", anno_N.toArray(),
-                        Codec.UNSIGNED5);
+                encodedBand = encodeBandInt(contextStr + "_" + type + " anno_N", anno_N.toArray(), Codec.UNSIGNED5);
                 out.write(encodedBand);
-                PackingUtils.log("Wrote " + encodedBand.length
-                        + " bytes from " + contextStr + "_" + type + " anno_N["
-                        + anno_N.size() + "]");
+                PackingUtils.log("Wrote " + encodedBand.length + " bytes from " + contextStr + "_" + type + " anno_N["
+                    + anno_N.size() + "]");
 
-                encodedBand = encodeBandInt(contextStr + "_" + type
-                        + " type_RS", cpEntryListToArray(type_RS),
-                        Codec.UNSIGNED5);
+                encodedBand = encodeBandInt(contextStr + "_" + type + " type_RS", cpEntryListToArray(type_RS),
+                    Codec.UNSIGNED5);
                 out.write(encodedBand);
-                PackingUtils.log("Wrote " + encodedBand.length
-                        + " bytes from " + contextStr + "_" + type
-                        + " type_RS[" + type_RS.size() + "]");
+                PackingUtils.log("Wrote " + encodedBand.length + " bytes from " + contextStr + "_" + type + " type_RS["
+                    + type_RS.size() + "]");
 
-                encodedBand = encodeBandInt(
-                        contextStr + "_" + type + " pair_N", pair_N.toArray(),
-                        Codec.UNSIGNED5);
+                encodedBand = encodeBandInt(contextStr + "_" + type + " pair_N", pair_N.toArray(), Codec.UNSIGNED5);
                 out.write(encodedBand);
-                PackingUtils.log("Wrote " + encodedBand.length
-                        + " bytes from " + contextStr + "_" + type + " pair_N["
-                        + pair_N.size() + "]");
+                PackingUtils.log("Wrote " + encodedBand.length + " bytes from " + contextStr + "_" + type + " pair_N["
+                    + pair_N.size() + "]");
 
-                encodedBand = encodeBandInt(contextStr + "_" + type
-                        + " name_RU", cpEntryListToArray(name_RU),
-                        Codec.UNSIGNED5);
+                encodedBand = encodeBandInt(contextStr + "_" + type + " name_RU", cpEntryListToArray(name_RU),
+                    Codec.UNSIGNED5);
                 out.write(encodedBand);
-                PackingUtils.log("Wrote " + encodedBand.length
-                        + " bytes from " + contextStr + "_" + type
-                        + " name_RU[" + name_RU.size() + "]");
+                PackingUtils.log("Wrote " + encodedBand.length + " bytes from " + contextStr + "_" + type + " name_RU["
+                    + name_RU.size() + "]");
             }
-            encodedBand = encodeBandInt(contextStr + "_" + type + " T",
-                    tagListToArray(T), Codec.BYTE1);
+            encodedBand = encodeBandInt(contextStr + "_" + type + " T", tagListToArray(T), Codec.BYTE1);
             out.write(encodedBand);
-            PackingUtils.log("Wrote " + encodedBand.length + " bytes from "
-                    + contextStr + "_" + type + " T[" + T.size() + "]");
+            PackingUtils
+                .log("Wrote " + encodedBand.length + " bytes from " + contextStr + "_" + type + " T[" + T.size() + "]");
 
-            encodedBand = encodeBandInt(contextStr + "_" + type + " caseI_KI",
-                    cpEntryListToArray(caseI_KI), Codec.UNSIGNED5);
+            encodedBand = encodeBandInt(contextStr + "_" + type + " caseI_KI", cpEntryListToArray(caseI_KI),
+                Codec.UNSIGNED5);
             out.write(encodedBand);
-            PackingUtils.log("Wrote " + encodedBand.length + " bytes from "
-                    + contextStr + "_" + type + " caseI_KI[" + caseI_KI.size()
-                    + "]");
+            PackingUtils.log("Wrote " + encodedBand.length + " bytes from " + contextStr + "_" + type + " caseI_KI["
+                + caseI_KI.size() + "]");
 
-            encodedBand = encodeBandInt(contextStr + "_" + type + " caseD_KD",
-                    cpEntryListToArray(caseD_KD), Codec.UNSIGNED5);
+            encodedBand = encodeBandInt(contextStr + "_" + type + " caseD_KD", cpEntryListToArray(caseD_KD),
+                Codec.UNSIGNED5);
             out.write(encodedBand);
-            PackingUtils.log("Wrote " + encodedBand.length + " bytes from "
-                    + contextStr + "_" + type + " caseD_KD[" + caseD_KD.size()
-                    + "]");
+            PackingUtils.log("Wrote " + encodedBand.length + " bytes from " + contextStr + "_" + type + " caseD_KD["
+                + caseD_KD.size() + "]");
 
-            encodedBand = encodeBandInt(contextStr + "_" + type + " caseF_KF",
-                    cpEntryListToArray(caseF_KF), Codec.UNSIGNED5);
+            encodedBand = encodeBandInt(contextStr + "_" + type + " caseF_KF", cpEntryListToArray(caseF_KF),
+                Codec.UNSIGNED5);
             out.write(encodedBand);
-            PackingUtils.log("Wrote " + encodedBand.length + " bytes from "
-                    + contextStr + "_" + type + " caseF_KF[" + caseF_KF.size()
-                    + "]");
+            PackingUtils.log("Wrote " + encodedBand.length + " bytes from " + contextStr + "_" + type + " caseF_KF["
+                + caseF_KF.size() + "]");
 
-            encodedBand = encodeBandInt(contextStr + "_" + type + " caseJ_KJ",
-                    cpEntryListToArray(caseJ_KJ), Codec.UNSIGNED5);
+            encodedBand = encodeBandInt(contextStr + "_" + type + " caseJ_KJ", cpEntryListToArray(caseJ_KJ),
+                Codec.UNSIGNED5);
             out.write(encodedBand);
-            PackingUtils.log("Wrote " + encodedBand.length + " bytes from "
-                    + contextStr + "_" + type + " caseJ_KJ[" + caseJ_KJ.size()
-                    + "]");
+            PackingUtils.log("Wrote " + encodedBand.length + " bytes from " + contextStr + "_" + type + " caseJ_KJ["
+                + caseJ_KJ.size() + "]");
 
-            encodedBand = encodeBandInt(contextStr + "_" + type + " casec_RS",
-                    cpEntryListToArray(casec_RS), Codec.UNSIGNED5);
+            encodedBand = encodeBandInt(contextStr + "_" + type + " casec_RS", cpEntryListToArray(casec_RS),
+                Codec.UNSIGNED5);
             out.write(encodedBand);
-            PackingUtils.log("Wrote " + encodedBand.length + " bytes from "
-                    + contextStr + "_" + type + " casec_RS[" + casec_RS.size()
-                    + "]");
+            PackingUtils.log("Wrote " + encodedBand.length + " bytes from " + contextStr + "_" + type + " casec_RS["
+                + casec_RS.size() + "]");
 
-            encodedBand = encodeBandInt(contextStr + "_" + type + " caseet_RS",
-                    cpEntryListToArray(caseet_RS), Codec.UNSIGNED5);
+            encodedBand = encodeBandInt(contextStr + "_" + type + " caseet_RS", cpEntryListToArray(caseet_RS),
+                Codec.UNSIGNED5);
             out.write(encodedBand);
-            PackingUtils.log("Wrote " + encodedBand.length + " bytes from "
-                    + contextStr + "_" + type + " caseet_RS["
-                    + caseet_RS.size() + "]");
+            PackingUtils.log("Wrote " + encodedBand.length + " bytes from " + contextStr + "_" + type + " caseet_RS["
+                + caseet_RS.size() + "]");
 
-            encodedBand = encodeBandInt(contextStr + "_" + type + " caseec_RU",
-                    cpEntryListToArray(caseec_RU), Codec.UNSIGNED5);
+            encodedBand = encodeBandInt(contextStr + "_" + type + " caseec_RU", cpEntryListToArray(caseec_RU),
+                Codec.UNSIGNED5);
             out.write(encodedBand);
-            PackingUtils.log("Wrote " + encodedBand.length + " bytes from "
-                    + contextStr + "_" + type + " caseec_RU["
-                    + caseec_RU.size() + "]");
+            PackingUtils.log("Wrote " + encodedBand.length + " bytes from " + contextStr + "_" + type + " caseec_RU["
+                + caseec_RU.size() + "]");
 
-            encodedBand = encodeBandInt(contextStr + "_" + type + " cases_RU",
-                    cpEntryListToArray(cases_RU), Codec.UNSIGNED5);
+            encodedBand = encodeBandInt(contextStr + "_" + type + " cases_RU", cpEntryListToArray(cases_RU),
+                Codec.UNSIGNED5);
             out.write(encodedBand);
-            PackingUtils.log("Wrote " + encodedBand.length + " bytes from "
-                    + contextStr + "_" + type + " cases_RU[" + cases_RU.size()
-                    + "]");
+            PackingUtils.log("Wrote " + encodedBand.length + " bytes from " + contextStr + "_" + type + " cases_RU["
+                + cases_RU.size() + "]");
 
-            encodedBand = encodeBandInt(contextStr + "_" + type
-                    + " casearray_N", casearray_N.toArray(), Codec.UNSIGNED5);
+            encodedBand = encodeBandInt(contextStr + "_" + type + " casearray_N", casearray_N.toArray(),
+                Codec.UNSIGNED5);
             out.write(encodedBand);
-            PackingUtils.log("Wrote " + encodedBand.length + " bytes from "
-                    + contextStr + "_" + type + " casearray_N["
-                    + casearray_N.size() + "]");
+            PackingUtils.log("Wrote " + encodedBand.length + " bytes from " + contextStr + "_" + type + " casearray_N["
+                + casearray_N.size() + "]");
 
-            encodedBand = encodeBandInt(contextStr + "_" + type
-                    + " nesttype_RS", cpEntryListToArray(nesttype_RS),
-                    Codec.UNSIGNED5);
+            encodedBand = encodeBandInt(contextStr + "_" + type + " nesttype_RS", cpEntryListToArray(nesttype_RS),
+                Codec.UNSIGNED5);
             out.write(encodedBand);
-            PackingUtils.log("Wrote " + encodedBand.length + " bytes from "
-                    + contextStr + "_" + type + " nesttype_RS["
-                    + nesttype_RS.size() + "]");
+            PackingUtils.log("Wrote " + encodedBand.length + " bytes from " + contextStr + "_" + type + " nesttype_RS["
+                + nesttype_RS.size() + "]");
 
-            encodedBand = encodeBandInt(
-                    contextStr + "_" + type + " nestpair_N", nestpair_N
-                            .toArray(), Codec.UNSIGNED5);
+            encodedBand = encodeBandInt(contextStr + "_" + type + " nestpair_N", nestpair_N.toArray(), Codec.UNSIGNED5);
             out.write(encodedBand);
-            PackingUtils.log("Wrote " + encodedBand.length + " bytes from "
-                    + contextStr + "_" + type + " nestpair_N["
-                    + nestpair_N.size() + "]");
+            PackingUtils.log("Wrote " + encodedBand.length + " bytes from " + contextStr + "_" + type + " nestpair_N["
+                + nestpair_N.size() + "]");
 
-            encodedBand = encodeBandInt(contextStr + "_" + type
-                    + " nestname_RU", cpEntryListToArray(nestname_RU),
-                    Codec.UNSIGNED5);
+            encodedBand = encodeBandInt(contextStr + "_" + type + " nestname_RU", cpEntryListToArray(nestname_RU),
+                Codec.UNSIGNED5);
             out.write(encodedBand);
-            PackingUtils.log("Wrote " + encodedBand.length + " bytes from "
-                    + contextStr + "_" + type + " nestname_RU["
-                    + nestname_RU.size() + "]");
+            PackingUtils.log("Wrote " + encodedBand.length + " bytes from " + contextStr + "_" + type + " nestname_RU["
+                + nestname_RU.size() + "]");
         }
     }
 
     private int[] tagListToArray(final List t2) {
         final int[] ints = new int[t2.size()];
         for (int i = 0; i < ints.length; i++) {
-            ints[i] = ((String)t2.get(i)).charAt(0);
+            ints[i] = ((String) t2.get(i)).charAt(0);
         }
         return ints;
     }
 
     /**
      * Add an annotation to this set of bands.
-     * @param numParams  TODO
+     * 
+     * @param numParams TODO
      * @param annoN TODO
      * @param pairN TODO
      * @param typeRS TODO
@@ -255,7 +222,9 @@ public class MetadataBandGroup extends BandSet {
      * @param nestNameRU TODO
      * @param nestPairN TODO
      */
-    public void addParameterAnnotation(final int numParams, final int[] annoN, final IntList pairN, final List typeRS, final List nameRU, final List t, final List values, final List caseArrayN, final List nestTypeRS, final List nestNameRU, final List nestPairN) {
+    public void addParameterAnnotation(final int numParams, final int[] annoN, final IntList pairN, final List typeRS,
+        final List nameRU, final List t, final List values, final List caseArrayN, final List nestTypeRS,
+        final List nestNameRU, final List nestPairN) {
         param_NB.add(numParams);
         for (int i = 0; i < annoN.length; i++) {
             anno_N.add(annoN[i]);
@@ -273,35 +242,34 @@ public class MetadataBandGroup extends BandSet {
         for (final Iterator iterator = t.iterator(); iterator.hasNext();) {
             final String tag = (String) iterator.next();
             T.add(tag);
-            if (tag.equals("B") || tag.equals("C") || tag.equals("I")
-                    || tag.equals("S") || tag.equals("Z")) {
-                final Integer value = (Integer)valuesIterator.next();
+            if (tag.equals("B") || tag.equals("C") || tag.equals("I") || tag.equals("S") || tag.equals("Z")) {
+                final Integer value = (Integer) valuesIterator.next();
                 caseI_KI.add(cpBands.getConstant(value));
             } else if (tag.equals("D")) {
-                final Double value = (Double)valuesIterator.next();
+                final Double value = (Double) valuesIterator.next();
                 caseD_KD.add(cpBands.getConstant(value));
             } else if (tag.equals("F")) {
-                final Float value = (Float)valuesIterator.next();
+                final Float value = (Float) valuesIterator.next();
                 caseF_KF.add(cpBands.getConstant(value));
             } else if (tag.equals("J")) {
-                final Long value = (Long)valuesIterator.next();
+                final Long value = (Long) valuesIterator.next();
                 caseJ_KJ.add(cpBands.getConstant(value));
             } else if (tag.equals("c")) {
-                final String value = (String)valuesIterator.next();
+                final String value = (String) valuesIterator.next();
                 casec_RS.add(cpBands.getCPSignature(value));
             } else if (tag.equals("e")) {
-                final String value = (String)valuesIterator.next();
-                final String value2 = (String)valuesIterator.next();
+                final String value = (String) valuesIterator.next();
+                final String value2 = (String) valuesIterator.next();
                 caseet_RS.add(cpBands.getCPSignature(value));
                 caseec_RU.add(cpBands.getCPUtf8(value2));
             } else if (tag.equals("s")) {
-                final String value = (String)valuesIterator.next();
+                final String value = (String) valuesIterator.next();
                 cases_RU.add(cpBands.getCPUtf8(value));
             }
             // do nothing here for [ or @ (handled below)
         }
         for (final Iterator iterator = caseArrayN.iterator(); iterator.hasNext();) {
-            final int arraySize = ((Integer)iterator.next()).intValue();
+            final int arraySize = ((Integer) iterator.next()).intValue();
             casearray_N.add(arraySize);
             numBackwardsCalls += arraySize;
         }
@@ -332,7 +300,8 @@ public class MetadataBandGroup extends BandSet {
      * @param nestNameRU TODO
      * @param nestPairN TODO
      */
-    public void addAnnotation(final String desc, final List nameRU, final List t, final List values, final List caseArrayN, final List nestTypeRS, final List nestNameRU, final List nestPairN) {
+    public void addAnnotation(final String desc, final List nameRU, final List t, final List values,
+        final List caseArrayN, final List nestTypeRS, final List nestNameRU, final List nestPairN) {
         type_RS.add(cpBands.getCPSignature(desc));
         pair_N.add(nameRU.size());
 
@@ -345,35 +314,34 @@ public class MetadataBandGroup extends BandSet {
         for (final Iterator iterator = t.iterator(); iterator.hasNext();) {
             final String tag = (String) iterator.next();
             T.add(tag);
-            if (tag.equals("B") || tag.equals("C") || tag.equals("I")
-                    || tag.equals("S") || tag.equals("Z")) {
-                final Integer value = (Integer)valuesIterator.next();
+            if (tag.equals("B") || tag.equals("C") || tag.equals("I") || tag.equals("S") || tag.equals("Z")) {
+                final Integer value = (Integer) valuesIterator.next();
                 caseI_KI.add(cpBands.getConstant(value));
             } else if (tag.equals("D")) {
-                final Double value = (Double)valuesIterator.next();
+                final Double value = (Double) valuesIterator.next();
                 caseD_KD.add(cpBands.getConstant(value));
             } else if (tag.equals("F")) {
-                final Float value = (Float)valuesIterator.next();
+                final Float value = (Float) valuesIterator.next();
                 caseF_KF.add(cpBands.getConstant(value));
             } else if (tag.equals("J")) {
-                final Long value = (Long)valuesIterator.next();
+                final Long value = (Long) valuesIterator.next();
                 caseJ_KJ.add(cpBands.getConstant(value));
             } else if (tag.equals("c")) {
-                final String value = (String)valuesIterator.next();
+                final String value = (String) valuesIterator.next();
                 casec_RS.add(cpBands.getCPSignature(value));
             } else if (tag.equals("e")) {
-                final String value = (String)valuesIterator.next();
-                final String value2 = (String)valuesIterator.next();
+                final String value = (String) valuesIterator.next();
+                final String value2 = (String) valuesIterator.next();
                 caseet_RS.add(cpBands.getCPSignature(value));
                 caseec_RU.add(cpBands.getCPUtf8(value2));
             } else if (tag.equals("s")) {
-                final String value = (String)valuesIterator.next();
+                final String value = (String) valuesIterator.next();
                 cases_RU.add(cpBands.getCPUtf8(value));
             }
             // do nothing here for [ or @ (handled below)
         }
         for (final Iterator iterator = caseArrayN.iterator(); iterator.hasNext();) {
-            final int arraySize = ((Integer)iterator.next()).intValue();
+            final int arraySize = ((Integer) iterator.next()).intValue();
             casearray_N.add(arraySize);
             numBackwardsCalls += arraySize;
         }
@@ -417,7 +385,7 @@ public class MetadataBandGroup extends BandSet {
      * Remove the latest annotation that was added to this group
      */
     public void removeLatest() {
-        final int latest = anno_N.remove(anno_N.size() -1);
+        final int latest = anno_N.remove(anno_N.size() - 1);
         for (int i = 0; i < latest; i++) {
             type_RS.remove(type_RS.size() - 1);
             final int pairs = pair_N.remove(pair_N.size() - 1);
@@ -432,8 +400,7 @@ public class MetadataBandGroup extends BandSet {
      */
     private void removeOnePair() {
         final String tag = (String) T.remove(T.size() - 1);
-        if (tag.equals("B") || tag.equals("C") || tag.equals("I")
-                || tag.equals("S") || tag.equals("Z")) {
+        if (tag.equals("B") || tag.equals("C") || tag.equals("I") || tag.equals("S") || tag.equals("Z")) {
             caseI_KI.remove(caseI_KI.size() - 1);
         } else if (tag.equals("D")) {
             caseD_KD.remove(caseD_KD.size() - 1);
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/NewAttribute.java b/src/main/java/org/apache/commons/compress/harmony/pack200/NewAttribute.java
index 4889c05..1b1e520 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/NewAttribute.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/NewAttribute.java
@@ -21,9 +21,8 @@ import org.objectweb.asm.ClassReader;
 import org.objectweb.asm.Label;
 
 /**
- * NewAttribute extends <code>Attribute</code> and manages unknown attributes
- * encountered by ASM that have had a layout definition given to pack200 (e.g.
- * via one of the -C, -M, -F or -D command line options)
+ * NewAttribute extends <code>Attribute</code> and manages unknown attributes encountered by ASM that have had a layout
+ * definition given to pack200 (e.g. via one of the -C, -M, -F or -D command line options)
  */
 public class NewAttribute extends Attribute {
 
@@ -45,8 +44,8 @@ public class NewAttribute extends Attribute {
         addContext(context);
     }
 
-    public NewAttribute(final ClassReader classReader, final String type, final String layout, final byte[] contents, final char[] buf,
-            final int codeOff, final Label[] labels) {
+    public NewAttribute(final ClassReader classReader, final String type, final String layout, final byte[] contents,
+        final char[] buf, final int codeOff, final Label[] labels) {
         super(type);
         this.classReader = classReader;
         this.contents = contents;
@@ -57,7 +56,7 @@ public class NewAttribute extends Attribute {
     }
 
     public void addContext(final int context) {
-        switch(context) {
+        switch (context) {
         case AttributeDefinitionBands.CONTEXT_CLASS:
             contextClass = true;
             break;
@@ -104,16 +103,15 @@ public class NewAttribute extends Attribute {
     }
 
     @Override
-    protected Attribute read(final ClassReader cr, final int off, final int len, final char[] buf,
-            final int codeOff, final Label[] labels) {
+    protected Attribute read(final ClassReader cr, final int off, final int len, final char[] buf, final int codeOff,
+        final Label[] labels) {
         final byte[] attributeContents = new byte[len];
         System.arraycopy(cr.b, off, attributeContents, 0, len);
-        return new NewAttribute(cr, type, layout, attributeContents, buf, codeOff,
-                labels);
+        return new NewAttribute(cr, type, layout, attributeContents, buf, codeOff, labels);
     }
 
     public boolean isUnknown(final int context) {
-        switch(context) {
+        switch (context) {
         case AttributeDefinitionBands.CONTEXT_CLASS:
             return !contextClass;
         case AttributeDefinitionBands.CONTEXT_METHOD:
@@ -147,9 +145,8 @@ public class NewAttribute extends Attribute {
     }
 
     /**
-     * ErrorAttribute extends <code>NewAttribute</code> and manages attributes
-     * encountered by ASM that have had an error action specified to pack200
-     * (e.g. via one of the -C, -M, -F or -D command line options such as
+     * ErrorAttribute extends <code>NewAttribute</code> and manages attributes encountered by ASM that have had an error
+     * action specified to pack200 (e.g. via one of the -C, -M, -F or -D command line options such as
      * -Cattribute-name=error)
      */
     public static class ErrorAttribute extends NewAttribute {
@@ -160,16 +157,15 @@ public class NewAttribute extends Attribute {
 
         @Override
         protected Attribute read(final ClassReader cr, final int off, final int len, final char[] buf,
-                final int codeOff, final Label[] labels) {
+            final int codeOff, final Label[] labels) {
             throw new Error("Attribute " + type + " was found");
         }
 
     }
 
     /**
-     * StripAttribute extends <code>NewAttribute</code> and manages attributes
-     * encountered by ASM that have had an strip action specified to pack200
-     * (e.g. via one of the -C, -M, -F or -D command line options such as
+     * StripAttribute extends <code>NewAttribute</code> and manages attributes encountered by ASM that have had an strip
+     * action specified to pack200 (e.g. via one of the -C, -M, -F or -D command line options such as
      * -Cattribute-name=strip)
      */
     public static class StripAttribute extends NewAttribute {
@@ -180,16 +176,15 @@ public class NewAttribute extends Attribute {
 
         @Override
         protected Attribute read(final ClassReader cr, final int off, final int len, final char[] buf,
-                final int codeOff, final Label[] labels) {
+            final int codeOff, final Label[] labels) {
             // TODO Not sure if this works, can we really strip an attribute if we don't know the layout?
             return null;
         }
     }
 
     /**
-     * PassAttribute extends <code>NewAttribute</code> and manages attributes
-     * encountered by ASM that have had an pass action specified to pack200
-     * (e.g. via one of the -C, -M, -F or -D command line options such as
+     * PassAttribute extends <code>NewAttribute</code> and manages attributes encountered by ASM that have had an pass
+     * action specified to pack200 (e.g. via one of the -C, -M, -F or -D command line options such as
      * -Cattribute-name=pass)
      */
     public static class PassAttribute extends NewAttribute {
@@ -200,7 +195,7 @@ public class NewAttribute extends Attribute {
 
         @Override
         protected Attribute read(final ClassReader cr, final int off, final int len, final char[] buf,
-                final int codeOff, final Label[] labels) {
+            final int codeOff, final Label[] labels) {
             throw new Segment.PassException();
         }
 
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/NewAttributeBands.java b/src/main/java/org/apache/commons/compress/harmony/pack200/NewAttributeBands.java
index d451c80..984d913 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/NewAttributeBands.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/NewAttributeBands.java
@@ -31,9 +31,8 @@ import org.apache.commons.compress.harmony.pack200.AttributeDefinitionBands.Attr
 import org.objectweb.asm.Label;
 
 /**
- * Set of bands relating to a non-predefined attribute that has had a layout
- * definition given to pack200 (e.g. via one of the -C, -M, -F or -D command
- * line options)
+ * Set of bands relating to a non-predefined attribute that has had a layout definition given to pack200 (e.g. via one
+ * of the -C, -M, -F or -D command line options)
  */
 public class NewAttributeBands extends BandSet {
 
@@ -46,7 +45,8 @@ public class NewAttributeBands extends BandSet {
     // used when parsing
     private Integral lastPIntegral;
 
-    public NewAttributeBands(final int effort, final CpBands cpBands, final SegmentHeader header, final AttributeDefinition def) throws IOException {
+    public NewAttributeBands(final int effort, final CpBands cpBands, final SegmentHeader header,
+        final AttributeDefinition def) throws IOException {
         super(effort, header);
         this.def = def;
         this.cpBands = cpBands;
@@ -100,22 +100,18 @@ public class NewAttributeBands extends BandSet {
     }
 
     /**
-     * Resolve calls in the attribute layout and returns the number of backwards
-     * callables
+     * Resolve calls in the attribute layout and returns the number of backwards callables
      *
-     * @param tokens -
-     *            the attribute layout as a List of AttributeElements
+     * @param tokens - the attribute layout as a List of AttributeElements
      */
     private void resolveCalls() {
         for (int i = 0; i < attributeLayoutElements.size(); i++) {
-            final AttributeLayoutElement element = (AttributeLayoutElement) attributeLayoutElements
-                    .get(i);
+            final AttributeLayoutElement element = (AttributeLayoutElement) attributeLayoutElements.get(i);
             if (element instanceof Callable) {
                 final Callable callable = (Callable) element;
                 final List body = callable.body; // Look for calls in the body
                 for (int iIndex = 0; iIndex < body.size(); iIndex++) {
-                    final LayoutElement layoutElement = (LayoutElement) body
-                            .get(iIndex);
+                    final LayoutElement layoutElement = (LayoutElement) body.get(iIndex);
                     // Set the callable for each call
                     resolveCallsForElement(i, callable, layoutElement);
                 }
@@ -123,11 +119,10 @@ public class NewAttributeBands extends BandSet {
         }
         int backwardsCallableIndex = 0;
         for (int i = 0; i < attributeLayoutElements.size(); i++) {
-            final AttributeLayoutElement element = (AttributeLayoutElement) attributeLayoutElements
-                    .get(i);
+            final AttributeLayoutElement element = (AttributeLayoutElement) attributeLayoutElements.get(i);
             if (element instanceof Callable) {
                 final Callable callable = (Callable) element;
-                if(callable.isBackwardsCallable) {
+                if (callable.isBackwardsCallable) {
                     callable.setBackwardsCallableIndex(backwardsCallableIndex);
                     backwardsCallableIndex++;
                 }
@@ -136,8 +131,8 @@ public class NewAttributeBands extends BandSet {
         backwardsCallCounts = new int[backwardsCallableIndex];
     }
 
-    private void resolveCallsForElement(final int i,
-            final Callable currentCallable, final LayoutElement layoutElement) {
+    private void resolveCallsForElement(final int i, final Callable currentCallable,
+        final LayoutElement layoutElement) {
         if (layoutElement instanceof Call) {
             final Call call = (Call) layoutElement;
             int index = call.callableIndex;
@@ -145,8 +140,7 @@ public class NewAttributeBands extends BandSet {
                 call.setCallable(currentCallable);
             } else if (index > 0) { // Forwards call
                 for (int k = i + 1; k < attributeLayoutElements.size(); k++) {
-                    final AttributeLayoutElement el = (AttributeLayoutElement) attributeLayoutElements
-                            .get(k);
+                    final AttributeLayoutElement el = (AttributeLayoutElement) attributeLayoutElements.get(k);
                     if (el instanceof Callable) {
                         index--;
                         if (index == 0) {
@@ -157,8 +151,7 @@ public class NewAttributeBands extends BandSet {
                 }
             } else { // Backwards call
                 for (int k = i - 1; k >= 0; k--) {
-                    final AttributeLayoutElement el = (AttributeLayoutElement) attributeLayoutElements
-                            .get(k);
+                    final AttributeLayoutElement el = (AttributeLayoutElement) attributeLayoutElements.get(k);
                     if (el instanceof Callable) {
                         index++;
                         if (index == 0) {
@@ -169,7 +162,7 @@ public class NewAttributeBands extends BandSet {
                 }
             }
         } else if (layoutElement instanceof Replication) {
-            final List children = ((Replication)layoutElement).layoutElements;
+            final List children = ((Replication) layoutElement).layoutElements;
             for (final Iterator iterator = children.iterator(); iterator.hasNext();) {
                 final LayoutElement object = (LayoutElement) iterator.next();
                 resolveCallsForElement(i, currentCallable, object);
@@ -177,8 +170,7 @@ public class NewAttributeBands extends BandSet {
         }
     }
 
-    private AttributeLayoutElement readNextAttributeElement(final StringReader stream)
-            throws IOException {
+    private AttributeLayoutElement readNextAttributeElement(final StringReader stream) throws IOException {
         stream.mark(1);
         final int nextChar = stream.read();
         if (nextChar == -1) {
@@ -192,8 +184,7 @@ public class NewAttributeBands extends BandSet {
         return readNextLayoutElement(stream);
     }
 
-    private LayoutElement readNextLayoutElement(final StringReader stream)
-            throws IOException {
+    private LayoutElement readNextLayoutElement(final StringReader stream) throws IOException {
         final int nextChar = stream.read();
         if (nextChar == -1) {
             return null;
@@ -205,11 +196,10 @@ public class NewAttributeBands extends BandSet {
         case 'H':
         case 'I':
         case 'V':
-            return new Integral(new String(new char[] { (char)nextChar }));
+            return new Integral(new String(new char[] {(char) nextChar}));
         case 'S':
         case 'F':
-            return new Integral(new String(new char[] { (char)nextChar,
-                    (char) stream.read() }));
+            return new Integral(new String(new char[] {(char) nextChar, (char) stream.read()}));
         case 'P':
             stream.mark(1);
             if (stream.read() != 'O') {
@@ -236,7 +226,7 @@ public class NewAttributeBands extends BandSet {
             final String str = readUpToMatchingBracket(stream);
             return new Replication("" + uint_type, str);
 
-            // Union
+        // Union
         case 'T':
             String int_type = "" + (char) stream.read();
             if (int_type.equals("S")) {
@@ -259,15 +249,15 @@ public class NewAttributeBands extends BandSet {
             }
             return new Union(int_type, unionCases, body);
 
-            // Call
+        // Call
         case '(':
             final int number = readNumber(stream).intValue();
             stream.read(); // ')'
             return new Call(number);
-            // Reference
+        // Reference
         case 'K':
         case 'R':
-            final StringBuilder string = new StringBuilder("").append((char)nextChar).append((char) stream.read());
+            final StringBuilder string = new StringBuilder("").append((char) nextChar).append((char) stream.read());
             final char nxt = (char) stream.read();
             string.append(nxt);
             if (nxt == 'N') {
@@ -299,7 +289,7 @@ public class NewAttributeBands extends BandSet {
         Integer nextTag;
         do {
             nextTag = readNumber(stream);
-            if(nextTag != null) {
+            if (nextTag != null) {
                 tags.add(nextTag);
                 stream.read(); // ',' or ')'
             }
@@ -311,14 +301,12 @@ public class NewAttributeBands extends BandSet {
             return new UnionCase(tags);
         }
         stream.reset();
-        return new UnionCase(tags,
-                readBody(getStreamUpToMatchingBracket(stream)));
+        return new UnionCase(tags, readBody(getStreamUpToMatchingBracket(stream)));
     }
 
     /**
-     * An AttributeLayoutElement is a part of an attribute layout and has one or
-     * more bands associated with it, which transmit the AttributeElement data
-     * for successive Attributes of this type.
+     * An AttributeLayoutElement is a part of an attribute layout and has one or more bands associated with it, which
+     * transmit the AttributeElement data for successive Attributes of this type.
      */
     public interface AttributeLayoutElement {
 
@@ -379,8 +367,7 @@ public class NewAttributeBands extends BandSet {
         }
 
         @Override
-        public void addAttributeToBand(final NewAttribute attribute,
-                final InputStream stream) {
+        public void addAttributeToBand(final NewAttribute attribute, final InputStream stream) {
             Object val = null;
             int value = 0;
             if (tag.equals("B") || tag.equals("FB")) {
@@ -418,7 +405,7 @@ public class NewAttributeBands extends BandSet {
                 val = attribute.getLabel(value);
                 previousPValue = value;
             }
-            if(val == null) {
+            if (val == null) {
                 val = Integer.valueOf(value);
             }
             band.add(val);
@@ -427,20 +414,18 @@ public class NewAttributeBands extends BandSet {
         @Override
         public void pack(final OutputStream out) throws IOException, Pack200Exception {
             PackingUtils.log("Writing new attribute bands...");
-            final byte[] encodedBand = encodeBandInt(tag, integerListToArray(band),
-                    defaultCodec);
+            final byte[] encodedBand = encodeBandInt(tag, integerListToArray(band), defaultCodec);
             out.write(encodedBand);
-            PackingUtils.log("Wrote " + encodedBand.length + " bytes from "
-                    + tag + "[" + band.size() + "]");
+            PackingUtils.log("Wrote " + encodedBand.length + " bytes from " + tag + "[" + band.size() + "]");
         }
 
         public int latestValue() {
-            return ((Integer)band.get(band.size() - 1)).intValue();
+            return ((Integer) band.get(band.size() - 1)).intValue();
         }
 
         @Override
         public void renumberBci(final IntList bciRenumbering, final Map labelsToOffsets) {
-            if(tag.startsWith("O") || tag.startsWith("PO")) {
+            if (tag.startsWith("O") || tag.startsWith("PO")) {
                 renumberOffsetBci(previousIntegral.band, bciRenumbering, labelsToOffsets);
             } else if (tag.startsWith("P")) {
                 for (int i = band.size() - 1; i >= 0; i--) {
@@ -450,17 +435,14 @@ public class NewAttributeBands extends BandSet {
                     }
                     if (label instanceof Label) {
                         band.remove(i);
-                        final Integer bytecodeIndex = (Integer) labelsToOffsets
-                                .get(label);
-                        band.add(i, Integer.valueOf(bciRenumbering.get(bytecodeIndex
-                                .intValue())));
+                        final Integer bytecodeIndex = (Integer) labelsToOffsets.get(label);
+                        band.add(i, Integer.valueOf(bciRenumbering.get(bytecodeIndex.intValue())));
                     }
                 }
             }
         }
 
-        private void renumberOffsetBci(final List relative,
-                final IntList bciRenumbering, final Map labelsToOffsets) {
+        private void renumberOffsetBci(final List relative, final IntList bciRenumbering, final Map labelsToOffsets) {
             for (int i = band.size() - 1; i >= 0; i--) {
                 final Object label = band.get(i);
                 if (label instanceof Integer) {
@@ -469,9 +451,8 @@ public class NewAttributeBands extends BandSet {
                 if (label instanceof Label) {
                     band.remove(i);
                     final Integer bytecodeIndex = (Integer) labelsToOffsets.get(label);
-                    final Integer renumberedOffset = Integer.valueOf(bciRenumbering
-                            .get(bytecodeIndex.intValue())
-                            - ((Integer) relative.get(i)).intValue());
+                    final Integer renumberedOffset = Integer
+                        .valueOf(bciRenumbering.get(bytecodeIndex.intValue()) - ((Integer) relative.get(i)).intValue());
                     band.add(i, renumberedOffset);
                 }
             }
@@ -506,8 +487,7 @@ public class NewAttributeBands extends BandSet {
         }
 
         @Override
-        public void addAttributeToBand(final NewAttribute attribute,
-                final InputStream stream) {
+        public void addAttributeToBand(final NewAttribute attribute, final InputStream stream) {
             countElement.addAttributeToBand(attribute, stream);
             final int count = countElement.latestValue();
             for (int i = 0; i < count; i++) {
@@ -537,8 +517,7 @@ public class NewAttributeBands extends BandSet {
     }
 
     /**
-     * A Union is a type of layout element where the tag value acts as a
-     * selector for one of the union cases
+     * A Union is a type of layout element where the tag value acts as a selector for one of the union cases
      */
     public class Union extends LayoutElement {
 
@@ -553,8 +532,7 @@ public class NewAttributeBands extends BandSet {
         }
 
         @Override
-        public void addAttributeToBand(final NewAttribute attribute,
-                final InputStream stream) {
+        public void addAttributeToBand(final NewAttribute attribute, final InputStream stream) {
             unionTag.addAttributeToBand(attribute, stream);
             final long tag = unionTag.latestValue();
             boolean defaultCase = true;
@@ -567,8 +545,7 @@ public class NewAttributeBands extends BandSet {
             }
             if (defaultCase) {
                 for (int i = 0; i < defaultCaseBody.size(); i++) {
-                    final LayoutElement element = (LayoutElement) defaultCaseBody
-                            .get(i);
+                    final LayoutElement element = (LayoutElement) defaultCaseBody.get(i);
                     element.addAttributeToBand(attribute, stream);
                 }
             }
@@ -581,10 +558,8 @@ public class NewAttributeBands extends BandSet {
                 final UnionCase unionCase = (UnionCase) iterator.next();
                 unionCase.pack(out);
             }
-            for (final Iterator iterator = defaultCaseBody.iterator(); iterator
-                    .hasNext();) {
-                final AttributeLayoutElement layoutElement = (AttributeLayoutElement) iterator
-                        .next();
+            for (final Iterator iterator = defaultCaseBody.iterator(); iterator.hasNext();) {
+                final AttributeLayoutElement layoutElement = (AttributeLayoutElement) iterator.next();
                 layoutElement.pack(out);
             }
         }
@@ -595,10 +570,8 @@ public class NewAttributeBands extends BandSet {
                 final UnionCase unionCase = (UnionCase) iterator.next();
                 unionCase.renumberBci(bciRenumbering, labelsToOffsets);
             }
-            for (final Iterator iterator = defaultCaseBody.iterator(); iterator
-                    .hasNext();) {
-                final AttributeLayoutElement layoutElement = (AttributeLayoutElement) iterator
-                        .next();
+            for (final Iterator iterator = defaultCaseBody.iterator(); iterator.hasNext();) {
+                final AttributeLayoutElement layoutElement = (AttributeLayoutElement) iterator.next();
                 layoutElement.renumberBci(bciRenumbering, labelsToOffsets);
             }
         }
@@ -633,10 +606,9 @@ public class NewAttributeBands extends BandSet {
         }
 
         @Override
-        public void addAttributeToBand(final NewAttribute attribute,
-                final InputStream stream) {
+        public void addAttributeToBand(final NewAttribute attribute, final InputStream stream) {
             callable.addAttributeToBand(attribute, stream);
-            if(callableIndex < 1) {
+            if (callableIndex < 1) {
                 callable.addBackwardsCall();
             }
         }
@@ -677,10 +649,9 @@ public class NewAttributeBands extends BandSet {
         }
 
         @Override
-        public void addAttributeToBand(final NewAttribute attribute,
-                final InputStream stream) {
+        public void addAttributeToBand(final NewAttribute attribute, final InputStream stream) {
             final int index = readInteger(4, stream);
-            if(tag.startsWith("RC")) { // Class
+            if (tag.startsWith("RC")) { // Class
                 band.add(cpBands.getCPClass(attribute.readClass(index)));
             } else if (tag.startsWith("RU")) { // UTF8 String
                 band.add(cpBands.getCPUtf8(attribute.readUTF8(index)));
@@ -699,15 +670,14 @@ public class NewAttributeBands extends BandSet {
         @Override
         public void pack(final OutputStream out) throws IOException, Pack200Exception {
             int[] ints;
-            if(nullsAllowed) {
+            if (nullsAllowed) {
                 ints = cpEntryOrNullListToArray(band);
             } else {
                 ints = cpEntryListToArray(band);
             }
             final byte[] encodedBand = encodeBandInt(tag, ints, Codec.UNSIGNED5);
             out.write(encodedBand);
-            PackingUtils.log("Wrote " + encodedBand.length + " bytes from "
-                    + tag + "[" + ints.length + "]");
+            PackingUtils.log("Wrote " + encodedBand.length + " bytes from " + tag + "[" + ints.length + "]");
         }
 
         @Override
@@ -749,8 +719,7 @@ public class NewAttributeBands extends BandSet {
         }
 
         @Override
-        public void addAttributeToBand(final NewAttribute attribute,
-                final InputStream stream) {
+        public void addAttributeToBand(final NewAttribute attribute, final InputStream stream) {
             for (final Iterator iterator = body.iterator(); iterator.hasNext();) {
                 final AttributeLayoutElement layoutElement = (AttributeLayoutElement) iterator.next();
                 layoutElement.addAttributeToBand(attribute, stream);
@@ -802,8 +771,7 @@ public class NewAttributeBands extends BandSet {
         }
 
         @Override
-        public void addAttributeToBand(final NewAttribute attribute,
-                final InputStream stream) {
+        public void addAttributeToBand(final NewAttribute attribute, final InputStream stream) {
             for (int i = 0; i < body.size(); i++) {
                 final LayoutElement element = (LayoutElement) body.get(i);
                 element.addAttributeToBand(attribute, stream);
@@ -832,15 +800,14 @@ public class NewAttributeBands extends BandSet {
     }
 
     /**
-     * Utility method to get the contents of the given stream, up to the next
-     * ']', (ignoring pairs of brackets '[' and ']')
+     * Utility method to get the contents of the given stream, up to the next ']', (ignoring pairs of brackets '[' and
+     * ']')
      *
      * @param stream
      * @return
      * @throws IOException If an I/O error occurs.
      */
-    private StringReader getStreamUpToMatchingBracket(final StringReader stream)
-            throws IOException {
+    private StringReader getStreamUpToMatchingBracket(final StringReader stream) throws IOException {
         final StringBuffer sb = new StringBuffer();
         int foundBracket = -1;
         while (foundBracket != 0) {
@@ -868,18 +835,17 @@ public class NewAttributeBands extends BandSet {
             }
         }
         // use casting to preserve sign
-        if(i == 1) {
+        if (i == 1) {
             result = (byte) result;
         }
-        if(i == 2) {
+        if (i == 2) {
             result = (short) result;
         }
         return result;
     }
 
     /**
-     * Returns the {@link BHSDCodec} that should be used for the given layout
-     * element
+     * Returns the {@link BHSDCodec} that should be used for the given layout element
      *
      * @param layoutElement
      */
@@ -891,7 +857,7 @@ public class NewAttributeBands extends BandSet {
             return Codec.BCI5;
         }
         if (layoutElement.indexOf('S') >= 0 && layoutElement.indexOf("KS") < 0 //$NON-NLS-1$
-                && layoutElement.indexOf("RS") < 0) { //$NON-NLS-1$
+            && layoutElement.indexOf("RS") < 0) { //$NON-NLS-1$
             return Codec.SIGNED5;
         }
         if (layoutElement.indexOf('B') >= 0) {
@@ -901,15 +867,14 @@ public class NewAttributeBands extends BandSet {
     }
 
     /**
-     * Utility method to get the contents of the given stream, up to the next
-     * ']', (ignoring pairs of brackets '[' and ']')
+     * Utility method to get the contents of the given stream, up to the next ']', (ignoring pairs of brackets '[' and
+     * ']')
      *
      * @param stream
      * @return
      * @throws IOException If an I/O error occurs.
      */
-    private String readUpToMatchingBracket(final StringReader stream)
-            throws IOException {
+    private String readUpToMatchingBracket(final StringReader stream) throws IOException {
         final StringBuffer sb = new StringBuffer();
         int foundBracket = -1;
         while (foundBracket != 0) {
@@ -948,7 +913,7 @@ public class NewAttributeBands extends BandSet {
             length++;
         }
         stream.reset();
-        if(length == 0) {
+        if (length == 0) {
             return null;
         }
         final char[] digits = new char[length];
@@ -976,8 +941,7 @@ public class NewAttributeBands extends BandSet {
     }
 
     /**
-     * Renumber any bytecode indexes or offsets as described in section 5.5.2 of
-     * the pack200 specification
+     * Renumber any bytecode indexes or offsets as described in section 5.5.2 of the pack200 specification
      *
      * @param bciRenumbering TODO
      * @param labelsToOffsets TODO
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200Adapter.java b/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200Adapter.java
index 16b6605..0d37fe5 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200Adapter.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200Adapter.java
@@ -26,34 +26,34 @@ import java.util.TreeMap;
  */
 public abstract class Pack200Adapter {
 
-	protected static final int DEFAULT_BUFFER_SIZE = 8192;
+    protected static final int DEFAULT_BUFFER_SIZE = 8192;
 
-	private final PropertyChangeSupport support = new PropertyChangeSupport(this);
+    private final PropertyChangeSupport support = new PropertyChangeSupport(this);
 
-	private final SortedMap<String, String> properties = new TreeMap<>();
+    private final SortedMap<String, String> properties = new TreeMap<>();
 
-	public SortedMap<String, String> properties() {
-		return properties;
-	}
+    public SortedMap<String, String> properties() {
+        return properties;
+    }
 
-	public void addPropertyChangeListener(final PropertyChangeListener listener) {
-		support.addPropertyChangeListener(listener);
-	}
+    public void addPropertyChangeListener(final PropertyChangeListener listener) {
+        support.addPropertyChangeListener(listener);
+    }
 
-	protected void firePropertyChange(final String propertyName, final Object oldValue,
-			final Object newValue) {
-		support.firePropertyChange(propertyName, oldValue, newValue);
-	}
+    protected void firePropertyChange(final String propertyName, final Object oldValue, final Object newValue) {
+        support.firePropertyChange(propertyName, oldValue, newValue);
+    }
 
-	public void removePropertyChangeListener(final PropertyChangeListener listener) {
-		support.removePropertyChangeListener(listener);
-	}
+    public void removePropertyChangeListener(final PropertyChangeListener listener) {
+        support.removePropertyChangeListener(listener);
+    }
 
-	/**
-	 * Completion between 0..1.
-	 * @param value Completion between 0..1.
-	 */
-	protected void completed(final double value) {
-		firePropertyChange("pack.progress", null, String.valueOf((int)(100*value))); //$NON-NLS-1$
-	}
+    /**
+     * Completion between 0..1.
+     * 
+     * @param value Completion between 0..1.
+     */
+    protected void completed(final double value) {
+        firePropertyChange("pack.progress", null, String.valueOf((int) (100 * value))); //$NON-NLS-1$
+    }
 }
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200ClassReader.java b/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200ClassReader.java
index fef52c2..2a017bc 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200ClassReader.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200ClassReader.java
@@ -19,8 +19,7 @@ package org.apache.commons.compress.harmony.pack200;
 import org.objectweb.asm.ClassReader;
 
 /**
- * Wrapper for ClassReader that enables pack200 to obtain extra class file
- * information
+ * Wrapper for ClassReader that enables pack200 to obtain extra class file information
  */
 public class Pack200ClassReader extends ClassReader {
 
@@ -30,8 +29,7 @@ public class Pack200ClassReader extends ClassReader {
     private String fileName;
 
     /**
-     * @param b
-     *            the contents of class file in the format of bytes
+     * @param b the contents of class file in the format of bytes
      */
     public Pack200ClassReader(final byte[] b) {
         super(b);
@@ -40,9 +38,9 @@ public class Pack200ClassReader extends ClassReader {
     @Override
     public int readUnsignedShort(final int index) {
         // Doing this to check whether last load-constant instruction was ldc (18) or ldc_w (19)
-        // TODO:  Assess whether this impacts on performance
+        // TODO: Assess whether this impacts on performance
         final int unsignedShort = super.readUnsignedShort(index);
-        if(b[index - 1] == 19) {
+        if (b[index - 1] == 19) {
             lastUnsignedShort = unsignedShort;
         } else {
             lastUnsignedShort = Short.MIN_VALUE;
@@ -59,7 +57,7 @@ public class Pack200ClassReader extends ClassReader {
     @Override
     public String readUTF8(final int arg0, final char[] arg1) {
         final String utf8 = super.readUTF8(arg0, arg1);
-        if(!anySyntheticAttributes && "Synthetic".equals(utf8)) {
+        if (!anySyntheticAttributes && "Synthetic".equals(utf8)) {
             anySyntheticAttributes = true;
         }
         return utf8;
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200Exception.java b/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200Exception.java
index e20f172..7355b47 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200Exception.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200Exception.java
@@ -26,8 +26,7 @@ public class Pack200Exception extends Exception {
     /**
      * Create a new Pack200 exception with the given message
      *
-     * @param message
-     *            the text message to display
+     * @param message the text message to display
      */
     public Pack200Exception(final String message) {
         super(message);
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200PackerAdapter.java b/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200PackerAdapter.java
index f6a2dbc..d078399 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200PackerAdapter.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200PackerAdapter.java
@@ -23,12 +23,10 @@ import java.util.jar.JarInputStream;
 
 import org.apache.commons.compress.java.util.jar.Pack200.Packer;
 
-
 /**
- * This class provides the binding between the standard Pack200 interface and the
- * internal interface for (un)packing. As this uses generics for the SortedMap,
- * this class must be compiled and run on a Java 1.5 system. However, Java 1.5
- * is not necessary to use the internal libraries for unpacking.
+ * This class provides the binding between the standard Pack200 interface and the internal interface for (un)packing. As
+ * this uses generics for the SortedMap, this class must be compiled and run on a Java 1.5 system. However, Java 1.5 is
+ * not necessary to use the internal libraries for unpacking.
  */
 public class Pack200PackerAdapter extends Pack200Adapter implements Packer {
 
@@ -37,8 +35,7 @@ public class Pack200PackerAdapter extends Pack200Adapter implements Packer {
     @Override
     public void pack(final JarFile file, final OutputStream out) throws IOException {
         if (file == null || out == null) {
-            throw new IllegalArgumentException(
-                    "Must specify both input and output streams");
+            throw new IllegalArgumentException("Must specify both input and output streams");
         }
         completed(0);
         try {
@@ -52,8 +49,7 @@ public class Pack200PackerAdapter extends Pack200Adapter implements Packer {
     @Override
     public void pack(final JarInputStream in, final OutputStream out) throws IOException {
         if (in == null || out == null) {
-            throw new IllegalArgumentException(
-                    "Must specify both input and output streams");
+            throw new IllegalArgumentException("Must specify both input and output streams");
         }
         completed(0);
         final PackingOptions options = new PackingOptions();
@@ -68,39 +64,38 @@ public class Pack200PackerAdapter extends Pack200Adapter implements Packer {
     }
 
     @Override
-    protected void firePropertyChange(final String propertyName, final Object oldValue,
-            final Object newValue) {
+    protected void firePropertyChange(final String propertyName, final Object oldValue, final Object newValue) {
         super.firePropertyChange(propertyName, oldValue, newValue);
-        if(newValue != null && !newValue.equals(oldValue)) {
+        if (newValue != null && !newValue.equals(oldValue)) {
             if (propertyName.startsWith(CLASS_ATTRIBUTE_PFX)) {
                 final String attributeName = propertyName.substring(CLASS_ATTRIBUTE_PFX.length());
-                options.addClassAttributeAction(attributeName, (String)newValue);
+                options.addClassAttributeAction(attributeName, (String) newValue);
             } else if (propertyName.startsWith(CODE_ATTRIBUTE_PFX)) {
                 final String attributeName = propertyName.substring(CODE_ATTRIBUTE_PFX.length());
-                options.addCodeAttributeAction(attributeName, (String)newValue);
+                options.addCodeAttributeAction(attributeName, (String) newValue);
             } else if (propertyName.equals(DEFLATE_HINT)) {
                 options.setDeflateHint((String) newValue);
             } else if (propertyName.equals(EFFORT)) {
-                options.setEffort(Integer.parseInt((String)newValue));
+                options.setEffort(Integer.parseInt((String) newValue));
             } else if (propertyName.startsWith(FIELD_ATTRIBUTE_PFX)) {
                 final String attributeName = propertyName.substring(FIELD_ATTRIBUTE_PFX.length());
-                options.addFieldAttributeAction(attributeName, (String)newValue);
+                options.addFieldAttributeAction(attributeName, (String) newValue);
             } else if (propertyName.equals(KEEP_FILE_ORDER)) {
-                options.setKeepFileOrder(Boolean.parseBoolean((String)newValue));
+                options.setKeepFileOrder(Boolean.parseBoolean((String) newValue));
             } else if (propertyName.startsWith(METHOD_ATTRIBUTE_PFX)) {
                 final String attributeName = propertyName.substring(METHOD_ATTRIBUTE_PFX.length());
-                options.addMethodAttributeAction(attributeName, (String)newValue);
+                options.addMethodAttributeAction(attributeName, (String) newValue);
             } else if (propertyName.equals(MODIFICATION_TIME)) {
-                options.setModificationTime((String)newValue);
+                options.setModificationTime((String) newValue);
             } else if (propertyName.startsWith(PASS_FILE_PFX)) {
-                if(oldValue != null && !oldValue.equals("")) {
-                    options.removePassFile((String)oldValue);
+                if (oldValue != null && !oldValue.equals("")) {
+                    options.removePassFile((String) oldValue);
                 }
                 options.addPassFile((String) newValue);
             } else if (propertyName.equals(SEGMENT_LIMIT)) {
-                options.setSegmentLimit(Long.parseLong((String)newValue));
+                options.setSegmentLimit(Long.parseLong((String) newValue));
             } else if (propertyName.equals(UNKNOWN_ATTRIBUTE)) {
-                options.setUnknownAttributeAction((String)newValue);
+                options.setUnknownAttributeAction((String) newValue);
             }
         }
     }
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/PackingOptions.java b/src/main/java/org/apache/commons/compress/harmony/pack200/PackingOptions.java
index f4f7f5e..7694885 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/PackingOptions.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/PackingOptions.java
@@ -66,10 +66,9 @@ public class PackingOptions {
     }
 
     /**
-     * Set strip debug attributes. If true, all debug attributes (i.e.
-     * LineNumberTable, SourceFile, LocalVariableTable and
-     * LocalVariableTypeTable attributes) are stripped when reading the input
-     * class files and not included in the output archive.
+     * Set strip debug attributes. If true, all debug attributes (i.e. LineNumberTable, SourceFile, LocalVariableTable
+     * and LocalVariableTypeTable attributes) are stripped when reading the input class files and not included in the
+     * output archive.
      *
      * @param stripDebug If true, all debug attributes.
      */
@@ -91,6 +90,7 @@ public class PackingOptions {
 
     /**
      * Set the segment limit (equivalent to -S command line option)
+     * 
      * @param segmentLimit - the limit in bytes
      */
     public void setSegmentLimit(final long segmentLimit) {
@@ -103,6 +103,7 @@ public class PackingOptions {
 
     /**
      * Sets the compression effort level (0-9, equivalent to -E command line option)
+     * 
      * @param effort the compression effort level, 0-9.
      */
     public void setEffort(final int effort) {
@@ -118,13 +119,9 @@ public class PackingOptions {
     }
 
     public void setDeflateHint(final String deflateHint) {
-        if (!KEEP.equals(deflateHint)
-                && !"true".equals(deflateHint)
-                && !"false".equals(deflateHint)) {
+        if (!KEEP.equals(deflateHint) && !"true".equals(deflateHint) && !"false".equals(deflateHint)) {
             throw new IllegalArgumentException(
-                    "Bad argument: -H "
-                            + deflateHint
-                            + " ? deflate hint should be either true, false or keep (default)");
+                "Bad argument: -H " + deflateHint + " ? deflate hint should be either true, false or keep (default)");
         }
         this.deflateHint = deflateHint;
     }
@@ -134,12 +131,9 @@ public class PackingOptions {
     }
 
     public void setModificationTime(final String modificationTime) {
-        if (!KEEP.equals(modificationTime)
-                && !"latest".equals(modificationTime)) {
-            throw new IllegalArgumentException(
-                    "Bad argument: -m "
-                            + modificationTime
-                            + " ? transmit modtimes should be either latest or keep (default)");
+        if (!KEEP.equals(modificationTime) && !"latest".equals(modificationTime)) {
+            throw new IllegalArgumentException("Bad argument: -m " + modificationTime
+                + " ? transmit modtimes should be either latest or keep (default)");
         }
         this.modificationTime = modificationTime;
     }
@@ -167,18 +161,17 @@ public class PackingOptions {
     }
 
     /**
-     * Tell the compressor to pass the file with the given name, or if the name
-     * is a directory name all files under that directory will be passed.
+     * Tell the compressor to pass the file with the given name, or if the name is a directory name all files under that
+     * directory will be passed.
      *
-     * @param passFileName
-     *            the file name
+     * @param passFileName the file name
      */
     public void addPassFile(String passFileName) {
-        if(passFiles == null) {
+        if (passFiles == null) {
             passFiles = new ArrayList();
         }
         String fileSeparator = System.getProperty("file.separator");
-        if(fileSeparator.equals("\\")) {
+        if (fileSeparator.equals("\\")) {
             // Need to escape backslashes for replaceAll(), which uses regex
             fileSeparator += "\\";
         }
@@ -196,41 +189,40 @@ public class PackingOptions {
 
     /**
      * Tell the compressor what to do if an unknown attribute is encountered
+     * 
      * @param unknownAttributeAction - the action to perform
      */
     public void setUnknownAttributeAction(final String unknownAttributeAction) {
         this.unknownAttributeAction = unknownAttributeAction;
-        if (!PASS.equals(unknownAttributeAction)
-                && !ERROR.equals(unknownAttributeAction)
-                && !STRIP.equals(unknownAttributeAction)) {
-            throw new RuntimeException("Incorrect option for -U, "
-                    + unknownAttributeAction);
+        if (!PASS.equals(unknownAttributeAction) && !ERROR.equals(unknownAttributeAction)
+            && !STRIP.equals(unknownAttributeAction)) {
+            throw new RuntimeException("Incorrect option for -U, " + unknownAttributeAction);
         }
     }
 
     public void addClassAttributeAction(final String attributeName, final String action) {
-        if(classAttributeActions == null) {
+        if (classAttributeActions == null) {
             classAttributeActions = new HashMap();
         }
         classAttributeActions.put(attributeName, action);
     }
 
     public void addFieldAttributeAction(final String attributeName, final String action) {
-        if(fieldAttributeActions == null) {
+        if (fieldAttributeActions == null) {
             fieldAttributeActions = new HashMap();
         }
         fieldAttributeActions.put(attributeName, action);
     }
 
     public void addMethodAttributeAction(final String attributeName, final String action) {
-        if(methodAttributeActions == null) {
+        if (methodAttributeActions == null) {
             methodAttributeActions = new HashMap();
         }
         methodAttributeActions.put(attributeName, action);
     }
 
     public void addCodeAttributeAction(final String attributeName, final String action) {
-        if(codeAttributeActions == null) {
+        if (codeAttributeActions == null) {
             codeAttributeActions = new HashMap();
         }
         codeAttributeActions.put(attributeName, action);
@@ -256,19 +248,16 @@ public class PackingOptions {
         this.logFile = logFile;
     }
 
-    private void addOrUpdateAttributeActions(final List prototypes, final Map attributeActions,
-            final int tag) {
+    private void addOrUpdateAttributeActions(final List prototypes, final Map attributeActions, final int tag) {
         if ((attributeActions != null) && (attributeActions.size() > 0)) {
             String name, action;
             boolean prototypeExists;
             NewAttribute newAttribute;
-            for (final Iterator iteratorI = attributeActions.keySet().iterator(); iteratorI
-                    .hasNext();) {
+            for (final Iterator iteratorI = attributeActions.keySet().iterator(); iteratorI.hasNext();) {
                 name = (String) iteratorI.next();
                 action = (String) attributeActions.get(name);
                 prototypeExists = false;
-                for (final Iterator iteratorJ = prototypes.iterator(); iteratorJ
-                        .hasNext();) {
+                for (final Iterator iteratorJ = prototypes.iterator(); iteratorJ.hasNext();) {
                     newAttribute = (NewAttribute) iteratorJ.next();
                     if (newAttribute.type.equals(name)) {
                         // if the attribute exists, update its context
@@ -297,20 +286,15 @@ public class PackingOptions {
     public Attribute[] getUnknownAttributePrototypes() {
         if (unknownAttributeTypes == null) {
             final List prototypes = new ArrayList();
-            addOrUpdateAttributeActions(prototypes, classAttributeActions,
-                    AttributeDefinitionBands.CONTEXT_CLASS);
+            addOrUpdateAttributeActions(prototypes, classAttributeActions, AttributeDefinitionBands.CONTEXT_CLASS);
 
-            addOrUpdateAttributeActions(prototypes, methodAttributeActions,
-                    AttributeDefinitionBands.CONTEXT_METHOD);
+            addOrUpdateAttributeActions(prototypes, methodAttributeActions, AttributeDefinitionBands.CONTEXT_METHOD);
 
-            addOrUpdateAttributeActions(prototypes, fieldAttributeActions,
-                    AttributeDefinitionBands.CONTEXT_FIELD);
+            addOrUpdateAttributeActions(prototypes, fieldAttributeActions, AttributeDefinitionBands.CONTEXT_FIELD);
 
-            addOrUpdateAttributeActions(prototypes, codeAttributeActions,
-                    AttributeDefinitionBands.CONTEXT_CODE);
+            addOrUpdateAttributeActions(prototypes, codeAttributeActions, AttributeDefinitionBands.CONTEXT_CODE);
 
-            unknownAttributeTypes = (Attribute[]) prototypes
-                    .toArray(new Attribute[0]);
+            unknownAttributeTypes = (Attribute[]) prototypes.toArray(new Attribute[0]);
         }
         return unknownAttributeTypes;
     }
@@ -320,7 +304,7 @@ public class PackingOptions {
             return unknownAttributeAction;
         }
         String action = (String) classAttributeActions.get(type);
-        if(action == null) {
+        if (action == null) {
             action = unknownAttributeAction;
         }
         return action;
@@ -331,7 +315,7 @@ public class PackingOptions {
             return unknownAttributeAction;
         }
         String action = (String) methodAttributeActions.get(type);
-        if(action == null) {
+        if (action == null) {
             action = unknownAttributeAction;
         }
         return action;
@@ -342,7 +326,7 @@ public class PackingOptions {
             return unknownAttributeAction;
         }
         String action = (String) fieldAttributeActions.get(type);
-        if(action == null) {
+        if (action == null) {
             action = unknownAttributeAction;
         }
         return action;
@@ -353,7 +337,7 @@ public class PackingOptions {
             return unknownAttributeAction;
         }
         String action = (String) codeAttributeActions.get(type);
-        if(action == null) {
+        if (action == null) {
             action = unknownAttributeAction;
         }
         return action;
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/PackingUtils.java b/src/main/java/org/apache/commons/compress/harmony/pack200/PackingUtils.java
index e4f797f..7420feb 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/PackingUtils.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/PackingUtils.java
@@ -86,20 +86,16 @@ public class PackingUtils {
     }
 
     /**
-     * When effort is 0, the packer copies through the original jar input stream
-     * without compression
+     * When effort is 0, the packer copies through the original jar input stream without compression
      *
-     * @param jarInputStream
-     *            the jar input stream
-     * @param outputStream
-     *            the jar output stream
+     * @param jarInputStream the jar input stream
+     * @param outputStream the jar output stream
      * @throws IOException If an I/O error occurs.
      */
-    public static void copyThroughJar(final JarInputStream jarInputStream,
-            final OutputStream outputStream) throws IOException {
+    public static void copyThroughJar(final JarInputStream jarInputStream, final OutputStream outputStream)
+        throws IOException {
         final Manifest manifest = jarInputStream.getManifest();
-        final JarOutputStream jarOutputStream = new JarOutputStream(outputStream,
-                manifest);
+        final JarOutputStream jarOutputStream = new JarOutputStream(outputStream, manifest);
         jarOutputStream.setComment("PACK200");
         log("Packed " + JarFile.MANIFEST_NAME);
 
@@ -118,17 +114,13 @@ public class PackingUtils {
     }
 
     /**
-     * When effort is 0, the packer copys through the original jar file without
-     * compression
+     * When effort is 0, the packer copys through the original jar file without compression
      *
-     * @param jarFile
-     *            the input jar file
-     * @param outputStream
-     *            the jar output stream
+     * @param jarFile the input jar file
+     * @param outputStream the jar output stream
      * @throws IOException If an I/O error occurs.
      */
-    public static void copyThroughJar(final JarFile jarFile, final OutputStream outputStream)
-            throws IOException {
+    public static void copyThroughJar(final JarFile jarFile, final OutputStream outputStream) throws IOException {
         final JarOutputStream jarOutputStream = new JarOutputStream(outputStream);
         jarOutputStream.setComment("PACK200");
         final byte[] bytes = new byte[16384];
@@ -150,8 +142,8 @@ public class PackingUtils {
         jarOutputStream.close();
     }
 
-    public static List getPackingFileListFromJar(final JarInputStream jarInputStream,
-            final boolean keepFileOrder) throws IOException {
+    public static List getPackingFileListFromJar(final JarInputStream jarInputStream, final boolean keepFileOrder)
+        throws IOException {
         final List packingFileList = new ArrayList();
 
         // add manifest file
@@ -159,16 +151,14 @@ public class PackingUtils {
         if (manifest != null) {
             final ByteArrayOutputStream baos = new ByteArrayOutputStream();
             manifest.write(baos);
-            packingFileList.add(new PackingFile(JarFile.MANIFEST_NAME, baos
-                    .toByteArray(), 0));
+            packingFileList.add(new PackingFile(JarFile.MANIFEST_NAME, baos.toByteArray(), 0));
         }
 
         // add rest of entries in the jar
         JarEntry jarEntry;
         byte[] bytes;
         while ((jarEntry = jarInputStream.getNextJarEntry()) != null) {
-            bytes = readJarEntry(jarEntry, new BufferedInputStream(
-                    jarInputStream));
+            bytes = readJarEntry(jarEntry, new BufferedInputStream(jarInputStream));
             packingFileList.add(new PackingFile(bytes, jarEntry));
         }
 
@@ -179,16 +169,15 @@ public class PackingUtils {
         return packingFileList;
     }
 
-    public static List getPackingFileListFromJar(final JarFile jarFile,
-            final boolean keepFileOrder) throws IOException {
+    public static List getPackingFileListFromJar(final JarFile jarFile, final boolean keepFileOrder)
+        throws IOException {
         final List packingFileList = new ArrayList();
         final Enumeration jarEntries = jarFile.entries();
         JarEntry jarEntry;
         byte[] bytes;
         while (jarEntries.hasMoreElements()) {
             jarEntry = (JarEntry) jarEntries.nextElement();
-            bytes = readJarEntry(jarEntry, new BufferedInputStream(jarFile
-                    .getInputStream(jarEntry)));
+            bytes = readJarEntry(jarEntry, new BufferedInputStream(jarFile.getInputStream(jarEntry)));
             packingFileList.add(new PackingFile(bytes, jarEntry));
         }
 
@@ -199,8 +188,7 @@ public class PackingUtils {
         return packingFileList;
     }
 
-    private static byte[] readJarEntry(final JarEntry jarEntry,
-            final InputStream inputStream) throws IOException {
+    private static byte[] readJarEntry(final JarEntry jarEntry, final InputStream inputStream) throws IOException {
         long size = jarEntry.getSize();
         if (size > Integer.MAX_VALUE) {
             // TODO: Should probably allow this
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/PopulationCodec.java b/src/main/java/org/apache/commons/compress/harmony/pack200/PopulationCodec.java
index aab3a35..249a5a3 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/PopulationCodec.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/PopulationCodec.java
@@ -19,12 +19,9 @@ package org.apache.commons.compress.harmony.pack200;
 import java.io.IOException;
 import java.io.InputStream;
 
-
 /**
- * A PopulationCodec is a Codec that is well suited to encoding data that shows
- * statistical or repetitive patterns, containing for example a few numbers
- * which are repeated a lot throughout the set, but not necessarily
- * sequentially.
+ * A PopulationCodec is a Codec that is well suited to encoding data that shows statistical or repetitive patterns,
+ * containing for example a few numbers which are repeated a lot throughout the set, but not necessarily sequentially.
  */
 public class PopulationCodec extends Codec {
 
@@ -34,8 +31,7 @@ public class PopulationCodec extends Codec {
     private int l;
     private int[] favoured;
 
-    public PopulationCodec(final Codec favouredCodec, final Codec tokenCodec,
-            final Codec unvafouredCodec) {
+    public PopulationCodec(final Codec favouredCodec, final Codec tokenCodec, final Codec unvafouredCodec) {
         this.favouredCodec = favouredCodec;
         this.tokenCodec = tokenCodec;
         this.unfavouredCodec = unvafouredCodec;
@@ -52,20 +48,16 @@ public class PopulationCodec extends Codec {
 
     @Override
     public int decode(final InputStream in) throws IOException, Pack200Exception {
-        throw new Pack200Exception(
-                "Population encoding does not work unless the number of elements are known");
+        throw new Pack200Exception("Population encoding does not work unless the number of elements are known");
     }
 
     @Override
-    public int decode(final InputStream in, final long last) throws IOException,
-            Pack200Exception {
-        throw new Pack200Exception(
-                "Population encoding does not work unless the number of elements are known");
+    public int decode(final InputStream in, final long last) throws IOException, Pack200Exception {
+        throw new Pack200Exception("Population encoding does not work unless the number of elements are known");
     }
 
     @Override
-    public int[] decodeInts(final int n, final InputStream in) throws IOException,
-            Pack200Exception {
+    public int[] decodeInts(final int n, final InputStream in) throws IOException, Pack200Exception {
         lastBandLength = 0;
         favoured = new int[n]; // there must be <= n values, but probably a lot
         // less
@@ -108,9 +100,7 @@ public class PopulationCodec extends Codec {
                     }
                 }
                 if (tokenCodec == null) {
-                    throw new Pack200Exception(
-                            "Cannot calculate token codec from " + k + " and "
-                                    + l);
+                    throw new Pack200Exception("Cannot calculate token codec from " + k + " and " + l);
                 }
             }
         }
@@ -145,14 +135,12 @@ public class PopulationCodec extends Codec {
 
     @Override
     public byte[] encode(final int value, final int last) throws Pack200Exception {
-        throw new Pack200Exception(
-        "Population encoding does not work unless the number of elements are known");
+        throw new Pack200Exception("Population encoding does not work unless the number of elements are known");
     }
 
     @Override
     public byte[] encode(final int value) throws Pack200Exception {
-        throw new Pack200Exception(
-        "Population encoding does not work unless the number of elements are known");
+        throw new Pack200Exception("Population encoding does not work unless the number of elements are known");
     }
 
     public byte[] encode(final int[] favoured, final int[] tokens, final int[] unfavoured) throws Pack200Exception {
@@ -165,7 +153,8 @@ public class PopulationCodec extends Codec {
         final byte[] band = new byte[favouredEncoded.length + tokensEncoded.length + unfavouredEncoded.length];
         System.arraycopy(favouredEncoded, 0, band, 0, favouredEncoded.length);
         System.arraycopy(tokensEncoded, 0, band, favouredEncoded.length, tokensEncoded.length);
-        System.arraycopy(unfavouredEncoded, 0, band, favouredEncoded.length + tokensEncoded.length, unfavouredEncoded.length);
+        System.arraycopy(unfavouredEncoded, 0, band, favouredEncoded.length + tokensEncoded.length,
+            unfavouredEncoded.length);
         return band;
     }
 
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/RunCodec.java b/src/main/java/org/apache/commons/compress/harmony/pack200/RunCodec.java
index 22e14ba..a31907e 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/RunCodec.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/RunCodec.java
@@ -20,11 +20,9 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.util.Arrays;
 
-
 /**
- * A run codec is a grouping of two nested codecs; K values are decoded from the
- * first codec, and the remaining codes are decoded from the remaining codec.
- * Note that since this codec maintains state, the instances are not reusable.
+ * A run codec is a grouping of two nested codecs; K values are decoded from the first codec, and the remaining codes
+ * are decoded from the remaining codec. Note that since this codec maintains state, the instances are not reusable.
  */
 public class RunCodec extends Codec {
 
@@ -35,8 +33,7 @@ public class RunCodec extends Codec {
 
     public RunCodec(final int k, final Codec aCodec, final Codec bCodec) throws Pack200Exception {
         if (k <= 0) {
-            throw new Pack200Exception(
-                    "Cannot have a RunCodec for a negative number of numbers");
+            throw new Pack200Exception("Cannot have a RunCodec for a negative number of numbers");
         }
         if (aCodec == null || bCodec == null) {
             throw new Pack200Exception("Must supply both codecs for a RunCodec");
@@ -52,8 +49,7 @@ public class RunCodec extends Codec {
     }
 
     @Override
-    public int decode(final InputStream in, final long last) throws IOException,
-            Pack200Exception {
+    public int decode(final InputStream in, final long last) throws IOException, Pack200Exception {
         if (--k >= 0) {
             final int value = aCodec.decode(in, this.last);
             this.last = (k == 0 ? 0 : value);
@@ -80,8 +76,7 @@ public class RunCodec extends Codec {
     }
 
     @Override
-    public int[] decodeInts(final int n, final InputStream in) throws IOException,
-            Pack200Exception {
+    public int[] decodeInts(final int n, final InputStream in) throws IOException, Pack200Exception {
         final int[] band = new int[n];
         final int[] aValues = aCodec.decodeInts(k, in);
         normalise(aValues, aCodec);
@@ -113,8 +108,7 @@ public class RunCodec extends Codec {
             Arrays.sort(favoured);
             for (int i = 0; i < band.length; i++) {
                 final boolean favouredValue = Arrays.binarySearch(favoured, band[i]) > -1;
-                final Codec theCodec = favouredValue ? popCodec.getFavouredCodec()
-                        : popCodec.getUnfavouredCodec();
+                final Codec theCodec = favouredValue ? popCodec.getFavouredCodec() : popCodec.getUnfavouredCodec();
                 if (theCodec instanceof BHSDCodec) {
                     final BHSDCodec bhsd = (BHSDCodec) theCodec;
                     if (bhsd.isDelta()) {
@@ -133,8 +127,7 @@ public class RunCodec extends Codec {
 
     @Override
     public String toString() {
-        return "RunCodec[k=" + k + ";aCodec=" + aCodec + "bCodec=" + bCodec
-                + "]";
+        return "RunCodec[k=" + k + ";aCodec=" + aCodec + "bCodec=" + bCodec + "]";
     }
 
     @Override
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/Segment.java b/src/main/java/org/apache/commons/compress/harmony/pack200/Segment.java
index 66f7866..0609aa4 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/Segment.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/Segment.java
@@ -55,35 +55,31 @@ public class Segment implements ClassVisitor {
     private Attribute[] nonStandardAttributePrototypes;
 
     /**
-     * The main method on Segment. Reads in all the class files, packs them and
-     * then writes the packed segment out to the given OutputStream.
+     * The main method on Segment. Reads in all the class files, packs them and then writes the packed segment out to
+     * the given OutputStream.
      *
      * @param segmentUnit TODO
-     * @param out
-     *            the OutputStream to write the packed Segment to
-     * @param options
-     *            packing options
+     * @param out the OutputStream to write the packed Segment to
+     * @param options packing options
      * @throws IOException If an I/O error occurs.
      * @throws Pack200Exception TODO
      */
     public void pack(final SegmentUnit segmentUnit, final OutputStream out, final PackingOptions options)
-            throws IOException, Pack200Exception {
+        throws IOException, Pack200Exception {
         this.options = options;
         this.stripDebug = options.isStripDebug();
         final int effort = options.getEffort();
         nonStandardAttributePrototypes = options.getUnknownAttributePrototypes();
 
-        PackingUtils.log("Start to pack a new segment with "
-                + segmentUnit.fileListSize() + " files including "
-                + segmentUnit.classListSize() + " classes");
+        PackingUtils.log("Start to pack a new segment with " + segmentUnit.fileListSize() + " files including "
+            + segmentUnit.classListSize() + " classes");
 
         PackingUtils.log("Initialize a header for the segment");
         segmentHeader = new SegmentHeader();
         segmentHeader.setFile_count(segmentUnit.fileListSize());
         segmentHeader.setHave_all_code_flags(!stripDebug);
         if (!options.isKeepDeflateHint()) {
-            segmentHeader.setDeflate_hint("true".equals(options
-                    .getDeflateHint()));
+            segmentHeader.setDeflate_hint("true".equals(options.getDeflateHint()));
         }
 
         PackingUtils.log("Setup constant pool bands for the segment");
@@ -123,7 +119,7 @@ public class Segment implements ClassVisitor {
         final int finalNumberOfClasses = classBands.numClassesProcessed();
         segmentHeader.setClass_count(finalNumberOfClasses);
         cpBands.pack(bandsOutputStream);
-        if(finalNumberOfClasses > 0) {
+        if (finalNumberOfClasses > 0) {
             attributeDefinitionBands.pack(bandsOutputStream);
             icBands.pack(bandsOutputStream);
             classBands.pack(bandsOutputStream);
@@ -140,21 +136,18 @@ public class Segment implements ClassVisitor {
         segmentUnit.addPackedByteAmount(headerOutputStream.size());
         segmentUnit.addPackedByteAmount(bandsOutputStream.size());
 
-        PackingUtils.log("Wrote total of " + segmentUnit.getPackedByteAmount()
-                + " bytes");
-        PackingUtils.log("Transmitted " + segmentUnit.fileListSize() + " files of "
-                + segmentUnit.getByteAmount() + " input bytes in a segment of "
-                + segmentUnit.getPackedByteAmount() + " bytes");
+        PackingUtils.log("Wrote total of " + segmentUnit.getPackedByteAmount() + " bytes");
+        PackingUtils.log("Transmitted " + segmentUnit.fileListSize() + " files of " + segmentUnit.getByteAmount()
+            + " input bytes in a segment of " + segmentUnit.getPackedByteAmount() + " bytes");
     }
 
     private void processClasses(final SegmentUnit segmentUnit, final Attribute[] attributes) throws Pack200Exception {
         segmentHeader.setClass_count(segmentUnit.classListSize());
         for (final Iterator iterator = segmentUnit.getClassList().iterator(); iterator.hasNext();) {
-            final Pack200ClassReader classReader = (Pack200ClassReader) iterator
-                    .next();
+            final Pack200ClassReader classReader = (Pack200ClassReader) iterator.next();
             currentClassReader = classReader;
             int flags = 0;
-            if(stripDebug) {
+            if (stripDebug) {
                 flags |= ClassReader.SKIP_DEBUG;
             }
             try {
@@ -167,16 +160,15 @@ public class Segment implements ClassVisitor {
                 options.addPassFile(name);
                 cpBands.addCPUtf8(name);
                 boolean found = false;
-                for (final Iterator iterator2 = segmentUnit.getFileList().iterator(); iterator2
-                        .hasNext();) {
+                for (final Iterator iterator2 = segmentUnit.getFileList().iterator(); iterator2.hasNext();) {
                     final PackingFile file = (PackingFile) iterator2.next();
-                    if(file.getName().equals(name)) {
+                    if (file.getName().equals(name)) {
                         found = true;
                         file.setContents(classReader.b);
                         break;
                     }
                 }
-                if(!found) {
+                if (!found) {
                     throw new Pack200Exception("Error passing file " + name);
                 }
             }
@@ -185,16 +177,15 @@ public class Segment implements ClassVisitor {
 
     @Override
     public void visit(final int version, final int access, final String name, final String signature,
-            final String superName, final String[] interfaces) {
+        final String superName, final String[] interfaces) {
         bcBands.setCurrentClass(name, superName);
         segmentHeader.addMajorVersion(version);
-        classBands.addClass(version, access, name, signature, superName,
-                interfaces);
+        classBands.addClass(version, access, name, signature, superName, interfaces);
     }
 
     @Override
     public void visitSource(final String source, final String debug) {
-        if(!stripDebug) {
+        if (!stripDebug) {
             classBands.addSourceFile(source);
         }
     }
@@ -207,24 +198,23 @@ public class Segment implements ClassVisitor {
 
     @Override
     public AnnotationVisitor visitAnnotation(final String desc, final boolean visible) {
-        return new SegmentAnnotationVisitor(MetadataBandGroup.CONTEXT_CLASS,
-                desc, visible);
+        return new SegmentAnnotationVisitor(MetadataBandGroup.CONTEXT_CLASS, desc, visible);
     }
 
     @Override
     public void visitAttribute(final Attribute attribute) {
-        if(attribute.isUnknown()) {
+        if (attribute.isUnknown()) {
             final String action = options.getUnknownAttributeAction();
-            if(action.equals(PackingOptions.PASS)) {
+            if (action.equals(PackingOptions.PASS)) {
                 passCurrentClass();
             } else if (action.equals(PackingOptions.ERROR)) {
                 throw new Error("Unknown attribute encountered");
             } // else skip
-        } else if(attribute instanceof NewAttribute) {
+        } else if (attribute instanceof NewAttribute) {
             final NewAttribute newAttribute = (NewAttribute) attribute;
-            if(newAttribute.isUnknown(AttributeDefinitionBands.CONTEXT_CLASS)) {
+            if (newAttribute.isUnknown(AttributeDefinitionBands.CONTEXT_CLASS)) {
                 final String action = options.getUnknownClassAttributeAction(newAttribute.type);
-                if(action.equals(PackingOptions.PASS)) {
+                if (action.equals(PackingOptions.PASS)) {
                     passCurrentClass();
                 } else if (action.equals(PackingOptions.ERROR)) {
                     throw new Error("Unknown attribute encountered");
@@ -237,21 +227,20 @@ public class Segment implements ClassVisitor {
     }
 
     @Override
-    public void visitInnerClass(final String name, final String outerName,
-            final String innerName, final int flags) {
+    public void visitInnerClass(final String name, final String outerName, final String innerName, final int flags) {
         icBands.addInnerClass(name, outerName, innerName, flags);
     }
 
     @Override
-    public FieldVisitor visitField(final int flags, final String name, final String desc,
-            final String signature, final Object value) {
+    public FieldVisitor visitField(final int flags, final String name, final String desc, final String signature,
+        final Object value) {
         classBands.addField(flags, name, desc, signature, value);
         return fieldVisitor;
     }
 
     @Override
-    public MethodVisitor visitMethod(final int flags, final String name, final String desc,
-            final String signature, final String[] exceptions) {
+    public MethodVisitor visitMethod(final int flags, final String name, final String desc, final String signature,
+        final String[] exceptions) {
         classBands.addMethod(flags, name, desc, signature, exceptions);
         return methodVisitor;
     }
@@ -262,18 +251,15 @@ public class Segment implements ClassVisitor {
     }
 
     /**
-     * This class implements MethodVisitor to visit the contents and metadata
-     * related to methods in a class file.
+     * This class implements MethodVisitor to visit the contents and metadata related to methods in a class file.
      *
-     * It delegates to BcBands for bytecode related visits and to ClassBands for
-     * everything else.
+     * It delegates to BcBands for bytecode related visits and to ClassBands for everything else.
      */
     public class SegmentMethodVisitor implements MethodVisitor {
 
         @Override
         public AnnotationVisitor visitAnnotation(final String desc, final boolean visible) {
-            return new SegmentAnnotationVisitor(
-                    MetadataBandGroup.CONTEXT_METHOD, desc, visible);
+            return new SegmentAnnotationVisitor(MetadataBandGroup.CONTEXT_METHOD, desc, visible);
         }
 
         @Override
@@ -283,19 +269,18 @@ public class Segment implements ClassVisitor {
 
         @Override
         public void visitAttribute(final Attribute attribute) {
-            if(attribute.isUnknown()) {
+            if (attribute.isUnknown()) {
                 final String action = options.getUnknownAttributeAction();
-                if(action.equals(PackingOptions.PASS)) {
+                if (action.equals(PackingOptions.PASS)) {
                     passCurrentClass();
                 } else if (action.equals(PackingOptions.ERROR)) {
                     throw new Error("Unknown attribute encountered");
                 } // else skip
-            } else if(attribute instanceof NewAttribute) {
+            } else if (attribute instanceof NewAttribute) {
                 final NewAttribute newAttribute = (NewAttribute) attribute;
                 if (attribute.isCodeAttribute()) {
                     if (newAttribute.isUnknown(AttributeDefinitionBands.CONTEXT_CODE)) {
-                        final String action = options
-                                .getUnknownCodeAttributeAction(newAttribute.type);
+                        final String action = options.getUnknownCodeAttributeAction(newAttribute.type);
                         if (action.equals(PackingOptions.PASS)) {
                             passCurrentClass();
                         } else if (action.equals(PackingOptions.ERROR)) {
@@ -305,8 +290,7 @@ public class Segment implements ClassVisitor {
                     classBands.addCodeAttribute(newAttribute);
                 } else {
                     if (newAttribute.isUnknown(AttributeDefinitionBands.CONTEXT_METHOD)) {
-                        final String action = options
-                                .getUnknownMethodAttributeAction(newAttribute.type);
+                        final String action = options.getUnknownMethodAttributeAction(newAttribute.type);
                         if (action.equals(PackingOptions.PASS)) {
                             passCurrentClass();
                         } else if (action.equals(PackingOptions.ERROR)) {
@@ -327,7 +311,7 @@ public class Segment implements ClassVisitor {
 
         @Override
         public void visitFrame(final int arg0, final int arg1, final Object[] arg2, final int arg3,
-                final Object[] arg4) {
+            final Object[] arg4) {
             // TODO: Java 6 - implement support for this
 
         }
@@ -339,17 +323,16 @@ public class Segment implements ClassVisitor {
 
         @Override
         public void visitLineNumber(final int line, final Label start) {
-            if(!stripDebug) {
+            if (!stripDebug) {
                 classBands.addLineNumber(line, start);
             }
         }
 
         @Override
-        public void visitLocalVariable(final String name, final String desc,
-                final String signature, final Label start, final Label end, final int index) {
-            if(!stripDebug) {
-                classBands.addLocalVariable(name, desc, signature, start, end,
-                        index);
+        public void visitLocalVariable(final String name, final String desc, final String signature, final Label start,
+            final Label end, final int index) {
+            if (!stripDebug) {
+                classBands.addLocalVariable(name, desc, signature, start, end, index);
             }
         }
 
@@ -359,15 +342,13 @@ public class Segment implements ClassVisitor {
         }
 
         @Override
-        public AnnotationVisitor visitParameterAnnotation(final int parameter,
-                final String desc, final boolean visible) {
-            return new SegmentAnnotationVisitor(
-                    MetadataBandGroup.CONTEXT_METHOD, parameter, desc, visible);
+        public AnnotationVisitor visitParameterAnnotation(final int parameter, final String desc,
+            final boolean visible) {
+            return new SegmentAnnotationVisitor(MetadataBandGroup.CONTEXT_METHOD, parameter, desc, visible);
         }
 
         @Override
-        public void visitTryCatchBlock(final Label start, final Label end, final Label handler,
-                final String type) {
+        public void visitTryCatchBlock(final Label start, final Label end, final Label handler, final String type) {
             classBands.addHandler(start, end, handler, type);
         }
 
@@ -378,8 +359,7 @@ public class Segment implements ClassVisitor {
         }
 
         @Override
-        public void visitFieldInsn(final int opcode, final String owner, final String name,
-                final String desc) {
+        public void visitFieldInsn(final int opcode, final String owner, final String name, final String desc) {
             bcBands.visitFieldInsn(opcode, owner, name, desc);
         }
 
@@ -414,8 +394,7 @@ public class Segment implements ClassVisitor {
         }
 
         @Override
-        public void visitMethodInsn(final int opcode, final String owner, final String name,
-                final String desc) {
+        public void visitMethodInsn(final int opcode, final String owner, final String name, final String desc) {
             bcBands.visitMethodInsn(opcode, owner, name, desc);
         }
 
@@ -425,8 +404,7 @@ public class Segment implements ClassVisitor {
         }
 
         @Override
-        public void visitTableSwitchInsn(final int min, final int max, final Label dflt,
-                final Label[] labels) {
+        public void visitTableSwitchInsn(final int min, final int max, final Label dflt, final Label[] labels) {
             bcBands.visitTableSwitchInsn(min, max, dflt, labels);
         }
 
@@ -447,8 +425,7 @@ public class Segment implements ClassVisitor {
     }
 
     /**
-     * SegmentAnnotationVisitor implements <code>AnnotationVisitor</code> to
-     * visit Annotations found in a class file.
+     * SegmentAnnotationVisitor implements <code>AnnotationVisitor</code> to visit Annotations found in a class file.
      */
     public class SegmentAnnotationVisitor implements AnnotationVisitor {
 
@@ -465,8 +442,7 @@ public class Segment implements ClassVisitor {
         private final List nestNameRU = new ArrayList();
         private final List nestPairN = new ArrayList();
 
-        public SegmentAnnotationVisitor(final int context, final String desc,
-                final boolean visible) {
+        public SegmentAnnotationVisitor(final int context, final String desc, final boolean visible) {
             this.context = context;
             this.desc = desc;
             this.visible = visible;
@@ -476,8 +452,8 @@ public class Segment implements ClassVisitor {
             this.context = context;
         }
 
-        public SegmentAnnotationVisitor(final int context, final int parameter,
-                final String desc, final boolean visible) {
+        public SegmentAnnotationVisitor(final int context, final int parameter, final String desc,
+            final boolean visible) {
             this.context = context;
             this.parameter = parameter;
             this.desc = desc;
@@ -492,6 +468,7 @@ public class Segment implements ClassVisitor {
             nameRU.add(name);
             addValueAndTag(value, T, values);
         }
+
         @Override
         public AnnotationVisitor visitAnnotation(String name, final String desc) {
             T.add("@");
@@ -511,8 +488,7 @@ public class Segment implements ClassVisitor {
                 }
 
                 @Override
-                public AnnotationVisitor visitAnnotation(final String arg0,
-                        final String arg1) {
+                public AnnotationVisitor visitAnnotation(final String arg0, final String arg1) {
                     throw new RuntimeException("Not yet supported");
 //                    return null;
                 }
@@ -553,11 +529,14 @@ public class Segment implements ClassVisitor {
         @Override
         public void visitEnd() {
             if (desc == null) {
-                Segment.this.classBands.addAnnotationDefault(nameRU, T, values, caseArrayN, nestTypeRS, nestNameRU, nestPairN);
-            } else if(parameter != -1) {
-                Segment.this.classBands.addParameterAnnotation(parameter, desc, visible, nameRU, T, values, caseArrayN, nestTypeRS, nestNameRU, nestPairN);
+                Segment.this.classBands.addAnnotationDefault(nameRU, T, values, caseArrayN, nestTypeRS, nestNameRU,
+                    nestPairN);
+            } else if (parameter != -1) {
+                Segment.this.classBands.addParameterAnnotation(parameter, desc, visible, nameRU, T, values, caseArrayN,
+                    nestTypeRS, nestNameRU, nestPairN);
             } else {
-                Segment.this.classBands.addAnnotation(context, desc, visible, nameRU, T, values, caseArrayN, nestTypeRS, nestNameRU, nestPairN);
+                Segment.this.classBands.addAnnotation(context, desc, visible, nameRU, T, values, caseArrayN, nestTypeRS,
+                    nestNameRU, nestPairN);
             }
         }
 
@@ -573,7 +552,7 @@ public class Segment implements ClassVisitor {
         }
     }
 
-    public class ArrayVisitor implements AnnotationVisitor  {
+    public class ArrayVisitor implements AnnotationVisitor {
 
         private final int indexInCaseArrayN;
         private final List caseArrayN;
@@ -600,8 +579,7 @@ public class Segment implements ClassVisitor {
         }
 
         @Override
-        public AnnotationVisitor visitAnnotation(final String arg0,
-                final String arg1) {
+        public AnnotationVisitor visitAnnotation(final String arg0, final String arg1) {
             throw new RuntimeException("Not yet supported");
         }
 
@@ -631,31 +609,30 @@ public class Segment implements ClassVisitor {
     }
 
     /**
-     * SegmentFieldVisitor implements <code>FieldVisitor</code> to visit the
-     * metadata relating to fields in a class file.
+     * SegmentFieldVisitor implements <code>FieldVisitor</code> to visit the metadata relating to fields in a class
+     * file.
      */
     public class SegmentFieldVisitor implements FieldVisitor {
 
         @Override
         public AnnotationVisitor visitAnnotation(final String desc, final boolean visible) {
-            return new SegmentAnnotationVisitor(MetadataBandGroup.CONTEXT_FIELD,
-                    desc, visible);
+            return new SegmentAnnotationVisitor(MetadataBandGroup.CONTEXT_FIELD, desc, visible);
         }
 
         @Override
         public void visitAttribute(final Attribute attribute) {
-            if(attribute.isUnknown()) {
+            if (attribute.isUnknown()) {
                 final String action = options.getUnknownAttributeAction();
-                if(action.equals(PackingOptions.PASS)) {
+                if (action.equals(PackingOptions.PASS)) {
                     passCurrentClass();
                 } else if (action.equals(PackingOptions.ERROR)) {
                     throw new Error("Unknown attribute encountered");
                 } // else skip
-            } else if(attribute instanceof NewAttribute) {
+            } else if (attribute instanceof NewAttribute) {
                 final NewAttribute newAttribute = (NewAttribute) attribute;
-                if(newAttribute.isUnknown(AttributeDefinitionBands.CONTEXT_FIELD)) {
+                if (newAttribute.isUnknown(AttributeDefinitionBands.CONTEXT_FIELD)) {
                     final String action = options.getUnknownFieldAttributeAction(newAttribute.type);
-                    if(action.equals(PackingOptions.PASS)) {
+                    if (action.equals(PackingOptions.PASS)) {
                         passCurrentClass();
                     } else if (action.equals(PackingOptions.ERROR)) {
                         throw new Error("Unknown attribute encountered");
@@ -674,7 +651,7 @@ public class Segment implements ClassVisitor {
 
     // helper method for annotation visitors
     private void addValueAndTag(final Object value, final List T, final List values) {
-        if(value instanceof Integer) {
+        if (value instanceof Integer) {
             T.add("I");
             values.add(value);
         } else if (value instanceof Double) {
@@ -688,26 +665,25 @@ public class Segment implements ClassVisitor {
             values.add(value);
         } else if (value instanceof Byte) {
             T.add("B");
-            values.add(Integer.valueOf(((Byte)value).intValue()));
+            values.add(Integer.valueOf(((Byte) value).intValue()));
         } else if (value instanceof Character) {
             T.add("C");
-            values.add(Integer.valueOf(((Character)value).charValue()));
+            values.add(Integer.valueOf(((Character) value).charValue()));
         } else if (value instanceof Short) {
             T.add("S");
-            values.add(Integer.valueOf(((Short)value).intValue()));
+            values.add(Integer.valueOf(((Short) value).intValue()));
         } else if (value instanceof Boolean) {
             T.add("Z");
-            values.add(Integer.valueOf(((Boolean)value).booleanValue() ? 1 : 0));
+            values.add(Integer.valueOf(((Boolean) value).booleanValue() ? 1 : 0));
         } else if (value instanceof String) {
             T.add("s");
             values.add(value);
         } else if (value instanceof Type) {
             T.add("c");
-            values.add(((Type)value).toString());
+            values.add(((Type) value).toString());
         }
     }
 
-
     public boolean lastConstantHadWideIndex() {
         return currentClassReader.lastConstantHadWideIndex();
     }
@@ -737,10 +713,8 @@ public class Segment implements ClassVisitor {
     }
 
     /**
-     * Exception indicating that the class currently being visited contains an
-     * unknown attribute, which means that by default the class file needs to be
-     * passed through as-is in the file_bands rather than being packed with
-     * pack200.
+     * Exception indicating that the class currently being visited contains an unknown attribute, which means that by
+     * default the class file needs to be passed through as-is in the file_bands rather than being packed with pack200.
      */
     public static class PassException extends RuntimeException {
 
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/SegmentHeader.java b/src/main/java/org/apache/commons/compress/harmony/pack200/SegmentHeader.java
index 4d3a72b..804ecd8 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/SegmentHeader.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/SegmentHeader.java
@@ -20,8 +20,8 @@ import java.io.IOException;
 import java.io.OutputStream;
 
 /**
- * SegmentHeader is the header band of a {@link Segment}. Corresponds to
- * <code>segment_header</code> in the pack200 specification.
+ * SegmentHeader is the header band of a {@link Segment}. Corresponds to <code>segment_header</code> in the pack200
+ * specification.
  */
 public class SegmentHeader extends BandSet {
 
@@ -33,7 +33,7 @@ public class SegmentHeader extends BandSet {
                         // should always use the default encoding
     }
 
-    private static final int[] magic = { 0xCA, 0xFE, 0xD0, 0x0D };
+    private static final int[] magic = {0xCA, 0xFE, 0xD0, 0x0D};
     private static final int archive_minver = 7;
     private static final int archive_majver = 150;
 
@@ -90,7 +90,7 @@ public class SegmentHeader extends BandSet {
         writeArchiveSpecialCounts(out);
         writeCpCounts(out);
         writeClassCounts(out);
-        if (band_headers.size()> 0) {
+        if (band_headers.size() > 0) {
             out.write(encodeScalar(band_headers.toArray(), Codec.BYTE1));
         }
     }
@@ -99,8 +99,7 @@ public class SegmentHeader extends BandSet {
         if (attribute_definition_count > 0 || band_headers.size() > 0) {
             archive_options |= 1;
         }
-        if (cp_Int_count > 0 || cp_Float_count > 0 || cp_Long_count > 0
-                || cp_Double_count > 0) {
+        if (cp_Int_count > 0 || cp_Float_count > 0 || cp_Long_count > 0 || cp_Double_count > 0) {
             archive_options |= (1 << 1);
         }
         if (have_all_code_flags) {
@@ -243,8 +242,7 @@ public class SegmentHeader extends BandSet {
         this.class_count = class_count;
     }
 
-    private void writeCpCounts(final OutputStream out) throws IOException,
-            Pack200Exception {
+    private void writeCpCounts(final OutputStream out) throws IOException, Pack200Exception {
         out.write(encodeScalar(cp_Utf8_count, Codec.UNSIGNED5));
         if ((archive_options & (1 << 1)) != 0) { // have_cp_numbers
             out.write(encodeScalar(cp_Int_count, Codec.UNSIGNED5));
@@ -261,8 +259,7 @@ public class SegmentHeader extends BandSet {
         out.write(encodeScalar(cp_Imethod_count, Codec.UNSIGNED5));
     }
 
-    private void writeClassCounts(final OutputStream out) throws IOException,
-            Pack200Exception {
+    private void writeClassCounts(final OutputStream out) throws IOException, Pack200Exception {
         final int default_class_minver = 0;
         final int default_class_majver = majverCounter.getMostCommon();
         out.write(encodeScalar(ic_count, Codec.UNSIGNED5));
@@ -271,17 +268,14 @@ public class SegmentHeader extends BandSet {
         out.write(encodeScalar(class_count, Codec.UNSIGNED5));
     }
 
-    private void writeArchiveSpecialCounts(final OutputStream out)
-            throws IOException, Pack200Exception {
+    private void writeArchiveSpecialCounts(final OutputStream out) throws IOException, Pack200Exception {
         if ((archive_options & 1) > 0) { // have_special_formats
             out.write(encodeScalar(band_headers.size(), Codec.UNSIGNED5));
-            out.write(encodeScalar(attribute_definition_count,
-                    Codec.UNSIGNED5));
+            out.write(encodeScalar(attribute_definition_count, Codec.UNSIGNED5));
         }
     }
 
-    private void writeArchiveFileCounts(final OutputStream out) throws IOException,
-            Pack200Exception {
+    private void writeArchiveFileCounts(final OutputStream out) throws IOException, Pack200Exception {
         if ((archive_options & (1 << 4)) > 0) { // have_file_headers
             out.write(encodeScalar(archive_size_hi, Codec.UNSIGNED5));
             out.write(encodeScalar(archive_size_lo, Codec.UNSIGNED5));
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/Archive.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/Archive.java
index e848a2e..cc059f4 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/Archive.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/Archive.java
@@ -33,9 +33,8 @@ import java.util.zip.GZIPInputStream;
 import org.apache.commons.compress.harmony.pack200.Pack200Exception;
 
 /**
- * Archive is the main entry point to unpack200. An archive is constructed with
- * either two file names, a pack file and an output file name or an input stream
- * and an output streams. Then <code>unpack()</code> is called, to unpack the
+ * Archive is the main entry point to unpack200. An archive is constructed with either two file names, a pack file and
+ * an output file name or an input stream and an output streams. Then <code>unpack()</code> is called, to unpack the
  * pack200 archive.
  */
 public class Archive {
@@ -63,13 +62,11 @@ public class Archive {
      *
      * @param inputFile TODO
      * @param outputFile TODO
-     * @throws FileNotFoundException
-     *             if the input file does not exist
+     * @throws FileNotFoundException if the input file does not exist
      * @throws FileNotFoundException TODO
      * @throws IOException TODO
      */
-    public Archive(final String inputFile, final String outputFile)
-            throws FileNotFoundException, IOException {
+    public Archive(final String inputFile, final String outputFile) throws FileNotFoundException, IOException {
         this.inputFileName = inputFile;
         this.outputFileName = outputFile;
         inputStream = new FileInputStream(inputFile);
@@ -77,16 +74,14 @@ public class Archive {
     }
 
     /**
-     * Creates an Archive with streams for the input and output files. Note: If
-     * you use this method then calling {@link #setRemovePackFile(boolean)} will
-     * have no effect.
+     * Creates an Archive with streams for the input and output files. Note: If you use this method then calling
+     * {@link #setRemovePackFile(boolean)} will have no effect.
      *
      * @param inputStream TODO
      * @param outputStream TODO
      * @throws IOException TODO
      */
-    public Archive(final InputStream inputStream, final JarOutputStream outputStream)
-            throws IOException {
+    public Archive(final InputStream inputStream, final JarOutputStream outputStream) throws IOException {
         this.inputStream = inputStream;
         this.outputStream = outputStream;
     }
@@ -109,13 +104,12 @@ public class Archive {
             inputStream.mark(2);
             if (((inputStream.read() & 0xFF) | (inputStream.read() & 0xFF) << 8) == GZIPInputStream.GZIP_MAGIC) {
                 inputStream.reset();
-                inputStream = new BufferedInputStream(new GZIPInputStream(
-                        inputStream));
+                inputStream = new BufferedInputStream(new GZIPInputStream(inputStream));
             } else {
                 inputStream.reset();
             }
             inputStream.mark(4);
-            final int[] magic = { 0xCA, 0xFE, 0xD0, 0x0D }; // Magic word for
+            final int[] magic = {0xCA, 0xFE, 0xD0, 0x0D}; // Magic word for
             // pack200
             final int word[] = new int[4];
             for (int i = 0; i < word.length; i++) {
@@ -148,18 +142,14 @@ public class Archive {
                     i++;
                     final Segment segment = new Segment();
                     segment.setLogLevel(logLevel);
-                    segment
-                            .setLogStream(logFile != null ? (OutputStream) logFile
-                                    : (OutputStream) System.out);
+                    segment.setLogStream(logFile != null ? (OutputStream) logFile : (OutputStream) System.out);
                     segment.setPreRead(false);
 
                     if (i == 1) {
                         segment.log(Segment.LOG_LEVEL_VERBOSE,
-                                "Unpacking from " + inputFileName + " to "
-                                        + outputFileName);
+                            "Unpacking from " + inputFileName + " to " + outputFileName);
                     }
-                    segment.log(Segment.LOG_LEVEL_VERBOSE, "Reading segment "
-                            + i);
+                    segment.log(Segment.LOG_LEVEL_VERBOSE, "Reading segment " + i);
                     if (overrideDeflateHint) {
                         segment.overrideDeflateHint(deflateHint);
                     }
@@ -167,8 +157,7 @@ public class Archive {
                     outputStream.flush();
 
                     if (inputStream instanceof FileInputStream) {
-                        inputFileName = ((FileInputStream) inputStream).getFD()
-                                .toString();
+                        inputFileName = ((FileInputStream) inputStream).getFD().toString();
                     }
                 }
             }
@@ -190,7 +179,7 @@ public class Archive {
         }
         if (removePackFile) {
             boolean deleted = false;
-            if(inputFileName != null) {
+            if (inputFileName != null) {
                 final File file = new File(inputFileName);
                 deleted = file.delete();
             }
@@ -208,11 +197,9 @@ public class Archive {
     }
 
     /**
-     * If removePackFile is set to true, the input file is deleted after
-     * unpacking.
+     * If removePackFile is set to true, the input file is deleted after unpacking.
      *
-     * @param removePackFile If true, the input file is deleted after
-     * unpacking.
+     * @param removePackFile If true, the input file is deleted after unpacking.
      */
     public void setRemovePackFile(final boolean removePackFile) {
         this.removePackFile = removePackFile;
@@ -238,8 +225,7 @@ public class Archive {
         this.logFile = new FileOutputStream(logFileName);
     }
 
-    public void setLogFile(final String logFileName, final boolean append)
-            throws FileNotFoundException {
+    public void setLogFile(final String logFileName, final boolean append) throws FileNotFoundException {
         logFile = new FileOutputStream(logFileName, append);
     }
 
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/AttrDefinitionBands.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/AttrDefinitionBands.java
index 8a63352..6ffc8c2 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/AttrDefinitionBands.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/AttrDefinitionBands.java
@@ -35,8 +35,7 @@ import org.apache.commons.compress.harmony.unpack200.bytecode.SignatureAttribute
 import org.apache.commons.compress.harmony.unpack200.bytecode.SourceFileAttribute;
 
 /**
- * Attribute definition bands are the set of bands used to define extra
- * attributes transmitted in the archive.
+ * Attribute definition bands are the set of bands used to define extra attributes transmitted in the archive.
  */
 public class AttrDefinitionBands extends BandSet {
 
@@ -63,12 +62,11 @@ public class AttrDefinitionBands extends BandSet {
     @Override
     public void read(final InputStream in) throws IOException, Pack200Exception {
         final int attributeDefinitionCount = header.getAttributeDefinitionCount();
-        attributeDefinitionHeader = decodeBandInt("attr_definition_headers",
-                in, Codec.BYTE1, attributeDefinitionCount);
-        attributeDefinitionName = parseReferences("attr_definition_name", in,
-                Codec.UNSIGNED5, attributeDefinitionCount, cpUTF8);
-        attributeDefinitionLayout = parseReferences("attr_definition_layout",
-                in, Codec.UNSIGNED5, attributeDefinitionCount, cpUTF8);
+        attributeDefinitionHeader = decodeBandInt("attr_definition_headers", in, Codec.BYTE1, attributeDefinitionCount);
+        attributeDefinitionName = parseReferences("attr_definition_name", in, Codec.UNSIGNED5, attributeDefinitionCount,
+            cpUTF8);
+        attributeDefinitionLayout = parseReferences("attr_definition_layout", in, Codec.UNSIGNED5,
+            attributeDefinitionCount, cpUTF8);
 
         attributeDefinitionMap = new AttributeLayoutMap();
 
@@ -82,9 +80,8 @@ public class AttrDefinitionBands extends BandSet {
             if (index == -1) {
                 index = overflowIndex++;
             }
-            final AttributeLayout layout = new AttributeLayout(
-                    attributeDefinitionName[i], context,
-                    attributeDefinitionLayout[i], index, false);
+            final AttributeLayout layout = new AttributeLayout(attributeDefinitionName[i], context,
+                attributeDefinitionLayout[i], index, false);
             final NewAttributeBands newBands = new NewAttributeBands(segment, layout);
             attributeDefinitionMap.add(layout, newBands);
         }
@@ -113,7 +110,8 @@ public class AttrDefinitionBands extends BandSet {
         MetadataBandGroup.setRvaAttributeName(segment.getCpBands().cpUTF8Value("RuntimeVisibleAnnotations"));
         MetadataBandGroup.setRiaAttributeName(segment.getCpBands().cpUTF8Value("RuntimeInvisibleAnnotations"));
         MetadataBandGroup.setRvpaAttributeName(segment.getCpBands().cpUTF8Value("RuntimeVisibleParameterAnnotations"));
-        MetadataBandGroup.setRipaAttributeName(segment.getCpBands().cpUTF8Value("RuntimeInvisibleParameterAnnotations"));
+        MetadataBandGroup
+            .setRipaAttributeName(segment.getCpBands().cpUTF8Value("RuntimeInvisibleParameterAnnotations"));
     }
 
     public AttributeLayoutMap getAttributeDefinitionMap() {
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/AttributeLayout.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/AttributeLayout.java
index dce31bb..f6dba75 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/AttributeLayout.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/AttributeLayout.java
@@ -21,8 +21,7 @@ import org.apache.commons.compress.harmony.pack200.Pack200Exception;
 import org.apache.commons.compress.harmony.unpack200.bytecode.ClassFileEntry;
 
 /**
- * AttributeLayout defines a layout that describes how an attribute will be
- * transmitted.
+ * AttributeLayout defines a layout that describes how an attribute will be transmitted.
  */
 public class AttributeLayout implements IMatcher {
 
@@ -62,11 +61,11 @@ public class AttributeLayout implements IMatcher {
     public static final int CONTEXT_CODE = 3;
     public static final int CONTEXT_FIELD = 1;
     public static final int CONTEXT_METHOD = 2;
-    public static final String[] contextNames = { "Class", "Field", "Method", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-            "Code", }; //$NON-NLS-1$
+    public static final String[] contextNames = {"Class", "Field", "Method", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+        "Code",}; //$NON-NLS-1$
 
-    private static ClassFileEntry getValue(final String layout, long value,
-            final SegmentConstantPool pool) throws Pack200Exception {
+    private static ClassFileEntry getValue(final String layout, long value, final SegmentConstantPool pool)
+        throws Pack200Exception {
         if (layout.startsWith("R")) { //$NON-NLS-1$
             // references
             if (layout.indexOf('N') != -1) {
@@ -122,12 +121,12 @@ public class AttributeLayout implements IMatcher {
      * @throws Pack200Exception Cannot have an unnamed layout.
      */
     public AttributeLayout(final String name, final int context, final String layout, final int index)
-            throws Pack200Exception {
+        throws Pack200Exception {
         this(name, context, layout, index, true);
     }
 
     public AttributeLayout(final String name, final int context, final String layout, final int index,
-            final boolean isDefault) throws Pack200Exception {
+        final boolean isDefault) throws Pack200Exception {
         super();
         this.index = index;
         this.context = context;
@@ -136,10 +135,9 @@ public class AttributeLayout implements IMatcher {
         } else {
             this.mask = 0;
         }
-        if (context != CONTEXT_CLASS && context != CONTEXT_CODE
-                && context != CONTEXT_FIELD && context != CONTEXT_METHOD) {
-            throw new Pack200Exception("Attribute context out of range: "
-                    + context);
+        if (context != CONTEXT_CLASS && context != CONTEXT_CODE && context != CONTEXT_FIELD
+            && context != CONTEXT_METHOD) {
+            throw new Pack200Exception("Attribute context out of range: " + context);
         }
         if (layout == null) {
             throw new Pack200Exception("Cannot have a null layout");
@@ -160,7 +158,7 @@ public class AttributeLayout implements IMatcher {
             return Codec.BCI5;
         }
         if (layout.indexOf('S') >= 0 && layout.indexOf("KS") < 0 //$NON-NLS-1$
-                && layout.indexOf("RS") < 0) { //$NON-NLS-1$
+            && layout.indexOf("RS") < 0) { //$NON-NLS-1$
             return Codec.SIGNED5;
         }
         if (layout.indexOf('B') >= 0) {
@@ -173,13 +171,12 @@ public class AttributeLayout implements IMatcher {
         return layout;
     }
 
-    public ClassFileEntry getValue(final long value, final SegmentConstantPool pool)
-            throws Pack200Exception {
+    public ClassFileEntry getValue(final long value, final SegmentConstantPool pool) throws Pack200Exception {
         return getValue(layout, value, pool);
     }
 
     public ClassFileEntry getValue(final long value, final String type, final SegmentConstantPool pool)
-            throws Pack200Exception {
+        throws Pack200Exception {
         // TODO This really needs to be better tested, esp. the different types
         // TODO This should have the ability to deal with RUN stuff too, and
         // unions
@@ -191,7 +188,7 @@ public class AttributeLayout implements IMatcher {
             return value2;
         }
         return getValue("K" + type + layout.substring(2), value, //$NON-NLS-1$
-                pool);
+            pool);
     }
 
     @Override
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/AttributeLayoutMap.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/AttributeLayoutMap.java
index 3ee1a7b..afa7dd3 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/AttributeLayoutMap.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/AttributeLayoutMap.java
@@ -26,172 +26,99 @@ import java.util.Map;
 import org.apache.commons.compress.harmony.pack200.Pack200Exception;
 
 /**
- * Stores a mapping from attribute names to their corresponding layout types.
- * Note that names of attribute layouts and their formats are <em>not</em>
- * internationalized, and should not be translated.
+ * Stores a mapping from attribute names to their corresponding layout types. Note that names of attribute layouts and
+ * their formats are <em>not</em> internationalized, and should not be translated.
  */
 public class AttributeLayoutMap {
 
     // Create all the default AttributeLayouts here
-    private static AttributeLayout[] getDefaultAttributeLayouts()
-            throws Pack200Exception {
+    private static AttributeLayout[] getDefaultAttributeLayouts() throws Pack200Exception {
         return new AttributeLayout[] {
-                new AttributeLayout(AttributeLayout.ACC_PUBLIC,
-                        AttributeLayout.CONTEXT_CLASS, "", 0),
-                new AttributeLayout(AttributeLayout.ACC_PUBLIC,
-                        AttributeLayout.CONTEXT_FIELD, "", 0),
-                new AttributeLayout(AttributeLayout.ACC_PUBLIC,
-                        AttributeLayout.CONTEXT_METHOD, "", 0),
-                new AttributeLayout(AttributeLayout.ACC_PRIVATE,
-                        AttributeLayout.CONTEXT_CLASS, "", 1),
-                new AttributeLayout(AttributeLayout.ACC_PRIVATE,
-                        AttributeLayout.CONTEXT_FIELD, "", 1),
-                new AttributeLayout(AttributeLayout.ACC_PRIVATE,
-                        AttributeLayout.CONTEXT_METHOD, "", 1),
-                new AttributeLayout(
-                        AttributeLayout.ATTRIBUTE_LINE_NUMBER_TABLE,
-                        AttributeLayout.CONTEXT_CODE, "NH[PHH]", 1),
-
-                new AttributeLayout(AttributeLayout.ACC_PROTECTED,
-                        AttributeLayout.CONTEXT_CLASS, "", 2),
-                new AttributeLayout(AttributeLayout.ACC_PROTECTED,
-                        AttributeLayout.CONTEXT_FIELD, "", 2),
-                new AttributeLayout(AttributeLayout.ACC_PROTECTED,
-                        AttributeLayout.CONTEXT_METHOD, "", 2),
-                new AttributeLayout(
-                        AttributeLayout.ATTRIBUTE_LOCAL_VARIABLE_TABLE,
-                        AttributeLayout.CONTEXT_CODE, "NH[PHOHRUHRSHH]", 2),
-
-                new AttributeLayout(AttributeLayout.ACC_STATIC,
-                        AttributeLayout.CONTEXT_CLASS, "", 3),
-                new AttributeLayout(AttributeLayout.ACC_STATIC,
-                        AttributeLayout.CONTEXT_FIELD, "", 3),
-                new AttributeLayout(AttributeLayout.ACC_STATIC,
-                        AttributeLayout.CONTEXT_METHOD, "", 3),
-                new AttributeLayout(
-                        AttributeLayout.ATTRIBUTE_LOCAL_VARIABLE_TYPE_TABLE,
-                        AttributeLayout.CONTEXT_CODE, "NH[PHOHRUHRSHH]", 3),
-
-                new AttributeLayout(AttributeLayout.ACC_FINAL,
-                        AttributeLayout.CONTEXT_CLASS, "", 4),
-                new AttributeLayout(AttributeLayout.ACC_FINAL,
-                        AttributeLayout.CONTEXT_FIELD, "", 4),
-                new AttributeLayout(AttributeLayout.ACC_FINAL,
-                        AttributeLayout.CONTEXT_METHOD, "", 4),
-                new AttributeLayout(AttributeLayout.ACC_SYNCHRONIZED,
-                        AttributeLayout.CONTEXT_CLASS, "", 5),
-                new AttributeLayout(AttributeLayout.ACC_SYNCHRONIZED,
-                        AttributeLayout.CONTEXT_FIELD, "", 5),
-                new AttributeLayout(AttributeLayout.ACC_SYNCHRONIZED,
-                        AttributeLayout.CONTEXT_METHOD, "", 5),
-                new AttributeLayout(AttributeLayout.ACC_VOLATILE,
-                        AttributeLayout.CONTEXT_CLASS, "", 6),
-                new AttributeLayout(AttributeLayout.ACC_VOLATILE,
-                        AttributeLayout.CONTEXT_FIELD, "", 6),
-                new AttributeLayout(AttributeLayout.ACC_VOLATILE,
-                        AttributeLayout.CONTEXT_METHOD, "", 6),
-                new AttributeLayout(AttributeLayout.ACC_TRANSIENT,
-                        AttributeLayout.CONTEXT_CLASS, "", 7),
-                new AttributeLayout(AttributeLayout.ACC_TRANSIENT,
-                        AttributeLayout.CONTEXT_FIELD, "", 7),
-                new AttributeLayout(AttributeLayout.ACC_TRANSIENT,
-                        AttributeLayout.CONTEXT_METHOD, "", 7),
-                new AttributeLayout(AttributeLayout.ACC_NATIVE,
-                        AttributeLayout.CONTEXT_CLASS, "", 8),
-                new AttributeLayout(AttributeLayout.ACC_NATIVE,
-                        AttributeLayout.CONTEXT_FIELD, "", 8),
-                new AttributeLayout(AttributeLayout.ACC_NATIVE,
-                        AttributeLayout.CONTEXT_METHOD, "", 8),
-                new AttributeLayout(AttributeLayout.ACC_INTERFACE,
-                        AttributeLayout.CONTEXT_CLASS, "", 9),
-                new AttributeLayout(AttributeLayout.ACC_INTERFACE,
-                        AttributeLayout.CONTEXT_FIELD, "", 9),
-                new AttributeLayout(AttributeLayout.ACC_INTERFACE,
-                        AttributeLayout.CONTEXT_METHOD, "", 9),
-                new AttributeLayout(AttributeLayout.ACC_ABSTRACT,
-                        AttributeLayout.CONTEXT_CLASS, "", 10),
-                new AttributeLayout(AttributeLayout.ACC_ABSTRACT,
-                        AttributeLayout.CONTEXT_FIELD, "", 10),
-                new AttributeLayout(AttributeLayout.ACC_ABSTRACT,
-                        AttributeLayout.CONTEXT_METHOD, "", 10),
-                new AttributeLayout(AttributeLayout.ACC_STRICT,
-                        AttributeLayout.CONTEXT_CLASS, "", 11),
-                new AttributeLayout(AttributeLayout.ACC_STRICT,
-                        AttributeLayout.CONTEXT_FIELD, "", 11),
-                new AttributeLayout(AttributeLayout.ACC_STRICT,
-                        AttributeLayout.CONTEXT_METHOD, "", 11),
-                new AttributeLayout(AttributeLayout.ACC_SYNTHETIC,
-                        AttributeLayout.CONTEXT_CLASS, "", 12),
-                new AttributeLayout(AttributeLayout.ACC_SYNTHETIC,
-                        AttributeLayout.CONTEXT_FIELD, "", 12),
-                new AttributeLayout(AttributeLayout.ACC_SYNTHETIC,
-                        AttributeLayout.CONTEXT_METHOD, "", 12),
-                new AttributeLayout(AttributeLayout.ACC_ANNOTATION,
-                        AttributeLayout.CONTEXT_CLASS, "", 13),
-                new AttributeLayout(AttributeLayout.ACC_ANNOTATION,
-                        AttributeLayout.CONTEXT_FIELD, "", 13),
-                new AttributeLayout(AttributeLayout.ACC_ANNOTATION,
-                        AttributeLayout.CONTEXT_METHOD, "", 13),
-                new AttributeLayout(AttributeLayout.ACC_ENUM,
-                        AttributeLayout.CONTEXT_CLASS, "", 14),
-                new AttributeLayout(AttributeLayout.ACC_ENUM,
-                        AttributeLayout.CONTEXT_FIELD, "", 14),
-                new AttributeLayout(AttributeLayout.ACC_ENUM,
-                        AttributeLayout.CONTEXT_METHOD, "", 14),
-                new AttributeLayout(AttributeLayout.ATTRIBUTE_SOURCE_FILE,
-                        AttributeLayout.CONTEXT_CLASS, "RUNH", 17),
-                new AttributeLayout(AttributeLayout.ATTRIBUTE_CONSTANT_VALUE,
-                        AttributeLayout.CONTEXT_FIELD, "KQH", 17),
-                new AttributeLayout(AttributeLayout.ATTRIBUTE_CODE,
-                        AttributeLayout.CONTEXT_METHOD, "", 17),
-                new AttributeLayout(AttributeLayout.ATTRIBUTE_ENCLOSING_METHOD,
-                        AttributeLayout.CONTEXT_CLASS, "RCHRDNH", 18),
-                new AttributeLayout(AttributeLayout.ATTRIBUTE_EXCEPTIONS,
-                        AttributeLayout.CONTEXT_METHOD, "NH[RCH]", 18),
-                new AttributeLayout(AttributeLayout.ATTRIBUTE_SIGNATURE,
-                        AttributeLayout.CONTEXT_CLASS, "RSH", 19),
-                new AttributeLayout(AttributeLayout.ATTRIBUTE_SIGNATURE,
-                        AttributeLayout.CONTEXT_FIELD, "RSH", 19),
-                new AttributeLayout(AttributeLayout.ATTRIBUTE_SIGNATURE,
-                        AttributeLayout.CONTEXT_METHOD, "RSH", 19),
-                new AttributeLayout(AttributeLayout.ATTRIBUTE_DEPRECATED,
-                        AttributeLayout.CONTEXT_CLASS, "", 20),
-                new AttributeLayout(AttributeLayout.ATTRIBUTE_DEPRECATED,
-                        AttributeLayout.CONTEXT_FIELD, "", 20),
-                new AttributeLayout(AttributeLayout.ATTRIBUTE_DEPRECATED,
-                        AttributeLayout.CONTEXT_METHOD, "", 20),
-                new AttributeLayout(
-                        AttributeLayout.ATTRIBUTE_RUNTIME_VISIBLE_ANNOTATIONS,
-                        AttributeLayout.CONTEXT_CLASS, "*", 21),
-                new AttributeLayout(
-                        AttributeLayout.ATTRIBUTE_RUNTIME_VISIBLE_ANNOTATIONS,
-                        AttributeLayout.CONTEXT_FIELD, "*", 21),
-                new AttributeLayout(
-                        AttributeLayout.ATTRIBUTE_RUNTIME_VISIBLE_ANNOTATIONS,
-                        AttributeLayout.CONTEXT_METHOD, "*", 21),
-                new AttributeLayout(
-                        AttributeLayout.ATTRIBUTE_RUNTIME_INVISIBLE_ANNOTATIONS,
-                        AttributeLayout.CONTEXT_CLASS, "*", 22),
-                new AttributeLayout(
-                        AttributeLayout.ATTRIBUTE_RUNTIME_INVISIBLE_ANNOTATIONS,
-                        AttributeLayout.CONTEXT_FIELD, "*", 22),
-                new AttributeLayout(
-                        AttributeLayout.ATTRIBUTE_RUNTIME_INVISIBLE_ANNOTATIONS,
-                        AttributeLayout.CONTEXT_METHOD, "*", 22),
-                new AttributeLayout(AttributeLayout.ATTRIBUTE_INNER_CLASSES,
-                        AttributeLayout.CONTEXT_CLASS, "", 23),
-                new AttributeLayout(
-                        AttributeLayout.ATTRIBUTE_RUNTIME_VISIBLE_PARAMETER_ANNOTATIONS,
-                        AttributeLayout.CONTEXT_METHOD, "*", 23),
-                new AttributeLayout(
-                        AttributeLayout.ATTRIBUTE_CLASS_FILE_VERSION,
-                        AttributeLayout.CONTEXT_CLASS, "", 24),
-                new AttributeLayout(
-                        AttributeLayout.ATTRIBUTE_RUNTIME_INVISIBLE_PARAMETER_ANNOTATIONS,
-                        AttributeLayout.CONTEXT_METHOD, "*", 24),
-                new AttributeLayout(
-                        AttributeLayout.ATTRIBUTE_ANNOTATION_DEFAULT,
-                        AttributeLayout.CONTEXT_METHOD, "*", 25) };
+            new AttributeLayout(AttributeLayout.ACC_PUBLIC, AttributeLayout.CONTEXT_CLASS, "", 0),
+            new AttributeLayout(AttributeLayout.ACC_PUBLIC, AttributeLayout.CONTEXT_FIELD, "", 0),
+            new AttributeLayout(AttributeLayout.ACC_PUBLIC, AttributeLayout.CONTEXT_METHOD, "", 0),
+            new AttributeLayout(AttributeLayout.ACC_PRIVATE, AttributeLayout.CONTEXT_CLASS, "", 1),
+            new AttributeLayout(AttributeLayout.ACC_PRIVATE, AttributeLayout.CONTEXT_FIELD, "", 1),
+            new AttributeLayout(AttributeLayout.ACC_PRIVATE, AttributeLayout.CONTEXT_METHOD, "", 1),
+            new AttributeLayout(AttributeLayout.ATTRIBUTE_LINE_NUMBER_TABLE, AttributeLayout.CONTEXT_CODE, "NH[PHH]",
+                1),
+
+            new AttributeLayout(AttributeLayout.ACC_PROTECTED, AttributeLayout.CONTEXT_CLASS, "", 2),
+            new AttributeLayout(AttributeLayout.ACC_PROTECTED, AttributeLayout.CONTEXT_FIELD, "", 2),
+            new AttributeLayout(AttributeLayout.ACC_PROTECTED, AttributeLayout.CONTEXT_METHOD, "", 2),
+            new AttributeLayout(AttributeLayout.ATTRIBUTE_LOCAL_VARIABLE_TABLE, AttributeLayout.CONTEXT_CODE,
+                "NH[PHOHRUHRSHH]", 2),
+
+            new AttributeLayout(AttributeLayout.ACC_STATIC, AttributeLayout.CONTEXT_CLASS, "", 3),
+            new AttributeLayout(AttributeLayout.ACC_STATIC, AttributeLayout.CONTEXT_FIELD, "", 3),
+            new AttributeLayout(AttributeLayout.ACC_STATIC, AttributeLayout.CONTEXT_METHOD, "", 3),
+            new AttributeLayout(AttributeLayout.ATTRIBUTE_LOCAL_VARIABLE_TYPE_TABLE, AttributeLayout.CONTEXT_CODE,
+                "NH[PHOHRUHRSHH]", 3),
+
+            new AttributeLayout(AttributeLayout.ACC_FINAL, AttributeLayout.CONTEXT_CLASS, "", 4),
+            new AttributeLayout(AttributeLayout.ACC_FINAL, AttributeLayout.CONTEXT_FIELD, "", 4),
+            new AttributeLayout(AttributeLayout.ACC_FINAL, AttributeLayout.CONTEXT_METHOD, "", 4),
+            new AttributeLayout(AttributeLayout.ACC_SYNCHRONIZED, AttributeLayout.CONTEXT_CLASS, "", 5),
+            new AttributeLayout(AttributeLayout.ACC_SYNCHRONIZED, AttributeLayout.CONTEXT_FIELD, "", 5),
+            new AttributeLayout(AttributeLayout.ACC_SYNCHRONIZED, AttributeLayout.CONTEXT_METHOD, "", 5),
+            new AttributeLayout(AttributeLayout.ACC_VOLATILE, AttributeLayout.CONTEXT_CLASS, "", 6),
+            new AttributeLayout(AttributeLayout.ACC_VOLATILE, AttributeLayout.CONTEXT_FIELD, "", 6),
+            new AttributeLayout(AttributeLayout.ACC_VOLATILE, AttributeLayout.CONTEXT_METHOD, "", 6),
+            new AttributeLayout(AttributeLayout.ACC_TRANSIENT, AttributeLayout.CONTEXT_CLASS, "", 7),
+            new AttributeLayout(AttributeLayout.ACC_TRANSIENT, AttributeLayout.CONTEXT_FIELD, "", 7),
+            new AttributeLayout(AttributeLayout.ACC_TRANSIENT, AttributeLayout.CONTEXT_METHOD, "", 7),
+            new AttributeLayout(AttributeLayout.ACC_NATIVE, AttributeLayout.CONTEXT_CLASS, "", 8),
+            new AttributeLayout(AttributeLayout.ACC_NATIVE, AttributeLayout.CONTEXT_FIELD, "", 8),
+            new AttributeLayout(AttributeLayout.ACC_NATIVE, AttributeLayout.CONTEXT_METHOD, "", 8),
+            new AttributeLayout(AttributeLayout.ACC_INTERFACE, AttributeLayout.CONTEXT_CLASS, "", 9),
+            new AttributeLayout(AttributeLayout.ACC_INTERFACE, AttributeLayout.CONTEXT_FIELD, "", 9),
+            new AttributeLayout(AttributeLayout.ACC_INTERFACE, AttributeLayout.CONTEXT_METHOD, "", 9),
+            new AttributeLayout(AttributeLayout.ACC_ABSTRACT, AttributeLayout.CONTEXT_CLASS, "", 10),
+            new AttributeLayout(AttributeLayout.ACC_ABSTRACT, AttributeLayout.CONTEXT_FIELD, "", 10),
+            new AttributeLayout(AttributeLayout.ACC_ABSTRACT, AttributeLayout.CONTEXT_METHOD, "", 10),
+            new AttributeLayout(AttributeLayout.ACC_STRICT, AttributeLayout.CONTEXT_CLASS, "", 11),
+            new AttributeLayout(AttributeLayout.ACC_STRICT, AttributeLayout.CONTEXT_FIELD, "", 11),
+            new AttributeLayout(AttributeLayout.ACC_STRICT, AttributeLayout.CONTEXT_METHOD, "", 11),
+            new AttributeLayout(AttributeLayout.ACC_SYNTHETIC, AttributeLayout.CONTEXT_CLASS, "", 12),
+            new AttributeLayout(AttributeLayout.ACC_SYNTHETIC, AttributeLayout.CONTEXT_FIELD, "", 12),
+            new AttributeLayout(AttributeLayout.ACC_SYNTHETIC, AttributeLayout.CONTEXT_METHOD, "", 12),
+            new AttributeLayout(AttributeLayout.ACC_ANNOTATION, AttributeLayout.CONTEXT_CLASS, "", 13),
+            new AttributeLayout(AttributeLayout.ACC_ANNOTATION, AttributeLayout.CONTEXT_FIELD, "", 13),
+            new AttributeLayout(AttributeLayout.ACC_ANNOTATION, AttributeLayout.CONTEXT_METHOD, "", 13),
+            new AttributeLayout(AttributeLayout.ACC_ENUM, AttributeLayout.CONTEXT_CLASS, "", 14),
+            new AttributeLayout(AttributeLayout.ACC_ENUM, AttributeLayout.CONTEXT_FIELD, "", 14),
+            new AttributeLayout(AttributeLayout.ACC_ENUM, AttributeLayout.CONTEXT_METHOD, "", 14),
+            new AttributeLayout(AttributeLayout.ATTRIBUTE_SOURCE_FILE, AttributeLayout.CONTEXT_CLASS, "RUNH", 17),
+            new AttributeLayout(AttributeLayout.ATTRIBUTE_CONSTANT_VALUE, AttributeLayout.CONTEXT_FIELD, "KQH", 17),
+            new AttributeLayout(AttributeLayout.ATTRIBUTE_CODE, AttributeLayout.CONTEXT_METHOD, "", 17),
+            new AttributeLayout(AttributeLayout.ATTRIBUTE_ENCLOSING_METHOD, AttributeLayout.CONTEXT_CLASS, "RCHRDNH",
+                18),
+            new AttributeLayout(AttributeLayout.ATTRIBUTE_EXCEPTIONS, AttributeLayout.CONTEXT_METHOD, "NH[RCH]", 18),
+            new AttributeLayout(AttributeLayout.ATTRIBUTE_SIGNATURE, AttributeLayout.CONTEXT_CLASS, "RSH", 19),
+            new AttributeLayout(AttributeLayout.ATTRIBUTE_SIGNATURE, AttributeLayout.CONTEXT_FIELD, "RSH", 19),
+            new AttributeLayout(AttributeLayout.ATTRIBUTE_SIGNATURE, AttributeLayout.CONTEXT_METHOD, "RSH", 19),
+            new AttributeLayout(AttributeLayout.ATTRIBUTE_DEPRECATED, AttributeLayout.CONTEXT_CLASS, "", 20),
+            new AttributeLayout(AttributeLayout.ATTRIBUTE_DEPRECATED, AttributeLayout.CONTEXT_FIELD, "", 20),
+            new AttributeLayout(AttributeLayout.ATTRIBUTE_DEPRECATED, AttributeLayout.CONTEXT_METHOD, "", 20),
+            new AttributeLayout(AttributeLayout.ATTRIBUTE_RUNTIME_VISIBLE_ANNOTATIONS, AttributeLayout.CONTEXT_CLASS,
+                "*", 21),
+            new AttributeLayout(AttributeLayout.ATTRIBUTE_RUNTIME_VISIBLE_ANNOTATIONS, AttributeLayout.CONTEXT_FIELD,
+                "*", 21),
+            new AttributeLayout(AttributeLayout.ATTRIBUTE_RUNTIME_VISIBLE_ANNOTATIONS, AttributeLayout.CONTEXT_METHOD,
+                "*", 21),
+            new AttributeLayout(AttributeLayout.ATTRIBUTE_RUNTIME_INVISIBLE_ANNOTATIONS, AttributeLayout.CONTEXT_CLASS,
+                "*", 22),
+            new AttributeLayout(AttributeLayout.ATTRIBUTE_RUNTIME_INVISIBLE_ANNOTATIONS, AttributeLayout.CONTEXT_FIELD,
+                "*", 22),
+            new AttributeLayout(AttributeLayout.ATTRIBUTE_RUNTIME_INVISIBLE_ANNOTATIONS, AttributeLayout.CONTEXT_METHOD,
+                "*", 22),
+            new AttributeLayout(AttributeLayout.ATTRIBUTE_INNER_CLASSES, AttributeLayout.CONTEXT_CLASS, "", 23),
+            new AttributeLayout(AttributeLayout.ATTRIBUTE_RUNTIME_VISIBLE_PARAMETER_ANNOTATIONS,
+                AttributeLayout.CONTEXT_METHOD, "*", 23),
+            new AttributeLayout(AttributeLayout.ATTRIBUTE_CLASS_FILE_VERSION, AttributeLayout.CONTEXT_CLASS, "", 24),
+            new AttributeLayout(AttributeLayout.ATTRIBUTE_RUNTIME_INVISIBLE_PARAMETER_ANNOTATIONS,
+                AttributeLayout.CONTEXT_METHOD, "*", 24),
+            new AttributeLayout(AttributeLayout.ATTRIBUTE_ANNOTATION_DEFAULT, AttributeLayout.CONTEXT_METHOD, "*", 25)};
     }
 
     private final Map classLayouts = new HashMap();
@@ -202,8 +129,7 @@ public class AttributeLayoutMap {
     // The order of the maps in this array should not be changed as their
     // indices correspond to
     // the value of their context constants (AttributeLayout.CONTEXT_CLASS etc.)
-    private final Map[] layouts = { classLayouts, fieldLayouts,
-            methodLayouts, codeLayouts };
+    private final Map[] layouts = {classLayouts, fieldLayouts, methodLayouts, codeLayouts};
 
     private final Map layoutsToBands = new HashMap();
 
@@ -215,8 +141,7 @@ public class AttributeLayoutMap {
     }
 
     public void add(final AttributeLayout layout) {
-        layouts[layout.getContext()]
-                .put(Integer.valueOf(layout.getIndex()), layout);
+        layouts[layout.getContext()].put(Integer.valueOf(layout.getIndex()), layout);
     }
 
     public void add(final AttributeLayout layout, final NewAttributeBands newBands) {
@@ -224,8 +149,7 @@ public class AttributeLayoutMap {
         layoutsToBands.put(layout, newBands);
     }
 
-    public AttributeLayout getAttributeLayout(final String name, final int context)
-            throws Pack200Exception {
+    public AttributeLayout getAttributeLayout(final String name, final int context) throws Pack200Exception {
         final Map map = layouts[context];
         for (final Iterator iter = map.values().iterator(); iter.hasNext();) {
             final AttributeLayout layout = (AttributeLayout) iter.next();
@@ -236,15 +160,13 @@ public class AttributeLayoutMap {
         return null;
     }
 
-    public AttributeLayout getAttributeLayout(final int index, final int context)
-            throws Pack200Exception {
+    public AttributeLayout getAttributeLayout(final int index, final int context) throws Pack200Exception {
         final Map map = layouts[context];
         return (AttributeLayout) map.get(Integer.valueOf(index));
     }
 
     /**
-     * The map should not contain the same layout and name combination more than
-     * once for each context.
+     * The map should not contain the same layout and name combination more than once for each context.
      *
      * @throws Pack200Exception Thrown when the name layout/name combination exists twice for a context.
      */
@@ -261,15 +183,10 @@ public class AttributeLayoutMap {
                 for (int j2 = j + 1; j2 < l.size(); j2++) {
                     final AttributeLayout layout2 = (AttributeLayout) l.get(j2);
                     if (layout1.getName().equals(layout2.getName())
-                            && layout1.getLayout().equals(layout2.getLayout())) {
+                        && layout1.getLayout().equals(layout2.getLayout())) {
                         throw new Pack200Exception(
-                                "Same layout/name combination: "
-                                        + layout1.getLayout()
-                                        + "/"
-                                        + layout1.getName()
-                                        + " exists twice for context: "
-                                        + AttributeLayout.contextNames[layout1
-                                                .getContext()]);
+                            "Same layout/name combination: " + layout1.getLayout() + "/" + layout1.getName()
+                                + " exists twice for context: " + AttributeLayout.contextNames[layout1.getContext()]);
                     }
                 }
             }
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/BandSet.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/BandSet.java
index 4d9a0e3..56ca75e 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/BandSet.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/BandSet.java
@@ -42,8 +42,7 @@ import org.apache.commons.compress.harmony.unpack200.bytecode.CPUTF8;
  */
 public abstract class BandSet {
 
-    public abstract void read(InputStream inputStream) throws IOException,
-            Pack200Exception;
+    public abstract void read(InputStream inputStream) throws IOException, Pack200Exception;
 
     public abstract void unpack() throws IOException, Pack200Exception;
 
@@ -64,25 +63,16 @@ public abstract class BandSet {
     /**
      * Decode a band and return an array of <code>int</code> values
      *
-     * @param name
-     *            the name of the band (primarily for logging/debugging
-     *            purposes)
-     * @param in
-     *            the InputStream to decode from
-     * @param codec
-     *            the default Codec for this band
-     * @param count
-     *            the number of elements to read
+     * @param name the name of the band (primarily for logging/debugging purposes)
+     * @param in the InputStream to decode from
+     * @param codec the default Codec for this band
+     * @param count the number of elements to read
      * @return an array of decoded <code>int</code> values
-     * @throws IOException
-     *             if there is a problem reading from the underlying input
-     *             stream
-     * @throws Pack200Exception
-     *             if there is a problem decoding the value or that the value is
-     *             invalid
+     * @throws IOException if there is a problem reading from the underlying input stream
+     * @throws Pack200Exception if there is a problem decoding the value or that the value is invalid
      */
-    public int[] decodeBandInt(final String name, final InputStream in, final BHSDCodec codec,
-            final int count) throws IOException, Pack200Exception {
+    public int[] decodeBandInt(final String name, final InputStream in, final BHSDCodec codec, final int count)
+        throws IOException, Pack200Exception {
         int[] band;
         // Useful for debugging
 //        if(count > 0) {
@@ -99,34 +89,29 @@ public abstract class BandSet {
         final int first = getFirst[0];
         if (codec.isSigned() && first >= -256 && first <= -1) {
             // Non-default codec should be used
-            codecUsed = CodecEncoding.getCodec((-1 - first), header
-                    .getBandHeadersInputStream(), codec);
+            codecUsed = CodecEncoding.getCodec((-1 - first), header.getBandHeadersInputStream(), codec);
             band = codecUsed.decodeInts(count, in);
-        } else if (!codec.isSigned() && first >= codec.getL()
-                && first <= codec.getL() + 255) {
+        } else if (!codec.isSigned() && first >= codec.getL() && first <= codec.getL() + 255) {
             // Non-default codec should be used
-            codecUsed = CodecEncoding.getCodec(first - codec.getL(), header
-                    .getBandHeadersInputStream(), codec);
+            codecUsed = CodecEncoding.getCodec(first - codec.getL(), header.getBandHeadersInputStream(), codec);
             band = codecUsed.decodeInts(count, in);
         } else {
             // First element should not be discarded
             band = codec.decodeInts(count - 1, in, first);
         }
         // Useful for debugging -E options:
-        //if(!codecUsed.equals(codec)) {
-        //    int bytes = codecUsed.lastBandLength;
-        //    System.out.println(count + " " + name + " encoded with " + codecUsed + " "  + bytes);
-        //}
+        // if(!codecUsed.equals(codec)) {
+        // int bytes = codecUsed.lastBandLength;
+        // System.out.println(count + " " + name + " encoded with " + codecUsed + " " + bytes);
+        // }
         if (codecUsed instanceof PopulationCodec) {
             final PopulationCodec popCodec = (PopulationCodec) codecUsed;
             final int[] favoured = (int[]) popCodec.getFavoured().clone();
             Arrays.sort(favoured);
             for (int i = 0; i < band.length; i++) {
                 final boolean favouredValue = Arrays.binarySearch(favoured, band[i]) > -1;
-                final Codec theCodec = favouredValue ? popCodec.getFavouredCodec()
-                        : popCodec.getUnfavouredCodec();
-                if (theCodec instanceof BHSDCodec
-                        && ((BHSDCodec) theCodec).isDelta()) {
+                final Codec theCodec = favouredValue ? popCodec.getFavouredCodec() : popCodec.getUnfavouredCodec();
+                if (theCodec instanceof BHSDCodec && ((BHSDCodec) theCodec).isDelta()) {
                     final BHSDCodec bhsd = (BHSDCodec) theCodec;
                     final long cardinality = bhsd.cardinality();
                     while (band[i] > bhsd.largest()) {
@@ -144,27 +129,16 @@ public abstract class BandSet {
     /**
      * Decode a band and return an array of <code>int[]</code> values
      *
-     * @param name
-     *            the name of the band (primarily for logging/debugging
-     *            purposes)
-     * @param in
-     *            the InputStream to decode from
-     * @param defaultCodec
-     *            the default codec for this band
-     * @param counts
-     *            the numbers of elements to read for each int array within the
-     *            array to be returned
+     * @param name the name of the band (primarily for logging/debugging purposes)
+     * @param in the InputStream to decode from
+     * @param defaultCodec the default codec for this band
+     * @param counts the numbers of elements to read for each int array within the array to be returned
      * @return an array of decoded <code>int[]</code> values
-     * @throws IOException
-     *             if there is a problem reading from the underlying input
-     *             stream
-     * @throws Pack200Exception
-     *             if there is a problem decoding the value or that the value is
-     *             invalid
+     * @throws IOException if there is a problem reading from the underlying input stream
+     * @throws Pack200Exception if there is a problem decoding the value or that the value is invalid
      */
-    public int[][] decodeBandInt(final String name, final InputStream in,
-            final BHSDCodec defaultCodec, final int[] counts) throws IOException,
-            Pack200Exception {
+    public int[][] decodeBandInt(final String name, final InputStream in, final BHSDCodec defaultCodec,
+        final int[] counts) throws IOException, Pack200Exception {
         final int[][] result = new int[counts.length][];
         int totalCount = 0;
         for (int i = 0; i < counts.length; i++) {
@@ -182,31 +156,26 @@ public abstract class BandSet {
         return result;
     }
 
-    public long[] parseFlags(final String name, final InputStream in, final int count,
-            final BHSDCodec codec, final boolean hasHi) throws IOException,
-            Pack200Exception {
-        return parseFlags(name, in, new int[] { count },
-                (hasHi ? codec : null), codec)[0];
+    public long[] parseFlags(final String name, final InputStream in, final int count, final BHSDCodec codec,
+        final boolean hasHi) throws IOException, Pack200Exception {
+        return parseFlags(name, in, new int[] {count}, (hasHi ? codec : null), codec)[0];
     }
 
-    public long[][] parseFlags(final String name, final InputStream in, final int counts[],
-            final BHSDCodec codec, final boolean hasHi) throws IOException,
-            Pack200Exception {
+    public long[][] parseFlags(final String name, final InputStream in, final int counts[], final BHSDCodec codec,
+        final boolean hasHi) throws IOException, Pack200Exception {
         return parseFlags(name, in, counts, (hasHi ? codec : null), codec);
     }
 
-    public long[] parseFlags(final String name, final InputStream in, final int count,
-            final BHSDCodec hiCodec, final BHSDCodec loCodec) throws IOException,
-            Pack200Exception {
-        return parseFlags(name, in, new int[] { count }, hiCodec, loCodec)[0];
+    public long[] parseFlags(final String name, final InputStream in, final int count, final BHSDCodec hiCodec,
+        final BHSDCodec loCodec) throws IOException, Pack200Exception {
+        return parseFlags(name, in, new int[] {count}, hiCodec, loCodec)[0];
     }
 
-    public long[][] parseFlags(final String name, final InputStream in, final int counts[],
-            final BHSDCodec hiCodec, final BHSDCodec loCodec) throws IOException,
-            Pack200Exception {
+    public long[][] parseFlags(final String name, final InputStream in, final int counts[], final BHSDCodec hiCodec,
+        final BHSDCodec loCodec) throws IOException, Pack200Exception {
         final int count = counts.length;
         if (count == 0) {
-            return new long[][] { {} };
+            return new long[][] {{}};
         }
         int sum = 0;
         final long[][] result = new long[count][];
@@ -227,8 +196,7 @@ public abstract class BandSet {
         for (int i = 0; i < result.length; i++) {
             for (int j = 0; j < result[i].length; j++) {
                 if (hi != null) {
-                    result[i][j] = ((long) hi[index] << 32)
-                            | (lo[index] & 4294967295L);
+                    result[i][j] = ((long) hi[index] << 32) | (lo[index] & 4294967295L);
                 } else {
                     result[i][j] = lo[index];
                 }
@@ -239,68 +207,46 @@ public abstract class BandSet {
     }
 
     /**
-     * Parses <i>count</i> references from <code>in</code>,
-     * using <code>codec</code> to decode the values as indexes into
-     * <code>reference</code> (which is populated prior to this call). An
-     * exception is thrown if a decoded index falls outside the range
-     * [0..reference.length-1].
+     * Parses <i>count</i> references from <code>in</code>, using <code>codec</code> to decode the values as indexes
+     * into <code>reference</code> (which is populated prior to this call). An exception is thrown if a decoded index
+     * falls outside the range [0..reference.length-1].
      *
-     * @param name
-     *            the band name
-     * @param in
-     *            the input stream to read from
-     * @param codec
-     *            the BHSDCodec to use for decoding
-     * @param count
-     *            the number of references to decode
-     * @param reference
-     *            the array of values to use for the references
+     * @param name the band name
+     * @param in the input stream to read from
+     * @param codec the BHSDCodec to use for decoding
+     * @param count the number of references to decode
+     * @param reference the array of values to use for the references
      * @return Parsed references.
      *
-     * @throws IOException
-     *             if a problem occurs during reading from the underlying stream
-     * @throws Pack200Exception
-     *             if a problem occurs with an unexpected value or unsupported
-     *             Codec
+     * @throws IOException if a problem occurs during reading from the underlying stream
+     * @throws Pack200Exception if a problem occurs with an unexpected value or unsupported Codec
      */
-    public String[] parseReferences(final String name, final InputStream in,
-            final BHSDCodec codec, final int count, final String[] reference) throws IOException,
-            Pack200Exception {
-        return parseReferences(name, in, codec, new int[] { count }, reference)[0];
+    public String[] parseReferences(final String name, final InputStream in, final BHSDCodec codec, final int count,
+        final String[] reference) throws IOException, Pack200Exception {
+        return parseReferences(name, in, codec, new int[] {count}, reference)[0];
     }
 
     /**
-     * Parses <i>count</i> references from <code>in</code>,
-     * using <code>codec</code> to decode the values as indexes into
-     * <code>reference</code> (which is populated prior to this call). An
-     * exception is thrown if a decoded index falls outside the range
-     * [0..reference.length-1]. Unlike the other parseReferences, this
-     * post-processes the result into an array of results.
+     * Parses <i>count</i> references from <code>in</code>, using <code>codec</code> to decode the values as indexes
+     * into <code>reference</code> (which is populated prior to this call). An exception is thrown if a decoded index
+     * falls outside the range [0..reference.length-1]. Unlike the other parseReferences, this post-processes the result
+     * into an array of results.
      *
-     * @param name
-     *            TODO
-     * @param in
-     *            the input stream to read from
-     * @param codec
-     *            the BHSDCodec to use for decoding
-     * @param counts
-     *            the numbers of references to decode for each array entry
-     * @param reference
-     *            the array of values to use for the references
+     * @param name TODO
+     * @param in the input stream to read from
+     * @param codec the BHSDCodec to use for decoding
+     * @param counts the numbers of references to decode for each array entry
+     * @param reference the array of values to use for the references
      * @return Parsed references.
      *
-     * @throws IOException
-     *             if a problem occurs during reading from the underlying stream
-     * @throws Pack200Exception
-     *             if a problem occurs with an unexpected value or unsupported
-     *             Codec
+     * @throws IOException if a problem occurs during reading from the underlying stream
+     * @throws Pack200Exception if a problem occurs with an unexpected value or unsupported Codec
      */
-    public String[][] parseReferences(final String name, final InputStream in,
-            final BHSDCodec codec, final int counts[], final String[] reference)
-            throws IOException, Pack200Exception {
+    public String[][] parseReferences(final String name, final InputStream in, final BHSDCodec codec,
+        final int counts[], final String[] reference) throws IOException, Pack200Exception {
         final int count = counts.length;
         if (count == 0) {
-            return new String[][] { {} };
+            return new String[][] {{}};
         }
         final String[][] result = new String[count][];
         int sum = 0;
@@ -314,9 +260,8 @@ public abstract class BandSet {
         for (int i1 = 0; i1 < sum; i1++) {
             final int index = indices[i1];
             if (index < 0 || index >= reference.length) {
-                throw new Pack200Exception(
-                        "Something has gone wrong during parsing references, index = "
-                                + index + ", array size = " + reference.length);
+                throw new Pack200Exception("Something has gone wrong during parsing references, index = " + index
+                    + ", array size = " + reference.length);
             }
             result1[i1] = reference[index];
         }
@@ -332,25 +277,24 @@ public abstract class BandSet {
         return result;
     }
 
-    public CPInteger[] parseCPIntReferences(final String name, final InputStream in,
-            final BHSDCodec codec, final int count) throws IOException, Pack200Exception {
+    public CPInteger[] parseCPIntReferences(final String name, final InputStream in, final BHSDCodec codec,
+        final int count) throws IOException, Pack200Exception {
         final int[] reference = segment.getCpBands().getCpInt();
         final int[] indices = decodeBandInt(name, in, codec, count);
         final CPInteger[] result = new CPInteger[indices.length];
         for (int i1 = 0; i1 < count; i1++) {
             final int index = indices[i1];
             if (index < 0 || index >= reference.length) {
-                throw new Pack200Exception(
-                        "Something has gone wrong during parsing references, index = "
-                                + index + ", array size = " + reference.length);
+                throw new Pack200Exception("Something has gone wrong during parsing references, index = " + index
+                    + ", array size = " + reference.length);
             }
             result[i1] = segment.getCpBands().cpIntegerValue(index);
         }
         return result;
     }
 
-    public CPDouble[] parseCPDoubleReferences(final String name, final InputStream in,
-            final BHSDCodec codec, final int count) throws IOException, Pack200Exception {
+    public CPDouble[] parseCPDoubleReferences(final String name, final InputStream in, final BHSDCodec codec,
+        final int count) throws IOException, Pack200Exception {
         final int[] indices = decodeBandInt(name, in, codec, count);
         final CPDouble[] result = new CPDouble[indices.length];
         for (int i1 = 0; i1 < count; i1++) {
@@ -360,8 +304,8 @@ public abstract class BandSet {
         return result;
     }
 
-    public CPFloat[] parseCPFloatReferences(final String name, final InputStream in,
-            final BHSDCodec codec, final int count) throws IOException, Pack200Exception {
+    public CPFloat[] parseCPFloatReferences(final String name, final InputStream in, final BHSDCodec codec,
+        final int count) throws IOException, Pack200Exception {
         final int[] indices = decodeBandInt(name, in, codec, count);
         final CPFloat[] result = new CPFloat[indices.length];
         for (int i1 = 0; i1 < count; i1++) {
@@ -371,25 +315,24 @@ public abstract class BandSet {
         return result;
     }
 
-    public CPLong[] parseCPLongReferences(final String name, final InputStream in,
-            final BHSDCodec codec, final int count) throws IOException, Pack200Exception {
+    public CPLong[] parseCPLongReferences(final String name, final InputStream in, final BHSDCodec codec,
+        final int count) throws IOException, Pack200Exception {
         final long[] reference = segment.getCpBands().getCpLong();
         final int[] indices = decodeBandInt(name, in, codec, count);
         final CPLong[] result = new CPLong[indices.length];
         for (int i1 = 0; i1 < count; i1++) {
             final int index = indices[i1];
             if (index < 0 || index >= reference.length) {
-                throw new Pack200Exception(
-                        "Something has gone wrong during parsing references, index = "
-                                + index + ", array size = " + reference.length);
+                throw new Pack200Exception("Something has gone wrong during parsing references, index = " + index
+                    + ", array size = " + reference.length);
             }
             result[i1] = segment.getCpBands().cpLongValue(index);
         }
         return result;
     }
 
-    public CPUTF8[] parseCPUTF8References(final String name, final InputStream in,
-            final BHSDCodec codec, final int count) throws IOException, Pack200Exception {
+    public CPUTF8[] parseCPUTF8References(final String name, final InputStream in, final BHSDCodec codec,
+        final int count) throws IOException, Pack200Exception {
         final int[] indices = decodeBandInt(name, in, codec, count);
         final CPUTF8[] result = new CPUTF8[indices.length];
         for (int i1 = 0; i1 < count; i1++) {
@@ -399,8 +342,8 @@ public abstract class BandSet {
         return result;
     }
 
-    public CPUTF8[][] parseCPUTF8References(final String name, final InputStream in,
-            final BHSDCodec codec, final int[] counts) throws IOException, Pack200Exception {
+    public CPUTF8[][] parseCPUTF8References(final String name, final InputStream in, final BHSDCodec codec,
+        final int[] counts) throws IOException, Pack200Exception {
         final CPUTF8[][] result = new CPUTF8[counts.length][];
         int sum = 0;
         for (int i = 0; i < counts.length; i++) {
@@ -424,8 +367,8 @@ public abstract class BandSet {
         return result;
     }
 
-    public CPString[] parseCPStringReferences(final String name, final InputStream in,
-            final BHSDCodec codec, final int count) throws IOException, Pack200Exception {
+    public CPString[] parseCPStringReferences(final String name, final InputStream in, final BHSDCodec codec,
+        final int count) throws IOException, Pack200Exception {
         final int[] indices = decodeBandInt(name, in, codec, count);
         final CPString[] result = new CPString[indices.length];
         for (int i1 = 0; i1 < count; i1++) {
@@ -435,9 +378,8 @@ public abstract class BandSet {
         return result;
     }
 
-    public CPInterfaceMethodRef[] parseCPInterfaceMethodRefReferences(
-            final String name, final InputStream in, final BHSDCodec codec, final int count)
-            throws IOException, Pack200Exception {
+    public CPInterfaceMethodRef[] parseCPInterfaceMethodRefReferences(final String name, final InputStream in,
+        final BHSDCodec codec, final int count) throws IOException, Pack200Exception {
         final CpBands cpBands = segment.getCpBands();
         final int[] indices = decodeBandInt(name, in, codec, count);
         final CPInterfaceMethodRef[] result = new CPInterfaceMethodRef[indices.length];
@@ -448,9 +390,8 @@ public abstract class BandSet {
         return result;
     }
 
-    public CPMethodRef[] parseCPMethodRefReferences(final String name,
-            final InputStream in, final BHSDCodec codec, final int count) throws IOException,
-            Pack200Exception {
+    public CPMethodRef[] parseCPMethodRefReferences(final String name, final InputStream in, final BHSDCodec codec,
+        final int count) throws IOException, Pack200Exception {
         final CpBands cpBands = segment.getCpBands();
         final int[] indices = decodeBandInt(name, in, codec, count);
         final CPMethodRef[] result = new CPMethodRef[indices.length];
@@ -461,8 +402,8 @@ public abstract class BandSet {
         return result;
     }
 
-    public CPFieldRef[] parseCPFieldRefReferences(final String name, final InputStream in,
-            final BHSDCodec codec, final int count) throws IOException, Pack200Exception {
+    public CPFieldRef[] parseCPFieldRefReferences(final String name, final InputStream in, final BHSDCodec codec,
+        final int count) throws IOException, Pack200Exception {
         final CpBands cpBands = segment.getCpBands();
         final int[] indices = decodeBandInt(name, in, codec, count);
         final CPFieldRef[] result = new CPFieldRef[indices.length];
@@ -473,9 +414,8 @@ public abstract class BandSet {
         return result;
     }
 
-    public CPNameAndType[] parseCPDescriptorReferences(final String name,
-            final InputStream in, final BHSDCodec codec, final int count) throws IOException,
-            Pack200Exception {
+    public CPNameAndType[] parseCPDescriptorReferences(final String name, final InputStream in, final BHSDCodec codec,
+        final int count) throws IOException, Pack200Exception {
         final CpBands cpBands = segment.getCpBands();
         final int[] indices = decodeBandInt(name, in, codec, count);
         final CPNameAndType[] result = new CPNameAndType[indices.length];
@@ -486,8 +426,8 @@ public abstract class BandSet {
         return result;
     }
 
-    public CPUTF8[] parseCPSignatureReferences(final String name, final InputStream in,
-            final BHSDCodec codec, final int count) throws IOException, Pack200Exception {
+    public CPUTF8[] parseCPSignatureReferences(final String name, final InputStream in, final BHSDCodec codec,
+        final int count) throws IOException, Pack200Exception {
         final int[] indices = decodeBandInt(name, in, codec, count);
         final CPUTF8[] result = new CPUTF8[indices.length];
         for (int i1 = 0; i1 < count; i1++) {
@@ -497,8 +437,8 @@ public abstract class BandSet {
         return result;
     }
 
-    protected CPUTF8[][] parseCPSignatureReferences(final String name, final InputStream in,
-            final BHSDCodec codec, final int[] counts) throws IOException, Pack200Exception {
+    protected CPUTF8[][] parseCPSignatureReferences(final String name, final InputStream in, final BHSDCodec codec,
+        final int[] counts) throws IOException, Pack200Exception {
         final CPUTF8[][] result = new CPUTF8[counts.length][];
         int sum = 0;
         for (int i = 0; i < counts.length; i++) {
@@ -522,8 +462,8 @@ public abstract class BandSet {
         return result;
     }
 
-    public CPClass[] parseCPClassReferences(final String name, final InputStream in,
-            final BHSDCodec codec, final int count) throws IOException, Pack200Exception {
+    public CPClass[] parseCPClassReferences(final String name, final InputStream in, final BHSDCodec codec,
+        final int count) throws IOException, Pack200Exception {
         final int[] indices = decodeBandInt(name, in, codec, count);
         final CPClass[] result = new CPClass[indices.length];
         for (int i1 = 0; i1 < count; i1++) {
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/BcBands.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/BcBands.java
index 88ee6ca..cfd46d1 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/BcBands.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/BcBands.java
@@ -87,8 +87,7 @@ public class BcBands extends BandSet {
     @Override
     public void read(final InputStream in) throws IOException, Pack200Exception {
 
-        final AttributeLayoutMap attributeDefinitionMap = segment
-                .getAttrDefinitionBands().getAttributeDefinitionMap();
+        final AttributeLayoutMap attributeDefinitionMap = segment.getAttrDefinitionBands().getAttributeDefinitionMap();
         final int classCount = header.getClassCount();
         final long[][] methodFlags = segment.getClassBands().getMethodFlags();
 
@@ -114,12 +113,10 @@ public class BcBands extends BandSet {
         int bcEscCount = 0;
         int bcEscRefCount = 0;
 
-        final AttributeLayout abstractModifier = attributeDefinitionMap
-                .getAttributeLayout(AttributeLayout.ACC_ABSTRACT,
-                        AttributeLayout.CONTEXT_METHOD);
-        final AttributeLayout nativeModifier = attributeDefinitionMap
-                .getAttributeLayout(AttributeLayout.ACC_NATIVE,
-                        AttributeLayout.CONTEXT_METHOD);
+        final AttributeLayout abstractModifier = attributeDefinitionMap.getAttributeLayout(AttributeLayout.ACC_ABSTRACT,
+            AttributeLayout.CONTEXT_METHOD);
+        final AttributeLayout nativeModifier = attributeDefinitionMap.getAttributeLayout(AttributeLayout.ACC_NATIVE,
+            AttributeLayout.CONTEXT_METHOD);
 
         methodByteCodePacked = new byte[classCount][][];
         int bcParsed = 0;
@@ -131,8 +128,7 @@ public class BcBands extends BandSet {
             methodByteCodePacked[c] = new byte[numberOfMethods][];
             for (int m = 0; m < numberOfMethods; m++) {
                 final long methodFlag = methodFlags[c][m];
-                if (!abstractModifier.matches(methodFlag)
-                        && !nativeModifier.matches(methodFlag)) {
+                if (!abstractModifier.matches(methodFlag) && !nativeModifier.matches(methodFlag)) {
                     final ByteArrayOutputStream codeBytes = new ByteArrayOutputStream();
                     byte code;
                     while ((code = (byte) (0xff & in.read())) != -1) {
@@ -262,17 +258,12 @@ public class BcBands extends BandSet {
                             if (nextInstruction == 132) { // iinc
                                 bcLocalCount++;
                                 bcShortCount++;
-                            } else if (endsWithLoad(nextInstruction)
-                                    || endsWithStore(nextInstruction)
-                                    || nextInstruction == 169) {
+                            } else if (endsWithLoad(nextInstruction) || endsWithStore(nextInstruction)
+                                || nextInstruction == 169) {
                                 bcLocalCount++;
                             } else {
-                                segment
-                                        .log(
-                                                Segment.LOG_LEVEL_VERBOSE,
-                                                "Found unhandled "
-                                                        + ByteCode
-                                                                .getByteCode(nextInstruction));
+                                segment.log(Segment.LOG_LEVEL_VERBOSE,
+                                    "Found unhandled " + ByteCode.getByteCode(nextInstruction));
                             }
                             i++;
                             break;
@@ -288,8 +279,7 @@ public class BcBands extends BandSet {
                             bcEscCount++;
                             break;
                         default:
-                            if (endsWithLoad(codePacked)
-                                    || endsWithStore(codePacked)) {
+                            if (endsWithLoad(codePacked) || endsWithStore(codePacked)) {
                                 bcLocalCount++;
                             } else if (startsWithIf(codePacked)) {
                                 bcLabelCount++;
@@ -300,20 +290,17 @@ public class BcBands extends BandSet {
             }
         }
         // other bytecode bands
-        bcCaseCount = decodeBandInt("bc_case_count", in, Codec.UNSIGNED5,
-                bcCaseCountCount);
+        bcCaseCount = decodeBandInt("bc_case_count", in, Codec.UNSIGNED5, bcCaseCountCount);
         int bcCaseValueCount = 0;
         for (int i = 0; i < bcCaseCount.length; i++) {
-            final boolean isTableSwitch = ((Boolean) switchIsTableSwitch.get(i))
-                    .booleanValue();
+            final boolean isTableSwitch = ((Boolean) switchIsTableSwitch.get(i)).booleanValue();
             if (isTableSwitch) {
                 bcCaseValueCount += 1;
             } else {
                 bcCaseValueCount += bcCaseCount[i];
             }
         }
-        bcCaseValue = decodeBandInt("bc_case_value", in, Codec.DELTA5,
-                bcCaseValueCount);
+        bcCaseValue = decodeBandInt("bc_case_value", in, Codec.DELTA5, bcCaseValueCount);
         // Every case value needs a label. We weren't able to count these
         // above, because we didn't know how many cases there were.
         // Have to correct it now.
@@ -325,36 +312,21 @@ public class BcBands extends BandSet {
         bcLocal = decodeBandInt("bc_local", in, Codec.UNSIGNED5, bcLocalCount);
         bcLabel = decodeBandInt("bc_label", in, Codec.BRANCH5, bcLabelCount);
         bcIntRef = decodeBandInt("bc_intref", in, Codec.DELTA5, bcIntRefCount);
-        bcFloatRef = decodeBandInt("bc_floatref", in, Codec.DELTA5,
-                bcFloatRefCount);
-        bcLongRef = decodeBandInt("bc_longref", in, Codec.DELTA5,
-                bcLongRefCount);
-        bcDoubleRef = decodeBandInt("bc_doubleref", in, Codec.DELTA5,
-                bcDoubleRefCount);
-        bcStringRef = decodeBandInt("bc_stringref", in, Codec.DELTA5,
-                bcStringRefCount);
-        bcClassRef = decodeBandInt("bc_classref", in, Codec.UNSIGNED5,
-                bcClassRefCount);
-        bcFieldRef = decodeBandInt("bc_fieldref", in, Codec.DELTA5,
-                bcFieldRefCount);
-        bcMethodRef = decodeBandInt("bc_methodref", in, Codec.UNSIGNED5,
-                bcMethodRefCount);
-        bcIMethodRef = decodeBandInt("bc_imethodref", in, Codec.DELTA5,
-                bcIMethodRefCount);
-        bcThisField = decodeBandInt("bc_thisfield", in, Codec.UNSIGNED5,
-                bcThisFieldCount);
-        bcSuperField = decodeBandInt("bc_superfield", in, Codec.UNSIGNED5,
-                bcSuperFieldCount);
-        bcThisMethod = decodeBandInt("bc_thismethod", in, Codec.UNSIGNED5,
-                bcThisMethodCount);
-        bcSuperMethod = decodeBandInt("bc_supermethod", in, Codec.UNSIGNED5,
-                bcSuperMethodCount);
-        bcInitRef = decodeBandInt("bc_initref", in, Codec.UNSIGNED5,
-                bcInitRefCount);
-        bcEscRef = decodeBandInt("bc_escref", in, Codec.UNSIGNED5,
-                bcEscRefCount);
-        bcEscRefSize = decodeBandInt("bc_escrefsize", in, Codec.UNSIGNED5,
-                bcEscRefCount);
+        bcFloatRef = decodeBandInt("bc_floatref", in, Codec.DELTA5, bcFloatRefCount);
+        bcLongRef = decodeBandInt("bc_longref", in, Codec.DELTA5, bcLongRefCount);
+        bcDoubleRef = decodeBandInt("bc_doubleref", in, Codec.DELTA5, bcDoubleRefCount);
+        bcStringRef = decodeBandInt("bc_stringref", in, Codec.DELTA5, bcStringRefCount);
+        bcClassRef = decodeBandInt("bc_classref", in, Codec.UNSIGNED5, bcClassRefCount);
+        bcFieldRef = decodeBandInt("bc_fieldref", in, Codec.DELTA5, bcFieldRefCount);
+        bcMethodRef = decodeBandInt("bc_methodref", in, Codec.UNSIGNED5, bcMethodRefCount);
+        bcIMethodRef = decodeBandInt("bc_imethodref", in, Codec.DELTA5, bcIMethodRefCount);
+        bcThisField = decodeBandInt("bc_thisfield", in, Codec.UNSIGNED5, bcThisFieldCount);
+        bcSuperField = decodeBandInt("bc_superfield", in, Codec.UNSIGNED5, bcSuperFieldCount);
+        bcThisMethod = decodeBandInt("bc_thismethod", in, Codec.UNSIGNED5, bcThisMethodCount);
+        bcSuperMethod = decodeBandInt("bc_supermethod", in, Codec.UNSIGNED5, bcSuperMethodCount);
+        bcInitRef = decodeBandInt("bc_initref", in, Codec.UNSIGNED5, bcInitRefCount);
+        bcEscRef = decodeBandInt("bc_escref", in, Codec.UNSIGNED5, bcEscRefCount);
+        bcEscRefSize = decodeBandInt("bc_escrefsize", in, Codec.UNSIGNED5, bcEscRefCount);
         bcEscSize = decodeBandInt("bc_escsize", in, Codec.UNSIGNED5, bcEscCount);
         bcEscByte = decodeBandInt("bc_escbyte", in, Codec.BYTE1, bcEscSize);
     }
@@ -365,50 +337,37 @@ public class BcBands extends BandSet {
         final long[][] methodFlags = segment.getClassBands().getMethodFlags();
         final int[] codeMaxNALocals = segment.getClassBands().getCodeMaxNALocals();
         final int[] codeMaxStack = segment.getClassBands().getCodeMaxStack();
-        final ArrayList[][] methodAttributes = segment.getClassBands()
-                .getMethodAttributes();
+        final ArrayList[][] methodAttributes = segment.getClassBands().getMethodAttributes();
         final String[][] methodDescr = segment.getClassBands().getMethodDescr();
 
-        final AttributeLayoutMap attributeDefinitionMap = segment
-                .getAttrDefinitionBands().getAttributeDefinitionMap();
+        final AttributeLayoutMap attributeDefinitionMap = segment.getAttrDefinitionBands().getAttributeDefinitionMap();
 
-        final AttributeLayout abstractModifier = attributeDefinitionMap
-                .getAttributeLayout(AttributeLayout.ACC_ABSTRACT,
-                        AttributeLayout.CONTEXT_METHOD);
-        final AttributeLayout nativeModifier = attributeDefinitionMap
-                .getAttributeLayout(AttributeLayout.ACC_NATIVE,
-                        AttributeLayout.CONTEXT_METHOD);
-        final AttributeLayout staticModifier = attributeDefinitionMap
-                .getAttributeLayout(AttributeLayout.ACC_STATIC,
-                        AttributeLayout.CONTEXT_METHOD);
+        final AttributeLayout abstractModifier = attributeDefinitionMap.getAttributeLayout(AttributeLayout.ACC_ABSTRACT,
+            AttributeLayout.CONTEXT_METHOD);
+        final AttributeLayout nativeModifier = attributeDefinitionMap.getAttributeLayout(AttributeLayout.ACC_NATIVE,
+            AttributeLayout.CONTEXT_METHOD);
+        final AttributeLayout staticModifier = attributeDefinitionMap.getAttributeLayout(AttributeLayout.ACC_STATIC,
+            AttributeLayout.CONTEXT_METHOD);
 
         final int[] wideByteCodeArray = new int[wideByteCodes.size()];
         for (int index = 0; index < wideByteCodeArray.length; index++) {
-            wideByteCodeArray[index] = ((Integer) wideByteCodes.get(index))
-                    .intValue();
+            wideByteCodeArray[index] = ((Integer) wideByteCodes.get(index)).intValue();
         }
-        final OperandManager operandManager = new OperandManager(bcCaseCount,
-                bcCaseValue, bcByte, bcShort, bcLocal, bcLabel, bcIntRef,
-                bcFloatRef, bcLongRef, bcDoubleRef, bcStringRef, bcClassRef,
-                bcFieldRef, bcMethodRef, bcIMethodRef, bcThisField,
-                bcSuperField, bcThisMethod, bcSuperMethod, bcInitRef,
-                wideByteCodeArray);
+        final OperandManager operandManager = new OperandManager(bcCaseCount, bcCaseValue, bcByte, bcShort, bcLocal,
+            bcLabel, bcIntRef, bcFloatRef, bcLongRef, bcDoubleRef, bcStringRef, bcClassRef, bcFieldRef, bcMethodRef,
+            bcIMethodRef, bcThisField, bcSuperField, bcThisMethod, bcSuperMethod, bcInitRef, wideByteCodeArray);
         operandManager.setSegment(segment);
 
         int i = 0;
-        final ArrayList orderedCodeAttributes = segment.getClassBands()
-                .getOrderedCodeAttributes();
+        final ArrayList orderedCodeAttributes = segment.getClassBands().getOrderedCodeAttributes();
         int codeAttributeIndex = 0;
 
         // Exception table fields
         final int[] handlerCount = segment.getClassBands().getCodeHandlerCount();
-        final int[][] handlerStartPCs = segment.getClassBands()
-                .getCodeHandlerStartP();
+        final int[][] handlerStartPCs = segment.getClassBands().getCodeHandlerStartP();
         final int[][] handlerEndPCs = segment.getClassBands().getCodeHandlerEndPO();
-        final int[][] handlerCatchPCs = segment.getClassBands()
-                .getCodeHandlerCatchPO();
-        final int[][] handlerClassTypes = segment.getClassBands()
-                .getCodeHandlerClassRCN();
+        final int[][] handlerCatchPCs = segment.getClassBands().getCodeHandlerCatchPO();
+        final int[][] handlerClassTypes = segment.getClassBands().getCodeHandlerClassRCN();
 
         final boolean allCodeHasFlags = segment.getSegmentHeader().getOptions().hasAllCodeFlags();
         final boolean[] codeHasFlags = segment.getClassBands().getCodeHasAttributes();
@@ -417,22 +376,17 @@ public class BcBands extends BandSet {
             final int numberOfMethods = methodFlags[c].length;
             for (int m = 0; m < numberOfMethods; m++) {
                 final long methodFlag = methodFlags[c][m];
-                if (!abstractModifier.matches(methodFlag)
-                        && !nativeModifier.matches(methodFlag)) {
+                if (!abstractModifier.matches(methodFlag) && !nativeModifier.matches(methodFlag)) {
                     final int maxStack = codeMaxStack[i];
                     int maxLocal = codeMaxNALocals[i];
-                    if (!staticModifier.matches(methodFlag))
-                     {
+                    if (!staticModifier.matches(methodFlag)) {
                         maxLocal++; // one for 'this' parameter
                     }
                     // I believe this has to take wide arguments into account
-                    maxLocal += SegmentUtils
-                            .countInvokeInterfaceArgs(methodDescr[c][m]);
+                    maxLocal += SegmentUtils.countInvokeInterfaceArgs(methodDescr[c][m]);
                     final String[] cpClass = segment.getCpBands().getCpClass();
-                    operandManager.setCurrentClass(cpClass[segment
-                            .getClassBands().getClassThisInts()[c]]);
-                    operandManager.setSuperClass(cpClass[segment
-                            .getClassBands().getClassSuperInts()[c]]);
+                    operandManager.setCurrentClass(cpClass[segment.getClassBands().getClassThisInts()[c]]);
+                    operandManager.setSuperClass(cpClass[segment.getClassBands().getClassSuperInts()[c]]);
                     final List exceptionTable = new ArrayList();
                     if (handlerCount != null) {
                         for (int j = 0; j < handlerCount[i]; j++) {
@@ -442,27 +396,25 @@ public class BcBands extends BandSet {
                                 // The handlerClass will be null if the
                                 // catch is a finally (that is, the
                                 // exception table catch_type should be 0
-                                cpHandlerClass = segment.getCpBands()
-                                        .cpClassValue(handlerClass);
+                                cpHandlerClass = segment.getCpBands().cpClassValue(handlerClass);
                             }
-                            final ExceptionTableEntry entry = new ExceptionTableEntry(
-                                    handlerStartPCs[i][j], handlerEndPCs[i][j],
-                                    handlerCatchPCs[i][j], cpHandlerClass);
+                            final ExceptionTableEntry entry = new ExceptionTableEntry(handlerStartPCs[i][j],
+                                handlerEndPCs[i][j], handlerCatchPCs[i][j], cpHandlerClass);
                             exceptionTable.add(entry);
                         }
                     }
-                    final CodeAttribute codeAttr = new CodeAttribute(maxStack,
-                            maxLocal, methodByteCodePacked[c][m], segment,
-                            operandManager, exceptionTable);
+                    final CodeAttribute codeAttr = new CodeAttribute(maxStack, maxLocal, methodByteCodePacked[c][m],
+                        segment, operandManager, exceptionTable);
                     final ArrayList methodAttributesList = methodAttributes[c][m];
                     // Make sure we add the code attribute in the right place
                     int indexForCodeAttr = 0;
                     for (int index = 0; index < methodAttributesList.size(); index++) {
                         final Attribute attribute = (Attribute) methodAttributesList.get(index);
-                        if(!(attribute instanceof NewAttribute) || (((NewAttribute)attribute).getLayoutIndex() >= 15)) {
+                        if (!(attribute instanceof NewAttribute)
+                            || (((NewAttribute) attribute).getLayoutIndex() >= 15)) {
                             break;
                         }
-                        indexForCodeAttr ++;
+                        indexForCodeAttr++;
                     }
                     methodAttributesList.add(indexForCodeAttr, codeAttr);
                     codeAttr.renumber(codeAttr.byteCodeOffsets);
@@ -470,20 +422,17 @@ public class BcBands extends BandSet {
                     if (allCodeHasFlags) {
                         currentAttributes = (List) orderedCodeAttributes.get(i);
                     } else if (codeHasFlags[i]) {
-                        currentAttributes = (List) orderedCodeAttributes
-                                .get(codeAttributeIndex);
+                        currentAttributes = (List) orderedCodeAttributes.get(codeAttributeIndex);
                         codeAttributeIndex++;
                     } else {
                         currentAttributes = Collections.EMPTY_LIST;
                     }
                     for (int index = 0; index < currentAttributes.size(); index++) {
-                        final Attribute currentAttribute = (Attribute) currentAttributes
-                                .get(index);
+                        final Attribute currentAttribute = (Attribute) currentAttributes.get(index);
                         codeAttr.addAttribute(currentAttribute);
                         // Fix up the line numbers if needed
                         if (currentAttribute.hasBCIRenumbering()) {
-                            ((BCIRenumberedAttribute) currentAttribute)
-                                    .renumber(codeAttr.byteCodeOffsets);
+                            ((BCIRenumberedAttribute) currentAttribute).renumber(codeAttr.byteCodeOffsets);
                         }
                     }
                     i++;
@@ -493,8 +442,7 @@ public class BcBands extends BandSet {
     }
 
     private boolean startsWithIf(final int codePacked) {
-        return (codePacked >= 153 && codePacked <= 166) || (codePacked == 198)
-                || (codePacked == 199);
+        return (codePacked >= 153 && codePacked <= 166) || (codePacked == 198) || (codePacked == 199);
     }
 
     private boolean endsWithLoad(final int codePacked) {
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/ClassBands.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/ClassBands.java
index 9c82f6c..579140f 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/ClassBands.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/ClassBands.java
@@ -114,15 +114,14 @@ public class ClassBands extends BandSet {
 
     private int[][] codeHandlerClassRCN;
 
-    private boolean [] codeHasAttributes;
+    private boolean[] codeHasAttributes;
 
     /**
      * @param segment TODO
      */
     public ClassBands(final Segment segment) {
         super(segment);
-        this.attrMap = segment.getAttrDefinitionBands()
-                .getAttributeDefinitionMap();
+        this.attrMap = segment.getAttrDefinitionBands().getAttributeDefinitionMap();
         this.cpBands = segment.getCpBands();
         this.classCount = header.getClassCount();
         this.options = header.getOptions();
@@ -139,16 +138,11 @@ public class ClassBands extends BandSet {
         final int classCount = header.getClassCount();
         classThisInts = decodeBandInt("class_this", in, Codec.DELTA5, classCount);
         classThis = getReferences(classThisInts, cpBands.getCpClass());
-        classSuperInts = decodeBandInt("class_super", in, Codec.DELTA5,
-                classCount);
-        final int[] classInterfaceLengths = decodeBandInt("class_interface_count",
-                in, Codec.DELTA5, classCount);
-        classInterfacesInts = decodeBandInt("class_interface", in, Codec.DELTA5,
-                classInterfaceLengths);
-        classFieldCount = decodeBandInt("class_field_count", in, Codec.DELTA5,
-                classCount);
-        classMethodCount = decodeBandInt("class_method_count", in,
-                Codec.DELTA5, classCount);
+        classSuperInts = decodeBandInt("class_super", in, Codec.DELTA5, classCount);
+        final int[] classInterfaceLengths = decodeBandInt("class_interface_count", in, Codec.DELTA5, classCount);
+        classInterfacesInts = decodeBandInt("class_interface", in, Codec.DELTA5, classInterfaceLengths);
+        classFieldCount = decodeBandInt("class_field_count", in, Codec.DELTA5, classCount);
+        classMethodCount = decodeBandInt("class_method_count", in, Codec.DELTA5, classCount);
         parseFieldBands(in);
         parseMethodBands(in);
         parseClassAttrBands(in);
@@ -161,27 +155,19 @@ public class ClassBands extends BandSet {
 
     }
 
-    private void parseFieldBands(final InputStream in) throws IOException,
-            Pack200Exception {
-        fieldDescrInts = decodeBandInt("field_descr", in, Codec.DELTA5,
-                classFieldCount);
+    private void parseFieldBands(final InputStream in) throws IOException, Pack200Exception {
+        fieldDescrInts = decodeBandInt("field_descr", in, Codec.DELTA5, classFieldCount);
         fieldDescr = getReferences(fieldDescrInts, cpBands.getCpDescriptor());
         parseFieldAttrBands(in);
     }
 
-    private void parseFieldAttrBands(final InputStream in) throws IOException,
-            Pack200Exception {
-        fieldFlags = parseFlags("field_flags", in, classFieldCount,
-                Codec.UNSIGNED5, options.hasFieldFlagsHi());
+    private void parseFieldAttrBands(final InputStream in) throws IOException, Pack200Exception {
+        fieldFlags = parseFlags("field_flags", in, classFieldCount, Codec.UNSIGNED5, options.hasFieldFlagsHi());
         final int fieldAttrCount = SegmentUtils.countBit16(fieldFlags);
-        final int[] fieldAttrCounts = decodeBandInt("field_attr_count", in,
-                Codec.UNSIGNED5, fieldAttrCount);
-        final int[][] fieldAttrIndexes = decodeBandInt("field_attr_indexes", in,
-                Codec.UNSIGNED5, fieldAttrCounts);
-        final int callCount = getCallCount(fieldAttrIndexes, fieldFlags,
-                AttributeLayout.CONTEXT_FIELD);
-        final int[] fieldAttrCalls = decodeBandInt("field_attr_calls", in,
-                Codec.UNSIGNED5, callCount);
+        final int[] fieldAttrCounts = decodeBandInt("field_attr_count", in, Codec.UNSIGNED5, fieldAttrCount);
+        final int[][] fieldAttrIndexes = decodeBandInt("field_attr_indexes", in, Codec.UNSIGNED5, fieldAttrCounts);
+        final int callCount = getCallCount(fieldAttrIndexes, fieldFlags, AttributeLayout.CONTEXT_FIELD);
+        final int[] fieldAttrCalls = decodeBandInt("field_attr_calls", in, Codec.UNSIGNED5, callCount);
 
         // Assign empty field attributes
         fieldAttributes = new ArrayList[classCount][];
@@ -192,26 +178,21 @@ public class ClassBands extends BandSet {
             }
         }
 
-        final AttributeLayout constantValueLayout = attrMap.getAttributeLayout(
-                "ConstantValue", AttributeLayout.CONTEXT_FIELD);
-        final int constantCount = SegmentUtils.countMatches(fieldFlags,
-                constantValueLayout);
-        final int[] field_constantValue_KQ = decodeBandInt("field_ConstantValue_KQ",
-                in, Codec.UNSIGNED5, constantCount);
+        final AttributeLayout constantValueLayout = attrMap.getAttributeLayout("ConstantValue",
+            AttributeLayout.CONTEXT_FIELD);
+        final int constantCount = SegmentUtils.countMatches(fieldFlags, constantValueLayout);
+        final int[] field_constantValue_KQ = decodeBandInt("field_ConstantValue_KQ", in, Codec.UNSIGNED5,
+            constantCount);
         int constantValueIndex = 0;
 
-        final AttributeLayout signatureLayout = attrMap.getAttributeLayout(
-                AttributeLayout.ATTRIBUTE_SIGNATURE,
-                AttributeLayout.CONTEXT_FIELD);
-        final int signatureCount = SegmentUtils.countMatches(fieldFlags,
-                signatureLayout);
-        final int[] fieldSignatureRS = decodeBandInt("field_Signature_RS", in,
-                Codec.UNSIGNED5, signatureCount);
+        final AttributeLayout signatureLayout = attrMap.getAttributeLayout(AttributeLayout.ATTRIBUTE_SIGNATURE,
+            AttributeLayout.CONTEXT_FIELD);
+        final int signatureCount = SegmentUtils.countMatches(fieldFlags, signatureLayout);
+        final int[] fieldSignatureRS = decodeBandInt("field_Signature_RS", in, Codec.UNSIGNED5, signatureCount);
         int signatureIndex = 0;
 
-        final AttributeLayout deprecatedLayout = attrMap.getAttributeLayout(
-                AttributeLayout.ATTRIBUTE_DEPRECATED,
-                AttributeLayout.CONTEXT_FIELD);
+        final AttributeLayout deprecatedLayout = attrMap.getAttributeLayout(AttributeLayout.ATTRIBUTE_DEPRECATED,
+            AttributeLayout.CONTEXT_FIELD);
 
         for (int i = 0; i < classCount; i++) {
             for (int j = 0; j < fieldFlags[i].length; j++) {
@@ -225,14 +206,11 @@ public class ClassBands extends BandSet {
                     final String desc = fieldDescr[i][j];
                     final int colon = desc.indexOf(':');
                     String type = desc.substring(colon + 1);
-                    if (type.equals("B") || type.equals("S")
-                            || type.equals("C") || type.equals("Z")) {
+                    if (type.equals("B") || type.equals("S") || type.equals("C") || type.equals("Z")) {
                         type = "I";
                     }
-                    final ClassFileEntry value = constantValueLayout.getValue(result,
-                            type, cpBands.getConstantPool());
-                    fieldAttributes[i][j]
-                            .add(new ConstantValueAttribute(value));
+                    final ClassFileEntry value = constantValueLayout.getValue(result, type, cpBands.getConstantPool());
+                    fieldAttributes[i][j].add(new ConstantValueAttribute(value));
                     constantValueIndex++;
                 }
                 if (signatureLayout.matches(flag)) {
@@ -241,8 +219,7 @@ public class ClassBands extends BandSet {
                     final String desc = fieldDescr[i][j];
                     final int colon = desc.indexOf(':');
                     final String type = desc.substring(colon + 1);
-                    final CPUTF8 value = (CPUTF8) signatureLayout.getValue(result,
-                            type, cpBands.getConstantPool());
+                    final CPUTF8 value = (CPUTF8) signatureLayout.getValue(result, type, cpBands.getConstantPool());
                     fieldAttributes[i][j].add(new SignatureAttribute(value));
                     signatureIndex++;
                 }
@@ -258,8 +235,7 @@ public class ClassBands extends BandSet {
         final int[] counts = new int[limit + 1];
         final List[] otherAttributes = new List[limit + 1];
         for (int i = 0; i < limit; i++) {
-            final AttributeLayout layout = attrMap.getAttributeLayout(i,
-                    AttributeLayout.CONTEXT_FIELD);
+            final AttributeLayout layout = attrMap.getAttributeLayout(i, AttributeLayout.CONTEXT_FIELD);
             if (layout != null && !(layout.isDefaultLayout())) {
                 otherLayouts[i] = layout;
                 counts[i] = SegmentUtils.countMatches(fieldFlags, layout);
@@ -267,15 +243,12 @@ public class ClassBands extends BandSet {
         }
         for (int i = 0; i < counts.length; i++) {
             if (counts[i] > 0) {
-                final NewAttributeBands bands = attrMap
-                        .getAttributeBands(otherLayouts[i]);
+                final NewAttributeBands bands = attrMap.getAttributeBands(otherLayouts[i]);
                 otherAttributes[i] = bands.parseAttributes(in, counts[i]);
-                final int numBackwardsCallables = otherLayouts[i]
-                        .numBackwardsCallables();
+                final int numBackwardsCallables = otherLayouts[i].numBackwardsCallables();
                 if (numBackwardsCallables > 0) {
                     final int[] backwardsCalls = new int[numBackwardsCallables];
-                    System.arraycopy(fieldAttrCalls, backwardsCallIndex,
-                            backwardsCalls, 0, numBackwardsCallables);
+                    System.arraycopy(fieldAttrCalls, backwardsCallIndex, backwardsCalls, 0, numBackwardsCallables);
                     bands.setBackwardsCalls(backwardsCalls);
                     backwardsCallIndex += numBackwardsCallables;
                 }
@@ -288,10 +261,9 @@ public class ClassBands extends BandSet {
                 final long flag = fieldFlags[i][j];
                 int othersAddedAtStart = 0;
                 for (int k = 0; k < otherLayouts.length; k++) {
-                    if (otherLayouts[k] != null
-                            && otherLayouts[k].matches(flag)) {
+                    if (otherLayouts[k] != null && otherLayouts[k].matches(flag)) {
                         // Add the next attribute
-                        if(otherLayouts[k].getIndex()<15) {
+                        if (otherLayouts[k].getIndex() < 15) {
                             fieldAttributes[i][j].add(othersAddedAtStart++, otherAttributes[k].get(0));
                         } else {
                             fieldAttributes[i][j].add(otherAttributes[k].get(0));
@@ -303,27 +275,19 @@ public class ClassBands extends BandSet {
         }
     }
 
-    private void parseMethodBands(final InputStream in) throws IOException,
-            Pack200Exception {
-        methodDescrInts = decodeBandInt("method_descr", in, Codec.MDELTA5,
-                classMethodCount);
+    private void parseMethodBands(final InputStream in) throws IOException, Pack200Exception {
+        methodDescrInts = decodeBandInt("method_descr", in, Codec.MDELTA5, classMethodCount);
         methodDescr = getReferences(methodDescrInts, cpBands.getCpDescriptor());
         parseMethodAttrBands(in);
     }
 
-    private void parseMethodAttrBands(final InputStream in) throws IOException,
-            Pack200Exception {
-        methodFlags = parseFlags("method_flags", in, classMethodCount,
-                Codec.UNSIGNED5, options.hasMethodFlagsHi());
+    private void parseMethodAttrBands(final InputStream in) throws IOException, Pack200Exception {
+        methodFlags = parseFlags("method_flags", in, classMethodCount, Codec.UNSIGNED5, options.hasMethodFlagsHi());
         final int methodAttrCount = SegmentUtils.countBit16(methodFlags);
-        final int[] methodAttrCounts = decodeBandInt("method_attr_count", in,
-                Codec.UNSIGNED5, methodAttrCount);
-        final int[][] methodAttrIndexes = decodeBandInt("method_attr_indexes", in,
-                Codec.UNSIGNED5, methodAttrCounts);
-        final int callCount = getCallCount(methodAttrIndexes, methodFlags,
-                AttributeLayout.CONTEXT_METHOD);
-        methodAttrCalls = decodeBandInt("method_attr_calls", in, Codec.UNSIGNED5,
-                callCount);
+        final int[] methodAttrCounts = decodeBandInt("method_attr_count", in, Codec.UNSIGNED5, methodAttrCount);
+        final int[][] methodAttrIndexes = decodeBandInt("method_attr_indexes", in, Codec.UNSIGNED5, methodAttrCounts);
+        final int callCount = getCallCount(methodAttrIndexes, methodFlags, AttributeLayout.CONTEXT_METHOD);
+        methodAttrCalls = decodeBandInt("method_attr_calls", in, Codec.UNSIGNED5, callCount);
 
         // assign empty method attributes
         methodAttributes = new ArrayList[classCount][];
@@ -335,28 +299,20 @@ public class ClassBands extends BandSet {
         }
 
         // Parse method exceptions attributes
-        final AttributeLayout methodExceptionsLayout = attrMap.getAttributeLayout(
-                AttributeLayout.ATTRIBUTE_EXCEPTIONS,
-                AttributeLayout.CONTEXT_METHOD);
-        final int count = SegmentUtils.countMatches(methodFlags,
-                methodExceptionsLayout);
-        final int[] numExceptions = decodeBandInt("method_Exceptions_n", in,
-                Codec.UNSIGNED5, count);
-        final int[][] methodExceptionsRS = decodeBandInt("method_Exceptions_RC",
-                in, Codec.UNSIGNED5, numExceptions);
+        final AttributeLayout methodExceptionsLayout = attrMap.getAttributeLayout(AttributeLayout.ATTRIBUTE_EXCEPTIONS,
+            AttributeLayout.CONTEXT_METHOD);
+        final int count = SegmentUtils.countMatches(methodFlags, methodExceptionsLayout);
+        final int[] numExceptions = decodeBandInt("method_Exceptions_n", in, Codec.UNSIGNED5, count);
+        final int[][] methodExceptionsRS = decodeBandInt("method_Exceptions_RC", in, Codec.UNSIGNED5, numExceptions);
 
         // Parse method signature attributes
-        final AttributeLayout methodSignatureLayout = attrMap.getAttributeLayout(
-                AttributeLayout.ATTRIBUTE_SIGNATURE,
-                AttributeLayout.CONTEXT_METHOD);
-        final int count1 = SegmentUtils.countMatches(methodFlags,
-                methodSignatureLayout);
-        final int[] methodSignatureRS = decodeBandInt("method_signature_RS", in,
-                Codec.UNSIGNED5, count1);
-
-        final AttributeLayout deprecatedLayout = attrMap.getAttributeLayout(
-                AttributeLayout.ATTRIBUTE_DEPRECATED,
-                AttributeLayout.CONTEXT_METHOD);
+        final AttributeLayout methodSignatureLayout = attrMap.getAttributeLayout(AttributeLayout.ATTRIBUTE_SIGNATURE,
+            AttributeLayout.CONTEXT_METHOD);
+        final int count1 = SegmentUtils.countMatches(methodFlags, methodSignatureLayout);
+        final int[] methodSignatureRS = decodeBandInt("method_signature_RS", in, Codec.UNSIGNED5, count1);
+
+        final AttributeLayout deprecatedLayout = attrMap.getAttributeLayout(AttributeLayout.ATTRIBUTE_DEPRECATED,
+            AttributeLayout.CONTEXT_METHOD);
 
         // Add attributes to the attribute arrays
         int methodExceptionsIndex = 0;
@@ -369,11 +325,9 @@ public class ClassBands extends BandSet {
                     final int[] exceptions = methodExceptionsRS[methodExceptionsIndex];
                     final CPClass[] exceptionClasses = new CPClass[n];
                     for (int k = 0; k < n; k++) {
-                        exceptionClasses[k] = cpBands
-                                .cpClassValue(exceptions[k]);
+                        exceptionClasses[k] = cpBands.cpClassValue(exceptions[k]);
                     }
-                    methodAttributes[i][j].add(new ExceptionsAttribute(
-                            exceptionClasses));
+                    methodAttributes[i][j].add(new ExceptionsAttribute(exceptionClasses));
                     methodExceptionsIndex++;
                 }
                 if (methodSignatureLayout.matches(flag)) {
@@ -387,10 +341,9 @@ public class ClassBands extends BandSet {
                     if (type.equals("B") || type.equals("H")) {
                         type = "I";
                     }
-                    final CPUTF8 value = (CPUTF8) methodSignatureLayout.getValue(
-                            result, type, cpBands.getConstantPool());
-                    methodAttributes[i][j]
-                            .add(new SignatureAttribute(value));
+                    final CPUTF8 value = (CPUTF8) methodSignatureLayout.getValue(result, type,
+                        cpBands.getConstantPool());
+                    methodAttributes[i][j].add(new SignatureAttribute(value));
                     methodSignatureIndex++;
                 }
                 if (deprecatedLayout.matches(flag)) {
@@ -409,8 +362,7 @@ public class ClassBands extends BandSet {
         final int[] counts = new int[limit + 1];
         final List[] otherAttributes = new List[limit + 1];
         for (int i = 0; i < limit; i++) {
-            final AttributeLayout layout = attrMap.getAttributeLayout(i,
-                    AttributeLayout.CONTEXT_METHOD);
+            final AttributeLayout layout = attrMap.getAttributeLayout(i, AttributeLayout.CONTEXT_METHOD);
             if (layout != null && !(layout.isDefaultLayout())) {
                 otherLayouts[i] = layout;
                 counts[i] = SegmentUtils.countMatches(methodFlags, layout);
@@ -418,15 +370,12 @@ public class ClassBands extends BandSet {
         }
         for (int i = 0; i < counts.length; i++) {
             if (counts[i] > 0) {
-                final NewAttributeBands bands = attrMap
-                        .getAttributeBands(otherLayouts[i]);
+                final NewAttributeBands bands = attrMap.getAttributeBands(otherLayouts[i]);
                 otherAttributes[i] = bands.parseAttributes(in, counts[i]);
-                final int numBackwardsCallables = otherLayouts[i]
-                        .numBackwardsCallables();
+                final int numBackwardsCallables = otherLayouts[i].numBackwardsCallables();
                 if (numBackwardsCallables > 0) {
                     final int[] backwardsCalls = new int[numBackwardsCallables];
-                    System.arraycopy(methodAttrCalls, backwardsCallIndex,
-                            backwardsCalls, 0, numBackwardsCallables);
+                    System.arraycopy(methodAttrCalls, backwardsCallIndex, backwardsCalls, 0, numBackwardsCallables);
                     bands.setBackwardsCalls(backwardsCalls);
                     backwardsCallIndex += numBackwardsCallables;
                 }
@@ -439,10 +388,9 @@ public class ClassBands extends BandSet {
                 final long flag = methodFlags[i][j];
                 int othersAddedAtStart = 0;
                 for (int k = 0; k < otherLayouts.length; k++) {
-                    if (otherLayouts[k] != null
-                            && otherLayouts[k].matches(flag)) {
+                    if (otherLayouts[k] != null && otherLayouts[k].matches(flag)) {
                         // Add the next attribute
-                        if(otherLayouts[k].getIndex() < 15) {
+                        if (otherLayouts[k].getIndex() < 15) {
                             methodAttributes[i][j].add(othersAddedAtStart++, otherAttributes[k].get(0));
                         } else {
                             methodAttributes[i][j].add(otherAttributes[k].get(0));
@@ -454,14 +402,13 @@ public class ClassBands extends BandSet {
         }
     }
 
-    private int getCallCount(final int[][] methodAttrIndexes, final long[][] flags,
-            final int context) throws Pack200Exception {
+    private int getCallCount(final int[][] methodAttrIndexes, final long[][] flags, final int context)
+        throws Pack200Exception {
         int callCount = 0;
         for (int i = 0; i < methodAttrIndexes.length; i++) {
             for (int j = 0; j < methodAttrIndexes[i].length; j++) {
                 final int index = methodAttrIndexes[i][j];
-                final AttributeLayout layout = attrMap.getAttributeLayout(index,
-                        context);
+                final AttributeLayout layout = attrMap.getAttributeLayout(index, context);
                 callCount += layout.numBackwardsCallables();
             }
         }
@@ -480,8 +427,7 @@ public class ClassBands extends BandSet {
         return callCount;
     }
 
-    private void parseClassAttrBands(final InputStream in) throws IOException,
-            Pack200Exception {
+    private void parseClassAttrBands(final InputStream in) throws IOException, Pack200Exception {
         final String[] cpUTF8 = cpBands.getCpUTF8();
         final String[] cpClass = cpBands.getCpClass();
 
@@ -491,63 +437,44 @@ public class ClassBands extends BandSet {
             classAttributes[i] = new ArrayList();
         }
 
-        classFlags = parseFlags("class_flags", in, classCount, Codec.UNSIGNED5,
-                options.hasClassFlagsHi());
+        classFlags = parseFlags("class_flags", in, classCount, Codec.UNSIGNED5, options.hasClassFlagsHi());
         final int classAttrCount = SegmentUtils.countBit16(classFlags);
-        final int[] classAttrCounts = decodeBandInt("class_attr_count", in,
-                Codec.UNSIGNED5, classAttrCount);
-        final int[][] classAttrIndexes = decodeBandInt("class_attr_indexes", in,
-                Codec.UNSIGNED5, classAttrCounts);
-        final int callCount = getCallCount(classAttrIndexes,
-                new long[][] { classFlags }, AttributeLayout.CONTEXT_CLASS);
-        final int[] classAttrCalls = decodeBandInt("class_attr_calls", in,
-                Codec.UNSIGNED5, callCount);
-
-        final AttributeLayout deprecatedLayout = attrMap.getAttributeLayout(
-                AttributeLayout.ATTRIBUTE_DEPRECATED,
-                AttributeLayout.CONTEXT_CLASS);
-
-        final AttributeLayout sourceFileLayout = attrMap.getAttributeLayout(
-                AttributeLayout.ATTRIBUTE_SOURCE_FILE,
-                AttributeLayout.CONTEXT_CLASS);
-        final int sourceFileCount = SegmentUtils.countMatches(classFlags,
-                sourceFileLayout);
-        final int[] classSourceFile = decodeBandInt("class_SourceFile_RUN", in,
-                Codec.UNSIGNED5, sourceFileCount);
-
-        final AttributeLayout enclosingMethodLayout = attrMap.getAttributeLayout(
-                AttributeLayout.ATTRIBUTE_ENCLOSING_METHOD,
-                AttributeLayout.CONTEXT_CLASS);
-        final int enclosingMethodCount = SegmentUtils.countMatches(classFlags,
-                enclosingMethodLayout);
-        final int[] enclosingMethodRC = decodeBandInt(
-                "class_EnclosingMethod_RC", in, Codec.UNSIGNED5,
-                enclosingMethodCount);
-        final int[] enclosingMethodRDN = decodeBandInt(
-                "class_EnclosingMethod_RDN", in, Codec.UNSIGNED5,
-                enclosingMethodCount);
-
-        final AttributeLayout signatureLayout = attrMap.getAttributeLayout(
-                AttributeLayout.ATTRIBUTE_SIGNATURE,
-                AttributeLayout.CONTEXT_CLASS);
-        final int signatureCount = SegmentUtils.countMatches(classFlags,
-                signatureLayout);
-        final int[] classSignature = decodeBandInt("class_Signature_RS", in,
-                Codec.UNSIGNED5, signatureCount);
+        final int[] classAttrCounts = decodeBandInt("class_attr_count", in, Codec.UNSIGNED5, classAttrCount);
+        final int[][] classAttrIndexes = decodeBandInt("class_attr_indexes", in, Codec.UNSIGNED5, classAttrCounts);
+        final int callCount = getCallCount(classAttrIndexes, new long[][] {classFlags}, AttributeLayout.CONTEXT_CLASS);
+        final int[] classAttrCalls = decodeBandInt("class_attr_calls", in, Codec.UNSIGNED5, callCount);
+
+        final AttributeLayout deprecatedLayout = attrMap.getAttributeLayout(AttributeLayout.ATTRIBUTE_DEPRECATED,
+            AttributeLayout.CONTEXT_CLASS);
+
+        final AttributeLayout sourceFileLayout = attrMap.getAttributeLayout(AttributeLayout.ATTRIBUTE_SOURCE_FILE,
+            AttributeLayout.CONTEXT_CLASS);
+        final int sourceFileCount = SegmentUtils.countMatches(classFlags, sourceFileLayout);
+        final int[] classSourceFile = decodeBandInt("class_SourceFile_RUN", in, Codec.UNSIGNED5, sourceFileCount);
+
+        final AttributeLayout enclosingMethodLayout = attrMap
+            .getAttributeLayout(AttributeLayout.ATTRIBUTE_ENCLOSING_METHOD, AttributeLayout.CONTEXT_CLASS);
+        final int enclosingMethodCount = SegmentUtils.countMatches(classFlags, enclosingMethodLayout);
+        final int[] enclosingMethodRC = decodeBandInt("class_EnclosingMethod_RC", in, Codec.UNSIGNED5,
+            enclosingMethodCount);
+        final int[] enclosingMethodRDN = decodeBandInt("class_EnclosingMethod_RDN", in, Codec.UNSIGNED5,
+            enclosingMethodCount);
+
+        final AttributeLayout signatureLayout = attrMap.getAttributeLayout(AttributeLayout.ATTRIBUTE_SIGNATURE,
+            AttributeLayout.CONTEXT_CLASS);
+        final int signatureCount = SegmentUtils.countMatches(classFlags, signatureLayout);
+        final int[] classSignature = decodeBandInt("class_Signature_RS", in, Codec.UNSIGNED5, signatureCount);
 
         final int backwardsCallsUsed = parseClassMetadataBands(in, classAttrCalls);
 
-        final AttributeLayout innerClassLayout = attrMap.getAttributeLayout(
-                AttributeLayout.ATTRIBUTE_INNER_CLASSES,
-                AttributeLayout.CONTEXT_CLASS);
-        final int innerClassCount = SegmentUtils.countMatches(classFlags,
-                innerClassLayout);
-        final int[] classInnerClassesN = decodeBandInt("class_InnerClasses_N", in,
-                Codec.UNSIGNED5, innerClassCount);
-        final int[][] classInnerClassesRC = decodeBandInt("class_InnerClasses_RC",
-                in, Codec.UNSIGNED5, classInnerClassesN);
-        final int[][] classInnerClassesF = decodeBandInt("class_InnerClasses_F", in,
-                Codec.UNSIGNED5, classInnerClassesN);
+        final AttributeLayout innerClassLayout = attrMap.getAttributeLayout(AttributeLayout.ATTRIBUTE_INNER_CLASSES,
+            AttributeLayout.CONTEXT_CLASS);
+        final int innerClassCount = SegmentUtils.countMatches(classFlags, innerClassLayout);
+        final int[] classInnerClassesN = decodeBandInt("class_InnerClasses_N", in, Codec.UNSIGNED5, innerClassCount);
+        final int[][] classInnerClassesRC = decodeBandInt("class_InnerClasses_RC", in, Codec.UNSIGNED5,
+            classInnerClassesN);
+        final int[][] classInnerClassesF = decodeBandInt("class_InnerClasses_F", in, Codec.UNSIGNED5,
+            classInnerClassesN);
         int flagsCount = 0;
         for (int i = 0; i < classInnerClassesF.length; i++) {
             for (int j = 0; j < classInnerClassesF[i].length; j++) {
@@ -556,19 +483,18 @@ public class ClassBands extends BandSet {
                 }
             }
         }
-        final int[] classInnerClassesOuterRCN = decodeBandInt(
-                "class_InnerClasses_outer_RCN", in, Codec.UNSIGNED5, flagsCount);
-        final int[] classInnerClassesNameRUN = decodeBandInt(
-                "class_InnerClasses_name_RUN", in, Codec.UNSIGNED5, flagsCount);
-
-        final AttributeLayout versionLayout = attrMap.getAttributeLayout(
-                AttributeLayout.ATTRIBUTE_CLASS_FILE_VERSION,
-                AttributeLayout.CONTEXT_CLASS);
+        final int[] classInnerClassesOuterRCN = decodeBandInt("class_InnerClasses_outer_RCN", in, Codec.UNSIGNED5,
+            flagsCount);
+        final int[] classInnerClassesNameRUN = decodeBandInt("class_InnerClasses_name_RUN", in, Codec.UNSIGNED5,
+            flagsCount);
+
+        final AttributeLayout versionLayout = attrMap.getAttributeLayout(AttributeLayout.ATTRIBUTE_CLASS_FILE_VERSION,
+            AttributeLayout.CONTEXT_CLASS);
         final int versionCount = SegmentUtils.countMatches(classFlags, versionLayout);
-        final int[] classFileVersionMinorH = decodeBandInt(
-                "class_file_version_minor_H", in, Codec.UNSIGNED5, versionCount);
-        final int[] classFileVersionMajorH = decodeBandInt(
-                "class_file_version_major_H", in, Codec.UNSIGNED5, versionCount);
+        final int[] classFileVersionMinorH = decodeBandInt("class_file_version_minor_H", in, Codec.UNSIGNED5,
+            versionCount);
+        final int[] classFileVersionMajorH = decodeBandInt("class_file_version_major_H", in, Codec.UNSIGNED5,
+            versionCount);
         if (versionCount > 0) {
             classVersionMajor = new int[classCount];
             classVersionMinor = new int[classCount];
@@ -583,8 +509,7 @@ public class ClassBands extends BandSet {
         final int[] counts = new int[limit + 1];
         final List[] otherAttributes = new List[limit + 1];
         for (int i = 0; i < limit; i++) {
-            final AttributeLayout layout = attrMap.getAttributeLayout(i,
-                    AttributeLayout.CONTEXT_CLASS);
+            final AttributeLayout layout = attrMap.getAttributeLayout(i, AttributeLayout.CONTEXT_CLASS);
             if (layout != null && !(layout.isDefaultLayout())) {
                 otherLayouts[i] = layout;
                 counts[i] = SegmentUtils.countMatches(classFlags, layout);
@@ -592,15 +517,12 @@ public class ClassBands extends BandSet {
         }
         for (int i = 0; i < counts.length; i++) {
             if (counts[i] > 0) {
-                final NewAttributeBands bands = attrMap
-                        .getAttributeBands(otherLayouts[i]);
+                final NewAttributeBands bands = attrMap.getAttributeBands(otherLayouts[i]);
                 otherAttributes[i] = bands.parseAttributes(in, counts[i]);
-                final int numBackwardsCallables = otherLayouts[i]
-                        .numBackwardsCallables();
+                final int numBackwardsCallables = otherLayouts[i].numBackwardsCallables();
                 if (numBackwardsCallables > 0) {
                     final int[] backwardsCalls = new int[numBackwardsCallables];
-                    System.arraycopy(classAttrCalls, backwardsCallIndex,
-                            backwardsCalls, 0, numBackwardsCallables);
+                    System.arraycopy(classAttrCalls, backwardsCallIndex, backwardsCalls, 0, numBackwardsCallables);
                     bands.setBackwardsCalls(backwardsCalls);
                     backwardsCallIndex += numBackwardsCallables;
                 }
@@ -622,14 +544,11 @@ public class ClassBands extends BandSet {
             }
             if (sourceFileLayout.matches(flag)) {
                 final long result = classSourceFile[sourceFileIndex];
-                ClassFileEntry value = sourceFileLayout.getValue(result,
-                        cpBands.getConstantPool());
+                ClassFileEntry value = sourceFileLayout.getValue(result, cpBands.getConstantPool());
                 if (value == null) {
                     // Remove package prefix
-                    String className = classThis[i].substring(classThis[i]
-                            .lastIndexOf('/') + 1);
-                    className = className
-                            .substring(className.lastIndexOf('.') + 1);
+                    String className = classThis[i].substring(classThis[i].lastIndexOf('/') + 1);
+                    className = className.substring(className.lastIndexOf('.') + 1);
 
                     // Remove mangled nested class names
                     final char[] chars = className.toCharArray();
@@ -646,25 +565,21 @@ public class ClassBands extends BandSet {
                     // Add .java to the end
                     value = cpBands.cpUTF8Value(className + ".java", true);
                 }
-                classAttributes[i].add(new SourceFileAttribute((CPUTF8)value));
+                classAttributes[i].add(new SourceFileAttribute((CPUTF8) value));
                 sourceFileIndex++;
             }
             if (enclosingMethodLayout.matches(flag)) {
-                final CPClass theClass = cpBands
-                        .cpClassValue(enclosingMethodRC[enclosingMethodIndex]);
+                final CPClass theClass = cpBands.cpClassValue(enclosingMethodRC[enclosingMethodIndex]);
                 CPNameAndType theMethod = null;
-                if(enclosingMethodRDN[enclosingMethodIndex] != 0) {
-                    theMethod = cpBands
-                            .cpNameAndTypeValue(enclosingMethodRDN[enclosingMethodIndex] - 1);
+                if (enclosingMethodRDN[enclosingMethodIndex] != 0) {
+                    theMethod = cpBands.cpNameAndTypeValue(enclosingMethodRDN[enclosingMethodIndex] - 1);
                 }
-                classAttributes[i].add(new EnclosingMethodAttribute(theClass,
-                        theMethod));
+                classAttributes[i].add(new EnclosingMethodAttribute(theClass, theMethod));
                 enclosingMethodIndex++;
             }
             if (signatureLayout.matches(flag)) {
                 final long result = classSignature[signatureIndex];
-                final CPUTF8 value = (CPUTF8) signatureLayout.getValue(result, cpBands
-                        .getConstantPool());
+                final CPUTF8 value = (CPUTF8) signatureLayout.getValue(result, cpBands.getConstantPool());
                 classAttributes[i].add(new SignatureAttribute(value));
                 signatureIndex++;
             }
@@ -702,8 +617,8 @@ public class ClassBands extends BandSet {
                         }
                     }
 
-                    final IcTuple icTuple = new IcTuple(icTupleC, icTupleF,
-                            icTupleC2, icTupleN, icTupleCIndex, icTupleC2Index, icTupleNIndex, j);
+                    final IcTuple icTuple = new IcTuple(icTupleC, icTupleF, icTupleC2, icTupleN, icTupleCIndex,
+                        icTupleC2Index, icTupleNIndex, j);
                     icLocal[i][j] = icTuple;
                 }
                 innerClassIndex++;
@@ -728,34 +643,31 @@ public class ClassBands extends BandSet {
         }
     }
 
-    private void parseCodeBands(final InputStream in) throws Pack200Exception,
-            IOException {
-        final AttributeLayout layout = attrMap.getAttributeLayout(
-                AttributeLayout.ATTRIBUTE_CODE, AttributeLayout.CONTEXT_METHOD);
+    private void parseCodeBands(final InputStream in) throws Pack200Exception, IOException {
+        final AttributeLayout layout = attrMap.getAttributeLayout(AttributeLayout.ATTRIBUTE_CODE,
+            AttributeLayout.CONTEXT_METHOD);
 
         final int codeCount = SegmentUtils.countMatches(methodFlags, layout);
-        final int[] codeHeaders = decodeBandInt("code_headers", in, Codec.BYTE1,
-                codeCount);
+        final int[] codeHeaders = decodeBandInt("code_headers", in, Codec.BYTE1, codeCount);
 
         final boolean allCodeHasFlags = segment.getSegmentHeader().getOptions().hasAllCodeFlags();
-        if(!allCodeHasFlags) {
+        if (!allCodeHasFlags) {
             codeHasAttributes = new boolean[codeCount];
         }
         int codeSpecialHeader = 0;
         for (int i = 0; i < codeCount; i++) {
             if (codeHeaders[i] == 0) {
                 codeSpecialHeader++;
-                if(!allCodeHasFlags) {
+                if (!allCodeHasFlags) {
                     codeHasAttributes[i] = true;
                 }
             }
         }
-        final int[] codeMaxStackSpecials = decodeBandInt("code_max_stack", in,
-                Codec.UNSIGNED5, codeSpecialHeader);
-        final int[] codeMaxNALocalsSpecials = decodeBandInt("code_max_na_locals", in,
-                Codec.UNSIGNED5, codeSpecialHeader);
-        final int[] codeHandlerCountSpecials = decodeBandInt("code_handler_count",
-                in, Codec.UNSIGNED5, codeSpecialHeader);
+        final int[] codeMaxStackSpecials = decodeBandInt("code_max_stack", in, Codec.UNSIGNED5, codeSpecialHeader);
+        final int[] codeMaxNALocalsSpecials = decodeBandInt("code_max_na_locals", in, Codec.UNSIGNED5,
+            codeSpecialHeader);
+        final int[] codeHandlerCountSpecials = decodeBandInt("code_handler_count", in, Codec.UNSIGNED5,
+            codeSpecialHeader);
 
         codeMaxStack = new int[codeCount];
         codeMaxNALocals = new int[codeCount];
@@ -787,14 +699,10 @@ public class ClassBands extends BandSet {
                 throw new IllegalStateException("Shouldn't get here either");
             }
         }
-        codeHandlerStartP = decodeBandInt("code_handler_start_P", in,
-                Codec.BCI5, codeHandlerCount);
-        codeHandlerEndPO = decodeBandInt("code_handler_end_PO", in,
-                Codec.BRANCH5, codeHandlerCount);
-        codeHandlerCatchPO = decodeBandInt("code_handler_catch_PO", in,
-                Codec.BRANCH5, codeHandlerCount);
-        codeHandlerClassRCN = decodeBandInt(
-                "code_handler_class_RCN", in, Codec.UNSIGNED5, codeHandlerCount);
+        codeHandlerStartP = decodeBandInt("code_handler_start_P", in, Codec.BCI5, codeHandlerCount);
+        codeHandlerEndPO = decodeBandInt("code_handler_end_PO", in, Codec.BRANCH5, codeHandlerCount);
+        codeHandlerCatchPO = decodeBandInt("code_handler_catch_PO", in, Codec.BRANCH5, codeHandlerCount);
+        codeHandlerClassRCN = decodeBandInt("code_handler_class_RCN", in, Codec.UNSIGNED5, codeHandlerCount);
 
         final int codeFlagsCount = allCodeHasFlags ? codeCount : codeSpecialHeader;
 
@@ -806,88 +714,65 @@ public class ClassBands extends BandSet {
     }
 
     private void parseCodeAttrBands(final InputStream in, final int codeFlagsCount)
-            throws IOException, Pack200Exception {
-        final long[] codeFlags = parseFlags("code_flags", in, codeFlagsCount,
-                Codec.UNSIGNED5, segment.getSegmentHeader().getOptions()
-                        .hasCodeFlagsHi());
+        throws IOException, Pack200Exception {
+        final long[] codeFlags = parseFlags("code_flags", in, codeFlagsCount, Codec.UNSIGNED5,
+            segment.getSegmentHeader().getOptions().hasCodeFlagsHi());
         final int codeAttrCount = SegmentUtils.countBit16(codeFlags);
-        final int[] codeAttrCounts = decodeBandInt("code_attr_count", in,
-                Codec.UNSIGNED5, codeAttrCount);
-        final int[][] codeAttrIndexes = decodeBandInt("code_attr_indexes", in,
-                Codec.UNSIGNED5, codeAttrCounts);
+        final int[] codeAttrCounts = decodeBandInt("code_attr_count", in, Codec.UNSIGNED5, codeAttrCount);
+        final int[][] codeAttrIndexes = decodeBandInt("code_attr_indexes", in, Codec.UNSIGNED5, codeAttrCounts);
         int callCount = 0;
         for (int i = 0; i < codeAttrIndexes.length; i++) {
             for (int j = 0; j < codeAttrIndexes[i].length; j++) {
                 final int index = codeAttrIndexes[i][j];
-                final AttributeLayout layout = attrMap.getAttributeLayout(index,
-                        AttributeLayout.CONTEXT_CODE);
+                final AttributeLayout layout = attrMap.getAttributeLayout(index, AttributeLayout.CONTEXT_CODE);
                 callCount += layout.numBackwardsCallables();
             }
         }
-        final int[] codeAttrCalls = decodeBandInt("code_attr_calls", in,
-                Codec.UNSIGNED5, callCount);
-
-        final AttributeLayout lineNumberTableLayout = attrMap.getAttributeLayout(
-                AttributeLayout.ATTRIBUTE_LINE_NUMBER_TABLE,
-                AttributeLayout.CONTEXT_CODE);
-        final int lineNumberTableCount = SegmentUtils.countMatches(codeFlags,
-                lineNumberTableLayout);
-        final int[] lineNumberTableN = decodeBandInt("code_LineNumberTable_N", in,
-                Codec.UNSIGNED5, lineNumberTableCount);
-        final int[][] lineNumberTableBciP = decodeBandInt(
-                "code_LineNumberTable_bci_P", in, Codec.BCI5, lineNumberTableN);
-        final int[][] lineNumberTableLine = decodeBandInt(
-                "code_LineNumberTable_line", in, Codec.UNSIGNED5,
-                lineNumberTableN);
-
-        final AttributeLayout localVariableTableLayout = attrMap.getAttributeLayout(
-                AttributeLayout.ATTRIBUTE_LOCAL_VARIABLE_TABLE,
-                AttributeLayout.CONTEXT_CODE);
+        final int[] codeAttrCalls = decodeBandInt("code_attr_calls", in, Codec.UNSIGNED5, callCount);
+
+        final AttributeLayout lineNumberTableLayout = attrMap
+            .getAttributeLayout(AttributeLayout.ATTRIBUTE_LINE_NUMBER_TABLE, AttributeLayout.CONTEXT_CODE);
+        final int lineNumberTableCount = SegmentUtils.countMatches(codeFlags, lineNumberTableLayout);
+        final int[] lineNumberTableN = decodeBandInt("code_LineNumberTable_N", in, Codec.UNSIGNED5,
+            lineNumberTableCount);
+        final int[][] lineNumberTableBciP = decodeBandInt("code_LineNumberTable_bci_P", in, Codec.BCI5,
+            lineNumberTableN);
+        final int[][] lineNumberTableLine = decodeBandInt("code_LineNumberTable_line", in, Codec.UNSIGNED5,
+            lineNumberTableN);
+
+        final AttributeLayout localVariableTableLayout = attrMap
+            .getAttributeLayout(AttributeLayout.ATTRIBUTE_LOCAL_VARIABLE_TABLE, AttributeLayout.CONTEXT_CODE);
         final AttributeLayout localVariableTypeTableLayout = attrMap
-                .getAttributeLayout(
-                        AttributeLayout.ATTRIBUTE_LOCAL_VARIABLE_TYPE_TABLE,
-                        AttributeLayout.CONTEXT_CODE);
-
-        final int lengthLocalVariableNBand = SegmentUtils.countMatches(codeFlags,
-                localVariableTableLayout);
-        final int[] localVariableTableN = decodeBandInt("code_LocalVariableTable_N",
-                in, Codec.UNSIGNED5, lengthLocalVariableNBand);
-        final int[][] localVariableTableBciP = decodeBandInt(
-                "code_LocalVariableTable_bci_P", in, Codec.BCI5,
-                localVariableTableN);
-        final int[][] localVariableTableSpanO = decodeBandInt(
-                "code_LocalVariableTable_span_O", in, Codec.BRANCH5,
-                localVariableTableN);
-        final CPUTF8[][] localVariableTableNameRU = parseCPUTF8References(
-                "code_LocalVariableTable_name_RU", in, Codec.UNSIGNED5,
-                localVariableTableN);
-        final CPUTF8[][] localVariableTableTypeRS = parseCPSignatureReferences(
-                "code_LocalVariableTable_type_RS", in, Codec.UNSIGNED5,
-                localVariableTableN);
-        final int[][] localVariableTableSlot = decodeBandInt(
-                "code_LocalVariableTable_slot", in, Codec.UNSIGNED5,
-                localVariableTableN);
-
-        final int lengthLocalVariableTypeTableNBand = SegmentUtils.countMatches(
-                codeFlags, localVariableTypeTableLayout);
-        final int[] localVariableTypeTableN = decodeBandInt(
-                "code_LocalVariableTypeTable_N", in, Codec.UNSIGNED5,
-                lengthLocalVariableTypeTableNBand);
-        final int[][] localVariableTypeTableBciP = decodeBandInt(
-                "code_LocalVariableTypeTable_bci_P", in, Codec.BCI5,
-                localVariableTypeTableN);
-        final int[][] localVariableTypeTableSpanO = decodeBandInt(
-                "code_LocalVariableTypeTable_span_O", in, Codec.BRANCH5,
-                localVariableTypeTableN);
-        final CPUTF8[][] localVariableTypeTableNameRU = parseCPUTF8References(
-                "code_LocalVariableTypeTable_name_RU", in, Codec.UNSIGNED5,
-                localVariableTypeTableN);
+            .getAttributeLayout(AttributeLayout.ATTRIBUTE_LOCAL_VARIABLE_TYPE_TABLE, AttributeLayout.CONTEXT_CODE);
+
+        final int lengthLocalVariableNBand = SegmentUtils.countMatches(codeFlags, localVariableTableLayout);
+        final int[] localVariableTableN = decodeBandInt("code_LocalVariableTable_N", in, Codec.UNSIGNED5,
+            lengthLocalVariableNBand);
+        final int[][] localVariableTableBciP = decodeBandInt("code_LocalVariableTable_bci_P", in, Codec.BCI5,
+            localVariableTableN);
+        final int[][] localVariableTableSpanO = decodeBandInt("code_LocalVariableTable_span_O", in, Codec.BRANCH5,
+            localVariableTableN);
+        final CPUTF8[][] localVariableTableNameRU = parseCPUTF8References("code_LocalVariableTable_name_RU", in,
+            Codec.UNSIGNED5, localVariableTableN);
+        final CPUTF8[][] localVariableTableTypeRS = parseCPSignatureReferences("code_LocalVariableTable_type_RS", in,
+            Codec.UNSIGNED5, localVariableTableN);
+        final int[][] localVariableTableSlot = decodeBandInt("code_LocalVariableTable_slot", in, Codec.UNSIGNED5,
+            localVariableTableN);
+
+        final int lengthLocalVariableTypeTableNBand = SegmentUtils.countMatches(codeFlags,
+            localVariableTypeTableLayout);
+        final int[] localVariableTypeTableN = decodeBandInt("code_LocalVariableTypeTable_N", in, Codec.UNSIGNED5,
+            lengthLocalVariableTypeTableNBand);
+        final int[][] localVariableTypeTableBciP = decodeBandInt("code_LocalVariableTypeTable_bci_P", in, Codec.BCI5,
+            localVariableTypeTableN);
+        final int[][] localVariableTypeTableSpanO = decodeBandInt("code_LocalVariableTypeTable_span_O", in,
+            Codec.BRANCH5, localVariableTypeTableN);
+        final CPUTF8[][] localVariableTypeTableNameRU = parseCPUTF8References("code_LocalVariableTypeTable_name_RU", in,
+            Codec.UNSIGNED5, localVariableTypeTableN);
         final CPUTF8[][] localVariableTypeTableTypeRS = parseCPSignatureReferences(
-                "code_LocalVariableTypeTable_type_RS", in, Codec.UNSIGNED5,
-                localVariableTypeTableN);
-        final int[][] localVariableTypeTableSlot = decodeBandInt(
-                "code_LocalVariableTypeTable_slot", in, Codec.UNSIGNED5,
-                localVariableTypeTableN);
+            "code_LocalVariableTypeTable_type_RS", in, Codec.UNSIGNED5, localVariableTypeTableN);
+        final int[][] localVariableTypeTableSlot = decodeBandInt("code_LocalVariableTypeTable_slot", in,
+            Codec.UNSIGNED5, localVariableTypeTableN);
 
         // Parse non-predefined attribute bands
         int backwardsCallIndex = 0;
@@ -896,8 +781,7 @@ public class ClassBands extends BandSet {
         final int[] counts = new int[limit + 1];
         final List[] otherAttributes = new List[limit + 1];
         for (int i = 0; i < limit; i++) {
-            final AttributeLayout layout = attrMap.getAttributeLayout(i,
-                    AttributeLayout.CONTEXT_CODE);
+            final AttributeLayout layout = attrMap.getAttributeLayout(i, AttributeLayout.CONTEXT_CODE);
             if (layout != null && !(layout.isDefaultLayout())) {
                 otherLayouts[i] = layout;
                 counts[i] = SegmentUtils.countMatches(codeFlags, layout);
@@ -905,15 +789,12 @@ public class ClassBands extends BandSet {
         }
         for (int i = 0; i < counts.length; i++) {
             if (counts[i] > 0) {
-                final NewAttributeBands bands = attrMap
-                        .getAttributeBands(otherLayouts[i]);
+                final NewAttributeBands bands = attrMap.getAttributeBands(otherLayouts[i]);
                 otherAttributes[i] = bands.parseAttributes(in, counts[i]);
-                final int numBackwardsCallables = otherLayouts[i]
-                        .numBackwardsCallables();
+                final int numBackwardsCallables = otherLayouts[i].numBackwardsCallables();
                 if (numBackwardsCallables > 0) {
                     final int[] backwardsCalls = new int[numBackwardsCallables];
-                    System.arraycopy(codeAttrCalls, backwardsCallIndex,
-                            backwardsCalls, 0, numBackwardsCallables);
+                    System.arraycopy(codeAttrCalls, backwardsCallIndex, backwardsCalls, 0, numBackwardsCallables);
                     bands.setBackwardsCalls(backwardsCalls);
                     backwardsCallIndex += numBackwardsCallables;
                 }
@@ -925,39 +806,30 @@ public class ClassBands extends BandSet {
         int lvttIndex = 0;
         for (int i = 0; i < codeFlagsCount; i++) {
             if (lineNumberTableLayout.matches(codeFlags[i])) {
-                final LineNumberTableAttribute lnta = new LineNumberTableAttribute(
-                        lineNumberTableN[lineNumberIndex],
-                        lineNumberTableBciP[lineNumberIndex],
-                        lineNumberTableLine[lineNumberIndex]);
+                final LineNumberTableAttribute lnta = new LineNumberTableAttribute(lineNumberTableN[lineNumberIndex],
+                    lineNumberTableBciP[lineNumberIndex], lineNumberTableLine[lineNumberIndex]);
                 lineNumberIndex++;
                 codeAttributes[i].add(lnta);
             }
             if (localVariableTableLayout.matches(codeFlags[i])) {
-                final LocalVariableTableAttribute lvta = new LocalVariableTableAttribute(
-                        localVariableTableN[lvtIndex],
-                        localVariableTableBciP[lvtIndex],
-                        localVariableTableSpanO[lvtIndex],
-                        localVariableTableNameRU[lvtIndex],
-                        localVariableTableTypeRS[lvtIndex],
-                        localVariableTableSlot[lvtIndex]);
+                final LocalVariableTableAttribute lvta = new LocalVariableTableAttribute(localVariableTableN[lvtIndex],
+                    localVariableTableBciP[lvtIndex], localVariableTableSpanO[lvtIndex],
+                    localVariableTableNameRU[lvtIndex], localVariableTableTypeRS[lvtIndex],
+                    localVariableTableSlot[lvtIndex]);
                 lvtIndex++;
                 codeAttributes[i].add(lvta);
             }
             if (localVariableTypeTableLayout.matches(codeFlags[i])) {
                 final LocalVariableTypeTableAttribute lvtta = new LocalVariableTypeTableAttribute(
-                        localVariableTypeTableN[lvttIndex],
-                        localVariableTypeTableBciP[lvttIndex],
-                        localVariableTypeTableSpanO[lvttIndex],
-                        localVariableTypeTableNameRU[lvttIndex],
-                        localVariableTypeTableTypeRS[lvttIndex],
-                        localVariableTypeTableSlot[lvttIndex]);
+                    localVariableTypeTableN[lvttIndex], localVariableTypeTableBciP[lvttIndex],
+                    localVariableTypeTableSpanO[lvttIndex], localVariableTypeTableNameRU[lvttIndex],
+                    localVariableTypeTableTypeRS[lvttIndex], localVariableTypeTableSlot[lvttIndex]);
                 lvttIndex++;
                 codeAttributes[i].add(lvtta);
             }
             // Non-predefined attributes
             for (int j = 0; j < otherLayouts.length; j++) {
-                if (otherLayouts[j] != null
-                        && otherLayouts[j].matches(codeFlags[i])) {
+                if (otherLayouts[j] != null && otherLayouts[j].matches(codeFlags[i])) {
                     // Add the next attribute
                     codeAttributes[i].add(otherAttributes[j].get(0));
                     otherAttributes[j].remove(0);
@@ -968,21 +840,19 @@ public class ClassBands extends BandSet {
     }
 
     private int parseFieldMetadataBands(final InputStream in, final int[] fieldAttrCalls)
-            throws Pack200Exception, IOException {
+        throws Pack200Exception, IOException {
         int backwardsCallsUsed = 0;
-        final String[] RxA = { "RVA", "RIA" };
+        final String[] RxA = {"RVA", "RIA"};
 
-        final AttributeLayout rvaLayout = attrMap.getAttributeLayout(
-                AttributeLayout.ATTRIBUTE_RUNTIME_VISIBLE_ANNOTATIONS,
-                AttributeLayout.CONTEXT_FIELD);
-        final AttributeLayout riaLayout = attrMap.getAttributeLayout(
-                AttributeLayout.ATTRIBUTE_RUNTIME_INVISIBLE_ANNOTATIONS,
-                AttributeLayout.CONTEXT_FIELD);
+        final AttributeLayout rvaLayout = attrMap
+            .getAttributeLayout(AttributeLayout.ATTRIBUTE_RUNTIME_VISIBLE_ANNOTATIONS, AttributeLayout.CONTEXT_FIELD);
+        final AttributeLayout riaLayout = attrMap
+            .getAttributeLayout(AttributeLayout.ATTRIBUTE_RUNTIME_INVISIBLE_ANNOTATIONS, AttributeLayout.CONTEXT_FIELD);
 
         final int rvaCount = SegmentUtils.countMatches(fieldFlags, rvaLayout);
         final int riaCount = SegmentUtils.countMatches(fieldFlags, riaLayout);
-        final int[] RxACount = { rvaCount, riaCount };
-        final int[] backwardsCalls = { 0, 0 };
+        final int[] RxACount = {rvaCount, riaCount};
+        final int[] backwardsCalls = {0, 0};
         if (rvaCount > 0) {
             backwardsCalls[0] = fieldAttrCalls[0];
             backwardsCallsUsed++;
@@ -994,8 +864,7 @@ public class ClassBands extends BandSet {
             backwardsCalls[1] = fieldAttrCalls[0];
             backwardsCallsUsed++;
         }
-        final MetadataBandGroup[] mb = parseMetadata(in, RxA, RxACount,
-                backwardsCalls, "field");
+        final MetadataBandGroup[] mb = parseMetadata(in, RxA, RxACount, backwardsCalls, "field");
         final List rvaAttributes = mb[0].getAttributes();
         final List riaAttributes = mb[1].getAttributes();
         int rvaAttributesIndex = 0;
@@ -1013,41 +882,36 @@ public class ClassBands extends BandSet {
         return backwardsCallsUsed;
     }
 
-    private MetadataBandGroup[] parseMetadata(final InputStream in, final String[] RxA,
-            final int[] RxACount, final int[] backwardsCallCounts, final String contextName)
-            throws IOException, Pack200Exception {
+    private MetadataBandGroup[] parseMetadata(final InputStream in, final String[] RxA, final int[] RxACount,
+        final int[] backwardsCallCounts, final String contextName) throws IOException, Pack200Exception {
         final MetadataBandGroup[] mbg = new MetadataBandGroup[RxA.length];
         for (int i = 0; i < RxA.length; i++) {
             mbg[i] = new MetadataBandGroup(RxA[i], cpBands);
             final String rxa = RxA[i];
             if (rxa.indexOf('P') >= 0) {
-                mbg[i].param_NB = decodeBandInt(contextName + "_" + rxa
-                        + "_param_NB", in, Codec.BYTE1, RxACount[i]);
+                mbg[i].param_NB = decodeBandInt(contextName + "_" + rxa + "_param_NB", in, Codec.BYTE1, RxACount[i]);
             }
             int pairCount = 0;
             if (!rxa.equals("AD")) {
-                mbg[i].anno_N = decodeBandInt(contextName + "_" + rxa
-                        + "_anno_N", in, Codec.UNSIGNED5, RxACount[i]);
-                mbg[i].type_RS = parseCPSignatureReferences(contextName
-                        + "_" + rxa + "_type_RS", in, Codec.UNSIGNED5,
-                        mbg[i].anno_N);
-                mbg[i].pair_N = decodeBandInt(contextName + "_" + rxa
-                        + "_pair_N", in, Codec.UNSIGNED5, mbg[i].anno_N);
+                mbg[i].anno_N = decodeBandInt(contextName + "_" + rxa + "_anno_N", in, Codec.UNSIGNED5, RxACount[i]);
+                mbg[i].type_RS = parseCPSignatureReferences(contextName + "_" + rxa + "_type_RS", in, Codec.UNSIGNED5,
+                    mbg[i].anno_N);
+                mbg[i].pair_N = decodeBandInt(contextName + "_" + rxa + "_pair_N", in, Codec.UNSIGNED5, mbg[i].anno_N);
                 for (int j = 0; j < mbg[i].pair_N.length; j++) {
                     for (int k = 0; k < mbg[i].pair_N[j].length; k++) {
                         pairCount += mbg[i].pair_N[j][k];
                     }
                 }
 
-                mbg[i].name_RU = parseCPUTF8References(contextName
-                        + "_" + rxa + "_name_RU", in, Codec.UNSIGNED5,
-                        pairCount);
+                mbg[i].name_RU = parseCPUTF8References(contextName + "_" + rxa + "_name_RU", in, Codec.UNSIGNED5,
+                    pairCount);
             } else {
                 pairCount = RxACount[i];
             }
-            mbg[i].T = decodeBandInt(contextName + "_" + rxa + "_T", in,
-                    Codec.BYTE1, pairCount + backwardsCallCounts[i]);
-            int ICount = 0, DCount = 0, FCount = 0, JCount = 0, cCount = 0, eCount = 0, sCount = 0, arrayCount = 0, atCount = 0;
+            mbg[i].T = decodeBandInt(contextName + "_" + rxa + "_T", in, Codec.BYTE1,
+                pairCount + backwardsCallCounts[i]);
+            int ICount = 0, DCount = 0, FCount = 0, JCount = 0, cCount = 0, eCount = 0, sCount = 0, arrayCount = 0,
+                atCount = 0;
             for (int j = 0; j < mbg[i].T.length; j++) {
                 final char c = (char) mbg[i].T[j];
                 switch (c) {
@@ -1084,69 +948,54 @@ public class ClassBands extends BandSet {
                     break;
                 }
             }
-            mbg[i].caseI_KI = parseCPIntReferences(contextName + "_" + rxa
-                    + "_caseI_KI", in, Codec.UNSIGNED5, ICount);
-            mbg[i].caseD_KD = parseCPDoubleReferences(contextName + "_" + rxa
-                    + "_caseD_KD", in, Codec.UNSIGNED5, DCount);
-            mbg[i].caseF_KF = parseCPFloatReferences(contextName + "_" + rxa
-                    + "_caseF_KF", in, Codec.UNSIGNED5, FCount);
-            mbg[i].caseJ_KJ = parseCPLongReferences(contextName + "_" + rxa
-                    + "_caseJ_KJ", in, Codec.UNSIGNED5, JCount);
-            mbg[i].casec_RS = parseCPSignatureReferences(contextName + "_" + rxa
-                    + "_casec_RS", in, Codec.UNSIGNED5, cCount);
-            mbg[i].caseet_RS = parseReferences(contextName + "_" + rxa
-                    + "_caseet_RS", in, Codec.UNSIGNED5, eCount, cpBands
-                    .getCpSignature());
-            mbg[i].caseec_RU = parseReferences(contextName + "_" + rxa
-                    + "_caseec_RU", in, Codec.UNSIGNED5, eCount, cpBands
-                    .getCpUTF8());
-            mbg[i].cases_RU = parseCPUTF8References(contextName + "_" + rxa
-                    + "_cases_RU", in, Codec.UNSIGNED5, sCount);
-            mbg[i].casearray_N = decodeBandInt(contextName + "_" + rxa
-                    + "_casearray_N", in, Codec.UNSIGNED5, arrayCount);
-            mbg[i].nesttype_RS = parseCPUTF8References(contextName + "_" + rxa
-                    + "_nesttype_RS", in, Codec.UNSIGNED5, atCount);
-            mbg[i].nestpair_N = decodeBandInt(contextName + "_" + rxa
-                    + "_nestpair_N", in, Codec.UNSIGNED5, atCount);
+            mbg[i].caseI_KI = parseCPIntReferences(contextName + "_" + rxa + "_caseI_KI", in, Codec.UNSIGNED5, ICount);
+            mbg[i].caseD_KD = parseCPDoubleReferences(contextName + "_" + rxa + "_caseD_KD", in, Codec.UNSIGNED5,
+                DCount);
+            mbg[i].caseF_KF = parseCPFloatReferences(contextName + "_" + rxa + "_caseF_KF", in, Codec.UNSIGNED5,
+                FCount);
+            mbg[i].caseJ_KJ = parseCPLongReferences(contextName + "_" + rxa + "_caseJ_KJ", in, Codec.UNSIGNED5, JCount);
+            mbg[i].casec_RS = parseCPSignatureReferences(contextName + "_" + rxa + "_casec_RS", in, Codec.UNSIGNED5,
+                cCount);
+            mbg[i].caseet_RS = parseReferences(contextName + "_" + rxa + "_caseet_RS", in, Codec.UNSIGNED5, eCount,
+                cpBands.getCpSignature());
+            mbg[i].caseec_RU = parseReferences(contextName + "_" + rxa + "_caseec_RU", in, Codec.UNSIGNED5, eCount,
+                cpBands.getCpUTF8());
+            mbg[i].cases_RU = parseCPUTF8References(contextName + "_" + rxa + "_cases_RU", in, Codec.UNSIGNED5, sCount);
+            mbg[i].casearray_N = decodeBandInt(contextName + "_" + rxa + "_casearray_N", in, Codec.UNSIGNED5,
+                arrayCount);
+            mbg[i].nesttype_RS = parseCPUTF8References(contextName + "_" + rxa + "_nesttype_RS", in, Codec.UNSIGNED5,
+                atCount);
+            mbg[i].nestpair_N = decodeBandInt(contextName + "_" + rxa + "_nestpair_N", in, Codec.UNSIGNED5, atCount);
             int nestPairCount = 0;
             for (int j = 0; j < mbg[i].nestpair_N.length; j++) {
                 nestPairCount += mbg[i].nestpair_N[j];
             }
-            mbg[i].nestname_RU = parseCPUTF8References(contextName + "_" + rxa
-                    + "_nestname_RU", in, Codec.UNSIGNED5, nestPairCount);
+            mbg[i].nestname_RU = parseCPUTF8References(contextName + "_" + rxa + "_nestname_RU", in, Codec.UNSIGNED5,
+                nestPairCount);
         }
         return mbg;
     }
 
     private int parseMethodMetadataBands(final InputStream in, final int[] methodAttrCalls)
-            throws Pack200Exception, IOException {
+        throws Pack200Exception, IOException {
         int backwardsCallsUsed = 0;
-        final String[] RxA = { "RVA", "RIA", "RVPA", "RIPA", "AD" };
-        final int[] rxaCounts = { 0, 0, 0, 0, 0 };
+        final String[] RxA = {"RVA", "RIA", "RVPA", "RIPA", "AD"};
+        final int[] rxaCounts = {0, 0, 0, 0, 0};
 
-        final AttributeLayout rvaLayout = attrMap.getAttributeLayout(
-                AttributeLayout.ATTRIBUTE_RUNTIME_VISIBLE_ANNOTATIONS,
-                AttributeLayout.CONTEXT_METHOD);
+        final AttributeLayout rvaLayout = attrMap
+            .getAttributeLayout(AttributeLayout.ATTRIBUTE_RUNTIME_VISIBLE_ANNOTATIONS, AttributeLayout.CONTEXT_METHOD);
         final AttributeLayout riaLayout = attrMap.getAttributeLayout(
-                AttributeLayout.ATTRIBUTE_RUNTIME_INVISIBLE_ANNOTATIONS,
-                AttributeLayout.CONTEXT_METHOD);
-        final AttributeLayout rvpaLayout = attrMap
-                .getAttributeLayout(
-                        AttributeLayout.ATTRIBUTE_RUNTIME_VISIBLE_PARAMETER_ANNOTATIONS,
-                        AttributeLayout.CONTEXT_METHOD);
-        final AttributeLayout ripaLayout = attrMap
-                .getAttributeLayout(
-                        AttributeLayout.ATTRIBUTE_RUNTIME_INVISIBLE_PARAMETER_ANNOTATIONS,
-                        AttributeLayout.CONTEXT_METHOD);
-        final AttributeLayout adLayout = attrMap.getAttributeLayout(
-                AttributeLayout.ATTRIBUTE_ANNOTATION_DEFAULT,
-                AttributeLayout.CONTEXT_METHOD);
-        final AttributeLayout[] rxaLayouts = { rvaLayout,
-                riaLayout, rvpaLayout, ripaLayout, adLayout };
+            AttributeLayout.ATTRIBUTE_RUNTIME_INVISIBLE_ANNOTATIONS, AttributeLayout.CONTEXT_METHOD);
+        final AttributeLayout rvpaLayout = attrMap.getAttributeLayout(
+            AttributeLayout.ATTRIBUTE_RUNTIME_VISIBLE_PARAMETER_ANNOTATIONS, AttributeLayout.CONTEXT_METHOD);
+        final AttributeLayout ripaLayout = attrMap.getAttributeLayout(
+            AttributeLayout.ATTRIBUTE_RUNTIME_INVISIBLE_PARAMETER_ANNOTATIONS, AttributeLayout.CONTEXT_METHOD);
+        final AttributeLayout adLayout = attrMap.getAttributeLayout(AttributeLayout.ATTRIBUTE_ANNOTATION_DEFAULT,
+            AttributeLayout.CONTEXT_METHOD);
+        final AttributeLayout[] rxaLayouts = {rvaLayout, riaLayout, rvpaLayout, ripaLayout, adLayout};
 
         for (int i = 0; i < rxaLayouts.length; i++) {
-            rxaCounts[i] = SegmentUtils
-                    .countMatches(methodFlags, rxaLayouts[i]);
+            rxaCounts[i] = SegmentUtils.countMatches(methodFlags, rxaLayouts[i]);
         }
         final int[] backwardsCalls = new int[5];
         int methodAttrIndex = 0;
@@ -1159,8 +1008,7 @@ public class ClassBands extends BandSet {
                 backwardsCalls[i] = 0;
             }
         }
-        final MetadataBandGroup[] mbgs = parseMetadata(in, RxA, rxaCounts,
-                backwardsCalls, "method");
+        final MetadataBandGroup[] mbgs = parseMetadata(in, RxA, rxaCounts, backwardsCalls, "method");
         final List[] attributeLists = new List[RxA.length];
         final int[] attributeListIndexes = new int[RxA.length];
         for (int i = 0; i < mbgs.length; i++) {
@@ -1171,8 +1019,7 @@ public class ClassBands extends BandSet {
             for (int j = 0; j < methodFlags[i].length; j++) {
                 for (int k = 0; k < rxaLayouts.length; k++) {
                     if (rxaLayouts[k].matches(methodFlags[i][j])) {
-                        methodAttributes[i][j]
-                                .add(attributeLists[k].get(attributeListIndexes[k]++));
+                        methodAttributes[i][j].add(attributeLists[k].get(attributeListIndexes[k]++));
                     }
                 }
             }
@@ -1181,8 +1028,7 @@ public class ClassBands extends BandSet {
     }
 
     /**
-     * Parse the class metadata bands and return the number of backwards
-     * callables.
+     * Parse the class metadata bands and return the number of backwards callables.
      *
      * @param in TODO
      * @param classAttrCalls TODO
@@ -1191,20 +1037,18 @@ public class ClassBands extends BandSet {
      * @throws IOException If an I/O error occurs.
      */
     private int parseClassMetadataBands(final InputStream in, final int[] classAttrCalls)
-            throws Pack200Exception, IOException {
+        throws Pack200Exception, IOException {
         int numBackwardsCalls = 0;
-        final String[] RxA = { "RVA", "RIA" };
+        final String[] RxA = {"RVA", "RIA"};
 
-        final AttributeLayout rvaLayout = attrMap.getAttributeLayout(
-                AttributeLayout.ATTRIBUTE_RUNTIME_VISIBLE_ANNOTATIONS,
-                AttributeLayout.CONTEXT_CLASS);
-        final AttributeLayout riaLayout = attrMap.getAttributeLayout(
-                AttributeLayout.ATTRIBUTE_RUNTIME_INVISIBLE_ANNOTATIONS,
-                AttributeLayout.CONTEXT_CLASS);
+        final AttributeLayout rvaLayout = attrMap
+            .getAttributeLayout(AttributeLayout.ATTRIBUTE_RUNTIME_VISIBLE_ANNOTATIONS, AttributeLayout.CONTEXT_CLASS);
+        final AttributeLayout riaLayout = attrMap
+            .getAttributeLayout(AttributeLayout.ATTRIBUTE_RUNTIME_INVISIBLE_ANNOTATIONS, AttributeLayout.CONTEXT_CLASS);
         final int rvaCount = SegmentUtils.countMatches(classFlags, rvaLayout);
         final int riaCount = SegmentUtils.countMatches(classFlags, riaLayout);
-        final int[] RxACount = { rvaCount, riaCount };
-        final int[] backwardsCalls = { 0, 0 };
+        final int[] RxACount = {rvaCount, riaCount};
+        final int[] backwardsCalls = {0, 0};
         if (rvaCount > 0) {
             numBackwardsCalls++;
             backwardsCalls[0] = classAttrCalls[0];
@@ -1216,8 +1060,7 @@ public class ClassBands extends BandSet {
             numBackwardsCalls++;
             backwardsCalls[1] = classAttrCalls[0];
         }
-        final MetadataBandGroup[] mbgs = parseMetadata(in, RxA, RxACount,
-                backwardsCalls, "class");
+        final MetadataBandGroup[] mbgs = parseMetadata(in, RxA, RxACount, backwardsCalls, "class");
         final List rvaAttributes = mbgs[0].getAttributes();
         final List riaAttributes = mbgs[1].getAttributes();
         int rvaAttributesIndex = 0;
@@ -1249,8 +1092,7 @@ public class ClassBands extends BandSet {
         if (classAccessFlags == null) {
             long mask = 0x7FFF;
             for (int i = 0; i < 16; i++) {
-                final AttributeLayout layout = attrMap.getAttributeLayout(i,
-                        AttributeLayout.CONTEXT_CLASS);
+                final AttributeLayout layout = attrMap.getAttributeLayout(i, AttributeLayout.CONTEXT_CLASS);
                 if (layout != null && !layout.isDefaultLayout()) {
                     mask &= ~(1 << i);
                 }
@@ -1303,8 +1145,7 @@ public class ClassBands extends BandSet {
         if (fieldAccessFlags == null) {
             long mask = 0x7FFF;
             for (int i = 0; i < 16; i++) {
-                final AttributeLayout layout = attrMap.getAttributeLayout(i,
-                        AttributeLayout.CONTEXT_FIELD);
+                final AttributeLayout layout = attrMap.getAttributeLayout(i, AttributeLayout.CONTEXT_FIELD);
                 if (layout != null && !layout.isDefaultLayout()) {
                     mask &= ~(1 << i);
                 }
@@ -1321,11 +1162,9 @@ public class ClassBands extends BandSet {
     }
... 6147 lines suppressed ...