<?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="2017-12-DD" description="Experimental Java 9 Support">
|
<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>
|
<action issue="BCEL-300" type="fix" dev="ggregory">org.apache.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19.</action>
|
<action issue="BCEL-301" type="fix" dev="ggregory">org.apache.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 20.</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>
|