| Apache Commons BCEL 6.0 RELEASE NOTES |
| |
| The Apache Commons team is pleased to announce the release of BCEL 6.0! |
| |
| The Byte Code Engineering Library (BCEL) is intended to give users a convenient |
| way to analyze, create, and manipulate compiled .class files. Classes are |
| represented by objects containing all the symbolic information of the given |
| class: methods, fields and byte code instructions. |
| |
| BCEL 6.0 is a major release supporting the new features introduced in Java 6, 7 |
| and 8. It requires Java 5 or higher to run. |
| |
| |
| Compatibility with 5.2 |
| ---------------------- |
| |
| Binary compatible - Yes |
| |
| Source compatible - Yes, except for org.apache.bcel.classfile.Visitor (see below) |
| |
| Semantic compatible - Yes |
| |
| The org.apache.bcel.classfile.Visitor interface has been enhanced with |
| additional methods. If you implemented it directly instead of extending |
| the EmptyVisitor class you'll have to implement the new methods. |
| |
| |
| Enhancements from 5.2 |
| --------------------- |
| |
| [BCEL-76] Add parent type processing for ClassPath class. |
| [BCEL-83] Add support for getResource and getResourceAsStream to ClassPath |
| [BCEL-92] Properly parse StackMapTable attributes in Java 6 classfiles |
| [BCEL-104] Javadoc overhaul |
| [BCEL-119] BCEL is unnecessarily slow |
| [BCEL-157] Add support for INVOKEDYNAMIC and MethodHandles |
| [BCEL-160] Why using unstable sort at MethodGen.getLocalVariables() ? |
| [BCEL-163] Incorporate patch file from Findbugs |
| [BCEL-175] Implement the MethodParameters attribute |
| |
| |
| Bug fixes from 5.2 |
| ------------------ |
| |
| [BCEL-28] Mistake in "Peephole optimizer" example at http://commons.apache.org/bcel/manual.html |
| [BCEL-74] BCEL cannot be used as java.system.class.loader |
| [BCEL-77] XSLT transforms broken in Turkish Locale. |
| [BCEL-79] java.lang.ClassFormatError: LVTT entry for 'local' in class file org/shiftone/jrat/test/dummy/CrashTestDummy does not match any LVT entry |
| [BCEL-81] ClassParser.parse() throws NullPointerException if class does not exist and ClassParser(String) constructor is used |
| [BCEL-85] ArrayOutOfBoundsException in InstructionFinder |
| [BCEL-87] Website: Incorrect URL for source; version 5.2 is not in the bug page |
| [BCEL-88] bcelified method doesn't pass verification |
| [BCEL-89] return type not verified by JustIce |
| [BCEL-94] @since tag incorrect for Annotation classes in BCEL trunk |
| [BCEL-95] InstructionFactory missing % operator for Float, Double |
| [BCEL-96] Fields in Annotations and AnnotationEntry are inaccessible to subclasses |
| [BCEL-97] Add support for getResources to ClassPath |
| [BCEL-98] Two source files in repository are empty |
| [BCEL-99] Maven POM file calls in apache regex but code does not use it |
| [BCEL-100] ClassParser throws unintelligible Exception |
| [BCEL-101] verifier raises ....AssertionViolatedException when done against Java5 files with generics/annotations |
| [BCEL-102] Verifier fails in pass 2 with "Number of LocalVariableTable attributes of Code attribute" on static methods. |
| [BCEL-107] ParameterAnnotationEntries are read not dumped |
| [BCEL-108] RuntimeVisible Annotations duplicated |
| [BCEL-112] ARRAYLENGTH incorrectly not StackConsumer |
| [BCEL-114] Error in method search() defined in org.apache.bcel.util.InstructionFinder |
| [BCEL-115] Deleting all instructions of a list shows wrong behaviour |
| [BCEL-120] Make BCEL JAR OSGi compatible |
| [BCEL-122] ArrayIndexOutOfBoundsException thrown from TABLESWITCH.initFromFile |
| [BCEL-124] tableswitch/lookupswitch invalid alignment of 4-byte operands |
| [BCEL-125] Incorrect size calculation in InstructionFinder |
| [BCEL-130] Class files containing "ParameterAnnotations" are dumped incorrectly |
| [BCEL-131] Class files containing "StackMapTable" attributes (on method code) are dumped incorrectly |
| [BCEL-132] org.apache.bcel.classfile.ClassParser: NullPointerException caused by fileopen failed |
| [BCEL-133] org.apache.bcel.classfile.ClassParser: NullPointerException caused by invalid filename |
| [BCEL-134] ExecutionVisitor doesn't support Class constant type for LDC and LDC_W |
| [BCEL-135] BCELifier issue: BCELFactory fails to handle float and long constants |
| [BCEL-137] "Invalid method signature: TT;" when using MethodGen for a method having a generic parameter |
| [BCEL-138] FieldInstruction.getFieldSize() doesn't decode Type.getTypeSize() output |
| [BCEL-140] org.apache.bcel.generic.Instruction.equals(Object) does not follow Object.equals(Object) rules |
| [BCEL-141] Select instructions should implement StackConsumer instead of StackProducer |
| [BCEL-143] Fix CPL License issues with EnclosingMethod.java and LocalVariableTypeTable.java |
| [BCEL-145] Type.getReturnTypeSize() doesn't decode Type.getTypeSize() output |
| [BCEL-146] SyntheticRepository.loadClass() fails to close the inputStream |
| [BCEL-148] BCELifier produces incorrect code for methods containing loads of class literals from constant pool |
| [BCEL-151] Code attribute size not updated |
| [BCEL-152] Incorrect link for Jasmin assembler language |
| [BCEL-153] Examples not present in source or binary downloads |
| [BCEL-154] ClassParser.parse() generates NPE if it cannot open the file |
| [BCEL-155] InstConstraintVisitor does not handle class constants |
| [BCEL-156] Pass3bVerifier crashes on empty methods |
| [BCEL-159] LocalVariableGen.getLocalVariable() computes incorrect length |
| [BCEL-164] Method does not have a method to access parameter annotations |
| [BCEL-167] ClassPath.getResource does not correctly perform URL escaping |
| [BCEL-173] ClassParser fails to parse JDK classes in Java 8: ClassFormatException: Invalid byte tag in constant pool |
| [BCEL-174] Verification of interfaces with default methods fails with Java 8 |
| [BCEL-177] MethodParameters should read 1 byte not two for parameter count |
| |
| Feedback |
| -------- |
| |
| Open source works best when you give feedback: |
| |
| http://commons.apache.org/bcel |
| |
| Please direct all bug reports to JIRA: |
| |
| https://issues.apache.org/jira/browse/BCEL |
| |
| Or subscribe to the commons-user mailing list |
| |
| The Apache Commons Team |