Changes
Apache Commons developers
Incorrect comment in StackMap.java
Incorrect comment in several classes.
Fix local variable live range length; add test case.
org.apache.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19.
org.apache.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 20.
Add Automatic-Module-Name MANIFEST entry for Java 9 compatibility
Add minimal Java 9 support
Utility.signatureToString fails if a method has multiple type arguments
IINC does not handle -128 properly
Support for StackMap should be different from StackMapTable
Crash when parsing constructor of inner classes with parameters annotated
LocalVariableTypeTable is not updated.
Resolving the String representation of a constant throws NoSuchElementException in case of CONSTANT_NameAndType constant.
InvokeInstruction.getClassName(ConstantPoolGen)
should not throw an exception when it detects an array.
non-empty final arrays should be private as they are mutable.
Document the Java platform requirement clearly and early.
Type.getType() needs to understand TypeVariableSignature(s).
Add constants for Java 9 class file version 53.
FCONST pattern does not include FCONST_2.
Add missing Node.accept() implementations (ConstantMethodHandle,
ConstantMethodType, ParameterAnnotationEntry).
BCELifier is not working for Java8Example (incomplete).
Addition of hashCode() to generic/Instruction.java breaks Targeters.
Never make distinct BranchInstructions compare equal.
Select constructor allows partially constructed instance to escape.
Re-ordered code to delay the escape.
Minor doc error in BranchInstruction.java.
ClassDumper example duplicates field attribute types.
No tests to check the output of dump methods.
INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL need to define dump()
methods.
Two more methods that would be nice to be public.
Type class includes constants that reference subclasses.
Pass 3b verifier is too strict.
StackMapTable[Entry] should be removed and improvements merged into
StackMap[Entry].
StackMap[Table]Entry.copy() needs to be deep; Improved support for
StackMaps.
Pass3aVerifier visitANEWARRAY() does not allow 255 array dimensions.
Some additional clone methods should be public.
Check for max Short seems wrong.
Document that Instruction Factory returns singleton instances.
better support for clone/copy methods.
Remove Serializable.
Problem with JAXB if the bcel classloader is used; remove the broken
ClassLoader class.
modify several toString methods to make output similar to "javap".
add javadoc comments to LineNumber.java and LineNumberTable.java.
Need to check for an empty InstructionList.
Inconsistent toString() results.
long type instructions are not searched by InstructionFinder using
regular expression.
Update Java requirement from 5 to 7.
Interfaces should not be used to define constants.
Code must not swallow Throwable.
Make org.apache.bcel.classfile.ConstantPool.ConstantPool(DataInput)
public.
Bug fixes and improvements to InvokeDynamic and BootStrapMethods
implementation.
Verification error when an invoke references a method defined in
superclass.
Remove ObjectType cache.
The verifier now checks if methods with a void return type attempt
to return an object.
MethodGen.removeLocalVariable now properly unreference the removed
variable from the targetters of the instruction handlers delimiting
the scope of the variable.
Utility.signatureToString() no longer throws a ClassFormatException
on TypeVariables found in generic signatures.
Removed the 'index' variable from the LocalVariableGen's hash code.
The verifier should not check for run time compatibility of objects
assigned to arrays.
Correct verification of the return value of a method.
Performance degradation with the UTF8 cache. getInstance no longer
uses cache.
org.apache.bcel.util.ClassLoaderRepository.loadClass(String) leaks
input streams.
Add parent type processing for ClassPath class.
Add support for getResource and getResourceAsStream to ClassPath.
Properly parse StackMapTable attributes in Java 6 classfiles.
Javadoc overhaul.
BCEL is unnecessarily slow.
Add support for INVOKEDYNAMIC and MethodHandles.
Why using unstable sort at MethodGen.getLocalVariables() ?
Incorporate patch file from Findbugs.
Implement the MethodParameters attribute.
Mistake in "Peephole optimizer" example
at http://commons.apache.org/bcel/manual.html
BCEL cannot be used as java.system.class.loader.
XSLT transforms broken in Turkish Locale.
java.lang.ClassFormatError: LVTT entry for 'local' in class file
org/shiftone/jrat/test/dummy/CrashTestDummy does not match any LVT
entry
ClassParser.parse() throws NullPointerException if class does not
exist and ClassParser(String) constructor is used.
ArrayOutOfBoundsException in InstructionFinder.
Website: Incorrect URL for source; version 5.2 is not in the bug
page
bcelified method doesn't pass verification.
return type not verified by JustIce.
@since tag incorrect for Annotation classes in BCEL trunk.
InstructionFactory missing % operator for Float, Double.
Fields in Annotations and AnnotationEntry are inaccessible to
subclasses
Add support for getResources to ClassPath.
Two source files in repository are empty.
Maven POM file calls in apache regex but code does not use it.
ClassParser throws unintelligible Exception.
verifier raises an AssertionViolatedException when done against
Java 5 files with generics/annotations.
Verifier fails in pass 2 with "Number of LocalVariableTable
attributes of Code attribute" on static methods.
ParameterAnnotationEntries are read not dumped.
RuntimeVisible Annotations duplicated.
ARRAYLENGTH incorrectly not StackConsumer.
Error in method search() defined in
org.apache.bcel.util.InstructionFinder
Deleting all instructions of a list shows wrong behaviour.
Make BCEL JAR OSGi compatible.
ArrayIndexOutOfBoundsException thrown from TABLESWITCH.initFromFile.
tableswitch/lookupswitch invalid alignment of 4-byte operands.
Incorrect size calculation in InstructionFinder.
Class files containing "ParameterAnnotations" are dumped
incorrectly.
Class files containing "StackMapTable" attributes (on method code)
are dumped incorrectly.
org.apache.bcel.classfile.ClassParser: NullPointerException caused
by fileopen failed.
org.apache.bcel.classfile.ClassParser: NullPointerException caused
by invalid filename.
ExecutionVisitor doesn't support Class constant type for LDC and
LDC_W.
BCELifier issue: BCELFactory fails to handle float and long
constants.
"Invalid method signature: TT;" when using MethodGen for a method
having a generic parameter.
FieldInstruction.getFieldSize() doesn't decode Type.getTypeSize()
output.
org.apache.bcel.generic.Instruction.equals(Object) does not follow
Object.equals(Object) rules.
Select instructions should implement StackConsumer instead of
StackProducer.
Fix CPL License issues with EnclosingMethod.java and
LocalVariableTypeTable.java.
Type.getReturnTypeSize() doesn't decode Type.getTypeSize() output.
SyntheticRepository.loadClass() fails to close the inputStream.
BCELifier produces incorrect code for methods containing loads of
class literals from constant pool.
Code attribute size not updated.
Incorrect link for Jasmin assembler language.
Examples not present in source or binary downloads.
ClassParser.parse() generates NPE if it cannot open the file.
InstConstraintVisitor does not handle class constants.
Pass3bVerifier crashes on empty methods.
LocalVariableGen.getLocalVariable() computes incorrect length.
Method does not have a method to access parameter annotations.
ClassPath.getResource does not correctly perform URL escaping.
ClassParser fails to parse JDK classes in Java 8:
ClassFormatException: Invalid byte tag in constant pool.
Verification of interfaces with default methods fails with Java 8.
When reading the number of parameters in a MethodParameters
structure only read a single byte as per the JVM specification.