8224157: BCEL: update to version 6.3.1
authorjoehw
Wed, 26 Jun 2019 05:49:59 +0000
changeset 55496 8e0ae3830fca
parent 55495 badfa812b82a
child 55497 d3a33953b936
child 57429 6c1c6874a144
8224157: BCEL: update to version 6.3.1 Reviewed-by: dfuchs, lancea
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/Const.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/Repository.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/AccessFlags.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Attribute.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/AttributeReader.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ClassFormatException.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ClassParser.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Code.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/CodeException.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Constant.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantCP.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantClass.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantDouble.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantDynamic.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantFieldref.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantFloat.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantInteger.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantInterfaceMethodref.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantLong.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantMethodref.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantModule.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantNameAndType.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantObject.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantPackage.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantPool.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantString.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantUtf8.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantValue.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Deprecated.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/DescendingVisitor.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ElementValue.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/EmptyVisitor.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ExceptionTable.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Field.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/FieldOrMethod.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/InnerClass.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/InnerClasses.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/JavaClass.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/LineNumber.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/LineNumberTable.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/LocalVariable.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/LocalVariableTable.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/LocalVariableTypeTable.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Method.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Node.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/PMGClass.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Signature.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/SourceFile.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/StackMap.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/StackMapEntry.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/StackMapType.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Synthetic.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Unknown.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/UnknownAttributeReader.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Utility.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Visitor.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/AALOAD.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/AASTORE.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ACONST_NULL.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ALOAD.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ANEWARRAY.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ARETURN.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ARRAYLENGTH.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ASTORE.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ATHROW.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/AllocationInstruction.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/AnnotationEntryGen.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ArithmeticInstruction.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ArrayInstruction.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ArrayType.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/BALOAD.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/BASTORE.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/BIPUSH.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/BREAKPOINT.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/BasicType.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/BranchHandle.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/BranchInstruction.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/CALOAD.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/CASTORE.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/CHECKCAST.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/CPInstruction.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ClassGen.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ClassGenException.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ClassObserver.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/CodeExceptionGen.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/CompoundInstruction.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ConstantPoolGen.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ConstantPushInstruction.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ConversionInstruction.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/D2F.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/D2I.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/D2L.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DADD.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DALOAD.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DASTORE.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DCMPG.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DCMPL.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DCONST.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DDIV.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DLOAD.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DMUL.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DNEG.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DREM.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DRETURN.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DSTORE.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DSUB.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DUP.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DUP2.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DUP2_X1.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DUP2_X2.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DUP_X1.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DUP_X2.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ElementValueGen.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/EmptyVisitor.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ExceptionThrower.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/F2D.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/F2I.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/F2L.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FADD.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FALOAD.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FASTORE.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FCMPG.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FCMPL.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FCONST.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FDIV.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FLOAD.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FMUL.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FNEG.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FREM.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FRETURN.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FSTORE.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FSUB.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FieldGen.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FieldGenOrMethodGen.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FieldInstruction.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FieldObserver.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FieldOrMethod.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/GETFIELD.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/GETSTATIC.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/GOTO.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/GOTO_W.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/GotoInstruction.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/I2B.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/I2C.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/I2D.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/I2F.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/I2L.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/I2S.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IADD.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IALOAD.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IAND.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IASTORE.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ICONST.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IDIV.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IFEQ.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IFGE.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IFGT.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IFLE.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IFLT.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IFNE.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IFNONNULL.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IFNULL.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ACMPEQ.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ACMPNE.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPEQ.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPGE.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPGT.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPLE.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPLT.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPNE.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IINC.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ILOAD.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IMPDEP1.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IMPDEP2.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IMUL.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INEG.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INSTANCEOF.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKEDYNAMIC.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKEINTERFACE.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKESPECIAL.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKESTATIC.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKEVIRTUAL.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IOR.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IREM.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IRETURN.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ISHL.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ISHR.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ISTORE.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ISUB.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IUSHR.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IXOR.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IfInstruction.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IndexedInstruction.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/Instruction.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionComparator.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionConst.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionFactory.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionHandle.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionList.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionListObserver.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionTargeter.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InvokeInstruction.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/JSR.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/JSR_W.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/JsrInstruction.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/L2D.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/L2F.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/L2I.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LADD.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LALOAD.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LAND.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LASTORE.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LCMP.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LCONST.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LDC.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LDC2_W.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LDC_W.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LDIV.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LLOAD.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LMUL.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LNEG.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LOOKUPSWITCH.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LOR.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LREM.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LRETURN.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LSHL.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LSHR.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LSTORE.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LSUB.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LUSHR.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LXOR.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LineNumberGen.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LoadClass.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LoadInstruction.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LocalVariableGen.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LocalVariableInstruction.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/MONITORENTER.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/MONITOREXIT.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/MULTIANEWARRAY.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/MethodGen.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/MethodObserver.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/NEW.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/NEWARRAY.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/NOP.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/NamedAndTyped.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ObjectType.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/POP.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/POP2.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/PUSH.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/PUTFIELD.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/PUTSTATIC.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/PopInstruction.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/PushInstruction.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/RET.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/RETURN.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ReferenceType.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ReturnInstruction.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ReturnaddressType.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/SALOAD.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/SASTORE.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/SIPUSH.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/SWAP.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/SWITCH.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/Select.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/StackConsumer.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/StackInstruction.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/StackProducer.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/StoreInstruction.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/TABLESWITCH.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/TargetLostException.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/Type.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/TypedInstruction.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/UnconditionalBranch.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/VariableLengthInstruction.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/Visitor.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/AttributeHTML.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/BCELComparator.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/BCELFactory.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/BCELifier.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/ByteSequence.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/Class2HTML.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/ClassQueue.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/ClassSet.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/ClassStack.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/CodeHTML.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/ConstantHTML.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/InstructionFinder.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/MethodHTML.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/ModularRuntimeImage.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/Repository.java
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/SyntheticRepository.java
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/Const.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/Const.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,3503 +25,2362 @@
 /**
  * Constants for the project, mostly defined in the JVM specification.
  *
- * @version $Id: Const.java 1748987 2016-06-18 12:36:47Z sebb $
+ * @version $Id$
  * @since 6.0 (intended to replace the Constants interface)
  */
 public final class Const {
 
-    /**
-     * Java class file format Magic number (0xCAFEBABE)
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.1-200-A">
-     * The ClassFile Structure in The Java Virtual Machine Specification</a>
-     */
-    public static final int JVM_CLASSFILE_MAGIC = 0xCAFEBABE;
-
-    /**
-     * Major version number of class files for Java 1.1.
-     *
-     * @see #MINOR_1_1
-   *
-     */
-    public static final short MAJOR_1_1 = 45;
-
-    /**
-     * Minor version number of class files for Java 1.1.
-     *
-     * @see #MAJOR_1_1
+  /**
+   * Java class file format Magic number (0xCAFEBABE)
    *
-     */
-    public static final short MINOR_1_1 = 3;
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.1-200-A">
+   * The ClassFile Structure in The Java Virtual Machine Specification</a>
+   */
+  public static final int JVM_CLASSFILE_MAGIC = 0xCAFEBABE;
 
-    /**
-     * Major version number of class files for Java 1.2.
-     *
-     * @see #MINOR_1_2
-   *
-     */
-    public static final short MAJOR_1_2 = 46;
+  /** Major version number of class files for Java 1.1.
+   *  @see #MINOR_1_1
+   *  */
+  public static final short MAJOR_1_1 = 45;
+
+  /** Minor version number of class files for Java 1.1.
+   *  @see #MAJOR_1_1
+   *  */
+  public static final short MINOR_1_1 = 3;
 
-    /**
-     * Minor version number of class files for Java 1.2.
-     *
-     * @see #MAJOR_1_2
-   *
-     */
-    public static final short MINOR_1_2 = 0;
+  /** Major version number of class files for Java 1.2.
+   *  @see #MINOR_1_2
+   *  */
+  public static final short MAJOR_1_2 = 46;
 
-    /**
-     * Major version number of class files for Java 1.2.
-     *
-     * @see #MINOR_1_2
-   *
-     */
-    public static final short MAJOR_1_3 = 47;
+  /** Minor version number of class files for Java 1.2.
+   *  @see #MAJOR_1_2
+   *  */
+  public static final short MINOR_1_2 = 0;
+
+  /** Major version number of class files for Java 1.2.
+   *  @see #MINOR_1_2
+   *  */
+  public static final short MAJOR_1_3 = 47;
 
-    /**
-     * Minor version number of class files for Java 1.3.
-     *
-     * @see #MAJOR_1_3
-   *
-     */
-    public static final short MINOR_1_3 = 0;
+  /** Minor version number of class files for Java 1.3.
+   *  @see #MAJOR_1_3
+   *  */
+  public static final short MINOR_1_3 = 0;
 
-    /**
-     * Major version number of class files for Java 1.3.
-     *
-     * @see #MINOR_1_3
-   *
-     */
-    public static final short MAJOR_1_4 = 48;
+  /** Major version number of class files for Java 1.3.
+   *  @see #MINOR_1_3
+   *  */
+  public static final short MAJOR_1_4 = 48;
 
-    /**
-     * Minor version number of class files for Java 1.4.
-     *
-     * @see #MAJOR_1_4
-   *
-     */
-    public static final short MINOR_1_4 = 0;
+  /** Minor version number of class files for Java 1.4.
+   *  @see #MAJOR_1_4
+   *  */
+  public static final short MINOR_1_4 = 0;
 
-    /**
-     * Major version number of class files for Java 1.4.
-     *
-     * @see #MINOR_1_4
-   *
-     */
-    public static final short MAJOR_1_5 = 49;
+  /** Major version number of class files for Java 1.4.
+   *  @see #MINOR_1_4
+   *  */
+  public static final short MAJOR_1_5 = 49;
 
-    /**
-     * Minor version number of class files for Java 1.5.
-     *
-     * @see #MAJOR_1_5
-   *
-     */
-    public static final short MINOR_1_5 = 0;
+  /** Minor version number of class files for Java 1.5.
+   *  @see #MAJOR_1_5
+   *  */
+  public static final short MINOR_1_5 = 0;
 
-    /**
-     * Major version number of class files for Java 1.6.
-     *
-     * @see #MINOR_1_6
-   *
-     */
-    public static final short MAJOR_1_6 = 50;
+  /** Major version number of class files for Java 1.6.
+   *  @see #MINOR_1_6
+   *  */
+  public static final short MAJOR_1_6 = 50;
 
-    /**
-     * Minor version number of class files for Java 1.6.
-     *
-     * @see #MAJOR_1_6
-   *
-     */
-    public static final short MINOR_1_6 = 0;
+  /** Minor version number of class files for Java 1.6.
+   *  @see #MAJOR_1_6
+   *  */
+  public static final short MINOR_1_6 = 0;
 
-    /**
-     * Major version number of class files for Java 1.7.
-     *
-     * @see #MINOR_1_7
-   *
-     */
-    public static final short MAJOR_1_7 = 51;
+  /** Major version number of class files for Java 1.7.
+   *  @see #MINOR_1_7
+   *  */
+  public static final short MAJOR_1_7 = 51;
 
-    /**
-     * Minor version number of class files for Java 1.7.
-     *
-     * @see #MAJOR_1_7
-   *
-     */
-    public static final short MINOR_1_7 = 0;
+  /** Minor version number of class files for Java 1.7.
+   *  @see #MAJOR_1_7
+   *  */
+  public static final short MINOR_1_7 = 0;
 
-    /**
-     * Major version number of class files for Java 1.8.
-     *
-     * @see #MINOR_1_8
-   *
-     */
-    public static final short MAJOR_1_8 = 52;
+  /** Major version number of class files for Java 1.8.
+   *  @see #MINOR_1_8
+   *  */
+  public static final short MAJOR_1_8 = 52;
 
-    /**
-     * Major version number of class files for Java 9.
-     *
-     * @see #MINOR_1_9
-   *
-     */
-    public static final short MAJOR_1_9 = 53;
+  /** Minor version number of class files for Java 1.8.
+   *  @see #MAJOR_1_8
+   *  */
+  public static final short MINOR_1_8 = 0;
+
+  /** Major version number of class files for Java 9.
+   *  @see #MINOR_9
+   *  */
+  public static final short MAJOR_9 = 53;
 
-    /**
-     * Minor version number of class files for Java 1.8.
-     *
-     * @see #MAJOR_1_8
-   *
-     */
-    public static final short MINOR_1_8 = 0;
+  /** Minor version number of class files for Java 9.
+   *  @see #MAJOR_9
+   *  */
+  public static final short MINOR_9 = 0;
 
-    /**
-     * Minor version number of class files for Java 9.
-     *
-     * @see #MAJOR_1_9
-   *
-     */
-    public static final short MINOR_1_9 = 0;
+  /**
+   * @deprecated Use {@link #MAJOR_9} instead
+   */
+  @Deprecated
+  public static final short MAJOR_1_9 = MAJOR_9;
 
-    /**
-     * Default major version number. Class file is for Java 1.1.
-     *
-     * @see #MAJOR_1_1
-   *
-     */
-    public static final short MAJOR = MAJOR_1_1;
+  /**
+   * @deprecated Use {@link #MINOR_9} instead
+   */
+  @Deprecated
+  public static final short MINOR_1_9 = MINOR_9;
 
-    /**
-     * Default major version number. Class file is for Java 1.1.
-     *
-     * @see #MAJOR_1_1
-   *
-     */
-    public static final short MINOR = MINOR_1_1;
+  /** Major version number of class files for Java 10.
+   *  @see #MINOR_10
+   *  */
+  public static final short MAJOR_10 = 54;
 
-    /**
-     * Maximum value for an unsigned short.
-     */
-    public static final int MAX_SHORT = 65535; // 2^16 - 1
-
-    /**
-     * Maximum value for an unsigned byte.
-     */
-    public static final int MAX_BYTE = 255; // 2^8 - 1
+  /** Minor version number of class files for Java 10.
+   *  @see #MAJOR_10
+   *  */
+  public static final short MINOR_10 = 0;
 
-    /**
-     * One of the access flags for fields, methods, or classes.
-     *
-     * @see <a
-     * href='http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.5'>
-     * Flag definitions for Fields in the Java Virtual Machine Specification
-     * (Java SE 8 Edition).</a>
-     * @see <a
-     * href='http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.6'>
-     * Flag definitions for Methods in the Java Virtual Machine Specification
-     * (Java SE 8 Edition).</a>
-     * @see <a
-     * href='http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.7.6-300-D.1-D.1'>
-     * Flag definitions for Classes in the Java Virtual Machine Specification
-     * (Java SE 8 Edition).</a>
-     */
-    public static final short ACC_PUBLIC = 0x0001;
+  /** Major version number of class files for Java 11.
+   *  @see #MINOR_11
+   *  */
+  public static final short MAJOR_11 = 55;
+
+  /** Minor version number of class files for Java 11.
+   *  @see #MAJOR_11
+   *  */
+  public static final short MINOR_11 = 0;
 
-    /**
-     * One of the access flags for fields, methods, or classes.
-     *
-     * @see #ACC_PUBLIC
-     */
-    public static final short ACC_PRIVATE = 0x0002;
+  /** Major version number of class files for Java 12.
+   *  @see #MINOR_12
+   *  */
+  public static final short MAJOR_12 = 56;
 
-    /**
-     * One of the access flags for fields, methods, or classes.
-     *
-     * @see #ACC_PUBLIC
-     */
-    public static final short ACC_PROTECTED = 0x0004;
+  /** Minor version number of class files for Java 12.
+   *  @see #MAJOR_12
+   *  */
+  public static final short MINOR_12 = 0;
 
-    /**
-     * One of the access flags for fields, methods, or classes.
-     *
-     * @see #ACC_PUBLIC
-     */
-    public static final short ACC_STATIC = 0x0008;
+  /** Major version number of class files for Java 13.
+   *  @see #MINOR_13
+   *  */
+  public static final short MAJOR_13 = 57;
 
-    /**
-     * One of the access flags for fields, methods, or classes.
-     *
-     * @see #ACC_PUBLIC
-     */
-    public static final short ACC_FINAL = 0x0010;
-
-    /**
-     * One of the access flags for fields, methods, or classes.
-     *
-     * @see #ACC_PUBLIC
-     */
-    public static final short ACC_SYNCHRONIZED = 0x0020;
+  /** Minor version number of class files for Java 13.
+   *  @see #MAJOR_13
+   *  */
+  public static final short MINOR_13 = 0;
 
-    /**
-     * One of the access flags for fields, methods, or classes.
-     *
-     * @see #ACC_PUBLIC
-     */
-    public static final short ACC_VOLATILE = 0x0040;
-
-    /**
-     * One of the access flags for fields, methods, or classes.
-     *
-     * @see #ACC_PUBLIC
-     */
-    public static final short ACC_BRIDGE = 0x0040;
+  /** Default major version number.  Class file is for Java 1.1.
+   *  @see #MAJOR_1_1
+   *  */
+  public static final short MAJOR = MAJOR_1_1;
 
-    /**
-     * One of the access flags for fields, methods, or classes.
-     *
-     * @see #ACC_PUBLIC
-     */
-    public static final short ACC_TRANSIENT = 0x0080;
+  /** Default major version number.  Class file is for Java 1.1.
+   *  @see #MAJOR_1_1
+   *  */
+  public static final short MINOR     = MINOR_1_1;
 
-    /**
-     * One of the access flags for fields, methods, or classes.
-     *
-     * @see #ACC_PUBLIC
-     */
-    public static final short ACC_VARARGS = 0x0080;
+  /** Maximum value for an unsigned short.
+   */
+  public static final int MAX_SHORT = 65535; // 2^16 - 1
+
+  /** Maximum value for an unsigned byte.
+   */
+  public static final int MAX_BYTE  = 255; // 2^8 - 1
 
-    /**
-     * One of the access flags for fields, methods, or classes.
-     *
-     * @see #ACC_PUBLIC
-     */
-    public static final short ACC_NATIVE = 0x0100;
-
-    /**
-     * One of the access flags for fields, methods, or classes.
-     *
-     * @see #ACC_PUBLIC
-     */
-    public static final short ACC_INTERFACE = 0x0200;
+  /** One of the access flags for fields, methods, or classes.
+   *  @see <a href='http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.5'>
+   *  Flag definitions for Fields in the Java Virtual Machine Specification (Java SE 8 Edition).</a>
+   *  @see <a href='http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.6'>
+   *  Flag definitions for Methods in the Java Virtual Machine Specification (Java SE 8 Edition).</a>
+   *  @see <a href='http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.7.6-300-D.1-D.1'>
+   *  Flag definitions for Classes in the Java Virtual Machine Specification (Java SE 8 Edition).</a>
+   */
+  public static final short ACC_PUBLIC       = 0x0001;
 
-    /**
-     * One of the access flags for fields, methods, or classes.
-     *
-     * @see #ACC_PUBLIC
-     */
-    public static final short ACC_ABSTRACT = 0x0400;
+  /** One of the access flags for fields, methods, or classes.
+   *  @see #ACC_PUBLIC
+   */
+  public static final short ACC_PRIVATE      = 0x0002;
 
-    /**
-     * One of the access flags for fields, methods, or classes.
-     *
-     * @see #ACC_PUBLIC
-     */
-    public static final short ACC_STRICT = 0x0800;
+  /** One of the access flags for fields, methods, or classes.
+   *  @see #ACC_PUBLIC
+   */
+  public static final short ACC_PROTECTED    = 0x0004;
 
-    /**
-     * One of the access flags for fields, methods, or classes.
-     *
-     * @see #ACC_PUBLIC
-     */
-    public static final short ACC_SYNTHETIC = 0x1000;
+  /** One of the access flags for fields, methods, or classes.
+   *  @see #ACC_PUBLIC
+   */
+  public static final short ACC_STATIC       = 0x0008;
 
-    /**
-     * One of the access flags for fields, methods, or classes.
-     *
-     * @see #ACC_PUBLIC
-     */
-    public static final short ACC_ANNOTATION = 0x2000;
+  /** One of the access flags for fields, methods, or classes.
+   *  @see #ACC_PUBLIC
+   */
+  public static final short ACC_FINAL        = 0x0010;
 
-    /**
-     * One of the access flags for fields, methods, or classes.
-     *
-     * @see #ACC_PUBLIC
-     */
-    public static final short ACC_ENUM = 0x4000;
+  /** One of the access flags for fields, methods, or classes.
+   *  @see #ACC_PUBLIC
+   */
+  public static final short ACC_SYNCHRONIZED = 0x0020;
 
-    /**
-     * One of the access flags for fields, methods, or classes.
-     *
-     * @see #ACC_PUBLIC
-     */
-    public static final short ACC_MANDATED = (short) 0x8000;
+  /** One of the access flags for fields, methods, or classes.
+   *  @see #ACC_PUBLIC
+   */
+  public static final short ACC_VOLATILE     = 0x0040;
+
+  /** One of the access flags for fields, methods, or classes.
+   *  @see #ACC_PUBLIC
+   */
+  public static final short ACC_BRIDGE       = 0x0040;
 
-    // Applies to classes compiled by new compilers only
-    /**
-     * One of the access flags for fields, methods, or classes.
-     *
-     * @see #ACC_PUBLIC
-     */
-    public static final short ACC_SUPER = 0x0020;
+  /** One of the access flags for fields, methods, or classes.
+   *  @see #ACC_PUBLIC
+   */
+  public static final short ACC_TRANSIENT    = 0x0080;
 
-    /**
-     * One of the access flags for fields, methods, or classes.
-     *
-     * @see #ACC_PUBLIC
-     */
-    public static final short MAX_ACC_FLAG = ACC_ENUM;
+  /** One of the access flags for fields, methods, or classes.
+   *  @see #ACC_PUBLIC
+   */
+  public static final short ACC_VARARGS      = 0x0080;
 
-    /**
-     * The names of the access flags.
-     */
-    private static final String[] ACCESS_NAMES = {
-        "public", "private", "protected", "static", "final", "synchronized",
-        "volatile", "transient", "native", "interface", "abstract", "strictfp",
-        "synthetic", "annotation", "enum"
-    };
+  /** One of the access flags for fields, methods, or classes.
+   *  @see #ACC_PUBLIC
+   */
+  public static final short ACC_NATIVE       = 0x0100;
 
-    /**
-     * @since 6.0
-     */
-    public static final int ACCESS_NAMES_LENGTH = ACCESS_NAMES.length;
+  /** One of the access flags for fields, methods, or classes.
+   *  @see #ACC_PUBLIC
+   */
+  public static final short ACC_INTERFACE    = 0x0200;
 
-    /**
-     * @param index
-     * @return the ACCESS_NAMES entry at the given index
-     * @since 6.0
-     */
-    public static String getAccessName(final int index) {
-        return ACCESS_NAMES[index];
-    }
+  /** One of the access flags for fields, methods, or classes.
+   *  @see #ACC_PUBLIC
+   */
+  public static final short ACC_ABSTRACT     = 0x0400;
 
-    /*
-     * The description of the constant pool is at:
-     * http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4
-     * References below are to the individual sections
-     */
-    /**
-     * Marks a constant pool entry as type UTF-8.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.7">
-     * The Constant Pool in The Java Virtual Machine Specification</a>
-     */
-    public static final byte CONSTANT_Utf8 = 1;
+  /** One of the access flags for fields, methods, or classes.
+   *  @see #ACC_PUBLIC
+   */
+  public static final short ACC_STRICT       = 0x0800;
+
+  /** One of the access flags for fields, methods, or classes.
+   *  @see #ACC_PUBLIC
+   */
+  public static final short ACC_SYNTHETIC    = 0x1000;
 
-    /**
-     * Marks a constant pool entry as type Integer.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.4">
-     * The Constant Pool in The Java Virtual Machine Specification</a>
-     */
-    public static final byte CONSTANT_Integer = 3;
+  /** One of the access flags for fields, methods, or classes.
+   *  @see #ACC_PUBLIC
+   */
+  public static final short ACC_ANNOTATION   = 0x2000;
 
-    /**
-     * Marks a constant pool entry as type Float.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.4">
-     * The Constant Pool in The Java Virtual Machine Specification</a>
-     */
-    public static final byte CONSTANT_Float = 4;
+  /** One of the access flags for fields, methods, or classes.
+   *  @see #ACC_PUBLIC
+   */
+  public static final short ACC_ENUM         = 0x4000;
 
-    /**
-     * Marks a constant pool entry as type Long.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.5">
-     * The Constant Pool in The Java Virtual Machine Specification</a>
-     */
-    public static final byte CONSTANT_Long = 5;
+  /** One of the access flags for fields, methods, or classes.
+   *  @see #ACC_PUBLIC
+   */
+  public static final short ACC_MANDATED     = (short) 0x8000;
 
-    /**
-     * Marks a constant pool entry as type Double.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.5">
-     * The Constant Pool in The Java Virtual Machine Specification</a>
-     */
-    public static final byte CONSTANT_Double = 6;
+  // Applies to classes compiled by new compilers only
+  /** One of the access flags for fields, methods, or classes.
+   *  @see #ACC_PUBLIC
+   */
+  public static final short ACC_SUPER        = 0x0020;
 
-    /**
-     * Marks a constant pool entry as a Class
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.1">
-     * The Constant Pool in The Java Virtual Machine Specification</a>
-     */
-    public static final byte CONSTANT_Class = 7;
+  /** One of the access flags for fields, methods, or classes.
+   *  @see #ACC_PUBLIC
+   */
+  public static final short MAX_ACC_FLAG     = ACC_ENUM;
 
-    /**
-     * Marks a constant pool entry as a Field Reference.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.2">
-     * The Constant Pool in The Java Virtual Machine Specification</a>
-     */
-    public static final byte CONSTANT_Fieldref = 9;
+  /**
+   * The names of the access flags.
+   */
+  private static final String[] ACCESS_NAMES = {
+    "public", "private", "protected", "static", "final", "synchronized",
+    "volatile", "transient", "native", "interface", "abstract", "strictfp",
+    "synthetic", "annotation", "enum"
+  };
 
-    /**
-     * Marks a constant pool entry as type String
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.3">
-     * The Constant Pool in The Java Virtual Machine Specification</a>
-     */
-    public static final byte CONSTANT_String = 8;
+  /** @since 6.0 */
+  public static final int ACCESS_NAMES_LENGTH = ACCESS_NAMES.length;
 
-    /**
-     * Marks a constant pool entry as a Method Reference.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.2">
-     * The Constant Pool in The Java Virtual Machine Specification</a>
-     */
-    public static final byte CONSTANT_Methodref = 10;
-
-    /**
-     * Marks a constant pool entry as an Interface Method Reference.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.2">
-     * The Constant Pool in The Java Virtual Machine Specification</a>
-     */
-    public static final byte CONSTANT_InterfaceMethodref = 11;
+  /**
+   * @param index
+   * @return the ACCESS_NAMES entry at the given index
+   * @since 6.0
+   */
+  public static String getAccessName(final int index) {
+      return ACCESS_NAMES[index];
+  }
 
-    /**
-     * Marks a constant pool entry as a name and type.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.6">
-     * The Constant Pool in The Java Virtual Machine Specification</a>
-     */
-    public static final byte CONSTANT_NameAndType = 12;
+  /*
+   * The description of the constant pool is at:
+   * http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4
+   * References below are to the individual sections
+   */
 
-    /**
-     * Marks a constant pool entry as a Method Handle.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.8">
-     * The Constant Pool in The Java Virtual Machine Specification</a>
-     */
-    public static final byte CONSTANT_MethodHandle = 15;
+  /**
+   * Marks a constant pool entry as type UTF-8.
+   * @see  <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.7">
+   * The Constant Pool in The Java Virtual Machine Specification</a>
+   */
+  public static final byte CONSTANT_Utf8               = 1;
 
-    /**
-     * Marks a constant pool entry as a Method Type.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.9">
-     * The Constant Pool in The Java Virtual Machine Specification</a>
-     */
-    public static final byte CONSTANT_MethodType = 16;
+  /**
+   * Marks a constant pool entry as type Integer.
+   * @see  <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.4">
+   * The Constant Pool in The Java Virtual Machine Specification</a>
+   */
+  public static final byte CONSTANT_Integer            = 3;
 
-    /**
-     * Marks a constant pool entry as an Invoke Dynamic
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.10">
-     * The Constant Pool in The Java Virtual Machine Specification</a>
-     */
-    public static final byte CONSTANT_InvokeDynamic = 18;
+  /**
+   * Marks a constant pool entry as type Float.
+   * @see  <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.4">
+   * The Constant Pool in The Java Virtual Machine Specification</a>
+   */
+  public static final byte CONSTANT_Float              = 4;
 
-    /**
-     * The names of the types of entries in a constant pool. Use getConstantName
-     * instead
-     */
-    private static final String[] CONSTANT_NAMES = {
-        "", "CONSTANT_Utf8", "", "CONSTANT_Integer",
-        "CONSTANT_Float", "CONSTANT_Long", "CONSTANT_Double",
-        "CONSTANT_Class", "CONSTANT_String", "CONSTANT_Fieldref",
-        "CONSTANT_Methodref", "CONSTANT_InterfaceMethodref",
-        "CONSTANT_NameAndType", "", "", "CONSTANT_MethodHandle",
-        "CONSTANT_MethodType", "", "CONSTANT_InvokeDynamic"};
+  /**
+   * Marks a constant pool entry as type Long.
+   * @see  <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.5">
+   * The Constant Pool in The Java Virtual Machine Specification</a>
+   */
+  public static final byte CONSTANT_Long               = 5;
+
+  /**
+   * Marks a constant pool entry as type Double.
+   * @see  <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.5">
+   * The Constant Pool in The Java Virtual Machine Specification</a>
+   */
+  public static final byte CONSTANT_Double             = 6;
 
-    /**
-     *
-     * @param index
-     * @return the CONSTANT_NAMES entry at the given index
-     * @since 6.0
-     */
-    public static String getConstantName(final int index) {
-        return CONSTANT_NAMES[index];
-    }
-
-    /**
-     * The name of the static initializer, also called &quot;class
-     * initialization method&quot; or &quot;interface initialization
-     * method&quot;. This is &quot;&lt;clinit&gt;&quot;.
-     */
-    public static final String STATIC_INITIALIZER_NAME = "<clinit>";
+  /**
+   * Marks a constant pool entry as a Class
+   * @see  <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.1">
+   * The Constant Pool in The Java Virtual Machine Specification</a>
+   */
+  public static final byte CONSTANT_Class              = 7;
 
-    /**
-     * The name of every constructor method in a class, also called
-     * &quot;instance initialization method&quot;. This is
-     * &quot;&lt;init&gt;&quot;.
-     */
-    public static final String CONSTRUCTOR_NAME = "<init>";
+  /**
+   * Marks a constant pool entry as a Field Reference.
+   * @see  <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.2">
+   * The Constant Pool in The Java Virtual Machine Specification</a>
+   */
+  public static final byte CONSTANT_Fieldref           = 9;
 
-    /**
-     * The names of the interfaces implemented by arrays
-     */
-    private static final String[] INTERFACES_IMPLEMENTED_BY_ARRAYS = {"java.lang.Cloneable", "java.io.Serializable"};
-
-    /**
-     * @since 6.0
-     */
-    public static Iterable<String> getInterfacesImplementedByArrays() {
-        return Collections.unmodifiableList(Arrays.asList(INTERFACES_IMPLEMENTED_BY_ARRAYS));
-    }
+  /**
+   * Marks a constant pool entry as type String
+   * @see  <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.3">
+   * The Constant Pool in The Java Virtual Machine Specification</a>
+   */
+  public static final byte CONSTANT_String             = 8;
 
-    /**
-     * Maximum Constant Pool entries. One of the limitations of the Java Virtual
-     * Machine.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.11-100-A">
-     * The Java Virtual Machine Specification, Java SE 8 Edition, page 330,
-     * chapter 4.11.</a>
-     */
-    public static final int MAX_CP_ENTRIES = 65535;
+  /** Marks a constant pool entry as a Method Reference.
+   * @see  <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.2">
+   * The Constant Pool in The Java Virtual Machine Specification</a> */
+  public static final byte CONSTANT_Methodref          = 10;
+
+  /**
+   * Marks a constant pool entry as an Interface Method Reference.
+   * @see  <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.2">
+   * The Constant Pool in The Java Virtual Machine Specification</a>
+   */
+  public static final byte CONSTANT_InterfaceMethodref = 11;
 
-    /**
-     * Maximum code size (plus one; the code size must be LESS than this) One of
-     * the limitations of the Java Virtual Machine. Note vmspec2 page 152
-     * ("Limitations") says: "The amount of code per non-native, non-abstract
-     * method is limited to 65536 bytes by the sizes of the indices in the
-     * exception_table of the Code attribute (4.7.3), in the LineNumberTable
-     * attribute (4.7.8), and in the LocalVariableTable attribute (4.7.9)."
-     * However this should be taken as an upper limit rather than the defined
-     * maximum. On page 134 (4.8.1 Static Constants) of the same spec, it says:
-     * "The value of the code_length item must be less than 65536." The entry in
-     * the Limitations section has been removed from later versions of the spec;
-     * it is not present in the Java SE 8 edition.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.7.3-300-E">
-     * The Java Virtual Machine Specification, Java SE 8 Edition, page 104,
-     * chapter 4.7.</a>
-     */
-    public static final int MAX_CODE_SIZE = 65536; //bytes
+  /** Marks a constant pool entry as a name and type.
+   * @see  <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.6">
+   * The Constant Pool in The Java Virtual Machine Specification</a> */
+  public static final byte CONSTANT_NameAndType        = 12;
 
-    /**
-     * The maximum number of dimensions in an array ({@value}). One of the
-     * limitations of the Java Virtual Machine.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.3.2-150">
-     * Field Descriptors in The Java Virtual Machine Specification</a>
-     */
-    public static final int MAX_ARRAY_DIMENSIONS = 255;
+  /**
+   * Marks a constant pool entry as a Method Handle.
+   * @see  <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.8">
+   * The Constant Pool in The Java Virtual Machine Specification</a>
+   */
+  public static final byte CONSTANT_MethodHandle       = 15;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.nop">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short NOP = 0;
+  /**
+   * Marks a constant pool entry as a Method Type.
+   * @see  <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.9">
+   * The Constant Pool in The Java Virtual Machine Specification</a>
+   */
+  public static final byte CONSTANT_MethodType         = 16;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aconst_null">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ACONST_NULL = 1;
+  /**
+   * Marks a constant pool entry as dynamically computed.
+   * @see  <a href="https://bugs.openjdk.java.net/secure/attachment/74618/constant-dynamic.html">
+   * Change request for JEP 309</a>
+   * @since 6.3
+   */
+  public static final byte CONSTANT_Dynamic            = 17;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ICONST_M1 = 2;
-
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ICONST_0 = 3;
+  /**
+   * Marks a constant pool entry as an Invoke Dynamic
+   * @see  <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.10">
+   * The Constant Pool in The Java Virtual Machine Specification</a>
+   */
+  public static final byte CONSTANT_InvokeDynamic      = 18;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ICONST_1 = 4;
-
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ICONST_2 = 5;
+  /**
+   * Marks a constant pool entry as a Module Reference.
+   * @see <a href="https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.4.11">
+   * The Constant Pool in The Java Virtual Machine Specification</a>
+   * @since 6.1
+   */
+  public static final byte CONSTANT_Module             = 19;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ICONST_3 = 6;
+  /**
+   * Marks a constant pool entry as a Package Reference.
+   * @see <a href="https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.4.12">
+   * The Constant Pool in The Java Virtual Machine Specification</a>
+   * @since 6.1
+   */
+  public static final byte CONSTANT_Package            = 20;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ICONST_4 = 7;
+  /**
+   * The names of the types of entries in a constant pool.
+   * Use getConstantName instead
+   */
+  private static final String[] CONSTANT_NAMES = {
+    "", "CONSTANT_Utf8", "", "CONSTANT_Integer",
+    "CONSTANT_Float", "CONSTANT_Long", "CONSTANT_Double",
+    "CONSTANT_Class", "CONSTANT_String", "CONSTANT_Fieldref",
+    "CONSTANT_Methodref", "CONSTANT_InterfaceMethodref",
+    "CONSTANT_NameAndType", "", "", "CONSTANT_MethodHandle",
+    "CONSTANT_MethodType", "CONSTANT_Dynamic", "CONSTANT_InvokeDynamic",
+    "CONSTANT_Module", "CONSTANT_Package"};
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ICONST_5 = 8;
+  /**
+   *
+   * @param index
+   * @return the CONSTANT_NAMES entry at the given index
+   * @since 6.0
+   */
+  public static String getConstantName(final int index) {
+      return CONSTANT_NAMES[index];
+  }
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lconst_l">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short LCONST_0 = 9;
-
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lconst_l">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short LCONST_1 = 10;
+  /** The name of the static initializer, also called &quot;class
+   *  initialization method&quot; or &quot;interface initialization
+   *   method&quot;. This is &quot;&lt;clinit&gt;&quot;.
+   */
+  public static final String STATIC_INITIALIZER_NAME = "<clinit>";
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fconst_f">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short FCONST_0 = 11;
+  /** The name of every constructor method in a class, also called
+   * &quot;instance initialization method&quot;. This is &quot;&lt;init&gt;&quot;.
+   */
+  public static final String CONSTRUCTOR_NAME = "<init>";
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fconst_f">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short FCONST_1 = 12;
+  /**
+   * The names of the interfaces implemented by arrays
+   */
+  private static final String[] INTERFACES_IMPLEMENTED_BY_ARRAYS = {"java.lang.Cloneable", "java.io.Serializable"};
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fconst_f">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short FCONST_2 = 13;
+  /**
+   * @since 6.0
+   */
+  public static Iterable<String> getInterfacesImplementedByArrays() {
+      return Collections.unmodifiableList(Arrays.asList(INTERFACES_IMPLEMENTED_BY_ARRAYS));
+  }
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dconst_d">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short DCONST_0 = 14;
-
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dconst_d">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short DCONST_1 = 15;
-
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.bipush">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short BIPUSH = 16;
+  /**
+   * Maximum Constant Pool entries.
+   * One of the limitations of the Java Virtual Machine.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.11-100-A">
+   * The Java Virtual Machine Specification, Java SE 8 Edition, page 330, chapter 4.11.</a>
+   */
+  public static final int MAX_CP_ENTRIES     = 65535;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.sipush">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short SIPUSH = 17;
+  /**
+   * Maximum code size (plus one; the code size must be LESS than this)
+   * One of the limitations of the Java Virtual Machine.
+   * Note vmspec2 page 152 ("Limitations") says:
+   * "The amount of code per non-native, non-abstract method is limited to 65536 bytes by
+   * the sizes of the indices in the exception_table of the Code attribute (4.7.3),
+   * in the LineNumberTable attribute (4.7.8), and in the LocalVariableTable attribute (4.7.9)."
+   * However this should be taken as an upper limit rather than the defined maximum.
+   * On page 134 (4.8.1 Static Constants) of the same spec, it says:
+   * "The value of the code_length item must be less than 65536."
+   * The entry in the Limitations section has been removed from later versions of the spec;
+   * it is not present in the Java SE 8 edition.
+   *
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.7.3-300-E">
+   * The Java Virtual Machine Specification, Java SE 8 Edition, page 104, chapter 4.7.3</a>
+   */
+  public static final int MAX_CODE_SIZE      = 65536; //bytes
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldc">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short LDC = 18;
+  /**
+   * The maximum number of dimensions in an array ({@value}).
+   * One of the limitations of the Java Virtual Machine.
+   *
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.3.2-150">
+   * Field Descriptors in The Java Virtual Machine Specification</a>
+   */
+  public static final int MAX_ARRAY_DIMENSIONS = 255;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldc_w">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short LDC_W = 19;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.nop">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short NOP              = 0;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldc2_w">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short LDC2_W = 20;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aconst_null">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ACONST_NULL      = 1;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ILOAD = 21;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ICONST_M1        = 2;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short LLOAD = 22;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ICONST_0         = 3;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short FLOAD = 23;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ICONST_1         = 4;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ICONST_2         = 5;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short DLOAD = 24;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ICONST_3         = 6;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ALOAD = 25;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ICONST_4         = 7;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ILOAD_0 = 26;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ICONST_5         = 8;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lconst_l">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short LCONST_0         = 9;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ILOAD_1 = 27;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lconst_l">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short LCONST_1         = 10;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ILOAD_2 = 28;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fconst_f">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short FCONST_0         = 11;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ILOAD_3 = 29;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fconst_f">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short FCONST_1         = 12;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fconst_f">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short FCONST_2         = 13;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short LLOAD_0 = 30;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dconst_d">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short DCONST_0         = 14;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short LLOAD_1 = 31;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dconst_d">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short DCONST_1         = 15;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short LLOAD_2 = 32;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.bipush">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short BIPUSH           = 16;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short LLOAD_3 = 33;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.sipush">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short SIPUSH           = 17;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short FLOAD_0 = 34;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldc">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short LDC              = 18;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short FLOAD_1 = 35;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldc_w">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short LDC_W            = 19;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldc2_w">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short LDC2_W           = 20;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short FLOAD_2 = 36;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ILOAD            = 21;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short FLOAD_3 = 37;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short LLOAD            = 22;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short DLOAD_0 = 38;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short FLOAD            = 23;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short DLOAD_1 = 39;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short DLOAD            = 24;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short DLOAD_2 = 40;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ALOAD            = 25;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short DLOAD_3 = 41;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ILOAD_0          = 26;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ILOAD_1          = 27;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ALOAD_0 = 42;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ILOAD_2          = 28;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ALOAD_1 = 43;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ILOAD_3          = 29;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ALOAD_2 = 44;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short LLOAD_0          = 30;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ALOAD_3 = 45;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short LLOAD_1          = 31;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iaload">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short IALOAD = 46;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short LLOAD_2          = 32;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.laload">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short LALOAD = 47;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short LLOAD_3          = 33;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short FLOAD_0          = 34;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.faload">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short FALOAD = 48;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short FLOAD_1          = 35;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.daload">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short DALOAD = 49;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short FLOAD_2          = 36;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aaload">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short AALOAD = 50;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short FLOAD_3          = 37;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short DLOAD_0          = 38;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.baload">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short BALOAD = 51;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short DLOAD_1          = 39;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.caload">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short CALOAD = 52;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short DLOAD_2          = 40;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.saload">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short SALOAD = 53;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short DLOAD_3          = 41;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ALOAD_0          = 42;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ISTORE = 54;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ALOAD_1          = 43;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short LSTORE = 55;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ALOAD_2          = 44;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short FSTORE = 56;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ALOAD_3          = 45;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short DSTORE = 57;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iaload">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short IALOAD           = 46;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ASTORE = 58;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.laload">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short LALOAD           = 47;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ISTORE_0 = 59;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.faload">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short FALOAD           = 48;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.daload">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short DALOAD           = 49;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ISTORE_1 = 60;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aaload">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short AALOAD           = 50;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ISTORE_2 = 61;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.baload">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short BALOAD           = 51;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ISTORE_3 = 62;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.caload">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short CALOAD           = 52;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short LSTORE_0 = 63;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.saload">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short SALOAD           = 53;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short LSTORE_1 = 64;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ISTORE           = 54;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short LSTORE_2 = 65;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short LSTORE           = 55;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short FSTORE           = 56;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short LSTORE_3 = 66;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short DSTORE           = 57;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short FSTORE_0 = 67;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ASTORE           = 58;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short FSTORE_1 = 68;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ISTORE_0         = 59;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short FSTORE_2 = 69;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ISTORE_1         = 60;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short FSTORE_3 = 70;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ISTORE_2         = 61;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short DSTORE_0 = 71;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ISTORE_3         = 62;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short LSTORE_0         = 63;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short DSTORE_1 = 72;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short LSTORE_1         = 64;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short DSTORE_2 = 73;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short LSTORE_2         = 65;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short DSTORE_3 = 74;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short LSTORE_3         = 66;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short FSTORE_0         = 67;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ASTORE_0 = 75;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short FSTORE_1         = 68;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ASTORE_1 = 76;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short FSTORE_2         = 69;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ASTORE_2 = 77;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short FSTORE_3         = 70;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short DSTORE_0         = 71;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore_n">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ASTORE_3 = 78;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short DSTORE_1         = 72;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iastore">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short IASTORE = 79;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short DSTORE_2         = 73;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lastore">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short LASTORE = 80;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short DSTORE_3         = 74;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fastore">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short FASTORE = 81;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ASTORE_0         = 75;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dastore">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short DASTORE = 82;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ASTORE_1         = 76;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aastore">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short AASTORE = 83;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ASTORE_2         = 77;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore_n">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ASTORE_3         = 78;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.bastore">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short BASTORE = 84;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iastore">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short IASTORE          = 79;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.castore">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short CASTORE = 85;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lastore">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short LASTORE          = 80;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.sastore">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short SASTORE = 86;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fastore">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short FASTORE          = 81;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.pop">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short POP = 87;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dastore">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short DASTORE          = 82;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.pop2">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short POP2 = 88;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aastore">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short AASTORE          = 83;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short DUP = 89;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.bastore">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short BASTORE          = 84;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.castore">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short CASTORE          = 85;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup_x1">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short DUP_X1 = 90;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.sastore">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short SASTORE          = 86;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup_x2">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short DUP_X2 = 91;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.pop">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short POP              = 87;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup2">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short DUP2 = 92;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.pop2">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short POP2             = 88;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup2_x1">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short DUP2_X1 = 93;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short DUP              = 89;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup2_x2">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short DUP2_X2 = 94;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup_x1">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short DUP_X1           = 90;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.swap">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short SWAP = 95;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup_x2">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short DUP_X2           = 91;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup2">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short DUP2             = 92;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iadd">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short IADD = 96;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup2_x1">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short DUP2_X1          = 93;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ladd">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short LADD = 97;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup2_x2">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short DUP2_X2          = 94;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fadd">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short FADD = 98;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.swap">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short SWAP             = 95;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iadd">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short IADD             = 96;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dadd">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short DADD = 99;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ladd">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short LADD             = 97;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.isub">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ISUB = 100;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fadd">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short FADD             = 98;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lsub">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short LSUB = 101;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dadd">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short DADD             = 99;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.isub">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ISUB             = 100;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fsub">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short FSUB = 102;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lsub">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short LSUB             = 101;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dsub">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short DSUB = 103;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fsub">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short FSUB             = 102;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.imul">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short IMUL = 104;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dsub">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short DSUB             = 103;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lmul">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short LMUL = 105;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.imul">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short IMUL             = 104;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fmul">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short FMUL = 106;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lmul">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short LMUL             = 105;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dmul">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short DMUL = 107;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fmul">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short FMUL             = 106;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dmul">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short DMUL             = 107;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.idiv">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short IDIV = 108;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.idiv">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short IDIV             = 108;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldiv">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short LDIV = 109;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldiv">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short LDIV             = 109;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fdiv">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short FDIV = 110;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fdiv">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short FDIV             = 110;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ddiv">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short DDIV = 111;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ddiv">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short DDIV             = 111;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.irem">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short IREM = 112;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.irem">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short IREM             = 112;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lrem">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short LREM = 113;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lrem">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short LREM             = 113;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.frem">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short FREM             = 114;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.frem">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short FREM = 114;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.drem">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short DREM             = 115;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.drem">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short DREM = 115;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ineg">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short INEG             = 116;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ineg">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short INEG = 116;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lneg">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short LNEG             = 117;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lneg">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short LNEG = 117;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fneg">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short FNEG             = 118;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fneg">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short FNEG = 118;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dneg">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short DNEG             = 119;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dneg">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short DNEG = 119;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ishl">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ISHL             = 120;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lshl">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short LSHL             = 121;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ishl">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ISHL = 120;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ishr">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ISHR             = 122;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lshl">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short LSHL = 121;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lshr">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short LSHR             = 123;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ishr">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ISHR = 122;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iushr">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short IUSHR            = 124;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lushr">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short LUSHR            = 125;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lshr">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short LSHR = 123;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iand">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short IAND             = 126;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iushr">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short IUSHR = 124;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.land">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short LAND             = 127;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lushr">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short LUSHR = 125;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ior">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short IOR              = 128;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lor">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short LOR              = 129;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iand">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short IAND = 126;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ixor">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short IXOR             = 130;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.land">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short LAND = 127;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lxor">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short LXOR             = 131;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ior">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short IOR = 128;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iinc">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short IINC             = 132;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lor">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short LOR = 129;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2l">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short I2L              = 133;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ixor">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short IXOR = 130;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2f">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short I2F              = 134;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lxor">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short LXOR = 131;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2d">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short I2D              = 135;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.l2i">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short L2I              = 136;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iinc">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short IINC = 132;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.l2f">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short L2F              = 137;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2l">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short I2L = 133;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.l2d">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short L2D              = 138;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2f">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short I2F = 134;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.f2i">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short F2I              = 139;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2d">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short I2D = 135;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.f2l">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short F2L              = 140;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.l2i">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short L2I = 136;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.f2d">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short F2D              = 141;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.l2f">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short L2F = 137;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.d2i">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short D2I              = 142;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.d2l">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short D2L              = 143;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.l2d">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short L2D = 138;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.d2f">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short D2F              = 144;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.f2i">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short F2I = 139;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2b">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short I2B              = 145;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.f2l">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short F2L = 140;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short INT2BYTE         = 145; // Old notation
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.f2d">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short F2D = 141;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2c">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short I2C              = 146;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.d2i">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short D2I = 142;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short INT2CHAR         = 146; // Old notation
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.d2l">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short D2L = 143;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2s">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short I2S              = 147;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short INT2SHORT        = 147; // Old notation
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.d2f">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short D2F = 144;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lcmp">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short LCMP             = 148;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2b">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short I2B = 145;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fcmpl">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short FCMPL            = 149;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short INT2BYTE = 145; // Old notation
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fcmpg">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short FCMPG            = 150;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dcmpl">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short DCMPL            = 151;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2c">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short I2C = 146;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dcmpg">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short DCMPG            = 152;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short INT2CHAR = 146; // Old notation
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifeq">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short IFEQ             = 153;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2s">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short I2S = 147;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifne">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short IFNE             = 154;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iflt">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short IFLT             = 155;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short INT2SHORT = 147; // Old notation
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifge">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short IFGE             = 156;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lcmp">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short LCMP = 148;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifgt">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short IFGT             = 157;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fcmpl">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short FCMPL = 149;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifle">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short IFLE             = 158;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fcmpg">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short FCMPG = 150;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short IF_ICMPEQ        = 159;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dcmpl">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short DCMPL = 151;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short IF_ICMPNE        = 160;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dcmpg">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short DCMPG = 152;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short IF_ICMPLT        = 161;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short IF_ICMPGE        = 162;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifeq">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short IFEQ = 153;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short IF_ICMPGT        = 163;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifne">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short IFNE = 154;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short IF_ICMPLE        = 164;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iflt">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short IFLT = 155;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_acmp_cond">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short IF_ACMPEQ        = 165;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifge">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short IFGE = 156;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_acmp_cond">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short IF_ACMPNE        = 166;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifgt">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short IFGT = 157;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.goto">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short GOTO             = 167;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifle">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short IFLE = 158;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.jsr">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short JSR              = 168;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ret">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short RET              = 169;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short IF_ICMPEQ = 159;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.tableswitch">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short TABLESWITCH      = 170;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short IF_ICMPNE = 160;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lookupswitch">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short LOOKUPSWITCH     = 171;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short IF_ICMPLT = 161;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ireturn">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short IRETURN          = 172;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short IF_ICMPGE = 162;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lreturn">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short LRETURN          = 173;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short IF_ICMPGT = 163;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.freturn">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short FRETURN          = 174;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short IF_ICMPLE = 164;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dreturn">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short DRETURN          = 175;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.areturn">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ARETURN          = 176;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_acmp_cond">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short IF_ACMPEQ = 165;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.return">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short RETURN           = 177;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_acmp_cond">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short IF_ACMPNE = 166;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.getstatic">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short GETSTATIC        = 178;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.goto">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short GOTO = 167;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.putstatic">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short PUTSTATIC        = 179;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.getfield">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short GETFIELD         = 180;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.jsr">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short JSR = 168;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.putfield">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short PUTFIELD         = 181;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ret">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short RET = 169;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokevirtual">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short INVOKEVIRTUAL    = 182;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.tableswitch">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short TABLESWITCH = 170;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokespecial">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short INVOKESPECIAL    = 183;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short INVOKENONVIRTUAL = 183; // Old name in JDK 1.0
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lookupswitch">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short LOOKUPSWITCH = 171;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokestatic">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short INVOKESTATIC     = 184;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ireturn">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short IRETURN = 172;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokeinterface">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short INVOKEINTERFACE  = 185;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lreturn">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short LRETURN = 173;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokedynamic">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short INVOKEDYNAMIC    = 186;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.freturn">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short FRETURN = 174;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.new">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short NEW              = 187;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dreturn">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short DRETURN = 175;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.newarray">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short NEWARRAY         = 188;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.areturn">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ARETURN = 176;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.anewarray">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ANEWARRAY        = 189;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.arraylength">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ARRAYLENGTH      = 190;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.return">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short RETURN = 177;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.athrow">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short ATHROW           = 191;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.getstatic">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short GETSTATIC = 178;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.checkcast">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short CHECKCAST        = 192;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.putstatic">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short PUTSTATIC = 179;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.instanceof">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short INSTANCEOF       = 193;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.getfield">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short GETFIELD = 180;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.monitorenter">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short MONITORENTER     = 194;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.putfield">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short PUTFIELD = 181;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.monitorexit">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short MONITOREXIT      = 195;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokevirtual">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short INVOKEVIRTUAL = 182;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.wide">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short WIDE             = 196;
+
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.multianewarray">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short MULTIANEWARRAY   = 197;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokespecial">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short INVOKESPECIAL = 183;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifnull">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short IFNULL           = 198;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short INVOKENONVIRTUAL = 183; // Old name in JDK 1.0
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifnonnull">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short IFNONNULL        = 199;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokestatic">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short INVOKESTATIC = 184;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.goto_w">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short GOTO_W           = 200;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokeinterface">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short INVOKEINTERFACE = 185;
-
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokedynamic">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short INVOKEDYNAMIC = 186;
+  /** Java VM opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.jsr_w">
+   * Opcode definitions in The Java Virtual Machine Specification</a> */
+  public static final short JSR_W            = 201;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.new">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short NEW = 187;
+  /** JVM internal opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.2">
+   * Reserved opcodes in the Java Virtual Machine Specification</a> */
+  public static final short BREAKPOINT                = 202;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.newarray">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short NEWARRAY = 188;
+  /** JVM internal opcode.
+   * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
+   * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
+   * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
+  public static final short LDC_QUICK                 = 203;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.anewarray">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ANEWARRAY = 189;
+  /** JVM internal opcode.
+   * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
+   * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
+   * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
+  public static final short LDC_W_QUICK               = 204;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.arraylength">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ARRAYLENGTH = 190;
+  /** JVM internal opcode.
+   * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
+   * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
+   * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
+  public static final short LDC2_W_QUICK              = 205;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.athrow">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short ATHROW = 191;
+  /** JVM internal opcode.
+   * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
+   * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
+   * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
+  public static final short GETFIELD_QUICK            = 206;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.checkcast">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short CHECKCAST = 192;
+  /** JVM internal opcode.
+   * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
+   * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
+   * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
+  public static final short PUTFIELD_QUICK            = 207;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.instanceof">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short INSTANCEOF = 193;
+  /** JVM internal opcode.
+   * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
+   * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
+   * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
+  public static final short GETFIELD2_QUICK           = 208;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.monitorenter">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short MONITORENTER = 194;
+  /** JVM internal opcode.
+   * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
+   * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
+   * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
+  public static final short PUTFIELD2_QUICK           = 209;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.monitorexit">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short MONITOREXIT = 195;
+  /** JVM internal opcode.
+   * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
+   * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
+   * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
+  public static final short GETSTATIC_QUICK           = 210;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.wide">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short WIDE = 196;
+  /** JVM internal opcode.
+   * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
+   * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
+   * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
+  public static final short PUTSTATIC_QUICK           = 211;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.multianewarray">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short MULTIANEWARRAY = 197;
+  /** JVM internal opcode.
+   * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
+   * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
+   * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
+  public static final short GETSTATIC2_QUICK          = 212;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifnull">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short IFNULL = 198;
+  /** JVM internal opcode.
+   * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
+   * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
+   * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
+  public static final short PUTSTATIC2_QUICK          = 213;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifnonnull">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short IFNONNULL = 199;
+  /** JVM internal opcode.
+   * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
+   * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
+   * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
+  public static final short INVOKEVIRTUAL_QUICK       = 214;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.goto_w">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short GOTO_W = 200;
+  /** JVM internal opcode.
+   * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
+   * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
+   * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
+  public static final short INVOKENONVIRTUAL_QUICK    = 215;
 
-    /**
-     * Java VM opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.jsr_w">
-     * Opcode definitions in The Java Virtual Machine Specification</a>
-     */
-    public static final short JSR_W = 201;
+  /** JVM internal opcode.
+   * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
+   * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
+   * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
+  public static final short INVOKESUPER_QUICK         = 216;
 
-    /**
-     * JVM internal opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.2">
-     * Reserved opcodes in the Java Virtual Machine Specification</a>
-     */
-    public static final short BREAKPOINT = 202;
+  /** JVM internal opcode.
+   * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
+   * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
+   * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
+  public static final short INVOKESTATIC_QUICK        = 217;
 
-    /**
-     * JVM internal opcode.
-     *
-     * @see <a
-     * href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
-     * Specification of _quick opcodes in the Java Virtual Machine Specification
-     * (version 1)</a>
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
-     * Why the _quick opcodes were removed from the second version of the Java
-     * Virtual Machine Specification.</a>
-     */
-    public static final short LDC_QUICK = 203;
+  /** JVM internal opcode.
+   * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
+   * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
+   * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
+  public static final short INVOKEINTERFACE_QUICK     = 218;
 
-    /**
-     * JVM internal opcode.
-     *
-     * @see <a
-     * href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
-     * Specification of _quick opcodes in the Java Virtual Machine Specification
-     * (version 1)</a>
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
-     * Why the _quick opcodes were removed from the second version of the Java
-     * Virtual Machine Specification.</a>
-     */
-    public static final short LDC_W_QUICK = 204;
+  /** JVM internal opcode.
+   * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
+   * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
+   * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
+  public static final short INVOKEVIRTUALOBJECT_QUICK = 219;
 
-    /**
-     * JVM internal opcode.
-     *
-     * @see <a
-     * href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
-     * Specification of _quick opcodes in the Java Virtual Machine Specification
-     * (version 1)</a>
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
-     * Why the _quick opcodes were removed from the second version of the Java
-     * Virtual Machine Specification.</a>
-     */
-    public static final short LDC2_W_QUICK = 205;
+  /** JVM internal opcode.
+   * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
+   * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
+   * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
+  public static final short NEW_QUICK                 = 221;
 
-    /**
-     * JVM internal opcode.
-     *
-     * @see <a
-     * href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
-     * Specification of _quick opcodes in the Java Virtual Machine Specification
-     * (version 1)</a>
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
-     * Why the _quick opcodes were removed from the second version of the Java
-     * Virtual Machine Specification.</a>
-     */
-    public static final short GETFIELD_QUICK = 206;
+  /** JVM internal opcode.
+   * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
+   * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
+   * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
+  public static final short ANEWARRAY_QUICK           = 222;
 
-    /**
-     * JVM internal opcode.
-     *
-     * @see <a
-     * href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
-     * Specification of _quick opcodes in the Java Virtual Machine Specification
-     * (version 1)</a>
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
-     * Why the _quick opcodes were removed from the second version of the Java
-     * Virtual Machine Specification.</a>
-     */
-    public static final short PUTFIELD_QUICK = 207;
+  /** JVM internal opcode.
+   * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
+   * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
+   * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
+  public static final short MULTIANEWARRAY_QUICK      = 223;
 
-    /**
-     * JVM internal opcode.
-     *
-     * @see <a
-     * href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
-     * Specification of _quick opcodes in the Java Virtual Machine Specification
-     * (version 1)</a>
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
-     * Why the _quick opcodes were removed from the second version of the Java
-     * Virtual Machine Specification.</a>
-     */
-    public static final short GETFIELD2_QUICK = 208;
+  /** JVM internal opcode.
+   * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
+   * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
+   * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
+  public static final short CHECKCAST_QUICK           = 224;
 
-    /**
-     * JVM internal opcode.
-     *
-     * @see <a
-     * href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
-     * Specification of _quick opcodes in the Java Virtual Machine Specification
-     * (version 1)</a>
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
-     * Why the _quick opcodes were removed from the second version of the Java
-     * Virtual Machine Specification.</a>
-     */
-    public static final short PUTFIELD2_QUICK = 209;
+  /** JVM internal opcode.
+   * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
+   * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
+   * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
+  public static final short INSTANCEOF_QUICK          = 225;
+
+  /** JVM internal opcode.
+   * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
+   * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
+   * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
+  public static final short INVOKEVIRTUAL_QUICK_W     = 226;
 
-    /**
-     * JVM internal opcode.
-     *
-     * @see <a
-     * href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
-     * Specification of _quick opcodes in the Java Virtual Machine Specification
-     * (version 1)</a>
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
-     * Why the _quick opcodes were removed from the second version of the Java
-     * Virtual Machine Specification.</a>
-     */
-    public static final short GETSTATIC_QUICK = 210;
+  /** JVM internal opcode.
+   * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
+   * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
+   * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
+  public static final short GETFIELD_QUICK_W          = 227;
 
-    /**
-     * JVM internal opcode.
-     *
-     * @see <a
-     * href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
-     * Specification of _quick opcodes in the Java Virtual Machine Specification
-     * (version 1)</a>
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
-     * Why the _quick opcodes were removed from the second version of the Java
-     * Virtual Machine Specification.</a>
-     */
-    public static final short PUTSTATIC_QUICK = 211;
+  /** JVM internal opcode.
+   * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
+   * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
+   * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
+  public static final short PUTFIELD_QUICK_W          = 228;
+
+  /** JVM internal opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.2">
+   * Reserved opcodes in the Java Virtual Machine Specification</a> */
+  public static final short IMPDEP1                   = 254;
 
-    /**
-     * JVM internal opcode.
-     *
-     * @see <a
-     * href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
-     * Specification of _quick opcodes in the Java Virtual Machine Specification
-     * (version 1)</a>
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
-     * Why the _quick opcodes were removed from the second version of the Java
-     * Virtual Machine Specification.</a>
-     */
-    public static final short GETSTATIC2_QUICK = 212;
+  /** JVM internal opcode.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.2">
+   * Reserved opcodes in the Java Virtual Machine Specification</a> */
+  public static final short IMPDEP2                   = 255;
+
+  /**
+   * BCEL virtual instruction for pushing an arbitrary data type onto the stack.  Will be converted to the appropriate JVM
+   * opcode when the class is dumped.
+   */
+  public static final short PUSH             = 4711;
 
-    /**
-     * JVM internal opcode.
-     *
-     * @see <a
-     * href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
-     * Specification of _quick opcodes in the Java Virtual Machine Specification
-     * (version 1)</a>
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
-     * Why the _quick opcodes were removed from the second version of the Java
-     * Virtual Machine Specification.</a>
-     */
-    public static final short PUTSTATIC2_QUICK = 213;
+  /**
+   * BCEL virtual instruction for either LOOKUPSWITCH or TABLESWITCH.  Will be converted to the appropriate JVM
+   * opcode when the class is dumped.
+   */
+  public static final short SWITCH           = 4712;
+
+  /** Illegal opcode. */
+  public static final short  UNDEFINED      = -1;
+
+  /** Illegal opcode. */
+  public static final short  UNPREDICTABLE  = -2;
+
+  /** Illegal opcode. */
+  public static final short  RESERVED       = -3;
 
-    /**
-     * JVM internal opcode.
-     *
-     * @see <a
-     * href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
-     * Specification of _quick opcodes in the Java Virtual Machine Specification
-     * (version 1)</a>
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
-     * Why the _quick opcodes were removed from the second version of the Java
-     * Virtual Machine Specification.</a>
-     */
-    public static final short INVOKEVIRTUAL_QUICK = 214;
+  /** Mnemonic for an illegal opcode. */
+  public static final String ILLEGAL_OPCODE = "<illegal opcode>";
+
+  /** Mnemonic for an illegal type. */
+  public static final String ILLEGAL_TYPE   = "<illegal type>";
+
+  /** Boolean data type.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P">
+   * Static Constraints in the Java Virtual Machine Specification</a> */
+  public static final byte T_BOOLEAN = 4;
 
-    /**
-     * JVM internal opcode.
-     *
-     * @see <a
-     * href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
-     * Specification of _quick opcodes in the Java Virtual Machine Specification
-     * (version 1)</a>
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
-     * Why the _quick opcodes were removed from the second version of the Java
-     * Virtual Machine Specification.</a>
-     */
-    public static final short INVOKENONVIRTUAL_QUICK = 215;
+  /** Char data type.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P">
+   * Static Constraints in the Java Virtual Machine Specification</a> */
+  public static final byte T_CHAR    = 5;
 
-    /**
-     * JVM internal opcode.
-     *
-     * @see <a
-     * href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
-     * Specification of _quick opcodes in the Java Virtual Machine Specification
-     * (version 1)</a>
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
-     * Why the _quick opcodes were removed from the second version of the Java
-     * Virtual Machine Specification.</a>
-     */
-    public static final short INVOKESUPER_QUICK = 216;
+  /** Float data type.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P">
+   * Static Constraints in the Java Virtual Machine Specification</a> */
+  public static final byte T_FLOAT   = 6;
+
+  /** Double data type.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P">
+   * Static Constraints in the Java Virtual Machine Specification</a> */
+  public static final byte T_DOUBLE  = 7;
 
-    /**
-     * JVM internal opcode.
-     *
-     * @see <a
-     * href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
-     * Specification of _quick opcodes in the Java Virtual Machine Specification
-     * (version 1)</a>
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
-     * Why the _quick opcodes were removed from the second version of the Java
-     * Virtual Machine Specification.</a>
-     */
-    public static final short INVOKESTATIC_QUICK = 217;
+  /** Byte data type.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P">
+   * Static Constraints in the Java Virtual Machine Specification</a> */
+  public static final byte T_BYTE    = 8;
 
-    /**
-     * JVM internal opcode.
-     *
-     * @see <a
-     * href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
-     * Specification of _quick opcodes in the Java Virtual Machine Specification
-     * (version 1)</a>
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
-     * Why the _quick opcodes were removed from the second version of the Java
-     * Virtual Machine Specification.</a>
-     */
-    public static final short INVOKEINTERFACE_QUICK = 218;
+  /** Short data type.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P">
+   * Static Constraints in the Java Virtual Machine Specification</a> */
+  public static final byte T_SHORT   = 9;
+
+  /** Int data type.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P">
+   * Static Constraints in the Java Virtual Machine Specification</a> */
+  public static final byte T_INT     = 10;
 
-    /**
-     * JVM internal opcode.
-     *
-     * @see <a
-     * href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
-     * Specification of _quick opcodes in the Java Virtual Machine Specification
-     * (version 1)</a>
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
-     * Why the _quick opcodes were removed from the second version of the Java
-     * Virtual Machine Specification.</a>
-     */
-    public static final short INVOKEVIRTUALOBJECT_QUICK = 219;
+  /** Long data type.
+   * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P">
+   * Static Constraints in the Java Virtual Machine Specification</a> */
+  public static final byte T_LONG    = 11;
+
+  /** Void data type (non-standard). */
+  public static final byte T_VOID      = 12; // Non-standard
 
-    /**
-     * JVM internal opcode.
-     *
-     * @see <a
-     * href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
-     * Specification of _quick opcodes in the Java Virtual Machine Specification
-     * (version 1)</a>
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
-     * Why the _quick opcodes were removed from the second version of the Java
-     * Virtual Machine Specification.</a>
-     */
-    public static final short NEW_QUICK = 221;
+  /** Array data type. */
+  public static final byte T_ARRAY     = 13;
+
+  /** Object data type. */
+  public static final byte T_OBJECT    = 14;
+
+  /** Reference data type (deprecated). */
+  public static final byte T_REFERENCE = 14; // Deprecated
+
+  /** Unknown data type. */
+  public static final byte T_UNKNOWN   = 15;
 
-    /**
-     * JVM internal opcode.
-     *
-     * @see <a
-     * href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
-     * Specification of _quick opcodes in the Java Virtual Machine Specification
-     * (version 1)</a>
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
-     * Why the _quick opcodes were removed from the second version of the Java
-     * Virtual Machine Specification.</a>
-     */
-    public static final short ANEWARRAY_QUICK = 222;
+  /** Address data type. */
+  public static final byte T_ADDRESS   = 16;
 
-    /**
-     * JVM internal opcode.
-     *
-     * @see <a
-     * href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
-     * Specification of _quick opcodes in the Java Virtual Machine Specification
-     * (version 1)</a>
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
-     * Why the _quick opcodes were removed from the second version of the Java
-     * Virtual Machine Specification.</a>
-     */
-    public static final short MULTIANEWARRAY_QUICK = 223;
+  /** The primitive type names corresponding to the T_XX constants,
+   * e.g., TYPE_NAMES[T_INT] = "int"
+   */
+  private static final String[] TYPE_NAMES = {
+    ILLEGAL_TYPE, ILLEGAL_TYPE,  ILLEGAL_TYPE, ILLEGAL_TYPE,
+    "boolean", "char", "float", "double", "byte", "short", "int", "long",
+    "void", "array", "object", "unknown", "address"
+  };
 
-    /**
-     * JVM internal opcode.
-     *
-     * @see <a
-     * href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
-     * Specification of _quick opcodes in the Java Virtual Machine Specification
-     * (version 1)</a>
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
-     * Why the _quick opcodes were removed from the second version of the Java
-     * Virtual Machine Specification.</a>
-     */
-    public static final short CHECKCAST_QUICK = 224;
+  /**
+   * The primitive type names corresponding to the T_XX constants,
+   * e.g., TYPE_NAMES[T_INT] = "int"
+   * @param index
+   * @return the type name
+   * @since 6.0
+   */
+  public static String getTypeName(final int index) {
+      return TYPE_NAMES[index];
+  }
 
-    /**
-     * JVM internal opcode.
-     *
-     * @see <a
-     * href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
-     * Specification of _quick opcodes in the Java Virtual Machine Specification
-     * (version 1)</a>
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
-     * Why the _quick opcodes were removed from the second version of the Java
-     * Virtual Machine Specification.</a>
-     */
-    public static final short INSTANCEOF_QUICK = 225;
-
-    /**
-     * JVM internal opcode.
-     *
-     * @see <a
-     * href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
-     * Specification of _quick opcodes in the Java Virtual Machine Specification
-     * (version 1)</a>
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
-     * Why the _quick opcodes were removed from the second version of the Java
-     * Virtual Machine Specification.</a>
-     */
-    public static final short INVOKEVIRTUAL_QUICK_W = 226;
+  /** The primitive class names corresponding to the T_XX constants,
+   * e.g., CLASS_TYPE_NAMES[T_INT] = "java.lang.Integer"
+   */
+  private static final String[] CLASS_TYPE_NAMES = {
+    ILLEGAL_TYPE, ILLEGAL_TYPE,  ILLEGAL_TYPE, ILLEGAL_TYPE,
+    "java.lang.Boolean", "java.lang.Character", "java.lang.Float",
+    "java.lang.Double", "java.lang.Byte", "java.lang.Short",
+    "java.lang.Integer", "java.lang.Long", "java.lang.Void",
+    ILLEGAL_TYPE, ILLEGAL_TYPE,  ILLEGAL_TYPE,  ILLEGAL_TYPE
+  };
 
-    /**
-     * JVM internal opcode.
-     *
-     * @see <a
-     * href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
-     * Specification of _quick opcodes in the Java Virtual Machine Specification
-     * (version 1)</a>
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
-     * Why the _quick opcodes were removed from the second version of the Java
-     * Virtual Machine Specification.</a>
-     */
-    public static final short GETFIELD_QUICK_W = 227;
+  /**
+   * The primitive class names corresponding to the T_XX constants,
+   * e.g., CLASS_TYPE_NAMES[T_INT] = "java.lang.Integer"
+   * @param index
+   * @return the class name
+   * @since 6.0
+   */
+  public static String getClassTypeName(final int index) {
+      return CLASS_TYPE_NAMES[index];
+  }
 
-    /**
-     * JVM internal opcode.
-     *
-     * @see <a
-     * href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
-     * Specification of _quick opcodes in the Java Virtual Machine Specification
-     * (version 1)</a>
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
-     * Why the _quick opcodes were removed from the second version of the Java
-     * Virtual Machine Specification.</a>
-     */
-    public static final short PUTFIELD_QUICK_W = 228;
+  /** The signature characters corresponding to primitive types,
+   * e.g., SHORT_TYPE_NAMES[T_INT] = "I"
+   */
+  private static final String[] SHORT_TYPE_NAMES = {
+    ILLEGAL_TYPE, ILLEGAL_TYPE,  ILLEGAL_TYPE, ILLEGAL_TYPE,
+    "Z", "C", "F", "D", "B", "S", "I", "J",
+    "V", ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE
+  };
 
-    /**
-     * JVM internal opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.2">
-     * Reserved opcodes in the Java Virtual Machine Specification</a>
-     */
-    public static final short IMPDEP1 = 254;
+  /**
+   *
+   * @param index
+   * @return the short type name
+   * @since 6.0
+   */
+  public static String getShortTypeName(final int index) {
+      return SHORT_TYPE_NAMES[index];
+  }
+
 
-    /**
-     * JVM internal opcode.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.2">
-     * Reserved opcodes in the Java Virtual Machine Specification</a>
-     */
-    public static final short IMPDEP2 = 255;
-
-    /**
-     * BCEL virtual instruction for pushing an arbitrary data type onto the
-     * stack. Will be converted to the appropriate JVM opcode when the class is
-     * dumped.
-     */
-    public static final short PUSH = 4711;
-
-    /**
-     * BCEL virtual instruction for either LOOKUPSWITCH or TABLESWITCH. Will be
-     * converted to the appropriate JVM opcode when the class is dumped.
-     */
-    public static final short SWITCH = 4712;
-
-    /**
-     * Illegal opcode.
-     */
-    public static final short UNDEFINED = -1;
-
-    /**
-     * Illegal opcode.
-     */
-    public static final short UNPREDICTABLE = -2;
-
-    /**
-     * Illegal opcode.
-     */
-    public static final short RESERVED = -3;
-
-    /**
-     * Mnemonic for an illegal opcode.
-     */
-    public static final String ILLEGAL_OPCODE = "<illegal opcode>";
-
-    /**
-     * Mnemonic for an illegal type.
-     */
-    public static final String ILLEGAL_TYPE = "<illegal type>";
+  /**
+   * Number of byte code operands for each opcode, i.e., number of bytes after the tag byte
+   * itself.  Indexed by opcode, so NO_OF_OPERANDS[BIPUSH] = the number of operands for a bipush
+   * instruction.
+   */
+  private static final short[] NO_OF_OPERANDS = {
+    0/*nop*/, 0/*aconst_null*/, 0/*iconst_m1*/, 0/*iconst_0*/,
+    0/*iconst_1*/, 0/*iconst_2*/, 0/*iconst_3*/, 0/*iconst_4*/,
+    0/*iconst_5*/, 0/*lconst_0*/, 0/*lconst_1*/, 0/*fconst_0*/,
+    0/*fconst_1*/, 0/*fconst_2*/, 0/*dconst_0*/, 0/*dconst_1*/,
+    1/*bipush*/, 2/*sipush*/, 1/*ldc*/, 2/*ldc_w*/, 2/*ldc2_w*/,
+    1/*iload*/, 1/*lload*/, 1/*fload*/, 1/*dload*/, 1/*aload*/,
+    0/*iload_0*/, 0/*iload_1*/, 0/*iload_2*/, 0/*iload_3*/,
+    0/*lload_0*/, 0/*lload_1*/, 0/*lload_2*/, 0/*lload_3*/,
+    0/*fload_0*/, 0/*fload_1*/, 0/*fload_2*/, 0/*fload_3*/,
+    0/*dload_0*/, 0/*dload_1*/, 0/*dload_2*/, 0/*dload_3*/,
+    0/*aload_0*/, 0/*aload_1*/, 0/*aload_2*/, 0/*aload_3*/,
+    0/*iaload*/, 0/*laload*/, 0/*faload*/, 0/*daload*/,
+    0/*aaload*/, 0/*baload*/, 0/*caload*/, 0/*saload*/,
+    1/*istore*/, 1/*lstore*/, 1/*fstore*/, 1/*dstore*/,
+    1/*astore*/, 0/*istore_0*/, 0/*istore_1*/, 0/*istore_2*/,
+    0/*istore_3*/, 0/*lstore_0*/, 0/*lstore_1*/, 0/*lstore_2*/,
+    0/*lstore_3*/, 0/*fstore_0*/, 0/*fstore_1*/, 0/*fstore_2*/,
+    0/*fstore_3*/, 0/*dstore_0*/, 0/*dstore_1*/, 0/*dstore_2*/,
+    0/*dstore_3*/, 0/*astore_0*/, 0/*astore_1*/, 0/*astore_2*/,
+    0/*astore_3*/, 0/*iastore*/, 0/*lastore*/, 0/*fastore*/,
+    0/*dastore*/, 0/*aastore*/, 0/*bastore*/, 0/*castore*/,
+    0/*sastore*/, 0/*pop*/, 0/*pop2*/, 0/*dup*/, 0/*dup_x1*/,
+    0/*dup_x2*/, 0/*dup2*/, 0/*dup2_x1*/, 0/*dup2_x2*/, 0/*swap*/,
+    0/*iadd*/, 0/*ladd*/, 0/*fadd*/, 0/*dadd*/, 0/*isub*/,
+    0/*lsub*/, 0/*fsub*/, 0/*dsub*/, 0/*imul*/, 0/*lmul*/,
+    0/*fmul*/, 0/*dmul*/, 0/*idiv*/, 0/*ldiv*/, 0/*fdiv*/,
+    0/*ddiv*/, 0/*irem*/, 0/*lrem*/, 0/*frem*/, 0/*drem*/,
+    0/*ineg*/, 0/*lneg*/, 0/*fneg*/, 0/*dneg*/, 0/*ishl*/,
+    0/*lshl*/, 0/*ishr*/, 0/*lshr*/, 0/*iushr*/, 0/*lushr*/,
+    0/*iand*/, 0/*land*/, 0/*ior*/, 0/*lor*/, 0/*ixor*/, 0/*lxor*/,
+    2/*iinc*/, 0/*i2l*/, 0/*i2f*/, 0/*i2d*/, 0/*l2i*/, 0/*l2f*/,
+    0/*l2d*/, 0/*f2i*/, 0/*f2l*/, 0/*f2d*/, 0/*d2i*/, 0/*d2l*/,
+    0/*d2f*/, 0/*i2b*/, 0/*i2c*/, 0/*i2s*/, 0/*lcmp*/, 0/*fcmpl*/,
+    0/*fcmpg*/, 0/*dcmpl*/, 0/*dcmpg*/, 2/*ifeq*/, 2/*ifne*/,
+    2/*iflt*/, 2/*ifge*/, 2/*ifgt*/, 2/*ifle*/, 2/*if_icmpeq*/,
+    2/*if_icmpne*/, 2/*if_icmplt*/, 2/*if_icmpge*/, 2/*if_icmpgt*/,
+    2/*if_icmple*/, 2/*if_acmpeq*/, 2/*if_acmpne*/, 2/*goto*/,
+    2/*jsr*/, 1/*ret*/, UNPREDICTABLE/*tableswitch*/, UNPREDICTABLE/*lookupswitch*/,
+    0/*ireturn*/, 0/*lreturn*/, 0/*freturn*/,
+    0/*dreturn*/, 0/*areturn*/, 0/*return*/,
+    2/*getstatic*/, 2/*putstatic*/, 2/*getfield*/,
+    2/*putfield*/, 2/*invokevirtual*/, 2/*invokespecial*/, 2/*invokestatic*/,
+    4/*invokeinterface*/, 4/*invokedynamic*/, 2/*new*/,
+    1/*newarray*/, 2/*anewarray*/,
+    0/*arraylength*/, 0/*athrow*/, 2/*checkcast*/,
+    2/*instanceof*/, 0/*monitorenter*/,
+    0/*monitorexit*/, UNPREDICTABLE/*wide*/, 3/*multianewarray*/,
+    2/*ifnull*/, 2/*ifnonnull*/, 4/*goto_w*/,
+    4/*jsr_w*/, 0/*breakpoint*/, UNDEFINED,
+    UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNDEFINED, RESERVED/*impdep1*/, RESERVED/*impdep2*/
+  };
 
-    /**
-     * Boolean data type.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P">
-     * Static Constraints in the Java Virtual Machine Specification</a>
-     */
-    public static final byte T_BOOLEAN = 4;
-
-    /**
-     * Char data type.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P">
-     * Static Constraints in the Java Virtual Machine Specification</a>
-     */
-    public static final byte T_CHAR = 5;
-
-    /**
-     * Float data type.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P">
-     * Static Constraints in the Java Virtual Machine Specification</a>
-     */
-    public static final byte T_FLOAT = 6;
-
-    /**
-     * Double data type.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P">
-     * Static Constraints in the Java Virtual Machine Specification</a>
-     */
-    public static final byte T_DOUBLE = 7;
-
-    /**
-     * Byte data type.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P">
-     * Static Constraints in the Java Virtual Machine Specification</a>
-     */
-    public static final byte T_BYTE = 8;
-
-    /**
-     * Short data type.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P">
-     * Static Constraints in the Java Virtual Machine Specification</a>
-     */
-    public static final byte T_SHORT = 9;
+  /**
+   *
+   * @param index
+   * @return Number of byte code operands
+   * @since 6.0
+   */
+  public static short getNoOfOperands(final int index) {
+      return NO_OF_OPERANDS[index];
+  }
 
-    /**
-     * Int data type.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P">
-     * Static Constraints in the Java Virtual Machine Specification</a>
-     */
-    public static final byte T_INT = 10;
-
-    /**
-     * Long data type.
-     *
-     * @see <a
-     * href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P">
-     * Static Constraints in the Java Virtual Machine Specification</a>
-     */
-    public static final byte T_LONG = 11;
-
-    /**
-     * Void data type (non-standard).
-     */
-    public static final byte T_VOID = 12; // Non-standard
-
-    /**
-     * Array data type.
-     */
-    public static final byte T_ARRAY = 13;
-
-    /**
-     * Object data type.
-     */
-    public static final byte T_OBJECT = 14;
-
-    /**
-     * Reference data type (deprecated).
-     */
-    public static final byte T_REFERENCE = 14; // Deprecated
-
-    /**
-     * Unknown data type.
-     */
-    public static final byte T_UNKNOWN = 15;
-
-    /**
-     * Address data type.
-     */
-    public static final byte T_ADDRESS = 16;
+  /**
+   * How the byte code operands are to be interpreted for each opcode.
+   * Indexed by opcode.  TYPE_OF_OPERANDS[ILOAD] = an array of shorts
+   * describing the data types for the instruction.
+   */
+  private static final short[][] TYPE_OF_OPERANDS = {
+    {}/*nop*/, {}/*aconst_null*/, {}/*iconst_m1*/, {}/*iconst_0*/,
+    {}/*iconst_1*/, {}/*iconst_2*/, {}/*iconst_3*/, {}/*iconst_4*/,
+    {}/*iconst_5*/, {}/*lconst_0*/, {}/*lconst_1*/, {}/*fconst_0*/,
+    {}/*fconst_1*/, {}/*fconst_2*/, {}/*dconst_0*/, {}/*dconst_1*/,
+    {T_BYTE}/*bipush*/, {T_SHORT}/*sipush*/, {T_BYTE}/*ldc*/,
+    {T_SHORT}/*ldc_w*/, {T_SHORT}/*ldc2_w*/,
+    {T_BYTE}/*iload*/, {T_BYTE}/*lload*/, {T_BYTE}/*fload*/,
+    {T_BYTE}/*dload*/, {T_BYTE}/*aload*/, {}/*iload_0*/,
+    {}/*iload_1*/, {}/*iload_2*/, {}/*iload_3*/, {}/*lload_0*/,
+    {}/*lload_1*/, {}/*lload_2*/, {}/*lload_3*/, {}/*fload_0*/,
+    {}/*fload_1*/, {}/*fload_2*/, {}/*fload_3*/, {}/*dload_0*/,
+    {}/*dload_1*/, {}/*dload_2*/, {}/*dload_3*/, {}/*aload_0*/,
+    {}/*aload_1*/, {}/*aload_2*/, {}/*aload_3*/, {}/*iaload*/,
+    {}/*laload*/, {}/*faload*/, {}/*daload*/, {}/*aaload*/,
+    {}/*baload*/, {}/*caload*/, {}/*saload*/, {T_BYTE}/*istore*/,
+    {T_BYTE}/*lstore*/, {T_BYTE}/*fstore*/, {T_BYTE}/*dstore*/,
+    {T_BYTE}/*astore*/, {}/*istore_0*/, {}/*istore_1*/,
+    {}/*istore_2*/, {}/*istore_3*/, {}/*lstore_0*/, {}/*lstore_1*/,
+    {}/*lstore_2*/, {}/*lstore_3*/, {}/*fstore_0*/, {}/*fstore_1*/,
+    {}/*fstore_2*/, {}/*fstore_3*/, {}/*dstore_0*/, {}/*dstore_1*/,
+    {}/*dstore_2*/, {}/*dstore_3*/, {}/*astore_0*/, {}/*astore_1*/,
+    {}/*astore_2*/, {}/*astore_3*/, {}/*iastore*/, {}/*lastore*/,
+    {}/*fastore*/, {}/*dastore*/, {}/*aastore*/, {}/*bastore*/,
+    {}/*castore*/, {}/*sastore*/, {}/*pop*/, {}/*pop2*/, {}/*dup*/,
+    {}/*dup_x1*/, {}/*dup_x2*/, {}/*dup2*/, {}/*dup2_x1*/,
+    {}/*dup2_x2*/, {}/*swap*/, {}/*iadd*/, {}/*ladd*/, {}/*fadd*/,
+    {}/*dadd*/, {}/*isub*/, {}/*lsub*/, {}/*fsub*/, {}/*dsub*/,
+    {}/*imul*/, {}/*lmul*/, {}/*fmul*/, {}/*dmul*/, {}/*idiv*/,
+    {}/*ldiv*/, {}/*fdiv*/, {}/*ddiv*/, {}/*irem*/, {}/*lrem*/,
+    {}/*frem*/, {}/*drem*/, {}/*ineg*/, {}/*lneg*/, {}/*fneg*/,
+    {}/*dneg*/, {}/*ishl*/, {}/*lshl*/, {}/*ishr*/, {}/*lshr*/,
+    {}/*iushr*/, {}/*lushr*/, {}/*iand*/, {}/*land*/, {}/*ior*/,
+    {}/*lor*/, {}/*ixor*/, {}/*lxor*/, {T_BYTE, T_BYTE}/*iinc*/,
+    {}/*i2l*/, {}/*i2f*/, {}/*i2d*/, {}/*l2i*/, {}/*l2f*/, {}/*l2d*/,
+    {}/*f2i*/, {}/*f2l*/, {}/*f2d*/, {}/*d2i*/, {}/*d2l*/, {}/*d2f*/,
+    {}/*i2b*/, {}/*i2c*/, {}/*i2s*/, {}/*lcmp*/, {}/*fcmpl*/,
+    {}/*fcmpg*/, {}/*dcmpl*/, {}/*dcmpg*/, {T_SHORT}/*ifeq*/,
+    {T_SHORT}/*ifne*/, {T_SHORT}/*iflt*/, {T_SHORT}/*ifge*/,
+    {T_SHORT}/*ifgt*/, {T_SHORT}/*ifle*/, {T_SHORT}/*if_icmpeq*/,
+    {T_SHORT}/*if_icmpne*/, {T_SHORT}/*if_icmplt*/,
+    {T_SHORT}/*if_icmpge*/, {T_SHORT}/*if_icmpgt*/,
+    {T_SHORT}/*if_icmple*/, {T_SHORT}/*if_acmpeq*/,
+    {T_SHORT}/*if_acmpne*/, {T_SHORT}/*goto*/, {T_SHORT}/*jsr*/,
+    {T_BYTE}/*ret*/, {}/*tableswitch*/, {}/*lookupswitch*/,
+    {}/*ireturn*/, {}/*lreturn*/, {}/*freturn*/, {}/*dreturn*/,
+    {}/*areturn*/, {}/*return*/, {T_SHORT}/*getstatic*/,
+    {T_SHORT}/*putstatic*/, {T_SHORT}/*getfield*/,
+    {T_SHORT}/*putfield*/, {T_SHORT}/*invokevirtual*/,
+    {T_SHORT}/*invokespecial*/, {T_SHORT}/*invokestatic*/,
+    {T_SHORT, T_BYTE, T_BYTE}/*invokeinterface*/, {T_SHORT, T_BYTE, T_BYTE}/*invokedynamic*/,
+    {T_SHORT}/*new*/, {T_BYTE}/*newarray*/,
+    {T_SHORT}/*anewarray*/, {}/*arraylength*/, {}/*athrow*/,
+    {T_SHORT}/*checkcast*/, {T_SHORT}/*instanceof*/,
+    {}/*monitorenter*/, {}/*monitorexit*/, {T_BYTE}/*wide*/,
+    {T_SHORT, T_BYTE}/*multianewarray*/, {T_SHORT}/*ifnull*/,
+    {T_SHORT}/*ifnonnull*/, {T_INT}/*goto_w*/, {T_INT}/*jsr_w*/,
+    {}/*breakpoint*/, {}, {}, {}, {}, {}, {}, {},
+    {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},
+    {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},
+    {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},
+    {}/*impdep1*/, {}/*impdep2*/
+  };
 
-    /**
-     * The primitive type names corresponding to the T_XX constants, e.g.,
-     * TYPE_NAMES[T_INT] = "int"
-     */
-    private static final String[] TYPE_NAMES = {
-        ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE,
-        "boolean", "char", "float", "double", "byte", "short", "int", "long",
-        "void", "array", "object", "unknown", "address"
-    };
-
-    /**
-     * The primitive type names corresponding to the T_XX constants, e.g.,
-     * TYPE_NAMES[T_INT] = "int"
-     *
-     * @param index
-     * @return the type name
-     * @since 6.0
-     */
-    public static String getTypeName(final int index) {
-        return TYPE_NAMES[index];
-    }
+  /**
+   * @since 6.0
+   */
+  public static short getOperandType(final int opcode, final int index) {
+      return TYPE_OF_OPERANDS[opcode][index];
+  }
 
-    /**
-     * The primitive class names corresponding to the T_XX constants, e.g.,
-     * CLASS_TYPE_NAMES[T_INT] = "java.lang.Integer"
-     */
-    private static final String[] CLASS_TYPE_NAMES = {
-        ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE,
-        "java.lang.Boolean", "java.lang.Character", "java.lang.Float",
-        "java.lang.Double", "java.lang.Byte", "java.lang.Short",
-        "java.lang.Integer", "java.lang.Long", "java.lang.Void",
-        ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE
-    };
-
-    /**
-     * The primitive class names corresponding to the T_XX constants, e.g.,
-     * CLASS_TYPE_NAMES[T_INT] = "java.lang.Integer"
-     *
-     * @param index
-     * @return the class name
-     * @since 6.0
-     */
-    public static String getClassTypeName(final int index) {
-        return CLASS_TYPE_NAMES[index];
-    }
-
-    /**
-     * The signature characters corresponding to primitive types, e.g.,
-     * SHORT_TYPE_NAMES[T_INT] = "I"
-     */
-    private static final String[] SHORT_TYPE_NAMES = {
-        ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE,
-        "Z", "C", "F", "D", "B", "S", "I", "J",
-        "V", ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE
-    };
-
-    /**
-     *
-     * @param index
-     * @return the short type name
-     * @since 6.0
-     */
-    public static String getShortTypeName(final int index) {
-        return SHORT_TYPE_NAMES[index];
-    }
+  /**
+   * @since 6.0
+   */
+  public static long getOperandTypeCount(final int opcode) {
+      return TYPE_OF_OPERANDS[opcode].length;
+  }
 
-    /**
-     * Number of byte code operands for each opcode, i.e., number of bytes after
-     * the tag byte itself. Indexed by opcode, so NO_OF_OPERANDS[BIPUSH] = the
-     * number of operands for a bipush instruction.
-     */
-    private static final short[] NO_OF_OPERANDS = {
-        0/*nop*/, 0/*aconst_null*/, 0/*iconst_m1*/, 0/*iconst_0*/,
-        0/*iconst_1*/, 0/*iconst_2*/, 0/*iconst_3*/, 0/*iconst_4*/,
-        0/*iconst_5*/, 0/*lconst_0*/, 0/*lconst_1*/, 0/*fconst_0*/,
-        0/*fconst_1*/, 0/*fconst_2*/, 0/*dconst_0*/, 0/*dconst_1*/,
-        1/*bipush*/, 2/*sipush*/, 1/*ldc*/, 2/*ldc_w*/, 2/*ldc2_w*/,
-        1/*iload*/, 1/*lload*/, 1/*fload*/, 1/*dload*/, 1/*aload*/,
-        0/*iload_0*/, 0/*iload_1*/, 0/*iload_2*/, 0/*iload_3*/,
-        0/*lload_0*/, 0/*lload_1*/, 0/*lload_2*/, 0/*lload_3*/,
-        0/*fload_0*/, 0/*fload_1*/, 0/*fload_2*/, 0/*fload_3*/,
-        0/*dload_0*/, 0/*dload_1*/, 0/*dload_2*/, 0/*dload_3*/,
-        0/*aload_0*/, 0/*aload_1*/, 0/*aload_2*/, 0/*aload_3*/,
-        0/*iaload*/, 0/*laload*/, 0/*faload*/, 0/*daload*/,
-        0/*aaload*/, 0/*baload*/, 0/*caload*/, 0/*saload*/,
-        1/*istore*/, 1/*lstore*/, 1/*fstore*/, 1/*dstore*/,
-        1/*astore*/, 0/*istore_0*/, 0/*istore_1*/, 0/*istore_2*/,
-        0/*istore_3*/, 0/*lstore_0*/, 0/*lstore_1*/, 0/*lstore_2*/,
-        0/*lstore_3*/, 0/*fstore_0*/, 0/*fstore_1*/, 0/*fstore_2*/,
-        0/*fstore_3*/, 0/*dstore_0*/, 0/*dstore_1*/, 0/*dstore_2*/,
-        0/*dstore_3*/, 0/*astore_0*/, 0/*astore_1*/, 0/*astore_2*/,
-        0/*astore_3*/, 0/*iastore*/, 0/*lastore*/, 0/*fastore*/,
-        0/*dastore*/, 0/*aastore*/, 0/*bastore*/, 0/*castore*/,
-        0/*sastore*/, 0/*pop*/, 0/*pop2*/, 0/*dup*/, 0/*dup_x1*/,
-        0/*dup_x2*/, 0/*dup2*/, 0/*dup2_x1*/, 0/*dup2_x2*/, 0/*swap*/,
-        0/*iadd*/, 0/*ladd*/, 0/*fadd*/, 0/*dadd*/, 0/*isub*/,
-        0/*lsub*/, 0/*fsub*/, 0/*dsub*/, 0/*imul*/, 0/*lmul*/,
-        0/*fmul*/, 0/*dmul*/, 0/*idiv*/, 0/*ldiv*/, 0/*fdiv*/,
-        0/*ddiv*/, 0/*irem*/, 0/*lrem*/, 0/*frem*/, 0/*drem*/,
-        0/*ineg*/, 0/*lneg*/, 0/*fneg*/, 0/*dneg*/, 0/*ishl*/,
-        0/*lshl*/, 0/*ishr*/, 0/*lshr*/, 0/*iushr*/, 0/*lushr*/,
-        0/*iand*/, 0/*land*/, 0/*ior*/, 0/*lor*/, 0/*ixor*/, 0/*lxor*/,
-        2/*iinc*/, 0/*i2l*/, 0/*i2f*/, 0/*i2d*/, 0/*l2i*/, 0/*l2f*/,
-        0/*l2d*/, 0/*f2i*/, 0/*f2l*/, 0/*f2d*/, 0/*d2i*/, 0/*d2l*/,
-        0/*d2f*/, 0/*i2b*/, 0/*i2c*/, 0/*i2s*/, 0/*lcmp*/, 0/*fcmpl*/,
-        0/*fcmpg*/, 0/*dcmpl*/, 0/*dcmpg*/, 2/*ifeq*/, 2/*ifne*/,
-        2/*iflt*/, 2/*ifge*/, 2/*ifgt*/, 2/*ifle*/, 2/*if_icmpeq*/,
-        2/*if_icmpne*/, 2/*if_icmplt*/, 2/*if_icmpge*/, 2/*if_icmpgt*/,
-        2/*if_icmple*/, 2/*if_acmpeq*/, 2/*if_acmpne*/, 2/*goto*/,
-        2/*jsr*/, 1/*ret*/, UNPREDICTABLE/*tableswitch*/, UNPREDICTABLE/*lookupswitch*/,
-        0/*ireturn*/, 0/*lreturn*/, 0/*freturn*/,
-        0/*dreturn*/, 0/*areturn*/, 0/*return*/,
-        2/*getstatic*/, 2/*putstatic*/, 2/*getfield*/,
-        2/*putfield*/, 2/*invokevirtual*/, 2/*invokespecial*/, 2/*invokestatic*/,
-        4/*invokeinterface*/, 4/*invokedynamic*/, 2/*new*/,
-        1/*newarray*/, 2/*anewarray*/,
-        0/*arraylength*/, 0/*athrow*/, 2/*checkcast*/,
-        2/*instanceof*/, 0/*monitorenter*/,
-        0/*monitorexit*/, UNPREDICTABLE/*wide*/, 3/*multianewarray*/,
-        2/*ifnull*/, 2/*ifnonnull*/, 4/*goto_w*/,
-        4/*jsr_w*/, 0/*breakpoint*/, UNDEFINED,
-        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNDEFINED, RESERVED/*impdep1*/, RESERVED/*impdep2*/};
+  /**
+   * Names of opcodes.  Indexed by opcode.  OPCODE_NAMES[ALOAD] = "aload".
+   */
+  private static final String[] OPCODE_NAMES = {
+    "nop", "aconst_null", "iconst_m1", "iconst_0", "iconst_1",
+    "iconst_2", "iconst_3", "iconst_4", "iconst_5", "lconst_0",
+    "lconst_1", "fconst_0", "fconst_1", "fconst_2", "dconst_0",
+    "dconst_1", "bipush", "sipush", "ldc", "ldc_w", "ldc2_w", "iload",
+    "lload", "fload", "dload", "aload", "iload_0", "iload_1", "iload_2",
+    "iload_3", "lload_0", "lload_1", "lload_2", "lload_3", "fload_0",
+    "fload_1", "fload_2", "fload_3", "dload_0", "dload_1", "dload_2",
+    "dload_3", "aload_0", "aload_1", "aload_2", "aload_3", "iaload",
+    "laload", "faload", "daload", "aaload", "baload", "caload", "saload",
+    "istore", "lstore", "fstore", "dstore", "astore", "istore_0",
+    "istore_1", "istore_2", "istore_3", "lstore_0", "lstore_1",
+    "lstore_2", "lstore_3", "fstore_0", "fstore_1", "fstore_2",
+    "fstore_3", "dstore_0", "dstore_1", "dstore_2", "dstore_3",
+    "astore_0", "astore_1", "astore_2", "astore_3", "iastore", "lastore",
+    "fastore", "dastore", "aastore", "bastore", "castore", "sastore",
+    "pop", "pop2", "dup", "dup_x1", "dup_x2", "dup2", "dup2_x1",
+    "dup2_x2", "swap", "iadd", "ladd", "fadd", "dadd", "isub", "lsub",
+    "fsub", "dsub", "imul", "lmul", "fmul", "dmul", "idiv", "ldiv",
+    "fdiv", "ddiv", "irem", "lrem", "frem", "drem", "ineg", "lneg",
+    "fneg", "dneg", "ishl", "lshl", "ishr", "lshr", "iushr", "lushr",
+    "iand", "land", "ior", "lor", "ixor", "lxor", "iinc", "i2l", "i2f",
+    "i2d", "l2i", "l2f", "l2d", "f2i", "f2l", "f2d", "d2i", "d2l", "d2f",
+    "i2b", "i2c", "i2s", "lcmp", "fcmpl", "fcmpg",
+    "dcmpl", "dcmpg", "ifeq", "ifne", "iflt", "ifge", "ifgt", "ifle",
+    "if_icmpeq", "if_icmpne", "if_icmplt", "if_icmpge", "if_icmpgt",
+    "if_icmple", "if_acmpeq", "if_acmpne", "goto", "jsr", "ret",
+    "tableswitch", "lookupswitch", "ireturn", "lreturn", "freturn",
+    "dreturn", "areturn", "return", "getstatic", "putstatic", "getfield",
+    "putfield", "invokevirtual", "invokespecial", "invokestatic",
+    "invokeinterface", "invokedynamic", "new", "newarray", "anewarray",
+    "arraylength", "athrow", "checkcast", "instanceof", "monitorenter",
+    "monitorexit", "wide", "multianewarray", "ifnull", "ifnonnull",
+    "goto_w", "jsr_w", "breakpoint", ILLEGAL_OPCODE, ILLEGAL_OPCODE,
+    ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
+    ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
+    ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
+    ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
+    ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
+    ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
+    ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
+    ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
+    ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
+    ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
+    ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
+    ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
+    ILLEGAL_OPCODE, "impdep1", "impdep2"
+  };
 
-    /**
-     *
-     * @param index
-     * @return Number of byte code operands
-     * @since 6.0
-     */
-    public static short getNoOfOperands(final int index) {
-        return NO_OF_OPERANDS[index];
-    }
+  /**
+   * @since 6.0
+   */
+  public static final int OPCODE_NAMES_LENGTH = OPCODE_NAMES.length;
+
+
+  /**
+   * @since 6.0
+   */
+  public static String getOpcodeName(final int index) {
+      return OPCODE_NAMES[index];
+  }
 
-    /**
-     * How the byte code operands are to be interpreted for each opcode. Indexed
-     * by opcode. TYPE_OF_OPERANDS[ILOAD] = an array of shorts describing the
-     * data types for the instruction.
-     */
-    private static final short[][] TYPE_OF_OPERANDS = {
-        {}/*nop*/, {}/*aconst_null*/, {}/*iconst_m1*/, {}/*iconst_0*/,
-        {}/*iconst_1*/, {}/*iconst_2*/, {}/*iconst_3*/, {}/*iconst_4*/,
-        {}/*iconst_5*/, {}/*lconst_0*/, {}/*lconst_1*/, {}/*fconst_0*/,
-        {}/*fconst_1*/, {}/*fconst_2*/, {}/*dconst_0*/, {}/*dconst_1*/,
-        {T_BYTE}/*bipush*/, {T_SHORT}/*sipush*/, {T_BYTE}/*ldc*/,
-        {T_SHORT}/*ldc_w*/, {T_SHORT}/*ldc2_w*/,
-        {T_BYTE}/*iload*/, {T_BYTE}/*lload*/, {T_BYTE}/*fload*/,
-        {T_BYTE}/*dload*/, {T_BYTE}/*aload*/, {}/*iload_0*/,
-        {}/*iload_1*/, {}/*iload_2*/, {}/*iload_3*/, {}/*lload_0*/,
-        {}/*lload_1*/, {}/*lload_2*/, {}/*lload_3*/, {}/*fload_0*/,
-        {}/*fload_1*/, {}/*fload_2*/, {}/*fload_3*/, {}/*dload_0*/,
-        {}/*dload_1*/, {}/*dload_2*/, {}/*dload_3*/, {}/*aload_0*/,
-        {}/*aload_1*/, {}/*aload_2*/, {}/*aload_3*/, {}/*iaload*/,
-        {}/*laload*/, {}/*faload*/, {}/*daload*/, {}/*aaload*/,
-        {}/*baload*/, {}/*caload*/, {}/*saload*/, {T_BYTE}/*istore*/,
-        {T_BYTE}/*lstore*/, {T_BYTE}/*fstore*/, {T_BYTE}/*dstore*/,
-        {T_BYTE}/*astore*/, {}/*istore_0*/, {}/*istore_1*/,
-        {}/*istore_2*/, {}/*istore_3*/, {}/*lstore_0*/, {}/*lstore_1*/,
-        {}/*lstore_2*/, {}/*lstore_3*/, {}/*fstore_0*/, {}/*fstore_1*/,
-        {}/*fstore_2*/, {}/*fstore_3*/, {}/*dstore_0*/, {}/*dstore_1*/,
-        {}/*dstore_2*/, {}/*dstore_3*/, {}/*astore_0*/, {}/*astore_1*/,
-        {}/*astore_2*/, {}/*astore_3*/, {}/*iastore*/, {}/*lastore*/,
-        {}/*fastore*/, {}/*dastore*/, {}/*aastore*/, {}/*bastore*/,
-        {}/*castore*/, {}/*sastore*/, {}/*pop*/, {}/*pop2*/, {}/*dup*/,
-        {}/*dup_x1*/, {}/*dup_x2*/, {}/*dup2*/, {}/*dup2_x1*/,
-        {}/*dup2_x2*/, {}/*swap*/, {}/*iadd*/, {}/*ladd*/, {}/*fadd*/,
-        {}/*dadd*/, {}/*isub*/, {}/*lsub*/, {}/*fsub*/, {}/*dsub*/,
-        {}/*imul*/, {}/*lmul*/, {}/*fmul*/, {}/*dmul*/, {}/*idiv*/,
-        {}/*ldiv*/, {}/*fdiv*/, {}/*ddiv*/, {}/*irem*/, {}/*lrem*/,
-        {}/*frem*/, {}/*drem*/, {}/*ineg*/, {}/*lneg*/, {}/*fneg*/,
-        {}/*dneg*/, {}/*ishl*/, {}/*lshl*/, {}/*ishr*/, {}/*lshr*/,
-        {}/*iushr*/, {}/*lushr*/, {}/*iand*/, {}/*land*/, {}/*ior*/,
-        {}/*lor*/, {}/*ixor*/, {}/*lxor*/, {T_BYTE, T_BYTE}/*iinc*/,
-        {}/*i2l*/, {}/*i2f*/, {}/*i2d*/, {}/*l2i*/, {}/*l2f*/, {}/*l2d*/,
-        {}/*f2i*/, {}/*f2l*/, {}/*f2d*/, {}/*d2i*/, {}/*d2l*/, {}/*d2f*/,
-        {}/*i2b*/, {}/*i2c*/, {}/*i2s*/, {}/*lcmp*/, {}/*fcmpl*/,
-        {}/*fcmpg*/, {}/*dcmpl*/, {}/*dcmpg*/, {T_SHORT}/*ifeq*/,
-        {T_SHORT}/*ifne*/, {T_SHORT}/*iflt*/, {T_SHORT}/*ifge*/,
-        {T_SHORT}/*ifgt*/, {T_SHORT}/*ifle*/, {T_SHORT}/*if_icmpeq*/,
-        {T_SHORT}/*if_icmpne*/, {T_SHORT}/*if_icmplt*/,
-        {T_SHORT}/*if_icmpge*/, {T_SHORT}/*if_icmpgt*/,
-        {T_SHORT}/*if_icmple*/, {T_SHORT}/*if_acmpeq*/,
-        {T_SHORT}/*if_acmpne*/, {T_SHORT}/*goto*/, {T_SHORT}/*jsr*/,
-        {T_BYTE}/*ret*/, {}/*tableswitch*/, {}/*lookupswitch*/,
-        {}/*ireturn*/, {}/*lreturn*/, {}/*freturn*/, {}/*dreturn*/,
-        {}/*areturn*/, {}/*return*/, {T_SHORT}/*getstatic*/,
-        {T_SHORT}/*putstatic*/, {T_SHORT}/*getfield*/,
-        {T_SHORT}/*putfield*/, {T_SHORT}/*invokevirtual*/,
-        {T_SHORT}/*invokespecial*/, {T_SHORT}/*invokestatic*/,
-        {T_SHORT, T_BYTE, T_BYTE}/*invokeinterface*/, {T_SHORT, T_BYTE, T_BYTE}/*invokedynamic*/,
-        {T_SHORT}/*new*/, {T_BYTE}/*newarray*/,
-        {T_SHORT}/*anewarray*/, {}/*arraylength*/, {}/*athrow*/,
-        {T_SHORT}/*checkcast*/, {T_SHORT}/*instanceof*/,
-        {}/*monitorenter*/, {}/*monitorexit*/, {T_BYTE}/*wide*/,
-        {T_SHORT, T_BYTE}/*multianewarray*/, {T_SHORT}/*ifnull*/,
-        {T_SHORT}/*ifnonnull*/, {T_INT}/*goto_w*/, {T_INT}/*jsr_w*/,
-        {}/*breakpoint*/, {}, {}, {}, {}, {}, {}, {},
-        {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},
-        {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},
-        {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},
-        {}/*impdep1*/, {}/*impdep2*/};
+  /**
+   * Number of words consumed on operand stack by instructions.
+   * Indexed by opcode.  CONSUME_STACK[FALOAD] = number of words
+   * consumed from the stack by a faload instruction.
+   */
+  private static final int[] CONSUME_STACK = {
+    0/*nop*/, 0/*aconst_null*/, 0/*iconst_m1*/, 0/*iconst_0*/, 0/*iconst_1*/,
+    0/*iconst_2*/, 0/*iconst_3*/, 0/*iconst_4*/, 0/*iconst_5*/, 0/*lconst_0*/,
+    0/*lconst_1*/, 0/*fconst_0*/, 0/*fconst_1*/, 0/*fconst_2*/, 0/*dconst_0*/,
+    0/*dconst_1*/, 0/*bipush*/, 0/*sipush*/, 0/*ldc*/, 0/*ldc_w*/, 0/*ldc2_w*/, 0/*iload*/,
+    0/*lload*/, 0/*fload*/, 0/*dload*/, 0/*aload*/, 0/*iload_0*/, 0/*iload_1*/, 0/*iload_2*/,
+    0/*iload_3*/, 0/*lload_0*/, 0/*lload_1*/, 0/*lload_2*/, 0/*lload_3*/, 0/*fload_0*/,
+    0/*fload_1*/, 0/*fload_2*/, 0/*fload_3*/, 0/*dload_0*/, 0/*dload_1*/, 0/*dload_2*/,
+    0/*dload_3*/, 0/*aload_0*/, 0/*aload_1*/, 0/*aload_2*/, 0/*aload_3*/, 2/*iaload*/,
+    2/*laload*/, 2/*faload*/, 2/*daload*/, 2/*aaload*/, 2/*baload*/, 2/*caload*/, 2/*saload*/,
+    1/*istore*/, 2/*lstore*/, 1/*fstore*/, 2/*dstore*/, 1/*astore*/, 1/*istore_0*/,
+    1/*istore_1*/, 1/*istore_2*/, 1/*istore_3*/, 2/*lstore_0*/, 2/*lstore_1*/,
+    2/*lstore_2*/, 2/*lstore_3*/, 1/*fstore_0*/, 1/*fstore_1*/, 1/*fstore_2*/,
+    1/*fstore_3*/, 2/*dstore_0*/, 2/*dstore_1*/, 2/*dstore_2*/, 2/*dstore_3*/,
+    1/*astore_0*/, 1/*astore_1*/, 1/*astore_2*/, 1/*astore_3*/, 3/*iastore*/, 4/*lastore*/,
+    3/*fastore*/, 4/*dastore*/, 3/*aastore*/, 3/*bastore*/, 3/*castore*/, 3/*sastore*/,
+    1/*pop*/, 2/*pop2*/, 1/*dup*/, 2/*dup_x1*/, 3/*dup_x2*/, 2/*dup2*/, 3/*dup2_x1*/,
+    4/*dup2_x2*/, 2/*swap*/, 2/*iadd*/, 4/*ladd*/, 2/*fadd*/, 4/*dadd*/, 2/*isub*/, 4/*lsub*/,
+    2/*fsub*/, 4/*dsub*/, 2/*imul*/, 4/*lmul*/, 2/*fmul*/, 4/*dmul*/, 2/*idiv*/, 4/*ldiv*/,
+    2/*fdiv*/, 4/*ddiv*/, 2/*irem*/, 4/*lrem*/, 2/*frem*/, 4/*drem*/, 1/*ineg*/, 2/*lneg*/,
+    1/*fneg*/, 2/*dneg*/, 2/*ishl*/, 3/*lshl*/, 2/*ishr*/, 3/*lshr*/, 2/*iushr*/, 3/*lushr*/,
+    2/*iand*/, 4/*land*/, 2/*ior*/, 4/*lor*/, 2/*ixor*/, 4/*lxor*/, 0/*iinc*/,
+    1/*i2l*/, 1/*i2f*/, 1/*i2d*/, 2/*l2i*/, 2/*l2f*/, 2/*l2d*/, 1/*f2i*/, 1/*f2l*/,
+    1/*f2d*/, 2/*d2i*/, 2/*d2l*/, 2/*d2f*/, 1/*i2b*/, 1/*i2c*/, 1/*i2s*/,
+    4/*lcmp*/, 2/*fcmpl*/, 2/*fcmpg*/, 4/*dcmpl*/, 4/*dcmpg*/, 1/*ifeq*/, 1/*ifne*/,
+    1/*iflt*/, 1/*ifge*/, 1/*ifgt*/, 1/*ifle*/, 2/*if_icmpeq*/, 2/*if_icmpne*/, 2/*if_icmplt*/,
+    2 /*if_icmpge*/, 2/*if_icmpgt*/, 2/*if_icmple*/, 2/*if_acmpeq*/, 2/*if_acmpne*/,
+    0/*goto*/, 0/*jsr*/, 0/*ret*/, 1/*tableswitch*/, 1/*lookupswitch*/, 1/*ireturn*/,
+    2/*lreturn*/, 1/*freturn*/, 2/*dreturn*/, 1/*areturn*/, 0/*return*/, 0/*getstatic*/,
+    UNPREDICTABLE/*putstatic*/, 1/*getfield*/, UNPREDICTABLE/*putfield*/,
+    UNPREDICTABLE/*invokevirtual*/, UNPREDICTABLE/*invokespecial*/,
+    UNPREDICTABLE/*invokestatic*/,
+    UNPREDICTABLE/*invokeinterface*/, UNPREDICTABLE/*invokedynamic*/, 0/*new*/, 1/*newarray*/, 1/*anewarray*/,
+    1/*arraylength*/, 1/*athrow*/, 1/*checkcast*/, 1/*instanceof*/, 1/*monitorenter*/,
+    1/*monitorexit*/, 0/*wide*/, UNPREDICTABLE/*multianewarray*/, 1/*ifnull*/, 1/*ifnonnull*/,
+    0/*goto_w*/, 0/*jsr_w*/, 0/*breakpoint*/, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNPREDICTABLE/*impdep1*/, UNPREDICTABLE/*impdep2*/
+  };
 
-    /**
-     * @since 6.0
-     */
-    public static short getOperandType(final int opcode, final int index) {
-        return TYPE_OF_OPERANDS[opcode][index];
-    }
-
-    /**
-     * @since 6.0
-     */
-    public static long getOperandTypeCount(final int opcode) {
-        return TYPE_OF_OPERANDS[opcode].length;
-    }
+  /**
+   *
+   * @param index
+   * @return Number of words consumed on operand stack
+   * @since 6.0
+   */
+  public static int getConsumeStack(final int index) {
+      return CONSUME_STACK[index];
+  }
 
-    /**
-     * Names of opcodes. Indexed by opcode. OPCODE_NAMES[ALOAD] = "aload".
-     */
-    private static final String[] OPCODE_NAMES = {
-        "nop", "aconst_null", "iconst_m1", "iconst_0", "iconst_1",
-        "iconst_2", "iconst_3", "iconst_4", "iconst_5", "lconst_0",
-        "lconst_1", "fconst_0", "fconst_1", "fconst_2", "dconst_0",
-        "dconst_1", "bipush", "sipush", "ldc", "ldc_w", "ldc2_w", "iload",
-        "lload", "fload", "dload", "aload", "iload_0", "iload_1", "iload_2",
-        "iload_3", "lload_0", "lload_1", "lload_2", "lload_3", "fload_0",
-        "fload_1", "fload_2", "fload_3", "dload_0", "dload_1", "dload_2",
-        "dload_3", "aload_0", "aload_1", "aload_2", "aload_3", "iaload",
-        "laload", "faload", "daload", "aaload", "baload", "caload", "saload",
-        "istore", "lstore", "fstore", "dstore", "astore", "istore_0",
-        "istore_1", "istore_2", "istore_3", "lstore_0", "lstore_1",
-        "lstore_2", "lstore_3", "fstore_0", "fstore_1", "fstore_2",
-        "fstore_3", "dstore_0", "dstore_1", "dstore_2", "dstore_3",
-        "astore_0", "astore_1", "astore_2", "astore_3", "iastore", "lastore",
-        "fastore", "dastore", "aastore", "bastore", "castore", "sastore",
-        "pop", "pop2", "dup", "dup_x1", "dup_x2", "dup2", "dup2_x1",
-        "dup2_x2", "swap", "iadd", "ladd", "fadd", "dadd", "isub", "lsub",
-        "fsub", "dsub", "imul", "lmul", "fmul", "dmul", "idiv", "ldiv",
-        "fdiv", "ddiv", "irem", "lrem", "frem", "drem", "ineg", "lneg",
-        "fneg", "dneg", "ishl", "lshl", "ishr", "lshr", "iushr", "lushr",
-        "iand", "land", "ior", "lor", "ixor", "lxor", "iinc", "i2l", "i2f",
-        "i2d", "l2i", "l2f", "l2d", "f2i", "f2l", "f2d", "d2i", "d2l", "d2f",
-        "i2b", "i2c", "i2s", "lcmp", "fcmpl", "fcmpg",
-        "dcmpl", "dcmpg", "ifeq", "ifne", "iflt", "ifge", "ifgt", "ifle",
-        "if_icmpeq", "if_icmpne", "if_icmplt", "if_icmpge", "if_icmpgt",
-        "if_icmple", "if_acmpeq", "if_acmpne", "goto", "jsr", "ret",
-        "tableswitch", "lookupswitch", "ireturn", "lreturn", "freturn",
-        "dreturn", "areturn", "return", "getstatic", "putstatic", "getfield",
-        "putfield", "invokevirtual", "invokespecial", "invokestatic",
-        "invokeinterface", "invokedynamic", "new", "newarray", "anewarray",
-        "arraylength", "athrow", "checkcast", "instanceof", "monitorenter",
-        "monitorexit", "wide", "multianewarray", "ifnull", "ifnonnull",
-        "goto_w", "jsr_w", "breakpoint", ILLEGAL_OPCODE, ILLEGAL_OPCODE,
-        ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
-        ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
-        ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
-        ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
-        ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
-        ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
-        ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
-        ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
-        ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
-        ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
-        ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
-        ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
-        ILLEGAL_OPCODE, "impdep1", "impdep2"
-    };
-
-    /**
-     * @since 6.0
-     */
-    public static final int OPCODE_NAMES_LENGTH = OPCODE_NAMES.length;
-
-    /**
-     * @since 6.0
-     */
-    public static String getOpcodeName(final int index) {
-        return OPCODE_NAMES[index];
-    }
 
-    /**
-     * Number of words consumed on operand stack by instructions. Indexed by
-     * opcode. CONSUME_STACK[FALOAD] = number of words consumed from the stack
-     * by a faload instruction.
-     */
-    private static final int[] CONSUME_STACK = {
-        0/*nop*/, 0/*aconst_null*/, 0/*iconst_m1*/, 0/*iconst_0*/, 0/*iconst_1*/,
-        0/*iconst_2*/, 0/*iconst_3*/, 0/*iconst_4*/, 0/*iconst_5*/, 0/*lconst_0*/,
-        0/*lconst_1*/, 0/*fconst_0*/, 0/*fconst_1*/, 0/*fconst_2*/, 0/*dconst_0*/,
-        0/*dconst_1*/, 0/*bipush*/, 0/*sipush*/, 0/*ldc*/, 0/*ldc_w*/, 0/*ldc2_w*/, 0/*iload*/,
-        0/*lload*/, 0/*fload*/, 0/*dload*/, 0/*aload*/, 0/*iload_0*/, 0/*iload_1*/, 0/*iload_2*/,
-        0/*iload_3*/, 0/*lload_0*/, 0/*lload_1*/, 0/*lload_2*/, 0/*lload_3*/, 0/*fload_0*/,
-        0/*fload_1*/, 0/*fload_2*/, 0/*fload_3*/, 0/*dload_0*/, 0/*dload_1*/, 0/*dload_2*/,
-        0/*dload_3*/, 0/*aload_0*/, 0/*aload_1*/, 0/*aload_2*/, 0/*aload_3*/, 2/*iaload*/,
-        2/*laload*/, 2/*faload*/, 2/*daload*/, 2/*aaload*/, 2/*baload*/, 2/*caload*/, 2/*saload*/,
-        1/*istore*/, 2/*lstore*/, 1/*fstore*/, 2/*dstore*/, 1/*astore*/, 1/*istore_0*/,
-        1/*istore_1*/, 1/*istore_2*/, 1/*istore_3*/, 2/*lstore_0*/, 2/*lstore_1*/,
-        2/*lstore_2*/, 2/*lstore_3*/, 1/*fstore_0*/, 1/*fstore_1*/, 1/*fstore_2*/,
-        1/*fstore_3*/, 2/*dstore_0*/, 2/*dstore_1*/, 2/*dstore_2*/, 2/*dstore_3*/,
-        1/*astore_0*/, 1/*astore_1*/, 1/*astore_2*/, 1/*astore_3*/, 3/*iastore*/, 4/*lastore*/,
-        3/*fastore*/, 4/*dastore*/, 3/*aastore*/, 3/*bastore*/, 3/*castore*/, 3/*sastore*/,
-        1/*pop*/, 2/*pop2*/, 1/*dup*/, 2/*dup_x1*/, 3/*dup_x2*/, 2/*dup2*/, 3/*dup2_x1*/,
-        4/*dup2_x2*/, 2/*swap*/, 2/*iadd*/, 4/*ladd*/, 2/*fadd*/, 4/*dadd*/, 2/*isub*/, 4/*lsub*/,
-        2/*fsub*/, 4/*dsub*/, 2/*imul*/, 4/*lmul*/, 2/*fmul*/, 4/*dmul*/, 2/*idiv*/, 4/*ldiv*/,
-        2/*fdiv*/, 4/*ddiv*/, 2/*irem*/, 4/*lrem*/, 2/*frem*/, 4/*drem*/, 1/*ineg*/, 2/*lneg*/,
-        1/*fneg*/, 2/*dneg*/, 2/*ishl*/, 3/*lshl*/, 2/*ishr*/, 3/*lshr*/, 2/*iushr*/, 3/*lushr*/,
-        2/*iand*/, 4/*land*/, 2/*ior*/, 4/*lor*/, 2/*ixor*/, 4/*lxor*/, 0/*iinc*/,
-        1/*i2l*/, 1/*i2f*/, 1/*i2d*/, 2/*l2i*/, 2/*l2f*/, 2/*l2d*/, 1/*f2i*/, 1/*f2l*/,
-        1/*f2d*/, 2/*d2i*/, 2/*d2l*/, 2/*d2f*/, 1/*i2b*/, 1/*i2c*/, 1/*i2s*/,
-        4/*lcmp*/, 2/*fcmpl*/, 2/*fcmpg*/, 4/*dcmpl*/, 4/*dcmpg*/, 1/*ifeq*/, 1/*ifne*/,
-        1/*iflt*/, 1/*ifge*/, 1/*ifgt*/, 1/*ifle*/, 2/*if_icmpeq*/, 2/*if_icmpne*/, 2/*if_icmplt*/,
-        2 /*if_icmpge*/, 2/*if_icmpgt*/, 2/*if_icmple*/, 2/*if_acmpeq*/, 2/*if_acmpne*/,
-        0/*goto*/, 0/*jsr*/, 0/*ret*/, 1/*tableswitch*/, 1/*lookupswitch*/, 1/*ireturn*/,
-        2/*lreturn*/, 1/*freturn*/, 2/*dreturn*/, 1/*areturn*/, 0/*return*/, 0/*getstatic*/,
-        UNPREDICTABLE/*putstatic*/, 1/*getfield*/, UNPREDICTABLE/*putfield*/,
-        UNPREDICTABLE/*invokevirtual*/, UNPREDICTABLE/*invokespecial*/,
-        UNPREDICTABLE/*invokestatic*/,
-        UNPREDICTABLE/*invokeinterface*/, UNPREDICTABLE/*invokedynamic*/, 0/*new*/, 1/*newarray*/, 1/*anewarray*/,
-        1/*arraylength*/, 1/*athrow*/, 1/*checkcast*/, 1/*instanceof*/, 1/*monitorenter*/,
-        1/*monitorexit*/, 0/*wide*/, UNPREDICTABLE/*multianewarray*/, 1/*ifnull*/, 1/*ifnonnull*/,
-        0/*goto_w*/, 0/*jsr_w*/, 0/*breakpoint*/, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNPREDICTABLE/*impdep1*/, UNPREDICTABLE/*impdep2*/};
+  /**
+   * Number of words produced onto operand stack by instructions.
+   * Indexed by opcode.  CONSUME_STACK[DALOAD] = number of words
+   * consumed from the stack by a daload instruction.
+   */
+  private static final int[] PRODUCE_STACK = {
+    0/*nop*/, 1/*aconst_null*/, 1/*iconst_m1*/, 1/*iconst_0*/, 1/*iconst_1*/,
+    1/*iconst_2*/, 1/*iconst_3*/, 1/*iconst_4*/, 1/*iconst_5*/, 2/*lconst_0*/,
+    2/*lconst_1*/, 1/*fconst_0*/, 1/*fconst_1*/, 1/*fconst_2*/, 2/*dconst_0*/,
+    2/*dconst_1*/, 1/*bipush*/, 1/*sipush*/, 1/*ldc*/, 1/*ldc_w*/, 2/*ldc2_w*/, 1/*iload*/,
+    2/*lload*/, 1/*fload*/, 2/*dload*/, 1/*aload*/, 1/*iload_0*/, 1/*iload_1*/, 1/*iload_2*/,
+    1/*iload_3*/, 2/*lload_0*/, 2/*lload_1*/, 2/*lload_2*/, 2/*lload_3*/, 1/*fload_0*/,
+    1/*fload_1*/, 1/*fload_2*/, 1/*fload_3*/, 2/*dload_0*/, 2/*dload_1*/, 2/*dload_2*/,
+    2/*dload_3*/, 1/*aload_0*/, 1/*aload_1*/, 1/*aload_2*/, 1/*aload_3*/, 1/*iaload*/,
+    2/*laload*/, 1/*faload*/, 2/*daload*/, 1/*aaload*/, 1/*baload*/, 1/*caload*/, 1/*saload*/,
+    0/*istore*/, 0/*lstore*/, 0/*fstore*/, 0/*dstore*/, 0/*astore*/, 0/*istore_0*/,
+    0/*istore_1*/, 0/*istore_2*/, 0/*istore_3*/, 0/*lstore_0*/, 0/*lstore_1*/,
+    0/*lstore_2*/, 0/*lstore_3*/, 0/*fstore_0*/, 0/*fstore_1*/, 0/*fstore_2*/,
+    0/*fstore_3*/, 0/*dstore_0*/, 0/*dstore_1*/, 0/*dstore_2*/, 0/*dstore_3*/,
+    0/*astore_0*/, 0/*astore_1*/, 0/*astore_2*/, 0/*astore_3*/, 0/*iastore*/, 0/*lastore*/,
+    0/*fastore*/, 0/*dastore*/, 0/*aastore*/, 0/*bastore*/, 0/*castore*/, 0/*sastore*/,
+    0/*pop*/, 0/*pop2*/, 2/*dup*/, 3/*dup_x1*/, 4/*dup_x2*/, 4/*dup2*/, 5/*dup2_x1*/,
+    6/*dup2_x2*/, 2/*swap*/, 1/*iadd*/, 2/*ladd*/, 1/*fadd*/, 2/*dadd*/, 1/*isub*/, 2/*lsub*/,
+    1/*fsub*/, 2/*dsub*/, 1/*imul*/, 2/*lmul*/, 1/*fmul*/, 2/*dmul*/, 1/*idiv*/, 2/*ldiv*/,
+    1/*fdiv*/, 2/*ddiv*/, 1/*irem*/, 2/*lrem*/, 1/*frem*/, 2/*drem*/, 1/*ineg*/, 2/*lneg*/,
+    1/*fneg*/, 2/*dneg*/, 1/*ishl*/, 2/*lshl*/, 1/*ishr*/, 2/*lshr*/, 1/*iushr*/, 2/*lushr*/,
+    1/*iand*/, 2/*land*/, 1/*ior*/, 2/*lor*/, 1/*ixor*/, 2/*lxor*/,
+    0/*iinc*/, 2/*i2l*/, 1/*i2f*/, 2/*i2d*/, 1/*l2i*/, 1/*l2f*/, 2/*l2d*/, 1/*f2i*/,
+    2/*f2l*/, 2/*f2d*/, 1/*d2i*/, 2/*d2l*/, 1/*d2f*/,
+    1/*i2b*/, 1/*i2c*/, 1/*i2s*/, 1/*lcmp*/, 1/*fcmpl*/, 1/*fcmpg*/,
+    1/*dcmpl*/, 1/*dcmpg*/, 0/*ifeq*/, 0/*ifne*/, 0/*iflt*/, 0/*ifge*/, 0/*ifgt*/, 0/*ifle*/,
+    0/*if_icmpeq*/, 0/*if_icmpne*/, 0/*if_icmplt*/, 0/*if_icmpge*/, 0/*if_icmpgt*/,
+    0/*if_icmple*/, 0/*if_acmpeq*/, 0/*if_acmpne*/, 0/*goto*/, 1/*jsr*/, 0/*ret*/,
+    0/*tableswitch*/, 0/*lookupswitch*/, 0/*ireturn*/, 0/*lreturn*/, 0/*freturn*/,
+    0/*dreturn*/, 0/*areturn*/, 0/*return*/, UNPREDICTABLE/*getstatic*/, 0/*putstatic*/,
+    UNPREDICTABLE/*getfield*/, 0/*putfield*/, UNPREDICTABLE/*invokevirtual*/,
+    UNPREDICTABLE/*invokespecial*/, UNPREDICTABLE/*invokestatic*/,
+    UNPREDICTABLE/*invokeinterface*/, UNPREDICTABLE/*invokedynamic*/, 1/*new*/, 1/*newarray*/, 1/*anewarray*/,
+    1/*arraylength*/, 1/*athrow*/, 1/*checkcast*/, 1/*instanceof*/, 0/*monitorenter*/,
+    0/*monitorexit*/, 0/*wide*/, 1/*multianewarray*/, 0/*ifnull*/, 0/*ifnonnull*/,
+    0/*goto_w*/, 1/*jsr_w*/, 0/*breakpoint*/, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
+    UNDEFINED, UNPREDICTABLE/*impdep1*/, UNPREDICTABLE/*impdep2*/
+  };
 
-    /**
-     *
-     * @param index
-     * @return Number of words consumed on operand stack
-     * @since 6.0
-     */
-    public static int getConsumeStack(final int index) {
-        return CONSUME_STACK[index];
-    }
+  /**
+   *
+   * @param index
+   * @return Number of words produced onto operand stack
+   * @since 6.0
+   */
+  public static int getProduceStack(final int index) {
+      return PRODUCE_STACK[index];
+  }
 
-    /**
-     * Number of words produced onto operand stack by instructions. Indexed by
-     * opcode. CONSUME_STACK[DALOAD] = number of words consumed from the stack
-     * by a daload instruction.
-     */
-    private static final int[] PRODUCE_STACK = {
-        0/*nop*/, 1/*aconst_null*/, 1/*iconst_m1*/, 1/*iconst_0*/, 1/*iconst_1*/,
-        1/*iconst_2*/, 1/*iconst_3*/, 1/*iconst_4*/, 1/*iconst_5*/, 2/*lconst_0*/,
-        2/*lconst_1*/, 1/*fconst_0*/, 1/*fconst_1*/, 1/*fconst_2*/, 2/*dconst_0*/,
-        2/*dconst_1*/, 1/*bipush*/, 1/*sipush*/, 1/*ldc*/, 1/*ldc_w*/, 2/*ldc2_w*/, 1/*iload*/,
-        2/*lload*/, 1/*fload*/, 2/*dload*/, 1/*aload*/, 1/*iload_0*/, 1/*iload_1*/, 1/*iload_2*/,
-        1/*iload_3*/, 2/*lload_0*/, 2/*lload_1*/, 2/*lload_2*/, 2/*lload_3*/, 1/*fload_0*/,
-        1/*fload_1*/, 1/*fload_2*/, 1/*fload_3*/, 2/*dload_0*/, 2/*dload_1*/, 2/*dload_2*/,
-        2/*dload_3*/, 1/*aload_0*/, 1/*aload_1*/, 1/*aload_2*/, 1/*aload_3*/, 1/*iaload*/,
-        2/*laload*/, 1/*faload*/, 2/*daload*/, 1/*aaload*/, 1/*baload*/, 1/*caload*/, 1/*saload*/,
-        0/*istore*/, 0/*lstore*/, 0/*fstore*/, 0/*dstore*/, 0/*astore*/, 0/*istore_0*/,
-        0/*istore_1*/, 0/*istore_2*/, 0/*istore_3*/, 0/*lstore_0*/, 0/*lstore_1*/,
-        0/*lstore_2*/, 0/*lstore_3*/, 0/*fstore_0*/, 0/*fstore_1*/, 0/*fstore_2*/,
-        0/*fstore_3*/, 0/*dstore_0*/, 0/*dstore_1*/, 0/*dstore_2*/, 0/*dstore_3*/,
-        0/*astore_0*/, 0/*astore_1*/, 0/*astore_2*/, 0/*astore_3*/, 0/*iastore*/, 0/*lastore*/,
-        0/*fastore*/, 0/*dastore*/, 0/*aastore*/, 0/*bastore*/, 0/*castore*/, 0/*sastore*/,
-        0/*pop*/, 0/*pop2*/, 2/*dup*/, 3/*dup_x1*/, 4/*dup_x2*/, 4/*dup2*/, 5/*dup2_x1*/,
-        6/*dup2_x2*/, 2/*swap*/, 1/*iadd*/, 2/*ladd*/, 1/*fadd*/, 2/*dadd*/, 1/*isub*/, 2/*lsub*/,
-        1/*fsub*/, 2/*dsub*/, 1/*imul*/, 2/*lmul*/, 1/*fmul*/, 2/*dmul*/, 1/*idiv*/, 2/*ldiv*/,
-        1/*fdiv*/, 2/*ddiv*/, 1/*irem*/, 2/*lrem*/, 1/*frem*/, 2/*drem*/, 1/*ineg*/, 2/*lneg*/,
-        1/*fneg*/, 2/*dneg*/, 1/*ishl*/, 2/*lshl*/, 1/*ishr*/, 2/*lshr*/, 1/*iushr*/, 2/*lushr*/,
-        1/*iand*/, 2/*land*/, 1/*ior*/, 2/*lor*/, 1/*ixor*/, 2/*lxor*/,
-        0/*iinc*/, 2/*i2l*/, 1/*i2f*/, 2/*i2d*/, 1/*l2i*/, 1/*l2f*/, 2/*l2d*/, 1/*f2i*/,
-        2/*f2l*/, 2/*f2d*/, 1/*d2i*/, 2/*d2l*/, 1/*d2f*/,
-        1/*i2b*/, 1/*i2c*/, 1/*i2s*/, 1/*lcmp*/, 1/*fcmpl*/, 1/*fcmpg*/,
-        1/*dcmpl*/, 1/*dcmpg*/, 0/*ifeq*/, 0/*ifne*/, 0/*iflt*/, 0/*ifge*/, 0/*ifgt*/, 0/*ifle*/,
-        0/*if_icmpeq*/, 0/*if_icmpne*/, 0/*if_icmplt*/, 0/*if_icmpge*/, 0/*if_icmpgt*/,
-        0/*if_icmple*/, 0/*if_acmpeq*/, 0/*if_acmpne*/, 0/*goto*/, 1/*jsr*/, 0/*ret*/,
-        0/*tableswitch*/, 0/*lookupswitch*/, 0/*ireturn*/, 0/*lreturn*/, 0/*freturn*/,
-        0/*dreturn*/, 0/*areturn*/, 0/*return*/, UNPREDICTABLE/*getstatic*/, 0/*putstatic*/,
-        UNPREDICTABLE/*getfield*/, 0/*putfield*/, UNPREDICTABLE/*invokevirtual*/,
-        UNPREDICTABLE/*invokespecial*/, UNPREDICTABLE/*invokestatic*/,
-        UNPREDICTABLE/*invokeinterface*/, UNPREDICTABLE/*invokedynamic*/, 1/*new*/, 1/*newarray*/, 1/*anewarray*/,
-        1/*arraylength*/, 1/*athrow*/, 1/*checkcast*/, 1/*instanceof*/, 0/*monitorenter*/,
-        0/*monitorexit*/, 0/*wide*/, 1/*multianewarray*/, 0/*ifnull*/, 0/*ifnonnull*/,
-        0/*goto_w*/, 1/*jsr_w*/, 0/*breakpoint*/, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
-        UNDEFINED, UNPREDICTABLE/*impdep1*/, UNPREDICTABLE/*impdep2*/};
+  /** Attributes and their corresponding names.
+   */
+  public static final byte ATTR_UNKNOWN                                 = -1;
+  public static final byte ATTR_SOURCE_FILE                             = 0;
+  public static final byte ATTR_CONSTANT_VALUE                          = 1;
+  public static final byte ATTR_CODE                                    = 2;
+  public static final byte ATTR_EXCEPTIONS                              = 3;
+  public static final byte ATTR_LINE_NUMBER_TABLE                       = 4;
+  public static final byte ATTR_LOCAL_VARIABLE_TABLE                    = 5;
+  public static final byte ATTR_INNER_CLASSES                           = 6;
+  public static final byte ATTR_SYNTHETIC                               = 7;
+  public static final byte ATTR_DEPRECATED                              = 8;
+  public static final byte ATTR_PMG                                     = 9;
+  public static final byte ATTR_SIGNATURE                               = 10;
+  public static final byte ATTR_STACK_MAP                               = 11;
+  public static final byte ATTR_RUNTIME_VISIBLE_ANNOTATIONS             = 12;
+  public static final byte ATTR_RUNTIME_INVISIBLE_ANNOTATIONS           = 13;
+  public static final byte ATTR_RUNTIME_VISIBLE_PARAMETER_ANNOTATIONS   = 14;
+  public static final byte ATTR_RUNTIME_INVISIBLE_PARAMETER_ANNOTATIONS = 15;
+  public static final byte ATTR_ANNOTATION_DEFAULT                      = 16;
+  public static final byte ATTR_LOCAL_VARIABLE_TYPE_TABLE               = 17;
+  public static final byte ATTR_ENCLOSING_METHOD                        = 18;
+  public static final byte ATTR_STACK_MAP_TABLE                         = 19;
+  public static final byte ATTR_BOOTSTRAP_METHODS                       = 20;
+  public static final byte ATTR_METHOD_PARAMETERS                       = 21;
 
-    /**
-     *
-     * @param index
-     * @return Number of words produced onto operand stack
-     * @since 6.0
-     */
-    public static int getProduceStack(final int index) {
-        return PRODUCE_STACK[index];
-    }
+  public static final short KNOWN_ATTRIBUTES = 22; // count of attributes
+
+  private static final String[] ATTRIBUTE_NAMES = {
+    "SourceFile", "ConstantValue", "Code", "Exceptions",
+    "LineNumberTable", "LocalVariableTable",
+    "InnerClasses", "Synthetic", "Deprecated",
+    "PMGClass", "Signature", "StackMap",
+    "RuntimeVisibleAnnotations", "RuntimeInvisibleAnnotations",
+    "RuntimeVisibleParameterAnnotations", "RuntimeInvisibleParameterAnnotations",
+    "AnnotationDefault", "LocalVariableTypeTable", "EnclosingMethod", "StackMapTable",
+    "BootstrapMethods", "MethodParameters"
+  };
+
+  /**
+   *
+   * @param index
+   * @return the attribute name
+   * @since 6.0
+   */
+  public static String getAttributeName(final int index) {
+      return ATTRIBUTE_NAMES[index];
+  }
 
-    /**
-     * Attributes and their corresponding names.
-     */
-    public static final byte ATTR_UNKNOWN = -1;
-    public static final byte ATTR_SOURCE_FILE = 0;
-    public static final byte ATTR_CONSTANT_VALUE = 1;
-    public static final byte ATTR_CODE = 2;
-    public static final byte ATTR_EXCEPTIONS = 3;
-    public static final byte ATTR_LINE_NUMBER_TABLE = 4;
-    public static final byte ATTR_LOCAL_VARIABLE_TABLE = 5;
-    public static final byte ATTR_INNER_CLASSES = 6;
-    public static final byte ATTR_SYNTHETIC = 7;
-    public static final byte ATTR_DEPRECATED = 8;
-    public static final byte ATTR_PMG = 9;
-    public static final byte ATTR_SIGNATURE = 10;
-    public static final byte ATTR_STACK_MAP = 11;
-    public static final byte ATTR_RUNTIME_VISIBLE_ANNOTATIONS = 12;
-    public static final byte ATTR_RUNTIME_INVISIBLE_ANNOTATIONS = 13;
-    public static final byte ATTR_RUNTIME_VISIBLE_PARAMETER_ANNOTATIONS = 14;
-    public static final byte ATTR_RUNTIME_INVISIBLE_PARAMETER_ANNOTATIONS = 15;
-    public static final byte ATTR_ANNOTATION_DEFAULT = 16;
-    public static final byte ATTR_LOCAL_VARIABLE_TYPE_TABLE = 17;
-    public static final byte ATTR_ENCLOSING_METHOD = 18;
-    public static final byte ATTR_STACK_MAP_TABLE = 19;
-    public static final byte ATTR_BOOTSTRAP_METHODS = 20;
-    public static final byte ATTR_METHOD_PARAMETERS = 21;
+  /** Constants used in the StackMap attribute.
+   */
+  public static final byte ITEM_Bogus      = 0;
+  public static final byte ITEM_Integer    = 1;
+  public static final byte ITEM_Float      = 2;
+  public static final byte ITEM_Double     = 3;
+  public static final byte ITEM_Long       = 4;
+  public static final byte ITEM_Null       = 5;
+  public static final byte ITEM_InitObject = 6;
+  public static final byte ITEM_Object     = 7;
+  public static final byte ITEM_NewObject  = 8;
 
-    public static final short KNOWN_ATTRIBUTES = 22; // count of attributes
-
-    private static final String[] ATTRIBUTE_NAMES = {
-        "SourceFile", "ConstantValue", "Code", "Exceptions",
-        "LineNumberTable", "LocalVariableTable",
-        "InnerClasses", "Synthetic", "Deprecated",
-        "PMGClass", "Signature", "StackMap",
-        "RuntimeVisibleAnnotations", "RuntimeInvisibleAnnotations",
-        "RuntimeVisibleParameterAnnotations", "RuntimeInvisibleParameterAnnotations",
-        "AnnotationDefault", "LocalVariableTypeTable", "EnclosingMethod", "StackMapTable",
-        "BootstrapMethods", "MethodParameters"
-    };
-
-    /**
-     *
-     * @param index
-     * @return the attribute name
-     * @since 6.0
-     */
-    public static String getAttributeName(final int index) {
-        return ATTRIBUTE_NAMES[index];
-    }
+  private static final String[] ITEM_NAMES = {
+    "Bogus", "Integer", "Float", "Double", "Long",
+    "Null", "InitObject", "Object", "NewObject"
+  };
 
-    /**
-     * Constants used in the StackMap attribute.
-     */
-    public static final byte ITEM_Bogus = 0;
-    public static final byte ITEM_Integer = 1;
-    public static final byte ITEM_Float = 2;
-    public static final byte ITEM_Double = 3;
-    public static final byte ITEM_Long = 4;
-    public static final byte ITEM_Null = 5;
-    public static final byte ITEM_InitObject = 6;
-    public static final byte ITEM_Object = 7;
-    public static final byte ITEM_NewObject = 8;
-
-    private static final String[] ITEM_NAMES = {
-        "Bogus", "Integer", "Float", "Double", "Long",
-        "Null", "InitObject", "Object", "NewObject"
-    };
+  /**
+   *
+   * @param index
+   * @return the item name
+   * @since 6.0
+   */
+  public static String getItemName(final int index) {
+      return ITEM_NAMES[index];
+  }
 
-    /**
-     *
-     * @param index
-     * @return the item name
-     * @since 6.0
-     */
-    public static String getItemName(final int index) {
-        return ITEM_NAMES[index];
-    }
+  /** Constants used to identify StackMapEntry types.
+   *
+   * For those types which can specify a range, the
+   * constant names the lowest value.
+   */
+  public static final int SAME_FRAME = 0;
+  public static final int SAME_LOCALS_1_STACK_ITEM_FRAME = 64;
+  public static final int SAME_LOCALS_1_STACK_ITEM_FRAME_EXTENDED = 247;
+  public static final int CHOP_FRAME = 248;
+  public static final int SAME_FRAME_EXTENDED = 251;
+  public static final int APPEND_FRAME = 252;
+  public static final int FULL_FRAME = 255;
 
-    /**
-     * Constants used to identify StackMapEntry types.
-     *
-     * For those types which can specify a range, the constant names the lowest
-     * value.
-     */
-    public static final int SAME_FRAME = 0;
-    public static final int SAME_LOCALS_1_STACK_ITEM_FRAME = 64;
-    public static final int SAME_LOCALS_1_STACK_ITEM_FRAME_EXTENDED = 247;
-    public static final int CHOP_FRAME = 248;
-    public static final int SAME_FRAME_EXTENDED = 251;
-    public static final int APPEND_FRAME = 252;
-    public static final int FULL_FRAME = 255;
+  /** Constants that define the maximum value of
+   * those constants which store ranges. */
 
-    /**
-     * Constants that define the maximum value of those constants which store
-     * ranges.
-     */
-    public static final int SAME_FRAME_MAX = 63;
-    public static final int SAME_LOCALS_1_STACK_ITEM_FRAME_MAX = 127;
-    public static final int CHOP_FRAME_MAX = 250;
-    public static final int APPEND_FRAME_MAX = 254;
+  public static final int SAME_FRAME_MAX = 63;
+  public static final int SAME_LOCALS_1_STACK_ITEM_FRAME_MAX = 127;
+  public static final int CHOP_FRAME_MAX = 250;
+  public static final int APPEND_FRAME_MAX = 254;
+
 
   // Constants defining the behavior of the Method Handles (JVMS 5.4.3.5)
-    public static final byte REF_getField = 1;
-    public static final byte REF_getStatic = 2;
-    public static final byte REF_putField = 3;
-    public static final byte REF_putStatic = 4;
-    public static final byte REF_invokeVirtual = 5;
-    public static final byte REF_invokeStatic = 6;
-    public static final byte REF_invokeSpecial = 7;
-    public static final byte REF_newInvokeSpecial = 8;
-    public static final byte REF_invokeInterface = 9;
+
+  public static final byte REF_getField         = 1;
+  public static final byte REF_getStatic        = 2;
+  public static final byte REF_putField         = 3;
+  public static final byte REF_putStatic        = 4;
+  public static final byte REF_invokeVirtual    = 5;
+  public static final byte REF_invokeStatic     = 6;
+  public static final byte REF_invokeSpecial    = 7;
+  public static final byte REF_newInvokeSpecial = 8;
+  public static final byte REF_invokeInterface  = 9;
 
-    /**
-     * The names of the reference_kinds of a CONSTANT_MethodHandle_info.
-     */
-    private static final String[] METHODHANDLE_NAMES = {
-        "", "getField", "getStatic", "putField", "putStatic", "invokeVirtual",
-        "invokeStatic", "invokeSpecial", "newInvokeSpecial", "invokeInterface"};
+  /**
+   * The names of the reference_kinds of a CONSTANT_MethodHandle_info.
+   */
+  private static final String[] METHODHANDLE_NAMES = {
+      "", "getField", "getStatic", "putField", "putStatic", "invokeVirtual",
+      "invokeStatic", "invokeSpecial", "newInvokeSpecial", "invokeInterface" };
 
-    /**
-     *
-     * @param index
-     * @return the method handle name
-     * @since 6.0
-     */
-    public static String getMethodHandleName(final int index) {
-        return METHODHANDLE_NAMES[index];
-    }
+  /**
+   *
+   * @param index
+   * @return the method handle name
+   * @since 6.0
+   */
+  public static String getMethodHandleName(final int index) {
+      return METHODHANDLE_NAMES[index];
+  }
 
-    private Const() {
-    } // not instantiable
+  private Const() { } // not instantiable
 
 }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/Repository.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/Repository.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -25,59 +25,59 @@
 
 /**
  * The repository maintains informations about class interdependencies, e.g.,
- * whether a class is a sub-class of another. Delegates actual class loading to
- * SyntheticRepository with current class path by default.
+ * whether a class is a sub-class of another. Delegates actual class loading
+ * to SyntheticRepository with current class path by default.
  *
  * @see com.sun.org.apache.bcel.internal.util.Repository
  * @see SyntheticRepository
  *
- * @version $Id: Repository.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public abstract class Repository {
 
     private static com.sun.org.apache.bcel.internal.util.Repository repository
             = SyntheticRepository.getInstance();
 
-    /**
-     * @return currently used repository instance
+
+    /** @return currently used repository instance
      */
     public static com.sun.org.apache.bcel.internal.util.Repository getRepository() {
         return repository;
     }
 
-    /**
-     * Set repository instance to be used for class loading
+
+    /** Set repository instance to be used for class loading
      */
-    public static void setRepository(final com.sun.org.apache.bcel.internal.util.Repository rep) {
+    public static void setRepository( final com.sun.org.apache.bcel.internal.util.Repository rep ) {
         repository = rep;
     }
 
-    /**
-     * Lookup class somewhere found on your CLASSPATH, or whereever the
+
+    /** Lookup class somewhere found on your CLASSPATH, or whereever the
      * repository instance looks for it.
      *
      * @return class object for given fully qualified class name
-     * @throws ClassNotFoundException if the class could not be found or parsed
-     * correctly
+     * @throws ClassNotFoundException if the class could not be found or
+     * parsed correctly
      */
-    public static JavaClass lookupClass(final String class_name)
-            throws ClassNotFoundException {
+    public static JavaClass lookupClass( final String class_name ) throws ClassNotFoundException {
         return repository.loadClass(class_name);
     }
 
+
     /**
      * Try to find class source using the internal repository instance.
-     *
      * @see Class
      * @return JavaClass object for given runtime class
-     * @throws ClassNotFoundException if the class could not be found or parsed
-     * correctly
+     * @throws ClassNotFoundException if the class could not be found or
+     * parsed correctly
      */
-    public static JavaClass lookupClass(final Class<?> clazz)
-            throws ClassNotFoundException {
+    public static JavaClass lookupClass( final Class<?> clazz ) throws ClassNotFoundException {
         return repository.loadClass(clazz);
     }
 
+
     /**
      * Clear the repository.
      */
@@ -85,149 +85,162 @@
         repository.clear();
     }
 
+
     /**
-     * Add clazz to repository if there isn't an equally named class already in
-     * there.
+     * Add clazz to repository if there isn't an equally named class already in there.
      *
      * @return old entry in repository
      */
-    public static JavaClass addClass(final JavaClass clazz) {
+    public static JavaClass addClass( final JavaClass clazz ) {
         final JavaClass old = repository.findClass(clazz.getClassName());
         repository.storeClass(clazz);
         return old;
     }
 
+
     /**
      * Remove class with given (fully qualified) name from repository.
      */
-    public static void removeClass(final String clazz) {
+    public static void removeClass( final String clazz ) {
         repository.removeClass(repository.findClass(clazz));
     }
 
+
     /**
      * Remove given class from repository.
      */
-    public static void removeClass(final JavaClass clazz) {
+    public static void removeClass( final JavaClass clazz ) {
         repository.removeClass(clazz);
     }
 
+
     /**
-     * @return list of super classes of clazz in ascending order, i.e., Object
-     * is always the last element
+     * @return list of super classes of clazz in ascending order, i.e.,
+     * Object is always the last element
      * @throws ClassNotFoundException if any of the superclasses can't be found
      */
-    public static JavaClass[] getSuperClasses(final JavaClass clazz) throws ClassNotFoundException {
+    public static JavaClass[] getSuperClasses( final JavaClass clazz ) throws ClassNotFoundException {
         return clazz.getSuperClasses();
     }
 
+
     /**
-     * @return list of super classes of clazz in ascending order, i.e., Object
-     * is always the last element.
+     * @return list of super classes of clazz in ascending order, i.e.,
+     * Object is always the last element.
      * @throws ClassNotFoundException if the named class or any of its
-     * superclasses can't be found
+     *  superclasses can't be found
      */
-    public static JavaClass[] getSuperClasses(final String class_name) throws ClassNotFoundException {
+    public static JavaClass[] getSuperClasses( final String class_name ) throws ClassNotFoundException {
         final JavaClass jc = lookupClass(class_name);
         return getSuperClasses(jc);
     }
 
+
     /**
-     * @return all interfaces implemented by class and its super classes and the
-     * interfaces that those interfaces extend, and so on. (Some people call
-     * this a transitive hull).
-     * @throws ClassNotFoundException if any of the class's superclasses or
-     * superinterfaces can't be found
+     * @return all interfaces implemented by class and its super
+     * classes and the interfaces that those interfaces extend, and so on.
+     * (Some people call this a transitive hull).
+     * @throws ClassNotFoundException if any of the class's
+     *  superclasses or superinterfaces can't be found
      */
-    public static JavaClass[] getInterfaces(final JavaClass clazz) throws ClassNotFoundException {
+    public static JavaClass[] getInterfaces( final JavaClass clazz ) throws ClassNotFoundException {
         return clazz.getAllInterfaces();
     }
 
+
     /**
-     * @return all interfaces implemented by class and its super classes and the
-     * interfaces that extend those interfaces, and so on
-     * @throws ClassNotFoundException if the named class can't be found, or if
-     * any of its superclasses or superinterfaces can't be found
+     * @return all interfaces implemented by class and its super
+     * classes and the interfaces that extend those interfaces, and so on
+     * @throws ClassNotFoundException if the named class can't be found,
+     *   or if any of its superclasses or superinterfaces can't be found
      */
-    public static JavaClass[] getInterfaces(final String class_name) throws ClassNotFoundException {
+    public static JavaClass[] getInterfaces( final String class_name ) throws ClassNotFoundException {
         return getInterfaces(lookupClass(class_name));
     }
 
+
     /**
      * Equivalent to runtime "instanceof" operator.
-     *
      * @return true, if clazz is an instance of super_class
-     * @throws ClassNotFoundException if any superclasses or superinterfaces of
-     * clazz can't be found
+     * @throws ClassNotFoundException if any superclasses or superinterfaces
+     *   of clazz can't be found
      */
-    public static boolean instanceOf(final JavaClass clazz, final JavaClass super_class)
+    public static boolean instanceOf( final JavaClass clazz, final JavaClass super_class )
             throws ClassNotFoundException {
         return clazz.instanceOf(super_class);
     }
 
+
     /**
      * @return true, if clazz is an instance of super_class
-     * @throws ClassNotFoundException if either clazz or super_class can't be
-     * found
+     * @throws ClassNotFoundException if either clazz or super_class
+     *   can't be found
      */
-    public static boolean instanceOf(final String clazz, final String super_class)
+    public static boolean instanceOf( final String clazz, final String super_class )
             throws ClassNotFoundException {
         return instanceOf(lookupClass(clazz), lookupClass(super_class));
     }
 
+
     /**
      * @return true, if clazz is an instance of super_class
      * @throws ClassNotFoundException if super_class can't be found
      */
-    public static boolean instanceOf(final JavaClass clazz, final String super_class)
+    public static boolean instanceOf( final JavaClass clazz, final String super_class )
             throws ClassNotFoundException {
         return instanceOf(clazz, lookupClass(super_class));
     }
 
+
     /**
      * @return true, if clazz is an instance of super_class
      * @throws ClassNotFoundException if clazz can't be found
      */
-    public static boolean instanceOf(final String clazz, final JavaClass super_class)
+    public static boolean instanceOf( final String clazz, final JavaClass super_class )
             throws ClassNotFoundException {
         return instanceOf(lookupClass(clazz), super_class);
     }
 
+
     /**
      * @return true, if clazz is an implementation of interface inter
-     * @throws ClassNotFoundException if any superclasses or superinterfaces of
-     * clazz can't be found
+     * @throws ClassNotFoundException if any superclasses or superinterfaces
+     *   of clazz can't be found
      */
-    public static boolean implementationOf(final JavaClass clazz, final JavaClass inter)
+    public static boolean implementationOf( final JavaClass clazz, final JavaClass inter )
             throws ClassNotFoundException {
         return clazz.implementationOf(inter);
     }
 
+
     /**
      * @return true, if clazz is an implementation of interface inter
-     * @throws ClassNotFoundException if clazz, inter, or any superclasses or
-     * superinterfaces of clazz can't be found
+     * @throws ClassNotFoundException if clazz, inter, or any superclasses
+     *   or superinterfaces of clazz can't be found
      */
-    public static boolean implementationOf(final String clazz, final String inter)
+    public static boolean implementationOf( final String clazz, final String inter )
             throws ClassNotFoundException {
         return implementationOf(lookupClass(clazz), lookupClass(inter));
     }
 
+
     /**
      * @return true, if clazz is an implementation of interface inter
-     * @throws ClassNotFoundException if inter or any superclasses or
-     * superinterfaces of clazz can't be found
+     * @throws ClassNotFoundException if inter or any superclasses
+     *   or superinterfaces of clazz can't be found
      */
-    public static boolean implementationOf(final JavaClass clazz, final String inter)
+    public static boolean implementationOf( final JavaClass clazz, final String inter )
             throws ClassNotFoundException {
         return implementationOf(clazz, lookupClass(inter));
     }
 
+
     /**
      * @return true, if clazz is an implementation of interface inter
      * @throws ClassNotFoundException if clazz or any superclasses or
-     * superinterfaces of clazz can't be found
+     *   superinterfaces of clazz can't be found
      */
-    public static boolean implementationOf(final String clazz, final JavaClass inter)
+    public static boolean implementationOf( final String clazz, final JavaClass inter )
             throws ClassNotFoundException {
         return implementationOf(lookupClass(clazz), inter);
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/AccessFlags.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/AccessFlags.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -25,7 +25,8 @@
  * Super class for all objects that have modifiers like private, final, ... I.e.
  * classes, fields, and methods.
  *
- * @version $Id: AccessFlags.java 1748636 2016-06-15 20:45:17Z dbrosius $
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public abstract class AccessFlags {
 
@@ -35,7 +36,8 @@
     }
 
     /**
-     * @param a inital access flags
+     * @param a
+     *            inital access flags
      */
     public AccessFlags(final int a) {
         access_flags = a;
@@ -58,7 +60,8 @@
     /**
      * Set access flags aka "modifiers".
      *
-     * @param access_flags Access flags of the object.
+     * @param access_flags
+     *            Access flags of the object.
      */
     public final void setAccessFlags(final int access_flags) {
         this.access_flags = access_flags;
@@ -67,7 +70,8 @@
     /**
      * Set access flags aka "modifiers".
      *
-     * @param access_flags Access flags of the object.
+     * @param access_flags
+     *            Access flags of the object.
      */
     public final void setModifiers(final int access_flags) {
         setAccessFlags(access_flags);
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Attribute.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Attribute.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -36,7 +36,7 @@
  * <em>Synthetic</em> attributes are supported. The <em>Unknown</em>
  * attribute stands for non-standard-attributes.
  *
- * @version $Id: Attribute.java 1750029 2016-06-23 22:14:38Z sebb $
+ * @version $Id$
  * @see ConstantValue
  * @see SourceFile
  * @see Code
@@ -48,6 +48,7 @@
  * @see Synthetic
  * @see Deprecated
  * @see Signature
+ * @LastModified: Jun 2019
  */
 public abstract class Attribute implements Cloneable, Node {
 
@@ -79,7 +80,8 @@
      * @param file Output file stream
      * @throws IOException
      */
-    public void dump(final DataOutputStream file) throws IOException {
+    public void dump(final DataOutputStream file) throws IOException
+    {
         file.writeShort(name_index);
         file.writeInt(length);
     }
@@ -92,9 +94,10 @@
      * as "LineNumberTable", because those are handled internally.
      *
      * @param name the name of the attribute as stored in the class file
-     * @param r the reader object
+     * @param r    the reader object
      */
-    public static void addAttributeReader(final String name, final UnknownAttributeReader r) {
+    public static void addAttributeReader(final String name, final UnknownAttributeReader r)
+    {
         readers.put(name, r);
     }
 
@@ -103,7 +106,8 @@
      *
      * @param name the name of the attribute as stored in the class file
      */
-    public static void removeAttributeReader(final String name) {
+    public static void removeAttributeReader(final String name)
+    {
         readers.remove(name);
     }
 
@@ -122,7 +126,8 @@
      * @throws ClassFormatException
      */
     public static Attribute readAttribute(final DataInputStream file, final ConstantPool constant_pool)
-            throws IOException, ClassFormatException {
+            throws IOException, ClassFormatException
+    {
         return readAttribute((DataInput) file, constant_pool);
     }
 
@@ -142,7 +147,8 @@
      * @since 6.0
      */
     public static Attribute readAttribute(final DataInput file, final ConstantPool constant_pool)
-            throws IOException, ClassFormatException {
+            throws IOException, ClassFormatException
+    {
         byte tag = Const.ATTR_UNKNOWN; // Unknown attribute
         // Get class name from constant pool via `name_index' indirection
         final int name_index = file.readUnsignedShort();
@@ -153,18 +159,22 @@
         final int length = file.readInt();
 
         // Compare strings to find known attribute
-        for (byte i = 0; i < Const.KNOWN_ATTRIBUTES; i++) {
-            if (name.equals(Const.getAttributeName(i))) {
+        for (byte i = 0; i < Const.KNOWN_ATTRIBUTES; i++)
+        {
+            if (name.equals(Const.getAttributeName(i)))
+            {
                 tag = i; // found!
                 break;
             }
         }
 
         // Call proper constructor, depending on `tag'
-        switch (tag) {
+        switch (tag)
+        {
             case Const.ATTR_UNKNOWN:
                 final Object r = readers.get(name);
-                if (r instanceof UnknownAttributeReader) {
+                if (r instanceof UnknownAttributeReader)
+                {
                     return ((UnknownAttributeReader) r).createAttribute(name_index, length, file, constant_pool);
                 }
                 return new Unknown(name_index, length, file, constant_pool);
@@ -191,7 +201,10 @@
             case Const.ATTR_SIGNATURE:
                 return new Signature(name_index, length, file, constant_pool);
             case Const.ATTR_STACK_MAP:
-                return new StackMap(name_index, length, file, constant_pool);
+                // old style stack map: unneeded for JDK5 and below;
+                // illegal(?) for JDK6 and above.  So just delete with a warning.
+                System.err.println("Warning: Obsolete StackMap attribute ignored.");
+                return new Unknown(name_index, length, file, constant_pool);
             case Const.ATTR_RUNTIME_VISIBLE_ANNOTATIONS:
                 return new RuntimeVisibleAnnotations(name_index, length, file, constant_pool);
             case Const.ATTR_RUNTIME_INVISIBLE_ANNOTATIONS:
@@ -207,6 +220,8 @@
             case Const.ATTR_ENCLOSING_METHOD:
                 return new EnclosingMethod(name_index, length, file, constant_pool);
             case Const.ATTR_STACK_MAP_TABLE:
+                // read new style stack map: StackMapTable.  The rest of the code
+                // calls this a StackMap for historical reasons.
                 return new StackMap(name_index, length, file, constant_pool);
             case Const.ATTR_BOOTSTRAP_METHODS:
                 return new BootstrapMethods(name_index, length, file, constant_pool);
@@ -222,7 +237,8 @@
      * @return Name of attribute
      * @since 6.0
      */
-    public String getName() {
+    public String getName()
+    {
         final ConstantUtf8 c = (ConstantUtf8) constant_pool.getConstant(name_index, Const.CONSTANT_Utf8);
         return c.getBytes();
     }
@@ -230,36 +246,40 @@
     /**
      * @return Length of attribute field in bytes.
      */
-    public final int getLength() {
+    public final int getLength()
+    {
         return length;
     }
 
     /**
      * @param length length in bytes.
      */
-    public final void setLength(final int length) {
+    public final void setLength(final int length)
+    {
         this.length = length;
     }
 
     /**
      * @param name_index of attribute.
      */
-    public final void setNameIndex(final int name_index) {
+    public final void setNameIndex(final int name_index)
+    {
         this.name_index = name_index;
     }
 
     /**
      * @return Name index in constant pool of attribute name.
      */
-    public final int getNameIndex() {
+    public final int getNameIndex()
+    {
         return name_index;
     }
 
     /**
-     * @return Tag of attribute, i.e., its type. Value may not be altered, thus
-     * there is no setTag() method.
+     * @return Tag of attribute, i.e., its type. Value may not be altered, thus there is no setTag() method.
      */
-    public final byte getTag() {
+    public final byte getTag()
+    {
         return tag;
     }
 
@@ -267,7 +287,8 @@
      * @return Constant pool used by this object.
      * @see ConstantPool
      */
-    public final ConstantPool getConstantPool() {
+    public final ConstantPool getConstantPool()
+    {
         return constant_pool;
     }
 
@@ -275,7 +296,8 @@
      * @param constant_pool Constant pool to be used for this object.
      * @see ConstantPool
      */
-    public final void setConstantPool(final ConstantPool constant_pool) {
+    public final void setConstantPool(final ConstantPool constant_pool)
+    {
         this.constant_pool = constant_pool;
     }
 
@@ -286,11 +308,15 @@
      * @return shallow copy of this attribute
      */
     @Override
-    public Object clone() {
+    public Object clone()
+    {
         Attribute attr = null;
-        try {
+        try
+        {
             attr = (Attribute) super.clone();
-        } catch (final CloneNotSupportedException e) {
+        }
+        catch (final CloneNotSupportedException e)
+        {
             throw new Error("Clone Not Supported"); // never happens
         }
         return attr;
@@ -305,7 +331,8 @@
      * @return attribute name.
      */
     @Override
-    public String toString() {
+    public String toString()
+    {
         return Const.getAttributeName(tag);
     }
 }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/AttributeReader.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/AttributeReader.java	Wed Jun 26 05:49:59 2019 +0000
@@ -27,7 +27,7 @@
  * method. These factory objects should implement this interface.
 
  * @see Attribute
- * @version $Id: AttributeReader.java 1748467 2016-06-14 21:05:14Z ggregory $
+ * @version $Id$
  *
  * @deprecated Use UnknownAttributeReader instead
  */
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ClassFormatException.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ClassFormatException.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,7 +26,7 @@
  * that the file is malformed or otherwise cannot be interpreted as a
  * class file.
  *
- * @version $Id: ClassFormatException.java 1748973 2016-06-18 12:14:42Z sebb $
+ * @version $Id$
  */
 public class ClassFormatException extends RuntimeException {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ClassParser.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ClassParser.java	Wed Jun 26 05:49:59 2019 +0000
@@ -43,7 +43,7 @@
  * JVM specification 1.0</a>. See this paper for
  * further details about the structure of a bytecode file.
  *
- * @version $Id: ClassParser.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  */
 public final class ClassParser {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Code.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Code.java	Wed Jun 26 05:49:59 2019 +0000
@@ -39,7 +39,7 @@
  * is used for debugging purposes and <em>LocalVariableTable</em> which
  * contains information about the local variables.
  *
- * @version $Id: Code.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  * @see     Attribute
  * @see     CodeException
  * @see     LineNumberTable
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/CodeException.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/CodeException.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -31,8 +31,9 @@
  * attribute and is used only there. It contains a range in which a
  * particular exception handler is active.
  *
- * @version $Id: CodeException.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  * @see     Code
+ * @LastModified: Jun 2019
  */
 public final class CodeException implements Cloneable, Node {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Constant.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Constant.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -22,30 +22,33 @@
 import java.io.DataInput;
 import java.io.DataOutputStream;
 import java.io.IOException;
+import java.util.Objects;
 
 import com.sun.org.apache.bcel.internal.Const;
 import com.sun.org.apache.bcel.internal.util.BCELComparator;
 
 /**
- * Abstract superclass for classes to represent the different constant types in
- * the constant pool of a class file. The classes keep closely to the JVM
- * specification.
+ * Abstract superclass for classes to represent the different constant types
+ * in the constant pool of a class file. The classes keep closely to
+ * the JVM specification.
  *
- * @version $Id: Constant.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public abstract class Constant implements Cloneable, Node {
 
     private static BCELComparator bcelComparator = new BCELComparator() {
 
         @Override
-        public boolean equals(final Object o1, final Object o2) {
+        public boolean equals( final Object o1, final Object o2 ) {
             final Constant THIS = (Constant) o1;
             final Constant THAT = (Constant) o2;
-            return THIS.toString().equals(THAT.toString());
+            return Objects.equals(THIS.toString(), THAT.toString());
         }
 
+
         @Override
-        public int hashCode(final Object o) {
+        public int hashCode( final Object o ) {
             final Constant THIS = (Constant) o;
             return THIS.toString().hashCode();
         }
@@ -61,10 +64,12 @@
      */
     private byte tag;
 
+
     Constant(final byte tag) {
         this.tag = tag;
     }
 
+
     /**
      * Called by objects that are traversing the nodes of the tree implicitely
      * defined by the contents of a Java class. I.e., the hierarchy of methods,
@@ -73,9 +78,11 @@
      * @param v Visitor object
      */
     @Override
-    public abstract void accept(Visitor v);
+    public abstract void accept( Visitor v );
+
 
-    public abstract void dump(DataOutputStream file) throws IOException;
+    public abstract void dump( DataOutputStream file ) throws IOException;
+
 
     /**
      * @return Tag of constant, i.e., its type. No setTag() method to avoid
@@ -85,6 +92,7 @@
         return tag;
     }
 
+
     /**
      * @return String representation.
      */
@@ -93,6 +101,7 @@
         return Const.getConstantName(tag) + "[" + tag + "]";
     }
 
+
     /**
      * @return deep copy of this constant
      */
@@ -105,6 +114,7 @@
         return null;
     }
 
+
     @Override
     public Object clone() {
         try {
@@ -114,47 +124,55 @@
         }
     }
 
+
     /**
      * Read one constant from the given input, the type depends on a tag byte.
      *
-     * @param input Input stream
+     * @param dataInput Input stream
      * @return Constant object
+     * @throws IOException if an I/O error occurs reading from the given {@code dataInput}.
+     * @throws ClassFormatException if the next byte is not recognized
      * @since 6.0 made public
      */
-    public static Constant readConstant(final DataInput input) throws IOException,
-            ClassFormatException {
-        final byte b = input.readByte(); // Read tag byte
+    public static Constant readConstant(final DataInput dataInput) throws IOException, ClassFormatException {
+        final byte b = dataInput.readByte(); // Read tag byte
         switch (b) {
-            case Const.CONSTANT_Class:
-                return new ConstantClass(input);
-            case Const.CONSTANT_Fieldref:
-                return new ConstantFieldref(input);
-            case Const.CONSTANT_Methodref:
-                return new ConstantMethodref(input);
-            case Const.CONSTANT_InterfaceMethodref:
-                return new ConstantInterfaceMethodref(input);
-            case Const.CONSTANT_String:
-                return new ConstantString(input);
-            case Const.CONSTANT_Integer:
-                return new ConstantInteger(input);
-            case Const.CONSTANT_Float:
-                return new ConstantFloat(input);
-            case Const.CONSTANT_Long:
-                return new ConstantLong(input);
-            case Const.CONSTANT_Double:
-                return new ConstantDouble(input);
-            case Const.CONSTANT_NameAndType:
-                return new ConstantNameAndType(input);
-            case Const.CONSTANT_Utf8:
-                return ConstantUtf8.getInstance(input);
-            case Const.CONSTANT_MethodHandle:
-                return new ConstantMethodHandle(input);
-            case Const.CONSTANT_MethodType:
-                return new ConstantMethodType(input);
-            case Const.CONSTANT_InvokeDynamic:
-                return new ConstantInvokeDynamic(input);
-            default:
-                throw new ClassFormatException("Invalid byte tag in constant pool: " + b);
+        case Const.CONSTANT_Class:
+            return new ConstantClass(dataInput);
+        case Const.CONSTANT_Fieldref:
+            return new ConstantFieldref(dataInput);
+        case Const.CONSTANT_Methodref:
+            return new ConstantMethodref(dataInput);
+        case Const.CONSTANT_InterfaceMethodref:
+            return new ConstantInterfaceMethodref(dataInput);
+        case Const.CONSTANT_String:
+            return new ConstantString(dataInput);
+        case Const.CONSTANT_Integer:
+            return new ConstantInteger(dataInput);
+        case Const.CONSTANT_Float:
+            return new ConstantFloat(dataInput);
+        case Const.CONSTANT_Long:
+            return new ConstantLong(dataInput);
+        case Const.CONSTANT_Double:
+            return new ConstantDouble(dataInput);
+        case Const.CONSTANT_NameAndType:
+            return new ConstantNameAndType(dataInput);
+        case Const.CONSTANT_Utf8:
+            return ConstantUtf8.getInstance(dataInput);
+        case Const.CONSTANT_MethodHandle:
+            return new ConstantMethodHandle(dataInput);
+        case Const.CONSTANT_MethodType:
+            return new ConstantMethodType(dataInput);
+        case Const.CONSTANT_Dynamic:
+            return new ConstantDynamic(dataInput);
+        case Const.CONSTANT_InvokeDynamic:
+            return new ConstantInvokeDynamic(dataInput);
+        case Const.CONSTANT_Module:
+            return new ConstantModule(dataInput);
+        case Const.CONSTANT_Package:
+            return new ConstantPackage(dataInput);
+        default:
+            throw new ClassFormatException("Invalid byte tag in constant pool: " + b);
         }
     }
 
@@ -165,28 +183,31 @@
         return bcelComparator;
     }
 
+
     /**
      * @param comparator Comparison strategy object
      */
-    public static void setComparator(final BCELComparator comparator) {
+    public static void setComparator( final BCELComparator comparator ) {
         bcelComparator = comparator;
     }
 
+
     /**
-     * Return value as defined by given BCELComparator strategy. By default two
-     * Constant objects are said to be equal when the result of toString() is
-     * equal.
+     * Return value as defined by given BCELComparator strategy.
+     * By default two Constant objects are said to be equal when
+     * the result of toString() is equal.
      *
      * @see java.lang.Object#equals(java.lang.Object)
      */
     @Override
-    public boolean equals(final Object obj) {
+    public boolean equals( final Object obj ) {
         return bcelComparator.equals(this, obj);
     }
 
+
     /**
-     * Return value as defined by given BCELComparator strategy. By default
-     * return the hashcode of the result of toString().
+     * Return value as defined by given BCELComparator strategy.
+     * By default return the hashcode of the result of toString().
      *
      * @see java.lang.Object#hashCode()
      */
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantCP.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantCP.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -27,13 +27,14 @@
 
 /**
  * Abstract super class for Fieldref, Methodref, InterfaceMethodref and
- * InvokeDynamic constants.
+ *                          InvokeDynamic constants.
  *
- * @version $Id: ConstantCP.java 1747278 2016-06-07 17:28:43Z britter $
- * @see ConstantFieldref
- * @see ConstantMethodref
- * @see ConstantInterfaceMethodref
- * @see ConstantInvokeDynamic
+ * @version $Id$
+ * @see     ConstantFieldref
+ * @see     ConstantMethodref
+ * @see     ConstantInterfaceMethodref
+ * @see     ConstantInvokeDynamic
+ * @LastModified: Jun 2019
  */
 public abstract class ConstantCP extends Constant {
 
@@ -53,10 +54,11 @@
         this(c.getTag(), c.getClassIndex(), c.getNameAndTypeIndex());
     }
 
+
     /**
      * Initialize instance from file data.
      *
-     * @param tag Constant type tag
+     * @param tag  Constant type tag
      * @param file Input stream
      * @throws IOException
      */
@@ -64,6 +66,7 @@
         this(tag, file.readUnsignedShort(), file.readUnsignedShort());
     }
 
+
     /**
      * @param class_index Reference to the class containing the field
      * @param name_and_type_index and the field signature
@@ -74,6 +77,7 @@
         this.name_and_type_index = name_and_type_index;
     }
 
+
     /**
      * Dump constant field reference to file stream in binary format.
      *
@@ -81,12 +85,13 @@
      * @throws IOException
      */
     @Override
-    public final void dump(final DataOutputStream file) throws IOException {
+    public final void dump( final DataOutputStream file ) throws IOException {
         file.writeByte(super.getTag());
         file.writeShort(class_index);
         file.writeShort(name_and_type_index);
     }
 
+
     /**
      * @return Reference (index) to class this constant refers to.
      */
@@ -94,13 +99,15 @@
         return class_index;
     }
 
+
     /**
      * @param class_index points to Constant_class
      */
-    public final void setClassIndex(final int class_index) {
+    public final void setClassIndex( final int class_index ) {
         this.class_index = class_index;
     }
 
+
     /**
      * @return Reference (index) to signature of the field.
      */
@@ -108,20 +115,23 @@
         return name_and_type_index;
     }
 
+
     /**
      * @param name_and_type_index points to Constant_NameAndType
      */
-    public final void setNameAndTypeIndex(final int name_and_type_index) {
+    public final void setNameAndTypeIndex( final int name_and_type_index ) {
         this.name_and_type_index = name_and_type_index;
     }
 
+
     /**
      * @return Class this field belongs to.
      */
-    public String getClass(final ConstantPool cp) {
+    public String getClass( final ConstantPool cp ) {
         return cp.constantToString(class_index, Const.CONSTANT_Class);
     }
 
+
     /**
      * @return String representation.
      *
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantClass.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantClass.java	Wed Jun 26 05:49:59 2019 +0000
@@ -31,7 +31,6 @@
  * This class is derived from the abstract {@link Constant}
  * and represents a reference to a (external) class.
  *
- * @version $Id: ConstantClass.java 1749603 2016-06-21 20:50:19Z ggregory $
  * @see     Constant
  */
 public final class ConstantClass extends Constant implements ConstantObject {
@@ -48,13 +47,13 @@
 
 
     /**
-     * Initialize instance from file data.
+     * Constructs an instance from file data.
      *
-     * @param file Input stream
-     * @throws IOException
+     * @param dataInput Input stream
+     * @throws IOException if an I/O error occurs reading from the given {@code dataInput}.
      */
-    ConstantClass(final DataInput file) throws IOException {
-        this(file.readUnsignedShort());
+    ConstantClass(final DataInput dataInput) throws IOException {
+        this(dataInput.readUnsignedShort());
     }
 
 
@@ -82,10 +81,10 @@
 
 
     /**
-     * Dump constant class to file stream in binary format.
+     * Dumps constant class to file stream in binary format.
      *
      * @param file Output file stream
-     * @throws IOException
+     * @throws IOException if an I/O error occurs writing to the DataOutputStream.
      */
     @Override
     public final void dump( final DataOutputStream file ) throws IOException {
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantDouble.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantDouble.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -30,9 +30,9 @@
  * This class is derived from the abstract  {@link Constant}
  * and represents a reference to a Double object.
  *
- * @version $Id: ConstantDouble.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  * @see     Constant
- * @LastModified: Nov 2017
+ * @LastModified: Jun 2019
  */
 public final class ConstantDouble extends Constant implements ConstantObject {
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantDynamic.java	Wed Jun 26 05:49:59 2019 +0000
@@ -0,0 +1,94 @@
+/*
+ * reserved comment block
+ * DO NOT REMOVE OR ALTER!
+ */
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+package com.sun.org.apache.bcel.internal.classfile;
+
+import java.io.DataInput;
+import java.io.IOException;
+
+import com.sun.org.apache.bcel.internal.Const;
+
+/**
+ * This class is derived from the abstract {@link Constant}
+ * and represents a reference to a dynamically computed constant.
+ *
+ * @see     Constant
+ * @see  <a href="https://bugs.openjdk.java.net/secure/attachment/74618/constant-dynamic.html">
+ * Change request for JEP 309</a>
+ * @since 6.3
+ */
+public final class ConstantDynamic extends ConstantCP {
+
+    /**
+     * Initialize from another object.
+     */
+    public ConstantDynamic(final ConstantDynamic c) {
+        this(c.getBootstrapMethodAttrIndex(), c.getNameAndTypeIndex());
+    }
+
+
+    /**
+     * Initialize instance from file data.
+     *
+     * @param file Input stream
+     * @throws IOException
+     */
+    ConstantDynamic(final DataInput file) throws IOException {
+        this(file.readShort(), file.readShort());
+    }
+
+
+    public ConstantDynamic(final int bootstrap_method_attr_index, final int name_and_type_index) {
+        super(Const.CONSTANT_Dynamic, bootstrap_method_attr_index, name_and_type_index);
+    }
+
+
+    /**
+     * Called by objects that are traversing the nodes of the tree implicitly
+     * defined by the contents of a Java class. I.e., the hierarchy of methods,
+     * fields, attributes, etc. spawns a tree of objects.
+     *
+     * @param v Visitor object
+     */
+    @Override
+    public void accept( final Visitor v ) {
+        v.visitConstantDynamic(this);
+    }
+
+    /**
+     * @return Reference (index) to bootstrap method this constant refers to.
+     *
+     * Note that this method is a functional duplicate of getClassIndex
+     * for use by ConstantInvokeDynamic.
+     * @since 6.0
+     */
+    public final int getBootstrapMethodAttrIndex() {
+        return super.getClassIndex();  // AKA bootstrap_method_attr_index
+    }
+
+    /**
+     * @return String representation
+     */
+    @Override
+    public final String toString() {
+        return super.toString().replace("class_index", "bootstrap_method_attr_index");
+    }
+}
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantFieldref.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantFieldref.java	Wed Jun 26 05:49:59 2019 +0000
@@ -29,7 +29,7 @@
 /**
  * This class represents a constant pool reference to a field.
  *
- * @version $Id: ConstantFieldref.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public final class ConstantFieldref extends ConstantCP {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantFloat.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantFloat.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -30,9 +30,9 @@
  * This class is derived from the abstract {@link Constant}
  * and represents a reference to a float object.
  *
- * @version $Id: ConstantFloat.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  * @see     Constant
- * @LastModified: Nov 2017
+ * @LastModified: Jun 2019
  */
 public final class ConstantFloat extends Constant implements ConstantObject {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantInteger.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantInteger.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -30,8 +30,9 @@
  * This class is derived from the abstract {@link Constant}
  * and represents a reference to an int object.
  *
- * @version $Id: ConstantInteger.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  * @see     Constant
+ * @LastModified: Jun 2019
  */
 public final class ConstantInteger extends Constant implements ConstantObject {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantInterfaceMethodref.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantInterfaceMethodref.java	Wed Jun 26 05:49:59 2019 +0000
@@ -29,7 +29,7 @@
 /**
  * This class represents a constant pool reference to an interface method.
  *
- * @version $Id: ConstantInterfaceMethodref.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public final class ConstantInterfaceMethodref extends ConstantCP {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantLong.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantLong.java	Wed Jun 26 05:49:59 2019 +0000
@@ -30,7 +30,7 @@
  * This class is derived from the abstract {@link Constant}
  * and represents a reference to a long object.
  *
- * @version $Id: ConstantLong.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  * @see     Constant
  */
 public final class ConstantLong extends Constant implements ConstantObject {
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantMethodref.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantMethodref.java	Wed Jun 26 05:49:59 2019 +0000
@@ -29,7 +29,7 @@
 /**
  * This class represents a constant pool reference to a method.
  *
- * @version $Id: ConstantMethodref.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public final class ConstantMethodref extends ConstantCP {
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantModule.java	Wed Jun 26 05:49:59 2019 +0000
@@ -0,0 +1,138 @@
+/*
+ * reserved comment block
+ * DO NOT REMOVE OR ALTER!
+ */
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+package com.sun.org.apache.bcel.internal.classfile;
+
+import java.io.DataInput;
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import com.sun.org.apache.bcel.internal.Const;
+
+/**
+ * This class is derived from the abstract {@link Constant}
+ * and represents a reference to a module.
+ *
+ * <p>Note: Early access Java 9 support- currently subject to change</p>
+ *
+ * @see     Constant
+ * @since 6.1
+ */
+public final class ConstantModule extends Constant implements ConstantObject {
+
+    private int name_index;
+
+
+    /**
+     * Initialize from another object.
+     */
+    public ConstantModule(final ConstantModule c) {
+        this(c.getNameIndex());
+    }
+
+
+    /**
+     * Initialize instance from file data.
+     *
+     * @param file Input stream
+     * @throws IOException
+     */
+    ConstantModule(final DataInput file) throws IOException {
+        this(file.readUnsignedShort());
+    }
+
+
+    /**
+     * @param name_index Name index in constant pool.  Should refer to a
+     * ConstantUtf8.
+     */
+    public ConstantModule(final int name_index) {
+        super(Const.CONSTANT_Module);
+        this.name_index = name_index;
+    }
+
+
+    /**
+     * Called by objects that are traversing the nodes of the tree implicitly
+     * defined by the contents of a Java class. I.e., the hierarchy of methods,
+     * fields, attributes, etc. spawns a tree of objects.
+     *
+     * @param v Visitor object
+     */
+    @Override
+    public void accept( final Visitor v ) {
+        v.visitConstantModule(this);
+    }
+
+
+    /**
+     * Dump constant module to file stream in binary format.
+     *
+     * @param file Output file stream
+     * @throws IOException
+     */
+    @Override
+    public final void dump( final DataOutputStream file ) throws IOException {
+        file.writeByte(super.getTag());
+        file.writeShort(name_index);
+    }
+
+
+    /**
+     * @return Name index in constant pool of module name.
+     */
+    public final int getNameIndex() {
+        return name_index;
+    }
+
+
+    /**
+     * @param name_index the name index in the constant pool of this Constant Module
+     */
+    public final void setNameIndex( final int name_index ) {
+        this.name_index = name_index;
+    }
+
+
+    /** @return String object
+     */
+    @Override
+    public Object getConstantValue( final ConstantPool cp ) {
+        final Constant c = cp.getConstant(name_index, Const.CONSTANT_Utf8);
+        return ((ConstantUtf8) c).getBytes();
+    }
+
+
+    /** @return dereferenced string
+     */
+    public String getBytes( final ConstantPool cp ) {
+        return (String) getConstantValue(cp);
+    }
+
+
+    /**
+     * @return String representation.
+     */
+    @Override
+    public final String toString() {
+        return super.toString() + "(name_index = " + name_index + ")";
+    }
+}
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantNameAndType.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantNameAndType.java	Wed Jun 26 05:49:59 2019 +0000
@@ -32,7 +32,7 @@
  * and represents a reference to the name and signature
  * of a field or method.
  *
- * @version $Id: ConstantNameAndType.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  * @see     Constant
  */
 public final class ConstantNameAndType extends Constant {
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantObject.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantObject.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * This interface denotes those constants that have a "natural" value,
  * such as ConstantLong, ConstantString, etc..
  *
- * @version $Id: ConstantObject.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  * @see     Constant
  */
 public interface ConstantObject {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantPackage.java	Wed Jun 26 05:49:59 2019 +0000
@@ -0,0 +1,138 @@
+/*
+ * reserved comment block
+ * DO NOT REMOVE OR ALTER!
+ */
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+package com.sun.org.apache.bcel.internal.classfile;
+
+import java.io.DataInput;
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import com.sun.org.apache.bcel.internal.Const;
+
+/**
+ * This class is derived from the abstract {@link Constant}
+ * and represents a reference to a package.
+ *
+ * <p>Note: Early access Java 9 support- currently subject to change</p>
+ *
+ * @see     Constant
+ * @since 6.1
+ */
+public final class ConstantPackage extends Constant implements ConstantObject {
+
+    private int name_index;
+
+
+    /**
+     * Initialize from another object.
+     */
+    public ConstantPackage(final ConstantPackage c) {
+        this(c.getNameIndex());
+    }
+
+
+    /**
+     * Initialize instance from file data.
+     *
+     * @param file Input stream
+     * @throws IOException
+     */
+    ConstantPackage(final DataInput file) throws IOException {
+        this(file.readUnsignedShort());
+    }
+
+
+    /**
+     * @param name_index Name index in constant pool.  Should refer to a
+     * ConstantUtf8.
+     */
+    public ConstantPackage(final int name_index) {
+        super(Const.CONSTANT_Package);
+        this.name_index = name_index;
+    }
+
+
+    /**
+     * Called by objects that are traversing the nodes of the tree implicitely
+     * defined by the contents of a Java class. I.e., the hierarchy of methods,
+     * fields, attributes, etc. spawns a tree of objects.
+     *
+     * @param v Visitor object
+     */
+    @Override
+    public void accept( final Visitor v ) {
+        v.visitConstantPackage(this);
+    }
+
+
+    /**
+     * Dump constant package to file stream in binary format.
+     *
+     * @param file Output file stream
+     * @throws IOException
+     */
+    @Override
+    public final void dump( final DataOutputStream file ) throws IOException {
+        file.writeByte(super.getTag());
+        file.writeShort(name_index);
+    }
+
+
+    /**
+     * @return Name index in constant pool of package name.
+     */
+    public final int getNameIndex() {
+        return name_index;
+    }
+
+
+    /**
+     * @param name_index the name index in the constant pool of this Constant Package
+     */
+    public final void setNameIndex( final int name_index ) {
+        this.name_index = name_index;
+    }
+
+
+    /** @return String object
+     */
+    @Override
+    public Object getConstantValue( final ConstantPool cp ) {
+        final Constant c = cp.getConstant(name_index, Const.CONSTANT_Utf8);
+        return ((ConstantUtf8) c).getBytes();
+    }
+
+
+    /** @return dereferenced string
+     */
+    public String getBytes( final ConstantPool cp ) {
+        return (String) getConstantValue(cp);
+    }
+
+
+    /**
+     * @return String representation.
+     */
+    @Override
+    public final String toString() {
+        return super.toString() + "(name_index = " + name_index + ")";
+    }
+}
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantPool.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantPool.java	Wed Jun 26 05:49:59 2019 +0000
@@ -35,7 +35,7 @@
  * programatically should see <a href="../generic/ConstantPoolGen.html">
  * ConstantPoolGen</a>.
 
- * @version $Id: ConstantPool.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  * @see     Constant
  * @see     com.sun.org.apache.bcel.internal.generic.ConstantPoolGen
  */
@@ -135,7 +135,7 @@
             case Const.CONSTANT_NameAndType:
                 str = constantToString(((ConstantNameAndType) c).getNameIndex(),
                         Const.CONSTANT_Utf8)
-                        + ":" + constantToString(((ConstantNameAndType) c).getSignatureIndex(),
+                        + " " + constantToString(((ConstantNameAndType) c).getSignatureIndex(),
                         Const.CONSTANT_Utf8);
                 break;
             case Const.CONSTANT_InterfaceMethodref:
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantString.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantString.java	Wed Jun 26 05:49:59 2019 +0000
@@ -31,7 +31,7 @@
  * This class is derived from the abstract {@link Constant}
  * and represents a reference to a String object.
  *
- * @version $Id: ConstantString.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  * @see     Constant
  */
 public final class ConstantString extends Constant implements ConstantObject {
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantUtf8.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantUtf8.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -32,8 +32,9 @@
  * This class is derived from the abstract {@link Constant}
  * and represents a reference to a Utf8 encoded string.
  *
- * @version $Id: ConstantUtf8.java 1750029 2016-06-23 22:14:38Z sebb $
+ * @version $Id$
  * @see     Constant
+ * @LastModified: Jun 2019
  */
 public final class ConstantUtf8 extends Constant {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantValue.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantValue.java	Wed Jun 26 05:49:59 2019 +0000
@@ -32,7 +32,7 @@
  * value, i.e., a default value for initializing a class field.
  * This class is instantiated by the <em>Attribute.readAttribute()</em> method.
  *
- * @version $Id: ConstantValue.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  * @see     Attribute
  */
 public final class ConstantValue extends Attribute {
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Deprecated.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Deprecated.java	Wed Jun 26 05:49:59 2019 +0000
@@ -28,16 +28,17 @@
 
 /**
  * This class is derived from <em>Attribute</em> and denotes that this is a
- * deprecated method. It is instantiated from the
- * <em>Attribute.readAttribute()</em> method.
+ * deprecated method.
+ * It is instantiated from the <em>Attribute.readAttribute()</em> method.
  *
- * @version $Id: Deprecated.java 1749603 2016-06-21 20:50:19Z ggregory $
- * @see Attribute
+ * @version $Id$
+ * @see     Attribute
  */
 public final class Deprecated extends Attribute {
 
     private byte[] bytes;
 
+
     /**
      * Initialize from another object. Note that both objects use the same
      * references (shallow copy). Use clone() for a physical copy.
@@ -46,6 +47,7 @@
         this(c.getNameIndex(), c.getLength(), c.getBytes(), c.getConstantPool());
     }
 
+
     /**
      * @param name_index Index in constant pool to CONSTANT_Utf8
      * @param length Content length in bytes
@@ -57,6 +59,7 @@
         this.bytes = bytes;
     }
 
+
     /**
      * Construct object from input stream.
      *
@@ -76,6 +79,7 @@
         }
     }
 
+
     /**
      * Called by objects that are traversing the nodes of the tree implicitely
      * defined by the contents of a Java class. I.e., the hierarchy of methods,
@@ -84,10 +88,11 @@
      * @param v Visitor object
      */
     @Override
-    public void accept(final Visitor v) {
+    public void accept( final Visitor v ) {
         v.visitDeprecated(this);
     }
 
+
     /**
      * Dump source file attribute to file stream in binary format.
      *
@@ -95,13 +100,14 @@
      * @throws IOException
      */
     @Override
-    public final void dump(final DataOutputStream file) throws IOException {
+    public final void dump( final DataOutputStream file ) throws IOException {
         super.dump(file);
         if (super.getLength() > 0) {
             file.write(bytes, 0, super.getLength());
         }
     }
 
+
     /**
      * @return data bytes.
      */
@@ -109,13 +115,15 @@
         return bytes;
     }
 
+
     /**
      * @param bytes the raw bytes that represents this byte array
      */
-    public final void setBytes(final byte[] bytes) {
+    public final void setBytes( final byte[] bytes ) {
         this.bytes = bytes;
     }
 
+
     /**
      * @return attribute name
      */
@@ -124,11 +132,12 @@
         return Const.getAttributeName(Const.ATTR_DEPRECATED);
     }
 
+
     /**
      * @return deep copy of this attribute
      */
     @Override
-    public Attribute copy(final ConstantPool _constant_pool) {
+    public Attribute copy( final ConstantPool _constant_pool ) {
         final Deprecated c = (Deprecated) clone();
         if (bytes != null) {
             c.bytes = new byte[bytes.length];
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/DescendingVisitor.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/DescendingVisitor.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,10 +26,10 @@
  * applied to all components of a JavaClass object. I.e. this class supplies the
  * traversal strategy, other classes can make use of it.
  *
- * @version $Id: DescendingVisitor.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  */
-public class DescendingVisitor implements Visitor {
-
+public class DescendingVisitor implements Visitor
+{
     private final JavaClass clazz;
 
     private final Visitor visitor;
@@ -39,17 +39,21 @@
     /**
      * @return container of current entitity, i.e., predecessor during traversal
      */
-    public Object predecessor() {
+    public Object predecessor()
+    {
         return predecessor(0);
     }
 
     /**
-     * @param level nesting level, i.e., 0 returns the direct predecessor
+     * @param level
+     *            nesting level, i.e., 0 returns the direct predecessor
      * @return container of current entitity, i.e., predecessor during traversal
      */
-    public Object predecessor(final int level) {
+    public Object predecessor(final int level)
+    {
         final int size = stack.size();
-        if ((size < 2) || (level < 0)) {
+        if ((size < 2) || (level < 0))
+        {
             return null;
         }
         return stack.elementAt(size - (level + 2)); // size - 1 == current
@@ -58,15 +62,19 @@
     /**
      * @return current object
      */
-    public Object current() {
+    public Object current()
+    {
         return stack.peek();
     }
 
     /**
-     * @param clazz Class to traverse
-     * @param visitor visitor object to apply to all components
+     * @param clazz
+     *            Class to traverse
+     * @param visitor
+     *            visitor object to apply to all components
      */
-    public DescendingVisitor(final JavaClass clazz, final Visitor visitor) {
+    public DescendingVisitor(final JavaClass clazz, final Visitor visitor)
+    {
         this.clazz = clazz;
         this.visitor = visitor;
     }
@@ -74,12 +82,14 @@
     /**
      * Start traversal.
      */
-    public void visit() {
+    public void visit()
+    {
         clazz.accept(this);
     }
 
     @Override
-    public void visitJavaClass(final JavaClass _clazz) {
+    public void visitJavaClass(final JavaClass _clazz)
+    {
         stack.push(_clazz);
         _clazz.accept(visitor);
         final Field[] fields = _clazz.getFields();
@@ -102,7 +112,8 @@
      * @since 6.0
      */
     @Override
-    public void visitAnnotation(final Annotations annotation) {
+    public void visitAnnotation(final Annotations annotation)
+    {
         stack.push(annotation);
         annotation.accept(visitor);
         final AnnotationEntry[] entries = annotation.getAnnotationEntries();
@@ -116,14 +127,16 @@
      * @since 6.0
      */
     @Override
-    public void visitAnnotationEntry(final AnnotationEntry annotationEntry) {
+    public void visitAnnotationEntry(final AnnotationEntry annotationEntry)
+    {
         stack.push(annotationEntry);
         annotationEntry.accept(visitor);
         stack.pop();
     }
 
     @Override
-    public void visitField(final Field field) {
+    public void visitField(final Field field)
+    {
         stack.push(field);
         field.accept(visitor);
         final Attribute[] attributes = field.getAttributes();
@@ -134,14 +147,16 @@
     }
 
     @Override
-    public void visitConstantValue(final ConstantValue cv) {
+    public void visitConstantValue(final ConstantValue cv)
+    {
         stack.push(cv);
         cv.accept(visitor);
         stack.pop();
     }
 
     @Override
-    public void visitMethod(final Method method) {
+    public void visitMethod(final Method method)
+    {
         stack.push(method);
         method.accept(visitor);
         final Attribute[] attributes = method.getAttributes();
@@ -152,14 +167,16 @@
     }
 
     @Override
-    public void visitExceptionTable(final ExceptionTable table) {
+    public void visitExceptionTable(final ExceptionTable table)
+    {
         stack.push(table);
         table.accept(visitor);
         stack.pop();
     }
 
     @Override
-    public void visitCode(final Code code) {
+    public void visitCode(final Code code)
+    {
         stack.push(code);
         code.accept(visitor);
         final CodeException[] table = code.getExceptionTable();
@@ -174,14 +191,16 @@
     }
 
     @Override
-    public void visitCodeException(final CodeException ce) {
+    public void visitCodeException(final CodeException ce)
+    {
         stack.push(ce);
         ce.accept(visitor);
         stack.pop();
     }
 
     @Override
-    public void visitLineNumberTable(final LineNumberTable table) {
+    public void visitLineNumberTable(final LineNumberTable table)
+    {
         stack.push(table);
         table.accept(visitor);
         final LineNumber[] numbers = table.getLineNumberTable();
@@ -192,14 +211,16 @@
     }
 
     @Override
-    public void visitLineNumber(final LineNumber number) {
+    public void visitLineNumber(final LineNumber number)
+    {
         stack.push(number);
         number.accept(visitor);
         stack.pop();
     }
 
     @Override
-    public void visitLocalVariableTable(final LocalVariableTable table) {
+    public void visitLocalVariableTable(final LocalVariableTable table)
+    {
         stack.push(table);
         table.accept(visitor);
         final LocalVariable[] vars = table.getLocalVariableTable();
@@ -210,7 +231,8 @@
     }
 
     @Override
-    public void visitStackMap(final StackMap table) {
+    public void visitStackMap(final StackMap table)
+    {
         stack.push(table);
         table.accept(visitor);
         final StackMapEntry[] vars = table.getStackMap();
@@ -221,26 +243,31 @@
     }
 
     @Override
-    public void visitStackMapEntry(final StackMapEntry var) {
+    public void visitStackMapEntry(final StackMapEntry var)
+    {
         stack.push(var);
         var.accept(visitor);
         stack.pop();
     }
 
     @Override
-    public void visitLocalVariable(final LocalVariable var) {
+    public void visitLocalVariable(final LocalVariable var)
+    {
         stack.push(var);
         var.accept(visitor);
         stack.pop();
     }
 
     @Override
-    public void visitConstantPool(final ConstantPool cp) {
+    public void visitConstantPool(final ConstantPool cp)
+    {
         stack.push(cp);
         cp.accept(visitor);
         final Constant[] constants = cp.getConstantPool();
-        for (int i = 1; i < constants.length; i++) {
-            if (constants[i] != null) {
+        for (int i = 1; i < constants.length; i++)
+        {
+            if (constants[i] != null)
+            {
                 constants[i].accept(this);
             }
         }
@@ -248,35 +275,40 @@
     }
 
     @Override
-    public void visitConstantClass(final ConstantClass constant) {
+    public void visitConstantClass(final ConstantClass constant)
+    {
         stack.push(constant);
         constant.accept(visitor);
         stack.pop();
     }
 
     @Override
-    public void visitConstantDouble(final ConstantDouble constant) {
+    public void visitConstantDouble(final ConstantDouble constant)
+    {
         stack.push(constant);
         constant.accept(visitor);
         stack.pop();
     }
 
     @Override
-    public void visitConstantFieldref(final ConstantFieldref constant) {
+    public void visitConstantFieldref(final ConstantFieldref constant)
+    {
         stack.push(constant);
         constant.accept(visitor);
         stack.pop();
     }
 
     @Override
-    public void visitConstantFloat(final ConstantFloat constant) {
+    public void visitConstantFloat(final ConstantFloat constant)
+    {
         stack.push(constant);
         constant.accept(visitor);
         stack.pop();
     }
 
     @Override
-    public void visitConstantInteger(final ConstantInteger constant) {
+    public void visitConstantInteger(final ConstantInteger constant)
+    {
         stack.push(constant);
         constant.accept(visitor);
         stack.pop();
@@ -284,7 +316,8 @@
 
     @Override
     public void visitConstantInterfaceMethodref(
-            final ConstantInterfaceMethodref constant) {
+            final ConstantInterfaceMethodref constant)
+    {
         stack.push(constant);
         constant.accept(visitor);
         stack.pop();
@@ -295,49 +328,56 @@
      */
     @Override
     public void visitConstantInvokeDynamic(
-            final ConstantInvokeDynamic constant) {
+            final ConstantInvokeDynamic constant)
+    {
         stack.push(constant);
         constant.accept(visitor);
         stack.pop();
     }
 
     @Override
-    public void visitConstantLong(final ConstantLong constant) {
+    public void visitConstantLong(final ConstantLong constant)
+    {
         stack.push(constant);
         constant.accept(visitor);
         stack.pop();
     }
 
     @Override
-    public void visitConstantMethodref(final ConstantMethodref constant) {
+    public void visitConstantMethodref(final ConstantMethodref constant)
+    {
         stack.push(constant);
         constant.accept(visitor);
         stack.pop();
     }
 
     @Override
-    public void visitConstantNameAndType(final ConstantNameAndType constant) {
+    public void visitConstantNameAndType(final ConstantNameAndType constant)
+    {
         stack.push(constant);
         constant.accept(visitor);
         stack.pop();
     }
 
     @Override
-    public void visitConstantString(final ConstantString constant) {
+    public void visitConstantString(final ConstantString constant)
+    {
         stack.push(constant);
         constant.accept(visitor);
         stack.pop();
     }
 
     @Override
-    public void visitConstantUtf8(final ConstantUtf8 constant) {
+    public void visitConstantUtf8(final ConstantUtf8 constant)
+    {
         stack.push(constant);
         constant.accept(visitor);
         stack.pop();
     }
 
     @Override
-    public void visitInnerClasses(final InnerClasses ic) {
+    public void visitInnerClasses(final InnerClasses ic)
+    {
         stack.push(ic);
         ic.accept(visitor);
         final InnerClass[] ics = ic.getInnerClasses();
@@ -348,7 +388,8 @@
     }
 
     @Override
-    public void visitInnerClass(final InnerClass inner) {
+    public void visitInnerClass(final InnerClass inner)
+    {
         stack.push(inner);
         inner.accept(visitor);
         stack.pop();
@@ -358,7 +399,8 @@
      * @since 6.0
      */
     @Override
-    public void visitBootstrapMethods(final BootstrapMethods bm) {
+    public void visitBootstrapMethods(final BootstrapMethods bm)
+    {
         stack.push(bm);
         bm.accept(visitor);
         // BootstrapMethod[] bms = bm.getBootstrapMethods();
@@ -370,35 +412,40 @@
     }
 
     @Override
-    public void visitDeprecated(final Deprecated attribute) {
+    public void visitDeprecated(final Deprecated attribute)
+    {
         stack.push(attribute);
         attribute.accept(visitor);
         stack.pop();
     }
 
     @Override
-    public void visitSignature(final Signature attribute) {
+    public void visitSignature(final Signature attribute)
+    {
         stack.push(attribute);
         attribute.accept(visitor);
         stack.pop();
     }
 
     @Override
-    public void visitSourceFile(final SourceFile attribute) {
+    public void visitSourceFile(final SourceFile attribute)
+    {
         stack.push(attribute);
         attribute.accept(visitor);
         stack.pop();
     }
 
     @Override
-    public void visitSynthetic(final Synthetic attribute) {
+    public void visitSynthetic(final Synthetic attribute)
+    {
         stack.push(attribute);
         attribute.accept(visitor);
         stack.pop();
     }
 
     @Override
-    public void visitUnknown(final Unknown attribute) {
+    public void visitUnknown(final Unknown attribute)
+    {
         stack.push(attribute);
         attribute.accept(visitor);
         stack.pop();
@@ -408,7 +455,8 @@
      * @since 6.0
      */
     @Override
-    public void visitAnnotationDefault(final AnnotationDefault obj) {
+    public void visitAnnotationDefault(final AnnotationDefault obj)
+    {
         stack.push(obj);
         obj.accept(visitor);
         stack.pop();
@@ -418,7 +466,8 @@
      * @since 6.0
      */
     @Override
-    public void visitEnclosingMethod(final EnclosingMethod obj) {
+    public void visitEnclosingMethod(final EnclosingMethod obj)
+    {
         stack.push(obj);
         obj.accept(visitor);
         stack.pop();
@@ -428,13 +477,10 @@
      * @since 6.0
      */
     @Override
-    public void visitLocalVariableTypeTable(final LocalVariableTypeTable obj) {
+    public void visitLocalVariableTypeTable(final LocalVariableTypeTable obj)
+    {
         stack.push(obj);
         obj.accept(visitor);
-        LocalVariable[] vars = obj.getLocalVariableTypeTable();
-        for (LocalVariable var : vars) {
-            var.accept(this);
-        }
         stack.pop();
     }
 
@@ -442,7 +488,8 @@
      * @since 6.0
      */
     @Override
-    public void visitParameterAnnotation(final ParameterAnnotations obj) {
+    public void visitParameterAnnotation(final ParameterAnnotations obj)
+    {
         stack.push(obj);
         obj.accept(visitor);
         stack.pop();
@@ -452,15 +499,14 @@
      * @since 6.0
      */
     @Override
-    public void visitMethodParameters(final MethodParameters obj) {
+    public void visitMethodParameters(final MethodParameters obj)
+    {
         stack.push(obj);
         obj.accept(visitor);
         stack.pop();
     }
 
-    /**
-     * @since 6.0
-     */
+    /** @since 6.0 */
     @Override
     public void visitConstantMethodType(final ConstantMethodType obj) {
         stack.push(obj);
@@ -468,9 +514,7 @@
         stack.pop();
     }
 
-    /**
-     * @since 6.0
-     */
+    /** @since 6.0 */
     @Override
     public void visitConstantMethodHandle(final ConstantMethodHandle obj) {
         stack.push(obj);
@@ -478,9 +522,7 @@
         stack.pop();
     }
 
-    /**
-     * @since 6.0
-     */
+    /** @since 6.0 */
     @Override
     public void visitParameterAnnotationEntry(final ParameterAnnotationEntry obj) {
         stack.push(obj);
@@ -488,4 +530,27 @@
         stack.pop();
     }
 
+    /** @since 6.1 */
+    @Override
+    public void visitConstantPackage(final ConstantPackage obj) {
+        stack.push(obj);
+        obj.accept(visitor);
+        stack.pop();
+    }
+
+    /** @since 6.1 */
+    @Override
+    public void visitConstantModule(final ConstantModule obj) {
+        stack.push(obj);
+        obj.accept(visitor);
+        stack.pop();
+    }
+
+    /** @since 6.3 */
+    @Override
+    public void visitConstantDynamic(final ConstantDynamic obj) {
+        stack.push(obj);
+        obj.accept(visitor);
+        stack.pop();
+    }
 }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ElementValue.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ElementValue.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,6 +1,5 @@
 /*
- * reserved comment block
- * DO NOT REMOVE OR ALTER!
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -28,6 +27,7 @@
 /**
  * @version $Id: ElementValue
  * @since 6.0
+ * @LastModified: Jun 2019
  */
 public abstract class ElementValue
 {
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/EmptyVisitor.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/EmptyVisitor.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,7 +26,7 @@
  * with the DescendingVisitor class, e.g. By courtesy of David Spencer.
  *
  * @see DescendingVisitor
- * @version $Id: EmptyVisitor.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class EmptyVisitor implements Visitor
 {
@@ -300,4 +300,26 @@
     @Override
     public void visitParameterAnnotationEntry(final ParameterAnnotationEntry parameterAnnotationEntry) {
     }
+
+    /**
+     * @since 6.1
+     */
+    @Override
+    public void visitConstantPackage(final ConstantPackage constantPackage) {
+    }
+
+    /**
+     * @since 6.1
+     */
+    @Override
+    public void visitConstantModule(final ConstantModule constantModule) {
+    }
+
+
+    /**
+     * @since 6.3
+     */
+    @Override
+    public void visitConstantDynamic(final ConstantDynamic obj) {
+    }
 }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ExceptionTable.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ExceptionTable.java	Wed Jun 26 05:49:59 2019 +0000
@@ -35,7 +35,7 @@
  * attribute using the name <em>Exceptions</em> (which is inconsistent
  * with the other classes).
  *
- * @version $Id: ExceptionTable.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  * @see     Code
  */
 public final class ExceptionTable extends Attribute {
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Field.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Field.java	Wed Jun 26 05:49:59 2019 +0000
@@ -23,6 +23,7 @@
 
 import java.io.DataInput;
 import java.io.IOException;
+import java.util.Objects;
 
 import com.sun.org.apache.bcel.internal.Const;
 import com.sun.org.apache.bcel.internal.generic.Type;
@@ -32,7 +33,7 @@
  * This class represents the field info structure, i.e., the representation
  * for a variable in the class. See JVM specification for details.
  *
- * @version $Id: Field.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  */
 public final class Field extends FieldOrMethod {
 
@@ -42,8 +43,8 @@
         public boolean equals( final Object o1, final Object o2 ) {
             final Field THIS = (Field) o1;
             final Field THAT = (Field) o2;
-            return THIS.getName().equals(THAT.getName())
-                    && THIS.getSignature().equals(THAT.getSignature());
+            return Objects.equals(THIS.getName(), THAT.getName())
+                    && Objects.equals(THIS.getSignature(), THAT.getSignature());
         }
 
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/FieldOrMethod.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/FieldOrMethod.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -29,7 +29,8 @@
 /**
  * Abstract super class for fields and methods.
  *
- * @version $Id: FieldOrMethod.java 1750029 2016-06-23 22:14:38Z sebb $
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public abstract class FieldOrMethod extends AccessFlags implements Cloneable, Node {
     private int name_index; // Points to field name in constant pool
@@ -48,6 +49,7 @@
     FieldOrMethod() {
     }
 
+
     /**
      * Initialize from another object. Note that both objects use the same
      * references (shallow copy). Use clone() for a physical copy.
@@ -57,25 +59,23 @@
                 c.getAttributes(), c.getConstantPool());
     }
 
+
     /**
      * Construct object from file stream.
      *
      * @param file Input stream
      * @throws IOException
      * @throws ClassFormatException
-     * @deprecated (6.0) Use
-     * {@link #FieldOrMethod(java.io.DataInput, ConstantPool)} instead.
+     * @deprecated (6.0) Use {@link #FieldOrMethod(java.io.DataInput, ConstantPool)} instead.
      */
     @java.lang.Deprecated
-    protected FieldOrMethod(final DataInputStream file,
-            final ConstantPool constant_pool) throws IOException,
+    protected FieldOrMethod(final DataInputStream file, final ConstantPool constant_pool) throws IOException,
             ClassFormatException {
         this((DataInput) file, constant_pool);
     }
 
     /**
      * Construct object from file stream.
-     *
      * @param file Input stream
      * @throws IOException
      * @throws ClassFormatException
@@ -84,13 +84,15 @@
             final ConstantPool constant_pool) throws IOException, ClassFormatException {
         this(file.readUnsignedShort(), file.readUnsignedShort(), file.readUnsignedShort(), null,
                 constant_pool);
-        attributes_count = file.readUnsignedShort();
+        final int attributes_count = file.readUnsignedShort();
         attributes = new Attribute[attributes_count];
         for (int i = 0; i < attributes_count; i++) {
             attributes[i] = Attribute.readAttribute(file, constant_pool);
         }
+        this.attributes_count = attributes_count; // init deprecated field
     }
 
+
     /**
      * @param access_flags Access rights of method
      * @param name_index Points to field name in constant pool
@@ -107,6 +109,7 @@
         setAttributes(attributes);
     }
 
+
     /**
      * Dump object to file stream on binary format.
      *
@@ -118,12 +121,14 @@
         file.writeShort(name_index);
         file.writeShort(signature_index);
         file.writeShort(attributes_count);
-
-        for(int i=0; i < attributes_count; i++) {
-            attributes[i].dump(file);
+        if (attributes != null) {
+            for (final Attribute attribute : attributes) {
+                attribute.dump(file);
+            }
         }
     }
 
+
     /**
      * @return Collection of object attributes.
      */
@@ -131,14 +136,16 @@
         return attributes;
     }
 
+
     /**
      * @param attributes Collection of object attributes.
      */
-    public final void setAttributes(final Attribute[] attributes) {
+    public final void setAttributes( final Attribute[] attributes ) {
         this.attributes = attributes;
-        this.attributes_count = attributes != null ? attributes.length : 0;
+        this.attributes_count = attributes != null ? attributes.length : 0; // init deprecated field
     }
 
+
     /**
      * @return Constant pool used by this object.
      */
@@ -146,13 +153,15 @@
         return constant_pool;
     }
 
+
     /**
      * @param constant_pool Constant pool to be used for this object.
      */
-    public final void setConstantPool(final ConstantPool constant_pool) {
+    public final void setConstantPool( final ConstantPool constant_pool ) {
         this.constant_pool = constant_pool;
     }
 
+
     /**
      * @return Index in constant pool of object's name.
      */
@@ -160,13 +169,15 @@
         return name_index;
     }
 
+
     /**
      * @param name_index Index in constant pool of object's name.
      */
-    public final void setNameIndex(final int name_index) {
+    public final void setNameIndex( final int name_index ) {
         this.name_index = name_index;
     }
 
+
     /**
      * @return Index in constant pool of field signature.
      */
@@ -174,13 +185,15 @@
         return signature_index;
     }
 
+
     /**
      * @param signature_index Index in constant pool of field signature.
      */
-    public final void setSignatureIndex(final int signature_index) {
+    public final void setSignatureIndex( final int signature_index ) {
         this.signature_index = signature_index;
     }
 
+
     /**
      * @return Name of object, i.e., method name or field name
      */
@@ -190,6 +203,7 @@
         return c.getBytes();
     }
 
+
     /**
      * @return String representation of object's type signature (java style)
      */
@@ -199,23 +213,24 @@
         return c.getBytes();
     }
 
+
     /**
      * @return deep copy of this field
      */
-    protected FieldOrMethod copy_(final ConstantPool _constant_pool) {
+    protected FieldOrMethod copy_( final ConstantPool _constant_pool ) {
         FieldOrMethod c = null;
 
         try {
-            c = (FieldOrMethod) clone();
-        } catch (final CloneNotSupportedException e) {
+          c = (FieldOrMethod)clone();
+        } catch(final CloneNotSupportedException e) {
             // ignored, but will cause NPE ...
         }
 
-        c.constant_pool = constant_pool;
-        c.attributes = new Attribute[attributes_count];
-        c.attributes_count = attributes_count;
+        c.constant_pool    = constant_pool;
+        c.attributes       = new Attribute[attributes.length];
+        c.attributes_count = attributes_count; // init deprecated field
 
-        for (int i = 0; i < attributes_count; i++) {
+        for (int i = 0; i < attributes.length; i++) {
             c.attributes[i] = attributes[i].copy(constant_pool);
         }
 
@@ -244,11 +259,15 @@
      *
      * @since 6.0
      */
-    public final String getGenericSignature() {
-        if (!searchedForSignatureAttribute) {
+    public final String getGenericSignature()
+    {
+        if (!searchedForSignatureAttribute)
+        {
             boolean found = false;
-            for (int i = 0; !found && i < attributes.length; i++) {
-                if (attributes[i] instanceof Signature) {
+            for (int i = 0; !found && i < attributes.length; i++)
+            {
+                if (attributes[i] instanceof Signature)
+                {
                     signatureAttributeString = ((Signature) attributes[i])
                             .getSignature();
                     found = true;
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/InnerClass.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/InnerClass.java	Wed Jun 26 05:49:59 2019 +0000
@@ -32,7 +32,7 @@
  * indices of the inner and outer classes, the name and the attributes
  * of the inner class.
  *
- * @version $Id: InnerClass.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  * @see InnerClasses
  */
 public final class InnerClass implements Cloneable, Node {
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/InnerClasses.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/InnerClasses.java	Wed Jun 26 05:49:59 2019 +0000
@@ -33,7 +33,7 @@
  * to the source file of this class.
  * It is instantiated from the <em>Attribute.readAttribute()</em> method.
  *
- * @version $Id: InnerClasses.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  * @see     Attribute
  */
 public final class InnerClasses extends Attribute {
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/JavaClass.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/JavaClass.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -26,9 +26,10 @@
 import java.io.IOException;
 import java.io.OutputStream;
 import java.util.ArrayList;
+import java.util.Objects;
+import java.util.StringTokenizer;
 import java.util.List;
 import java.util.Set;
-import java.util.StringTokenizer;
 import java.util.TreeSet;
 
 import com.sun.org.apache.bcel.internal.Const;
@@ -36,7 +37,6 @@
 import com.sun.org.apache.bcel.internal.util.BCELComparator;
 import com.sun.org.apache.bcel.internal.util.ClassQueue;
 import com.sun.org.apache.bcel.internal.util.SyntheticRepository;
-import jdk.xml.internal.SecuritySupport;
 
 /**
  * Represents a Java class, i.e., the data structures, constant pool, fields,
@@ -45,9 +45,10 @@
  * details. The intent of this class is to represent a parsed or otherwise
  * existing class file. Those interested in programatically generating classes
  * should see the <a href="../generic/ClassGen.html">ClassGen</a> class.
- *
- * @version $Id: JavaClass.java 1750227 2016-06-25 21:47:10Z ggregory $
+
+ * @version $Id$
  * @see com.sun.org.apache.bcel.internal.generic.ClassGen
+ * @LastModified: Jun 2019
  */
 public class JavaClass extends AccessFlags implements Cloneable, Node, Comparable<JavaClass> {
 
@@ -78,25 +79,28 @@
     private static BCELComparator bcelComparator = new BCELComparator() {
 
         @Override
-        public boolean equals(final Object o1, final Object o2) {
+        public boolean equals( final Object o1, final Object o2 ) {
             final JavaClass THIS = (JavaClass) o1;
             final JavaClass THAT = (JavaClass) o2;
-            return THIS.getClassName().equals(THAT.getClassName());
+            return Objects.equals(THIS.getClassName(), THAT.getClassName());
         }
 
+
         @Override
-        public int hashCode(final Object o) {
+        public int hashCode( final Object o ) {
             final JavaClass THIS = (JavaClass) o;
             return THIS.getClassName().hashCode();
         }
     };
     /**
-     * In cases where we go ahead and create something, use the default
-     * SyntheticRepository, because we don't know any better.
+     * In cases where we go ahead and create something,
+     * use the default SyntheticRepository, because we
+     * don't know any better.
      */
     private transient com.sun.org.apache.bcel.internal.util.Repository repository
             = SyntheticRepository.getInstance();
 
+
     /**
      * Constructor gets all contents as arguments.
      *
@@ -177,6 +181,7 @@
         }
     }
 
+
     /**
      * Constructor gets all contents as arguments.
      *
@@ -200,15 +205,16 @@
                 constant_pool, interfaces, fields, methods, attributes, HEAP);
     }
 
+
     /**
-     * Called by objects that are traversing the nodes of the tree implicitly
+     * Called by objects that are traversing the nodes of the tree implicitely
      * defined by the contents of a Java class. I.e., the hierarchy of methods,
      * fields, attributes, etc. spawns a tree of objects.
      *
      * @param v Visitor object
      */
     @Override
-    public void accept(final Visitor v) {
+    public void accept( final Visitor v ) {
         v.visitJavaClass(this);
     }
 
@@ -223,7 +229,7 @@
         if (parent != null) {
             final File dir = new File(parent);
             if (!dir.mkdirs()) { // either was not created or already existed
-                if (!SecuritySupport.isDirectory(dir)) {
+                if (!dir.isDirectory()) {
                     throw new IOException("Could not create the directory " + dir);
                 }
             }
@@ -233,16 +239,18 @@
         }
     }
 
+
     /**
      * Dump class to a file named file_name.
      *
      * @param _file_name Output file name
      * @throws IOException
      */
-    public void dump(final String _file_name) throws IOException {
+    public void dump( final String _file_name ) throws IOException {
         dump(new File(_file_name));
     }
 
+
     /**
      * @return class in binary format
      */
@@ -263,15 +271,6 @@
         return s.toByteArray();
     }
 
-    /**
-     * Dump Java class to output stream in binary format.
-     *
-     * @param file Output stream
-     * @throws IOException
-     */
-    public void dump(final OutputStream file) throws IOException {
-        dump(new DataOutputStream(file));
-    }
 
     /**
      * Dump Java class to output stream in binary format.
@@ -279,7 +278,18 @@
      * @param file Output stream
      * @throws IOException
      */
-    private void dump(final DataOutputStream file) throws IOException {
+    public void dump( final OutputStream file ) throws IOException {
+        dump(new DataOutputStream(file));
+    }
+
+
+    /**
+     * Dump Java class to output stream in binary format.
+     *
+     * @param file Output stream
+     * @throws IOException
+     */
+    public void dump( final DataOutputStream file ) throws IOException {
         file.writeInt(Const.JVM_CLASSFILE_MAGIC);
         file.writeShort(minor);
         file.writeShort(major);
@@ -310,6 +320,7 @@
         file.flush();
     }
 
+
     /**
      * @return Attributes of the class.
      */
@@ -336,6 +347,7 @@
         return class_name;
     }
 
+
     /**
      * @return Package name.
      */
@@ -343,6 +355,7 @@
         return package_name;
     }
 
+
     /**
      * @return Class name index.
      */
@@ -350,6 +363,7 @@
         return class_name_index;
     }
 
+
     /**
      * @return Constant pool.
      */
@@ -357,15 +371,17 @@
         return constant_pool;
     }
 
+
     /**
-     * @return Fields, i.e., variables of the class. Like the JVM spec mandates
-     * for the classfile format, these fields are those specific to this class,
-     * and not those of the superclass or superinterfaces.
+     * @return Fields, i.e., variables of the class. Like the JVM spec
+     * mandates for the classfile format, these fields are those specific to
+     * this class, and not those of the superclass or superinterfaces.
      */
     public Field[] getFields() {
         return fields;
     }
 
+
     /**
      * @return File name of class, aka SourceFile attribute value
      */
@@ -373,6 +389,7 @@
         return file_name;
     }
 
+
     /**
      * @return Names of implemented interfaces.
      */
@@ -380,6 +397,7 @@
         return interface_names;
     }
 
+
     /**
      * @return Indices in constant pool of implemented interfaces.
      */
@@ -387,6 +405,7 @@
         return interfaces;
     }
 
+
     /**
      * @return Major number of class file version.
      */
@@ -394,6 +413,7 @@
         return major;
     }
 
+
     /**
      * @return Methods of the class.
      */
@@ -401,10 +421,12 @@
         return methods;
     }
 
+
     /**
-     * @return A {@link Method} corresponding to java.lang.reflect.Method if any
+     * @return A {@link Method} corresponding to
+     * java.lang.reflect.Method if any
      */
-    public Method getMethod(final java.lang.reflect.Method m) {
+    public Method getMethod( final java.lang.reflect.Method m ) {
         for (final Method method : methods) {
             if (m.getName().equals(method.getName()) && (m.getModifiers() == method.getModifiers())
                     && Type.getSignature(m).equals(method.getSignature())) {
@@ -414,6 +436,7 @@
         return null;
     }
 
+
     /**
      * @return Minor number of class file version.
      */
@@ -421,6 +444,7 @@
         return minor;
     }
 
+
     /**
      * @return sbsolute path to file where this class was read from
      */
@@ -428,11 +452,11 @@
         return source_file_name;
     }
 
+
     /**
-     * returns the super class name of this class. In the case that this class
-     * is java.lang.Object, it will return itself (java.lang.Object). This is
-     * probably incorrect but isn't fixed at this time to not break existing
-     * clients.
+     * returns the super class name of this class. In the case that this class is
+     * java.lang.Object, it will return itself (java.lang.Object). This is probably incorrect
+     * but isn't fixed at this time to not break existing clients.
      *
      * @return Superclass name.
      */
@@ -440,6 +464,7 @@
         return superclass_name;
     }
 
+
     /**
      * @return Class name index.
      */
@@ -450,101 +475,115 @@
     /**
      * @param attributes .
      */
-    public void setAttributes(final Attribute[] attributes) {
+    public void setAttributes( final Attribute[] attributes ) {
         this.attributes = attributes;
     }
 
+
     /**
      * @param class_name .
      */
-    public void setClassName(final String class_name) {
+    public void setClassName( final String class_name ) {
         this.class_name = class_name;
     }
 
+
     /**
      * @param class_name_index .
      */
-    public void setClassNameIndex(final int class_name_index) {
+    public void setClassNameIndex( final int class_name_index ) {
         this.class_name_index = class_name_index;
     }
 
+
     /**
      * @param constant_pool .
      */
-    public void setConstantPool(final ConstantPool constant_pool) {
+    public void setConstantPool( final ConstantPool constant_pool ) {
         this.constant_pool = constant_pool;
     }
 
+
     /**
      * @param fields .
      */
-    public void setFields(final Field[] fields) {
+    public void setFields( final Field[] fields ) {
         this.fields = fields;
     }
 
+
     /**
      * Set File name of class, aka SourceFile attribute value
      */
-    public void setFileName(final String file_name) {
+    public void setFileName( final String file_name ) {
         this.file_name = file_name;
     }
 
+
     /**
      * @param interface_names .
      */
-    public void setInterfaceNames(final String[] interface_names) {
+    public void setInterfaceNames( final String[] interface_names ) {
         this.interface_names = interface_names;
     }
 
+
     /**
      * @param interfaces .
      */
-    public void setInterfaces(final int[] interfaces) {
+    public void setInterfaces( final int[] interfaces ) {
         this.interfaces = interfaces;
     }
 
+
     /**
      * @param major .
      */
-    public void setMajor(final int major) {
+    public void setMajor( final int major ) {
         this.major = major;
     }
 
+
     /**
      * @param methods .
      */
-    public void setMethods(final Method[] methods) {
+    public void setMethods( final Method[] methods ) {
         this.methods = methods;
     }
 
+
     /**
      * @param minor .
      */
-    public void setMinor(final int minor) {
+    public void setMinor( final int minor ) {
         this.minor = minor;
     }
 
+
     /**
      * Set absolute path to file this class was read from.
      */
-    public void setSourceFileName(final String source_file_name) {
+    public void setSourceFileName( final String source_file_name ) {
         this.source_file_name = source_file_name;
     }
 
+
     /**
      * @param superclass_name .
      */
-    public void setSuperclassName(final String superclass_name) {
+    public void setSuperclassName( final String superclass_name ) {
         this.superclass_name = superclass_name;
     }
 
+
     /**
      * @param superclass_name_index .
      */
-    public void setSuperclassNameIndex(final int superclass_name_index) {
+    public void setSuperclassNameIndex( final int superclass_name_index ) {
         this.superclass_name_index = superclass_name_index;
     }
 
+
     /**
      * @return String representing class contents.
      */
@@ -555,7 +594,7 @@
         final StringBuilder buf = new StringBuilder(128);
         buf.append(access).append(Utility.classOrInterface(super.getAccessFlags())).append(" ").append(
                 class_name).append(" extends ").append(
-                        Utility.compactClassName(superclass_name, false)).append('\n');
+                Utility.compactClassName(superclass_name, false)).append('\n');
         final int size = interfaces.length;
         if (size > 0) {
             buf.append("implements\t\t");
@@ -580,7 +619,7 @@
             }
         }
         final AnnotationEntry[] annotations = getAnnotationEntries();
-        if (annotations != null && annotations.length > 0) {
+        if (annotations!=null && annotations.length>0) {
             buf.append("\nAnnotation(s):\n");
             for (final AnnotationEntry annotation : annotations) {
                 buf.append(indent(annotation));
@@ -601,7 +640,8 @@
         return buf.toString();
     }
 
-    private static String indent(final Object obj) {
+
+    private static String indent( final Object obj ) {
         final StringTokenizer tok = new StringTokenizer(obj.toString(), "\n");
         final StringBuilder buf = new StringBuilder();
         while (tok.hasMoreTokens()) {
@@ -610,6 +650,7 @@
         return buf.toString();
     }
 
+
     /**
      * @return deep copy of this class
      */
@@ -638,10 +679,12 @@
         return c;
     }
 
+
     public final boolean isSuper() {
         return (super.getAccessFlags() & Const.ACC_SUPER) != 0;
     }
 
+
     public final boolean isClass() {
         return (super.getAccessFlags() & Const.ACC_INTERFACE) == 0;
     }
@@ -667,62 +710,62 @@
             return;
         }
         for (final Attribute attribute : this.attributes) {
-            if (attribute instanceof InnerClasses) {
-                final InnerClass[] innerClasses = ((InnerClasses) attribute).getInnerClasses();
-                for (final InnerClass innerClasse : innerClasses) {
-                    boolean innerClassAttributeRefersToMe = false;
-                    String inner_class_name = constant_pool.getConstantString(innerClasse.getInnerClassIndex(),
-                            Const.CONSTANT_Class);
-                    inner_class_name = Utility.compactClassName(inner_class_name);
-                    if (inner_class_name.equals(getClassName())) {
-                        innerClassAttributeRefersToMe = true;
-                    }
-                    if (innerClassAttributeRefersToMe) {
-                        this.isNested = true;
-                        if (innerClasse.getInnerNameIndex() == 0) {
-                            this.isAnonymous = true;
-                        }
-                    }
-                }
-            }
+              if (attribute instanceof InnerClasses) {
+                  final InnerClass[] innerClasses = ((InnerClasses) attribute).getInnerClasses();
+                  for (final InnerClass innerClasse : innerClasses) {
+                      boolean innerClassAttributeRefersToMe = false;
+                      String inner_class_name = constant_pool.getConstantString(innerClasse.getInnerClassIndex(),
+                                 Const.CONSTANT_Class);
+                      inner_class_name = Utility.compactClassName(inner_class_name);
+                      if (inner_class_name.equals(getClassName())) {
+                          innerClassAttributeRefersToMe = true;
+                      }
+                      if (innerClassAttributeRefersToMe) {
+                          this.isNested = true;
+                          if (innerClasse.getInnerNameIndex() == 0) {
+                              this.isAnonymous = true;
+                          }
+                      }
+                  }
+              }
         }
         this.computedNestedTypeStatus = true;
     }
 
-    /**
-     * @return returns either HEAP (generated), FILE, or ZIP
+
+    /** @return returns either HEAP (generated), FILE, or ZIP
      */
     public final byte getSource() {
         return source;
     }
 
+
+    /********************* New repository functionality *********************/
     /**
-     * ******************* New repository functionality ********************
-     */
-    /**
-     * Gets the ClassRepository which holds its definition. By default this is
-     * the same as SyntheticRepository.getInstance();
+     * Gets the ClassRepository which holds its definition. By default
+     * this is the same as SyntheticRepository.getInstance();
      */
     public com.sun.org.apache.bcel.internal.util.Repository getRepository() {
         return repository;
     }
 
+
     /**
-     * Sets the ClassRepository which loaded the JavaClass. Should be called
-     * immediately after parsing is done.
+     * Sets the ClassRepository which loaded the JavaClass.
+     * Should be called immediately after parsing is done.
      */
     public void setRepository(final com.sun.org.apache.bcel.internal.util.Repository repository) {
         this.repository = repository;
     }
 
-    /**
-     * Equivalent to runtime "instanceof" operator.
+
+    /** Equivalent to runtime "instanceof" operator.
      *
      * @return true if this JavaClass is derived from the super class
-     * @throws ClassNotFoundException if superclasses or superinterfaces of this
-     * object can't be found
+     * @throws ClassNotFoundException if superclasses or superinterfaces
+     *   of this object can't be found
      */
-    public final boolean instanceOf(final JavaClass super_class) throws ClassNotFoundException {
+    public final boolean instanceOf( final JavaClass super_class ) throws ClassNotFoundException {
         if (this.equals(super_class)) {
             return true;
         }
@@ -738,12 +781,13 @@
         return false;
     }
 
+
     /**
      * @return true, if this class is an implementation of interface inter
-     * @throws ClassNotFoundException if superclasses or superinterfaces of this
-     * class can't be found
+     * @throws ClassNotFoundException if superclasses or superinterfaces
+     *   of this class can't be found
      */
-    public boolean implementationOf(final JavaClass inter) throws ClassNotFoundException {
+    public boolean implementationOf( final JavaClass inter ) throws ClassNotFoundException {
         if (!inter.isInterface()) {
             throw new IllegalArgumentException(inter.getClassName() + " is no interface");
         }
@@ -759,9 +803,10 @@
         return false;
     }
 
+
     /**
-     * @return the superclass for this JavaClass object, or null if this is
-     * java.lang.Object
+     * @return the superclass for this JavaClass object, or null if this
+     * is java.lang.Object
      * @throws ClassNotFoundException if the superclass can't be found
      */
     public JavaClass getSuperClass() throws ClassNotFoundException {
@@ -771,6 +816,7 @@
         return repository.loadClass(getSuperclassName());
     }
 
+
     /**
      * @return list of super classes of this class in ascending order, i.e.,
      * java.lang.Object is always the last element
@@ -785,6 +831,7 @@
         return allSuperClasses.toArray(new JavaClass[allSuperClasses.size()]);
     }
 
+
     /**
      * Get interfaces directly implemented by this JavaClass.
      */
@@ -797,6 +844,7 @@
         return classes;
     }
 
+
     /**
      * Get all interfaces implemented by this JavaClass (transitively).
      */
@@ -822,6 +870,7 @@
         return allInterfaces.toArray(new JavaClass[allInterfaces.size()]);
     }
 
+
     /**
      * @return Comparison strategy object
      */
@@ -829,38 +878,42 @@
         return bcelComparator;
     }
 
+
     /**
      * @param comparator Comparison strategy object
      */
-    public static void setComparator(final BCELComparator comparator) {
+    public static void setComparator( final BCELComparator comparator ) {
         bcelComparator = comparator;
     }
 
+
     /**
-     * Return value as defined by given BCELComparator strategy. By default two
-     * JavaClass objects are said to be equal when their class names are equal.
+     * Return value as defined by given BCELComparator strategy.
+     * By default two JavaClass objects are said to be equal when
+     * their class names are equal.
      *
      * @see java.lang.Object#equals(java.lang.Object)
      */
     @Override
-    public boolean equals(final Object obj) {
+    public boolean equals( final Object obj ) {
         return bcelComparator.equals(this, obj);
     }
 
+
     /**
-     * Return the natural ordering of two JavaClasses. This ordering is based on
-     * the class name
-     *
+     * Return the natural ordering of two JavaClasses.
+     * This ordering is based on the class name
      * @since 6.0
      */
     @Override
-    public int compareTo(final JavaClass obj) {
+    public int compareTo( final JavaClass obj ) {
         return getClassName().compareTo(obj.getClassName());
     }
 
+
     /**
-     * Return value as defined by given BCELComparator strategy. By default
-     * return the hashcode of the class name.
+     * Return value as defined by given BCELComparator strategy.
+     * By default return the hashcode of the class name.
      *
      * @see java.lang.Object#hashCode()
      */
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/LineNumber.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/LineNumber.java	Wed Jun 26 05:49:59 2019 +0000
@@ -30,7 +30,7 @@
  * the source that corresponds to a relative address in the byte code. This
  * is used for debugging purposes.
  *
- * @version $Id: LineNumber.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  * @see     LineNumberTable
  */
 public final class LineNumber implements Cloneable, Node {
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/LineNumberTable.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/LineNumberTable.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -26,13 +26,14 @@
 import jdk.xml.internal.SecuritySupport;
 
 /**
- * This class represents a table of line numbers for debugging purposes. This
- * attribute is used by the <em>Code</em> attribute. It contains pairs of PCs
- * and line numbers.
+ * This class represents a table of line numbers for debugging
+ * purposes. This attribute is used by the <em>Code</em> attribute. It
+ * contains pairs of PCs and line numbers.
  *
- * @version $Id: LineNumberTable.java 1749603 2016-06-21 20:50:19Z ggregory $
- * @see Code
+ * @version $Id$
+ * @see     Code
  * @see LineNumber
+ * @LastModified: Jun 2019
  */
 public final class LineNumberTable extends Attribute {
 
@@ -63,7 +64,6 @@
 
     /**
      * Construct object from input stream.
-     *
      * @param name_index Index of name
      * @param length Content length in bytes
      * @param input Input stream
@@ -88,7 +88,7 @@
      * @param v Visitor object
      */
     @Override
-    public void accept(final Visitor v) {
+    public void accept( final Visitor v ) {
         v.visitLineNumberTable(this);
     }
 
@@ -99,7 +99,7 @@
      * @throws IOEXception if an I/O Exception occurs in writeShort
      */
     @Override
-    public final void dump(final DataOutputStream file) throws IOException {
+    public final void dump( final DataOutputStream file ) throws IOException {
         super.dump(file);
         file.writeShort(line_number_table.length);
         for (final LineNumber lineNumber : line_number_table) {
@@ -117,7 +117,7 @@
     /**
      * @param line_number_table the line number entries for this table
      */
-    public final void setLineNumberTable(final LineNumber[] line_number_table) {
+    public final void setLineNumberTable( final LineNumber[] line_number_table ) {
         this.line_number_table = line_number_table;
     }
 
@@ -150,7 +150,7 @@
      * @param pos byte code offset
      * @return corresponding line in source code
      */
-    public int getSourceLine(final int pos) {
+    public int getSourceLine( final int pos ) {
         int l = 0;
         int r = line_number_table.length - 1;
         if (r < 0) {
@@ -192,7 +192,7 @@
      * @return deep copy of this attribute
      */
     @Override
-    public Attribute copy(final ConstantPool _constant_pool) {
+    public Attribute copy( final ConstantPool _constant_pool ) {
         // TODO could use the lower level constructor and thereby allow
         // line_number_table to be made final
         final LineNumberTable c = (LineNumberTable) clone();
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/LocalVariable.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/LocalVariable.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -30,8 +30,9 @@
  * This class represents a local variable within a method. It contains its
  * scope, name, signature and index on the method's frame.
  *
- * @version $Id: LocalVariable.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  * @see     LocalVariableTable
+ * @LastModified: Jun 2019
  */
 public final class LocalVariable implements Cloneable, Node {
 
@@ -43,6 +44,7 @@
      * this method's frame.
      */
     private ConstantPool constant_pool;
+    private int orig_index; // never changes; used to match up with LocalVariableTypeTable entries
 
 
     /**
@@ -52,6 +54,7 @@
     public LocalVariable(final LocalVariable c) {
         this(c.getStartPC(), c.getLength(), c.getNameIndex(), c.getSignatureIndex(), c.getIndex(),
                 c.getConstantPool());
+        this.orig_index = c.getOrigIndex();
     }
 
 
@@ -82,6 +85,28 @@
         this.signature_index = signature_index;
         this.index = index;
         this.constant_pool = constant_pool;
+        this.orig_index = index;
+    }
+
+
+    /**
+     * @param start_pc Range in which the variable
+     * @param length ... is valid
+     * @param name_index Index in constant pool of variable name
+     * @param signature_index Index of variable's signature
+     * @param index Variable is `index'th local variable on the method's frame
+     * @param constant_pool Array of constants
+     * @param orig_index Variable is `index'th local variable on the method's frame prior to any changes
+     */
+    public LocalVariable(final int start_pc, final int length, final int name_index, final int signature_index, final int index,
+            final ConstantPool constant_pool, final int orig_index) {
+        this.start_pc = start_pc;
+        this.length = length;
+        this.name_index = name_index;
+        this.signature_index = signature_index;
+        this.index = index;
+        this.constant_pool = constant_pool;
+        this.orig_index = orig_index;
     }
 
 
@@ -174,6 +199,14 @@
 
 
     /**
+     * @return index of register where variable was originally stored
+     */
+    public final int getOrigIndex() {
+        return orig_index;
+    }
+
+
+    /**
      * @return Start of range where he variable is valid
      */
     public final int getStartPC() {
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/LocalVariableTable.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/LocalVariableTable.java	Wed Jun 26 05:49:59 2019 +0000
@@ -31,7 +31,7 @@
  * This class represents colection of local variables in a
  * method. This attribute is contained in the <em>Code</em> attribute.
  *
- * @version $Id: LocalVariableTable.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  * @see     Code
  * @see LocalVariable
  */
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/LocalVariableTypeTable.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/LocalVariableTypeTable.java	Wed Jun 26 05:49:59 2019 +0000
@@ -23,9 +23,11 @@
 import java.io.DataInput;
 import java.io.DataOutputStream;
 import java.io.IOException;
+
 import com.sun.org.apache.bcel.internal.Const;
 
 // The new table is used when generic types are about...
+
 //LocalVariableTable_attribute {
 //       u2 attribute_name_index;
 //       u4 attribute_length;
@@ -37,6 +39,7 @@
 //          u2 index;
 //       } local_variable_table[local_variable_table_length];
 //     }
+
 //LocalVariableTypeTable_attribute {
 //    u2 attribute_name_index;
 //    u4 attribute_length;
@@ -50,6 +53,7 @@
 //    } local_variable_type_table[local_variable_type_table_length];
 //  }
 // J5TODO: Needs some testing !
+
 /**
  * @since 6.0
  */
@@ -61,14 +65,12 @@
         this(c.getNameIndex(), c.getLength(), c.getLocalVariableTypeTable(), c.getConstantPool());
     }
 
-    public LocalVariableTypeTable(final int name_index, final int length,
-            final LocalVariable[] local_variable_table, final ConstantPool constant_pool) {
+    public LocalVariableTypeTable(final int name_index, final int length, final LocalVariable[] local_variable_table, final ConstantPool constant_pool) {
         super(Const.ATTR_LOCAL_VARIABLE_TYPE_TABLE, name_index, length, constant_pool);
         this.local_variable_type_table = local_variable_table;
     }
 
-    LocalVariableTypeTable(final int nameIdx, final int len, final DataInput input,
-            final ConstantPool cpool) throws IOException {
+    LocalVariableTypeTable(final int nameIdx, final int len, final DataInput input, final ConstantPool cpool) throws IOException {
         this(nameIdx, len, (LocalVariable[]) null, cpool);
 
         final int local_variable_type_table_length = input.readUnsignedShort();
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Method.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Method.java	Wed Jun 26 05:49:59 2019 +0000
@@ -22,32 +22,34 @@
 
 import java.io.DataInput;
 import java.io.IOException;
+import java.util.Objects;
 
 import com.sun.org.apache.bcel.internal.Const;
 import com.sun.org.apache.bcel.internal.generic.Type;
 import com.sun.org.apache.bcel.internal.util.BCELComparator;
 
 /**
- * This class represents the method info structure, i.e., the representation for
- * a method in the class. See JVM specification for details. A method has access
- * flags, a name, a signature and a number of attributes.
+ * This class represents the method info structure, i.e., the representation
+ * for a method in the class. See JVM specification for details.
+ * A method has access flags, a name, a signature and a number of attributes.
  *
- * @version $Id: Method.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  */
 public final class Method extends FieldOrMethod {
 
     private static BCELComparator bcelComparator = new BCELComparator() {
 
         @Override
-        public boolean equals(final Object o1, final Object o2) {
+        public boolean equals( final Object o1, final Object o2 ) {
             final Method THIS = (Method) o1;
             final Method THAT = (Method) o2;
-            return THIS.getName().equals(THAT.getName())
-                    && THIS.getSignature().equals(THAT.getSignature());
+            return Objects.equals(THIS.getName(), THAT.getName())
+                    && Objects.equals(THIS.getSignature(), THAT.getSignature());
         }
 
+
         @Override
-        public int hashCode(final Object o) {
+        public int hashCode( final Object o ) {
             final Method THIS = (Method) o;
             return THIS.getSignature().hashCode() ^ THIS.getName().hashCode();
         }
@@ -63,6 +65,7 @@
     public Method() {
     }
 
+
     /**
      * Initialize from another object. Note that both objects use the same
      * references (shallow copy). Use clone() for a physical copy.
@@ -71,9 +74,9 @@
         super(c);
     }
 
+
     /**
      * Construct object from file stream.
-     *
      * @param file Input stream
      * @throws IOException
      * @throws ClassFormatException
@@ -83,6 +86,7 @@
         super(file, constant_pool);
     }
 
+
     /**
      * @param access_flags Access rights of method
      * @param name_index Points to field name in constant pool
@@ -95,6 +99,7 @@
         super(access_flags, name_index, signature_index, attributes, constant_pool);
     }
 
+
     /**
      * Called by objects that are traversing the nodes of the tree implicitely
      * defined by the contents of a Java class. I.e., the hierarchy of methods,
@@ -103,10 +108,11 @@
      * @param v Visitor object
      */
     @Override
-    public void accept(final Visitor v) {
+    public void accept( final Visitor v ) {
         v.visitMethod(this);
     }
 
+
     /**
      * @return Code attribute of method, if any
      */
@@ -119,6 +125,7 @@
         return null;
     }
 
+
     /**
      * @return ExceptionTable attribute of method, if any, i.e., list all
      * exceptions the method may throw not exception handlers!
@@ -132,9 +139,9 @@
         return null;
     }
 
-    /**
-     * @return LocalVariableTable of code attribute if any, i.e. the call is
-     * forwarded to the Code atribute.
+
+    /** @return LocalVariableTable of code attribute if any, i.e. the call is forwarded
+     * to the Code atribute.
      */
     public final LocalVariableTable getLocalVariableTable() {
         final Code code = getCode();
@@ -144,9 +151,9 @@
         return code.getLocalVariableTable();
     }
 
-    /**
-     * @return LineNumberTable of code attribute if any, i.e. the call is
-     * forwarded to the Code atribute.
+
+    /** @return LineNumberTable of code attribute if any, i.e. the call is forwarded
+     * to the Code atribute.
      */
     public final LineNumberTable getLineNumberTable() {
         final Code code = getCode();
@@ -156,9 +163,10 @@
         return code.getLineNumberTable();
     }
 
+
     /**
-     * Return string representation close to declaration format, e.g.
-     * 'public static void main(String[] args) throws IOException'
+     * Return string representation close to declaration format,
+     * `public static void main(String[] args) throws IOException', e.g.
      *
      * @return String representation of the method.
      */
@@ -188,13 +196,15 @@
         return buf.toString();
     }
 
+
     /**
      * @return deep copy of this method
      */
-    public final Method copy(final ConstantPool _constant_pool) {
+    public final Method copy( final ConstantPool _constant_pool ) {
         return (Method) copy_(_constant_pool);
     }
 
+
     /**
      * @return return type of method
      */
@@ -202,6 +212,7 @@
         return Type.getReturnType(getSignature());
     }
 
+
     /**
      * @return array of method argument types
      */
@@ -209,6 +220,7 @@
         return Type.getArgumentTypes(getSignature());
     }
 
+
     /**
      * @return Comparison strategy object
      */
@@ -216,28 +228,31 @@
         return bcelComparator;
     }
 
+
     /**
      * @param comparator Comparison strategy object
      */
-    public static void setComparator(final BCELComparator comparator) {
+    public static void setComparator( final BCELComparator comparator ) {
         bcelComparator = comparator;
     }
 
+
     /**
-     * Return value as defined by given BCELComparator strategy. By default two
-     * method objects are said to be equal when their names and signatures are
-     * equal.
+     * Return value as defined by given BCELComparator strategy.
+     * By default two method objects are said to be equal when
+     * their names and signatures are equal.
      *
      * @see java.lang.Object#equals(java.lang.Object)
      */
     @Override
-    public boolean equals(final Object obj) {
+    public boolean equals( final Object obj ) {
         return bcelComparator.equals(this, obj);
     }
 
+
     /**
-     * Return value as defined by given BCELComparator strategy. By default
-     * return the hashcode of the method's name XOR signature.
+     * Return value as defined by given BCELComparator strategy.
+     * By default return the hashcode of the method's name XOR signature.
      *
      * @see java.lang.Object#hashCode()
      */
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Node.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Node.java	Wed Jun 26 05:49:59 2019 +0000
@@ -24,7 +24,7 @@
 /**
  * Denote class to have an accept method();
  *
- * @version $Id: Node.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public interface Node {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/PMGClass.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/PMGClass.java	Wed Jun 26 05:49:59 2019 +0000
@@ -31,7 +31,7 @@
  * This class is derived from <em>Attribute</em> and represents a reference
  * to a PMG attribute.
  *
- * @version $Id: PMGClass.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  * @see     Attribute
  */
 public final class PMGClass extends Attribute {
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Signature.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Signature.java	Wed Jun 26 05:49:59 2019 +0000
@@ -32,7 +32,7 @@
  * This class is derived from <em>Attribute</em> and represents a reference
  * to a GJ attribute.
  *
- * @version $Id: Signature.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  * @see     Attribute
  */
 public final class Signature extends Attribute {
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/SourceFile.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/SourceFile.java	Wed Jun 26 05:49:59 2019 +0000
@@ -33,7 +33,7 @@
  * should appear per classfile.  The intention of this class is that it is
  * instantiated from the <em>Attribute.readAttribute()</em> method.
  *
- * @version $Id: SourceFile.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  * @see     Attribute
  */
 public final class SourceFile extends Attribute {
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/StackMap.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/StackMap.java	Wed Jun 26 05:49:59 2019 +0000
@@ -36,7 +36,7 @@
  * within the Code attribute of a method. See CLDC specification
  * 5.3.1.2
  *
- * @version $Id: StackMap.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  * @see     Code
  * @see     StackMapEntry
  * @see     StackMapType
@@ -78,7 +78,7 @@
 
 
     /**
-     * Dump line number table attribute to file stream in binary format.
+     * Dump stack map table attribute to file stream in binary format.
      *
      * @param file Output file stream
      * @throws IOException
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/StackMapEntry.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/StackMapEntry.java	Wed Jun 26 05:49:59 2019 +0000
@@ -31,7 +31,7 @@
  * local variables and the the of stack items at a given byte code offset.
  * See CLDC specification 5.3.1.2
  *
- * @version $Id: StackMapEntry.java 1750029 2016-06-23 22:14:38Z sebb $
+ * @version $Id$
  * @see     StackMap
  * @see     StackMapType
  */
@@ -51,8 +51,8 @@
      * @param input Input stream
      * @throws IOException
      */
-    StackMapEntry(final DataInput input, final ConstantPool constant_pool) throws IOException {
-        this(input.readByte() & 0xFF, -1, null, null, constant_pool);
+    StackMapEntry(final DataInput input, final ConstantPool constantPool) throws IOException {
+        this(input.readByte() & 0xFF, -1, null, null, constantPool);
 
         if (frame_type >= Const.SAME_FRAME && frame_type <= Const.SAME_FRAME_MAX) {
             byte_code_offset = frame_type - Const.SAME_FRAME;
@@ -60,11 +60,11 @@
                    frame_type <= Const.SAME_LOCALS_1_STACK_ITEM_FRAME_MAX) {
             byte_code_offset = frame_type - Const.SAME_LOCALS_1_STACK_ITEM_FRAME;
             types_of_stack_items = new StackMapType[1];
-            types_of_stack_items[0] = new StackMapType(input, constant_pool);
+            types_of_stack_items[0] = new StackMapType(input, constantPool);
         } else if (frame_type == Const.SAME_LOCALS_1_STACK_ITEM_FRAME_EXTENDED) {
             byte_code_offset = input.readShort();
             types_of_stack_items = new StackMapType[1];
-            types_of_stack_items[0] = new StackMapType(input, constant_pool);
+            types_of_stack_items[0] = new StackMapType(input, constantPool);
         } else if (frame_type >= Const.CHOP_FRAME && frame_type <= Const.CHOP_FRAME_MAX) {
             byte_code_offset = input.readShort();
         } else if (frame_type == Const.SAME_FRAME_EXTENDED) {
@@ -74,19 +74,19 @@
             final int number_of_locals = frame_type - 251;
             types_of_locals = new StackMapType[number_of_locals];
             for (int i = 0; i < number_of_locals; i++) {
-                types_of_locals[i] = new StackMapType(input, constant_pool);
+                types_of_locals[i] = new StackMapType(input, constantPool);
             }
         } else if (frame_type == Const.FULL_FRAME) {
             byte_code_offset = input.readShort();
             final int number_of_locals = input.readShort();
             types_of_locals = new StackMapType[number_of_locals];
             for (int i = 0; i < number_of_locals; i++) {
-                types_of_locals[i] = new StackMapType(input, constant_pool);
+                types_of_locals[i] = new StackMapType(input, constantPool);
             }
             final int number_of_stack_items = input.readShort();
             types_of_stack_items = new StackMapType[number_of_stack_items];
             for (int i = 0; i < number_of_stack_items; i++) {
-                types_of_stack_items[i] = new StackMapType(input, constant_pool);
+                types_of_stack_items[i] = new StackMapType(input, constantPool);
             }
         } else {
             /* Can't happen */
@@ -97,42 +97,42 @@
     /**
      * DO NOT USE
      *
-     * @param byte_code_offset
-     * @param number_of_locals NOT USED
-     * @param types_of_locals array of {@link StackMapType}s of locals
-     * @param number_of_stack_items NOT USED
-     * @param types_of_stack_items array ot {@link StackMapType}s of stack items
-     * @param constant_pool the constant pool
+     * @param byteCodeOffset
+     * @param numberOfLocals NOT USED
+     * @param typesOfLocals array of {@link StackMapType}s of locals
+     * @param numberOfStackItems NOT USED
+     * @param typesOfStackItems array ot {@link StackMapType}s of stack items
+     * @param constantPool the constant pool
      * @deprecated Since 6.0, use {@link #StackMapEntry(int, int, StackMapType[], StackMapType[], ConstantPool)}
      * instead
      */
     @java.lang.Deprecated
-    public StackMapEntry(final int byte_code_offset, final int number_of_locals,
-            final StackMapType[] types_of_locals, final int number_of_stack_items,
-            final StackMapType[] types_of_stack_items, final ConstantPool constant_pool) {
-        this.byte_code_offset = byte_code_offset;
-        this.types_of_locals = types_of_locals != null ? types_of_locals : new StackMapType[0];
-        this.types_of_stack_items = types_of_stack_items != null ? types_of_stack_items : new StackMapType[0];
-        this.constant_pool = constant_pool;
+    public StackMapEntry(final int byteCodeOffset, final int numberOfLocals,
+            final StackMapType[] typesOfLocals, final int numberOfStackItems,
+            final StackMapType[] typesOfStackItems, final ConstantPool constantPool) {
+        this.byte_code_offset = byteCodeOffset;
+        this.types_of_locals = typesOfLocals != null ? typesOfLocals : new StackMapType[0];
+        this.types_of_stack_items = typesOfStackItems != null ? typesOfStackItems : new StackMapType[0];
+        this.constant_pool = constantPool;
     }
 
     /**
      * Create an instance
      *
      * @param tag the frame_type to use
-     * @param byte_code_offset
-     * @param types_of_locals array of {@link StackMapType}s of locals
-     * @param types_of_stack_items array ot {@link StackMapType}s of stack items
-     * @param constant_pool the constant pool
+     * @param byteCodeOffset
+     * @param typesOfLocals array of {@link StackMapType}s of locals
+     * @param typesOfStackItems array ot {@link StackMapType}s of stack items
+     * @param constantPool the constant pool
      */
-    public StackMapEntry(final int tag, final int byte_code_offset,
-            final StackMapType[] types_of_locals,
-            final StackMapType[] types_of_stack_items, final ConstantPool constant_pool) {
+    public StackMapEntry(final int tag, final int byteCodeOffset,
+            final StackMapType[] typesOfLocals,
+            final StackMapType[] typesOfStackItems, final ConstantPool constantPool) {
         this.frame_type = tag;
-        this.byte_code_offset = byte_code_offset;
-        this.types_of_locals = types_of_locals != null ? types_of_locals : new StackMapType[0];
-        this.types_of_stack_items = types_of_stack_items != null ? types_of_stack_items : new StackMapType[0];
-        this.constant_pool = constant_pool;
+        this.byte_code_offset = byteCodeOffset;
+        this.types_of_locals = typesOfLocals != null ? typesOfLocals : new StackMapType[0];
+        this.types_of_stack_items = typesOfStackItems != null ? typesOfStackItems : new StackMapType[0];
+        this.constant_pool = constantPool;
     }
 
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/StackMapType.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/StackMapType.java	Wed Jun 26 05:49:59 2019 +0000
@@ -31,7 +31,7 @@
  * This class represents the type of a local variable or item on stack
  * used in the StackMap entries.
  *
- * @version $Id: StackMapType.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  * @see     StackMapEntry
  * @see     StackMap
  * @see     Const
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Synthetic.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Synthetic.java	Wed Jun 26 05:49:59 2019 +0000
@@ -36,7 +36,7 @@
  * is intended to be instantiated from the
  * <em>Attribute.readAttribute()</em> method.
  *
- * @version $Id: Synthetic.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  * @see     Attribute
  */
 public final class Synthetic extends Attribute {
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Unknown.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Unknown.java	Wed Jun 26 05:49:59 2019 +0000
@@ -38,7 +38,7 @@
  * {@link Attribute#addAttributeReader(String, UnknownAttributeReader)}.
 
  *
- * @version $Id: Unknown.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  * @see Attribute
  * @see UnknownAttributeReader
  */
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/UnknownAttributeReader.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/UnknownAttributeReader.java	Wed Jun 26 05:49:59 2019 +0000
@@ -27,7 +27,7 @@
  * method. These factory objects should implement this interface.
  *
  * @see Attribute
- * @version $Id: UnknownAttributeReader.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  * @since 6.0
  */
 public interface UnknownAttributeReader {
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Utility.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Utility.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -42,32 +42,32 @@
 /**
  * Utility functions that do not really belong to any class in particular.
  *
- * @version $Id: Utility.java 1751107 2016-07-03 02:41:18Z dbrosius $
- * @LastModified: Oct 2017
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 // @since 6.0 methods are no longer final
 public abstract class Utility {
 
-    private static int unwrap(final ThreadLocal<Integer> tl) {
-        return tl.get().intValue();
+    private static int unwrap( final ThreadLocal<Integer> tl ) {
+        return tl.get();
     }
 
-    private static void wrap(final ThreadLocal<Integer> tl, final int value) {
-        tl.set(Integer.valueOf(value));
+
+    private static void wrap( final ThreadLocal<Integer> tl, final int value ) {
+        tl.set(value);
     }
 
     private static ThreadLocal<Integer> consumed_chars = new ThreadLocal<Integer>() {
 
         @Override
         protected Integer initialValue() {
-            return Integer.valueOf(0);
+            return 0;
         }
     };/* How many chars have been consumed
      * during parsing in signatureToString().
      * Read by methodSignatureToString().
      * Set by side effect,but only internally.
      */
-
     private static boolean wide = false; /* The `WIDE' instruction is used in the
      * byte code to allow 16-bit wide indices
      * for local variables. This opcode
@@ -82,25 +82,27 @@
     /**
      * Convert bit field of flags into string such as `static final'.
      *
-     * @param access_flags Access flags
+     * @param  access_flags Access flags
      * @return String representation of flags
      */
-    public static String accessToString(final int access_flags) {
+    public static String accessToString( final int access_flags ) {
         return accessToString(access_flags, false);
     }
 
+
     /**
      * Convert bit field of flags into string such as `static final'.
      *
      * Special case: Classes compiled with new compilers and with the
-     * `ACC_SUPER' flag would be said to be "synchronized". This is because SUN
-     * used the same value for the flags `ACC_SUPER' and `ACC_SYNCHRONIZED'.
+     * `ACC_SUPER' flag would be said to be "synchronized". This is
+     * because SUN used the same value for the flags `ACC_SUPER' and
+     * `ACC_SYNCHRONIZED'.
      *
-     * @param access_flags Access flags
-     * @param for_class access flags are for class qualifiers ?
+     * @param  access_flags Access flags
+     * @param  for_class access flags are for class qualifiers ?
      * @return String representation of flags
      */
-    public static String accessToString(final int access_flags, final boolean for_class) {
+    public static String accessToString( final int access_flags, final boolean for_class ) {
         final StringBuilder buf = new StringBuilder();
         int p = 0;
         for (int i = 0; p < Const.MAX_ACC_FLAG; i++) { // Loop through known flags
@@ -120,33 +122,34 @@
         return buf.toString().trim();
     }
 
+
     /**
      * @param access_flags the class flags
      *
      * @return "class" or "interface", depending on the ACC_INTERFACE flag
      */
-    public static String classOrInterface(final int access_flags) {
+    public static String classOrInterface( final int access_flags ) {
         return ((access_flags & Const.ACC_INTERFACE) != 0) ? "interface" : "class";
     }
 
+
     /**
      * Disassemble a byte array of JVM byte codes starting from code line
      * `index' and return the disassembled string representation. Decode only
-     * `num' opcodes (including their operands), use -1 if you want to decompile
-     * everything.
+     * `num' opcodes (including their operands), use -1 if you want to
+     * decompile everything.
      *
-     * @param code byte code array
-     * @param constant_pool Array of constants
-     * @param index offset in `code' array
+     * @param  code byte code array
+     * @param  constant_pool Array of constants
+     * @param  index offset in `code' array
      * <EM>(number of opcodes, not bytes!)</EM>
-     * @param length number of opcodes to decompile, -1 for all
-     * @param verbose be verbose, e.g. print constant pool index
+     * @param  length number of opcodes to decompile, -1 for all
+     * @param  verbose be verbose, e.g. print constant pool index
      * @return String representation of byte codes
      */
-    public static String codeToString(final byte[] code, final ConstantPool constant_pool,
-            final int index, final int length, final boolean verbose) {
-        // Should be sufficient // CHECKSTYLE IGNORE MagicNumber
-        final StringBuilder buf = new StringBuilder(code.length * 20);
+    public static String codeToString( final byte[] code, final ConstantPool constant_pool, final int index,
+            final int length, final boolean verbose ) {
+        final StringBuilder buf = new StringBuilder(code.length * 20); // Should be sufficient // CHECKSTYLE IGNORE MagicNumber
         try (ByteSequence stream = new ByteSequence(code)) {
             for (int i = 0; i < index; i++) {
                 codeToString(stream, constant_pool, verbose);
@@ -154,9 +157,7 @@
             for (int i = 0; stream.available() > 0; i++) {
                 if ((length < 0) || (i < length)) {
                     final String indices = fillup(stream.getIndex() + ":", 6, true, ' ');
-                    buf.append(indices)
-                            .append(codeToString(stream, constant_pool, verbose))
-                            .append('\n');
+                    buf.append(indices).append(codeToString(stream, constant_pool, verbose)).append('\n');
                 }
             }
         } catch (final IOException e) {
@@ -165,21 +166,22 @@
         return buf.toString();
     }
 
-    public static String codeToString(final byte[] code, final ConstantPool constant_pool,
-            final int index, final int length) {
+
+    public static String codeToString( final byte[] code, final ConstantPool constant_pool, final int index, final int length ) {
         return codeToString(code, constant_pool, index, length, true);
     }
 
+
     /**
-     * Disassemble a stream of byte codes and return the string representation.
+     * Disassemble a stream of byte codes and return the
+     * string representation.
      *
-     * @param bytes stream of bytes
-     * @param constant_pool Array of constants
-     * @param verbose be verbose, e.g. print constant pool index
+     * @param  bytes stream of bytes
+     * @param  constant_pool Array of constants
+     * @param  verbose be verbose, e.g. print constant pool index
      * @return String representation of byte code
      *
-     * @throws IOException if a failure from reading from the bytes argument
-     * occurs
+     * @throws IOException if a failure from reading from the bytes argument occurs
      */
     @SuppressWarnings("fallthrough") // by design for case Const.INSTANCEOF
     public static String codeToString(final ByteSequence bytes, final ConstantPool constant_pool,
@@ -253,7 +255,7 @@
                 }
                 buf.append(")");
             }
-            break;
+                break;
             /* Two address bytes + offset from start of byte stream form the
              * jump target
              */
@@ -327,14 +329,14 @@
                 index = bytes.readUnsignedShort();
                 buf.append("\t\t").append(
                         constant_pool.constantToString(index, Const.CONSTANT_Fieldref)).append(
-                                verbose ? " (" + index + ")" : "");
+                        verbose ? " (" + index + ")" : "");
                 break;
             /* Operands are references to classes in constant pool
              */
             case Const.NEW:
             case Const.CHECKCAST:
                 buf.append("\t");
-            //$FALL-THROUGH$
+                //$FALL-THROUGH$
             case Const.INSTANCEOF:
                 index = bytes.readUnsignedShort();
                 buf.append("\t<").append(
@@ -364,7 +366,7 @@
                 final int nargs = bytes.readUnsignedByte(); // historical, redundant
                 buf.append("\t").append(
                         constant_pool
-                        .constantToString(index, Const.CONSTANT_InterfaceMethodref))
+                                .constantToString(index, Const.CONSTANT_InterfaceMethodref))
                         .append(verbose ? " (" + index + ")\t" : "").append(nargs).append("\t")
                         .append(bytes.readUnsignedByte()); // Last byte is a reserved space
                 break;
@@ -372,9 +374,9 @@
                 index = bytes.readUnsignedShort();
                 buf.append("\t").append(
                         constant_pool
-                        .constantToString(index, Const.CONSTANT_InvokeDynamic))
+                                .constantToString(index, Const.CONSTANT_InvokeDynamic))
                         .append(verbose ? " (" + index + ")\t" : "")
-                        .append(bytes.readUnsignedByte()) // Thrid byte is a reserved space
+                        .append(bytes.readUnsignedByte())  // Thrid byte is a reserved space
                         .append(bytes.readUnsignedByte()); // Last byte is a reserved space
                 break;
             /* Operands are references to items in constant pool
@@ -398,8 +400,8 @@
                 index = bytes.readUnsignedShort();
                 buf.append("\t\t<").append(
                         compactClassName(constant_pool.getConstantString(index,
-                                        Const.CONSTANT_Class), false)).append(">").append(
-                                verbose ? " (" + index + ")" : "");
+                                Const.CONSTANT_Class), false)).append(">").append(
+                        verbose ? " (" + index + ")" : "");
                 break;
             /* Multidimensional array of references.
              */
@@ -408,10 +410,10 @@
                 final int dimensions = bytes.readUnsignedByte();
                 buf.append("\t<").append(
                         compactClassName(constant_pool.getConstantString(index,
-                                        Const.CONSTANT_Class), false)).append(">\t").append(dimensions)
+                                Const.CONSTANT_Class), false)).append(">\t").append(dimensions)
                         .append(verbose ? " (" + index + ")" : "");
             }
-            break;
+                break;
             /* Increment local variable.
              */
             case Const.IINC:
@@ -448,11 +450,13 @@
         return buf.toString();
     }
 
-    public static String codeToString(final ByteSequence bytes, final ConstantPool constant_pool)
+
+    public static String codeToString( final ByteSequence bytes, final ConstantPool constant_pool )
             throws IOException {
         return codeToString(bytes, constant_pool, true);
     }
 
+
     /**
      * Shorten long class names, <em>java/lang/String</em> becomes
      * <em>String</em>.
@@ -460,21 +464,23 @@
      * @param str The long class name
      * @return Compacted class name
      */
-    public static String compactClassName(final String str) {
+    public static String compactClassName( final String str ) {
         return compactClassName(str, true);
     }
 
+
     /**
      * Shorten long class name <em>str</em>, i.e., chop off the <em>prefix</em>,
-     * if the class name starts with this string and the flag <em>chopit</em> is
-     * true. Slashes <em>/</em> are converted to dots <em>.</em>.
+     * if the
+     * class name starts with this string and the flag <em>chopit</em> is true.
+     * Slashes <em>/</em> are converted to dots <em>.</em>.
      *
      * @param str The long class name
      * @param prefix The prefix the get rid off
      * @param chopit Flag that determines whether chopping is executed or not
      * @return Compacted class name
      */
-    public static String compactClassName(String str, final String prefix, final boolean chopit) {
+    public static String compactClassName( String str, final String prefix, final boolean chopit ) {
         final int len = prefix.length();
         str = str.replace('/', '.'); // Is `/' on all systems, even DOS
         if (chopit) {
@@ -486,53 +492,58 @@
         return str;
     }
 
+
     /**
      * Shorten long class names, <em>java/lang/String</em> becomes
-     * <em>java.lang.String</em>, e.g.. If <em>chopit</em> is <em>true</em> the
-     * prefix <em>java.lang</em>
+     * <em>java.lang.String</em>,
+     * e.g.. If <em>chopit</em> is <em>true</em> the prefix <em>java.lang</em>
      * is also removed.
      *
      * @param str The long class name
      * @param chopit Flag that determines whether chopping is executed or not
      * @return Compacted class name
      */
-    public static String compactClassName(final String str, final boolean chopit) {
+    public static String compactClassName( final String str, final boolean chopit ) {
         return compactClassName(str, "java.lang.", chopit);
     }
 
+
     /**
      * @return `flag' with bit `i' set to 1
      */
-    public static int setBit(final int flag, final int i) {
+    public static int setBit( final int flag, final int i ) {
         return flag | pow2(i);
     }
 
+
     /**
      * @return `flag' with bit `i' set to 0
      */
-    public static int clearBit(final int flag, final int i) {
+    public static int clearBit( final int flag, final int i ) {
         final int bit = pow2(i);
         return (flag & bit) == 0 ? flag : flag ^ bit;
     }
 
+
     /**
      * @return true, if bit `i' in `flag' is set
      */
-    public static boolean isSet(final int flag, final int i) {
+    public static boolean isSet( final int flag, final int i ) {
         return (flag & pow2(i)) != 0;
     }
 
+
     /**
-     * Converts string containing the method return and argument types to a byte
-     * code method signature.
+     * Converts string containing the method return and argument types
+     * to a byte code method signature.
      *
-     * @param ret Return type of method
-     * @param argv Types of method arguments
+     * @param  ret Return type of method
+     * @param  argv Types of method arguments
      * @return Byte code representation of method signature
      *
      * @throws ClassFormatException if the signature is for Void
      */
-    public static String methodTypeToSignature(final String ret, final String[] argv)
+    public static String methodTypeToSignature( final String ret, final String[] argv )
             throws ClassFormatException {
         final StringBuilder buf = new StringBuilder("(");
         String str;
@@ -550,23 +561,25 @@
         return buf.toString();
     }
 
+
     /**
-     * @param signature Method signature
+     * @param  signature    Method signature
      * @return Array of argument types
-     * @throws ClassFormatException
+     * @throws  ClassFormatException
      */
-    public static String[] methodSignatureArgumentTypes(final String signature)
+    public static String[] methodSignatureArgumentTypes( final String signature )
             throws ClassFormatException {
         return methodSignatureArgumentTypes(signature, true);
     }
 
+
     /**
-     * @param signature Method signature
+     * @param  signature    Method signature
      * @param chopit Shorten class names ?
      * @return Array of argument types
-     * @throws ClassFormatException
+     * @throws  ClassFormatException
      */
-    public static String[] methodSignatureArgumentTypes(final String signature, final boolean chopit)
+    public static String[] methodSignatureArgumentTypes( final String signature, final boolean chopit )
             throws ClassFormatException {
         final List<String> vec = new ArrayList<>();
         int index;
@@ -586,24 +599,24 @@
         return vec.toArray(new String[vec.size()]);
     }
 
+
     /**
-     * @param signature Method signature
+     * @param  signature    Method signature
      * @return return type of method
-     * @throws ClassFormatException
+     * @throws  ClassFormatException
      */
-    public static String methodSignatureReturnType(final String signature)
-            throws ClassFormatException {
+    public static String methodSignatureReturnType( final String signature ) throws ClassFormatException {
         return methodSignatureReturnType(signature, true);
     }
 
+
     /**
-     * @param signature Method signature
+     * @param  signature    Method signature
      * @param chopit Shorten class names ?
      * @return return type of method
-     * @throws ClassFormatException
+     * @throws  ClassFormatException
      */
-    public static String methodSignatureReturnType(final String signature,
-            final boolean chopit) throws ClassFormatException {
+    public static String methodSignatureReturnType( final String signature, final boolean chopit ) throws ClassFormatException {
         int index;
         String type;
         try {
@@ -616,6 +629,7 @@
         return type;
     }
 
+
     /**
      * Converts method signature to string with all class names compacted.
      *
@@ -624,27 +638,27 @@
      * @param access flags of method
      * @return Human readable signature
      */
-    public static String methodSignatureToString(final String signature,
-            final String name, final String access) {
+    public static String methodSignatureToString( final String signature, final String name, final String access ) {
         return methodSignatureToString(signature, name, access, true);
     }
 
-    public static String methodSignatureToString(final String signature,
-            final String name, final String access, final boolean chopit) {
+
+    public static String methodSignatureToString( final String signature, final String name, final String access, final boolean chopit ) {
         return methodSignatureToString(signature, name, access, chopit, null);
     }
 
+
     /**
-     * A returntype signature represents the return value from a method. It is a
-     * series of bytes in the following grammar:
+     * A returntype signature represents the return value from a method.
+     * It is a series of bytes in the following grammar:
      *
      * <pre>
      * &lt;return_signature&gt; ::= &lt;field_type&gt; | V
      * </pre>
      *
-     * The character V indicates that the method returns no value. Otherwise,
-     * the signature indicates the type of the return value. An argument
-     * signature represents an argument passed to a method:
+     * The character V indicates that the method returns no value. Otherwise, the
+     * signature indicates the type of the return value.
+     * An argument signature represents an argument passed to a method:
      *
      * <pre>
      * &lt;argument_signature&gt; ::= &lt;field_type&gt;
@@ -661,17 +675,16 @@
      * `void main(String[])' and throws a `ClassFormatException' when the parsed
      * type is invalid.
      *
-     * @param signature Method signature
-     * @param name Method name
-     * @param access Method access rights
+     * @param  signature    Method signature
+     * @param  name         Method name
+     * @param  access       Method access rights
      * @param chopit
      * @param vars
      * @return Java type declaration
-     * @throws ClassFormatException
+     * @throws  ClassFormatException
      */
-    public static String methodSignatureToString(final String signature, final String name,
-            final String access, final boolean chopit, final LocalVariableTable vars)
-            throws ClassFormatException {
+    public static String methodSignatureToString( final String signature, final String name,
+            final String access, final boolean chopit, final LocalVariableTable vars ) throws ClassFormatException {
         final StringBuilder buf = new StringBuilder("(");
         String type;
         int index;
@@ -715,21 +728,22 @@
                 type + " " + name + buf.toString();
     }
 
+
     // Guess what this does
-    private static int pow2(final int n) {
+    private static int pow2( final int n ) {
         return 1 << n;
     }
 
+
     /**
-     * Replace all occurrences of <em>old</em> in <em>str</em> with
-     * <em>new</em>.
+     * Replace all occurrences of <em>old</em> in <em>str</em> with <em>new</em>.
      *
      * @param str String to permute
      * @param old String to be replaced
      * @param new_ Replacement string
      * @return new String object
      */
-    public static String replace(String str, final String old, final String new_) {
+    public static String replace( String str, final String old, final String new_ ) {
         int index;
         int old_index;
         try {
@@ -751,16 +765,18 @@
         return str;
     }
 
+
     /**
      * Converts signature to string with all class names compacted.
      *
      * @param signature to convert
      * @return Human readable signature
      */
-    public static String signatureToString(final String signature) {
+    public static String signatureToString( final String signature ) {
         return signatureToString(signature, true);
     }
 
+
     /**
      * The field signature represents the value of an argument to a function or
      * the value of a variable. It is a series of bytes generated by the
@@ -790,12 +806,12 @@
      * `String[]' and throws a `ClassFormatException' when the parsed type is
      * invalid.
      *
-     * @param signature Class signature
+     * @param  signature  Class signature
      * @param chopit Flag that determines whether chopping is executed or not
      * @return Java type declaration
      * @throws ClassFormatException
      */
-    public static String signatureToString(final String signature, final boolean chopit) {
+    public static String signatureToString( final String signature, final boolean chopit ) {
         //corrected concurrent private static field acess
         wrap(consumed_chars, 1); // This is the default, read just one char like `B'
         try {
@@ -837,6 +853,7 @@
                     if (index < 0) {
                         throw new ClassFormatException("Invalid signature: " + signature);
                     }
+
                     // check to see if there are any TypeArguments
                     final int bracketIndex = signature.substring(0, index).indexOf('<');
                     if (bracketIndex < 0) {
@@ -844,12 +861,20 @@
                         wrap(consumed_chars, index + 1); // "Lblabla;" `L' and `;' are removed
                         return compactClassName(signature.substring(1, index), chopit);
                     }
+                    // but make sure we are not looking past the end of the current item
+                    fromIndex = signature.indexOf(';');
+                    if (fromIndex < 0) {
+                        throw new ClassFormatException("Invalid signature: " + signature);
+                    }
+                    if (fromIndex < bracketIndex) {
+                        // just a class identifier
+                        wrap(consumed_chars, fromIndex + 1); // "Lblabla;" `L' and `;' are removed
+                        return compactClassName(signature.substring(1, fromIndex), chopit);
+                    }
 
                     // we have TypeArguments; build up partial result
                     // as we recurse for each TypeArgument
-                    final StringBuilder type = new StringBuilder(
-                            compactClassName(signature.substring(1, bracketIndex), chopit))
-                            .append("<");
+                    final StringBuilder type = new StringBuilder(compactClassName(signature.substring(1, bracketIndex), chopit)).append("<");
                     int consumed_chars = bracketIndex + 1; // Shadows global var
 
                     // check for wildcards
@@ -859,37 +884,63 @@
                     } else if (signature.charAt(consumed_chars) == '-') {
                         type.append("? super ");
                         consumed_chars++;
-                    } else if (signature.charAt(consumed_chars) == '*') {
-                        // must be at end of signature
-                        if (signature.charAt(consumed_chars + 1) != '>') {
-                            throw new ClassFormatException("Invalid signature: " + signature);
-                        }
-                        if (signature.charAt(consumed_chars + 2) != ';') {
-                            throw new ClassFormatException("Invalid signature: " + signature);
-                        }
-                        wrap(Utility.consumed_chars, consumed_chars + 3); // remove final "*>;"
-                        return type + "?>...";
                     }
 
                     // get the first TypeArgument
-                    type.append(signatureToString(signature.substring(consumed_chars), chopit));
-                    // update our consumed count by the number of characters the for type argument
-                    consumed_chars = unwrap(Utility.consumed_chars) + consumed_chars;
-                    wrap(Utility.consumed_chars, consumed_chars);
-
-                    // are there more TypeArguments?
-                    while (signature.charAt(consumed_chars) != '>') {
-                        type.append(", ").append(signatureToString(signature.substring(consumed_chars), chopit));
+                    if (signature.charAt(consumed_chars) == '*') {
+                        type.append("?");
+                        consumed_chars++;
+                    } else {
+                        type.append(signatureToString(signature.substring(consumed_chars), chopit));
                         // update our consumed count by the number of characters the for type argument
                         consumed_chars = unwrap(Utility.consumed_chars) + consumed_chars;
                         wrap(Utility.consumed_chars, consumed_chars);
                     }
 
-                    if (signature.charAt(consumed_chars + 1) != ';') {
+                    // are there more TypeArguments?
+                    while (signature.charAt(consumed_chars) != '>') {
+                        type.append(", ");
+                        // check for wildcards
+                        if (signature.charAt(consumed_chars) == '+') {
+                            type.append("? extends ");
+                            consumed_chars++;
+                        } else if (signature.charAt(consumed_chars) == '-') {
+                            type.append("? super ");
+                            consumed_chars++;
+                        }
+                        if (signature.charAt(consumed_chars) == '*') {
+                            type.append("?");
+                            consumed_chars++;
+                        } else {
+                            type.append(signatureToString(signature.substring(consumed_chars), chopit));
+                            // update our consumed count by the number of characters the for type argument
+                            consumed_chars = unwrap(Utility.consumed_chars) + consumed_chars;
+                            wrap(Utility.consumed_chars, consumed_chars);
+                        }
+                    }
+
+                    // process the closing ">"
+                    consumed_chars++;
+                    type.append(">");
+
+                    if (signature.charAt(consumed_chars) == '.') {
+                        // we have a ClassTypeSignatureSuffix
+                        type.append(".");
+                        // convert SimpleClassTypeSignature to fake ClassTypeSignature
+                        // and then recurse to parse it
+                        type.append(signatureToString("L" + signature.substring(consumed_chars+1), chopit));
+                        // update our consumed count by the number of characters the for type argument
+                        // note that this count includes the "L" we added, but that is ok
+                        // as it accounts for the "." we didn't consume
+                        consumed_chars = unwrap(Utility.consumed_chars) + consumed_chars;
+                        wrap(Utility.consumed_chars, consumed_chars);
+                        return type.toString();
+                    }
+                    if (signature.charAt(consumed_chars) != ';') {
                         throw new ClassFormatException("Invalid signature: " + signature);
                     }
-                    wrap(Utility.consumed_chars, consumed_chars + 2); // remove final ">;"
-                    return type.append(">").toString();
+                    wrap(Utility.consumed_chars, consumed_chars + 1); // remove final ";"
+                    return type.toString();
                 }
                 case 'S':
                     return "short";
@@ -924,22 +975,20 @@
         }
     }
 
-    /**
-     * Parse Java type such as "char", or "java.lang.String[]" and return the
-     * signature in byte code format, e.g. "C" or "[Ljava/lang/String;"
-     * respectively.
+
+    /** Parse Java type such as "char", or "java.lang.String[]" and return the
+     * signature in byte code format, e.g. "C" or "[Ljava/lang/String;" respectively.
      *
-     * @param type Java type
+     * @param  type Java type
      * @return byte code signature
      */
-    public static String getSignature(String type) {
+    public static String getSignature( String type ) {
         final StringBuilder buf = new StringBuilder();
         final char[] chars = type.toCharArray();
         boolean char_found = false;
         boolean delim = false;
         int index = -1;
-        loop:
-        for (int i = 0; i < chars.length; i++) {
+        loop: for (int i = 0; i < chars.length; i++) {
             switch (chars[i]) {
                 case ' ':
                 case '\t':
@@ -985,7 +1034,8 @@
         return buf.toString();
     }
 
-    private static int countBrackets(final String brackets) {
+
+    private static int countBrackets( final String brackets ) {
         final char[] chars = brackets.toCharArray();
         int count = 0;
         boolean open = false;
@@ -1015,17 +1065,17 @@
         return count;
     }
 
+
     /**
-     * Return type of method signature as a byte value as defined in
-     * <em>Constants</em>
+     * Return type of method signature as a byte value as defined in <em>Constants</em>
      *
-     * @param signature in format described above
+     * @param  signature in format described above
      * @return type of method signature
-     * @see Const
+     * @see    Const
      *
      * @throws ClassFormatException if signature is not a method signature
      */
-    public static byte typeOfMethodSignature(final String signature) throws ClassFormatException {
+    public static byte typeOfMethodSignature( final String signature ) throws ClassFormatException {
         int index;
         try {
             if (signature.charAt(0) != '(') {
@@ -1038,16 +1088,17 @@
         }
     }
 
+
     /**
      * Return type of signature as a byte value as defined in <em>Constants</em>
      *
-     * @param signature in format described above
+     * @param  signature in format described above
      * @return type of signature
-     * @see Const
+     * @see    Const
      *
      * @throws ClassFormatException if signature isn't a known type
      */
-    public static byte typeOfSignature(final String signature) throws ClassFormatException {
+    public static byte typeOfSignature( final String signature ) throws ClassFormatException {
         try {
             switch (signature.charAt(0)) {
                 case 'B':
@@ -1085,11 +1136,10 @@
         }
     }
 
-    /**
-     * Map opcode names to opcode numbers. E.g., return Constants.ALOAD for
-     * "aload"
+
+    /** Map opcode names to opcode numbers. E.g., return Constants.ALOAD for "aload"
      */
-    public static short searchOpcode(String name) {
+    public static short searchOpcode( String name ) {
         name = name.toLowerCase(Locale.ENGLISH);
         for (short i = 0; i < Const.OPCODE_NAMES_LENGTH; i++) {
             if (Const.getOpcodeName(i).equals(name)) {
@@ -1099,22 +1149,23 @@
         return -1;
     }
 
+
     /**
      * Convert (signed) byte to (unsigned) short value, i.e., all negative
      * values become positive.
      */
-    private static short byteToShort(final byte b) {
+    private static short byteToShort( final byte b ) {
         return (b < 0) ? (short) (256 + b) : (short) b;
     }
 
-    /**
-     * Convert bytes into hexadecimal string
+
+    /** Convert bytes into hexadecimal string
      *
      * @param bytes an array of bytes to convert to hexadecimal
      *
      * @return bytes as hexadecimal string, e.g. 00 fa 12 ...
      */
-    public static String toHexString(final byte[] bytes) {
+    public static String toHexString( final byte[] bytes ) {
         final StringBuilder buf = new StringBuilder();
         for (int i = 0; i < bytes.length; i++) {
             final short b = byteToShort(bytes[i]);
@@ -1130,6 +1181,7 @@
         return buf.toString();
     }
 
+
     /**
      * Return a string for an integer justified left or right and filled up with
      * `fill' characters if necessary.
@@ -1140,14 +1192,13 @@
      * @param fill fill character
      * @return formatted int
      */
-    public static String format(final int i, final int length,
-            final boolean left_justify, final char fill) {
+    public static String format( final int i, final int length, final boolean left_justify, final char fill ) {
         return fillup(Integer.toString(i), length, left_justify, fill);
     }
 
+
     /**
-     * Fillup char with up to length characters with char `fill' and justify it
-     * left or right.
+     * Fillup char with up to length characters with char `fill' and justify it left or right.
      *
      * @param str string to format
      * @param length length of desired string
@@ -1155,8 +1206,7 @@
      * @param fill fill character
      * @return formatted string
      */
-    public static String fillup(final String str, final int length,
-            final boolean left_justify, final char fill) {
+    public static String fillup( final String str, final int length, final boolean left_justify, final char fill ) {
         final int len = length - str.length();
         final char[] buf = new char[(len < 0) ? 0 : len];
         for (int j = 0; j < buf.length; j++) {
@@ -1168,7 +1218,8 @@
         return new String(buf) + str;
     }
 
-    static boolean equals(final byte[] a, final byte[] b) {
+
+    static boolean equals( final byte[] a, final byte[] b ) {
         int size;
         if ((size = a.length) != b.length) {
             return false;
@@ -1181,23 +1232,28 @@
         return true;
     }
 
-    public static void printArray(final PrintStream out, final Object[] obj) {
+
+    public static void printArray( final PrintStream out, final Object[] obj ) {
         out.println(printArray(obj, true));
     }
 
-    public static void printArray(final PrintWriter out, final Object[] obj) {
+
+    public static void printArray( final PrintWriter out, final Object[] obj ) {
         out.println(printArray(obj, true));
     }
 
-    public static String printArray(final Object[] obj) {
+
+    public static String printArray( final Object[] obj ) {
         return printArray(obj, true);
     }
 
-    public static String printArray(final Object[] obj, final boolean braces) {
+
+    public static String printArray( final Object[] obj, final boolean braces ) {
         return printArray(obj, braces, false);
     }
 
-    public static String printArray(final Object[] obj, final boolean braces, final boolean quote) {
+
+    public static String printArray( final Object[] obj, final boolean braces, final boolean quote ) {
         if (obj == null) {
             return null;
         }
@@ -1221,32 +1277,32 @@
         return buf.toString();
     }
 
+
     /**
      * @param ch the character to test if it's part of an identifier
      *
      * @return true, if character is one of (a, ... z, A, ... Z, 0, ... 9, _)
      */
-    public static boolean isJavaIdentifierPart(final char ch) {
+    public static boolean isJavaIdentifierPart( final char ch ) {
         return ((ch >= 'a') && (ch <= 'z')) || ((ch >= 'A') && (ch <= 'Z'))
                 || ((ch >= '0') && (ch <= '9')) || (ch == '_');
     }
 
+
     /**
-     * Encode byte array it into Java identifier string, i.e., a string that
-     * only contains the following characters: (a, ... z, A, ... Z, 0, ... 9, _,
-     * $). The encoding algorithm itself is not too clever: if the current
-     * byte's ASCII value already is a valid Java identifier part, leave it as
-     * it is. Otherwise it writes the escape character($) followed by:
+     * Encode byte array it into Java identifier string, i.e., a string
+     * that only contains the following characters: (a, ... z, A, ... Z,
+     * 0, ... 9, _, $).  The encoding algorithm itself is not too
+     * clever: if the current byte's ASCII value already is a valid Java
+     * identifier part, leave it as it is. Otherwise it writes the
+     * escape character($) followed by:
      *
      * <ul>
-     * <li> the ASCII value as a hexadecimal string, if the value is not in the
-     * range 200..247</li>
-     * <li>a Java identifier char not used in a lowercase hexadecimal string, if
-     * the value is in the range 200..247</li>
+     *   <li> the ASCII value as a hexadecimal string, if the value is not in the range 200..247</li>
+     *   <li>a Java identifier char not used in a lowercase hexadecimal string, if the value is in the range 200..247</li>
      * </ul>
      *
-     * <p>
-     * This operation inflates the original byte array by roughly 40-50%</p>
+     * <p>This operation inflates the original byte array by roughly 40-50%</p>
      *
      * @param bytes the byte array to convert
      * @param compress use gzip to minimize string
@@ -1271,6 +1327,7 @@
         return caw.toString();
     }
 
+
     /**
      * Decode a string back to a byte array.
      *
@@ -1308,7 +1365,6 @@
     private static int[] CHAR_MAP = new int[FREE_CHARS];
     private static int[] MAP_CHAR = new int[256]; // Reverse map
     private static final char ESCAPE_CHAR = '$';
-
     static {
         int j = 0;
         for (int i = 'A'; i <= 'Z'; i++) {
@@ -1329,8 +1385,8 @@
     }
 
     /**
-     * Decode characters into bytes. Used by <a
-     * href="Utility.html#decode(java.lang.String, boolean)">decode()</a>
+     * Decode characters into bytes.
+     * Used by <a href="Utility.html#decode(java.lang.String, boolean)">decode()</a>
      */
     private static class JavaReader extends FilterReader {
 
@@ -1338,6 +1394,7 @@
             super(in);
         }
 
+
         @Override
         public int read() throws IOException {
             final int b = in.read();
@@ -1354,7 +1411,7 @@
                     return -1;
                 }
                 final char[] tmp = {
-                    (char) i, (char) j
+                        (char) i, (char) j
                 };
                 final int s = Integer.parseInt(new String(tmp), 16);
                 return s;
@@ -1362,8 +1419,9 @@
             return MAP_CHAR[i];
         }
 
+
         @Override
-        public int read(final char[] cbuf, final int off, final int len) throws IOException {
+        public int read( final char[] cbuf, final int off, final int len ) throws IOException {
             for (int i = 0; i < len; i++) {
                 cbuf[off + i] = (char) read();
             }
@@ -1372,8 +1430,8 @@
     }
 
     /**
-     * Encode bytes into valid java identifier characters. Used by <a
-     * href="Utility.html#encode(byte[], boolean)">encode()</a>
+     * Encode bytes into valid java identifier characters.
+     * Used by <a href="Utility.html#encode(byte[], boolean)">encode()</a>
      */
     private static class JavaWriter extends FilterWriter {
 
@@ -1381,8 +1439,9 @@
             super(out);
         }
 
+
         @Override
-        public void write(final int b) throws IOException {
+        public void write( final int b ) throws IOException {
             if (isJavaIdentifierPart((char) b) && (b != ESCAPE_CHAR)) {
                 out.write(b);
             } else {
@@ -1403,23 +1462,26 @@
             }
         }
 
+
         @Override
-        public void write(final char[] cbuf, final int off, final int len) throws IOException {
+        public void write( final char[] cbuf, final int off, final int len ) throws IOException {
             for (int i = 0; i < len; i++) {
                 write(cbuf[off + i]);
             }
         }
 
+
         @Override
-        public void write(final String str, final int off, final int len) throws IOException {
+        public void write( final String str, final int off, final int len ) throws IOException {
             write(str.toCharArray(), off, len);
         }
     }
 
+
     /**
      * Escape all occurences of newline chars '\n', quotes \", etc.
      */
-    public static String convertString(final String label) {
+    public static String convertString( final String label ) {
         final char[] ch = label.toCharArray();
         final StringBuilder buf = new StringBuilder();
         for (final char element : ch) {
@@ -1446,4 +1508,5 @@
         }
         return buf.toString();
     }
+
 }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Visitor.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Visitor.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,7 +26,7 @@
  * that implements this interface can traverse the contents of a Java class just
  * by calling the `accept' method which all classes have.
  *
- * @version $Id: Visitor.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public interface Visitor
 {
@@ -150,4 +150,21 @@
      * @since 6.0
      */
     void visitParameterAnnotationEntry(ParameterAnnotationEntry obj);
+
+    /**
+     * @since 6.1
+     */
+    void visitConstantPackage(ConstantPackage constantPackage);
+
+    /**
+     * @since 6.1
+     */
+    void visitConstantModule(ConstantModule constantModule);
+
+    /**
+     * @since 6.3
+     */
+    default void visitConstantDynamic(ConstantDynamic constantDynamic) {
+        // empty
+    }
 }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/AALOAD.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/AALOAD.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * AALOAD - Load reference from array
  * <PRE>Stack: ..., arrayref, index -&gt; value</PRE>
  *
- * @version $Id: AALOAD.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class AALOAD extends ArrayInstruction implements StackProducer {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/AASTORE.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/AASTORE.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * AASTORE -  Store into reference array
  * <PRE>Stack: ..., arrayref, index, value -&gt; ...</PRE>
  *
- * @version $Id: AASTORE.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class AASTORE extends ArrayInstruction implements StackConsumer {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ACONST_NULL.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ACONST_NULL.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * ACONST_NULL - Push null reference
  * <PRE>Stack: ... -&gt; ..., null</PRE>
  *
- * @version $Id: ACONST_NULL.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class ACONST_NULL extends Instruction implements PushInstruction, TypedInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ALOAD.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ALOAD.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,6 +1,5 @@
 /*
- * reserved comment block
- * DO NOT REMOVE OR ALTER!
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -27,18 +26,20 @@
  * ALOAD - Load reference from local variable
  * <PRE>Stack: ... -&gt; ..., objectref</PRE>
  *
- * @version $Id: ALOAD.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public class ALOAD extends LoadInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     ALOAD() {
         super(Const.ALOAD, Const.ALOAD_0);
     }
 
+
     /** Load reference from local variable
      * @param n index of local variable
      */
@@ -46,6 +47,7 @@
         super(Const.ALOAD, Const.ALOAD_0, n);
     }
 
+
     /**
      * Call corresponding visitor method(s). The order is:
      * Call visitor methods of implemented interfaces first, then
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ANEWARRAY.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ANEWARRAY.java	Wed Jun 26 05:49:59 2019 +0000
@@ -27,14 +27,14 @@
  * ANEWARRAY -  Create new array of references
  * <PRE>Stack: ..., count -&gt; ..., arrayref</PRE>
  *
- * @version $Id: ANEWARRAY.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class ANEWARRAY extends CPInstruction implements LoadClass, AllocationInstruction,
         ExceptionThrower, StackConsumer, StackProducer {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     ANEWARRAY() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ARETURN.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ARETURN.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * ARETURN -  Return reference from method
  * <PRE>Stack: ..., objectref -&gt; &lt;empty&gt;</PRE>
  *
- * @version $Id: ARETURN.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class ARETURN extends ReturnInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ARRAYLENGTH.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ARRAYLENGTH.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -26,8 +26,8 @@
  * ARRAYLENGTH -  Get length of array
  * <PRE>Stack: ..., arrayref -&gt; ..., length</PRE>
  *
- * @version $Id: ARRAYLENGTH.java 1747278 2016-06-07 17:28:43Z britter $
- * @LastModified: Oct 2017
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public class ARRAYLENGTH extends Instruction
     implements ExceptionThrower, StackProducer, StackConsumer /* since 6.0 */ {
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ASTORE.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ASTORE.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,6 +1,5 @@
 /*
- * reserved comment block
- * DO NOT REMOVE OR ALTER!
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -26,37 +25,38 @@
  * ASTORE - Store reference into local variable
  * <PRE>Stack ..., objectref -&gt; ... </PRE>
  *
- * @version $Id: ASTORE.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public class ASTORE extends StoreInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     ASTORE() {
         super(Const.ASTORE, Const.ASTORE_0);
     }
 
-    /**
-     * Store reference into local variable
-     *
+
+    /** Store reference into local variable
      * @param n index of local variable
      */
     public ASTORE(final int n) {
         super(Const.ASTORE, Const.ASTORE_0, n);
     }
 
+
     /**
-     * Call corresponding visitor method(s). The order is: Call visitor methods
-     * of implemented interfaces first, then call methods according to the class
-     * hierarchy in descending order, i.e., the most specific visitXXX() call
-     * comes last.
+     * Call corresponding visitor method(s). The order is:
+     * Call visitor methods of implemented interfaces first, then
+     * call methods according to the class hierarchy in descending order,
+     * i.e., the most specific visitXXX() call comes last.
      *
      * @param v Visitor object
      */
     @Override
-    public void accept(final Visitor v) {
+    public void accept( final Visitor v ) {
         super.accept(v);
         v.visitASTORE(this);
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ATHROW.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ATHROW.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -26,8 +26,8 @@
  * ATHROW -  Throw exception
  * <PRE>Stack: ..., objectref -&gt; objectref</PRE>
  *
- * @version $Id: ATHROW.java 1747278 2016-06-07 17:28:43Z britter $
- * @LastModified: Oct 2017
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public class ATHROW extends Instruction implements UnconditionalBranch, ExceptionThrower {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/AllocationInstruction.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/AllocationInstruction.java	Wed Jun 26 05:49:59 2019 +0000
@@ -24,7 +24,7 @@
 /**
  * Denote family of instructions that allocates space in the heap.
  *
- * @version $Id: AllocationInstruction.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public interface AllocationInstruction {
 }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/AnnotationEntryGen.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/AnnotationEntryGen.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,6 +1,5 @@
 /*
- * reserved comment block
- * DO NOT REMOVE OR ALTER!
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -41,6 +40,7 @@
 
 /**
  * @since 6.0
+ * @LastModified: Jun 2019
  */
 public class AnnotationEntryGen {
     private int typeIndex;
@@ -263,8 +263,8 @@
 
             return newAttributes.toArray(new Attribute[newAttributes.size()]);
         } catch (final IOException e) {
-            System.err.println("IOException whilst processing annotations. " +
-                    e.getMessage());
+            System.err.println("IOException whilst processing annotations");
+            e.printStackTrace();
         }
         return null;
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ArithmeticInstruction.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ArithmeticInstruction.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,14 +26,14 @@
 /**
  * Super class for the family of arithmetic instructions.
  *
- * @version $Id: ArithmeticInstruction.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public abstract class ArithmeticInstruction extends Instruction implements TypedInstruction,
         StackProducer, StackConsumer {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     ArithmeticInstruction() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ArrayInstruction.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ArrayInstruction.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,14 +26,14 @@
 /**
  * Super class for instructions dealing with array access such as IALOAD.
  *
- * @version $Id: ArrayInstruction.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public abstract class ArrayInstruction extends Instruction implements ExceptionThrower,
         TypedInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     ArrayInstruction() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ArrayType.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ArrayType.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,13 +25,14 @@
 /**
  * Denotes array type, such as int[][]
  *
- * @version $Id: ArrayType.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  */
 public final class ArrayType extends ReferenceType {
 
     private int dimensions;
     private Type basic_type;
 
+
     /**
      * Convenience constructor for array type, e.g. int[]
      *
@@ -41,6 +42,7 @@
         this(BasicType.getType(type), dimensions);
     }
 
+
     /**
      * Convenience constructor for reference array type, e.g. Object[]
      *
@@ -50,6 +52,7 @@
         this(ObjectType.getInstance(class_name), dimensions);
     }
 
+
     /**
      * Constructor for array of given type
      *
@@ -81,6 +84,7 @@
         super.setSignature(buf.toString());
     }
 
+
     /**
      * @return basic type of array, i.e., for int[][][] the basic type is int
      */
@@ -88,9 +92,9 @@
         return basic_type;
     }
 
+
     /**
-     * @return element type of array, i.e., for int[][][] the element type is
-     * int[][]
+     * @return element type of array, i.e., for int[][][] the element type is int[][]
      */
     public Type getElementType() {
         if (dimensions == 1) {
@@ -99,26 +103,26 @@
         return new ArrayType(basic_type, dimensions - 1);
     }
 
-    /**
-     * @return number of dimensions of array
+
+    /** @return number of dimensions of array
      */
     public int getDimensions() {
         return dimensions;
     }
 
-    /**
-     * @return a hash code value for the object.
+
+    /** @return a hash code value for the object.
      */
     @Override
     public int hashCode() {
         return basic_type.hashCode() ^ dimensions;
     }
 
-    /**
-     * @return true if both type objects refer to the same array type.
+
+    /** @return true if both type objects refer to the same array type.
      */
     @Override
-    public boolean equals(final Object _type) {
+    public boolean equals( final Object _type ) {
         if (_type instanceof ArrayType) {
             final ArrayType array = (ArrayType) _type;
             return (array.dimensions == dimensions) && array.basic_type.equals(basic_type);
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/BALOAD.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/BALOAD.java	Wed Jun 26 05:49:59 2019 +0000
@@ -24,27 +24,27 @@
  * BALOAD - Load byte or boolean from array
  * <PRE>Stack: ..., arrayref, index -&gt; ..., value</PRE>
  *
- * @version $Id: BALOAD.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class BALOAD extends ArrayInstruction implements StackProducer {
 
-    /**
-     * Load byte or boolean from array
+    /** Load byte or boolean from array
      */
     public BALOAD() {
         super(com.sun.org.apache.bcel.internal.Const.BALOAD);
     }
 
+
     /**
-     * Call corresponding visitor method(s). The order is: Call visitor methods
-     * of implemented interfaces first, then call methods according to the class
-     * hierarchy in descending order, i.e., the most specific visitXXX() call
-     * comes last.
+     * Call corresponding visitor method(s). The order is:
+     * Call visitor methods of implemented interfaces first, then
+     * call methods according to the class hierarchy in descending order,
+     * i.e., the most specific visitXXX() call comes last.
      *
      * @param v Visitor object
      */
     @Override
-    public void accept(final Visitor v) {
+    public void accept( final Visitor v ) {
         v.visitStackProducer(this);
         v.visitExceptionThrower(this);
         v.visitTypedInstruction(this);
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/BASTORE.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/BASTORE.java	Wed Jun 26 05:49:59 2019 +0000
@@ -21,30 +21,30 @@
 package com.sun.org.apache.bcel.internal.generic;
 
 /**
- * BASTORE - Store into byte or boolean array
+ * BASTORE -  Store into byte or boolean array
  * <PRE>Stack: ..., arrayref, index, value -&gt; ...</PRE>
  *
- * @version $Id: BASTORE.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class BASTORE extends ArrayInstruction implements StackConsumer {
 
-    /**
-     * Store byte or boolean into array
+    /** Store byte or boolean into array
      */
     public BASTORE() {
         super(com.sun.org.apache.bcel.internal.Const.BASTORE);
     }
 
+
     /**
-     * Call corresponding visitor method(s). The order is: Call visitor methods
-     * of implemented interfaces first, then call methods according to the class
-     * hierarchy in descending order, i.e., the most specific visitXXX() call
-     * comes last.
+     * Call corresponding visitor method(s). The order is:
+     * Call visitor methods of implemented interfaces first, then
+     * call methods according to the class hierarchy in descending order,
+     * i.e., the most specific visitXXX() call comes last.
      *
      * @param v Visitor object
      */
     @Override
-    public void accept(final Visitor v) {
+    public void accept( final Visitor v ) {
         v.visitStackConsumer(this);
         v.visitExceptionThrower(this);
         v.visitTypedInstruction(this);
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/BIPUSH.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/BIPUSH.java	Wed Jun 26 05:49:59 2019 +0000
@@ -29,76 +29,82 @@
  *
  * <PRE>Stack: ... -&gt; ..., value</PRE>
  *
- * @version $Id: BIPUSH.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class BIPUSH extends Instruction implements ConstantPushInstruction {
 
     private byte b;
 
+
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     BIPUSH() {
     }
 
-    /**
-     * Push byte on stack
+
+    /** Push byte on stack
      */
     public BIPUSH(final byte b) {
         super(com.sun.org.apache.bcel.internal.Const.BIPUSH, (short) 2);
         this.b = b;
     }
 
+
     /**
      * Dump instruction as byte code to stream out.
      */
     @Override
-    public void dump(final DataOutputStream out) throws IOException {
+    public void dump( final DataOutputStream out ) throws IOException {
         super.dump(out);
         out.writeByte(b);
     }
 
+
     /**
      * @return mnemonic for instruction
      */
     @Override
-    public String toString(final boolean verbose) {
+    public String toString( final boolean verbose ) {
         return super.toString(verbose) + " " + b;
     }
 
+
     /**
      * Read needed data (e.g. index) from file.
      */
     @Override
-    protected void initFromFile(final ByteSequence bytes, final boolean wide) throws IOException {
+    protected void initFromFile( final ByteSequence bytes, final boolean wide ) throws IOException {
         super.setLength(2);
         b = bytes.readByte();
     }
 
+
     @Override
     public Number getValue() {
         return Integer.valueOf(b);
     }
 
-    /**
-     * @return Type.BYTE
+
+    /** @return Type.BYTE
      */
     @Override
-    public Type getType(final ConstantPoolGen cp) {
+    public Type getType( final ConstantPoolGen cp ) {
         return Type.BYTE;
     }
 
+
     /**
-     * Call corresponding visitor method(s). The order is: Call visitor methods
-     * of implemented interfaces first, then call methods according to the class
-     * hierarchy in descending order, i.e., the most specific visitXXX() call
-     * comes last.
+     * Call corresponding visitor method(s). The order is:
+     * Call visitor methods of implemented interfaces first, then
+     * call methods according to the class hierarchy in descending order,
+     * i.e., the most specific visitXXX() call comes last.
      *
      * @param v Visitor object
      */
     @Override
-    public void accept(final Visitor v) {
+    public void accept( final Visitor v ) {
         v.visitPushInstruction(this);
         v.visitStackProducer(this);
         v.visitTypedInstruction(this);
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/BREAKPOINT.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/BREAKPOINT.java	Wed Jun 26 05:49:59 2019 +0000
@@ -23,7 +23,7 @@
 /**
  * BREAKPOINT, JVM dependent, ignored by default
  *
- * @version $Id: BREAKPOINT.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class BREAKPOINT extends Instruction {
 
@@ -31,16 +31,17 @@
         super(com.sun.org.apache.bcel.internal.Const.BREAKPOINT, (short) 1);
     }
 
+
     /**
-     * Call corresponding visitor method(s). The order is: Call visitor methods
-     * of implemented interfaces first, then call methods according to the class
-     * hierarchy in descending order, i.e., the most specific visitXXX() call
-     * comes last.
+     * Call corresponding visitor method(s). The order is:
+     * Call visitor methods of implemented interfaces first, then
+     * call methods according to the class hierarchy in descending order,
+     * i.e., the most specific visitXXX() call comes last.
      *
      * @param v Visitor object
      */
     @Override
-    public void accept(final Visitor v) {
+    public void accept( final Visitor v ) {
         v.visitBREAKPOINT(this);
     }
 }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/BasicType.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/BasicType.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
 /**
  * Denotes basic type such as int.
  *
- * @version $Id: BasicType.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public final class BasicType extends Type {
 
@@ -42,8 +42,9 @@
         }
     }
 
+
     // @since 6.0 no longer final
-    public static BasicType getType(final byte type) {
+    public static BasicType getType( final byte type ) {
         switch (type) {
             case Const.T_VOID:
                 return VOID;
@@ -68,19 +69,19 @@
         }
     }
 
-    /**
-     * @return a hash code value for the object.
+
+    /** @return a hash code value for the object.
      */
     @Override
     public int hashCode() {
         return super.getType();
     }
 
-    /**
-     * @return true if both type objects refer to the same type
+
+    /** @return true if both type objects refer to the same type
      */
     @Override
-    public boolean equals(final Object _type) {
+    public boolean equals( final Object _type ) {
         return (_type instanceof BasicType) ? ((BasicType) _type).getType() == this.getType() : false;
     }
 }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/BranchHandle.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/BranchHandle.java	Wed Jun 26 05:49:59 2019 +0000
@@ -23,13 +23,13 @@
 /**
  * BranchHandle is returned by specialized InstructionList.append() whenever a
  * BranchInstruction is appended. This is useful when the target of this
- * instruction is not known at time of creation and must be set later via
- * setTarget().
+ * instruction is not known at time of creation and must be set later
+ * via setTarget().
  *
  * @see InstructionHandle
  * @see Instruction
  * @see InstructionList
- * @version $Id: BranchHandle.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  */
 public final class BranchHandle extends InstructionHandle {
 
@@ -37,33 +37,16 @@
     // See BCEL-273
     private BranchInstruction bi; // An alias in fact, but saves lots of casts
 
+
     private BranchHandle(final BranchInstruction i) {
         super(i);
         bi = i;
     }
 
-    /**
-     * Factory methods.
+    /** Factory method.
      */
-    private static BranchHandle bh_list = null; // List of reusable handles
-
-    static BranchHandle getBranchHandle(final BranchInstruction i) {
-        if (bh_list == null) {
-            return new BranchHandle(i);
-        }
-        final BranchHandle bh = bh_list;
-        bh_list = (BranchHandle) bh.getNext();
-        bh.setInstruction(i);
-        return bh;
-    }
-
-    /**
-     * Handle adds itself to the list of resuable handles.
-     */
-    @Override
-    protected void addHandle() {
-        super.setNext(bh_list);
-        bh_list = this;
+    static BranchHandle getBranchHandle( final BranchInstruction i ) {
+        return new BranchHandle(i);
     }
 
 
@@ -76,34 +59,39 @@
         return bi.getPosition();
     }
 
+
     @Override
-    void setPosition(final int pos) {
+    void setPosition( final int pos ) {
         // Original code: i_position = bi.position = pos;
         bi.setPosition(pos);
         super.setPosition(pos);
     }
 
+
     @Override
-    protected int updatePosition(final int offset, final int max_offset) {
+    protected int updatePosition( final int offset, final int max_offset ) {
         final int x = bi.updatePosition(offset, max_offset);
         super.setPosition(bi.getPosition());
         return x;
     }
 
+
     /**
      * Pass new target to instruction.
      */
-    public void setTarget(final InstructionHandle ih) {
+    public void setTarget( final InstructionHandle ih ) {
         bi.setTarget(ih);
     }
 
+
     /**
      * Update target of instruction.
      */
-    public void updateTarget(final InstructionHandle old_ih, final InstructionHandle new_ih) {
+    public void updateTarget( final InstructionHandle old_ih, final InstructionHandle new_ih ) {
         bi.updateTarget(old_ih, new_ih);
     }
 
+
     /**
      * @return target of instruction.
      */
@@ -111,12 +99,12 @@
         return bi.getTarget();
     }
 
+
     /**
-     * Set new contents. Old instruction is disposed and may not be used
-     * anymore.
+     * Set new contents. Old instruction is disposed and may not be used anymore.
      */
     @Override // This is only done in order to apply the additional type check; could be merged with super impl.
-    public void setInstruction(final Instruction i) { // TODO could be package-protected?
+    public void setInstruction( final Instruction i ) { // TODO could be package-protected?
         super.setInstruction(i);
         if (!(i instanceof BranchInstruction)) {
             throw new ClassGenException("Assigning " + i
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/BranchInstruction.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/BranchInstruction.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,6 +1,5 @@
 /*
- * reserved comment block
- * DO NOT REMOVE OR ALTER!
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -26,12 +25,13 @@
 import com.sun.org.apache.bcel.internal.util.ByteSequence;
 
 /**
- * Abstract super class for branching instructions like GOTO, IFEQ, etc.. Branch
- * instructions may have a variable length, namely GOTO, JSR, LOOKUPSWITCH and
- * TABLESWITCH.
+ * Abstract super class for branching instructions like GOTO, IFEQ, etc..
+ * Branch instructions may have a variable length, namely GOTO, JSR,
+ * LOOKUPSWITCH and TABLESWITCH.
  *
  * @see InstructionList
- * @version $Id: BranchInstruction.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public abstract class BranchInstruction extends Instruction implements InstructionTargeter {
 
@@ -46,9 +46,8 @@
     BranchInstruction() {
     }
 
-    /**
-     * Common super constructor
-     *
+
+    /** Common super constructor
      * @param opcode Instruction opcode
      * @param target instruction to branch to
      */
@@ -57,13 +56,13 @@
         setTarget(target);
     }
 
+
     /**
      * Dump instruction as byte code to stream out.
-     *
      * @param out Output stream
      */
     @Override
-    public void dump(final DataOutputStream out) throws IOException {
+    public void dump( final DataOutputStream out ) throws IOException {
         out.writeByte(super.getOpcode());
         index = getTargetOffset();
         if (!isValidShort(index)) {
@@ -72,11 +71,12 @@
         out.writeShort(index); // May be negative, i.e., point backwards
     }
 
+
     /**
      * @param _target branch target
-     * @return the offset to `target' relative to this instruction
+     * @return the offset to  `target' relative to this instruction
      */
-    protected int getTargetOffset(final InstructionHandle _target) {
+    protected int getTargetOffset( final InstructionHandle _target ) {
         if (_target == null) {
             throw new ClassGenException("Target of " + super.toString(true)
                     + " is invalid null handle");
@@ -89,6 +89,7 @@
         return t - position;
     }
 
+
     /**
      * @return the offset to this instruction's target
      */
@@ -96,37 +97,36 @@
         return getTargetOffset(target);
     }
 
+
     /**
-     * Called by InstructionList.setPositions when setting the position for
-     * every instruction. In the presence of variable length instructions
-     * `setPositions' performs multiple passes over the instruction list to
-     * calculate the correct (byte) positions and offsets by calling this
-     * function.
+     * Called by InstructionList.setPositions when setting the position for every
+     * instruction. In the presence of variable length instructions `setPositions'
+     * performs multiple passes over the instruction list to calculate the
+     * correct (byte) positions and offsets by calling this function.
      *
-     * @param offset additional offset caused by preceding (variable length)
-     * instructions
-     * @param max_offset the maximum offset that may be caused by these
-     * instructions
-     * @return additional offset caused by possible change of this instruction's
-     * length
+     * @param offset additional offset caused by preceding (variable length) instructions
+     * @param max_offset the maximum offset that may be caused by these instructions
+     * @return additional offset caused by possible change of this instruction's length
      */
-    protected int updatePosition(final int offset, final int max_offset) {
+    protected int updatePosition( final int offset, final int max_offset ) {
         position += offset;
         return 0;
     }
 
+
     /**
      * Long output format:
      *
-     * &lt;position in byte code&gt; &lt;name of opcode&gt; "["&lt;opcode
-     * number&gt;"]" "("&lt;length of instruction&gt;")" "&lt;"&lt;target
-     * instruction&gt;"&gt;" "@"&lt;branch target offset&gt;
+     * &lt;position in byte code&gt;
+     * &lt;name of opcode&gt; "["&lt;opcode number&gt;"]"
+     * "("&lt;length of instruction&gt;")"
+     * "&lt;"&lt;target instruction&gt;"&gt;" "@"&lt;branch target offset&gt;
      *
      * @param verbose long/short format switch
      * @return mnemonic for instruction
      */
     @Override
-    public String toString(final boolean verbose) {
+    public String toString( final boolean verbose ) {
         final String s = super.toString(verbose);
         String t = "null";
         if (verbose) {
@@ -153,20 +153,22 @@
         return s + " -> " + t;
     }
 
+
     /**
-     * Read needed data (e.g. index) from file. Conversion to a
-     * InstructionHandle is done in InstructionList(byte[]).
+     * Read needed data (e.g. index) from file. Conversion to a InstructionHandle
+     * is done in InstructionList(byte[]).
      *
      * @param bytes input stream
      * @param wide wide prefix?
      * @see InstructionList
      */
     @Override
-    protected void initFromFile(final ByteSequence bytes, final boolean wide) throws IOException {
+    protected void initFromFile( final ByteSequence bytes, final boolean wide ) throws IOException {
         super.setLength(3);
         index = bytes.readShort();
     }
 
+
     /**
      * @return target offset in byte code
      */
@@ -174,6 +176,7 @@
         return index;
     }
 
+
     /**
      * @return target of branch instruction
      */
@@ -181,22 +184,22 @@
         return target;
     }
 
+
     /**
      * Set branch target
-     *
      * @param target branch target
      */
-    public void setTarget(final InstructionHandle target) {
+    public void setTarget( final InstructionHandle target ) {
         notifyTarget(this.target, target, this);
         this.target = target;
     }
 
+
     /**
-     * Used by BranchInstruction, LocalVariableGen, CodeExceptionGen,
-     * LineNumberGen
+     * Used by BranchInstruction, LocalVariableGen, CodeExceptionGen, LineNumberGen
      */
-    static void notifyTarget(final InstructionHandle old_ih, final InstructionHandle new_ih,
-            final InstructionTargeter t) {
+    static void notifyTarget( final InstructionHandle old_ih, final InstructionHandle new_ih,
+            final InstructionTargeter t ) {
         if (old_ih != null) {
             old_ih.removeTargeter(t);
         }
@@ -205,12 +208,13 @@
         }
     }
 
+
     /**
      * @param old_ih old target
      * @param new_ih new target
      */
     @Override
-    public void updateTarget(final InstructionHandle old_ih, final InstructionHandle new_ih) {
+    public void updateTarget( final InstructionHandle old_ih, final InstructionHandle new_ih ) {
         if (target == old_ih) {
             setTarget(new_ih);
         } else {
@@ -218,14 +222,16 @@
         }
     }
 
+
     /**
      * @return true, if ih is target of this instruction
      */
     @Override
-    public boolean containsTarget(final InstructionHandle ih) {
+    public boolean containsTarget( final InstructionHandle ih ) {
         return target == ih;
     }
 
+
     /**
      * Inform target that it's not targeted anymore.
      */
@@ -236,6 +242,7 @@
         position = -1;
     }
 
+
     /**
      * @return the position
      * @since 6.0
@@ -244,6 +251,7 @@
         return position;
     }
 
+
     /**
      * @param position the position to set
      * @since 6.0
@@ -252,6 +260,7 @@
         this.position = position;
     }
 
+
     /**
      * @param index the index to set
      * @since 6.0
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/CALOAD.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/CALOAD.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * CALOAD - Load char from array
  * <PRE>Stack: ..., arrayref, index -&gt; ..., value</PRE>
  *
- * @version $Id: CALOAD.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class CALOAD extends ArrayInstruction implements StackProducer {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/CASTORE.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/CASTORE.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * CASTORE -  Store into char array
  * <PRE>Stack: ..., arrayref, index, value -&gt; ...</PRE>
  *
- * @version $Id: CASTORE.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class CASTORE extends ArrayInstruction implements StackConsumer {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/CHECKCAST.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/CHECKCAST.java	Wed Jun 26 05:49:59 2019 +0000
@@ -27,14 +27,14 @@
  * CHECKCAST - Check whether object is of given type
  * <PRE>Stack: ..., objectref -&gt; ..., objectref</PRE>
  *
- * @version $Id: CHECKCAST.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class CHECKCAST extends CPInstruction implements LoadClass, ExceptionThrower, StackProducer,
         StackConsumer {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     CHECKCAST() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/CPInstruction.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/CPInstruction.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,6 +1,5 @@
 /*
- * reserved comment block
- * DO NOT REMOVE OR ALTER!
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -29,27 +28,30 @@
 import com.sun.org.apache.bcel.internal.util.ByteSequence;
 
 /**
- * Abstract super class for instructions that use an index into the constant
- * pool such as LDC, INVOKEVIRTUAL, etc.
+ * Abstract super class for instructions that use an index into the
+ * constant pool such as LDC, INVOKEVIRTUAL, etc.
  *
  * @see ConstantPoolGen
  * @see LDC
  * @see INVOKEVIRTUAL
  *
- * @version $Id: CPInstruction.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public abstract class CPInstruction extends Instruction implements TypedInstruction,
         IndexedInstruction {
 
     private int index; // index to constant pool
 
+
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     CPInstruction() {
     }
 
+
     /**
      * @param index to constant pool
      */
@@ -58,36 +60,38 @@
         setIndex(index);
     }
 
+
     /**
      * Dump instruction as byte code to stream out.
-     *
      * @param out Output stream
      */
     @Override
-    public void dump(final DataOutputStream out) throws IOException {
+    public void dump( final DataOutputStream out ) throws IOException {
         out.writeByte(super.getOpcode());
         out.writeShort(index);
     }
 
+
     /**
      * Long output format:
      *
-     * &lt;name of opcode&gt; "["&lt;opcode number&gt;"]" "("&lt;length of
-     * instruction&gt;")" "&lt;"&lt; constant pool index&gt;"&gt;"
+     * &lt;name of opcode&gt; "["&lt;opcode number&gt;"]"
+     * "("&lt;length of instruction&gt;")" "&lt;"&lt; constant pool index&gt;"&gt;"
      *
      * @param verbose long/short format switch
      * @return mnemonic for instruction
      */
     @Override
-    public String toString(final boolean verbose) {
+    public String toString( final boolean verbose ) {
         return super.toString(verbose) + " " + index;
     }
 
+
     /**
      * @return mnemonic for instruction with symbolic references resolved
      */
     @Override
-    public String toString(final ConstantPool cp) {
+    public String toString( final ConstantPool cp ) {
         final Constant c = cp.getConstant(index);
         String str = cp.constantToString(c);
         if (c instanceof ConstantClass) {
@@ -96,18 +100,19 @@
         return com.sun.org.apache.bcel.internal.Const.getOpcodeName(super.getOpcode()) + " " + str;
     }
 
+
     /**
      * Read needed data (i.e., index) from file.
-     *
      * @param bytes input stream
      * @param wide wide prefix?
      */
     @Override
-    protected void initFromFile(final ByteSequence bytes, final boolean wide) throws IOException {
+    protected void initFromFile( final ByteSequence bytes, final boolean wide ) throws IOException {
         setIndex(bytes.readUnsignedShort());
         super.setLength(3);
     }
 
+
     /**
      * @return index in constant pool referred by this instruction.
      */
@@ -116,24 +121,24 @@
         return index;
     }
 
+
     /**
      * Set the index to constant pool.
-     *
-     * @param index in constant pool.
+     * @param index in  constant pool.
      */
     @Override
-    public void setIndex(final int index) { // TODO could be package-protected?
+    public void setIndex( final int index ) { // TODO could be package-protected?
         if (index < 0) {
             throw new ClassGenException("Negative index value: " + index);
         }
         this.index = index;
     }
 
-    /**
-     * @return type related with this instruction.
+
+    /** @return type related with this instruction.
      */
     @Override
-    public Type getType(final ConstantPoolGen cpg) {
+    public Type getType( final ConstantPoolGen cpg ) {
         final ConstantPool cp = cpg.getConstantPool();
         String name = cp.getConstantString(index, com.sun.org.apache.bcel.internal.Const.CONSTANT_Class);
         if (!name.startsWith("[")) {
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ClassGen.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ClassGen.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,6 +1,5 @@
 /*
- * reserved comment block
- * DO NOT REMOVE OR ALTER!
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -22,6 +21,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 
 import com.sun.org.apache.bcel.internal.Const;
 import com.sun.org.apache.bcel.internal.classfile.AccessFlags;
@@ -42,7 +42,8 @@
  * existing java class (file).
  *
  * @see JavaClass
- * @version $Id: ClassGen.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public class ClassGen extends AccessFlags implements Cloneable {
 
@@ -66,21 +67,22 @@
     private static BCELComparator _cmp = new BCELComparator() {
 
         @Override
-        public boolean equals(final Object o1, final Object o2) {
+        public boolean equals( final Object o1, final Object o2 ) {
             final ClassGen THIS = (ClassGen) o1;
             final ClassGen THAT = (ClassGen) o2;
-            return THIS.getClassName().equals(THAT.getClassName());
+            return Objects.equals(THIS.getClassName(), THAT.getClassName());
         }
 
+
         @Override
-        public int hashCode(final Object o) {
+        public int hashCode( final Object o ) {
             final ClassGen THIS = (ClassGen) o;
             return THIS.getClassName().hashCode();
         }
     };
 
-    /**
-     * Convenience constructor to set up some important values initially.
+
+    /** Convenience constructor to set up some important values initially.
      *
      * @param class_name fully qualified class name
      * @param super_class_name fully qualified superclass name
@@ -110,8 +112,8 @@
         }
     }
 
-    /**
-     * Convenience constructor to set up some important values initially.
+
+    /** Convenience constructor to set up some important values initially.
      *
      * @param class_name fully qualified class name
      * @param super_class_name fully qualified superclass name
@@ -125,9 +127,9 @@
                 new ConstantPoolGen());
     }
 
+
     /**
      * Initialize with existing class.
-     *
      * @param clazz JavaClass object (e.g. read from file)
      */
     public ClassGen(final JavaClass clazz) {
@@ -168,28 +170,34 @@
     /**
      * Look for attributes representing annotations and unpack them.
      */
-    private AnnotationEntryGen[] unpackAnnotations(final Attribute[] attrs) {
+    private AnnotationEntryGen[] unpackAnnotations(final Attribute[] attrs)
+    {
         final List<AnnotationEntryGen> annotationGenObjs = new ArrayList<>();
         for (final Attribute attr : attrs) {
-            if (attr instanceof RuntimeVisibleAnnotations) {
+            if (attr instanceof RuntimeVisibleAnnotations)
+            {
                 final RuntimeVisibleAnnotations rva = (RuntimeVisibleAnnotations) attr;
                 final AnnotationEntry[] annos = rva.getAnnotationEntries();
                 for (final AnnotationEntry a : annos) {
                     annotationGenObjs.add(new AnnotationEntryGen(a,
                             getConstantPool(), false));
                 }
-            } else if (attr instanceof RuntimeInvisibleAnnotations) {
-                final RuntimeInvisibleAnnotations ria = (RuntimeInvisibleAnnotations) attr;
-                final AnnotationEntry[] annos = ria.getAnnotationEntries();
-                for (final AnnotationEntry a : annos) {
-                    annotationGenObjs.add(new AnnotationEntryGen(a,
-                            getConstantPool(), false));
+            }
+            else
+                if (attr instanceof RuntimeInvisibleAnnotations)
+                {
+                    final RuntimeInvisibleAnnotations ria = (RuntimeInvisibleAnnotations) attr;
+                    final AnnotationEntry[] annos = ria.getAnnotationEntries();
+                    for (final AnnotationEntry a : annos) {
+                        annotationGenObjs.add(new AnnotationEntryGen(a,
+                                getConstantPool(), false));
+                    }
                 }
-            }
         }
         return annotationGenObjs.toArray(new AnnotationEntryGen[annotationGenObjs.size()]);
     }
 
+
     /**
      * @return the (finally) built up Java class object.
      */
@@ -197,15 +205,15 @@
         final int[] interfaces = getInterfaces();
         final Field[] fields = getFields();
         final Method[] methods = getMethods();
-        Attribute[] attributes;
+        Attribute[] attributes = null;
         if (annotation_vec.isEmpty()) {
             attributes = getAttributes();
         } else {
             // TODO: Sometime later, trash any attributes called 'RuntimeVisibleAnnotations' or 'RuntimeInvisibleAnnotations'
-            final Attribute[] annAttributes = AnnotationEntryGen.getAnnotationAttributes(cp, getAnnotationEntries());
-            attributes = new Attribute[attribute_vec.size() + annAttributes.length];
+            final Attribute[] annAttributes  = AnnotationEntryGen.getAnnotationAttributes(cp, getAnnotationEntries());
+            attributes = new Attribute[attribute_vec.size()+annAttributes.length];
             attribute_vec.toArray(attributes);
-            System.arraycopy(annAttributes, 0, attributes, attribute_vec.size(), annAttributes.length);
+            System.arraycopy(annAttributes,0,attributes,attribute_vec.size(),annAttributes.length);
         }
         // Must be last since the above calls may still add something to it
         final ConstantPool _cp = this.cp.getFinalConstantPool();
@@ -213,24 +221,25 @@
                 super.getAccessFlags(), _cp, interfaces, fields, methods, attributes);
     }
 
+
     /**
      * Add an interface to this class, i.e., this class has to implement it.
-     *
      * @param name interface to implement (fully qualified class name)
      */
-    public final void addInterface(final String name) {
+    public void addInterface( final String name ) {
         interface_vec.add(name);
     }
 
+
     /**
      * Remove an interface from this class.
-     *
      * @param name interface to remove (fully qualified name)
      */
-    public void removeInterface(final String name) {
+    public void removeInterface( final String name ) {
         interface_vec.remove(name);
     }
 
+
     /**
      * @return major version number of class file
      */
@@ -238,21 +247,19 @@
         return major;
     }
 
-    /**
-     * Set major version number of class file, default value is 45 (JDK 1.1)
-     *
+
+    /** Set major version number of class file, default value is 45 (JDK 1.1)
      * @param major major version number
      */
-    public void setMajor(final int major) { // TODO could be package-protected - only called by test code
+    public void setMajor( final int major ) { // TODO could be package-protected - only called by test code
         this.major = major;
     }
 
-    /**
-     * Set minor version number of class file, default value is 3 (JDK 1.1)
-     *
+
+    /** Set minor version number of class file, default value is 3 (JDK 1.1)
      * @param minor minor version number
      */
-    public void setMinor(final int minor) {  // TODO could be package-protected - only called by test code
+    public void setMinor( final int minor ) {  // TODO could be package-protected - only called by test code
         this.minor = minor;
     }
 
@@ -263,37 +270,36 @@
         return minor;
     }
 
+
     /**
      * Add an attribute to this class.
-     *
      * @param a attribute to add
      */
-    public final void addAttribute(final Attribute a) {
+    public void addAttribute( final Attribute a ) {
         attribute_vec.add(a);
     }
 
-    public final void addAnnotationEntry(final AnnotationEntryGen a) {
+    public void addAnnotationEntry(final AnnotationEntryGen a) {
         annotation_vec.add(a);
     }
 
+
     /**
      * Add a method to this class.
-     *
      * @param m method to add
      */
-    public final void addMethod(final Method m) {
+    public void addMethod( final Method m ) {
         method_vec.add(m);
     }
 
+
     /**
      * Convenience method.
      *
-     * Add an empty constructor to this class that does nothing but calling
-     * super().
-     *
+     * Add an empty constructor to this class that does nothing but calling super().
      * @param access_flags rights for constructor
      */
-    public void addEmptyConstructor(final int access_flags) {
+    public void addEmptyConstructor( final int access_flags ) {
         final InstructionList il = new InstructionList();
         il.append(InstructionConst.THIS); // Push `this'
         il.append(new INVOKESPECIAL(cp.addMethodref(super_class_name, "<init>", "()V")));
@@ -304,23 +310,24 @@
         addMethod(mg.getMethod());
     }
 
+
     /**
      * Add a field to this class.
-     *
      * @param f field to add
      */
-    public final void addField(final Field f) {
+    public void addField( final Field f ) {
         field_vec.add(f);
     }
 
-    public boolean containsField(final Field f) {
+
+    public boolean containsField( final Field f ) {
         return field_vec.contains(f);
     }
 
-    /**
-     * @return field object with given name, or null
+
+    /** @return field object with given name, or null
      */
-    public Field containsField(final String name) {
+    public Field containsField( final String name ) {
         for (final Field f : field_vec) {
             if (f.getName().equals(name)) {
                 return f;
@@ -329,10 +336,10 @@
         return null;
     }
 
-    /**
-     * @return method object with given name and signature, or null
+
+    /** @return method object with given name and signature, or null
      */
-    public Method containsMethod(final String name, final String signature) {
+    public Method containsMethod( final String name, final String signature ) {
         for (final Method m : method_vec) {
             if (m.getName().equals(name) && m.getSignature().equals(signature)) {
                 return m;
@@ -341,29 +348,29 @@
         return null;
     }
 
+
     /**
      * Remove an attribute from this class.
-     *
      * @param a attribute to remove
      */
-    public void removeAttribute(final Attribute a) {
+    public void removeAttribute( final Attribute a ) {
         attribute_vec.remove(a);
     }
 
+
     /**
      * Remove a method from this class.
-     *
      * @param m method to remove
      */
-    public void removeMethod(final Method m) {
+    public void removeMethod( final Method m ) {
         method_vec.remove(m);
     }
 
-    /**
-     * Replace given method with new one. If the old one does not exist add the
-     * new_ method to the class anyway.
+
+    /** Replace given method with new one. If the old one does not exist
+     * add the new_ method to the class anyway.
      */
-    public void replaceMethod(final Method old, final Method new_) {
+    public void replaceMethod( final Method old, final Method new_ ) {
         if (new_ == null) {
             throw new ClassGenException("Replacement method must not be null");
         }
@@ -375,11 +382,11 @@
         }
     }
 
-    /**
-     * Replace given field with new one. If the old one does not exist add the
-     * new_ field to the class anyway.
+
+    /** Replace given field with new one. If the old one does not exist
+     * add the new_ field to the class anyway.
      */
-    public void replaceField(final Field old, final Field new_) {
+    public void replaceField( final Field old, final Field new_ ) {
         if (new_ == null) {
             throw new ClassGenException("Replacement method must not be null");
         }
@@ -391,56 +398,66 @@
         }
     }
 
+
     /**
      * Remove a field to this class.
-     *
      * @param f field to remove
      */
-    public void removeField(final Field f) {
+    public void removeField( final Field f ) {
         field_vec.remove(f);
     }
 
+
     public String getClassName() {
         return class_name;
     }
 
+
     public String getSuperclassName() {
         return super_class_name;
     }
 
+
     public String getFileName() {
         return file_name;
     }
 
-    public void setClassName(final String name) {
+
+    public void setClassName( final String name ) {
         class_name = name.replace('/', '.');
         class_name_index = cp.addClass(name);
     }
 
-    public void setSuperclassName(final String name) {
+
+    public void setSuperclassName( final String name ) {
         super_class_name = name.replace('/', '.');
         superclass_name_index = cp.addClass(name);
     }
 
+
     public Method[] getMethods() {
         return method_vec.toArray(new Method[method_vec.size()]);
     }
 
-    public void setMethods(final Method[] methods) {
+
+    public void setMethods( final Method[] methods ) {
         method_vec.clear();
         for (final Method method : methods) {
             addMethod(method);
         }
     }
 
-    public void setMethodAt(final Method method, final int pos) {
+
+    public void setMethodAt( final Method method, final int pos ) {
         method_vec.set(pos, method);
     }
 
-    public Method getMethodAt(final int pos) {
+
+    public Method getMethodAt( final int pos ) {
         return method_vec.get(pos);
     }
 
+
     public String[] getInterfaceNames() {
         final int size = interface_vec.size();
         final String[] interfaces = new String[size];
@@ -448,6 +465,7 @@
         return interfaces;
     }
 
+
     public int[] getInterfaces() {
         final int size = interface_vec.size();
         final int[] interfaces = new int[size];
@@ -457,10 +475,12 @@
         return interfaces;
     }
 
+
     public Field[] getFields() {
         return field_vec.toArray(new Field[field_vec.size()]);
     }
 
+
     public Attribute[] getAttributes() {
         return attribute_vec.toArray(new Attribute[attribute_vec.size()]);
     }
@@ -470,59 +490,65 @@
         return annotation_vec.toArray(new AnnotationEntryGen[annotation_vec.size()]);
     }
 
+
     public ConstantPoolGen getConstantPool() {
         return cp;
     }
 
-    public void setConstantPool(final ConstantPoolGen constant_pool) {
+
+    public void setConstantPool( final ConstantPoolGen constant_pool ) {
         cp = constant_pool;
     }
 
-    public void setClassNameIndex(final int class_name_index) {
+
+    public void setClassNameIndex( final int class_name_index ) {
         this.class_name_index = class_name_index;
         class_name = cp.getConstantPool().getConstantString(class_name_index,
                 Const.CONSTANT_Class).replace('/', '.');
     }
 
-    public void setSuperclassNameIndex(final int superclass_name_index) {
+
+    public void setSuperclassNameIndex( final int superclass_name_index ) {
         this.superclass_name_index = superclass_name_index;
         super_class_name = cp.getConstantPool().getConstantString(superclass_name_index,
                 Const.CONSTANT_Class).replace('/', '.');
     }
 
+
     public int getSuperclassNameIndex() {
         return superclass_name_index;
     }
 
+
     public int getClassNameIndex() {
         return class_name_index;
     }
 
     private List<ClassObserver> observers;
 
-    /**
-     * Add observer for this object.
+
+    /** Add observer for this object.
      */
-    public void addObserver(final ClassObserver o) {
+    public void addObserver( final ClassObserver o ) {
         if (observers == null) {
             observers = new ArrayList<>();
         }
         observers.add(o);
     }
 
-    /**
-     * Remove observer for this object.
+
+    /** Remove observer for this object.
      */
-    public void removeObserver(final ClassObserver o) {
+    public void removeObserver( final ClassObserver o ) {
         if (observers != null) {
             observers.remove(o);
         }
     }
 
-    /**
-     * Call notify() method on all observers. This method is not called
-     * automatically whenever the state has changed, but has to be called by the
-     * user after he has finished editing the object.
+
+    /** Call notify() method on all observers. This method is not called
+     * automatically whenever the state has changed, but has to be
+     * called by the user after he has finished editing the object.
      */
     public void update() {
         if (observers != null) {
@@ -532,6 +558,7 @@
         }
     }
 
+
     @Override
     public Object clone() {
         try {
@@ -541,6 +568,7 @@
         }
     }
 
+
     /**
      * @return Comparison strategy object
      */
@@ -548,27 +576,31 @@
         return _cmp;
     }
 
+
     /**
      * @param comparator Comparison strategy object
      */
-    public static void setComparator(final BCELComparator comparator) {
+    public static void setComparator( final BCELComparator comparator ) {
         _cmp = comparator;
     }
 
+
     /**
-     * Return value as defined by given BCELComparator strategy. By default two
-     * ClassGen objects are said to be equal when their class names are equal.
+     * Return value as defined by given BCELComparator strategy.
+     * By default two ClassGen objects are said to be equal when
+     * their class names are equal.
      *
      * @see java.lang.Object#equals(java.lang.Object)
      */
     @Override
-    public boolean equals(final Object obj) {
+    public boolean equals( final Object obj ) {
         return _cmp.equals(this, obj);
     }
 
+
     /**
-     * Return value as defined by given BCELComparator strategy. By default
-     * return the hashcode of the class name.
+     * Return value as defined by given BCELComparator strategy.
+     * By default return the hashcode of the class name.
      *
      * @see java.lang.Object#hashCode()
      */
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ClassGenException.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ClassGenException.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * Thrown on internal errors. Extends RuntimeException so it hasn't to be declared
  * in the throws clause every time.
  *
- * @version $Id: ClassGenException.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class ClassGenException extends RuntimeException {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ClassObserver.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ClassObserver.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * Implement this interface if you're interested in changes to a ClassGen object
  * and register yourself with addObserver().
  *
- * @version $Id: ClassObserver.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public interface ClassObserver {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/CodeExceptionGen.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/CodeExceptionGen.java	Wed Jun 26 05:49:59 2019 +0000
@@ -23,7 +23,7 @@
 import com.sun.org.apache.bcel.internal.classfile.CodeException;
 
 /**
- * This class represents an exception handler, i.e., specifies the region where
+ * This class represents an exception handler, i.e., specifies the  region where
  * a handler is active and an instruction where the actual handling is done.
  * pool as parameters. Opposed to the JVM specification the end of the handled
  * region is set to be inclusive, i.e. all instructions between start and end
@@ -31,10 +31,10 @@
  * The end of the region is automatically mapped to be exclusive when calling
  * getCodeException(), i.e., there is no difference semantically.
  *
- * @version $Id: CodeExceptionGen.java 1749603 2016-06-21 20:50:19Z ggregory $
- * @see MethodGen
- * @see CodeException
- * @see InstructionHandle
+ * @version $Id$
+ * @see     MethodGen
+ * @see     CodeException
+ * @see     InstructionHandle
  */
 public final class CodeExceptionGen implements InstructionTargeter, Cloneable {
 
@@ -43,9 +43,10 @@
     private InstructionHandle handler_pc;
     private ObjectType catch_type;
 
+
     /**
-     * Add an exception handler, i.e., specify region where a handler is active
-     * and an instruction where the actual handling is done.
+     * Add an exception handler, i.e., specify region where a handler is active and an
+     * instruction where the actual handling is done.
      *
      * @param start_pc Start of handled region (inclusive)
      * @param end_pc End of handled region (inclusive)
@@ -60,16 +61,17 @@
         this.catch_type = catch_type;
     }
 
+
     /**
      * Get CodeException object.<BR>
      *
-     * This relies on that the instruction list has already been dumped to byte
-     * code or or that the `setPositions' methods has been called for the
-     * instruction list.
+     * This relies on that the instruction list has already been dumped
+     * to byte code or or that the `setPositions' methods has been
+     * called for the instruction list.
      *
      * @param cp constant pool
      */
-    public CodeException getCodeException(final ConstantPoolGen cp) {
+    public CodeException getCodeException( final ConstantPoolGen cp ) {
         return new CodeException(start_pc.getPosition(), end_pc.getPosition()
                 + end_pc.getInstruction().getLength(), handler_pc.getPosition(),
                 (catch_type == null) ? 0 : cp.addClass(catch_type));
@@ -79,7 +81,7 @@
     /* Set start of handler
      * @param start_pc Start of handled region (inclusive)
      */
-    public void setStartPC(final InstructionHandle start_pc) { // TODO could be package-protected?
+    public void setStartPC( final InstructionHandle start_pc ) { // TODO could be package-protected?
         BranchInstruction.notifyTarget(this.start_pc, start_pc, this);
         this.start_pc = start_pc;
     }
@@ -88,7 +90,7 @@
     /* Set end of handler
      * @param end_pc End of handled region (inclusive)
      */
-    public void setEndPC(final InstructionHandle end_pc) { // TODO could be package-protected?
+    public void setEndPC( final InstructionHandle end_pc ) { // TODO could be package-protected?
         BranchInstruction.notifyTarget(this.end_pc, end_pc, this);
         this.end_pc = end_pc;
     }
@@ -97,17 +99,18 @@
     /* Set handler code
      * @param handler_pc Start of handler
      */
-    public void setHandlerPC(final InstructionHandle handler_pc) { // TODO could be package-protected?
+    public void setHandlerPC( final InstructionHandle handler_pc ) { // TODO could be package-protected?
         BranchInstruction.notifyTarget(this.handler_pc, handler_pc, this);
         this.handler_pc = handler_pc;
     }
 
+
     /**
      * @param old_ih old target, either start or end
      * @param new_ih new target
      */
     @Override
-    public void updateTarget(final InstructionHandle old_ih, final InstructionHandle new_ih) {
+    public void updateTarget( final InstructionHandle old_ih, final InstructionHandle new_ih ) {
         boolean targeted = false;
         if (start_pc == old_ih) {
             targeted = true;
@@ -127,54 +130,55 @@
         }
     }
 
+
     /**
      * @return true, if ih is target of this handler
      */
     @Override
-    public boolean containsTarget(final InstructionHandle ih) {
+    public boolean containsTarget( final InstructionHandle ih ) {
         return (start_pc == ih) || (end_pc == ih) || (handler_pc == ih);
     }
 
-    /**
-     * Sets the type of the Exception to catch. Set 'null' for ANY.
-     */
-    public void setCatchType(final ObjectType catch_type) {
+
+    /** Sets the type of the Exception to catch. Set 'null' for ANY. */
+    public void setCatchType( final ObjectType catch_type ) {
         this.catch_type = catch_type;
     }
 
-    /**
-     * Gets the type of the Exception to catch, 'null' for ANY.
-     */
+
+    /** Gets the type of the Exception to catch, 'null' for ANY. */
     public ObjectType getCatchType() {
         return catch_type;
     }
 
-    /**
-     * @return start of handled region (inclusive)
+
+    /** @return start of handled region (inclusive)
      */
     public InstructionHandle getStartPC() {
         return start_pc;
     }
 
-    /**
-     * @return end of handled region (inclusive)
+
+    /** @return end of handled region (inclusive)
      */
     public InstructionHandle getEndPC() {
         return end_pc;
     }
 
-    /**
-     * @return start of handler
+
+    /** @return start of handler
      */
     public InstructionHandle getHandlerPC() {
         return handler_pc;
     }
 
+
     @Override
     public String toString() {
         return "CodeExceptionGen(" + start_pc + ", " + end_pc + ", " + handler_pc + ")";
     }
 
+
     @Override
     public Object clone() {
         try {
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/CompoundInstruction.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/CompoundInstruction.java	Wed Jun 26 05:49:59 2019 +0000
@@ -32,7 +32,7 @@
  * The interface provides the possibilty for the user to write
  * `templates' or `macros' for such reuseable code patterns.
  *
- * @version $Id: CompoundInstruction.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  * @see PUSH
  * @see SWITCH
  */
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ConstantPoolGen.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ConstantPoolGen.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -40,16 +40,18 @@
 import com.sun.org.apache.bcel.internal.classfile.ConstantUtf8;
 
 /**
- * This class is used to build up a constant pool. The user adds constants via
- * `addXXX' methods, `addString', `addClass', etc.. These methods return an
- * index into the constant pool. Finally, `getFinalConstantPool()' returns the
- * constant pool built up. Intermediate versions of the constant pool can be
+ * This class is used to build up a constant pool. The user adds
+ * constants via `addXXX' methods, `addString', `addClass',
+ * etc.. These methods return an index into the constant
+ * pool. Finally, `getFinalConstantPool()' returns the constant pool
+ * built up. Intermediate versions of the constant pool can be
  * obtained with `getConstantPool()'. A constant pool has capacity for
- * Constants.MAX_SHORT entries. Note that the first (0) is used by the JVM and
- * that Double and Long constants need two slots.
+ * Constants.MAX_SHORT entries. Note that the first (0) is used by the
+ * JVM and that Double and Long constants need two slots.
  *
- * @version $Id: ConstantPoolGen.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  * @see Constant
+ * @LastModified: Jun 2019
  */
 public class ConstantPoolGen {
 
@@ -67,11 +69,13 @@
 
         final int index;
 
+
         Index(final int i) {
             index = i;
         }
     }
 
+
     /**
      * Initialize with given array of constants.
      *
@@ -88,6 +92,7 @@
             index = cs.length;
         }
 
+
         for (int i = 1; i < index; i++) {
             final Constant c = constants[i];
             if (c instanceof ConstantString) {
@@ -134,7 +139,7 @@
                     // since name can't begin with digit, can  use
                     // METHODREF_DELIM with out fear of duplicates.
                 } else {
-                    final ConstantClass clazz = (ConstantClass) constants[m.getClassIndex()];
+                final ConstantClass clazz = (ConstantClass) constants[m.getClassIndex()];
                     u8 = (ConstantUtf8) constants[clazz.getNameIndex()];
                     class_name = u8.getBytes().replace('/', '.');
                 }
@@ -183,6 +188,7 @@
         }
     }
 
+
     /**
      * Initialize with given constant pool.
      */
@@ -190,6 +196,7 @@
         this(cp.getConstantPool());
     }
 
+
     /**
      * Create empty constant pool.
      */
@@ -198,8 +205,8 @@
         constants = new Constant[size];
     }
 
-    /**
-     * Resize internal array of constants.
+
+    /** Resize internal array of constants.
      */
     protected void adjustSize() {
         if (index + 3 >= size) {
@@ -212,25 +219,26 @@
 
     private final Map<String, Index> string_table = new HashMap<>();
 
+
     /**
      * Look for ConstantString in ConstantPool containing String `str'.
      *
      * @param str String to search for
      * @return index on success, -1 otherwise
      */
-    public int lookupString(final String str) {
+    public int lookupString( final String str ) {
         final Index index = string_table.get(str);
         return (index != null) ? index.index : -1;
     }
 
+
     /**
-     * Add a new String constant to the ConstantPool, if it is not already in
-     * there.
+     * Add a new String constant to the ConstantPool, if it is not already in there.
      *
      * @param str String to add
      * @return index of entry
      */
-    public int addString(final String str) {
+    public int addString( final String str ) {
         int ret;
         if ((ret = lookupString(str)) != -1) {
             return ret; // Already in CP
@@ -248,18 +256,20 @@
 
     private final Map<String, Index> class_table = new HashMap<>();
 
+
     /**
      * Look for ConstantClass in ConstantPool named `str'.
      *
      * @param str String to search for
      * @return index on success, -1 otherwise
      */
-    public int lookupClass(final String str) {
+    public int lookupClass( final String str ) {
         final Index index = class_table.get(str.replace('.', '/'));
         return (index != null) ? index.index : -1;
     }
 
-    private int addClass_(final String clazz) {
+
+    private int addClass_( final String clazz ) {
         int ret;
         if ((ret = lookupClass(clazz)) != -1) {
             return ret; // Already in CP
@@ -274,45 +284,48 @@
         return ret;
     }
 
+
     /**
-     * Add a new Class reference to the ConstantPool, if it is not already in
-     * there.
+     * Add a new Class reference to the ConstantPool, if it is not already in there.
      *
      * @param str Class to add
      * @return index of entry
      */
-    public int addClass(final String str) {
+    public int addClass( final String str ) {
         return addClass_(str.replace('.', '/'));
     }
 
+
     /**
      * Add a new Class reference to the ConstantPool for a given type.
      *
      * @param type Class to add
      * @return index of entry
      */
-    public int addClass(final ObjectType type) {
+    public int addClass( final ObjectType type ) {
         return addClass(type.getClassName());
     }
 
+
     /**
-     * Add a reference to an array class (e.g. String[][]) as needed by
-     * MULTIANEWARRAY instruction, e.g. to the ConstantPool.
+     * Add a reference to an array class (e.g. String[][]) as needed by MULTIANEWARRAY
+     * instruction, e.g. to the ConstantPool.
      *
      * @param type type of array class
      * @return index of entry
      */
-    public int addArrayClass(final ArrayType type) {
+    public int addArrayClass( final ArrayType type ) {
         return addClass_(type.getSignature());
     }
 
+
     /**
      * Look for ConstantInteger in ConstantPool.
      *
      * @param n integer number to look for
      * @return index on success, -1 otherwise
      */
-    public int lookupInteger(final int n) {
+    public int lookupInteger( final int n ) {
         for (int i = 1; i < index; i++) {
             if (constants[i] instanceof ConstantInteger) {
                 final ConstantInteger c = (ConstantInteger) constants[i];
@@ -324,14 +337,14 @@
         return -1;
     }
 
+
     /**
-     * Add a new Integer constant to the ConstantPool, if it is not already in
-     * there.
+     * Add a new Integer constant to the ConstantPool, if it is not already in there.
      *
      * @param n integer number to add
      * @return index of entry
      */
-    public int addInteger(final int n) {
+    public int addInteger( final int n ) {
         int ret;
         if ((ret = lookupInteger(n)) != -1) {
             return ret; // Already in CP
@@ -342,13 +355,14 @@
         return ret;
     }
 
+
     /**
      * Look for ConstantFloat in ConstantPool.
      *
      * @param n Float number to look for
      * @return index on success, -1 otherwise
      */
-    public int lookupFloat(final float n) {
+    public int lookupFloat( final float n ) {
         final int bits = Float.floatToIntBits(n);
         for (int i = 1; i < index; i++) {
             if (constants[i] instanceof ConstantFloat) {
@@ -361,14 +375,14 @@
         return -1;
     }
 
+
     /**
-     * Add a new Float constant to the ConstantPool, if it is not already in
-     * there.
+     * Add a new Float constant to the ConstantPool, if it is not already in there.
      *
      * @param n Float number to add
      * @return index of entry
      */
-    public int addFloat(final float n) {
+    public int addFloat( final float n ) {
         int ret;
         if ((ret = lookupFloat(n)) != -1) {
             return ret; // Already in CP
@@ -381,25 +395,26 @@
 
     private final Map<String, Index> utf8_table = new HashMap<>();
 
+
     /**
      * Look for ConstantUtf8 in ConstantPool.
      *
      * @param n Utf8 string to look for
      * @return index on success, -1 otherwise
      */
-    public int lookupUtf8(final String n) {
+    public int lookupUtf8( final String n ) {
         final Index index = utf8_table.get(n);
         return (index != null) ? index.index : -1;
     }
 
+
     /**
-     * Add a new Utf8 constant to the ConstantPool, if it is not already in
-     * there.
+     * Add a new Utf8 constant to the ConstantPool, if it is not already in there.
      *
      * @param n Utf8 string to add
      * @return index of entry
      */
-    public int addUtf8(final String n) {
+    public int addUtf8( final String n ) {
         int ret;
         if ((ret = lookupUtf8(n)) != -1) {
             return ret; // Already in CP
@@ -413,13 +428,14 @@
         return ret;
     }
 
+
     /**
      * Look for ConstantLong in ConstantPool.
      *
      * @param n Long number to look for
      * @return index on success, -1 otherwise
      */
-    public int lookupLong(final long n) {
+    public int lookupLong( final long n ) {
         for (int i = 1; i < index; i++) {
             if (constants[i] instanceof ConstantLong) {
                 final ConstantLong c = (ConstantLong) constants[i];
@@ -431,14 +447,14 @@
         return -1;
     }
 
+
     /**
-     * Add a new long constant to the ConstantPool, if it is not already in
-     * there.
+     * Add a new long constant to the ConstantPool, if it is not already in there.
      *
      * @param n Long number to add
      * @return index of entry
      */
-    public int addLong(final long n) {
+    public int addLong( final long n ) {
         int ret;
         if ((ret = lookupLong(n)) != -1) {
             return ret; // Already in CP
@@ -450,13 +466,14 @@
         return ret;
     }
 
+
     /**
      * Look for ConstantDouble in ConstantPool.
      *
      * @param n Double number to look for
      * @return index on success, -1 otherwise
      */
-    public int lookupDouble(final double n) {
+    public int lookupDouble( final double n ) {
         final long bits = Double.doubleToLongBits(n);
         for (int i = 1; i < index; i++) {
             if (constants[i] instanceof ConstantDouble) {
@@ -469,14 +486,14 @@
         return -1;
     }
 
+
     /**
-     * Add a new double constant to the ConstantPool, if it is not already in
-     * there.
+     * Add a new double constant to the ConstantPool, if it is not already in there.
      *
      * @param n Double number to add
      * @return index of entry
      */
-    public int addDouble(final double n) {
+    public int addDouble( final double n ) {
         int ret;
         if ((ret = lookupDouble(n)) != -1) {
             return ret; // Already in CP
@@ -490,6 +507,7 @@
 
     private final Map<String, Index> n_a_t_table = new HashMap<>();
 
+
     /**
      * Look for ConstantNameAndType in ConstantPool.
      *
@@ -497,11 +515,12 @@
      * @param signature of variable/method
      * @return index on success, -1 otherwise
      */
-    public int lookupNameAndType(final String name, final String signature) {
+    public int lookupNameAndType( final String name, final String signature ) {
         final Index _index = n_a_t_table.get(name + NAT_DELIM + signature);
         return (_index != null) ? _index.index : -1;
     }
 
+
     /**
      * Add a new NameAndType constant to the ConstantPool if it is not already
      * in there.
@@ -510,7 +529,7 @@
      * @param signature signature string to add
      * @return index of entry
      */
-    public int addNameAndType(final String name, final String signature) {
+    public int addNameAndType( final String name, final String signature ) {
         int ret;
         int name_index;
         int signature_index;
@@ -531,6 +550,7 @@
 
     private final Map<String, Index> cp_table = new HashMap<>();
 
+
     /**
      * Look for ConstantMethodref in ConstantPool.
      *
@@ -539,26 +559,28 @@
      * @param signature return and argument types
      * @return index on success, -1 otherwise
      */
-    public int lookupMethodref(final String class_name, final String method_name, final String signature) {
+    public int lookupMethodref( final String class_name, final String method_name, final String signature ) {
         final Index index = cp_table.get(class_name + METHODREF_DELIM + method_name
                 + METHODREF_DELIM + signature);
         return (index != null) ? index.index : -1;
     }
 
-    public int lookupMethodref(final MethodGen method) {
+
+    public int lookupMethodref( final MethodGen method ) {
         return lookupMethodref(method.getClassName(), method.getName(), method.getSignature());
     }
 
+
     /**
-     * Add a new Methodref constant to the ConstantPool, if it is not already in
-     * there.
+     * Add a new Methodref constant to the ConstantPool, if it is not already
+     * in there.
      *
      * @param class_name class name string to add
      * @param method_name method name string to add
      * @param signature method signature string to add
      * @return index of entry
      */
-    public int addMethodref(final String class_name, final String method_name, final String signature) {
+    public int addMethodref( final String class_name, final String method_name, final String signature ) {
         int ret;
         int class_index;
         int name_and_type_index;
@@ -577,10 +599,12 @@
         return ret;
     }
 
-    public int addMethodref(final MethodGen method) {
+
+    public int addMethodref( final MethodGen method ) {
         return addMethodref(method.getClassName(), method.getName(), method.getSignature());
     }
 
+
     /**
      * Look for ConstantInterfaceMethodref in ConstantPool.
      *
@@ -589,27 +613,29 @@
      * @param signature return and argument types
      * @return index on success, -1 otherwise
      */
-    public int lookupInterfaceMethodref(final String class_name, final String method_name, final String signature) {
+    public int lookupInterfaceMethodref( final String class_name, final String method_name, final String signature ) {
         final Index index = cp_table.get(class_name + IMETHODREF_DELIM + method_name
                 + IMETHODREF_DELIM + signature);
         return (index != null) ? index.index : -1;
     }
 
-    public int lookupInterfaceMethodref(final MethodGen method) {
+
+    public int lookupInterfaceMethodref( final MethodGen method ) {
         return lookupInterfaceMethodref(method.getClassName(), method.getName(), method
                 .getSignature());
     }
 
+
     /**
-     * Add a new InterfaceMethodref constant to the ConstantPool, if it is not
-     * already in there.
+     * Add a new InterfaceMethodref constant to the ConstantPool, if it is not already
+     * in there.
      *
      * @param class_name class name string to add
      * @param method_name method name string to add
      * @param signature signature string to add
      * @return index of entry
      */
-    public int addInterfaceMethodref(final String class_name, final String method_name, final String signature) {
+    public int addInterfaceMethodref( final String class_name, final String method_name, final String signature ) {
         int ret;
         int class_index;
         int name_and_type_index;
@@ -628,10 +654,12 @@
         return ret;
     }
 
-    public int addInterfaceMethodref(final MethodGen method) {
+
+    public int addInterfaceMethodref( final MethodGen method ) {
         return addInterfaceMethodref(method.getClassName(), method.getName(), method.getSignature());
     }
 
+
     /**
      * Look for ConstantFieldref in ConstantPool.
      *
@@ -640,22 +668,23 @@
      * @param signature return and argument types
      * @return index on success, -1 otherwise
      */
-    public int lookupFieldref(final String class_name, final String field_name, final String signature) {
+    public int lookupFieldref( final String class_name, final String field_name, final String signature ) {
         final Index index = cp_table.get(class_name + FIELDREF_DELIM + field_name
                 + FIELDREF_DELIM + signature);
         return (index != null) ? index.index : -1;
     }
 
+
     /**
-     * Add a new Fieldref constant to the ConstantPool, if it is not already in
-     * there.
+     * Add a new Fieldref constant to the ConstantPool, if it is not already
+     * in there.
      *
      * @param class_name class name string to add
      * @param field_name field name string to add
      * @param signature signature string to add
      * @return index of entry
      */
-    public int addFieldref(final String class_name, final String field_name, final String signature) {
+    public int addFieldref( final String class_name, final String field_name, final String signature ) {
         int ret;
         int class_index;
         int name_and_type_index;
@@ -674,24 +703,27 @@
         return ret;
     }
 
+
     /**
      * @param i index in constant pool
      * @return constant pool entry at index i
      */
-    public Constant getConstant(final int i) {
+    public Constant getConstant( final int i ) {
         return constants[i];
     }
 
+
     /**
      * Use with care!
      *
      * @param i index in constant pool
      * @param c new constant pool entry at index i
      */
-    public void setConstant(final int i, final Constant c) {
+    public void setConstant( final int i, final Constant c ) {
         constants[i] = c;
     }
 
+
     /**
      * @return intermediate constant pool
      */
@@ -699,6 +731,7 @@
         return new ConstantPool(constants);
     }
 
+
     /**
      * @return current size of constant pool
      */
@@ -706,6 +739,7 @@
         return index;
     }
 
+
     /**
      * @return constant pool with proper length
      */
@@ -715,6 +749,7 @@
         return new ConstantPool(cs);
     }
 
+
     /**
      * @return String representation.
      */
@@ -727,10 +762,10 @@
         return buf.toString();
     }
 
-    /**
-     * Import constant from another ConstantPool and return new index.
+
+    /** Import constant from another ConstantPool and return new index.
      */
-    public int addConstant(final Constant c, final ConstantPoolGen cp) {
+    public int addConstant( final Constant c, final ConstantPoolGen cp ) {
         final Constant[] constants = cp.getConstantPool().getConstantPool();
         switch (c.getTag()) {
             case Const.CONSTANT_String: {
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ConstantPushInstruction.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ConstantPushInstruction.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * Denotes a push instruction that produces a literal on the stack
  * such as  SIPUSH, BIPUSH, ICONST, etc.
  *
- * @version $Id: ConstantPushInstruction.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
 
  * @see ICONST
  * @see SIPUSH
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ConversionInstruction.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ConversionInstruction.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,14 +26,14 @@
 /**
  * Super class for the x2y family of instructions.
  *
- * @version $Id: ConversionInstruction.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public abstract class ConversionInstruction extends Instruction implements TypedInstruction,
         StackProducer, StackConsumer {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     ConversionInstruction() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/D2F.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/D2F.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * D2F - Convert double to float
  * <PRE>Stack: ..., value.word1, value.word2 -&gt; ..., result</PRE>
  *
- * @version $Id: D2F.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class D2F extends ConversionInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/D2I.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/D2I.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * D2I - Convert double to int
  * <PRE>Stack: ..., value.word1, value.word2 -&gt; ..., result</PRE>
  *
- * @version $Id: D2I.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class D2I extends ConversionInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/D2L.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/D2L.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * D2L - Convert double to long
  * <PRE>Stack: ..., value.word1, value.word2 -&gt; ..., result.word1, result.word2</PRE>
  *
- * @version $Id: D2L.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class D2L extends ConversionInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DADD.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DADD.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,7 +26,7 @@
  * <PRE>Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 -&gt;</PRE>
  *        ..., result.word1, result1.word2
  *
- * @version $Id: DADD.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class DADD extends ArithmeticInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DALOAD.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DALOAD.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * DALOAD - Load double from array
  * <PRE>Stack: ..., arrayref, index -&gt; ..., result.word1, result.word2</PRE>
  *
- * @version $Id: DALOAD.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class DALOAD extends ArrayInstruction implements StackProducer {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DASTORE.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DASTORE.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * DASTORE -  Store into double array
  * <PRE>Stack: ..., arrayref, index, value.word1, value.word2 -&gt; ...</PRE>
  *
- * @version $Id: DASTORE.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class DASTORE extends ArrayInstruction implements StackConsumer {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DCMPG.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DCMPG.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * DCMPG - Compare doubles: value1 &gt; value2
  * <PRE>Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 -&gt; ..., result</PRE>
  *
- * @version $Id: DCMPG.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class DCMPG extends Instruction implements TypedInstruction, StackProducer, StackConsumer {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DCMPL.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DCMPL.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * DCMPL - Compare doubles: value1 &lt; value2
  * <PRE>Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 -&gt; ..., result</PRE>
  *
- * @version $Id: DCMPL.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class DCMPL extends Instruction implements TypedInstruction, StackProducer, StackConsumer {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DCONST.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DCONST.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -25,8 +25,8 @@
  *
  * <PRE>Stack: ... -&gt; ..., </PRE>
  *
- * @version $Id: DCONST.java 1747278 2016-06-07 17:28:43Z britter $
- * @LastModified: Nov 2017
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public class DCONST extends Instruction implements ConstantPushInstruction {
 
@@ -34,8 +34,8 @@
 
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     DCONST() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DDIV.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DDIV.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,7 +26,7 @@
  * <PRE>Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 -&gt;</PRE>
  *        ..., result.word1, result.word2
  *
- * @version $Id: DDIV.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class DDIV extends ArithmeticInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DLOAD.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DLOAD.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,13 +25,13 @@
  * DLOAD - Load double from local variable
  * <PRE>Stack ... -&gt; ..., result.word1, result.word2</PRE>
  *
- * @version $Id: DLOAD.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class DLOAD extends LoadInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     DLOAD() {
         super(com.sun.org.apache.bcel.internal.Const.DLOAD, com.sun.org.apache.bcel.internal.Const.DLOAD_0);
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DMUL.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DMUL.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,7 +26,7 @@
  * <PRE>Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 -&gt;</PRE>
  *        ..., result.word1, result.word2
  *
- * @version $Id: DMUL.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class DMUL extends ArithmeticInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DNEG.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DNEG.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * DNEG - Negate double
  * <PRE>Stack: ..., value.word1, value.word2 -&gt; ..., result.word1, result.word2</PRE>
  *
- * @version $Id: DNEG.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class DNEG extends ArithmeticInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DREM.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DREM.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,7 +26,7 @@
  * <PRE>Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 -&gt;</PRE>
  *        ..., result.word1, result.word2
  *
- * @version $Id: DREM.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class DREM extends ArithmeticInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DRETURN.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DRETURN.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * DRETURN -  Return double from method
  * <PRE>Stack: ..., value.word1, value.word2 -&gt; &lt;empty&gt;</PRE>
  *
- * @version $Id: DRETURN.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class DRETURN extends ReturnInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DSTORE.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DSTORE.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,13 +25,13 @@
  * DSTORE - Store double into local variable
  * <pre>Stack: ..., value.word1, value.word2 -&gt; ... </PRE>
  *
- * @version $Id: DSTORE.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class DSTORE extends StoreInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     DSTORE() {
         super(com.sun.org.apache.bcel.internal.Const.DSTORE, com.sun.org.apache.bcel.internal.Const.DSTORE_0);
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DSUB.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DSUB.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,7 +26,7 @@
  * <PRE>Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 -&gt;</PRE>
  *        ..., result.word1, result.word2
  *
- * @version $Id: DSUB.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class DSUB extends ArithmeticInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DUP.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DUP.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * DUP - Duplicate top operand stack word
  * <PRE>Stack: ..., word -&gt; ..., word, word</PRE>
  *
- * @version $Id: DUP.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class DUP extends StackInstruction implements PushInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DUP2.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DUP2.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * DUP2 - Duplicate two top operand stack words
  * <PRE>Stack: ..., word2, word1 -&gt; ..., word2, word1, word2, word1</PRE>
  *
- * @version $Id: DUP2.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class DUP2 extends StackInstruction implements PushInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DUP2_X1.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DUP2_X1.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * DUP2_X1 - Duplicate two top operand stack words and put three down
  * <PRE>Stack: ..., word3, word2, word1 -&gt; ..., word2, word1, word3, word2, word1</PRE>
  *
- * @version $Id: DUP2_X1.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class DUP2_X1 extends StackInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DUP2_X2.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DUP2_X2.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * DUP2_X2 - Duplicate two top operand stack words and put four down
  * <PRE>Stack: ..., word4, word3, word2, word1 -&gt; ..., word2, word1, word4, word3, word2, word1</PRE>
  *
- * @version $Id: DUP2_X2.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class DUP2_X2 extends StackInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DUP_X1.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DUP_X1.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * DUP_X1 - Duplicate top operand stack word and put two down
  * <PRE>Stack: ..., word2, word1 -&gt; ..., word1, word2, word1</PRE>
  *
- * @version $Id: DUP_X1.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class DUP_X1 extends StackInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DUP_X2.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DUP_X2.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * DUP_X2 - Duplicate top operand stack word and put three down
  * <PRE>Stack: ..., word3, word2, word1 -&gt; ..., word1, word3, word2, word1</PRE>
  *
- * @version $Id: DUP_X2.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class DUP_X2 extends StackInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ElementValueGen.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ElementValueGen.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -34,6 +34,7 @@
 
 /**
  * @since 6.0
+ * @LastModified: Jun 2019
  */
 public abstract class ElementValueGen
 {
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/EmptyVisitor.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/EmptyVisitor.java	Wed Jun 26 05:49:59 2019 +0000
@@ -24,7 +24,7 @@
 /**
  * Supplies empty method bodies to be overridden by subclasses.
  *
- * @version $Id: EmptyVisitor.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public abstract class EmptyVisitor implements Visitor {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ExceptionThrower.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ExceptionThrower.java	Wed Jun 26 05:49:59 2019 +0000
@@ -38,7 +38,7 @@
  * "Throwable" object; so this term is equally used for "Exception"
  * and "Error" objects.
  *
- * @version $Id: ExceptionThrower.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public interface ExceptionThrower {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/F2D.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/F2D.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * F2D - Convert float to double
  * <PRE>Stack: ..., value -&gt; ..., result.word1, result.word2</PRE>
  *
- * @version $Id: F2D.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class F2D extends ConversionInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/F2I.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/F2I.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * F2I - Convert float to int
  * <PRE>Stack: ..., value -&gt; ..., result</PRE>
  *
- * @version $Id: F2I.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class F2I extends ConversionInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/F2L.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/F2L.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * F2L - Convert float to long
  * <PRE>Stack: ..., value -&gt; ..., result.word1, result.word2</PRE>
  *
- * @version $Id: F2L.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class F2L extends ConversionInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FADD.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FADD.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * FADD - Add floats
  * <PRE>Stack: ..., value1, value2 -&gt; result</PRE>
  *
- * @version $Id: FADD.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class FADD extends ArithmeticInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FALOAD.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FALOAD.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * FALOAD - Load float from array
  * <PRE>Stack: ..., arrayref, index -&gt; ..., value</PRE>
  *
- * @version $Id: FALOAD.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class FALOAD extends ArrayInstruction implements StackProducer {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FASTORE.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FASTORE.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * FASTORE -  Store into float array
  * <PRE>Stack: ..., arrayref, index, value -&gt; ...</PRE>
  *
- * @version $Id: FASTORE.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class FASTORE extends ArrayInstruction implements StackConsumer {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FCMPG.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FCMPG.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * FCMPG - Compare floats: value1 &gt; value2
  * <PRE>Stack: ..., value1, value2 -&gt; ..., result</PRE>
  *
- * @version $Id: FCMPG.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class FCMPG extends Instruction implements TypedInstruction, StackProducer, StackConsumer {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FCMPL.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FCMPL.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * FCMPL - Compare floats: value1 &lt; value2
  * <PRE>Stack: ..., value1, value2 -&gt; ..., result</PRE>
  *
- * @version $Id: FCMPL.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class FCMPL extends Instruction implements TypedInstruction, StackProducer, StackConsumer {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FCONST.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FCONST.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -25,8 +25,8 @@
  *
  * <PRE>Stack: ... -&gt; ..., </PRE>
  *
- * @version $Id: FCONST.java 1747278 2016-06-07 17:28:43Z britter $
- * @LastModified: Nov 2017
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public class FCONST extends Instruction implements ConstantPushInstruction {
 
@@ -34,8 +34,8 @@
 
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     FCONST() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FDIV.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FDIV.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * FDIV - Divide floats
  * <PRE>Stack: ..., value1, value2 -&gt; result</PRE>
  *
- * @version $Id: FDIV.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class FDIV extends ArithmeticInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FLOAD.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FLOAD.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,13 +25,13 @@
  * FLOAD - Load float from local variable
  * <PRE>Stack ... -&gt; ..., result</PRE>
  *
- * @version $Id: FLOAD.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class FLOAD extends LoadInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     FLOAD() {
         super(com.sun.org.apache.bcel.internal.Const.FLOAD, com.sun.org.apache.bcel.internal.Const.FLOAD_0);
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FMUL.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FMUL.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * FMUL - Multiply floats
  * <PRE>Stack: ..., value1, value2 -&gt; result</PRE>
  *
- * @version $Id: FMUL.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class FMUL extends ArithmeticInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FNEG.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FNEG.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * FNEG - Negate float
  * <PRE>Stack: ..., value -&gt; ..., result</PRE>
  *
- * @version $Id: FNEG.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class FNEG extends ArithmeticInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FREM.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FREM.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * FREM - Remainder of floats
  * <PRE>Stack: ..., value1, value2 -&gt; result</PRE>
  *
- * @version $Id: FREM.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class FREM extends ArithmeticInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FRETURN.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FRETURN.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * FRETURN -  Return float from method
  * <PRE>Stack: ..., value -&gt; &lt;empty&gt;</PRE>
  *
- * @version $Id: FRETURN.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class FRETURN extends ReturnInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FSTORE.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FSTORE.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,13 +25,13 @@
  * FSTORE - Store float into local variable
  * <PRE>Stack: ..., value -&gt; ... </PRE>
  *
- * @version $Id: FSTORE.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class FSTORE extends StoreInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     FSTORE() {
         super(com.sun.org.apache.bcel.internal.Const.FSTORE, com.sun.org.apache.bcel.internal.Const.FSTORE_0);
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FSUB.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FSUB.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * FSUB - Substract floats
  * <PRE>Stack: ..., value1, value2 -&gt; result</PRE>
  *
- * @version $Id: FSUB.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class FSUB extends ArithmeticInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FieldGen.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FieldGen.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -21,6 +21,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 
 import com.sun.org.apache.bcel.internal.Const;
 import com.sun.org.apache.bcel.internal.classfile.AnnotationEntry;
@@ -35,12 +36,13 @@
 import com.sun.org.apache.bcel.internal.util.BCELComparator;
 
 /**
- * Template class for building up a field. The only extraordinary thing one can
- * do is to add a constant value attribute to a field (which must of course be
- * compatible with to the declared type).
+ * Template class for building up a field.  The only extraordinary thing
+ * one can do is to add a constant value attribute to a field (which must of
+ * course be compatible with to the declared type).
  *
- * @version $Id: FieldGen.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  * @see Field
+ * @LastModified: Jun 2019
  */
 public class FieldGen extends FieldGenOrMethodGen {
 
@@ -48,27 +50,29 @@
     private static BCELComparator bcelComparator = new BCELComparator() {
 
         @Override
-        public boolean equals(final Object o1, final Object o2) {
+        public boolean equals( final Object o1, final Object o2 ) {
             final FieldGen THIS = (FieldGen) o1;
             final FieldGen THAT = (FieldGen) o2;
-            return THIS.getName().equals(THAT.getName())
-                    && THIS.getSignature().equals(THAT.getSignature());
+            return Objects.equals(THIS.getName(), THAT.getName())
+                    && Objects.equals(THIS.getSignature(), THAT.getSignature());
         }
 
+
         @Override
-        public int hashCode(final Object o) {
+        public int hashCode( final Object o ) {
             final FieldGen THIS = (FieldGen) o;
             return THIS.getSignature().hashCode() ^ THIS.getName().hashCode();
         }
     };
 
+
     /**
-     * Declare a field. If it is static (isStatic() == true) and has a basic
-     * type like int or String it may have an initial value associated with it
-     * as defined by setInitValue().
+     * Declare a field. If it is static (isStatic() == true) and has a
+     * basic type like int or String it may have an initial value
+     * associated with it as defined by setInitValue().
      *
      * @param access_flags access qualifiers
-     * @param type field type
+     * @param type  field type
      * @param name field name
      * @param cp constant pool
      */
@@ -79,12 +83,12 @@
         setConstantPool(cp);
     }
 
+
     /**
      * Instantiate from existing field.
      *
      * @param field Field object
-     * @param cp constant pool (must contain the same entries as the field's
-     * constant pool)
+     * @param cp constant pool (must contain the same entries as the field's constant pool)
      */
     public FieldGen(final Field field, final ConstantPoolGen cp) {
         this(field.getAccessFlags(), Type.getType(field.getSignature()), field.getName(), cp);
@@ -93,10 +97,10 @@
             if (attr instanceof ConstantValue) {
                 setValue(((ConstantValue) attr).getConstantValueIndex());
             } else if (attr instanceof Annotations) {
-                final Annotations runtimeAnnotations = (Annotations) attr;
+                final Annotations runtimeAnnotations = (Annotations)attr;
                 final AnnotationEntry[] annotationEntries = runtimeAnnotations.getAnnotationEntries();
                 for (final AnnotationEntry element : annotationEntries) {
-                    addAnnotationEntry(new AnnotationEntryGen(element, cp, false));
+                    addAnnotationEntry(new AnnotationEntryGen(element,cp,false));
                 }
             } else {
                 addAttribute(attr);
@@ -104,87 +108,98 @@
         }
     }
 
-    private void setValue(final int index) {
+
+    private void setValue( final int index ) {
         final ConstantPool cp = super.getConstantPool().getConstantPool();
         final Constant c = cp.getConstant(index);
         value = ((ConstantObject) c).getConstantValue(cp);
     }
 
+
     /**
-     * Set (optional) initial value of field, otherwise it will be set to
-     * null/0/false by the JVM automatically.
+     * Set (optional) initial value of field, otherwise it will be set to null/0/false
+     * by the JVM automatically.
      */
-    public void setInitValue(final String str) {
-        checkType(ObjectType.getInstance("java.lang.String"));
+    public void setInitValue( final String str ) {
+        checkType(  ObjectType.getInstance("java.lang.String"));
         if (str != null) {
             value = str;
         }
     }
 
-    public void setInitValue(final long l) {
+
+    public void setInitValue( final long l ) {
         checkType(Type.LONG);
         if (l != 0L) {
-            value = l;
+            value = Long.valueOf(l);
         }
     }
 
-    public void setInitValue(final int i) {
+
+    public void setInitValue( final int i ) {
         checkType(Type.INT);
         if (i != 0) {
-            value = i;
+            value = Integer.valueOf(i);
         }
     }
 
-    public void setInitValue(final short s) {
+
+    public void setInitValue( final short s ) {
         checkType(Type.SHORT);
         if (s != 0) {
-            value = (int) s;
+            value = Integer.valueOf(s);
         }
     }
 
-    public void setInitValue(final char c) {
+
+    public void setInitValue( final char c ) {
         checkType(Type.CHAR);
         if (c != 0) {
-            value = (int) c;
+            value = Integer.valueOf(c);
         }
     }
 
-    public void setInitValue(final byte b) {
+
+    public void setInitValue( final byte b ) {
         checkType(Type.BYTE);
         if (b != 0) {
-            value = (int) b;
+            value = Integer.valueOf(b);
         }
     }
 
-    public void setInitValue(final boolean b) {
+
+    public void setInitValue( final boolean b ) {
         checkType(Type.BOOLEAN);
         if (b) {
-            value = 1;
+            value = Integer.valueOf(1);
         }
     }
 
-    public void setInitValue(final float f) {
+
+    public void setInitValue( final float f ) {
         checkType(Type.FLOAT);
         if (f != 0.0) {
             value = f;
         }
     }
 
-    public void setInitValue(final double d) {
+
+    public void setInitValue( final double d ) {
         checkType(Type.DOUBLE);
         if (d != 0.0) {
             value = d;
         }
     }
 
-    /**
-     * Remove any initial value.
+
+    /** Remove any initial value.
      */
     public void cancelInitValue() {
         value = null;
     }
 
-    private void checkType(final Type atype) {
+
+    private void checkType( final Type atype ) {
         final Type superType = super.getType();
         if (superType == null) {
             throw new ClassGenException("You haven't defined the type of the field yet");
@@ -197,6 +212,7 @@
         }
     }
 
+
     /**
      * Get field object after having set up all necessary values.
      */
@@ -216,11 +232,12 @@
     }
 
     private void addAnnotationsAsAttribute(final ConstantPoolGen cp) {
-        final Attribute[] attrs = AnnotationEntryGen.getAnnotationAttributes(cp, super.getAnnotationEntries());
+          final Attribute[] attrs = AnnotationEntryGen.getAnnotationAttributes(cp, super.getAnnotationEntries());
         for (final Attribute attr : attrs) {
             addAttribute(attr);
         }
-    }
+      }
+
 
     private int addConstant() {
         switch (super.getType().getType()) { // sic
@@ -243,6 +260,7 @@
         }
     }
 
+
     @Override
     public String getSignature() {
         return super.getType().getSignature();
@@ -250,38 +268,39 @@
 
     private List<FieldObserver> observers;
 
-    /**
-     * Add observer for this object.
+
+    /** Add observer for this object.
      */
-    public void addObserver(final FieldObserver o) {
+    public void addObserver( final FieldObserver o ) {
         if (observers == null) {
             observers = new ArrayList<>();
         }
         observers.add(o);
     }
 
-    /**
-     * Remove observer for this object.
+
+    /** Remove observer for this object.
      */
-    public void removeObserver(final FieldObserver o) {
+    public void removeObserver( final FieldObserver o ) {
         if (observers != null) {
             observers.remove(o);
         }
     }
 
-    /**
-     * Call notify() method on all observers. This method is not called
-     * automatically whenever the state has changed, but has to be called by the
-     * user after he has finished editing the object.
+
+    /** Call notify() method on all observers. This method is not called
+     * automatically whenever the state has changed, but has to be
+     * called by the user after he has finished editing the object.
      */
     public void update() {
         if (observers != null) {
-            for (final FieldObserver observer : observers) {
+            for (final FieldObserver observer : observers ) {
                 observer.notify(this);
             }
         }
     }
 
+
     public String getInitValue() {
         if (value != null) {
             return value.toString();
@@ -289,9 +308,10 @@
         return null;
     }
 
+
     /**
-     * Return string representation close to declaration format, `public static
-     * final short MAX = 100', e.g..
+     * Return string representation close to declaration format,
+     * `public static final short MAX = 100', e.g..
      *
      * @return String representation of field
      */
@@ -313,15 +333,16 @@
         return buf.toString();
     }
 
-    /**
-     * @return deep copy of this field
+
+    /** @return deep copy of this field
      */
-    public FieldGen copy(final ConstantPoolGen cp) {
+    public FieldGen copy( final ConstantPoolGen cp ) {
         final FieldGen fg = (FieldGen) clone();
         fg.setConstantPool(cp);
         return fg;
     }
 
+
     /**
      * @return Comparison strategy object
      */
@@ -329,28 +350,31 @@
         return bcelComparator;
     }
 
+
     /**
      * @param comparator Comparison strategy object
      */
-    public static void setComparator(final BCELComparator comparator) {
+    public static void setComparator( final BCELComparator comparator ) {
         bcelComparator = comparator;
     }
 
+
     /**
-     * Return value as defined by given BCELComparator strategy. By default two
-     * FieldGen objects are said to be equal when their names and signatures are
-     * equal.
+     * Return value as defined by given BCELComparator strategy.
+     * By default two FieldGen objects are said to be equal when
+     * their names and signatures are equal.
      *
      * @see java.lang.Object#equals(java.lang.Object)
      */
     @Override
-    public boolean equals(final Object obj) {
+    public boolean equals( final Object obj ) {
         return bcelComparator.equals(this, obj);
     }
 
+
     /**
-     * Return value as defined by given BCELComparator strategy. By default
-     * return the hashcode of the field's name XOR signature.
+     * Return value as defined by given BCELComparator strategy.
+     * By default return the hashcode of the field's name XOR signature.
      *
      * @see java.lang.Object#hashCode()
      */
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FieldGenOrMethodGen.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FieldGenOrMethodGen.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -27,11 +27,11 @@
 import com.sun.org.apache.bcel.internal.classfile.Attribute;
 
 /**
- * Super class for FieldGen and MethodGen objects, since they have some methods
- * in common!
+ * Super class for FieldGen and MethodGen objects, since they have
+ * some methods in common!
  *
- * @version $Id: FieldGenOrMethodGen.java 1749603 2016-06-21 20:50:19Z ggregory
- * $
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public abstract class FieldGenOrMethodGen extends AccessFlags implements NamedAndTyped, Cloneable {
 
@@ -42,11 +42,13 @@
     private final List<Attribute> attribute_vec = new ArrayList<>();
 
     // @since 6.0
-    private final List<AnnotationEntryGen> annotation_vec = new ArrayList<>();
+    private final List<AnnotationEntryGen>       annotation_vec= new ArrayList<>();
+
 
     protected FieldGenOrMethodGen() {
     }
 
+
     /**
      * @since 6.0
      */
@@ -55,47 +57,53 @@
     }
 
     @Override
-    public void setType(final Type type) { // TODO could be package-protected?
+    public void setType( final Type type ) { // TODO could be package-protected?
         if (type.getType() == Const.T_ADDRESS) {
             throw new IllegalArgumentException("Type can not be " + type);
         }
         this.type = type;
     }
 
+
     @Override
     public Type getType() {
         return type;
     }
 
-    /**
-     * @return name of method/field.
+
+    /** @return name of method/field.
      */
     @Override
     public String getName() {
         return name;
     }
 
+
     @Override
-    public void setName(final String name) { // TODO could be package-protected?
+    public void setName( final String name ) { // TODO could be package-protected?
         this.name = name;
     }
 
+
     public ConstantPoolGen getConstantPool() {
         return cp;
     }
 
-    public void setConstantPool(final ConstantPoolGen cp) { // TODO could be package-protected?
+
+    public void setConstantPool( final ConstantPoolGen cp ) { // TODO could be package-protected?
         this.cp = cp;
     }
 
+
     /**
-     * Add an attribute to this method. Currently, the JVM knows about the
-     * `Code', `ConstantValue', `Synthetic' and `Exceptions' attributes. Other
-     * attributes will be ignored by the JVM but do no harm.
+     * Add an attribute to this method. Currently, the JVM knows about
+     * the `Code', `ConstantValue', `Synthetic' and `Exceptions'
+     * attributes. Other attributes will be ignored by the JVM but do no
+     * harm.
      *
      * @param a attribute to be added
      */
-    public void addAttribute(final Attribute a) {
+    public void addAttribute( final Attribute a ) {
         attribute_vec.add(a);
     }
 
@@ -107,10 +115,11 @@
         annotation_vec.add(ag);
     }
 
+
     /**
      * Remove an attribute.
      */
-    public void removeAttribute(final Attribute a) {
+    public void removeAttribute( final Attribute a ) {
         attribute_vec.remove(a);
     }
 
@@ -122,6 +131,7 @@
         annotation_vec.remove(ag);
     }
 
+
     /**
      * Remove all attributes.
      */
@@ -137,6 +147,7 @@
         annotation_vec.clear();
     }
 
+
     /**
      * @return all attributes of this method.
      */
@@ -148,15 +159,16 @@
 
     public AnnotationEntryGen[] getAnnotationEntries() {
         final AnnotationEntryGen[] annotations = new AnnotationEntryGen[annotation_vec.size()];
-        annotation_vec.toArray(annotations);
-        return annotations;
-    }
+          annotation_vec.toArray(annotations);
+          return annotations;
+      }
 
-    /**
-     * @return signature of method/field.
+
+    /** @return signature of method/field.
      */
     public abstract String getSignature();
 
+
     @Override
     public Object clone() {
         try {
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FieldInstruction.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FieldInstruction.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,13 +26,13 @@
 /**
  * Super class for the GET/PUTxxx family of instructions.
  *
- * @version $Id: FieldInstruction.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public abstract class FieldInstruction extends FieldOrMethod {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     FieldInstruction() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FieldObserver.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FieldObserver.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * Imnplement this interface if you're interested in changes to a FieldGen object
  * and register yourself with addObserver().
  *
- * @version $Id: FieldObserver.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public interface FieldObserver {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FieldOrMethod.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FieldOrMethod.java	Wed Jun 26 05:49:59 2019 +0000
@@ -31,13 +31,13 @@
  * Super class for InvokeInstruction and FieldInstruction, since they have
  * some methods in common!
  *
- * @version $Id: FieldOrMethod.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  */
 public abstract class FieldOrMethod extends CPInstruction implements LoadClass {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     FieldOrMethod() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/GETFIELD.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/GETFIELD.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,47 +25,52 @@
 
 /**
  * GETFIELD - Fetch field from object
- * <PRE>Stack: ..., objectref -&gt; ..., value</PRE> OR
+ * <PRE>Stack: ..., objectref -&gt; ..., value</PRE>
+ * OR
  * <PRE>Stack: ..., objectref -&gt; ..., value.word1, value.word2</PRE>
  *
- * @version $Id: GETFIELD.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class GETFIELD extends FieldInstruction implements ExceptionThrower, StackConsumer,
         StackProducer {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     GETFIELD() {
     }
 
+
     public GETFIELD(final int index) {
         super(Const.GETFIELD, index);
     }
 
+
     @Override
-    public int produceStack(final ConstantPoolGen cpg) {
+    public int produceStack( final ConstantPoolGen cpg ) {
         return getFieldSize(cpg);
     }
 
+
     @Override
     public Class<?>[] getExceptions() {
         return ExceptionConst.createExceptions(ExceptionConst.EXCS.EXCS_FIELD_AND_METHOD_RESOLUTION,
-                ExceptionConst.NULL_POINTER_EXCEPTION,
-                ExceptionConst.INCOMPATIBLE_CLASS_CHANGE_ERROR);
+            ExceptionConst.NULL_POINTER_EXCEPTION,
+            ExceptionConst.INCOMPATIBLE_CLASS_CHANGE_ERROR);
     }
 
+
     /**
-     * Call corresponding visitor method(s). The order is: Call visitor methods
-     * of implemented interfaces first, then call methods according to the class
-     * hierarchy in descending order, i.e., the most specific visitXXX() call
-     * comes last.
+     * Call corresponding visitor method(s). The order is:
+     * Call visitor methods of implemented interfaces first, then
+     * call methods according to the class hierarchy in descending order,
+     * i.e., the most specific visitXXX() call comes last.
      *
      * @param v Visitor object
      */
     @Override
-    public void accept(final Visitor v) {
+    public void accept( final Visitor v ) {
         v.visitExceptionThrower(this);
         v.visitStackConsumer(this);
         v.visitStackProducer(this);
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/GETSTATIC.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/GETSTATIC.java	Wed Jun 26 05:49:59 2019 +0000
@@ -30,13 +30,13 @@
  * OR
  * <PRE>Stack: ..., -&gt; ..., value.word1, value.word2</PRE>
  *
- * @version $Id: GETSTATIC.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class GETSTATIC extends FieldInstruction implements PushInstruction, ExceptionThrower {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     GETSTATIC() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/GOTO.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/GOTO.java	Wed Jun 26 05:49:59 2019 +0000
@@ -27,13 +27,13 @@
 /**
  * GOTO - Branch always (to relative offset, not absolute address)
  *
- * @version $Id: GOTO.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  */
 public class GOTO extends GotoInstruction implements VariableLengthInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     GOTO() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/GOTO_W.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/GOTO_W.java	Wed Jun 26 05:49:59 2019 +0000
@@ -29,13 +29,13 @@
 /**
  * GOTO_W - Branch always (to relative offset, not absolute address)
  *
- * @version $Id: GOTO_W.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class GOTO_W extends GotoInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     GOTO_W() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/GotoInstruction.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/GotoInstruction.java	Wed Jun 26 05:49:59 2019 +0000
@@ -24,7 +24,7 @@
 /**
  * Super class for GOTO
  *
- * @version $Id: GotoInstruction.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public abstract class GotoInstruction extends BranchInstruction implements UnconditionalBranch {
 
@@ -34,8 +34,8 @@
 
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     GotoInstruction() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/I2B.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/I2B.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * I2B - Convert int to byte
  * <PRE>Stack: ..., value -&gt; ..., result</PRE>
  *
- * @version $Id: I2B.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class I2B extends ConversionInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/I2C.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/I2C.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * I2C - Convert int to char
  * <PRE>Stack: ..., value -&gt; ..., result</PRE>
  *
- * @version $Id: I2C.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class I2C extends ConversionInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/I2D.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/I2D.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * I2D - Convert int to double
  * <PRE>Stack: ..., value -&gt; ..., result.word1, result.word2</PRE>
  *
- * @version $Id: I2D.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class I2D extends ConversionInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/I2F.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/I2F.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * I2F - Convert int to float
  * <PRE>Stack: ..., value -&gt; ..., result</PRE>
  *
- * @version $Id: I2F.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class I2F extends ConversionInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/I2L.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/I2L.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * I2L - Convert int to long
  * <PRE>Stack: ..., value -&gt; ..., result.word1, result.word2</PRE>
  *
- * @version $Id: I2L.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class I2L extends ConversionInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/I2S.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/I2S.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * I2S - Convert int to short
  * <PRE>Stack: ..., value -&gt; ..., result</PRE>
  *
- * @version $Id: I2S.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class I2S extends ConversionInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IADD.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IADD.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * IADD - Add ints
  * <PRE>Stack: ..., value1, value2 -&gt; result</PRE>
  *
- * @version $Id: IADD.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class IADD extends ArithmeticInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IALOAD.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IALOAD.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * IALOAD - Load int from array
  * <PRE>Stack: ..., arrayref, index -&gt; ..., value</PRE>
  *
- * @version $Id: IALOAD.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class IALOAD extends ArrayInstruction implements StackProducer {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IAND.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IAND.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * IAND - Bitwise AND int
  * <PRE>Stack: ..., value1, value2 -&gt; ..., result</PRE>
  *
- * @version $Id: IAND.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class IAND extends ArithmeticInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IASTORE.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IASTORE.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * IASTORE -  Store into int array
  * <PRE>Stack: ..., arrayref, index, value -&gt; ...</PRE>
  *
- * @version $Id: IASTORE.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class IASTORE extends ArrayInstruction implements StackConsumer {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ICONST.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ICONST.java	Wed Jun 26 05:49:59 2019 +0000
@@ -24,19 +24,21 @@
  *
  * <PRE>Stack: ... -&gt; ..., </PRE>
  *
- * @version $Id: ICONST.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class ICONST extends Instruction implements ConstantPushInstruction {
 
     private int value;
 
+
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     ICONST() {
     }
 
+
     public ICONST(final int i) {
         super(com.sun.org.apache.bcel.internal.Const.ICONST_0, (short) 1);
         if ((i >= -1) && (i <= 5)) {
@@ -47,29 +49,31 @@
         value = i;
     }
 
+
     @Override
     public Number getValue() {
         return Integer.valueOf(value);
     }
 
-    /**
-     * @return Type.INT
+
+    /** @return Type.INT
      */
     @Override
-    public Type getType(final ConstantPoolGen cp) {
+    public Type getType( final ConstantPoolGen cp ) {
         return Type.INT;
     }
 
+
     /**
-     * Call corresponding visitor method(s). The order is: Call visitor methods
-     * of implemented interfaces first, then call methods according to the class
-     * hierarchy in descending order, i.e., the most specific visitXXX() call
-     * comes last.
+     * Call corresponding visitor method(s). The order is:
+     * Call visitor methods of implemented interfaces first, then
+     * call methods according to the class hierarchy in descending order,
+     * i.e., the most specific visitXXX() call comes last.
      *
      * @param v Visitor object
      */
     @Override
-    public void accept(final Visitor v) {
+    public void accept( final Visitor v ) {
         v.visitPushInstruction(this);
         v.visitStackProducer(this);
         v.visitTypedInstruction(this);
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IDIV.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IDIV.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -26,8 +26,8 @@
  * IDIV - Divide ints
  * <PRE>Stack: ..., value1, value2 -&gt; result</PRE>
  *
- * @version $Id: IDIV.java 1747278 2016-06-07 17:28:43Z britter $
- * @LastModified: Oct 2017
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public class IDIV extends ArithmeticInstruction implements ExceptionThrower {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IFEQ.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IFEQ.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,13 +26,13 @@
  *
  * <PRE>Stack: ..., value -&gt; ...</PRE>
  *
- * @version $Id: IFEQ.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class IFEQ extends IfInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     IFEQ() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IFGE.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IFGE.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,13 +26,13 @@
  *
  * <PRE>Stack: ..., value -&gt; ...</PRE>
  *
- * @version $Id: IFGE.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class IFGE extends IfInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     IFGE() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IFGT.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IFGT.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,13 +26,13 @@
  *
  * <PRE>Stack: ..., value -&gt; ...</PRE>
  *
- * @version $Id: IFGT.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class IFGT extends IfInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     IFGT() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IFLE.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IFLE.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,13 +26,13 @@
  *
  * <PRE>Stack: ..., value -&gt; ...</PRE>
  *
- * @version $Id: IFLE.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class IFLE extends IfInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     IFLE() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IFLT.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IFLT.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,13 +26,13 @@
  *
  * <PRE>Stack: ..., value -&gt; ...</PRE>
  *
- * @version $Id: IFLT.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class IFLT extends IfInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     IFLT() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IFNE.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IFNE.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,13 +26,13 @@
  *
  * <PRE>Stack: ..., value -&gt; ...</PRE>
  *
- * @version $Id: IFNE.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class IFNE extends IfInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     IFNE() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IFNONNULL.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IFNONNULL.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,13 +26,13 @@
  *
  * <PRE>Stack: ..., reference -&gt; ...</PRE>
  *
- * @version $Id: IFNONNULL.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class IFNONNULL extends IfInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     IFNONNULL() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IFNULL.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IFNULL.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,13 +26,13 @@
  *
  * <PRE>Stack: ..., reference -&gt; ...</PRE>
  *
- * @version $Id: IFNULL.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class IFNULL extends IfInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     IFNULL() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ACMPEQ.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ACMPEQ.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,13 +26,13 @@
  *
  * <PRE>Stack: ..., value1, value2 -&gt; ...</PRE>
  *
- * @version $Id: IF_ACMPEQ.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class IF_ACMPEQ extends IfInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     IF_ACMPEQ() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ACMPNE.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ACMPNE.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,13 +26,13 @@
  *
  * <PRE>Stack: ..., value1, value2 -&gt; ...</PRE>
  *
- * @version $Id: IF_ACMPNE.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class IF_ACMPNE extends IfInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     IF_ACMPNE() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPEQ.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPEQ.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,13 +26,13 @@
  *
  * <PRE>Stack: ..., value1, value2 -&gt; ...</PRE>
  *
- * @version $Id: IF_ICMPEQ.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class IF_ICMPEQ extends IfInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     IF_ICMPEQ() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPGE.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPGE.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,13 +26,13 @@
  *
  * <PRE>Stack: ..., value1, value2 -&gt; ...</PRE>
  *
- * @version $Id: IF_ICMPGE.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class IF_ICMPGE extends IfInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     IF_ICMPGE() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPGT.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPGT.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,13 +26,13 @@
  *
  * <PRE>Stack: ..., value1, value2 -&gt; ...</PRE>
  *
- * @version $Id: IF_ICMPGT.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class IF_ICMPGT extends IfInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     IF_ICMPGT() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPLE.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPLE.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,13 +26,13 @@
  *
  * <PRE>Stack: ..., value1, value2 -&gt; ...</PRE>
  *
- * @version $Id: IF_ICMPLE.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class IF_ICMPLE extends IfInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     IF_ICMPLE() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPLT.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPLT.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,13 +26,13 @@
  *
  * <PRE>Stack: ..., value1, value2 -&gt; ...</PRE>
  *
- * @version $Id: IF_ICMPLT.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class IF_ICMPLT extends IfInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     IF_ICMPLT() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPNE.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPNE.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,13 +26,13 @@
  *
  * <PRE>Stack: ..., value1, value2 -&gt; ...</PRE>
  *
- * @version $Id: IF_ICMPNE.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class IF_ICMPNE extends IfInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     IF_ICMPNE() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IINC.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IINC.java	Wed Jun 26 05:49:59 2019 +0000
@@ -29,7 +29,7 @@
 /**
  * IINC - Increment local variable by constant
  *
- * @version $Id: IINC.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class IINC extends LocalVariableInstruction {
 
@@ -38,8 +38,8 @@
 
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     IINC() {
     }
@@ -79,7 +79,12 @@
 
 
     private void setWide() {
-        wide = (super.getIndex() > com.sun.org.apache.bcel.internal.Const.MAX_BYTE) || (Math.abs(c) > Byte.MAX_VALUE);
+        wide = super.getIndex() > com.sun.org.apache.bcel.internal.Const.MAX_BYTE;
+        if (c > 0) {
+            wide = wide || (c > Byte.MAX_VALUE);
+        } else {
+            wide = wide || (c < Byte.MIN_VALUE);
+        }
         if (wide) {
             super.setLength(6); // wide byte included
         } else {
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ILOAD.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ILOAD.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,13 +25,13 @@
  * ILOAD - Load int from local variable onto stack
  * <PRE>Stack: ... -&gt; ..., result</PRE>
  *
- * @version $Id: ILOAD.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class ILOAD extends LoadInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     ILOAD() {
         super(com.sun.org.apache.bcel.internal.Const.ILOAD, com.sun.org.apache.bcel.internal.Const.ILOAD_0);
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IMPDEP1.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IMPDEP1.java	Wed Jun 26 05:49:59 2019 +0000
@@ -24,7 +24,7 @@
 /**
  * IMPDEP1 - Implementation dependent
  *
- * @version $Id: IMPDEP1.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class IMPDEP1 extends Instruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IMPDEP2.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IMPDEP2.java	Wed Jun 26 05:49:59 2019 +0000
@@ -24,7 +24,7 @@
 /**
  * IMPDEP2 - Implementation dependent
  *
- * @version $Id: IMPDEP2.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class IMPDEP2 extends Instruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IMUL.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IMUL.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * IMUL - Multiply ints
  * <PRE>Stack: ..., value1, value2 -&gt; result</PRE>
  *
- * @version $Id: IMUL.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class IMUL extends ArithmeticInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INEG.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INEG.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * INEG - Negate int
  * <PRE>Stack: ..., value -&gt; ..., result</PRE>
  *
- * @version $Id: INEG.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class INEG extends ArithmeticInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INSTANCEOF.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INSTANCEOF.java	Wed Jun 26 05:49:59 2019 +0000
@@ -27,14 +27,14 @@
  * INSTANCEOF - Determine if object is of given type
  * <PRE>Stack: ..., objectref -&gt; ..., result</PRE>
  *
- * @version $Id: INSTANCEOF.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class INSTANCEOF extends CPInstruction implements LoadClass, ExceptionThrower,
         StackProducer, StackConsumer {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     INSTANCEOF() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKEDYNAMIC.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKEDYNAMIC.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -40,13 +40,13 @@
  * <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokedynamic">
  * The invokedynamic instruction in The Java Virtual Machine Specification</a>
  * @since 6.0
- * @LastModified: Nov 2017
+ * @LastModified: Jun 2019
  */
 public class INVOKEDYNAMIC extends InvokeInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     INVOKEDYNAMIC() {
     }
@@ -137,4 +137,19 @@
         final ConstantInvokeDynamic cid = (ConstantInvokeDynamic) cp.getConstant(super.getIndex(), Const.CONSTANT_InvokeDynamic);
         return ((ConstantNameAndType) cp.getConstant(cid.getNameAndTypeIndex())).getName(cp);
     }
+
+
+    /**
+     * Since InvokeDynamic doesn't refer to a reference type, just return java.lang.Object,
+     * as that is the only type we can say for sure the reference will be.
+     *
+     * @param cpg
+     *            the ConstantPoolGen used to create the instruction
+     * @return an ObjectType for java.lang.Object
+     * @since 6.1
+     */
+    @Override
+    public ReferenceType getReferenceType(final ConstantPoolGen cpg) {
+        return new ObjectType(Object.class.getName());
+    }
 }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKEINTERFACE.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKEINTERFACE.java	Wed Jun 26 05:49:59 2019 +0000
@@ -33,7 +33,7 @@
  * INVOKEINTERFACE - Invoke interface method
  * <PRE>Stack: ..., objectref, [arg1, [arg2 ...]] -&gt; ...</PRE>
  *
- * @version $Id: INVOKEINTERFACE.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  * @see
  * <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokeinterface">
  * The invokeinterface instruction in The Java Virtual Machine Specification</a>
@@ -44,8 +44,8 @@
 
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     INVOKEINTERFACE() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKESPECIAL.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKESPECIAL.java	Wed Jun 26 05:49:59 2019 +0000
@@ -33,7 +33,7 @@
  *
  * <PRE>Stack: ..., objectref, [arg1, [arg2 ...]] -&gt; ...</PRE>
  *
- * @version $Id: INVOKESPECIAL.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  * @see
  * <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokespecial">
  * The invokespecial instruction in The Java Virtual Machine Specification</a>
@@ -41,8 +41,8 @@
 public class INVOKESPECIAL extends InvokeInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     INVOKESPECIAL() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKESTATIC.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKESTATIC.java	Wed Jun 26 05:49:59 2019 +0000
@@ -32,7 +32,7 @@
  *
  * <PRE>Stack: ..., [arg1, [arg2 ...]] -&gt; ...</PRE>
  *
- * @version $Id: INVOKESTATIC.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  * @see
  * <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokestatic">
  * The invokestatic instruction in The Java Virtual Machine Specification</a>
@@ -40,8 +40,8 @@
 public class INVOKESTATIC extends InvokeInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     INVOKESTATIC() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKEVIRTUAL.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKEVIRTUAL.java	Wed Jun 26 05:49:59 2019 +0000
@@ -32,7 +32,7 @@
  *
  * <PRE>Stack: ..., objectref, [arg1, [arg2 ...]] -&gt; ...</PRE>
  *
- * @version $Id: INVOKEVIRTUAL.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  * @see
  * <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokevirtual">
  * The invokevirtual instruction in The Java Virtual Machine Specification</a>
@@ -40,8 +40,8 @@
 public class INVOKEVIRTUAL extends InvokeInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     INVOKEVIRTUAL() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IOR.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IOR.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * IOR - Bitwise OR int
  * <PRE>Stack: ..., value1, value2 -&gt; ..., result</PRE>
  *
- * @version $Id: IOR.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class IOR extends ArithmeticInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IREM.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IREM.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -26,8 +26,8 @@
  * IREM - Remainder of int
  * <PRE>Stack: ..., value1, value2 -&gt; result</PRE>
  *
- * @version $Id: IREM.java 1747278 2016-06-07 17:28:43Z britter $
- * @LastModified: Oct 2017
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public class IREM extends ArithmeticInstruction implements ExceptionThrower {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IRETURN.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IRETURN.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * IRETURN -  Return int from method
  * <PRE>Stack: ..., value -&gt; &lt;empty&gt;</PRE>
  *
- * @version $Id: IRETURN.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class IRETURN extends ReturnInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ISHL.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ISHL.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * ISHL - Arithmetic shift left int
  * <PRE>Stack: ..., value1, value2 -&gt; ..., result</PRE>
  *
- * @version $Id: ISHL.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class ISHL extends ArithmeticInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ISHR.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ISHR.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * ISHR - Arithmetic shift right int
  * <PRE>Stack: ..., value1, value2 -&gt; ..., result</PRE>
  *
- * @version $Id: ISHR.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class ISHR extends ArithmeticInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ISTORE.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ISTORE.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,13 +25,13 @@
  * ISTORE - Store int from stack into local variable
  * <PRE>Stack: ..., value -&gt; ... </PRE>
  *
- * @version $Id: ISTORE.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class ISTORE extends StoreInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     ISTORE() {
         super(com.sun.org.apache.bcel.internal.Const.ISTORE, com.sun.org.apache.bcel.internal.Const.ISTORE_0);
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ISUB.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ISUB.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * ISUB - Substract ints
  * <PRE>Stack: ..., value1, value2 -&gt; result</PRE>
  *
- * @version $Id: ISUB.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class ISUB extends ArithmeticInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IUSHR.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IUSHR.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * IUSHR - Logical shift right int
  * <PRE>Stack: ..., value1, value2 -&gt; ..., result</PRE>
  *
- * @version $Id: IUSHR.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class IUSHR extends ArithmeticInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IXOR.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IXOR.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * IXOR - Bitwise XOR int
  * <PRE>Stack: ..., value1, value2 -&gt; ..., result</PRE>
  *
- * @version $Id: IXOR.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class IXOR extends ArithmeticInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IfInstruction.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IfInstruction.java	Wed Jun 26 05:49:59 2019 +0000
@@ -24,13 +24,13 @@
 /**
  * Super class for the IFxxx family of instructions.
  *
- * @version $Id: IfInstruction.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public abstract class IfInstruction extends BranchInstruction implements StackConsumer {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     IfInstruction() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IndexedInstruction.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IndexedInstruction.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * Denote entity that refers to an index, e.g. local variable instructions,
  * RET, CPInstruction, etc.
  *
- * @version $Id: IndexedInstruction.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public interface IndexedInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/Instruction.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/Instruction.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -29,7 +29,8 @@
 /**
  * Abstract super class for all Java byte codes.
  *
- * @version $Id: Instruction.java 1750029 2016-06-23 22:14:38Z sebb $
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public abstract class Instruction implements Cloneable {
 
@@ -38,50 +39,54 @@
 
     private static InstructionComparator cmp = InstructionComparator.DEFAULT;
 
+
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     Instruction() {
     }
 
+
     public Instruction(final short opcode, final short length) {
         this.length = length;
         this.opcode = opcode;
     }
 
+
     /**
      * Dump instruction as byte code to stream out.
-     *
      * @param out Output stream
      */
-    public void dump(final DataOutputStream out) throws IOException {
+    public void dump( final DataOutputStream out ) throws IOException {
         out.writeByte(opcode); // Common for all instructions
     }
 
-    /**
-     * @return name of instruction, i.e., opcode name
+
+    /** @return name of instruction, i.e., opcode name
      */
     public String getName() {
         return Const.getOpcodeName(opcode);
     }
 
+
     /**
      * Long output format:
      *
-     * &lt;name of opcode&gt; "["&lt;opcode number&gt;"]" "("&lt;length of
-     * instruction&gt;")"
+     * &lt;name of opcode&gt; "["&lt;opcode number&gt;"]"
+     * "("&lt;length of instruction&gt;")"
      *
      * @param verbose long/short format switch
      * @return mnemonic for instruction
      */
-    public String toString(final boolean verbose) {
+    public String toString( final boolean verbose ) {
         if (verbose) {
             return getName() + "[" + opcode + "](" + length + ")";
         }
         return getName();
     }
 
+
     /**
      * @return mnemonic for instruction in verbose format
      */
@@ -90,17 +95,19 @@
         return toString(true);
     }
 
+
     /**
      * @return mnemonic for instruction with sumbolic references resolved
      */
-    public String toString(final ConstantPool cp) {
+    public String toString( final ConstantPool cp ) {
         return toString(false);
     }
 
+
     /**
-     * Use with caution, since `BranchInstruction's have a `target' reference
-     * which is not copied correctly (only basic types are). This also applies
-     * for `Select' instructions with their multiple branch targets.
+     * Use with caution, since `BranchInstruction's have a `target' reference which
+     * is not copied correctly (only basic types are). This also applies for
+     * `Select' instructions with their multiple branch targets.
      *
      * @see BranchInstruction
      * @return (shallow) copy of an instruction
@@ -120,30 +127,30 @@
         return i;
     }
 
+
     /**
      * Read needed data (e.g. index) from file.
      *
      * @param bytes byte sequence to read from
      * @param wide "wide" instruction flag
-     * @throws IOException may be thrown if the implementation needs to read
-     * data from the file
+     * @throws IOException may be thrown if the implementation needs to read data from the file
      */
-    protected void initFromFile(final ByteSequence bytes, final boolean wide) throws IOException {
+    protected void initFromFile( final ByteSequence bytes, final boolean wide ) throws IOException {
     }
 
+
     /**
      * Read an instruction from (byte code) input stream and return the
      * appropiate object.
      * <p>
      * If the Instruction is defined in {@link InstructionConst}, then the
      * singleton instance is returned.
-     *
      * @param bytes input stream bytes
      * @return instruction object being read
      * @see InstructionConst#getInstruction(int)
      */
     // @since 6.0 no longer final
-    public static Instruction readInstruction(final ByteSequence bytes) throws IOException {
+    public static Instruction readInstruction( final ByteSequence bytes ) throws IOException {
         boolean wide = false;
         short opcode = (short) bytes.readUnsignedByte();
         Instruction obj = null;
@@ -463,27 +470,29 @@
     }
 
     /**
-     * This method also gives right results for instructions whose effect on the
-     * stack depends on the constant pool entry they reference.
-     *
-     * @return Number of words consumed from stack by this instruction, or
-     * Constants.UNPREDICTABLE, if this can not be computed statically
+     * This method also gives right results for instructions whose
+     * effect on the stack depends on the constant pool entry they
+     * reference.
+     *  @return Number of words consumed from stack by this instruction,
+     * or Constants.UNPREDICTABLE, if this can not be computed statically
      */
-    public int consumeStack(final ConstantPoolGen cpg) {
+    public int consumeStack( final ConstantPoolGen cpg ) {
         return Const.getConsumeStack(opcode);
     }
 
+
     /**
-     * This method also gives right results for instructions whose effect on the
-     * stack depends on the constant pool entry they reference.
-     *
-     * @return Number of words produced onto stack by this instruction, or
-     * Constants.UNPREDICTABLE, if this can not be computed statically
+     * This method also gives right results for instructions whose
+     * effect on the stack depends on the constant pool entry they
+     * reference.
+     * @return Number of words produced onto stack by this instruction,
+     * or Constants.UNPREDICTABLE, if this can not be computed statically
      */
-    public int produceStack(final ConstantPoolGen cpg) {
+    public int produceStack( final ConstantPoolGen cpg ) {
         return Const.getProduceStack(opcode);
     }
 
+
     /**
      * @return this instructions opcode
      */
@@ -491,6 +500,7 @@
         return opcode;
     }
 
+
     /**
      * @return length (in bytes) of instruction
      */
@@ -498,75 +508,71 @@
         return length;
     }
 
-    /**
-     * Needed in readInstruction and subclasses in this package
-     */
-    final void setOpcode(final short opcode) {
-        this.opcode = opcode;
-    }
 
     /**
      * Needed in readInstruction and subclasses in this package
-     *
+     */
+    final void setOpcode( final short opcode ) {
+        this.opcode = opcode;
+    }
+
+
+    /**
+     * Needed in readInstruction and subclasses in this package
      * @since 6.0
      */
-    final void setLength(final int length) {
+    final void setLength( final int length ) {
         this.length = (short) length; // TODO check range?
     }
 
-    /**
-     * Some instructions may be reused, so don't do anything by default.
+
+    /** Some instructions may be reused, so don't do anything by default.
      */
     void dispose() {
     }
 
+
     /**
-     * Call corresponding visitor method(s). The order is: Call visitor methods
-     * of implemented interfaces first, then call methods according to the class
-     * hierarchy in descending order, i.e., the most specific visitXXX() call
-     * comes last.
+     * Call corresponding visitor method(s). The order is:
+     * Call visitor methods of implemented interfaces first, then
+     * call methods according to the class hierarchy in descending order,
+     * i.e., the most specific visitXXX() call comes last.
      *
      * @param v Visitor object
      */
-    public abstract void accept(Visitor v);
+    public abstract void accept( Visitor v );
+
 
-    /**
-     * Get Comparator object used in the equals() method to determine equality
-     * of instructions.
+    /** Get Comparator object used in the equals() method to determine
+     * equality of instructions.
      *
      * @return currently used comparator for equals()
-     * @deprecated (6.0) use the built in comparator, or wrap this class in
-     * another object that implements these methods
+     * @deprecated (6.0) use the built in comparator, or wrap this class in another object that implements these methods
      */
     @Deprecated
     public static InstructionComparator getComparator() {
         return cmp;
     }
 
-    /**
-     * Set comparator to be used for equals().
-     *
-     * @deprecated (6.0) use the built in comparator, or wrap this class in
-     * another object that implements these methods
+
+    /** Set comparator to be used for equals().
+      * @deprecated (6.0) use the built in comparator, or wrap this class in another object that implements these methods
      */
     @Deprecated
-    public static void setComparator(final InstructionComparator c) {
+    public static void setComparator( final InstructionComparator c ) {
         cmp = c;
     }
 
-    /**
-     * Check for equality, delegated to comparator
-     *
+
+    /** Check for equality, delegated to comparator
      * @return true if that is an Instruction and has the same opcode
      */
     @Override
-    public boolean equals(final Object that) {
+    public boolean equals( final Object that ) {
         return (that instanceof Instruction) ? cmp.equals(this, (Instruction) that) : false;
     }
 
-    /**
-     * calculate the hashCode of this object
-     *
+    /** calculate the hashCode of this object
      * @return the hashCode
      * @since 6.0
      */
@@ -577,7 +583,6 @@
 
     /**
      * Check if the value can fit in a byte (signed)
-     *
      * @param value the value to check
      * @return true if the value is in range
      * @since 6.0
@@ -588,7 +593,6 @@
 
     /**
      * Check if the value can fit in a short (signed)
-     *
      * @param value the value to check
      * @return true if the value is in range
      * @since 6.0
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionComparator.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionComparator.java	Wed Jun 26 05:49:59 2019 +0000
@@ -31,7 +31,7 @@
  * instructions must have the same target.
  *
  * @see Instruction
- * @version $Id: InstructionComparator.java 1749597 2016-06-21 20:28:51Z ggregory $
+ * @version $Id$
  */
 public interface InstructionComparator {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionConst.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionConst.java	Wed Jun 26 05:49:59 2019 +0000
@@ -37,7 +37,7 @@
  * The Instructions can also accessed directly under their names, so
  * it's possible to write il.append(Instruction.ICONST_0);
  *
- * @version $Id: InstructionConst.java 1695415 2015-08-12 01:02:39Z chas $
+ * @version $Id: InstructionConstants.java 1695415 2015-08-12 01:02:39Z chas $
  */
 public final class InstructionConst {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionFactory.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionFactory.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -22,23 +22,24 @@
 import com.sun.org.apache.bcel.internal.Const;
 
 /**
- * Instances of this class may be used, e.g., to generate typed versions of
- * instructions. Its main purpose is to be used as the byte code generating
- * backend of a compiler. You can subclass it to add your own create methods.
+ * Instances of this class may be used, e.g., to generate typed
+ * versions of instructions. Its main purpose is to be used as the
+ * byte code generating backend of a compiler. You can subclass it to
+ * add your own create methods.
  * <p>
- * Note: The static createXXX methods return singleton instances from the
- * {@link InstructionConst} class.
+ * Note: The static createXXX methods return singleton instances
+ * from the {@link InstructionConst} class.
  *
- * @version $Id: InstructionFactory.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  * @see Const
  * @see InstructionConst
- * @LastModified: Nov 2017
+ * @LastModified: Jun 2019
  */
 public class InstructionFactory {
 
     // N.N. These must agree with the order of Constants.T_CHAR through T_LONG
     private static final String[] short_names = {
-        "C", "F", "D", "B", "S", "I", "L"
+            "C", "F", "D", "B", "S", "I", "L"
     };
 
     private ClassGen cg;
@@ -49,33 +50,33 @@
         this.cp = cp;
     }
 
-    /**
-     * Initialize with ClassGen object
+
+    /** Initialize with ClassGen object
      */
     public InstructionFactory(final ClassGen cg) {
         this(cg, cg.getConstantPool());
     }
 
-    /**
-     * Initialize just with ConstantPoolGen object
+
+    /** Initialize just with ConstantPoolGen object
      */
     public InstructionFactory(final ConstantPoolGen cp) {
         this(null, cp);
     }
 
-    /**
-     * Create an invoke instruction. (Except for invokedynamic.)
+
+    /** Create an invoke instruction. (Except for invokedynamic.)
      *
      * @param class_name name of the called class
      * @param name name of the called method
      * @param ret_type return type of method
      * @param arg_types argument types of method
-     * @param kind how to invoke, i.e., INVOKEINTERFACE, INVOKESTATIC,
-     * INVOKEVIRTUAL, or INVOKESPECIAL
+     * @param kind how to invoke, i.e., INVOKEINTERFACE, INVOKESTATIC, INVOKEVIRTUAL,
+     * or INVOKESPECIAL
      * @see Const
      */
-    public InvokeInstruction createInvoke(final String class_name, final String name, final Type ret_type,
-            final Type[] arg_types, final short kind) {
+    public InvokeInstruction createInvoke( final String class_name, final String name,
+            final Type ret_type, final Type[] arg_types, final short kind ) {
         int index;
         int nargs = 0;
         final String signature = Type.getMethodSignature(ret_type, arg_types);
@@ -103,8 +104,7 @@
         }
     }
 
-    /**
-     * Create an invokedynamic instruction.
+    /** Create an invokedynamic instruction.
      *
      * @param bootstrap_index index into the bootstrap_methods array
      * @param name name of the called method
@@ -112,30 +112,30 @@
      * @param arg_types argument types of method
      * @see Constants
      */
-    /*
-     * createInvokeDynamic only needed if instrumention code wants to generate
-     * a new invokedynamic instruction.  I don't think we need.  (markro)
-     *
-     public InvokeInstruction createInvokeDynamic( int bootstrap_index, String name, Type ret_type,
-     Type[] arg_types) {
-     int index;
-     int nargs = 0;
-     String signature = Type.getMethodSignature(ret_type, arg_types);
-     for (int i = 0; i < arg_types.length; i++) {
-     nargs += arg_types[i].getSize();
-     }
-     // UNDONE - needs to be added to ConstantPoolGen
-     //index = cp.addInvokeDynamic(bootstrap_index, name, signature);
-     index = 0;
-     return new INVOKEDYNAMIC(index);
-     }
-     */
-    /**
-     * Create a call to the most popular System.out.println() method.
+/*
+ * createInvokeDynamic only needed if instrumention code wants to generate
+ * a new invokedynamic instruction.  I don't think we need.  (markro)
+ *
+    public InvokeInstruction createInvokeDynamic( int bootstrap_index, String name, Type ret_type,
+            Type[] arg_types) {
+        int index;
+        int nargs = 0;
+        String signature = Type.getMethodSignature(ret_type, arg_types);
+        for (int i = 0; i < arg_types.length; i++) {
+            nargs += arg_types[i].getSize();
+        }
+        // UNDONE - needs to be added to ConstantPoolGen
+        //index = cp.addInvokeDynamic(bootstrap_index, name, signature);
+        index = 0;
+        return new INVOKEDYNAMIC(index);
+    }
+ */
+
+    /** Create a call to the most popular System.out.println() method.
      *
      * @param s the string to print
      */
-    public InstructionList createPrintln(final String s) {
+    public InstructionList createPrintln( final String s ) {
         final InstructionList il = new InstructionList();
         final int out = cp.addFieldref("java.lang.System", "out", "Ljava/io/PrintStream;");
         final int println = cp.addMethodref("java.io.PrintStream", "println", "(Ljava/lang/String;)V");
@@ -145,12 +145,11 @@
         return il;
     }
 
-    /**
-     * Uses PUSH to push a constant value onto the stack.
-     *
+
+    /** Uses PUSH to push a constant value onto the stack.
      * @param value must be of type Number, Boolean, Character or String
      */
-    public Instruction createConstant(final Object value) {
+    public Instruction createConstant( final Object value ) {
         PUSH push;
         if (value instanceof Number) {
             push = new PUSH(cp, (Number) value);
@@ -173,6 +172,7 @@
         final String class_name;
         final String name;
 
+
         MethodObject(final String c, final String n, final Type r, final Type[] a) {
             class_name = c;
             name = n;
@@ -181,53 +181,56 @@
         }
     }
 
-    private InvokeInstruction createInvoke(final MethodObject m, final short kind) {
+
+    private InvokeInstruction createInvoke( final MethodObject m, final short kind ) {
         return createInvoke(m.class_name, m.name, m.result_type, m.arg_types, kind);
     }
 
     private static final MethodObject[] append_mos = {
-        new MethodObject("java.lang.StringBuffer", "append", Type.STRINGBUFFER, new Type[]{
-            Type.STRING
-        }),
-        new MethodObject("java.lang.StringBuffer", "append", Type.STRINGBUFFER, new Type[]{
-            Type.OBJECT
-        }),
-        null,
-        null, // indices 2, 3
-        new MethodObject("java.lang.StringBuffer", "append", Type.STRINGBUFFER, new Type[]{
-            Type.BOOLEAN
-        }),
-        new MethodObject("java.lang.StringBuffer", "append", Type.STRINGBUFFER, new Type[]{
-            Type.CHAR
-        }),
-        new MethodObject("java.lang.StringBuffer", "append", Type.STRINGBUFFER, new Type[]{
-            Type.FLOAT
-        }),
-        new MethodObject("java.lang.StringBuffer", "append", Type.STRINGBUFFER, new Type[]{
-            Type.DOUBLE
-        }),
-        new MethodObject("java.lang.StringBuffer", "append", Type.STRINGBUFFER, new Type[]{
-            Type.INT
-        }),
-        new MethodObject("java.lang.StringBuffer", "append", Type.STRINGBUFFER, // No append(byte)
-        new Type[]{
-            Type.INT
-        }),
-        new MethodObject("java.lang.StringBuffer", "append", Type.STRINGBUFFER, // No append(short)
-        new Type[]{
-            Type.INT
-        }),
-        new MethodObject("java.lang.StringBuffer", "append", Type.STRINGBUFFER, new Type[]{
-            Type.LONG
-        })
+            new MethodObject("java.lang.StringBuffer", "append", Type.STRINGBUFFER, new Type[] {
+                Type.STRING
+            }),
+            new MethodObject("java.lang.StringBuffer", "append", Type.STRINGBUFFER, new Type[] {
+                Type.OBJECT
+            }),
+            null,
+            null, // indices 2, 3
+            new MethodObject("java.lang.StringBuffer", "append", Type.STRINGBUFFER, new Type[] {
+                Type.BOOLEAN
+            }),
+            new MethodObject("java.lang.StringBuffer", "append", Type.STRINGBUFFER, new Type[] {
+                Type.CHAR
+            }),
+            new MethodObject("java.lang.StringBuffer", "append", Type.STRINGBUFFER, new Type[] {
+                Type.FLOAT
+            }),
+            new MethodObject("java.lang.StringBuffer", "append", Type.STRINGBUFFER, new Type[] {
+                Type.DOUBLE
+            }),
+            new MethodObject("java.lang.StringBuffer", "append", Type.STRINGBUFFER, new Type[] {
+                Type.INT
+            }),
+            new MethodObject("java.lang.StringBuffer", "append", Type.STRINGBUFFER, // No append(byte)
+                    new Type[] {
+                        Type.INT
+                    }),
+            new MethodObject("java.lang.StringBuffer", "append", Type.STRINGBUFFER, // No append(short)
+                    new Type[] {
+                        Type.INT
+                    }),
+            new MethodObject("java.lang.StringBuffer", "append", Type.STRINGBUFFER, new Type[] {
+                Type.LONG
+            })
     };
 
-    private static boolean isString(final Type type) {
-        return (type instanceof ObjectType)
-                && ((ObjectType) type).getClassName().equals("java.lang.String");
+
+    private static boolean isString( final Type type ) {
+        return (type instanceof ObjectType) &&
+              ((ObjectType) type).getClassName().equals("java.lang.String");
     }
 
-    public Instruction createAppend(final Type type) {
+
+    public Instruction createAppend( final Type type ) {
         final byte t = type.getType();
         if (isString(type)) {
             return createInvoke(append_mos[0], Const.INVOKEVIRTUAL);
@@ -250,16 +253,17 @@
         }
     }
 
-    /**
-     * Create a field instruction.
+
+    /** Create a field instruction.
      *
      * @param class_name name of the accessed class
      * @param name name of the referenced field
-     * @param type type of field
+     * @param type  type of field
      * @param kind how to access, i.e., GETFIELD, PUTFIELD, GETSTATIC, PUTSTATIC
      * @see Const
      */
-    public FieldInstruction createFieldAccess(final String class_name, final String name, final Type type, final short kind) {
+    public FieldInstruction createFieldAccess( final String class_name,
+            final String name, final Type type, final short kind ) {
         int index;
         final String signature = type.getSignature();
         index = cp.addFieldref(class_name, name, signature);
@@ -277,17 +281,17 @@
         }
     }
 
-    /**
-     * Create reference to `this'
+
+    /** Create reference to `this'
      */
     public static Instruction createThis() {
         return new ALOAD(0);
     }
 
-    /**
-     * Create typed return
+
+    /** Create typed return
      */
-    public static ReturnInstruction createReturn(final Type type) {
+    public static ReturnInstruction createReturn( final Type type ) {
         switch (type.getType()) {
             case Const.T_ARRAY:
             case Const.T_OBJECT:
@@ -311,7 +315,8 @@
         }
     }
 
-    private static ArithmeticInstruction createBinaryIntOp(final char first, final String op) {
+
+    private static ArithmeticInstruction createBinaryIntOp( final char first, final String op ) {
         switch (first) {
             case '-':
                 return InstructionConst.ISUB;
@@ -338,7 +343,8 @@
         }
     }
 
-    private static ArithmeticInstruction createBinaryLongOp(final char first, final String op) {
+
+    private static ArithmeticInstruction createBinaryLongOp( final char first, final String op ) {
         switch (first) {
             case '-':
                 return InstructionConst.LSUB;
@@ -365,7 +371,8 @@
         }
     }
 
-    private static ArithmeticInstruction createBinaryFloatOp(final char op) {
+
+    private static ArithmeticInstruction createBinaryFloatOp( final char op ) {
         switch (op) {
             case '-':
                 return InstructionConst.FSUB;
@@ -382,7 +389,8 @@
         }
     }
 
-    private static ArithmeticInstruction createBinaryDoubleOp(final char op) {
+
+    private static ArithmeticInstruction createBinaryDoubleOp( final char op ) {
         switch (op) {
             case '-':
                 return InstructionConst.DSUB;
@@ -399,12 +407,13 @@
         }
     }
 
+
     /**
      * Create binary operation for simple basic types, such as int and float.
      *
      * @param op operation, such as "+", "*", "&lt;&lt;", etc.
      */
-    public static ArithmeticInstruction createBinaryOperation(final String op, final Type type) {
+    public static ArithmeticInstruction createBinaryOperation( final String op, final Type type ) {
         final char first = op.charAt(0);
         switch (type.getType()) {
             case Const.T_BYTE:
@@ -423,38 +432,43 @@
         }
     }
 
+
     /**
      * @param size size of operand, either 1 (int, e.g.) or 2 (double)
      */
-    public static StackInstruction createPop(final int size) {
+    public static StackInstruction createPop( final int size ) {
         return (size == 2) ? InstructionConst.POP2 : InstructionConst.POP;
     }
 
+
     /**
      * @param size size of operand, either 1 (int, e.g.) or 2 (double)
      */
-    public static StackInstruction createDup(final int size) {
+    public static StackInstruction createDup( final int size ) {
         return (size == 2) ? InstructionConst.DUP2 : InstructionConst.DUP;
     }
 
+
     /**
      * @param size size of operand, either 1 (int, e.g.) or 2 (double)
      */
-    public static StackInstruction createDup_2(final int size) {
+    public static StackInstruction createDup_2( final int size ) {
         return (size == 2) ? InstructionConst.DUP2_X2 : InstructionConst.DUP_X2;
     }
 
+
     /**
      * @param size size of operand, either 1 (int, e.g.) or 2 (double)
      */
-    public static StackInstruction createDup_1(final int size) {
+    public static StackInstruction createDup_1( final int size ) {
         return (size == 2) ? InstructionConst.DUP2_X1 : InstructionConst.DUP_X1;
     }
 
+
     /**
      * @param index index of local variable
      */
-    public static LocalVariableInstruction createStore(final Type type, final int index) {
+    public static LocalVariableInstruction createStore( final Type type, final int index ) {
         switch (type.getType()) {
             case Const.T_BOOLEAN:
             case Const.T_CHAR:
@@ -476,10 +490,11 @@
         }
     }
 
+
     /**
      * @param index index of local variable
      */
-    public static LocalVariableInstruction createLoad(final Type type, final int index) {
+    public static LocalVariableInstruction createLoad( final Type type, final int index ) {
         switch (type.getType()) {
             case Const.T_BOOLEAN:
             case Const.T_CHAR:
@@ -501,10 +516,11 @@
         }
     }
 
+
     /**
      * @param type type of elements of array, i.e., array.getElementType()
      */
-    public static ArrayInstruction createArrayLoad(final Type type) {
+    public static ArrayInstruction createArrayLoad( final Type type ) {
         switch (type.getType()) {
             case Const.T_BOOLEAN:
             case Const.T_BYTE:
@@ -529,10 +545,11 @@
         }
     }
 
+
     /**
      * @param type type of elements of array, i.e., array.getElementType()
      */
-    public static ArrayInstruction createArrayStore(final Type type) {
+    public static ArrayInstruction createArrayStore( final Type type ) {
         switch (type.getType()) {
             case Const.T_BOOLEAN:
             case Const.T_BYTE:
@@ -562,7 +579,7 @@
      * instruction, e.g., if the operands are basic types and CHECKCAST if they
      * are reference types.
      */
-    public Instruction createCast(final Type src_type, final Type dest_type) {
+    public Instruction createCast( final Type src_type, final Type dest_type ) {
         if ((src_type instanceof BasicType) && (dest_type instanceof BasicType)) {
             final byte dest = dest_type.getType();
             byte src = src_type.getType();
@@ -589,41 +606,49 @@
         }
     }
 
-    public GETFIELD createGetField(final String class_name, final String name, final Type t) {
+
+    public GETFIELD createGetField( final String class_name, final String name, final Type t ) {
         return new GETFIELD(cp.addFieldref(class_name, name, t.getSignature()));
     }
 
-    public GETSTATIC createGetStatic(final String class_name, final String name, final Type t) {
+
+    public GETSTATIC createGetStatic( final String class_name, final String name, final Type t ) {
         return new GETSTATIC(cp.addFieldref(class_name, name, t.getSignature()));
     }
 
-    public PUTFIELD createPutField(final String class_name, final String name, final Type t) {
+
+    public PUTFIELD createPutField( final String class_name, final String name, final Type t ) {
         return new PUTFIELD(cp.addFieldref(class_name, name, t.getSignature()));
     }
 
-    public PUTSTATIC createPutStatic(final String class_name, final String name, final Type t) {
+
+    public PUTSTATIC createPutStatic( final String class_name, final String name, final Type t ) {
         return new PUTSTATIC(cp.addFieldref(class_name, name, t.getSignature()));
     }
 
-    public CHECKCAST createCheckCast(final ReferenceType t) {
+
+    public CHECKCAST createCheckCast( final ReferenceType t ) {
         if (t instanceof ArrayType) {
             return new CHECKCAST(cp.addArrayClass((ArrayType) t));
         }
         return new CHECKCAST(cp.addClass((ObjectType) t));
     }
 
-    public INSTANCEOF createInstanceOf(final ReferenceType t) {
+
+    public INSTANCEOF createInstanceOf( final ReferenceType t ) {
         if (t instanceof ArrayType) {
             return new INSTANCEOF(cp.addArrayClass((ArrayType) t));
         }
         return new INSTANCEOF(cp.addClass((ObjectType) t));
     }
 
-    public NEW createNew(final ObjectType t) {
+
+    public NEW createNew( final ObjectType t ) {
         return new NEW(cp.addClass(t));
     }
 
-    public NEW createNew(final String s) {
+
+    public NEW createNew( final String s ) {
         return createNew(ObjectType.getInstance(s));
     }
 
@@ -633,7 +658,7 @@
      * @return an instruction that creates the corresponding array at runtime,
      * i.e. is an AllocationInstruction
      */
-    public Instruction createNewArray(final Type t, final short dim) {
+    public Instruction createNewArray( final Type t, final short dim ) {
         if (dim == 1) {
             if (t instanceof ObjectType) {
                 return new ANEWARRAY(cp.addClass((ObjectType) t));
@@ -655,7 +680,7 @@
     /**
      * Create "null" value for reference types, 0 for basic types like int
      */
-    public static Instruction createNull(final Type type) {
+    public static Instruction createNull( final Type type ) {
         switch (type.getType()) {
             case Const.T_ARRAY:
             case Const.T_OBJECT:
@@ -683,7 +708,8 @@
      * Create branch instruction by given opcode, except LOOKUPSWITCH and
      * TABLESWITCH. For those you should use the SWITCH compound instruction.
      */
-    public static BranchInstruction createBranchInstruction(final short opcode, final InstructionHandle target) {
+    public static BranchInstruction createBranchInstruction( final short opcode,
+            final InstructionHandle target ) {
         switch (opcode) {
             case Const.IFEQ:
                 return new IFEQ(target);
@@ -730,18 +756,22 @@
         }
     }
 
-    public void setClassGen(final ClassGen c) {
+
+    public void setClassGen( final ClassGen c ) {
         cg = c;
     }
 
+
     public ClassGen getClassGen() {
         return cg;
     }
 
-    public void setConstantPool(final ConstantPoolGen c) {
+
+    public void setConstantPool( final ConstantPoolGen c ) {
         cp = c;
     }
 
+
     public ConstantPoolGen getConstantPool() {
         return cp;
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionHandle.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionHandle.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -32,13 +32,14 @@
  * an InstructionList. Instruction objects may be used more than once within a
  * list, this is useful because it saves memory and may be much faster.
  *
- * Within an InstructionList an InstructionHandle object is wrapped around all
- * instructions, i.e., it implements a cell in a doubly-linked list. From the
- * outside only the next and the previous instruction (handle) are accessible.
- * One can traverse the list via an Enumeration returned by
+ * Within an InstructionList an InstructionHandle object is wrapped
+ * around all instructions, i.e., it implements a cell in a
+ * doubly-linked list. From the outside only the next and the
+ * previous instruction (handle) are accessible. One
+ * can traverse the list via an Enumeration returned by
  * InstructionList.elements().
  *
- * @version $Id: InstructionHandle.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  * @see Instruction
  * @see BranchHandle
  * @see InstructionList
@@ -54,23 +55,37 @@
     private Set<InstructionTargeter> targeters;
     private Map<Object, Object> attributes;
 
+
+    /**
+     * Does nothing.
+     *
+     * @deprecated Does nothing as of 6.3.1.
+     */
+    @Deprecated
+    protected void addHandle() {
+        // noop
+    }
+
     public final InstructionHandle getNext() {
         return next;
     }
 
+
     public final InstructionHandle getPrev() {
         return prev;
     }
 
+
     public final Instruction getInstruction() {
         return instruction;
     }
 
+
     /**
-     * Replace current instruction contained in this handle. Old instruction is
-     * disposed using Instruction.dispose().
+     * Replace current instruction contained in this handle.
+     * Old instruction is disposed using Instruction.dispose().
      */
-    public void setInstruction(final Instruction i) { // Overridden in BranchHandle TODO could be package-protected?
+    public void setInstruction( final Instruction i ) { // Overridden in BranchHandle TODO could be package-protected?
         if (i == null) {
             throw new ClassGenException("Assigning null to handle");
         }
@@ -83,91 +98,71 @@
         instruction = i;
     }
 
+
     /**
-     * Temporarily swap the current instruction, without disturbing anything.
-     * Meant to be used by a debugger, implementing breakpoints. Current
-     * instruction is returned.
+     * Temporarily swap the current instruction, without disturbing
+     * anything. Meant to be used by a debugger, implementing
+     * breakpoints. Current instruction is returned.
      * <p>
      * Warning: if this is used on a BranchHandle then some methods such as
-     * getPosition() will still refer to the original cached instruction,
-     * whereas other BH methods may affect the cache and the replacement
-     * instruction.
+     * getPosition() will still refer to the original cached instruction, whereas
+     * other BH methods may affect the cache and the replacement instruction.
      */
     // See BCEL-273
     // TODO remove this method in any redesign of BCEL
-    public Instruction swapInstruction(final Instruction i) {
+    public Instruction swapInstruction( final Instruction i ) {
         final Instruction oldInstruction = instruction;
         instruction = i;
         return oldInstruction;
     }
 
 
-    /*private*/
-    protected InstructionHandle(final Instruction i) {
+    /*private*/protected InstructionHandle(final Instruction i) {
         setInstruction(i);
     }
 
-    private static InstructionHandle ih_list = null; // List of reusable handles
-
-    /**
-     * Factory method.
+    /** Factory method.
      */
-    static InstructionHandle getInstructionHandle(final Instruction i) {
-        if (ih_list == null) {
-            return new InstructionHandle(i);
-        }
-        final InstructionHandle ih = ih_list;
-        ih_list = ih.next;
-        ih.setInstruction(i);
-        return ih;
+    static InstructionHandle getInstructionHandle( final Instruction i ) {
+        return new InstructionHandle(i);
     }
 
+
     /**
-     * Called by InstructionList.setPositions when setting the position for
-     * every instruction. In the presence of variable length instructions
-     * `setPositions()' performs multiple passes over the instruction list to
-     * calculate the correct (byte) positions and offsets by calling this
-     * function.
+     * Called by InstructionList.setPositions when setting the position for every
+     * instruction. In the presence of variable length instructions `setPositions()'
+     * performs multiple passes over the instruction list to calculate the
+     * correct (byte) positions and offsets by calling this function.
      *
-     * @param offset additional offset caused by preceding (variable length)
-     * instructions
-     * @param max_offset the maximum offset that may be caused by these
-     * instructions
-     * @return additional offset caused by possible change of this instruction's
-     * length
+     * @param offset additional offset caused by preceding (variable length) instructions
+     * @param max_offset the maximum offset that may be caused by these instructions
+     * @return additional offset caused by possible change of this instruction's length
      */
-    protected int updatePosition(final int offset, final int max_offset) {
+    protected int updatePosition( final int offset, final int max_offset ) {
         i_position += offset;
         return 0;
     }
 
-    /**
-     * @return the position, i.e., the byte code offset of the contained
-     * instruction. This is accurate only after InstructionList.setPositions()
-     * has been called.
+
+    /** @return the position, i.e., the byte code offset of the contained
+     * instruction. This is accurate only after
+     * InstructionList.setPositions() has been called.
      */
     public int getPosition() {
         return i_position;
     }
 
-    /**
-     * Set the position, i.e., the byte code offset of the contained
+
+    /** Set the position, i.e., the byte code offset of the contained
      * instruction.
      */
-    void setPosition(final int pos) {
+    void setPosition( final int pos ) {
         i_position = pos;
     }
 
-    /**
-     * Overridden in BranchHandle
-     */
-    protected void addHandle() {
-        next = ih_list;
-        ih_list = this;
-    }
 
     /**
-     * Delete contents, i.e., remove user access and make handle reusable.
+     * Delete contents, i.e., remove user access.
      */
     void dispose() {
         next = prev = null;
@@ -176,11 +171,10 @@
         i_position = -1;
         attributes = null;
         removeAllTargeters();
-        addHandle();
     }
 
-    /**
-     * Remove all targeters, if any.
+
+    /** Remove all targeters, if any.
      */
     public void removeAllTargeters() {
         if (targeters != null) {
@@ -188,19 +182,21 @@
         }
     }
 
+
     /**
      * Denote this handle isn't referenced anymore by t.
      */
-    public void removeTargeter(final InstructionTargeter t) {
+    public void removeTargeter( final InstructionTargeter t ) {
         if (targeters != null) {
             targeters.remove(t);
         }
     }
 
+
     /**
      * Denote this handle is being referenced by t.
      */
-    public void addTargeter(final InstructionTargeter t) {
+    public void addTargeter( final InstructionTargeter t ) {
         if (targeters == null) {
             targeters = new HashSet<>();
         }
@@ -208,10 +204,12 @@
         targeters.add(t);
     }
 
+
     public boolean hasTargeters() {
         return (targeters != null) && (targeters.size() > 0);
     }
 
+
     /**
      * @return null, if there are no targeters
      */
@@ -224,59 +222,59 @@
         return t;
     }
 
-    /**
-     * @return a (verbose) string representation of the contained instruction.
+
+    /** @return a (verbose) string representation of the contained instruction.
      */
-    public String toString(final boolean verbose) {
+    public String toString( final boolean verbose ) {
         return Utility.format(i_position, 4, false, ' ') + ": " + instruction.toString(verbose);
     }
 
-    /**
-     * @return a string representation of the contained instruction.
+
+    /** @return a string representation of the contained instruction.
      */
     @Override
     public String toString() {
         return toString(true);
     }
 
-    /**
-     * Add an attribute to an instruction handle.
+
+    /** Add an attribute to an instruction handle.
      *
      * @param key the key object to store/retrieve the attribute
      * @param attr the attribute to associate with this handle
      */
-    public void addAttribute(final Object key, final Object attr) {
+    public void addAttribute( final Object key, final Object attr ) {
         if (attributes == null) {
             attributes = new HashMap<>(3);
         }
         attributes.put(key, attr);
     }
 
-    /**
-     * Delete an attribute of an instruction handle.
+
+    /** Delete an attribute of an instruction handle.
      *
      * @param key the key object to retrieve the attribute
      */
-    public void removeAttribute(final Object key) {
+    public void removeAttribute( final Object key ) {
         if (attributes != null) {
             attributes.remove(key);
         }
     }
 
-    /**
-     * Get attribute of an instruction handle.
+
+    /** Get attribute of an instruction handle.
      *
      * @param key the key object to store/retrieve the attribute
      */
-    public Object getAttribute(final Object key) {
+    public Object getAttribute( final Object key ) {
         if (attributes != null) {
             return attributes.get(key);
         }
         return null;
     }
 
-    /**
-     * @return all attributes associated with this handle
+
+    /** @return all attributes associated with this handle
      */
     public Collection<Object> getAttributes() {
         if (attributes == null) {
@@ -285,15 +283,16 @@
         return attributes.values();
     }
 
-    /**
-     * Convenience method, simply calls accept() on the contained instruction.
+
+    /** Convenience method, simply calls accept() on the contained instruction.
      *
      * @param v Visitor object
      */
-    public void accept(final Visitor v) {
+    public void accept( final Visitor v ) {
         instruction.accept(v);
     }
 
+
     /**
      * @param next the next to set
      * @ since 6.0
@@ -303,6 +302,7 @@
         return next;
     }
 
+
     /**
      * @param prev the prev to set
      * @ since 6.0
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionList.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionList.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
-/*
+ /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
  * this work for additional information regarding copyright ownership.
@@ -44,12 +44,14 @@
  * A list is finally dumped to a byte code array with <a
  * href="#getByteCode()">getByteCode</a>.
  *
- * @version $Id: InstructionList.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  * @see Instruction
  * @see InstructionHandle
  * @see BranchHandle
+ * @LastModified: Jun 2019
  */
 public class InstructionList implements Iterable<InstructionHandle> {
+
     private InstructionHandle start = null;
     private InstructionHandle end = null;
     private int length = 0; // number of elements in list
@@ -191,12 +193,11 @@
         for (int i = 0; i < count; i++) {
             if (ihs[i] instanceof BranchHandle) {
                 final BranchInstruction bi = (BranchInstruction) ihs[i].getInstruction();
-                int target = bi.getPosition() + bi.getIndex(); /*
-                 * Byte code position: relative -> absolute.
+                int target = bi.getPosition() + bi.getIndex();
+                /*
+                                                                * Byte code position: relative -> absolute.
                  */
-
                 // Search for target position
-
                 InstructionHandle ih = findHandle(ihs, pos, count, target);
                 if (ih == null) {
                     throw new ClassGenException("Couldn't find target for branch: " + bi);
@@ -433,7 +434,6 @@
         } else {
             start = il.start; // Update start ...
         }
-
         length += il.length; // Update length
         il.clear();
         return ret;
@@ -468,7 +468,6 @@
             ih.setPrev(null);
             start = ih;
         }
-
         length++;
     }
 
@@ -843,26 +842,26 @@
                 if (i instanceof BranchInstruction) { // target instruction within list?
                     Instruction inst = ((BranchInstruction) i).getTarget().getInstruction();
                     if (!contains(inst)) {
-                        throw new ClassGenException("Branch target of " +
-                                Const.getOpcodeName(i.getOpcode()) + ":" +
-                                inst + " not in instruction list");
+                        throw new ClassGenException("Branch target of "
+                                + Const.getOpcodeName(i.getOpcode()) + ":"
+                                + inst + " not in instruction list");
                     }
                     if (i instanceof Select) {
                         final InstructionHandle[] targets = ((Select) i).getTargets();
                         for (final InstructionHandle target : targets) {
                             inst = target.getInstruction();
                             if (!contains(inst)) {
-                                throw new ClassGenException("Branch target of " +
-                                        Const.getOpcodeName(i.getOpcode()) + ":" +
-                                        inst + " not in instruction list");
+                                throw new ClassGenException("Branch target of "
+                                        + Const.getOpcodeName(i.getOpcode()) + ":"
+                                        + inst + " not in instruction list");
                             }
                         }
                     }
                     if (!(ih instanceof BranchHandle)) {
                         throw new ClassGenException(
-                                "Branch instruction " +
-                                        Const.getOpcodeName(i.getOpcode()) + ":" +
-                                        inst + " not contained in BranchHandle.");
+                                "Branch instruction "
+                                + Const.getOpcodeName(i.getOpcode()) + ":"
+                                + inst + " not contained in BranchHandle.");
                     }
                 }
             }
@@ -871,11 +870,9 @@
          * Pass 1: Set position numbers and sum up the maximum number of bytes an instruction may be shifted.
          */
         for (InstructionHandle ih = start; ih != null; ih = ih.getNext()) {
-
             final Instruction i = ih.getInstruction();
             ih.setPosition(index);
             pos[count++] = index;
-
             /*
              * Get an estimate about how many additional bytes may be added,
              * because BranchInstructions may have variable length depending on the target offset
@@ -908,7 +905,6 @@
         index = count = 0;
         for (InstructionHandle ih = start; ih != null; ih = ih.getNext()) {
             final Instruction i = ih.getInstruction();
-
             ih.setPosition(index);
             pos[count++] = index;
             index += i.getLength();
@@ -1040,7 +1036,8 @@
         final Map<InstructionHandle, InstructionHandle> map = new HashMap<>();
         final InstructionList il = new InstructionList();
         /*
-         * Pass 1: Make copies of all instructions, append them to the new list and associate old instruction references with the new ones, i.e., a 1:1 mapping.
+         * Pass 1: Make copies of all instructions, append them to the new list
+         * and associate old instruction references with the new ones, i.e., a 1:1 mapping.
          */
         for (InstructionHandle ih = start; ih != null; ih = ih.getNext()) {
             final Instruction i = ih.getInstruction();
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionListObserver.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionListObserver.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * Implement this interface if you're interested in changes to an InstructionList object
  * and register yourself with addObserver().
  *
- * @version $Id: InstructionListObserver.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public interface InstructionListObserver {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionTargeter.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionTargeter.java	Wed Jun 26 05:49:59 2019 +0000
@@ -28,7 +28,7 @@
  * @see BranchHandle
  * @see LocalVariableGen
  * @see CodeExceptionGen
- * @version $Id: InstructionTargeter.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public interface InstructionTargeter {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InvokeInstruction.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InvokeInstruction.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,6 +1,5 @@
 /*
- * reserved comment block
- * DO NOT REMOVE OR ALTER!
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -31,14 +30,15 @@
 /**
  * Super class for the INVOKExxx family of instructions.
  *
- * @version $Id: InvokeInstruction.java 1752106 2016-07-10 20:02:39Z britter $
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public abstract class InvokeInstruction extends FieldOrMethod implements ExceptionThrower,
         StackConsumer, StackProducer {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     InvokeInstruction() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/JSR.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/JSR.java	Wed Jun 26 05:49:59 2019 +0000
@@ -27,13 +27,13 @@
 /**
  * JSR - Jump to subroutine
  *
- * @version $Id: JSR.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  */
 public class JSR extends JsrInstruction implements VariableLengthInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     JSR() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/JSR_W.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/JSR_W.java	Wed Jun 26 05:49:59 2019 +0000
@@ -29,13 +29,13 @@
 /**
  * JSR_W - Jump to subroutine
  *
- * @version $Id: JSR_W.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class JSR_W extends JsrInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     JSR_W() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/JsrInstruction.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/JsrInstruction.java	Wed Jun 26 05:49:59 2019 +0000
@@ -24,7 +24,7 @@
 /**
  * Super class for JSR - Jump to subroutine
  *
- * @version $Id: JsrInstruction.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  */
 public abstract class JsrInstruction extends BranchInstruction implements UnconditionalBranch,
         TypedInstruction, StackProducer {
@@ -35,8 +35,8 @@
 
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     JsrInstruction() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/L2D.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/L2D.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * L2D - Convert long to double
  * <PRE>Stack: ..., value.word1, value.word2 -&gt; ..., result.word1, result.word2</PRE>
  *
- * @version $Id: L2D.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class L2D extends ConversionInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/L2F.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/L2F.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * L2F - Convert long to float
  * <PRE>Stack: ..., value.word1, value.word2 -&gt; ..., result</PRE>
  *
- * @version $Id: L2F.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class L2F extends ConversionInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/L2I.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/L2I.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * L2I - Convert long to int
  * <PRE>Stack: ..., value.word1, value.word2 -&gt; ..., result</PRE>
  *
- * @version $Id: L2I.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class L2I extends ConversionInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LADD.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LADD.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,7 +26,7 @@
  * <PRE>Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 -&gt;</PRE>
  *        ..., result.word1, result.word2
  *
- * @version $Id: LADD.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class LADD extends ArithmeticInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LALOAD.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LALOAD.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * LALOAD - Load long from array
  * <PRE>Stack: ..., arrayref, index -&gt; ..., value1, value2</PRE>
  *
- * @version $Id: LALOAD.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class LALOAD extends ArrayInstruction implements StackProducer {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LAND.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LAND.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,7 +26,7 @@
  * <PRE>Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 -&gt;</PRE>
  *        ..., result.word1, result.word2
  *
- * @version $Id: LAND.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class LAND extends ArithmeticInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LASTORE.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LASTORE.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * LASTORE -  Store into long array
  * <PRE>Stack: ..., arrayref, index, value.word1, value.word2 -&gt; ...</PRE>
  *
- * @version $Id: LASTORE.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class LASTORE extends ArrayInstruction implements StackConsumer {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LCMP.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LCMP.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,7 +26,7 @@
  * <PRE>Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 -&gt; ..., result &lt;= -1, 0, 1&gt;</PRE>
  *
  *
- * @version $Id: LCMP.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class LCMP extends Instruction implements TypedInstruction, StackProducer, StackConsumer {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LCONST.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LCONST.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  *
  * <PRE>Stack: ... -&gt; ..., </PRE>
  *
- * @version $Id: LCONST.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class LCONST extends Instruction implements ConstantPushInstruction {
 
@@ -33,8 +33,8 @@
 
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     LCONST() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LDC.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LDC.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -31,14 +31,14 @@
  *
  * <PRE>Stack: ... -&gt; ..., item</PRE>
  *
- * @version $Id: LDC.java 1749603 2016-06-21 20:50:19Z ggregory $
- * @LastModified: Nov 2017
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public class LDC extends CPInstruction implements PushInstruction, ExceptionThrower {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     LDC() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LDC2_W.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LDC2_W.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -25,14 +25,14 @@
  *
  * <PRE>Stack: ... -&gt; ..., item.word1, item.word2</PRE>
  *
- * @version $Id: LDC2_W.java 1749603 2016-06-21 20:50:19Z ggregory $
- * @LastModified: Nov 2017
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public class LDC2_W extends CPInstruction implements PushInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     LDC2_W() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LDC_W.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LDC_W.java	Wed Jun 26 05:49:59 2019 +0000
@@ -30,13 +30,13 @@
  *
  * <PRE>Stack: ... -&gt; ..., item.word1, item.word2</PRE>
  *
- * @version $Id: LDC_W.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class LDC_W extends LDC {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     LDC_W() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LDIV.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LDIV.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -27,8 +27,8 @@
  * <PRE>Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 -&gt;</PRE>
  *        ..., result.word1, result.word2
  *
- * @version $Id: LDIV.java 1747278 2016-06-07 17:28:43Z britter $
- * @LastModified: Oct 2017
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public class LDIV extends ArithmeticInstruction implements ExceptionThrower {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LLOAD.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LLOAD.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,13 +25,13 @@
  * LLOAD - Load long from local variable
  *<PRE>Stack ... -&gt; ..., result.word1, result.word2</PRE>
  *
- * @version $Id: LLOAD.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class LLOAD extends LoadInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     LLOAD() {
         super(com.sun.org.apache.bcel.internal.Const.LLOAD, com.sun.org.apache.bcel.internal.Const.LLOAD_0);
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LMUL.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LMUL.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,7 +26,7 @@
  * <PRE>Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 -&gt;</PRE>
  *        ..., result.word1, result.word2
  *
- * @version $Id: LMUL.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class LMUL extends ArithmeticInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LNEG.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LNEG.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * LNEG - Negate long
  * <PRE>Stack: ..., value.word1, value.word2 -&gt; ..., result.word1, result.word2</PRE>
  *
- * @version $Id: LNEG.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class LNEG extends ArithmeticInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LOOKUPSWITCH.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LOOKUPSWITCH.java	Wed Jun 26 05:49:59 2019 +0000
@@ -29,14 +29,14 @@
 /**
  * LOOKUPSWITCH - Switch with unordered set of values
  *
- * @version $Id: LOOKUPSWITCH.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  * @see SWITCH
  */
 public class LOOKUPSWITCH extends Select {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     LOOKUPSWITCH() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LOR.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LOR.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * LOR - Bitwise OR long
  * <PRE>Stack: ..., value1, value2 -&gt; ..., result</PRE>
  *
- * @version $Id: LOR.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class LOR extends ArithmeticInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LREM.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LREM.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -26,8 +26,8 @@
  * LREM - Remainder of long
  * <PRE>Stack: ..., value1, value2 -&gt; result</PRE>
  *
- * @version $Id: LREM.java 1747278 2016-06-07 17:28:43Z britter $
- * @LastModified: Oct 2017
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public class LREM extends ArithmeticInstruction implements ExceptionThrower {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LRETURN.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LRETURN.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * LRETURN -  Return long from method
  * <PRE>Stack: ..., value.word1, value.word2 -&gt; &lt;empty&gt;</PRE>
  *
- * @version $Id: LRETURN.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class LRETURN extends ReturnInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LSHL.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LSHL.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * LSHL - Arithmetic shift left long
  * <PRE>Stack: ..., value1.word1, value1.word2, value2 -&gt; ..., result.word1, result.word2</PRE>
  *
- * @version $Id: LSHL.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class LSHL extends ArithmeticInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LSHR.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LSHR.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * LSHR - Arithmetic shift right long
  * <PRE>Stack: ..., value1.word1, value1.word2, value2 -&gt; ..., result.word1, result.word2</PRE>
  *
- * @version $Id: LSHR.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class LSHR extends ArithmeticInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LSTORE.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LSTORE.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,13 +25,13 @@
  * LSTORE - Store long into local variable
  * <PRE>Stack: ..., value.word1, value.word2 -&gt; ... </PRE>
  *
- * @version $Id: LSTORE.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class LSTORE extends StoreInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     LSTORE() {
         super(com.sun.org.apache.bcel.internal.Const.LSTORE, com.sun.org.apache.bcel.internal.Const.LSTORE_0);
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LSUB.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LSUB.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,7 +26,7 @@
  * <PRE>Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 -&gt;</PRE>
  *        ..., result.word1, result.word2
  *
- * @version $Id: LSUB.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class LSUB extends ArithmeticInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LUSHR.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LUSHR.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * LUSHR - Logical shift right long
  * <PRE>Stack: ..., value1, value2 -&gt; ..., result</PRE>
  *
- * @version $Id: LUSHR.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class LUSHR extends ArithmeticInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LXOR.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LXOR.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * LXOR - Bitwise XOR long
  * <PRE>Stack: ..., value1, value2 -&gt; ..., result</PRE>
  *
- * @version $Id: LXOR.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class LXOR extends ArithmeticInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LineNumberGen.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LineNumberGen.java	Wed Jun 26 05:49:59 2019 +0000
@@ -27,7 +27,7 @@
  * This class represents a line number within a method, i.e., give an instruction
  * a line number corresponding to the source code line.
  *
- * @version $Id: LineNumberGen.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  * @see     LineNumber
  * @see     MethodGen
  */
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LoadClass.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LoadClass.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * Denotes that an instruction may start the process of loading and resolving
  * the referenced class in the Virtual Machine.
  *
- * @version $Id: LoadClass.java 1749597 2016-06-21 20:28:51Z ggregory $
+ * @version $Id$
  */
 public interface LoadClass {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LoadInstruction.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LoadInstruction.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,13 +25,13 @@
  * Denotes an unparameterized instruction to load a value from a local
  * variable, e.g. ILOAD.
  *
- * @version $Id: LoadInstruction.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public abstract class LoadInstruction extends LocalVariableInstruction implements PushInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      * tag and length are defined in readInstruction and initFromFile, respectively.
      */
     LoadInstruction(final short canon_tag, final short c_tag) {
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LocalVariableGen.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LocalVariableGen.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,13 +25,13 @@
 
 /**
  * This class represents a local variable within a method. It contains its
- * scope, name and type. The generated LocalVariable object can be obtained with
- * getLocalVariable which needs the instruction list and the constant pool as
- * parameters.
+ * scope, name and type. The generated LocalVariable object can be obtained
+ * with getLocalVariable which needs the instruction list and the constant
+ * pool as parameters.
  *
- * @version $Id: LocalVariableGen.java 1749603 2016-06-21 20:50:19Z ggregory $
- * @see LocalVariable
- * @see MethodGen
+ * @version $Id$
+ * @see     LocalVariable
+ * @see     MethodGen
  */
 public class LocalVariableGen implements InstructionTargeter, NamedAndTyped, Cloneable {
 
@@ -40,21 +40,22 @@
     private Type type;
     private InstructionHandle start;
     private InstructionHandle end;
+    private int orig_index; // never changes; used to match up with LocalVariableTypeTable entries
+    private boolean live_to_end;
+
 
     /**
-     * Generate a local variable that with index `index'. Note that double and
-     * long variables need two indexs. Index indices have to be provided by the
-     * user.
+     * Generate a local variable that with index `index'. Note that double and long
+     * variables need two indexs. Index indices have to be provided by the user.
      *
      * @param index index of local variable
      * @param name its name
      * @param type its type
-     * @param start from where the instruction is valid (null means from the
-     * start)
+     * @param start from where the instruction is valid (null means from the start)
      * @param end until where the instruction is valid (null means to the end)
      */
-    public LocalVariableGen(final int index, final String name, final Type type,
-            final InstructionHandle start, final InstructionHandle end) {
+    public LocalVariableGen(final int index, final String name, final Type type, final InstructionHandle start,
+            final InstructionHandle end) {
         if ((index < 0) || (index > Const.MAX_SHORT)) {
             throw new ClassGenException("Invalid index index: " + index);
         }
@@ -63,90 +64,137 @@
         this.index = index;
         setStart(start);
         setEnd(end);
+        this.orig_index = index;
+        this.live_to_end = end == null;
     }
 
+
+    /**
+     * Generate a local variable that with index `index'. Note that double and long
+     * variables need two indexs. Index indices have to be provided by the user.
+     *
+     * @param index index of local variable
+     * @param name its name
+     * @param type its type
+     * @param start from where the instruction is valid (null means from the start)
+     * @param end until where the instruction is valid (null means to the end)
+     * @param orig_index index of local variable prior to any changes to index
+     */
+    public LocalVariableGen(final int index, final String name, final Type type, final InstructionHandle start,
+            final InstructionHandle end, final int orig_index) {
+        this(index, name, type, start, end);
+        this.orig_index = orig_index;
+    }
+
+
     /**
      * Get LocalVariable object.
      *
-     * This relies on that the instruction list has already been dumped to byte
-     * code or or that the `setPositions' methods has been called for the
-     * instruction list.
+     * This relies on that the instruction list has already been dumped to byte code or
+     * or that the `setPositions' methods has been called for the instruction list.
      *
-     * Note that for local variables whose scope end at the last instruction of
-     * the method's code, the JVM specification is ambiguous: both a
-     * start_pc+length ending at the last instruction and start_pc+length ending
-     * at first index beyond the end of the code are valid.
+     * Note that due to the conversion from byte code offset to InstructionHandle,
+     * it is impossible to tell the difference between a live range that ends BEFORE
+     * the last insturction of the method or a live range that ends AFTER the last
+     * instruction of the method.  Hence the live_to_end flag to differentiate
+     * between these two cases.
      *
      * @param cp constant pool
      */
-    public LocalVariable getLocalVariable(final ConstantPoolGen cp) {
+    public LocalVariable getLocalVariable( final ConstantPoolGen cp ) {
         int start_pc = 0;
         int length = 0;
         if ((start != null) && (end != null)) {
             start_pc = start.getPosition();
             length = end.getPosition() - start_pc;
-            if (end.getNext() == null) {
+            if ((end.getNext() == null) && live_to_end) {
                 length += end.getInstruction().getLength();
             }
         }
         final int name_index = cp.addUtf8(name);
         final int signature_index = cp.addUtf8(type.getSignature());
         return new LocalVariable(start_pc, length, name_index, signature_index, index, cp
-                .getConstantPool());
+                .getConstantPool(), orig_index);
     }
 
-    public void setIndex(final int index) {
+
+    public void setIndex( final int index ) {
         this.index = index;
     }
 
+
     public int getIndex() {
         return index;
     }
 
+
+    public int getOrigIndex() {
+        return orig_index;
+    }
+
+
+    public void setLiveToEnd( final boolean live_to_end) {
+        this.live_to_end = live_to_end;
+    }
+
+
+    public boolean getLiveToEnd() {
+        return live_to_end;
+    }
+
+
     @Override
-    public void setName(final String name) {
+    public void setName( final String name ) {
         this.name = name;
     }
 
+
     @Override
     public String getName() {
         return name;
     }
 
+
     @Override
-    public void setType(final Type type) {
+    public void setType( final Type type ) {
         this.type = type;
     }
 
+
     @Override
     public Type getType() {
         return type;
     }
 
+
     public InstructionHandle getStart() {
         return start;
     }
 
+
     public InstructionHandle getEnd() {
         return end;
     }
 
-    public void setStart(final InstructionHandle start) { // TODO could be package-protected?
+
+    public void setStart( final InstructionHandle start ) { // TODO could be package-protected?
         BranchInstruction.notifyTarget(this.start, start, this);
         this.start = start;
     }
 
-    public void setEnd(final InstructionHandle end) { // TODO could be package-protected?
+
+    public void setEnd( final InstructionHandle end ) { // TODO could be package-protected?
         BranchInstruction.notifyTarget(this.end, end, this);
         this.end = end;
     }
 
+
     /**
      * @param old_ih old target, either start or end
      * @param new_ih new target
      */
     @Override
-    public void updateTarget(final InstructionHandle old_ih, final InstructionHandle new_ih) {
+    public void updateTarget( final InstructionHandle old_ih, final InstructionHandle new_ih ) {
         boolean targeted = false;
         if (start == old_ih) {
             targeted = true;
@@ -174,10 +222,11 @@
      * @return true, if ih is target of this variable
      */
     @Override
-    public boolean containsTarget(final InstructionHandle ih) {
+    public boolean containsTarget( final InstructionHandle ih ) {
         return (start == ih) || (end == ih);
     }
 
+
     @Override
     public int hashCode() {
         // If the user changes the name or type, problems with the targeter hashmap will occur.
@@ -185,12 +234,13 @@
         return name.hashCode() ^ type.hashCode();
     }
 
+
     /**
      * We consider to local variables to be equal, if the use the same index and
      * are valid in the same range.
      */
     @Override
-    public boolean equals(final Object o) {
+    public boolean equals( final Object o ) {
         if (!(o instanceof LocalVariableGen)) {
             return false;
         }
@@ -198,11 +248,13 @@
         return (l.index == index) && (l.start == start) && (l.end == end);
     }
 
+
     @Override
     public String toString() {
         return "LocalVariableGen(" + name + ", " + type + ", " + start + ", " + end + ")";
     }
 
+
     @Override
     public Object clone() {
         try {
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LocalVariableInstruction.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LocalVariableInstruction.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -28,8 +28,8 @@
 /**
  * Abstract super class for instructions dealing with local variables.
  *
- * @version $Id: LocalVariableInstruction.java 1747278 2016-06-07 17:28:43Z
- * britter $
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public abstract class LocalVariableInstruction extends Instruction implements TypedInstruction,
         IndexedInstruction {
@@ -38,14 +38,16 @@
     private short c_tag = -1; // compact version, such as ILOAD_0
     private short canon_tag = -1; // canonical tag such as ILOAD
 
+
     private boolean wide() {
         return n > Const.MAX_BYTE;
     }
 
+
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise. tag and length
-     * are defined in readInstruction and initFromFile, respectively.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
+     * tag and length are defined in readInstruction and initFromFile, respectively.
      */
     LocalVariableInstruction(final short canon_tag, final short c_tag) {
         super();
@@ -53,13 +55,15 @@
         this.c_tag = c_tag;
     }
 
+
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Also used by IINC()!
+     * Empty constructor needed for Instruction.readInstruction.
+     * Also used by IINC()!
      */
     LocalVariableInstruction() {
     }
 
+
     /**
      * @param opcode Instruction opcode
      * @param c_tag Instruction number for compact version, ALOAD_0, e.g.
@@ -72,13 +76,13 @@
         setIndex(n);
     }
 
+
     /**
      * Dump instruction as byte code to stream out.
-     *
      * @param out Output stream
      */
     @Override
-    public void dump(final DataOutputStream out) throws IOException {
+    public void dump( final DataOutputStream out ) throws IOException {
         if (wide()) {
             out.writeByte(Const.WIDE);
         }
@@ -92,25 +96,27 @@
         }
     }
 
+
     /**
      * Long output format:
      *
-     * &lt;name of opcode&gt; "["&lt;opcode number&gt;"]" "("&lt;length of
-     * instruction&gt;")" "&lt;"&lt; local variable index&gt;"&gt;"
+     * &lt;name of opcode&gt; "["&lt;opcode number&gt;"]"
+     * "("&lt;length of instruction&gt;")" "&lt;"&lt; local variable index&gt;"&gt;"
      *
      * @param verbose long/short format switch
      * @return mnemonic for instruction
      */
     @Override
-    public String toString(final boolean verbose) {
+    public String toString( final boolean verbose ) {
         final short _opcode = super.getOpcode();
         if (((_opcode >= Const.ILOAD_0) && (_opcode <= Const.ALOAD_3))
-                || ((_opcode >= Const.ISTORE_0) && (_opcode <= Const.ASTORE_3))) {
+         || ((_opcode >= Const.ISTORE_0) && (_opcode <= Const.ASTORE_3))) {
             return super.toString(verbose);
         }
         return super.toString(verbose) + " " + n;
     }
 
+
     /**
      * Read needed data (e.g. index) from file.
      * <pre>
@@ -118,14 +124,14 @@
      * </pre>
      */
     @Override
-    protected void initFromFile(final ByteSequence bytes, final boolean wide) throws IOException {
+    protected void initFromFile( final ByteSequence bytes, final boolean wide ) throws IOException {
         if (wide) {
             n = bytes.readUnsignedShort();
             super.setLength(4);
         } else {
             final short _opcode = super.getOpcode();
             if (((_opcode >= Const.ILOAD) && (_opcode <= Const.ALOAD))
-                    || ((_opcode >= Const.ISTORE) && (_opcode <= Const.ASTORE))) {
+             || ((_opcode >= Const.ISTORE) && (_opcode <= Const.ASTORE))) {
                 n = bytes.readUnsignedByte();
                 super.setLength(2);
             } else if (_opcode <= Const.ALOAD_3) { // compact load instruction such as ILOAD_2
@@ -138,6 +144,7 @@
         }
     }
 
+
     /**
      * @return local variable index (n) referred by this instruction.
      */
@@ -146,13 +153,15 @@
         return n;
     }
 
+
     /**
-     * Set the local variable index. also updates opcode and length TODO Why?
-     *
+     * Set the local variable index.
+     * also updates opcode and length
+     * TODO Why?
      * @see #setIndexOnly(int)
      */
     @Override
-    public void setIndex(final int n) { // TODO could be package-protected?
+    public void setIndex( final int n ) { // TODO could be package-protected?
         if ((n < 0) || (n > Const.MAX_SHORT)) {
             throw new ClassGenException("Illegal value: " + n);
         }
@@ -171,23 +180,24 @@
         }
     }
 
-    /**
-     * @return canonical tag for instruction, e.g., ALOAD for ALOAD_0
+
+    /** @return canonical tag for instruction, e.g., ALOAD for ALOAD_0
      */
     public short getCanonicalTag() {
         return canon_tag;
     }
 
+
     /**
-     * Returns the type associated with the instruction - in case of ALOAD or
-     * ASTORE Type.OBJECT is returned. This is just a bit incorrect, because
-     * ALOAD and ASTORE may work on every ReferenceType (including Type.NULL)
-     * and ASTORE may even work on a ReturnaddressType .
-     *
+     * Returns the type associated with the instruction -
+     * in case of ALOAD or ASTORE Type.OBJECT is returned.
+     * This is just a bit incorrect, because ALOAD and ASTORE
+     * may work on every ReferenceType (including Type.NULL) and
+     * ASTORE may even work on a ReturnaddressType .
      * @return type associated with the instruction
      */
     @Override
-    public Type getType(final ConstantPoolGen cp) {
+    public Type getType( final ConstantPoolGen cp ) {
         switch (canon_tag) {
             case Const.ILOAD:
             case Const.ISTORE:
@@ -211,7 +221,6 @@
 
     /**
      * Sets the index of the referenced variable (n) only
-     *
      * @since 6.0
      * @see #setIndex(int)
      */
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/MONITORENTER.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/MONITORENTER.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -26,8 +26,8 @@
  * MONITORENTER - Enter monitor for object
  * <PRE>Stack: ..., objectref -&gt; ...</PRE>
  *
- * @version $Id: MONITORENTER.java 1747278 2016-06-07 17:28:43Z britter $
- * @LastModified: Oct 2017
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public class MONITORENTER extends Instruction implements ExceptionThrower, StackConsumer {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/MONITOREXIT.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/MONITOREXIT.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -26,8 +26,8 @@
  * MONITOREXIT - Exit monitor for object
  * <PRE>Stack: ..., objectref -&gt; ...</PRE>
  *
- * @version $Id: MONITOREXIT.java 1747278 2016-06-07 17:28:43Z britter $
- * @LastModified: Oct 2017
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public class MONITOREXIT extends Instruction implements ExceptionThrower, StackConsumer {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/MULTIANEWARRAY.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/MULTIANEWARRAY.java	Wed Jun 26 05:49:59 2019 +0000
@@ -32,7 +32,7 @@
  * MULTIANEWARRAY - Create new mutidimensional array of references
  * <PRE>Stack: ..., count1, [count2, ...] -&gt; ..., arrayref</PRE>
  *
- * @version $Id: MULTIANEWARRAY.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class MULTIANEWARRAY extends CPInstruction implements LoadClass, AllocationInstruction,
         ExceptionThrower {
@@ -41,8 +41,8 @@
 
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     MULTIANEWARRAY() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/MethodGen.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/MethodGen.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -52,13 +52,13 @@
  * automatically for the code. Use stripAttributes() if you don't like this.
  *
  * While generating code it may be necessary to insert NOP operations. You can
- * use the `removeNOPs' method to get rid off them. The resulting method object
- * can be obtained via the `getMethod()' method.
+ * use the `removeNOPs' method to get rid off them.
+ * The resulting method object can be obtained via the `getMethod()' method.
  *
- * @version $Id: MethodGen.java 1749603 2016-06-21 20:50:19Z ggregory $
- * @see InstructionList
- * @see Method
- * @LastModified: Oct 2017
+ * @version $Id$
+ * @see     InstructionList
+ * @see     Method
+ * @LastModified: Jun 2019
  */
 public class MethodGen extends FieldGenOrMethodGen {
 
@@ -69,8 +69,8 @@
     private int max_stack;
     private InstructionList il;
     private boolean strip_attributes;
+    private LocalVariableTypeTable local_variable_type_table = null;
     private final List<LocalVariableGen> variable_vec = new ArrayList<>();
-    private final List<LocalVariableGen> type_vec = new ArrayList<>();
     private final List<LineNumberGen> line_number_vec = new ArrayList<>();
     private final List<CodeExceptionGen> exception_vec = new ArrayList<>();
     private final List<String> throws_vec = new ArrayList<>();
@@ -83,41 +83,42 @@
     private static BCELComparator bcelComparator = new BCELComparator() {
 
         @Override
-        public boolean equals(final Object o1, final Object o2) {
+        public boolean equals( final Object o1, final Object o2 ) {
             final MethodGen THIS = (MethodGen) o1;
             final MethodGen THAT = (MethodGen) o2;
             return THIS.getName().equals(THAT.getName())
                     && THIS.getSignature().equals(THAT.getSignature());
         }
 
+
         @Override
-        public int hashCode(final Object o) {
+        public int hashCode( final Object o ) {
             final MethodGen THIS = (MethodGen) o;
             return THIS.getSignature().hashCode() ^ THIS.getName().hashCode();
         }
     };
 
+
     /**
-     * Declare method. If the method is non-static the constructor automatically
-     * declares a local variable `$this' in slot 0. The actual code is contained
-     * in the `il' parameter, which may further manipulated by the user. But he
-     * must take care not to remove any instruction (handles) that are still
-     * referenced from this object.
+     * Declare method. If the method is non-static the constructor
+     * automatically declares a local variable `$this' in slot 0. The
+     * actual code is contained in the `il' parameter, which may further
+     * manipulated by the user. But he must take care not to remove any
+     * instruction (handles) that are still referenced from this object.
      *
      * For example one may not add a local variable and later remove the
-     * instructions it refers to without causing havoc. It is safe however if
-     * you remove that local variable, too.
+     * instructions it refers to without causing havoc. It is safe
+     * however if you remove that local variable, too.
      *
      * @param access_flags access qualifiers
-     * @param return_type method type
+     * @param return_type  method type
      * @param arg_types argument types
-     * @param arg_names argument names (if this is null, default names will be
-     * provided for them)
+     * @param arg_names argument names (if this is null, default names will be provided
+     * for them)
      * @param method_name name of method
-     * @param class_name class name containing this method (may be null, if you
-     * don't care)
-     * @param il instruction list associated with this method, may be null only
-     * for abstract or native methods
+     * @param class_name class name containing this method (may be null, if you don't care)
+     * @param il instruction list associated with this method, may be null only for
+     * abstract or native methods
      * @param cp constant pool
      */
     public MethodGen(final int access_flags, final Type return_type, final Type[] arg_types, String[] arg_names,
@@ -132,14 +133,14 @@
         setConstantPool(cp);
         final boolean abstract_ = isAbstract() || isNative();
         InstructionHandle start = null;
-        InstructionHandle end = null;
+        final InstructionHandle end = null;
         if (!abstract_) {
             start = il.getStart();
-            end = il.getEnd();
+            // end == null => live to end of method
             /* Add local variables, namely the implicit `this' and the arguments
              */
             if (!isStatic() && (class_name != null)) { // Instance method -> `this' is local var 0
-                addLocalVariable("this", ObjectType.getInstance(class_name), start, end);
+                addLocalVariable("this",  ObjectType.getInstance(class_name), start, end);
             }
         }
         if (arg_types != null) {
@@ -169,6 +170,7 @@
         }
     }
 
+
     /**
      * Instantiate from existing method.
      *
@@ -178,10 +180,11 @@
      */
     public MethodGen(final Method m, final String class_name, final ConstantPoolGen cp) {
         this(m.getAccessFlags(), Type.getReturnType(m.getSignature()), Type.getArgumentTypes(m
-                .getSignature()), null /* may be overridden anyway */, m.getName(), class_name,
+                .getSignature()), null /* may be overridden anyway */
+        , m.getName(), class_name,
                 ((m.getAccessFlags() & (Const.ACC_ABSTRACT | Const.ACC_NATIVE)) == 0)
-                ? new InstructionList(m.getCode().getCode())
-                : null, cp);
+                        ? new InstructionList(m.getCode().getCode())
+                        : null, cp);
         final Attribute[] attributes = m.getAttributes();
         for (final Attribute attribute : attributes) {
             Attribute a = attribute;
@@ -197,7 +200,7 @@
                         if (type > 0) {
                             final String cen = m.getConstantPool().getConstantString(type,
                                     Const.CONSTANT_Class);
-                            c_type = ObjectType.getInstance(cen);
+                            c_type =  ObjectType.getInstance(cen);
                         }
                         final int end_pc = ce.getEndPC();
                         final int length = m.getCode().getCode().length;
@@ -224,13 +227,9 @@
                             }
                         }
                     } else if (a instanceof LocalVariableTable) {
-                        final LocalVariable[] lv = ((LocalVariableTable) a).getLocalVariableTable();
-                        removeLocalVariables();
-                        repairHandles(lv, false);
+                        updateLocalVariableTable((LocalVariableTable) a);
                     } else if (a instanceof LocalVariableTypeTable) {
-                        LocalVariable[] lv = ((LocalVariableTypeTable) a).getLocalVariableTypeTable();
-                        removeLocalVariableTypes();
-                        repairHandles(lv, true);
+                        this.local_variable_type_table = (LocalVariableTypeTable) a.copy(cp.getConstantPool());
                     } else {
                         addCodeAttribute(a);
                     }
@@ -252,50 +251,28 @@
         }
     }
 
-    private void repairHandles(final LocalVariable[] lv, boolean isLVT) {
-        for (int k = 0; k < lv.length; k++) {
-            LocalVariable l = lv[k];
-            InstructionHandle start = il.findHandle(l.getStartPC());
-            InstructionHandle end = il.findHandle(l.getStartPC() + l.getLength());
-            // Repair malformed handles
-            if (null == start) {
-                start = il.getStart();
-            }
-            if (null == end) {
-                end = il.getEnd();
-            }
-            if (isLVT) {
-                addLocalVariableType(l.getName(), Type.getType(l.getSignature()),
-                        l.getIndex(), start, end);
-            } else {
-                addLocalVariable(l.getName(), Type.getType(l.getSignature()),
-                        l.getIndex(), start, end);
-            }
-        }
-    }
-
     /**
      * Adds a local variable to this method.
      *
      * @param name variable name
      * @param type variable type
-     * @param slot the index of the local variable, if type is long or double,
-     * the next available index is slot+2
+     * @param slot the index of the local variable, if type is long or double, the next available
+     * index is slot+2
      * @param start from where the variable is valid
      * @param end until where the variable is valid
+     * @param orig_index the index of the local variable prior to any modifications
      * @return new local variable object
      * @see LocalVariable
      */
-    public LocalVariableGen addLocalVariable(final String name, final Type type, final int slot,
-            final InstructionHandle start, final InstructionHandle end) {
-
+    public LocalVariableGen addLocalVariable( final String name, final Type type, final int slot,
+            final InstructionHandle start, final InstructionHandle end, final int orig_index ) {
         final byte t = type.getType();
         if (t != Const.T_ADDRESS) {
             final int add = type.getSize();
             if (slot + add > max_locals) {
                 max_locals = slot + add;
             }
-            final LocalVariableGen l = new LocalVariableGen(slot, name, type, start, end);
+            final LocalVariableGen l = new LocalVariableGen(slot, name, type, start, end, orig_index);
             int i;
             if ((i = variable_vec.indexOf(l)) >= 0) {
                 variable_vec.set(i, l);
@@ -308,23 +285,42 @@
                 + " as type for local variable");
     }
 
+
+    /**
+     * Adds a local variable to this method.
+     *
+     * @param name variable name
+     * @param type variable type
+     * @param slot the index of the local variable, if type is long or double, the next available
+     * index is slot+2
+     * @param start from where the variable is valid
+     * @param end until where the variable is valid
+     * @return new local variable object
+     * @see LocalVariable
+     */
+    public LocalVariableGen addLocalVariable( final String name, final Type type, final int slot,
+            final InstructionHandle start, final InstructionHandle end ) {
+        return addLocalVariable(name, type, slot, start, end, slot);
+    }
+
     /**
      * Adds a local variable to this method and assigns an index automatically.
      *
      * @param name variable name
      * @param type variable type
-     * @param start from where the variable is valid, if this is null, it is
-     * valid from the start
-     * @param end until where the variable is valid, if this is null, it is
-     * valid to the end
+     * @param start from where the variable is valid, if this is null,
+     * it is valid from the start
+     * @param end until where the variable is valid, if this is null,
+     * it is valid to the end
      * @return new local variable object
      * @see LocalVariable
      */
-    public LocalVariableGen addLocalVariable(final String name, final Type type,
-            final InstructionHandle start, final InstructionHandle end) {
+    public LocalVariableGen addLocalVariable( final String name, final Type type, final InstructionHandle start,
+            final InstructionHandle end ) {
         return addLocalVariable(name, type, max_locals, start, end);
     }
 
+
     /**
      * Remove a local variable, its slot will not be reused, if you do not use
      * addLocalVariable with an explicit index argument.
@@ -333,6 +329,7 @@
         variable_vec.remove(l);
     }
 
+
     /**
      * Remove all local variables.
      */
@@ -340,6 +337,7 @@
         variable_vec.clear();
     }
 
+
     /*
      * If the range of the variable has not been set yet, it will be set to be valid from
      * the start to the end of the instruction list.
@@ -347,44 +345,17 @@
      * @return array of declared local variables sorted by index
      */
     public LocalVariableGen[] getLocalVariables() {
-        return getLocalVariableOrTypes(false);
-    }
-
-    /*
-     * If the range of the variable has not been set yet, it will be set to be
-     * valid from the start to the end of the instruction list.
-     *
-     * @return array of declared local variable types sorted by index
-     */
-    private LocalVariableGen[] getLocalVariableTypes() {
-        return getLocalVariableOrTypes(true);
-    }
-
-    /*
-     * If the range of the variable or type has not been set yet, it will be set
-     * to be valid from the start to the end of the instruction list.
-     *
-     * @return array of declared local variables or types sorted by index
-     */
-    private LocalVariableGen[] getLocalVariableOrTypes(boolean isLVT) {
-        int size = (isLVT) ? type_vec.size() : variable_vec.size();
-        LocalVariableGen[] lg = new LocalVariableGen[size];
-        if (isLVT) {
-            type_vec.toArray(lg);
-        } else {
-            variable_vec.toArray(lg);
-        }
-
+        final int size = variable_vec.size();
+        final LocalVariableGen[] lg = new LocalVariableGen[size];
+        variable_vec.toArray(lg);
         for (int i = 0; i < size; i++) {
-            if (lg[i].getStart() == null) {
+            if ((lg[i].getStart() == null) && (il != null)) {
                 lg[i].setStart(il.getStart());
             }
-
-            if (lg[i].getEnd() == null) {
+            if ((lg[i].getEnd() == null) && (il != null)) {
                 lg[i].setEnd(il.getEnd());
             }
         }
-
         if (size > 1) {
             Arrays.sort(lg, new Comparator<LocalVariableGen>() {
                 @Override
@@ -393,15 +364,14 @@
                 }
             });
         }
-
         return lg;
     }
 
+
     /**
-     * @return `LocalVariableTable' attribute of all the local variables of this
-     * method.
+     * @return `LocalVariableTable' attribute of all the local variables of this method.
      */
-    public LocalVariableTable getLocalVariableTable(final ConstantPoolGen cp) {
+    public LocalVariableTable getLocalVariableTable( final ConstantPoolGen cp ) {
         final LocalVariableGen[] lg = getLocalVariables();
         final int size = lg.length;
         final LocalVariable[] lv = new LocalVariable[size];
@@ -413,68 +383,10 @@
     }
 
     /**
-     * @return `LocalVariableTypeTable' attribute of all the local variable
-     * types of this method.
-     */
-    public LocalVariableTypeTable getLocalVariableTypeTable(ConstantPoolGen cp) {
-        LocalVariableGen[] lg = getLocalVariableTypes();
-        int size = lg.length;
-        LocalVariable[] lv = new LocalVariable[size];
-
-        for (int i = 0; i < size; i++) {
-            lv[i] = lg[i].getLocalVariable(cp);
-        }
-
-        return new LocalVariableTypeTable(cp.addUtf8("LocalVariableTypeTable"),
-                2 + lv.length * 10, lv, cp.getConstantPool());
-    }
-
-    /**
-     * Adds a local variable type to this method.
-     *
-     * @param name variable name
-     * @param type variable type
-     * @param slot the index of the local variable, if type is long or double,
-     * the next available index is slot+2
-     * @param start from where the variable is valid
-     * @param end until where the variable is valid
-     * @return new local variable object
-     * @see LocalVariable
+     * @return `LocalVariableTypeTable' attribute of this method.
      */
-    private LocalVariableGen addLocalVariableType(String name, Type type, int slot,
-            InstructionHandle start,
-            InstructionHandle end) {
-        byte t = type.getType();
-
-        if (t != Const.T_ADDRESS) {
-            int add = type.getSize();
-
-            if (slot + add > max_locals) {
-                max_locals = slot + add;
-            }
-
-            LocalVariableGen l = new LocalVariableGen(slot, name, type, start, end);
-            int i;
-
-            if ((i = type_vec.indexOf(l)) >= 0) // Overwrite if necessary
-            {
-                type_vec.set(i, l);
-            } else {
-                type_vec.add(l);
-            }
-
-            return l;
-        } else {
-            throw new IllegalArgumentException("Can not use " + type
-                    + " as type for local variable");
-        }
-    }
-
-    /**
-     * Remove all local variable types.
-     */
-    private void removeLocalVariableTypes() {
-        type_vec.clear();
+    public LocalVariableTypeTable getLocalVariableTypeTable() {
+        return local_variable_type_table;
     }
 
     /**
@@ -484,19 +396,21 @@
      * @return new line number object
      * @see LineNumber
      */
-    public LineNumberGen addLineNumber(final InstructionHandle ih, final int src_line) {
+    public LineNumberGen addLineNumber( final InstructionHandle ih, final int src_line ) {
         final LineNumberGen l = new LineNumberGen(ih, src_line);
         line_number_vec.add(l);
         return l;
     }
 
+
     /**
      * Remove a line number.
      */
-    public void removeLineNumber(final LineNumberGen l) {
+    public void removeLineNumber( final LineNumberGen l ) {
         line_number_vec.remove(l);
     }
 
+
     /**
      * Remove all line numbers.
      */
@@ -504,6 +418,7 @@
         line_number_vec.clear();
     }
 
+
     /*
      * @return array of line numbers
      */
@@ -513,11 +428,11 @@
         return lg;
     }
 
+
     /**
-     * @return `LineNumberTable' attribute of all the local variables of this
-     * method.
+     * @return `LineNumberTable' attribute of all the local variables of this method.
      */
-    public LineNumberTable getLineNumberTable(final ConstantPoolGen cp) {
+    public LineNumberTable getLineNumberTable( final ConstantPoolGen cp ) {
         final int size = line_number_vec.size();
         final LineNumber[] ln = new LineNumber[size];
         for (int i = 0; i < size; i++) {
@@ -527,9 +442,10 @@
                 .getConstantPool());
     }
 
+
     /**
-     * Add an exception handler, i.e., specify region where a handler is active
-     * and an instruction where the actual handling is done.
+     * Add an exception handler, i.e., specify region where a handler is active and an
+     * instruction where the actual handling is done.
      *
      * @param start_pc Start of region (inclusive)
      * @param end_pc End of region (inclusive)
@@ -538,8 +454,8 @@
      * exception is handled
      * @return new exception handler object
      */
-    public CodeExceptionGen addExceptionHandler(final InstructionHandle start_pc,
-            final InstructionHandle end_pc, final InstructionHandle handler_pc, final ObjectType catch_type) {
+    public CodeExceptionGen addExceptionHandler( final InstructionHandle start_pc,
+            final InstructionHandle end_pc, final InstructionHandle handler_pc, final ObjectType catch_type ) {
         if ((start_pc == null) || (end_pc == null) || (handler_pc == null)) {
             throw new ClassGenException("Exception handler target is null instruction");
         }
@@ -548,13 +464,15 @@
         return c;
     }
 
+
     /**
      * Remove an exception handler.
      */
-    public void removeExceptionHandler(final CodeExceptionGen c) {
+    public void removeExceptionHandler( final CodeExceptionGen c ) {
         exception_vec.remove(c);
     }
 
+
     /**
      * Remove all line numbers.
      */
@@ -562,6 +480,7 @@
         exception_vec.clear();
     }
 
+
     /*
      * @return array of declared exception handlers
      */
@@ -571,6 +490,7 @@
         return cg;
     }
 
+
     /**
      * @return code exceptions for `Code' attribute
      */
@@ -578,28 +498,31 @@
         final int size = exception_vec.size();
         final CodeException[] c_exc = new CodeException[size];
         for (int i = 0; i < size; i++) {
-            final CodeExceptionGen c = exception_vec.get(i);
+            final CodeExceptionGen c =  exception_vec.get(i);
             c_exc[i] = c.getCodeException(super.getConstantPool());
         }
         return c_exc;
     }
 
+
     /**
      * Add an exception possibly thrown by this method.
      *
      * @param class_name (fully qualified) name of exception
      */
-    public void addException(final String class_name) {
+    public void addException( final String class_name ) {
         throws_vec.add(class_name);
     }
 
+
     /**
      * Remove an exception.
      */
-    public void removeException(final String c) {
+    public void removeException( final String c ) {
         throws_vec.remove(c);
     }
 
+
     /**
      * Remove all exceptions.
      */
@@ -607,6 +530,7 @@
         throws_vec.clear();
     }
 
+
     /*
      * @return array of thrown exceptions
      */
@@ -616,11 +540,11 @@
         return e;
     }
 
+
     /**
-     * @return `Exceptions' attribute of all the exceptions thrown by this
-     * method.
+     * @return `Exceptions' attribute of all the exceptions thrown by this method.
      */
-    private ExceptionTable getExceptionTable(final ConstantPoolGen cp) {
+    private ExceptionTable getExceptionTable( final ConstantPoolGen cp ) {
         final int size = throws_vec.size();
         final int[] ex = new int[size];
         for (int i = 0; i < size; i++) {
@@ -629,32 +553,45 @@
         return new ExceptionTable(cp.addUtf8("Exceptions"), 2 + 2 * size, ex, cp.getConstantPool());
     }
 
+
     /**
      * Add an attribute to the code. Currently, the JVM knows about the
-     * LineNumberTable, LocalVariableTable and StackMap attributes, where the
-     * former two will be generated automatically and the latter is used for the
-     * MIDP only. Other attributes will be ignored by the JVM but do no harm.
+     * LineNumberTable, LocalVariableTable and StackMap attributes,
+     * where the former two will be generated automatically and the
+     * latter is used for the MIDP only. Other attributes will be
+     * ignored by the JVM but do no harm.
      *
      * @param a attribute to be added
      */
-    public void addCodeAttribute(final Attribute a) {
+    public void addCodeAttribute( final Attribute a ) {
         code_attrs_vec.add(a);
     }
 
+
+    /**
+     * Remove the LocalVariableTypeTable
+     */
+    public void removeLocalVariableTypeTable( ) {
+        local_variable_type_table = null;
+    }
+
     /**
      * Remove a code attribute.
      */
-    public void removeCodeAttribute(final Attribute a) {
+    public void removeCodeAttribute( final Attribute a ) {
         code_attrs_vec.remove(a);
     }
 
+
     /**
      * Remove all code attributes.
      */
     public void removeCodeAttributes() {
+        local_variable_type_table = null;
         code_attrs_vec.clear();
     }
 
+
     /**
      * @return all attributes of this method.
      */
@@ -668,31 +605,31 @@
      * @since 6.0
      */
     public void addAnnotationsAsAttribute(final ConstantPoolGen cp) {
-        final Attribute[] attrs = AnnotationEntryGen.getAnnotationAttributes(cp, super.getAnnotationEntries());
+          final Attribute[] attrs = AnnotationEntryGen.getAnnotationAttributes(cp, super.getAnnotationEntries());
         for (final Attribute attr : attrs) {
             addAttribute(attr);
         }
-    }
+      }
 
     /**
      * @since 6.0
      */
-    public void addParameterAnnotationsAsAttribute(final ConstantPoolGen cp) {
-        if (!hasParameterAnnotations) {
-            return;
-        }
-        final Attribute[] attrs = AnnotationEntryGen.getParameterAnnotationAttributes(cp, param_annotations);
-        if (attrs != null) {
-            for (final Attribute attr : attrs) {
-                addAttribute(attr);
-            }
-        }
-    }
+      public void addParameterAnnotationsAsAttribute(final ConstantPoolGen cp) {
+          if (!hasParameterAnnotations) {
+              return;
+          }
+          final Attribute[] attrs = AnnotationEntryGen.getParameterAnnotationAttributes(cp,param_annotations);
+          if (attrs != null) {
+              for (final Attribute attr : attrs) {
+                  addAttribute(attr);
+              }
+          }
+      }
+
 
     /**
-     * Get method object. Never forget to call setMaxStack() or
-     * setMaxStack(max), respectively, before calling this method (the same
-     * applies for max locals).
+     * Get method object. Never forget to call setMaxStack() or setMaxStack(max), respectively,
+     * before calling this method (the same applies for max locals).
      *
      * @return method object
      */
@@ -709,19 +646,19 @@
         }
         LineNumberTable lnt = null;
         LocalVariableTable lvt = null;
-        LocalVariableTypeTable lvtt = null;
-
-        /* Create LocalVariableTable, LocalvariableTypeTable, and LineNumberTable
-         * attributes (for debuggers, e.g.)
+        /* Create LocalVariableTable and LineNumberTable attributes (for debuggers, e.g.)
          */
         if ((variable_vec.size() > 0) && !strip_attributes) {
+            updateLocalVariableTable(getLocalVariableTable(_cp));
             addCodeAttribute(lvt = getLocalVariableTable(_cp));
         }
-
-        if ((type_vec.size() > 0) && !strip_attributes) {
-            addCodeAttribute(lvtt = getLocalVariableTypeTable(_cp));
+        if (local_variable_type_table != null) {
+            // LocalVariable length in LocalVariableTypeTable is not updated automatically. It's a difference with LocalVariableTable.
+            if (lvt != null) {
+                adjustLocalVariableTypeTable(lvt);
+            }
+            addCodeAttribute(local_variable_type_table);
         }
-
         if ((line_number_vec.size() > 0) && !strip_attributes) {
             addCodeAttribute(lnt = getLineNumberTable(_cp));
         }
@@ -762,8 +699,8 @@
         if (lvt != null) {
             removeCodeAttribute(lvt);
         }
-        if (lvtt != null) {
-            removeCodeAttribute(lvtt);
+        if (local_variable_type_table != null) {
+            removeCodeAttribute(local_variable_type_table);
         }
         if (lnt != null) {
             removeCodeAttribute(lnt);
@@ -777,6 +714,41 @@
         return m;
     }
 
+    private void updateLocalVariableTable(final LocalVariableTable a) {
+        final LocalVariable[] lv = a.getLocalVariableTable();
+        removeLocalVariables();
+        for (final LocalVariable l : lv) {
+            InstructionHandle start = il.findHandle(l.getStartPC());
+            final InstructionHandle end = il.findHandle(l.getStartPC() + l.getLength());
+            // Repair malformed handles
+            if (null == start) {
+                start = il.getStart();
+            }
+            // end == null => live to end of method
+            // Since we are recreating the LocalVaraible, we must
+            // propagate the orig_index to new copy.
+            addLocalVariable(l.getName(), Type.getType(l.getSignature()), l
+                    .getIndex(), start, end, l.getOrigIndex());
+        }
+    }
+
+    private void adjustLocalVariableTypeTable(final LocalVariableTable lvt) {
+        final LocalVariable[] lv = lvt.getLocalVariableTable();
+        final LocalVariable[] lvg = local_variable_type_table.getLocalVariableTypeTable();
+
+        for (final LocalVariable element : lvg) {
+            for (final LocalVariable l : lv) {
+                if (element.getName().equals(l.getName()) && element.getIndex() == l.getOrigIndex()) {
+                    element.setLength(l.getLength());
+                    element.setStartPC(l.getStartPC());
+                    element.setIndex(l.getIndex());
+                    break;
+                }
+            }
+        }
+    }
+
+
     /**
      * Remove all NOPs from the instruction list (if possible) and update every
      * object referring to them, i.e., branch instructions, local variables and
@@ -804,92 +776,111 @@
         }
     }
 
+
     /**
      * Set maximum number of local variables.
      */
-    public void setMaxLocals(final int m) {
+    public void setMaxLocals( final int m ) {
         max_locals = m;
     }
 
+
     public int getMaxLocals() {
         return max_locals;
     }
 
+
     /**
      * Set maximum stack size for this method.
      */
-    public void setMaxStack(final int m) { // TODO could be package-protected?
+    public void setMaxStack( final int m ) { // TODO could be package-protected?
         max_stack = m;
     }
 
+
     public int getMaxStack() {
         return max_stack;
     }
 
-    /**
-     * @return class that contains this method
+
+    /** @return class that contains this method
      */
     public String getClassName() {
         return class_name;
     }
 
-    public void setClassName(final String class_name) { // TODO could be package-protected?
+
+    public void setClassName( final String class_name ) { // TODO could be package-protected?
         this.class_name = class_name;
     }
 
-    public void setReturnType(final Type return_type) {
+
+    public void setReturnType( final Type return_type ) {
         setType(return_type);
     }
 
+
     public Type getReturnType() {
         return getType();
     }
 
-    public void setArgumentTypes(final Type[] arg_types) {
+
+    public void setArgumentTypes( final Type[] arg_types ) {
         this.arg_types = arg_types;
     }
 
+
     public Type[] getArgumentTypes() {
         return arg_types.clone();
     }
 
-    public void setArgumentType(final int i, final Type type) {
+
+    public void setArgumentType( final int i, final Type type ) {
         arg_types[i] = type;
     }
 
-    public Type getArgumentType(final int i) {
+
+    public Type getArgumentType( final int i ) {
         return arg_types[i];
     }
 
-    public void setArgumentNames(final String[] arg_names) {
+
+    public void setArgumentNames( final String[] arg_names ) {
         this.arg_names = arg_names;
     }
 
+
     public String[] getArgumentNames() {
         return arg_names.clone();
     }
 
-    public void setArgumentName(final int i, final String name) {
+
+    public void setArgumentName( final int i, final String name ) {
         arg_names[i] = name;
     }
 
-    public String getArgumentName(final int i) {
+
+    public String getArgumentName( final int i ) {
         return arg_names[i];
     }
 
+
     public InstructionList getInstructionList() {
         return il;
     }
 
-    public void setInstructionList(final InstructionList il) { // TODO could be package-protected?
+
+    public void setInstructionList( final InstructionList il ) { // TODO could be package-protected?
         this.il = il;
     }
 
+
     @Override
     public String getSignature() {
         return Type.getMethodSignature(super.getType(), arg_types);
     }
 
+
     /**
      * Computes max. stack size by performing control flow analysis.
      */
@@ -901,6 +892,7 @@
         }
     }
 
+
     /**
      * Compute maximum number of local variables.
      */
@@ -929,11 +921,11 @@
         }
     }
 
-    /**
-     * Do not/Do produce attributes code attributesLineNumberTable and
+
+    /** Do not/Do produce attributes code attributesLineNumberTable and
      * LocalVariableTable, like javac -O
      */
-    public void stripAttributes(final boolean flag) {
+    public void stripAttributes( final boolean flag ) {
         strip_attributes = flag;
     }
 
@@ -942,6 +934,7 @@
         final InstructionHandle target;
         final int stackDepth;
 
+
         BranchTarget(final InstructionHandle target, final int stackDepth) {
             this.target = target;
             this.stackDepth = stackDepth;
@@ -953,13 +946,15 @@
         private final Stack<BranchTarget> branchTargets = new Stack<>();
         private final Map<InstructionHandle, BranchTarget> visitedTargets = new HashMap<>();
 
-        public void push(final InstructionHandle target, final int stackDepth) {
+
+        public void push( final InstructionHandle target, final int stackDepth ) {
             if (visited(target)) {
                 return;
             }
             branchTargets.push(visit(target, stackDepth));
         }
 
+
         public BranchTarget pop() {
             if (!branchTargets.empty()) {
                 final BranchTarget bt = branchTargets.pop();
@@ -968,25 +963,26 @@
             return null;
         }
 
-        private BranchTarget visit(final InstructionHandle target, final int stackDepth) {
+
+        private BranchTarget visit( final InstructionHandle target, final int stackDepth ) {
             final BranchTarget bt = new BranchTarget(target, stackDepth);
             visitedTargets.put(target, bt);
             return bt;
         }
 
-        private boolean visited(final InstructionHandle target) {
+
+        private boolean visited( final InstructionHandle target ) {
             return visitedTargets.get(target) != null;
         }
     }
 
+
     /**
-     * Computes stack usage of an instruction list by performing control flow
-     * analysis.
+     * Computes stack usage of an instruction list by performing control flow analysis.
      *
      * @return maximum stack depth used by method
      */
-    public static int getMaxStack(final ConstantPoolGen cp, final InstructionList il,
-            final CodeExceptionGen[] et) {
+    public static int getMaxStack( final ConstantPoolGen cp, final InstructionList il, final CodeExceptionGen[] et ) {
         final BranchStack branchTargets = new BranchStack();
         /* Initially, populate the branch stack with the exception
          * handlers, because these aren't (necessarily) branched to
@@ -1059,29 +1055,29 @@
 
     private List<MethodObserver> observers;
 
-    /**
-     * Add observer for this object.
+
+    /** Add observer for this object.
      */
-    public void addObserver(final MethodObserver o) {
+    public void addObserver( final MethodObserver o ) {
         if (observers == null) {
             observers = new ArrayList<>();
         }
         observers.add(o);
     }
 
-    /**
-     * Remove observer for this object.
+
+    /** Remove observer for this object.
      */
-    public void removeObserver(final MethodObserver o) {
+    public void removeObserver( final MethodObserver o ) {
         if (observers != null) {
             observers.remove(o);
         }
     }
 
-    /**
-     * Call notify() method on all observers. This method is not called
-     * automatically whenever the state has changed, but has to be called by the
-     * user after he has finished editing the object.
+
+    /** Call notify() method on all observers. This method is not called
+     * automatically whenever the state has changed, but has to be
+     * called by the user after he has finished editing the object.
      */
     public void update() {
         if (observers != null) {
@@ -1091,9 +1087,10 @@
         }
     }
 
+
     /**
-     * Return string representation close to declaration format, e.g. public
-     * static void main(String[]) throws IOException'
+     * Return string representation close to declaration format,
+     * `public static void main(String[]) throws IOException', e.g.
      *
      * @return String representation of the method.
      */
@@ -1118,10 +1115,10 @@
         return buf.toString();
     }
 
-    /**
-     * @return deep copy of this method
+
+    /** @return deep copy of this method
      */
-    public MethodGen copy(final String class_name, final ConstantPoolGen cp) {
+    public MethodGen copy( final String class_name, final ConstantPoolGen cp ) {
         final Method m = ((MethodGen) clone()).getMethod();
         final MethodGen mg = new MethodGen(m, class_name, super.getConstantPool());
         if (super.getConstantPool() != cp) {
@@ -1135,7 +1132,6 @@
     // is more likely to suggest to the caller it is readonly (which a List does not).
     /**
      * Return a list of AnnotationGen objects representing parameter annotations
-     *
      * @since 6.0
      */
     public List<AnnotationEntryGen> getAnnotationsOnParameter(final int i) {
@@ -1154,7 +1150,8 @@
      * deleted. (The annotations will be rebuilt as attributes when someone
      * builds a Method object out of this MethodGen object).
      */
-    private void ensureExistingParameterAnnotationsUnpacked() {
+    private void ensureExistingParameterAnnotationsUnpacked()
+    {
         if (haveUnpackedParameterAnnotations) {
             return;
         }
@@ -1163,9 +1160,11 @@
         ParameterAnnotations paramAnnVisAttr = null;
         ParameterAnnotations paramAnnInvisAttr = null;
         for (final Attribute attribute : attrs) {
-            if (attribute instanceof ParameterAnnotations) {
+            if (attribute instanceof ParameterAnnotations)
+            {
                 // Initialize param_annotations
-                if (!hasParameterAnnotations) {
+                if (!hasParameterAnnotations)
+                {
                     @SuppressWarnings({"rawtypes", "unchecked"})
                     final List<AnnotationEntryGen>[] parmList = new List[arg_types.length];
                     param_annotations = parmList;
@@ -1180,13 +1179,13 @@
                 } else {
                     paramAnnInvisAttr = rpa;
                 }
-                for (int j = 0; j < arg_types.length; j++) {
+                final ParameterAnnotationEntry[] parameterAnnotationEntries = rpa.getParameterAnnotationEntries();
+                for (int j = 0; j < parameterAnnotationEntries.length; j++)
+                {
                     // This returns Annotation[] ...
-                    final ParameterAnnotationEntry immutableArray = rpa
-                            .getParameterAnnotationEntries()[j];
+                    final ParameterAnnotationEntry immutableArray = rpa.getParameterAnnotationEntries()[j];
                     // ... which needs transforming into an AnnotationGen[] ...
-                    final List<AnnotationEntryGen> mutable
-                            = makeMutableVersion(immutableArray.getAnnotationEntries());
+                    final List<AnnotationEntryGen> mutable = makeMutableVersion(immutableArray.getAnnotationEntries());
                     // ... then add these to any we already know about
                     param_annotations[j].addAll(mutable);
                 }
@@ -1201,7 +1200,8 @@
         haveUnpackedParameterAnnotations = true;
     }
 
-    private List<AnnotationEntryGen> makeMutableVersion(final AnnotationEntry[] mutableArray) {
+    private List<AnnotationEntryGen> makeMutableVersion(final AnnotationEntry[] mutableArray)
+    {
         final List<AnnotationEntryGen> result = new ArrayList<>();
         for (final AnnotationEntry element : mutableArray) {
             result.add(new AnnotationEntryGen(element, getConstantPool(),
@@ -1211,18 +1211,23 @@
     }
 
     public void addParameterAnnotation(final int parameterIndex,
-            final AnnotationEntryGen annotation) {
+            final AnnotationEntryGen annotation)
+    {
         ensureExistingParameterAnnotationsUnpacked();
-        if (!hasParameterAnnotations) {
+        if (!hasParameterAnnotations)
+        {
             @SuppressWarnings({"rawtypes", "unchecked"})
             final List<AnnotationEntryGen>[] parmList = new List[arg_types.length];
             param_annotations = parmList;
             hasParameterAnnotations = true;
         }
         final List<AnnotationEntryGen> existingAnnotations = param_annotations[parameterIndex];
-        if (existingAnnotations != null) {
+        if (existingAnnotations != null)
+        {
             existingAnnotations.add(annotation);
-        } else {
+        }
+        else
+        {
             final List<AnnotationEntryGen> l = new ArrayList<>();
             l.add(annotation);
             param_annotations[parameterIndex] = l;
@@ -1236,28 +1241,31 @@
         return bcelComparator;
     }
 
+
     /**
      * @param comparator Comparison strategy object
      */
-    public static void setComparator(final BCELComparator comparator) {
+    public static void setComparator( final BCELComparator comparator ) {
         bcelComparator = comparator;
     }
 
+
     /**
-     * Return value as defined by given BCELComparator strategy. By default two
-     * MethodGen objects are said to be equal when their names and signatures
-     * are equal.
+     * Return value as defined by given BCELComparator strategy.
+     * By default two MethodGen objects are said to be equal when
+     * their names and signatures are equal.
      *
      * @see java.lang.Object#equals(java.lang.Object)
      */
     @Override
-    public boolean equals(final Object obj) {
+    public boolean equals( final Object obj ) {
         return bcelComparator.equals(this, obj);
     }
 
+
     /**
-     * Return value as defined by given BCELComparator strategy. By default
-     * return the hashcode of the method's name XOR signature.
+     * Return value as defined by given BCELComparator strategy.
+     * By default return the hashcode of the method's name XOR signature.
      *
      * @see java.lang.Object#hashCode()
      */
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/MethodObserver.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/MethodObserver.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * Implement this interface if you're interested in changes to a MethodGen object
  * and register yourself with addObserver().
  *
- * @version $Id: MethodObserver.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public interface MethodObserver {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/NEW.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/NEW.java	Wed Jun 26 05:49:59 2019 +0000
@@ -27,14 +27,14 @@
  * NEW - Create new object
  * <PRE>Stack: ... -&gt; ..., objectref</PRE>
  *
- * @version $Id: NEW.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class NEW extends CPInstruction implements LoadClass, AllocationInstruction,
         ExceptionThrower, StackProducer {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     NEW() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/NEWARRAY.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/NEWARRAY.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -20,18 +20,19 @@
 
 package com.sun.org.apache.bcel.internal.generic;
 
+import java.io.DataOutputStream;
+import java.io.IOException;
+
 import com.sun.org.apache.bcel.internal.ExceptionConst;
 import com.sun.org.apache.bcel.internal.util.ByteSequence;
-import java.io.DataOutputStream;
-import java.io.IOException;
 
 /**
  * NEWARRAY -  Create new array of basic type (int, short, ...)
  * <PRE>Stack: ..., count -&gt; ..., arrayref</PRE>
  * type must be one of T_INT, T_SHORT, ...
  *
- * @version $Id: NEWARRAY.java 1747278 2016-06-07 17:28:43Z britter $
- * @LastModified: Oct 2017
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public class NEWARRAY extends Instruction implements AllocationInstruction, ExceptionThrower,
         StackProducer {
@@ -40,8 +41,8 @@
 
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     NEWARRAY() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/NOP.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/NOP.java	Wed Jun 26 05:49:59 2019 +0000
@@ -24,7 +24,7 @@
 /**
  * NOP - Do nothing
  *
- * @version $Id: NOP.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class NOP extends Instruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/NamedAndTyped.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/NamedAndTyped.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * Denote entity that has both name and type. This is true for local variables,
  * methods and fields.
  *
- * @version $Id: NamedAndTyped.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public interface NamedAndTyped {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ObjectType.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ObjectType.java	Wed Jun 26 05:49:59 2019 +0000
@@ -28,7 +28,7 @@
 /**
  * Denotes reference such as java.lang.String.
  *
- * @version $Id: ObjectType.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  */
 public class ObjectType extends ReferenceType {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/POP.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/POP.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,7 +26,7 @@
  *
  * <PRE>Stack: ..., word -&gt; ...</PRE>
  *
- * @version $Id: POP.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class POP extends StackInstruction implements PopInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/POP2.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/POP2.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,7 +26,7 @@
  *
  * <PRE>Stack: ..., word2, word1 -&gt; ...</PRE>
  *
- * @version $Id: POP2.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class POP2 extends StackInstruction implements PopInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/PUSH.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/PUSH.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -26,7 +26,8 @@
  * Wrapper class for push operations, which are implemented either as BIPUSH,
  * LDC or xCONST_n instructions.
  *
- * @version $Id: PUSH.java 1749598 2016-06-21 20:36:33Z ggregory $
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public final class PUSH implements CompoundInstruction, VariableLengthInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/PUTFIELD.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/PUTFIELD.java	Wed Jun 26 05:49:59 2019 +0000
@@ -30,13 +30,13 @@
  * OR
  * <PRE>Stack: ..., objectref, value.word1, value.word2 -&gt; ...</PRE>
  *
- * @version $Id: PUTFIELD.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class PUTFIELD extends FieldInstruction implements PopInstruction, ExceptionThrower {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     PUTFIELD() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/PUTSTATIC.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/PUTSTATIC.java	Wed Jun 26 05:49:59 2019 +0000
@@ -30,13 +30,13 @@
  * OR
  * <PRE>Stack: ..., value.word1, value.word2 -&gt; ...</PRE>
  *
- * @version $Id: PUTSTATIC.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class PUTSTATIC extends FieldInstruction implements ExceptionThrower, PopInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     PUTSTATIC() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/PopInstruction.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/PopInstruction.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * Denotes an unparameterized instruction to pop a value on top from the stack,
  * such as ISTORE, POP, PUTSTATIC.
  *
- * @version $Id: PopInstruction.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  * @see ISTORE
  * @see POP
  */
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/PushInstruction.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/PushInstruction.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * Denotes an unparameterized instruction to produce a value on top of the stack,
  * such as ILOAD, LDC, SIPUSH, DUP, ICONST, etc.
  *
- * @version $Id: PushInstruction.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
 
  * @see ILOAD
  * @see ICONST
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/RET.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/RET.java	Wed Jun 26 05:49:59 2019 +0000
@@ -31,7 +31,7 @@
  *
  * <PRE>Stack: ... -&gt; ...</PRE>
  *
- * @version $Id: RET.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class RET extends Instruction implements IndexedInstruction, TypedInstruction {
 
@@ -40,8 +40,8 @@
 
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     RET() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/RETURN.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/RETURN.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * RETURN -  Return from void method
  * <PRE>Stack: ... -&gt; &lt;empty&gt;</PRE>
  *
- * @version $Id: RETURN.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class RETURN extends ReturnInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ReferenceType.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ReferenceType.java	Wed Jun 26 05:49:59 2019 +0000
@@ -27,7 +27,7 @@
 /**
  * Super class for object and array types.
  *
- * @version $Id: ReferenceType.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  */
 public abstract class ReferenceType extends Type {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ReturnInstruction.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ReturnInstruction.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -26,15 +26,15 @@
 /**
  * Super class for the xRETURN family of instructions.
  *
- * @version $Id: ReturnInstruction.java 1747278 2016-06-07 17:28:43Z britter $
- * @LastModified: Oct 2017
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public abstract class ReturnInstruction extends Instruction implements ExceptionThrower,
         TypedInstruction, StackConsumer {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     ReturnInstruction() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ReturnaddressType.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ReturnaddressType.java	Wed Jun 26 05:49:59 2019 +0000
@@ -27,7 +27,7 @@
  * Returnaddress, the type JSR or JSR_W instructions push upon the stack.
  *
  * see vmspec2 3.3.3
- * @version $Id: ReturnaddressType.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  */
 public class ReturnaddressType extends Type {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/SALOAD.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/SALOAD.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * SALOAD - Load short from array
  * <PRE>Stack: ..., arrayref, index -&gt; ..., value</PRE>
  *
- * @version $Id: SALOAD.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class SALOAD extends ArrayInstruction implements StackProducer {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/SASTORE.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/SASTORE.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * SASTORE - Store into short array
  * <PRE>Stack: ..., arrayref, index, value -&gt; ...</PRE>
  *
- * @version $Id: SASTORE.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class SASTORE extends ArrayInstruction implements StackConsumer {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/SIPUSH.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/SIPUSH.java	Wed Jun 26 05:49:59 2019 +0000
@@ -30,7 +30,7 @@
  *
  * <PRE>Stack: ... -&gt; ..., value</PRE>
  *
- * @version $Id: SIPUSH.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class SIPUSH extends Instruction implements ConstantPushInstruction {
 
@@ -38,8 +38,8 @@
 
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     SIPUSH() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/SWAP.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/SWAP.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * SWAP - Swa top operand stack word
  * <PRE>Stack: ..., word2, word1 -&gt; ..., word1, word2</PRE>
  *
- * @version $Id: SWAP.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public class SWAP extends StackInstruction implements StackConsumer, StackProducer {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/SWITCH.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/SWITCH.java	Wed Jun 26 05:49:59 2019 +0000
@@ -26,7 +26,7 @@
  * TABLESWITCH instruction, depending on whether the match values (int[]) can be
  * sorted with no gaps between the numbers.
  *
- * @version $Id: SWITCH.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  */
 public final class SWITCH implements CompoundInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/Select.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/Select.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -27,13 +27,13 @@
 /**
  * Select - Abstract super class for LOOKUPSWITCH and TABLESWITCH instructions.
  *
- * <p>
- * We use our super's <code>target</code> property as the default target.
+ * <p>We use our super's <code>target</code> property as the default target.
  *
- * @version $Id: Select.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  * @see LOOKUPSWITCH
  * @see TABLESWITCH
  * @see InstructionList
+ * @LastModified: Jun 2019
  */
 public abstract class Select extends BranchInstruction implements VariableLengthInstruction,
         StackConsumer /* @since 6.0 */, StackProducer {
@@ -52,9 +52,10 @@
     Select() {
     }
 
+
     /**
-     * (Match, target) pairs for switch. `Match' and `targets' must have the
-     * same length of course.
+     * (Match, target) pairs for switch.
+     * `Match' and `targets' must have the same length of course.
      *
      * @param match array of matching values
      * @param targets instruction targets
@@ -71,31 +72,28 @@
             notifyTarget(null, target2, this);
         }
         if ((match_length = match.length) != targets.length) {
-            throw new ClassGenException("Match and target array have not the same length: Match length: "
-                    + match.length + " Target length: " + targets.length);
+            throw new ClassGenException("Match and target array have not the same length: Match length: " +
+                match.length + " Target length: " + targets.length);
         }
         indices = new int[match_length];
     }
 
+
     /**
      * Since this is a variable length instruction, it may shift the following
      * instructions which then need to update their position.
      *
-     * Called by InstructionList.setPositions when setting the position for
-     * every instruction. In the presence of variable length instructions
-     * `setPositions' performs multiple passes over the instruction list to
-     * calculate the correct (byte) positions and offsets by calling this
-     * function.
+     * Called by InstructionList.setPositions when setting the position for every
+     * instruction. In the presence of variable length instructions `setPositions'
+     * performs multiple passes over the instruction list to calculate the
+     * correct (byte) positions and offsets by calling this function.
      *
-     * @param offset additional offset caused by preceding (variable length)
-     * instructions
-     * @param max_offset the maximum offset that may be caused by these
-     * instructions
-     * @return additional offset caused by possible change of this instruction's
-     * length
+     * @param offset additional offset caused by preceding (variable length) instructions
+     * @param max_offset the maximum offset that may be caused by these instructions
+     * @return additional offset caused by possible change of this instruction's length
      */
     @Override
-    protected int updatePosition(final int offset, final int max_offset) {
+    protected int updatePosition( final int offset, final int max_offset ) {
         setPosition(getPosition() + offset); // Additional offset caused by preceding SWITCHs, GOTOs, etc.
         final short old_length = (short) super.getLength();
         /* Alignment on 4-byte-boundary, + 1, because of tag byte.
@@ -105,13 +103,13 @@
         return super.getLength() - old_length;
     }
 
+
     /**
      * Dump instruction as byte code to stream out.
-     *
      * @param out Output stream
      */
     @Override
-    public void dump(final DataOutputStream out) throws IOException {
+    public void dump( final DataOutputStream out ) throws IOException {
         out.writeByte(super.getOpcode());
         for (int i = 0; i < padding; i++) {
             out.writeByte(0);
@@ -120,11 +118,12 @@
         out.writeInt(super.getIndex());
     }
 
+
     /**
      * Read needed data (e.g. index) from file.
      */
     @Override
-    protected void initFromFile(final ByteSequence bytes, final boolean wide) throws IOException {
+    protected void initFromFile( final ByteSequence bytes, final boolean wide ) throws IOException {
         padding = (4 - (bytes.getIndex() % 4)) % 4; // Compute number of pad bytes
         for (int i = 0; i < padding; i++) {
             bytes.readByte();
@@ -133,11 +132,12 @@
         super.setIndex(bytes.readInt());
     }
 
+
     /**
      * @return mnemonic for instruction
      */
     @Override
-    public String toString(final boolean verbose) {
+    public String toString( final boolean verbose ) {
         final StringBuilder buf = new StringBuilder(super.toString(verbose));
         if (verbose) {
             for (int i = 0; i < match_length; i++) {
@@ -154,20 +154,22 @@
         return buf.toString();
     }
 
+
     /**
      * Set branch target for `i'th case
      */
-    public void setTarget(final int i, final InstructionHandle target) { // TODO could be package-protected?
+    public void setTarget( final int i, final InstructionHandle target ) { // TODO could be package-protected?
         notifyTarget(targets[i], target, this);
         targets[i] = target;
     }
 
+
     /**
      * @param old_ih old target
      * @param new_ih new target
      */
     @Override
-    public void updateTarget(final InstructionHandle old_ih, final InstructionHandle new_ih) {
+    public void updateTarget( final InstructionHandle old_ih, final InstructionHandle new_ih ) {
         boolean targeted = false;
         if (super.getTarget() == old_ih) {
             targeted = true;
@@ -184,11 +186,12 @@
         }
     }
 
+
     /**
      * @return true, if ih is target of this instruction
      */
     @Override
-    public boolean containsTarget(final InstructionHandle ih) {
+    public boolean containsTarget( final InstructionHandle ih ) {
         if (super.getTarget() == ih) {
             return true;
         }
@@ -200,6 +203,7 @@
         return false;
     }
 
+
     @Override
     protected Object clone() throws CloneNotSupportedException {
         final Select copy = (Select) super.clone();
@@ -209,6 +213,7 @@
         return copy;
     }
 
+
     /**
      * Inform targets that they're not targeted anymore.
      */
@@ -220,6 +225,7 @@
         }
     }
 
+
     /**
      * @return array of match indices
      */
@@ -227,6 +233,7 @@
         return match;
     }
 
+
     /**
      * @return array of match target offsets
      */
@@ -234,6 +241,7 @@
         return indices;
     }
 
+
     /**
      * @return array of match targets
      */
@@ -249,6 +257,7 @@
         return match[index];
     }
 
+
     /**
      * @return index entry from indices
      * @since 6.0
@@ -265,6 +274,7 @@
         return targets[index];
     }
 
+
     /**
      * @return the fixed_length
      * @since 6.0
@@ -273,6 +283,7 @@
         return fixed_length;
     }
 
+
     /**
      * @param fixed_length the fixed_length to set
      * @since 6.0
@@ -281,6 +292,7 @@
         this.fixed_length = fixed_length;
     }
 
+
     /**
      * @return the match_length
      * @since 6.0
@@ -289,6 +301,7 @@
         return match_length;
     }
 
+
     /**
      * @param match_length the match_length to set
      * @since 6.0
@@ -344,9 +357,8 @@
         return padding;
     }
 
-    /**
-     * @since 6.0
-     */
+
+    /** @since 6.0 */
     final int setIndices(final int i, final int value) {
         indices[i] = value;
         return value;  // Allow use in nested calls
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/StackConsumer.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/StackConsumer.java	Wed Jun 26 05:49:59 2019 +0000
@@ -24,7 +24,7 @@
 /**
  * Denote an instruction that may consume a value from the stack.
  *
- * @version $Id: StackConsumer.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public interface StackConsumer {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/StackInstruction.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/StackInstruction.java	Wed Jun 26 05:49:59 2019 +0000
@@ -24,13 +24,13 @@
 /**
  * Super class for stack operations like DUP and POP.
  *
- * @version $Id: StackInstruction.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public abstract class StackInstruction extends Instruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     StackInstruction() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/StackProducer.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/StackProducer.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * Denote an instruction that may produce a value on top of the stack
  * (this excludes DUP_X1, e.g.)
  *
- * @version $Id: StackProducer.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public interface StackProducer {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/StoreInstruction.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/StoreInstruction.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,13 +25,13 @@
  * Denotes an unparameterized instruction to store a value into a local variable,
  * e.g. ISTORE.
  *
- * @version $Id: StoreInstruction.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public abstract class StoreInstruction extends LocalVariableInstruction implements PopInstruction {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      * tag and length are defined in readInstruction and initFromFile, respectively.
      */
     StoreInstruction(final short canon_tag, final short c_tag) {
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/TABLESWITCH.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/TABLESWITCH.java	Wed Jun 26 05:49:59 2019 +0000
@@ -29,14 +29,14 @@
 /**
  * TABLESWITCH - Switch within given range of values, i.e., low..high
  *
- * @version $Id: TABLESWITCH.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  * @see SWITCH
  */
 public class TABLESWITCH extends Select {
 
     /**
-     * Empty constructor needed for the Class.newInstance() statement in
-     * Instruction.readInstruction(). Not to be used otherwise.
+     * Empty constructor needed for Instruction.readInstruction.
+     * Not to be used otherwise.
      */
     TABLESWITCH() {
     }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/TargetLostException.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/TargetLostException.java	Wed Jun 26 05:49:59 2019 +0000
@@ -47,7 +47,7 @@
  * @see InstructionHandle
  * @see InstructionList
  * @see InstructionTargeter
- * @version $Id: TargetLostException.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public final class TargetLostException extends Exception {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/Type.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/Type.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -27,10 +27,11 @@
 import com.sun.org.apache.bcel.internal.classfile.Utility;
 
 /**
- * Abstract super class for all possible java types, namely basic types such as
- * int, object types like String and array types, e.g. int[]
+ * Abstract super class for all possible java types, namely basic types
+ * such as int, object types like String and array types, e.g. int[]
  *
- * @version $Id: Type.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public abstract class Type {
 
@@ -59,11 +60,13 @@
     public static final Type UNKNOWN = new Type(Const.T_UNKNOWN, "<unknown object>") {
     };
 
+
     protected Type(final byte t, final String s) {
         type = t;
         signature = s;
     }
 
+
     /**
      * @return hashcode of Type
      */
@@ -72,18 +75,20 @@
         return type ^ signature.hashCode();
     }
 
+
     /**
      * @return whether the Types are equal
      */
     @Override
     public boolean equals(final Object o) {
-        if (o instanceof Type) {
-            final Type t = (Type) o;
-            return (type == t.type) && signature.equals(t.signature);
-        }
-        return false;
+          if (o instanceof Type) {
+              final Type t = (Type)o;
+              return (type == t.type) && signature.equals(t.signature);
+          }
+          return false;
     }
 
+
     /**
      * @return signature for given type.
      */
@@ -91,6 +96,7 @@
         return signature;
     }
 
+
     /**
      * @return type as defined in Constants
      */
@@ -99,11 +105,9 @@
     }
 
     /**
-     * boolean, short and char variable are considered as int in the stack or
-     * local variable area. Returns {@link Type#INT} for
-     * {@link Type#BOOLEAN}, {@link Type#SHORT} or {@link Type#CHAR}, otherwise
+     * boolean, short and char variable are considered as int in the stack or local variable area.
+     * Returns {@link Type#INT} for {@link Type#BOOLEAN}, {@link Type#SHORT} or {@link Type#CHAR}, otherwise
      * returns the given type.
-     *
      * @since 6.0
      */
     public Type normalizeForStackOrLocal() {
@@ -114,8 +118,7 @@
     }
 
     /**
-     * @return stack size of this type (2 for long and double, 0 for void, 1
-     * otherwise)
+     * @return stack size of this type (2 for long and double, 0 for void, 1 otherwise)
      */
     public int getSize() {
         switch (type) {
@@ -129,6 +132,7 @@
         }
     }
 
+
     /**
      * @return Type string, e.g. `int[]'
      */
@@ -138,6 +142,7 @@
                 .signatureToString(signature, false);
     }
 
+
     /**
      * Convert type to Java method signature, e.g. int[] f(java.lang.String x)
      * becomes (Ljava/lang/String;)[I
@@ -146,7 +151,7 @@
      * @param arg_types what are the argument types
      * @return method signature for given type(s).
      */
-    public static String getMethodSignature(final Type return_type, final Type[] arg_types) {
+    public static String getMethodSignature( final Type return_type, final Type[] arg_types ) {
         final StringBuilder buf = new StringBuilder("(");
         if (arg_types != null) {
             for (final Type arg_type : arg_types) {
@@ -166,22 +171,24 @@
         }
     };//int consumed_chars=0; // Remember position in string, see getArgumentTypes
 
-    private static int unwrap(final ThreadLocal<Integer> tl) {
+
+    private static int unwrap( final ThreadLocal<Integer> tl ) {
         return tl.get().intValue();
     }
 
-    private static void wrap(final ThreadLocal<Integer> tl, final int value) {
+
+    private static void wrap( final ThreadLocal<Integer> tl, final int value ) {
         tl.set(Integer.valueOf(value));
     }
 
+
     /**
      * Convert signature to a Type object.
-     *
      * @param signature signature string such as Ljava/lang/String;
      * @return type object
      */
     // @since 6.0 no longer final
-    public static Type getType(final String signature) throws StringIndexOutOfBoundsException {
+    public static Type getType( final String signature ) throws StringIndexOutOfBoundsException {
         final byte type = Utility.typeOfSignature(signature);
         if (type <= Const.T_VOID) {
             //corrected concurrent private static field acess
@@ -208,13 +215,14 @@
         }
     }
 
+
     /**
      * Convert return value of a method (signature) to a Type object.
      *
      * @param signature signature string such as (Ljava/lang/String;)V
      * @return return type
      */
-    public static Type getReturnType(final String signature) {
+    public static Type getReturnType( final String signature ) {
         try {
             // Read return type after `)'
             final int index = signature.lastIndexOf(')') + 1;
@@ -224,13 +232,13 @@
         }
     }
 
+
     /**
      * Convert arguments of a method (signature) to an array of Type objects.
-     *
      * @param signature signature string such as (Ljava/lang/String;)V
      * @return array of argument types
      */
-    public static Type[] getArgumentTypes(final String signature) {
+    public static Type[] getArgumentTypes( final String signature ) {
         final List<Type> vec = new ArrayList<>();
         int index;
         Type[] types;
@@ -252,13 +260,12 @@
         return types;
     }
 
-    /**
-     * Convert runtime java.lang.Class to BCEL Type object.
-     *
+
+    /** Convert runtime java.lang.Class to BCEL Type object.
      * @param cl Java class
      * @return corresponding Type object
      */
-    public static Type getType(final java.lang.Class<?> cl) {
+    public static Type getType( final java.lang.Class<?> cl ) {
         if (cl == null) {
             throw new IllegalArgumentException("Class must not be null");
         }
@@ -296,13 +303,13 @@
         }
     }
 
+
     /**
      * Convert runtime java.lang.Class[] to BCEL Type objects.
-     *
      * @param classes an array of runtime class objects
      * @return array of corresponding Type objects
      */
-    public static Type[] getTypes(final java.lang.Class<?>[] classes) {
+    public static Type[] getTypes( final java.lang.Class<?>[] classes ) {
         final Type[] ret = new Type[classes.length];
         for (int i = 0; i < ret.length; i++) {
             ret[i] = getType(classes[i]);
@@ -310,7 +317,8 @@
         return ret;
     }
 
-    public static String getSignature(final java.lang.reflect.Method meth) {
+
+    public static String getSignature( final java.lang.reflect.Method meth ) {
         final StringBuilder sb = new StringBuilder("(");
         final Class<?>[] params = meth.getParameterTypes(); // avoid clone
         for (final Class<?> param : params) {
@@ -333,7 +341,7 @@
         return consumed << 2 | size;
     }
 
-    static int getArgumentTypesSize(final String signature) {
+    static int getArgumentTypesSize( final String signature ) {
         int res = 0;
         int index;
         try { // Read all declarations between for `(' and `)'
@@ -352,7 +360,7 @@
         return res;
     }
 
-    static int getTypeSize(final String signature) throws StringIndexOutOfBoundsException {
+    static int getTypeSize( final String signature ) throws StringIndexOutOfBoundsException {
         final byte type = Utility.typeOfSignature(signature);
         if (type <= Const.T_VOID) {
             return encode(BasicType.getType(type).getSize(), 1);
@@ -373,6 +381,7 @@
         }
     }
 
+
     static int getReturnTypeSize(final String signature) {
         final int index = signature.lastIndexOf(')') + 1;
         return Type.size(getTypeSize(signature.substring(index)));
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/TypedInstruction.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/TypedInstruction.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * Get the type associated with an instruction, int for ILOAD, or the type
  * of the field of a PUTFIELD instruction, e.g..
  *
- * @version $Id: TypedInstruction.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public interface TypedInstruction {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/UnconditionalBranch.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/UnconditionalBranch.java	Wed Jun 26 05:49:59 2019 +0000
@@ -24,7 +24,7 @@
 /**
  * Denotes an instruction to perform an unconditional branch, i.e., GOTO, JSR.
  *
- * @version $Id: UnconditionalBranch.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
 
  * @see GOTO
  * @see JSR
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/VariableLengthInstruction.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/VariableLengthInstruction.java	Wed Jun 26 05:49:59 2019 +0000
@@ -25,7 +25,7 @@
  * Denotes an instruction to be a variable length instruction, such as
  * GOTO, JSR, LOOKUPSWITCH and TABLESWITCH.
  *
- * @version $Id: VariableLengthInstruction.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
 
  * @see GOTO
  * @see JSR
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/Visitor.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/Visitor.java	Wed Jun 26 05:49:59 2019 +0000
@@ -27,7 +27,7 @@
  * instructions with the properly typed methods just by calling the accept()
  * method.
  *
- * @version $Id: Visitor.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public interface Visitor {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/AttributeHTML.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/AttributeHTML.java	Wed Jun 26 05:49:59 2019 +0000
@@ -45,7 +45,7 @@
 /**
  * Convert found attributes into HTML file.
  *
- * @version $Id: AttributeHTML.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  *
  */
 final class AttributeHTML {
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/BCELComparator.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/BCELComparator.java	Wed Jun 26 05:49:59 2019 +0000
@@ -24,7 +24,7 @@
 /**
  * Used for BCEL comparison strategy
  *
- * @version $Id: BCELComparator.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  * @since 5.2
  */
 public interface BCELComparator {
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/BCELFactory.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/BCELFactory.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -64,8 +64,8 @@
  * A helper class for BCELifier.
  *
  * @see BCELifier
- * @version $Id: BCELFactory.java 1749603 2016-06-21 20:50:19Z ggregory $
- * @LastModified: Oct 2017
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 class BCELFactory extends EmptyVisitor {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/BCELifier.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/BCELifier.java	Wed Jun 26 05:49:59 2019 +0000
@@ -46,7 +46,7 @@
  * are done with BCEL. It does not cover all features of BCEL,
  * but tries to mimic hand-written code as close as possible.
  *
- * @version $Id: BCELifier.java 1750228 2016-06-25 21:47:44Z ggregory $
+ * @version $Id$
  */
 public class BCELifier extends com.sun.org.apache.bcel.internal.classfile.EmptyVisitor {
 
@@ -284,7 +284,7 @@
 
     /** Default main method
      */
-    public static void _main( final String[] argv ) throws Exception {
+    public static void main( final String[] argv ) throws Exception {
         if (argv.length != 1) {
             System.out.println("Usage: BCELifier classname");
             System.out.println("\tThe class must exist on the classpath");
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/ByteSequence.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/ByteSequence.java	Wed Jun 26 05:49:59 2019 +0000
@@ -29,7 +29,7 @@
  * via the `readByte()' method. This is used to implement a wrapper for the
  * Java byte code stream to gain some more readability.
  *
- * @version $Id: ByteSequence.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  */
 public final class ByteSequence extends DataInputStream {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/Class2HTML.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/Class2HTML.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -37,24 +37,24 @@
 /**
  * Read class file(s) and convert them into HTML files.
  *
- * Given a JavaClass object "class" that is in package "package" five files will
- * be created in the specified directory.
+ * Given a JavaClass object "class" that is in package "package" five files
+ * will be created in the specified directory.
  *
  * <OL>
- * <LI> "package"."class".html as the main file which defines the frames for the
- * following subfiles.
- * <LI> "package"."class"_attributes.html contains all (known) attributes found
- * in the file
- * <LI> "package"."class"_cp.html contains the constant pool
- * <LI> "package"."class"_code.html contains the byte code
- * <LI> "package"."class"_methods.html contains references to all methods and
- * fields of the class
+ * <LI> "package"."class".html as the main file which defines the frames for
+ * the following subfiles.
+ * <LI>  "package"."class"_attributes.html contains all (known) attributes found in the file
+ * <LI>  "package"."class"_cp.html contains the constant pool
+ * <LI>  "package"."class"_code.html contains the byte code
+ * <LI>  "package"."class"_methods.html contains references to all methods and fields of the class
  * </OL>
  *
- * All subfiles reference each other appropriately, e.g. clicking on a method in
- * the Method's frame will jump to the appropriate method in the Code frame.
+ * All subfiles reference each other appropriately, e.g. clicking on a
+ * method in the Method's frame will jump to the appropriate method in
+ * the Code frame.
  *
- * @version $Id: Class2HTML.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public class Class2HTML {
 
@@ -111,7 +111,8 @@
         attribute_html.close();
     }
 
-    public static void _main(final String[] argv) throws IOException {
+
+    public static void main( final String[] argv ) throws IOException {
         final String[] file_name = new String[argv.length];
         int files = 0;
         ClassParser parser = null;
@@ -129,7 +130,6 @@
                         dir = dir + sep;
                     }
                     final File store = new File(dir);
-
                     if (!store.isDirectory()) {
                         final boolean created = store.mkdirs(); // Create target directory if necessary
                         if (!created) {
@@ -176,7 +176,8 @@
                 + "</A>";
     }
 
-    static String referenceType(final String type) {
+
+    static String referenceType( final String type ) {
         String short_type = Utility.compactClassName(type);
         short_type = Utility.compactClassName(short_type, class_package + ".", true);
         final int index = type.indexOf('['); // Type is an array?
@@ -191,7 +192,8 @@
         return "<A HREF=\"" + base_type + ".html\" TARGET=_top>" + short_type + "</A>";
     }
 
-    static String toHTML(final String str) {
+
+    static String toHTML( final String str ) {
         final StringBuilder buf = new StringBuilder();
         for (int i = 0; i < str.length(); i++) {
             char ch;
@@ -215,7 +217,8 @@
         return buf.toString();
     }
 
-    private void writeMainHTML(final AttributeHTML attribute_html) throws IOException {
+
+    private void writeMainHTML( final AttributeHTML attribute_html ) throws IOException {
         try (PrintWriter file = new PrintWriter(new FileOutputStream(dir + class_name + ".html"))) {
             file.println("<HTML>\n" + "<HEAD><TITLE>Documentation for " + class_name + "</TITLE>" + "</HEAD>\n"
                     + "<FRAMESET BORDER=1 cols=\"30%,*\">\n" + "<FRAMESET BORDER=1 rows=\"80%,*\">\n"
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/ClassQueue.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/ClassQueue.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -24,26 +24,32 @@
 import com.sun.org.apache.bcel.internal.classfile.JavaClass;
 
 /**
- * Utility class implementing a (typesafe) queue of JavaClass objects.
+ * Utility class implementing a (typesafe) queue of JavaClass
+ * objects.
  *
- * @version $Id: ClassQueue.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public class ClassQueue {
 
     private final LinkedList<JavaClass> vec = new LinkedList<>();
 
-    public void enqueue(final JavaClass clazz) {
+
+    public void enqueue( final JavaClass clazz ) {
         vec.addLast(clazz);
     }
 
+
     public JavaClass dequeue() {
         return vec.removeFirst();
     }
 
+
     public boolean empty() {
         return vec.isEmpty();
     }
 
+
     @Override
     public String toString() {
         return vec.toString();
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/ClassSet.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/ClassSet.java	Wed Jun 26 05:49:59 2019 +0000
@@ -32,7 +32,7 @@
  * Since JavaClass has no equals() method, the name of the class is
  * used for comparison.
  *
- * @version $Id: ClassSet.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  * @see ClassStack
  */
 public class ClassSet {
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/ClassStack.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/ClassStack.java	Wed Jun 26 05:49:59 2019 +0000
@@ -22,12 +22,13 @@
 package com.sun.org.apache.bcel.internal.util;
 
 import java.util.Stack;
+
 import com.sun.org.apache.bcel.internal.classfile.JavaClass;
 
 /**
  * Utility class implementing a (typesafe) stack of JavaClass objects.
  *
- * @version $Id: ClassStack.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
  * @see Stack
  */
 public class ClassStack {
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/CodeHTML.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/CodeHTML.java	Wed Jun 26 05:49:59 2019 +0000
@@ -44,7 +44,7 @@
 /**
  * Convert code into HTML file.
  *
- * @version $Id: CodeHTML.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  *
  */
 final class CodeHTML {
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/ConstantHTML.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/ConstantHTML.java	Wed Jun 26 05:49:59 2019 +0000
@@ -40,7 +40,7 @@
 /**
  * Convert constant pool into HTML file.
  *
- * @version $Id: ConstantHTML.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  *
  */
 final class ConstantHTML {
@@ -54,8 +54,8 @@
     private final Method[] methods;
 
 
-    ConstantHTML(final String dir, final String class_name, final String class_package,
-            final Method[] methods, final ConstantPool constant_pool) throws IOException {
+    ConstantHTML(final String dir, final String class_name, final String class_package, final Method[] methods,
+            final ConstantPool constant_pool) throws IOException {
         this.class_name = class_name;
         this.class_package = class_package;
         this.constant_pool = constant_pool;
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/InstructionFinder.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/InstructionFinder.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -62,10 +62,10 @@
  *
  * </pre>
  *
- * @version $Id: InstructionFinder.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  * @see com.sun.org.apache.bcel.internal.generic.Instruction
  * @see InstructionList
- * @LastModified: Oct 2017
+ * @LastModified: Jun 2019
  */
 public class InstructionFinder {
 
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/MethodHTML.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/MethodHTML.java	Wed Jun 26 05:49:59 2019 +0000
@@ -37,7 +37,7 @@
 /**
  * Convert methods and fields into HTML file.
  *
- * @version $Id: MethodHTML.java 1749603 2016-06-21 20:50:19Z ggregory $
+ * @version $Id$
  *
  */
 final class MethodHTML {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/ModularRuntimeImage.java	Wed Jun 26 05:49:59 2019 +0000
@@ -0,0 +1,158 @@
+/*
+ * reserved comment block
+ * DO NOT REMOVE OR ALTER!
+ */
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+package com.sun.org.apache.bcel.internal.util;
+
+import java.io.Closeable;
+import java.io.File;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.nio.file.DirectoryStream;
+import java.nio.file.FileSystem;
+import java.nio.file.FileSystems;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Wraps a Java 9 JEP 220 modular runtime image. Requires the JRT NIO file system.
+ *
+ * @since 6.3
+ */
+public class ModularRuntimeImage implements Closeable {
+
+    static final String MODULES_PATH = File.separator + "modules";
+    static final String PACKAGES_PATH = File.separator + "packages";
+
+    private final URLClassLoader classLoader;
+    private final FileSystem fileSystem;
+
+    /**
+     * Constructs a default instance.
+     *
+     * @throws IOException
+     *             an I/O error occurs accessing the file system
+     */
+    public ModularRuntimeImage() throws IOException {
+        this(null, FileSystems.getFileSystem(URI.create("jrt:/")));
+    }
+
+    /**
+     * Constructs an instance using the JRT file system implementation from a specific Java Home.
+     *
+     * @param javaHome
+     *            Path to a Java 9 or greater home.
+     *
+     * @throws IOException
+     *             an I/O error occurs accessing the file system
+     */
+    public ModularRuntimeImage(final String javaHome) throws IOException {
+        final Map<String, ?> emptyMap = Collections.emptyMap();
+        final Path jrePath = Paths.get(javaHome);
+        final Path jrtFsPath = jrePath.resolve("lib").resolve("jrt-fs.jar");
+        this.classLoader = new URLClassLoader(new URL[] {jrtFsPath.toUri().toURL() });
+        this.fileSystem = FileSystems.newFileSystem(URI.create("jrt:/"), emptyMap, classLoader);
+    }
+
+    private ModularRuntimeImage(final URLClassLoader cl, final FileSystem fs) {
+        this.classLoader = cl;
+        this.fileSystem = fs;
+    }
+
+    @Override
+    public void close() throws IOException {
+        if (classLoader != null) {
+            if (classLoader != null) {
+                classLoader.close();
+            }
+            if (fileSystem != null) {
+                fileSystem.close();
+            }
+        }
+    }
+
+    /**
+     * Lists all entries in the given directory.
+     *
+     * @param dirPath
+     *            directory path.
+     * @return a list of dir entries if an I/O error occurs
+     * @throws IOException
+     *             an I/O error occurs accessing the file system
+     */
+    public List<Path> list(final Path dirPath) throws IOException {
+        final List<Path> list = new ArrayList<>();
+        try (DirectoryStream<Path> ds = Files.newDirectoryStream(dirPath)) {
+            final Iterator<Path> iterator = ds.iterator();
+            while (iterator.hasNext()) {
+                list.add(iterator.next());
+            }
+        }
+        return list;
+    }
+
+    /**
+     * Lists all entries in the given directory.
+     *
+     * @param dirName
+     *            directory path.
+     * @return a list of dir entries if an I/O error occurs
+     * @throws IOException
+     *             an I/O error occurs accessing the file system
+     */
+    public List<Path> list(final String dirName) throws IOException {
+        return list(fileSystem.getPath(dirName));
+    }
+
+    /**
+     * Lists all modules.
+     *
+     * @return a list of modules
+     * @throws IOException
+     *             an I/O error occurs accessing the file system
+     */
+    public List<Path> modules() throws IOException {
+        return list(MODULES_PATH);
+    }
+
+    /**
+     * Lists all packages.
+     *
+     * @return a list of modules
+     * @throws IOException
+     *             an I/O error occurs accessing the file system
+     */
+    public List<Path> packages() throws IOException {
+        return list(PACKAGES_PATH);
+    }
+
+    public FileSystem getFileSystem() {
+        return fileSystem;
+    }
+
+}
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/Repository.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/Repository.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -22,44 +22,50 @@
 import com.sun.org.apache.bcel.internal.classfile.JavaClass;
 
 /**
- * Abstract definition of a class repository. Instances may be used to load
- * classes from different sources and may be used in the
+ * Abstract definition of a class repository. Instances may be used
+ * to load classes from different sources and may be used in the
  * Repository.setRepository method.
  *
  * @see com.sun.org.apache.bcel.internal.Repository
- * @version $Id: Repository.java 1747278 2016-06-07 17:28:43Z britter $
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public interface Repository {
 
     /**
-     * Store the provided class under "clazz.getClassName()"
+     * Stores the provided class under "clazz.getClassName()"
      */
-    void storeClass(JavaClass clazz);
+    void storeClass( JavaClass clazz );
+
 
     /**
-     * Remove class from repository
+     * Removes class from repository
      */
-    void removeClass(JavaClass clazz);
+    void removeClass( JavaClass clazz );
+
 
     /**
-     * Find the class with the name provided, if the class isn't there, return
-     * NULL.
+     * Finds the class with the name provided, if the class
+     * isn't there, return NULL.
      */
-    JavaClass findClass(String className);
+    JavaClass findClass( String className );
+
 
     /**
-     * Find the class with the name provided, if the class isn't there, make an
-     * attempt to load it.
+     * Finds the class with the name provided, if the class
+     * isn't there, make an attempt to load it.
      */
-    JavaClass loadClass(String className) throws java.lang.ClassNotFoundException;
+    JavaClass loadClass( String className ) throws java.lang.ClassNotFoundException;
+
 
     /**
-     * Find the JavaClass instance for the given run-time class object
+     * Finds the JavaClass instance for the given run-time class object
      */
-    JavaClass loadClass(Class<?> clazz) throws java.lang.ClassNotFoundException;
+    JavaClass loadClass( Class<?> clazz ) throws java.lang.ClassNotFoundException;
+
 
     /**
-     * Clear all entries from cache.
+     * Clears all entries from cache.
      */
     void clear();
 }
--- a/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/SyntheticRepository.java	Tue Jun 25 18:46:51 2019 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/SyntheticRepository.java	Wed Jun 26 05:49:59 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -39,8 +39,8 @@
  *
  * @see com.sun.org.apache.bcel.internal.Repository
  *
- * @version $Id: SyntheticRepository.java 1748124 2016-06-13 08:02:16Z ggregory
- * $
+ * @version $Id$
+ * @LastModified: Jun 2019
  */
 public class SyntheticRepository implements Repository {
 
@@ -79,7 +79,7 @@
         final SoftReference<JavaClass> ref = loadedClasses.get(className);
         if (ref == null) {
             return null;
-        }
+}
         return ref.get();
     }