| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| |
| --> |
| <!-- |
| This file is also used by the maven-changes-plugin to generate the release notes. |
| Useful ways of finding items to add to this file are: |
| |
| 1. Add items when you fix a bug or add a feature (this makes the |
| release process easy :-). |
| |
| 2. Do a JIRA search for tickets closed since the previous release. |
| |
| 3. Use the report generated by the maven-changelog-plugin to see all |
| SVN commits. TBA how to use this with SVN. |
| |
| To generate the release notes from this file: |
| |
| mvn changes:announcement-generate -Prelease-notes [-Dchanges.version=nnn] |
| |
| then tweak the formatting if necessary |
| and commit |
| |
| The <action> type attribute can be add,update,fix,remove. |
| --> |
| |
| <document> |
| <properties> |
| <title>Changes</title> |
| <author email="dev@commons.apache.org">Apache Commons developers</author> |
| </properties> |
| |
| <!-- NOTE: |
| The description below is specially formatted so as to improve the layout of the generated release notes: |
| The parsing process removes all line feeds, replacing them with a single space. |
| The Velocity template in resources/templates has been enhanced to replace pairs of adjacent spaces |
| with a new-line in the release notes. (These spaces are ignored when displaying HTML). |
| If the output is not quite correct, check for invisible trailing spaces! |
| |
| N.B. The release notes template groups actions by type, and only extracts data for the current release. |
| The changes report outputs actions in the order they appear in this file. |
| |
| To regenerate the release notes: |
| mvn changes:announcement-generate -Prelease-notes [-Dchanges.version=nnn] |
| |
| Defining changes.version allows one to create the RN without first removing the SNAPSHOT suffix. |
| --> |
| |
| <body> |
| <release version="6.2" date="tba" description="tba"> |
| <action issue="BCEL-294" type="fix" dev="britter" due-to="Mark Roberts">Incorrect comment in StackMap.java</action> |
| <action issue="BCEL-296" type="fix" dev="ggregory" due-to="Mark Roberts">Incorrect comment in several classes.</action> |
| <action issue="BCEL-295" type="fix" dev="ggregory" due-to="Mark Roberts">Fix local variable live range length; add test case.</action> |
| </release> |
| |
| <release version="6.1" date="2017-09-14" description="Experimental Java 9 Support"> |
| <action issue="BCEL-293" type="add" dev="britter">Add Automatic-Module-Name MANIFEST entry for Java 9 compatibility</action> |
| <action issue="BCEL-292" type="add" dev="markt">Add minimal Java 9 support</action> |
| <action issue="BCEL-286" type="fix" dev="britter" due-to="Mark Roberts">Utility.signatureToString fails if a method has multiple type arguments</action> |
| <action issue="BCEL-287" type="fix" dev="britter" due-to="Mark Roberts">IINC does not handle -128 properly</action> |
| <action issue="BCEL-283" type="fix" dev="britter" due-to="Mark Roberts">Support for StackMap should be different from StackMapTable</action> |
| <action issue="BCEL-289" type="fix" dev="kinow">Crash when parsing constructor of inner classes with parameters annotated</action> |
| <action issue="BCEL-276" type="fix" dev="britter" due-to="Sam Yoon, Mark Roberts">LocalVariableTypeTable is not updated.</action> |
| <action issue="BCEL-277" type="fix" dev="britter" due-to="Sam Yoon">Resolving the String representation of a constant throws NoSuchElementException in case of CONSTANT_NameAndType constant.</action> |
| </release> |
| |
| <release version="6.0" date="2016-07-10" description="Apache Commons BCEL 6.0 is a major release supporting the new features |
| introduced in Java 6, 7 and 8. |
| |
| |
| It requires Java 7 or higher to run. |
| |
| |
| COMPATIBILITY with 5.2 |
| ====================== |
| |
| |
| Binary compatible - not strictly compatible |
| - The constant interface org.apache.bcel.Constants has been deprecated. Classes |
| which implemented this interface in 5.2 now use the constants defined in the |
| org.apache.bcel.Const class. |
| - The constant interface org.apache.bcel.generic.InstructionConstants has been |
| deprecated. Classes which implemented this interface in 5.2 now use the |
| constants defined in the org.apache.bcel.generic.InstructionConsts class. |
| - Return type of method 'public java.lang.Object getElementAt(int)' in |
| org.apache.bcel.verifier.VerifierFactoryListModel has been changed to |
| java.lang.String. |
| - The BCEL classes do no longer implement java.io.Serializable. |
| |
| |
| |
| Source compatible - Yes, sort of; |
| - 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. |
| - The org.apache.bcel.generic.Visitor interface has been enhanced with an |
| additional method. If you implemented it directly instead of extending |
| the EmptyVisitor class you'll have to implement the new methods. |
| |
| |
| Semantic compatible - Yes, except: |
| - BCEL 6.0 handles new attributes such as code annotations that could only |
| be processed by implementing a custom AttributeReader in the previous |
| versions. Code relying on this behavior will have to be adjusted since |
| the AttributeReader will no longer be called in these cases. |
| |
| |
| |
| For full information about API changes please see the extended Clirr report: |
| |
| http://commons.apache.org/bcel/clirr-report.html"> |
| <action issue="BCEL-262" type="update" dev="britter" due-to="Mark Roberts">InvokeInstruction.getClassName(ConstantPoolGen) |
| should not throw an exception when it detects an array.</action> |
| <action issue="BCEL-237" type="fix" dev="sebb">non-empty final arrays should be private as they are mutable.</action> |
| <action issue="BCEL-230" type="update" dev="britter">Document the Java platform requirement clearly and early.</action> |
| <action issue="BCEL-243" type="fix">Type.getType() needs to understand TypeVariableSignature(s).</action> |
| <action issue="BCEL-272" type="add">Add constants for Java 9 class file version 53.</action> |
| <action issue="BCEL-271" type="fix">FCONST pattern does not include FCONST_2.</action> |
| <action issue="BCEL-264" type="fix">Add missing Node.accept() implementations (ConstantMethodHandle, |
| ConstantMethodType, ParameterAnnotationEntry).</action> |
| <action issue="BCEL-221" type="fix">BCELifier is not working for Java8Example (incomplete).</action> |
| <action issue="BCEL-195" type="fix">Addition of hashCode() to generic/Instruction.java breaks Targeters. |
| Never make distinct BranchInstructions compare equal.</action> |
| <action issue="BCEL-261" type="fix">Select constructor allows partially constructed instance to escape. |
| Re-ordered code to delay the escape.</action> |
| <action issue="BCEL-259" type="fix">Minor doc error in BranchInstruction.java.</action> |
| <action issue="BCEL-260" type="fix">ClassDumper example duplicates field attribute types.</action> |
| <action issue="BCEL-258" type="fix">No tests to check the output of dump methods.</action> |
| <action issue="BCEL-257" type="fix">INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL need to define dump() |
| methods.</action> |
| <action issue="BCEL-254" type="fix">Two more methods that would be nice to be public.</action> |
| <action issue="BCEL-245" type="fix">Type class includes constants that reference subclasses.</action> |
| <action issue="BCEL-253" type="fix">Pass 3b verifier is too strict.</action> |
| <action issue="BCEL-248" type="fix">StackMapTable[Entry] should be removed and improvements merged into |
| StackMap[Entry].</action> |
| <action issue="BCEL-202" type="fix">StackMap[Table]Entry.copy() needs to be deep; Improved support for |
| StackMaps.</action> |
| <action issue="BCEL-251" type="fix">Pass3aVerifier visitANEWARRAY() does not allow 255 array dimensions.</action> |
| <action issue="BCEL-211" type="update">Some additional clone methods should be public.</action> |
| <action issue="BCEL-249" type="fix">Check for max Short seems wrong.</action> |
| <action issue="BCEL-127" type="update">Document that Instruction Factory returns singleton instances.</action> |
| <action issue="BCEL-198" type="update">better support for clone/copy methods.</action> |
| <action issue="BCEL-242" type="remove">Remove Serializable.</action> |
| <action issue="BCEL-110" type="remove">Problem with JAXB if the bcel classloader is used; remove the broken |
| ClassLoader class.</action> |
| <action issue="BCEL-201" type="update">modify several toString methods to make output similar to "javap".</action> |
| <action issue="BCEL-205" type="update">add javadoc comments to LineNumber.java and LineNumberTable.java.</action> |
| <action issue="BCEL-208" type="fix">Need to check for an empty InstructionList.</action> |
| <action issue="BCEL-212" type="update">Inconsistent toString() results.</action> |
| <action issue="BCEL-217" type="fix">long type instructions are not searched by InstructionFinder using |
| regular expression.</action> |
| <action issue="BCEL-244" type="update" dev="ggregory">Update Java requirement from 5 to 7.</action> |
| <action issue="BCEL-239" type="fix">Interfaces should not be used to define constants.</action> |
| <action issue="BCEL-234" type="fix">Code must not swallow Throwable.</action> |
| <action issue="BCEL-219" type="update" due-to="Maxim Degtyarev"> |
| Make org.apache.bcel.classfile.ConstantPool.ConstantPool(DataInput) |
| public. |
| </action> |
| <action issue="BCEL-209" type="fix" due-to="Mark Roberts"> |
| Bug fixes and improvements to InvokeDynamic and BootStrapMethods |
| implementation. |
| </action> |
| <action issue="BCEL-187" type="fix" due-to="Jérôme Leroux"> |
| Verification error when an invoke references a method defined in |
| superclass. |
| </action> |
| <action issue="BCEL-218" type="fix" due-to="chas"> |
| Remove ObjectType cache. |
| </action> |
| <action issue="BCEL-184" type="fix" due-to="Jérôme Leroux"> |
| The verifier now checks if methods with a void return type attempt |
| to return an object. |
| </action> |
| <action issue="BCEL-207" type="fix" due-to="Mark Roberts"> |
| MethodGen.removeLocalVariable now properly unreference the removed |
| variable from the targetters of the instruction handlers delimiting |
| the scope of the variable. |
| </action> |
| <action issue="BCEL-197" type="fix" due-to="Mark Roberts"> |
| Utility.signatureToString() no longer throws a ClassFormatException |
| on TypeVariables found in generic signatures. |
| </action> |
| <action issue="BCEL-194" type="fix" due-to="Mark Roberts"> |
| Removed the 'index' variable from the LocalVariableGen's hash code. |
| </action> |
| <action issue="BCEL-193" type="fix" dev="markt" due-to="Jérôme Leroux"> |
| The verifier should not check for run time compatibility of objects |
| assigned to arrays. |
| </action> |
| <action issue="BCEL-188" type="fix" dev="markt" due-to="Jérôme Leroux"> |
| Correct verification of the return value of a method. |
| </action> |
| <action issue="BCEL-186" type="fix" dev="sebb"> |
| Performance degradation with the UTF8 cache. getInstance no longer |
| uses cache. |
| </action> |
| <action issue="BCEL-181" type="fix" dev="ggregory"> |
| org.apache.bcel.util.ClassLoaderRepository.loadClass(String) leaks |
| input streams. |
| </action> |
| <action issue="BCEL-76" type="update"> |
| Add parent type processing for ClassPath class. |
| </action> |
| <action issue="BCEL-83" type="update"> |
| Add support for getResource and getResourceAsStream to ClassPath. |
| </action> |
| <action issue="BCEL-92" type="update"> |
| Properly parse StackMapTable attributes in Java 6 classfiles. |
| </action> |
| <action issue="BCEL-104" type="update"> |
| Javadoc overhaul. |
| </action> |
| <action issue="BCEL-119" type="update"> |
| BCEL is unnecessarily slow. |
| </action> |
| <action issue="BCEL-157" type="update"> |
| Add support for INVOKEDYNAMIC and MethodHandles. |
| </action> |
| <action issue="BCEL-160" type="update" dev="sebb"> |
| Why using unstable sort at MethodGen.getLocalVariables() ? |
| </action> |
| <action issue="BCEL-163" type="update"> |
| Incorporate patch file from Findbugs. |
| </action> |
| <action issue="BCEL-175" type="update"> |
| Implement the MethodParameters attribute. |
| </action> |
| <action issue="BCEL-28" type="fix"> |
| Mistake in "Peephole optimizer" example |
| at http://commons.apache.org/bcel/manual.html |
| </action> |
| <action issue="BCEL-74" type="fix"> |
| BCEL cannot be used as java.system.class.loader. |
| </action> |
| <action issue="BCEL-77" type="fix"> |
| XSLT transforms broken in Turkish Locale. |
| </action> |
| <action issue="BCEL-79" type="fix"> |
| java.lang.ClassFormatError: LVTT entry for 'local' in class file |
| org/shiftone/jrat/test/dummy/CrashTestDummy does not match any LVT |
| entry |
| </action> |
| <action issue="BCEL-81" type="fix"> |
| ClassParser.parse() throws NullPointerException if class does not |
| exist and ClassParser(String) constructor is used. |
| </action> |
| <action issue="BCEL-85" type="fix"> |
| ArrayOutOfBoundsException in InstructionFinder. |
| </action> |
| <action issue="BCEL-87" type="fix"> |
| Website: Incorrect URL for source; version 5.2 is not in the bug |
| page |
| </action> |
| <action issue="BCEL-88" type="fix"> |
| bcelified method doesn't pass verification. |
| </action> |
| <action issue="BCEL-89" type="fix"> |
| return type not verified by JustIce. |
| </action> |
| <action issue="BCEL-94" type="fix"> |
| @since tag incorrect for Annotation classes in BCEL trunk. |
| </action> |
| <action issue="BCEL-95" type="fix"> |
| InstructionFactory missing % operator for Float, Double. |
| </action> |
| <action issue="BCEL-96" type="fix"> |
| Fields in Annotations and AnnotationEntry are inaccessible to |
| subclasses |
| </action> |
| <action issue="BCEL-97" type="fix"> |
| Add support for getResources to ClassPath. |
| </action> |
| <action issue="BCEL-98" type="fix"> |
| Two source files in repository are empty. |
| </action> |
| <action issue="BCEL-99" type="fix"> |
| Maven POM file calls in apache regex but code does not use it. |
| </action> |
| <action issue="BCEL-100" type="fix"> |
| ClassParser throws unintelligible Exception. |
| </action> |
| <action issue="BCEL-101" type="fix"> |
| verifier raises an AssertionViolatedException when done against |
| Java 5 files with generics/annotations. |
| </action> |
| <action issue="BCEL-102" type="fix"> |
| Verifier fails in pass 2 with "Number of LocalVariableTable |
| attributes of Code attribute" on static methods. |
| </action> |
| <action issue="BCEL-107" type="fix"> |
| ParameterAnnotationEntries are read not dumped. |
| </action> |
| <action issue="BCEL-108" type="fix"> |
| RuntimeVisible Annotations duplicated. |
| </action> |
| <action issue="BCEL-112" type="fix"> |
| ARRAYLENGTH incorrectly not StackConsumer. |
| </action> |
| <action issue="BCEL-114" type="fix"> |
| Error in method search() defined in |
| org.apache.bcel.util.InstructionFinder |
| </action> |
| <action issue="BCEL-115" type="fix"> |
| Deleting all instructions of a list shows wrong behaviour. |
| </action> |
| <action issue="BCEL-120" type="fix"> |
| Make BCEL JAR OSGi compatible. |
| </action> |
| <action issue="BCEL-122" type="fix"> |
| ArrayIndexOutOfBoundsException thrown from TABLESWITCH.initFromFile. |
| </action> |
| <action issue="BCEL-124" type="fix"> |
| tableswitch/lookupswitch invalid alignment of 4-byte operands. |
| </action> |
| <action issue="BCEL-125" type="fix"> |
| Incorrect size calculation in InstructionFinder. |
| </action> |
| <action issue="BCEL-130" type="fix"> |
| Class files containing "ParameterAnnotations" are dumped |
| incorrectly. |
| </action> |
| <action issue="BCEL-131" type="fix"> |
| Class files containing "StackMapTable" attributes (on method code) |
| are dumped incorrectly. |
| </action> |
| <action issue="BCEL-132" type="fix"> |
| org.apache.bcel.classfile.ClassParser: NullPointerException caused |
| by fileopen failed. |
| </action> |
| <action issue="BCEL-133" type="fix"> |
| org.apache.bcel.classfile.ClassParser: NullPointerException caused |
| by invalid filename. |
| </action> |
| <action issue="BCEL-134" type="fix"> |
| ExecutionVisitor doesn't support Class constant type for LDC and |
| LDC_W. |
| </action> |
| <action issue="BCEL-135" type="fix"> |
| BCELifier issue: BCELFactory fails to handle float and long |
| constants. |
| </action> |
| <action issue="BCEL-137" type="fix"> |
| "Invalid method signature: TT;" when using MethodGen for a method |
| having a generic parameter. |
| </action> |
| <action issue="BCEL-138" type="fix"> |
| FieldInstruction.getFieldSize() doesn't decode Type.getTypeSize() |
| output. |
| </action> |
| <action issue="BCEL-140" type="fix"> |
| org.apache.bcel.generic.Instruction.equals(Object) does not follow |
| Object.equals(Object) rules. |
| </action> |
| <action issue="BCEL-141" type="fix"> |
| Select instructions should implement StackConsumer instead of |
| StackProducer. |
| </action> |
| <action issue="BCEL-143" type="fix"> |
| Fix CPL License issues with EnclosingMethod.java and |
| LocalVariableTypeTable.java. |
| </action> |
| <action issue="BCEL-145" type="fix"> |
| Type.getReturnTypeSize() doesn't decode Type.getTypeSize() output. |
| </action> |
| <action issue="BCEL-146" type="fix"> |
| SyntheticRepository.loadClass() fails to close the inputStream. |
| </action> |
| <action issue="BCEL-148" type="fix"> |
| BCELifier produces incorrect code for methods containing loads of |
| class literals from constant pool. |
| </action> |
| <action issue="BCEL-151" type="fix"> |
| Code attribute size not updated. |
| </action> |
| <action issue="BCEL-152" type="fix"> |
| Incorrect link for Jasmin assembler language. |
| </action> |
| <action issue="BCEL-153" type="fix" dev="sebb"> |
| Examples not present in source or binary downloads. |
| </action> |
| <action issue="BCEL-154" type="fix"> |
| ClassParser.parse() generates NPE if it cannot open the file. |
| </action> |
| <action issue="BCEL-155" type="fix"> |
| InstConstraintVisitor does not handle class constants. |
| </action> |
| <action issue="BCEL-156" type="fix"> |
| Pass3bVerifier crashes on empty methods. |
| </action> |
| <action issue="BCEL-159" type="fix"> |
| LocalVariableGen.getLocalVariable() computes incorrect length. |
| </action> |
| <action issue="BCEL-164" type="fix"> |
| Method does not have a method to access parameter annotations. |
| </action> |
| <action issue="BCEL-167" type="fix"> |
| ClassPath.getResource does not correctly perform URL escaping. |
| </action> |
| <action issue="BCEL-173" type="fix"> |
| ClassParser fails to parse JDK classes in Java 8: |
| ClassFormatException: Invalid byte tag in constant pool. |
| </action> |
| <action issue="BCEL-174" type="fix"> |
| Verification of interfaces with default methods fails with Java 8. |
| </action> |
| <action issue="BCEL-177" type="fix" dev="markt"> |
| When reading the number of parameters in a MethodParameters |
| structure only read a single byte as per the JVM specification. |
| </action> |
| </release> |
| </body> |
| </document> |