You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ah...@apache.org on 2022/11/02 14:29:22 UTC

[commons-bcel] branch master updated (587c9869 -> 137c0dd5)

This is an automated email from the ASF dual-hosted git repository.

aherbert pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/commons-bcel.git


    from 587c9869 Prepare release candidate
     new 64a805f4 Remove trailing whitespace
     new 137c0dd5 Add checkstyle check for trailing whitespace

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .github/workflows/maven.yml                        |    8 +-
 src/changes/changes.xml                            | 1152 ++++++++++----------
 src/conf/checkstyle.xml                            |  397 +++----
 src/conf/spotbugs-exclude-filter.xml               |    2 +-
 .../org/apache/bcel/generic/ConstantPoolGen.java   |    2 +-
 .../org/apache/bcel/verifier/PassVerifier.java     |    4 +-
 .../java/org/apache/bcel/verifier/Verifier.java    |    8 +-
 src/site/site.xml                                  |    6 +-
 src/site/xdoc/faq.xml                              |   14 +-
 src/site/xdoc/manual/appendix.xml                  |   28 +-
 src/site/xdoc/manual/application-areas.xml         |    6 +-
 src/site/xdoc/manual/bcel-api.xml                  |   10 +-
 src/site/xdoc/manual/introduction.xml              |   16 +-
 src/site/xdoc/manual/jvm.xml                       |   10 +-
 src/site/xdoc/manual/manual.xml                    |    6 +-
 src/site/xdoc/projects.xml                         |   20 +-
 src/site/xdoc/security.xml                         |   12 +-
 .../bcel/verifier/AbstractVerifierTestCase.java    |    2 +-
 .../org/apache/bcel/verifier/VerifierTestCase.java |    2 +-
 src/test/resources/Java8Example.java               |    2 +-
 20 files changed, 857 insertions(+), 850 deletions(-)


[commons-bcel] 01/02: Remove trailing whitespace

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

aherbert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-bcel.git

commit 64a805f489edf42c1b9e739c62fc927324701c8a
Author: aherbert <a....@sussex.ac.uk>
AuthorDate: Wed Nov 2 14:24:12 2022 +0000

    Remove trailing whitespace
---
 .github/workflows/maven.yml                        |    8 +-
 src/changes/changes.xml                            | 1152 ++++++++++----------
 src/conf/spotbugs-exclude-filter.xml               |    2 +-
 .../org/apache/bcel/generic/ConstantPoolGen.java   |    2 +-
 .../org/apache/bcel/verifier/PassVerifier.java     |    4 +-
 .../java/org/apache/bcel/verifier/Verifier.java    |    8 +-
 src/site/site.xml                                  |    6 +-
 src/site/xdoc/faq.xml                              |   14 +-
 src/site/xdoc/manual/appendix.xml                  |   28 +-
 src/site/xdoc/manual/application-areas.xml         |    6 +-
 src/site/xdoc/manual/bcel-api.xml                  |   10 +-
 src/site/xdoc/manual/introduction.xml              |   16 +-
 src/site/xdoc/manual/jvm.xml                       |   10 +-
 src/site/xdoc/manual/manual.xml                    |    6 +-
 src/site/xdoc/projects.xml                         |   20 +-
 src/site/xdoc/security.xml                         |   12 +-
 .../bcel/verifier/AbstractVerifierTestCase.java    |    2 +-
 .../org/apache/bcel/verifier/VerifierTestCase.java |    2 +-
 src/test/resources/Java8Example.java               |    2 +-
 19 files changed, 655 insertions(+), 655 deletions(-)

diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index e99b8742..a487d27a 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -33,15 +33,15 @@ jobs:
 #        include:
 #          - java: 18-ea
 #            os: ubuntu-latest
-#            experimental: true        
+#            experimental: true
 #          - java: 18-ea
 #            os: windows-latest
-#            experimental: true        
+#            experimental: true
 #          - java: 18-ea
 #            os: macos-latest
-#            experimental: true        
+#            experimental: true
       fail-fast: false
-        
+
     steps:
     - name: Prepare git
       run: git config --global core.autocrlf false
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index c9fde690..d7fbcf63 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -1,576 +1,576 @@
-<?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>Apache Commons BCEL Release Notes</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.6.1" date="2022-10-29" description="Maintenance and bug fix release.">
-       <!-- FIX -->
-      <action                  type="fix" dev="ggregory" due-to="Kengo TODA, Gary Gregory">Keep ConstantPool.getConstant(int) backward compatible with 6.5.0 #157.</action>
-       <!-- UPDATE -->
-      <action                  type="update" dev="ggregory" due-to="Dependabot">Bump actions/setup-java from 3.5.1 to 3.6.0 #159.</action>
-      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Bump spotbugs from 4.7.2 to 4.7.3.</action>
-      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Bump pmd from 6.50.0 to 6.51.0.</action>
-    </release>
-    <release version="6.6.0" date="2022-10-08" description="Minor feature and bug fix release.">
-      <!-- FIX -->
-      <action                  type="fix" dev="ggregory" due-to="Mark Roberts, Gary Gregory">Improve test case coverage; fix Utility.encode bug #46.</action>
-      <action issue="BCEL-342" type="fix" dev="ggregory" due-to="Allon Murienik, Gary Gregory">Migrate test suite to JUnit Jupiter #68.</action>
-      <action issue="BCEL-343" type="fix" dev="ggregory" due-to="Allon Murienik, Gary Gregory">JUnit Assertion improvement #69.</action>
-      <action                  type="fix" dev="ggregory" due-to="Mark Roberts">Minor improvements to comments and toString() methods #71.</action>
-      <action                  type="fix" dev="ggregory" due-to="Arturo Bernal">Minor Improvements #83.</action>
-      <action                  type="fix" dev="ggregory" due-to="Arturo Bernal">Inline variable and avoid unnecessary variable. #94.</action>
-      <action                  type="fix" dev="ggregory" due-to="Mark Roberts, Gary Gregory">Formalize PerformanceTest #168.</action>
-      <action                  type="fix" dev="ggregory" due-to="Arturo Bernal">Java 8 improvements #95.</action>
-      <action issue="BCEL-345" type="fix" dev="ggregory" due-to="Christine Poerschke">Make documentation wording more inclusive #98.</action>
-      <action                  type="fix" dev="ggregory" due-to="Mark Roberts, Gary Gregory">Force unsigned short for LineNumber.toString() #118.</action>
-      <action                  type="fix" dev="ggregory" due-to="Tim Boudreau, Gary Gregory">Fix IllegalStateException when calling toString(ConstantPool) on a Module or ModuleRequires #125.</action>
-      <action                  type="fix" dev="ggregory" due-to="Gary Gregory">Generate HTML in UTF-8 instead of whatever happens to be the default platform encoding.</action>
-      <action issue="BCEL-303" type="fix" dev="ggregory" due-to="Mark Roberts, Gary Gregory">Several fixes to the verifier #117.</action>
-      <action issue="BCEL-307" type="fix" dev="ggregory" due-to="Mark Roberts, Gary Gregory">Several fixes to the verifier #117.</action>
-      <action issue="BCEL-308" type="fix" dev="ggregory" due-to="Mark Roberts, Gary Gregory">Several fixes to the verifier #117.</action>
-      <action issue="BCEL-309" type="fix" dev="ggregory" due-to="Mark Roberts, Gary Gregory">Several fixes to the verifier #117.</action>
-      <action issue="BCEL-311" type="fix" dev="ggregory" due-to="Mark Roberts, Gary Gregory">Several fixes to the verifier #117.</action>
-      <action issue="BCEL-312" type="fix" dev="ggregory" due-to="Mark Roberts, Gary Gregory">Several fixes to the verifier #117.</action>
-      <action issue="BCEL-313" type="fix" dev="ggregory" due-to="Mark Roberts, Gary Gregory">Several fixes to the verifier #117.</action>
-      <action issue="BCEL-337" type="fix" dev="ggregory" due-to="Mark Roberts, Gary Gregory">Several fixes to the verifier #117.</action>
-      <action                  type="fix" dev="ggregory" due-to="Michael Ernst, Gary Gregory">Close resources #138.</action>
-      <action                  type="fix" dev="ggregory" due-to="Alexander Kriegisch, Gary Gregory">Improve condy (constant dynamic) support #139.</action>
-      <action                  type="fix" dev="ggregory" due-to="Michael Ernst">Fix typos #140.</action>
-      <action issue="BCEL-363" type="fix" dev="ggregory" due-to="Richard Atkins, Gary Gregory">Enforce MAX_CP_ENTRIES in ConstantPoolGen and ConstantPool.dump #147.</action>
-      <action                  type="fix" dev="ggregory" due-to="Arturo Bernal, Gary Gregory">Minor Changes #99.</action>
-      <action                  type="fix" dev="ggregory" due-to="Arturo Bernal">Simplify boolean expressions #152.</action>
-      <action                  type="fix" dev="ggregory" due-to="Arturo Bernal">Use Math.max #151.</action>
-      <action                  type="fix" dev="ggregory" due-to="Gary Gregory">org.apache.bcel.classfile.Signature.translate(String) does not detect EOF correctly.</action>
-      <action                  type="fix" dev="ggregory" due-to="Gary Gregory">Fix SpotBugs [ERROR] High: Found reliance on default encoding in new org.apache.bcel.util.BCELifier(JavaClass, OutputStream): new java.io.PrintWriter(OutputStream) [org.apache.bcel.util.BCELifier] At BCELifier.java:[line 169] DM_DEFAULT_ENCODING.</action>
-      <action                  type="fix" dev="ggregory" due-to="Gary Gregory">Fix SpotBugs [ERROR] Medium: Unread field: org.apache.bcel.verifier.GraphicalVerifier.packFrame; should this field be static? [org.apache.bcel.verifier.GraphicalVerifier] At GraphicalVerifier.java:[line 43] SS_SHOULD_BE_STATIC.</action>
-      <action                  type="fix" dev="ggregory" due-to="Gary Gregory">Fix SpotBugs [ERROR] Medium: new org.apache.bcel.util.ModularRuntimeImage(String) creates a java.net.URLClassLoader classloader, which should be performed within a doPrivileged block [org.apache.bcel.util.ModularRuntimeImage] At ModularRuntimeImage.java:[line 68] DP_CREATE_CLASSLOADER_INSIDE_DO_PRIVILEGED.</action>
-      <!-- ADD -->
-      <action                  type="add" dev="ggregory">Add github/codeql-action.</action>
-      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Make Annotations implement Iterable&lt;AnnotationEntry&gt;.</action>
-      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Make BootstrapMethods implement Iterable&lt;BootstrapMethod&gt;.</action>
-      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Make ConstantPool implement Iterable&lt;Constant&gt;.</action>
-      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Make InnerClasses implement Iterable&lt;InnerClass&gt;.</action>
-      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Make LineNumberTable implement Iterable&lt;LineNumber&gt;.</action>
-      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Make LocalVariableTable implement Iterable&lt;LocalVariable&gt;.</action>
-      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Make LocalVariableTypeTable implement Iterable&lt;LocalVariable&gt;.</action>
-      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Make MethodParameters implement Iterable&lt;MethodParameter&gt;.</action>
-      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Make ParameterAnnotations implement Iterable&lt;ParameterAnnotationEntry&gt;.</action>
-      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Add Const.MAJOR_15</action>
-      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Add Const.MAJOR_16</action>
-      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Add Const.MAJOR_17</action>
-      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Add Const.MAJOR_18</action>
-      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Add Const.MAJOR_19</action>
-      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Add Const.MINOR_15</action>
-      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Add Const.MINOR_16</action>
-      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Add Const.MINOR_17</action>
-      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Add Const.MINOR_18</action>
-      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Add Const.MINOR_19</action>
-      <!-- UPDATES -->
-      <action                  type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">Bump actions/cache from 2 to 3.0.11 #88, #93, #110, #119, #149, #154, #156.</action>
-      <action                  type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">Bump actions/checkout from 2.3.1 to 3.1.0 #59, #66, #73, #108, #115, #153.</action>
-      <action                  type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">Bump actions/setup-java from 1.4.0 to 3.5.1 #62, #67.</action>
-      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Bump tests from Apache Commons Lang 3.10 to 3.12.0</action>
-      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Bump commons-parent from 50 to 54.</action>
-      <action                  type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">Bump biz.aQute.bndlib from 5.1.0 to 6.3.1, #54, #72, #81, #111.</action>
-      <action                  type="update" dev="ggregory" due-to="Dependabot">Bump maven-surefire-plugin from 3.0.0-M4 to 3.0.0-M7 #53, #124, #129.</action>
-      <action                  type="update" dev="ggregory" due-to="Gary Gregory, Dependabot">Bump maven-checkstyle-plugin from 3.1.0 to 3.2.0, #77, #141.</action>
-      <action                  type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">Bump Jacoco from 0.8.5 to 0.8.8.</action>      
-      <action                  type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">Bump commons-io from 2.7 to 2.11.0 #65, #96.</action>
-      <action                  type="update" dev="ggregory" due-to="Dependabot">Bump exec-maven-plugin from 1.6.0 to 3.1.0 #51, #134.</action>
-      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Bump commons.japicmp.version from 0.14.3 to 0.16.0.</action>
-      <action                  type="update" dev="ggregory" due-to="Dependabot">Bump maven-pmd-plugin from 3.13.0 to 3.19. #74, #103, #116, #130, #142, #144.</action>
-      <action                  type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">Bump pmd from 6.44.0 to 6.50.0.</action>
-      <action                  type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">Bump junit-jupiter from 5.7.0 to 5.9.1 #78, #90, #101, #112, #135.</action>
-      <action                  type="update" dev="ggregory" due-to="Dependabot">Bump jna.version from 5.6.0 to 5.12.1 #84, #102, #109, #120, #131.</action>
-      <action                  type="update" dev="ggregory" due-to="Dependabot">Bump jmh.version from 1.19 to 1.35 #92, #100, #122.</action>
-      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Bump maven-javadoc-plugin from 3.2.0 to 3.4.1.</action>
-      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Bump Bump maven-bundle-plugin from 5.1.1 to 5.1.8.</action>
-      <action                  type="update" dev="ggregory" due-to="Dependabot">Bump taglist-maven-plugin from 2.4 to 3.0.0 #114.</action>
-      <action                  type="update" dev="ggregory" due-to="Gary Gregory, Dependabot">Bump spotbugs-maven-plugin from 4.5.3.0 to 4.7.2.1 #128, #132, #136, #144, #155.</action>
-      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Bump spotbugs from 4.5.3 to 4.7.1.</action>
-    </release>
-    <release version="6.5.0" date="2020-06-05" description="Minor feature and bug fix release.">
-      <action issue="BCEL-330" type="update" dev="ggregory" due-to="Mark Roberts">Remove unnecessary references to Constants.</action>
-      <action issue="BCEL-329" type="fix" dev="ggregory" due-to="Gary Gregory, Mark Roberts">MethodGen duplicates some attributes.</action>
-      <action issue="BCEL-336" type="update" dev="ggregory" due-to="Tomo Suzuki, Gary Gregory">MethodGen throws NullPointerException upon Invalid Class File Missing Constructor Body.</action>
-      <action                  type="update" dev="ggregory" due-to="Michael Ernst">Improve documentation of Pass3bVerifier (#37).</action>
-      <action                  type="update" dev="ggregory" due-to="Arthur Kupriyanov">Replaced deprecated constants in examples (#38).</action>
-      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Update tests from JNA 5.4.0 to 5.5.0.</action>
-      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Update tests JUnit from 4.12 to 4.13.</action>
-      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Update tests from Apache Commons Lang 3.9 to 3.10.</action>
-      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Update build maven-pmd-plugin 3.12.0 -> 3.13.0.</action>
-      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Update tests maven-surefire-plugin 3.0.0-M3 -> 3.0.0-M4.</action>
-      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Update build japicmp-maven-plugin 0.14.1 -> 0.14.3.</action>
-      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Update build jacoco-maven-plugin 0.8.4 -> 0.8.5.</action>
-      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Update tests from commons-io:commons-io 2.6 to 2.7.</action>
-      <action                  type="update" dev="ggregory" due-to="Mark Roberts">Add support for invokestatic of an InterfaceMethodref #39.</action>
-      <action                  type="update" dev="ggregory" due-to="Mark Roberts">Add attribute name(s) to Code.toString() #40.</action>
-      <action issue="BCEL-338" type="update" dev="ggregory" due-to="Gary Gregory">org.apache.bcel.generic.InstructionFactory.createInvoke() populates its internal ConstantPoolGen on bad input, then throws exception.</action>
-      <action issue="BCEL-339" type="update" dev="ggregory" due-to="Gary Gregory">Throw IllegalArgumentException, IllegalStateException, UnsupportedOperationException instead of RuntimeException.</action>
-      <action                  type="update" dev="ggregory" due-to="Mark Roberts">Make some annotation methods public (#45).</action>
-      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Fix ConcurrentModificationException in the maven-bundle-plugin:4.2.1:manifest on Java 15-ea.</action>
-    </release> 
-    <release version="6.4.1" date="2019-09-26" description="Bug fix release.">
-      <action issue="BCEL-328" type="fix" dev="ggregory" due-to="Gary Gregory, Mark Roberts">java.util.EmptyStackException at org.apache.bcel.classfile.DescendingVisitor.visitModule (DescendingVisitor.java:592).</action>
-      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Update build from Checkstyle Maven Plugin 3.0.0 to 3.1.0.</action>
-    </release>  
-    <release version="6.4.0" date="2019-09-20" description="Feature and bug fix release.">
-      <action issue="BCEL-316" type="fix" dev="ggregory" due-to="Gary Gregory">org.apache.bcel.classfile.Attribute class and subclasses should NOT log to the console by default.</action>
-      <action issue="BCEL-278" type="fix" dev="ggregory" due-to="Valery Barysoky">InvokeInstruction.toString(final ConstantPool cp) throws NoSuchElementException #11.</action>
-      <action issue="BCEL-318" type="add" dev="ggregory" due-to="Gary Gregory">Add method org.apache.bcel.classfile.ConstantUtf8.clearCache().</action>
-      <action issue="BCEL-317" type="update" dev="ggregory" due-to="Tomo Suzuki, Gary Gregory">Pluggable cache for ConstantUtf8.</action>
-      <action issue="BCEL-320" type="add" dev="ggregory" due-to="Tomo Suzuki, Gary Gregory">Add LruCacheClassPathRepository that can scan many JAR files without OutOfMemoryError.</action>
-      <action issue="BCEL-299" type="update" dev="ggregory" due-to="Gary Gregory, zhangminglei">Fix example src/examples/ClassDumper.java ClassDumper.processID().</action>
-      <action issue="BCEL-322" type="add" dev="ggregory" due-to="Gary Gregory">Add constants to org.apache.bcel.Const for Java 14.</action>
-      <action issue="BCEL-270" type="fix" dev="ggregory" due-to="Alexandru-Constantin Bledea">Calling toString(ConstantPool) on InvokeInstruction throws NullPointerException.</action>
-      <action issue="BCEL-321" type="add" dev="ggregory" due-to="Tomo Suzuki">Refactor subclasses of ClassPathRepository for differences in underlying cache.</action>
-      <action issue="BCEL-323" type="fix" dev="ggregory" due-to="Tomo Suzuki">org.apache.bcel.util.BCELifier to set major and minor versions.</action>
-      <action issue="BCEL-326" type="fix" dev="ggregory" due-to="Mark Roberts">Add missing Java 9 and Java 11 class file attributes. #33</action>
-      <action issue="BCEL-325" type="fix" dev="ggregory" due-to="Mark Roberts">ClassDumper crashes on a module-info.class. #33</action>
-      <action issue="BCEL-327" type="fix" dev="ggregory" due-to="Mark Roberts">Update signature scanning in Utility to support TypeParameters. #32</action>
-      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Update tests from JNA 4.5.0 to 5.3.1.</action>
-      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Update tests from JNA 5.3.1. to 5.4.0.</action>
-    </release>
-
-    <release version="6.3.1" date="2019-03-20" description="Bug fix release">
-      <action issue="BCEL-267" type="fix" dev="ggregory" due-to="Stephan Herrmann, Sebb, Gary Gregory, Torsten Curdt">Race conditions on static fields in BranchHandle and InstructionHandle.</action>
-      <action issue="BCEL-297" type="fix" dev="ggregory" due-to="Mark Roberts, mingleizhang">Possible NPE in override implementation of Object.equals (#20)</action>
-      <action issue="BCEL-298" type="update" dev="ggregory" due-to="mingleizhang">Add some files to .gitignore (#19)</action>
-      <action issue="BCEL-315" type="fix" dev="ggregory" due-to="Gary Gregory">NullPointerException at org.apache.bcel.classfile.FieldOrMethod.dump().</action>
-    </release>
-
-    <release version="6.3" date="2019-01-23" description="Experimental Java 9, 10, 11, 12-EA, and 13-EA Support">
-      <action issue="BCEL-304" type="fix" dev="ggregory" due-to="Gary Gregory, Ed Pavlak">ClassPath.getClassFile() and friends do not work with JDK 9 and higher (PR #22.)</action>
-      <action issue="BCEL-305" type="fix" dev="ggregory" due-to="Gary Gregory">ClassPath.getClassFile() and friends do not work with JRE 9 and higher</action>
-      <action                  type="update" dev="ggregory" due-to="Mark Thomas, Gary Gregory">Initial support for Java 11</action>
-      <action                  type="add" dev="ggregory" due-to="Mark Thomas">Added org.apache.bcel.classfile.Visitor.visitConstantDynamic(ConstantDynamic)</action>
-      <action                  type="add" dev="ggregory" due-to="Mark Thomas">Added org.apache.bcel.classfile.ConstantDynamic</action>
-      <action                  type="add" dev="ggregory" due-to="Mark Thomas">Added fields in org.apache.bcel.Const for Java 9, 10, and 11.</action>      
-      <action                  type="add" dev="ggregory" due-to="Mark Thomas">Added fields in org.apache.bcel.Const for Java 12 and 13 based on Java Early Access releases.</action>      
-      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Update Java requirement from Java 7 to Java 8.</action>      
-    </release>
-
-    <release version="6.2" date="2017-12-08" 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:
-
-    https://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 https://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 behavior.
-      </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>
+<?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>Apache Commons BCEL Release Notes</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.6.1" date="2022-10-29" description="Maintenance and bug fix release.">
+       <!-- FIX -->
+      <action                  type="fix" dev="ggregory" due-to="Kengo TODA, Gary Gregory">Keep ConstantPool.getConstant(int) backward compatible with 6.5.0 #157.</action>
+       <!-- UPDATE -->
+      <action                  type="update" dev="ggregory" due-to="Dependabot">Bump actions/setup-java from 3.5.1 to 3.6.0 #159.</action>
+      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Bump spotbugs from 4.7.2 to 4.7.3.</action>
+      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Bump pmd from 6.50.0 to 6.51.0.</action>
+    </release>
+    <release version="6.6.0" date="2022-10-08" description="Minor feature and bug fix release.">
+      <!-- FIX -->
+      <action                  type="fix" dev="ggregory" due-to="Mark Roberts, Gary Gregory">Improve test case coverage; fix Utility.encode bug #46.</action>
+      <action issue="BCEL-342" type="fix" dev="ggregory" due-to="Allon Murienik, Gary Gregory">Migrate test suite to JUnit Jupiter #68.</action>
+      <action issue="BCEL-343" type="fix" dev="ggregory" due-to="Allon Murienik, Gary Gregory">JUnit Assertion improvement #69.</action>
+      <action                  type="fix" dev="ggregory" due-to="Mark Roberts">Minor improvements to comments and toString() methods #71.</action>
+      <action                  type="fix" dev="ggregory" due-to="Arturo Bernal">Minor Improvements #83.</action>
+      <action                  type="fix" dev="ggregory" due-to="Arturo Bernal">Inline variable and avoid unnecessary variable. #94.</action>
+      <action                  type="fix" dev="ggregory" due-to="Mark Roberts, Gary Gregory">Formalize PerformanceTest #168.</action>
+      <action                  type="fix" dev="ggregory" due-to="Arturo Bernal">Java 8 improvements #95.</action>
+      <action issue="BCEL-345" type="fix" dev="ggregory" due-to="Christine Poerschke">Make documentation wording more inclusive #98.</action>
+      <action                  type="fix" dev="ggregory" due-to="Mark Roberts, Gary Gregory">Force unsigned short for LineNumber.toString() #118.</action>
+      <action                  type="fix" dev="ggregory" due-to="Tim Boudreau, Gary Gregory">Fix IllegalStateException when calling toString(ConstantPool) on a Module or ModuleRequires #125.</action>
+      <action                  type="fix" dev="ggregory" due-to="Gary Gregory">Generate HTML in UTF-8 instead of whatever happens to be the default platform encoding.</action>
+      <action issue="BCEL-303" type="fix" dev="ggregory" due-to="Mark Roberts, Gary Gregory">Several fixes to the verifier #117.</action>
+      <action issue="BCEL-307" type="fix" dev="ggregory" due-to="Mark Roberts, Gary Gregory">Several fixes to the verifier #117.</action>
+      <action issue="BCEL-308" type="fix" dev="ggregory" due-to="Mark Roberts, Gary Gregory">Several fixes to the verifier #117.</action>
+      <action issue="BCEL-309" type="fix" dev="ggregory" due-to="Mark Roberts, Gary Gregory">Several fixes to the verifier #117.</action>
+      <action issue="BCEL-311" type="fix" dev="ggregory" due-to="Mark Roberts, Gary Gregory">Several fixes to the verifier #117.</action>
+      <action issue="BCEL-312" type="fix" dev="ggregory" due-to="Mark Roberts, Gary Gregory">Several fixes to the verifier #117.</action>
+      <action issue="BCEL-313" type="fix" dev="ggregory" due-to="Mark Roberts, Gary Gregory">Several fixes to the verifier #117.</action>
+      <action issue="BCEL-337" type="fix" dev="ggregory" due-to="Mark Roberts, Gary Gregory">Several fixes to the verifier #117.</action>
+      <action                  type="fix" dev="ggregory" due-to="Michael Ernst, Gary Gregory">Close resources #138.</action>
+      <action                  type="fix" dev="ggregory" due-to="Alexander Kriegisch, Gary Gregory">Improve condy (constant dynamic) support #139.</action>
+      <action                  type="fix" dev="ggregory" due-to="Michael Ernst">Fix typos #140.</action>
+      <action issue="BCEL-363" type="fix" dev="ggregory" due-to="Richard Atkins, Gary Gregory">Enforce MAX_CP_ENTRIES in ConstantPoolGen and ConstantPool.dump #147.</action>
+      <action                  type="fix" dev="ggregory" due-to="Arturo Bernal, Gary Gregory">Minor Changes #99.</action>
+      <action                  type="fix" dev="ggregory" due-to="Arturo Bernal">Simplify boolean expressions #152.</action>
+      <action                  type="fix" dev="ggregory" due-to="Arturo Bernal">Use Math.max #151.</action>
+      <action                  type="fix" dev="ggregory" due-to="Gary Gregory">org.apache.bcel.classfile.Signature.translate(String) does not detect EOF correctly.</action>
+      <action                  type="fix" dev="ggregory" due-to="Gary Gregory">Fix SpotBugs [ERROR] High: Found reliance on default encoding in new org.apache.bcel.util.BCELifier(JavaClass, OutputStream): new java.io.PrintWriter(OutputStream) [org.apache.bcel.util.BCELifier] At BCELifier.java:[line 169] DM_DEFAULT_ENCODING.</action>
+      <action                  type="fix" dev="ggregory" due-to="Gary Gregory">Fix SpotBugs [ERROR] Medium: Unread field: org.apache.bcel.verifier.GraphicalVerifier.packFrame; should this field be static? [org.apache.bcel.verifier.GraphicalVerifier] At GraphicalVerifier.java:[line 43] SS_SHOULD_BE_STATIC.</action>
+      <action                  type="fix" dev="ggregory" due-to="Gary Gregory">Fix SpotBugs [ERROR] Medium: new org.apache.bcel.util.ModularRuntimeImage(String) creates a java.net.URLClassLoader classloader, which should be performed within a doPrivileged block [org.apache.bcel.util.ModularRuntimeImage] At ModularRuntimeImage.java:[line 68] DP_CREATE_CLASSLOADER_INSIDE_DO_PRIVILEGED.</action>
+      <!-- ADD -->
+      <action                  type="add" dev="ggregory">Add github/codeql-action.</action>
+      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Make Annotations implement Iterable&lt;AnnotationEntry&gt;.</action>
+      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Make BootstrapMethods implement Iterable&lt;BootstrapMethod&gt;.</action>
+      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Make ConstantPool implement Iterable&lt;Constant&gt;.</action>
+      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Make InnerClasses implement Iterable&lt;InnerClass&gt;.</action>
+      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Make LineNumberTable implement Iterable&lt;LineNumber&gt;.</action>
+      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Make LocalVariableTable implement Iterable&lt;LocalVariable&gt;.</action>
+      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Make LocalVariableTypeTable implement Iterable&lt;LocalVariable&gt;.</action>
+      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Make MethodParameters implement Iterable&lt;MethodParameter&gt;.</action>
+      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Make ParameterAnnotations implement Iterable&lt;ParameterAnnotationEntry&gt;.</action>
+      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Add Const.MAJOR_15</action>
+      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Add Const.MAJOR_16</action>
+      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Add Const.MAJOR_17</action>
+      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Add Const.MAJOR_18</action>
+      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Add Const.MAJOR_19</action>
+      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Add Const.MINOR_15</action>
+      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Add Const.MINOR_16</action>
+      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Add Const.MINOR_17</action>
+      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Add Const.MINOR_18</action>
+      <action                  type="add" dev="ggregory" due-to="Gary Gregory">Add Const.MINOR_19</action>
+      <!-- UPDATES -->
+      <action                  type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">Bump actions/cache from 2 to 3.0.11 #88, #93, #110, #119, #149, #154, #156.</action>
+      <action                  type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">Bump actions/checkout from 2.3.1 to 3.1.0 #59, #66, #73, #108, #115, #153.</action>
+      <action                  type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">Bump actions/setup-java from 1.4.0 to 3.5.1 #62, #67.</action>
+      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Bump tests from Apache Commons Lang 3.10 to 3.12.0</action>
+      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Bump commons-parent from 50 to 54.</action>
+      <action                  type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">Bump biz.aQute.bndlib from 5.1.0 to 6.3.1, #54, #72, #81, #111.</action>
+      <action                  type="update" dev="ggregory" due-to="Dependabot">Bump maven-surefire-plugin from 3.0.0-M4 to 3.0.0-M7 #53, #124, #129.</action>
+      <action                  type="update" dev="ggregory" due-to="Gary Gregory, Dependabot">Bump maven-checkstyle-plugin from 3.1.0 to 3.2.0, #77, #141.</action>
+      <action                  type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">Bump Jacoco from 0.8.5 to 0.8.8.</action>
+      <action                  type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">Bump commons-io from 2.7 to 2.11.0 #65, #96.</action>
+      <action                  type="update" dev="ggregory" due-to="Dependabot">Bump exec-maven-plugin from 1.6.0 to 3.1.0 #51, #134.</action>
+      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Bump commons.japicmp.version from 0.14.3 to 0.16.0.</action>
+      <action                  type="update" dev="ggregory" due-to="Dependabot">Bump maven-pmd-plugin from 3.13.0 to 3.19. #74, #103, #116, #130, #142, #144.</action>
+      <action                  type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">Bump pmd from 6.44.0 to 6.50.0.</action>
+      <action                  type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">Bump junit-jupiter from 5.7.0 to 5.9.1 #78, #90, #101, #112, #135.</action>
+      <action                  type="update" dev="ggregory" due-to="Dependabot">Bump jna.version from 5.6.0 to 5.12.1 #84, #102, #109, #120, #131.</action>
+      <action                  type="update" dev="ggregory" due-to="Dependabot">Bump jmh.version from 1.19 to 1.35 #92, #100, #122.</action>
+      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Bump maven-javadoc-plugin from 3.2.0 to 3.4.1.</action>
+      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Bump Bump maven-bundle-plugin from 5.1.1 to 5.1.8.</action>
+      <action                  type="update" dev="ggregory" due-to="Dependabot">Bump taglist-maven-plugin from 2.4 to 3.0.0 #114.</action>
+      <action                  type="update" dev="ggregory" due-to="Gary Gregory, Dependabot">Bump spotbugs-maven-plugin from 4.5.3.0 to 4.7.2.1 #128, #132, #136, #144, #155.</action>
+      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Bump spotbugs from 4.5.3 to 4.7.1.</action>
+    </release>
+    <release version="6.5.0" date="2020-06-05" description="Minor feature and bug fix release.">
+      <action issue="BCEL-330" type="update" dev="ggregory" due-to="Mark Roberts">Remove unnecessary references to Constants.</action>
+      <action issue="BCEL-329" type="fix" dev="ggregory" due-to="Gary Gregory, Mark Roberts">MethodGen duplicates some attributes.</action>
+      <action issue="BCEL-336" type="update" dev="ggregory" due-to="Tomo Suzuki, Gary Gregory">MethodGen throws NullPointerException upon Invalid Class File Missing Constructor Body.</action>
+      <action                  type="update" dev="ggregory" due-to="Michael Ernst">Improve documentation of Pass3bVerifier (#37).</action>
+      <action                  type="update" dev="ggregory" due-to="Arthur Kupriyanov">Replaced deprecated constants in examples (#38).</action>
+      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Update tests from JNA 5.4.0 to 5.5.0.</action>
+      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Update tests JUnit from 4.12 to 4.13.</action>
+      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Update tests from Apache Commons Lang 3.9 to 3.10.</action>
+      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Update build maven-pmd-plugin 3.12.0 -> 3.13.0.</action>
+      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Update tests maven-surefire-plugin 3.0.0-M3 -> 3.0.0-M4.</action>
+      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Update build japicmp-maven-plugin 0.14.1 -> 0.14.3.</action>
+      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Update build jacoco-maven-plugin 0.8.4 -> 0.8.5.</action>
+      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Update tests from commons-io:commons-io 2.6 to 2.7.</action>
+      <action                  type="update" dev="ggregory" due-to="Mark Roberts">Add support for invokestatic of an InterfaceMethodref #39.</action>
+      <action                  type="update" dev="ggregory" due-to="Mark Roberts">Add attribute name(s) to Code.toString() #40.</action>
+      <action issue="BCEL-338" type="update" dev="ggregory" due-to="Gary Gregory">org.apache.bcel.generic.InstructionFactory.createInvoke() populates its internal ConstantPoolGen on bad input, then throws exception.</action>
+      <action issue="BCEL-339" type="update" dev="ggregory" due-to="Gary Gregory">Throw IllegalArgumentException, IllegalStateException, UnsupportedOperationException instead of RuntimeException.</action>
+      <action                  type="update" dev="ggregory" due-to="Mark Roberts">Make some annotation methods public (#45).</action>
+      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Fix ConcurrentModificationException in the maven-bundle-plugin:4.2.1:manifest on Java 15-ea.</action>
+    </release>
+    <release version="6.4.1" date="2019-09-26" description="Bug fix release.">
+      <action issue="BCEL-328" type="fix" dev="ggregory" due-to="Gary Gregory, Mark Roberts">java.util.EmptyStackException at org.apache.bcel.classfile.DescendingVisitor.visitModule (DescendingVisitor.java:592).</action>
+      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Update build from Checkstyle Maven Plugin 3.0.0 to 3.1.0.</action>
+    </release>
+    <release version="6.4.0" date="2019-09-20" description="Feature and bug fix release.">
+      <action issue="BCEL-316" type="fix" dev="ggregory" due-to="Gary Gregory">org.apache.bcel.classfile.Attribute class and subclasses should NOT log to the console by default.</action>
+      <action issue="BCEL-278" type="fix" dev="ggregory" due-to="Valery Barysoky">InvokeInstruction.toString(final ConstantPool cp) throws NoSuchElementException #11.</action>
+      <action issue="BCEL-318" type="add" dev="ggregory" due-to="Gary Gregory">Add method org.apache.bcel.classfile.ConstantUtf8.clearCache().</action>
+      <action issue="BCEL-317" type="update" dev="ggregory" due-to="Tomo Suzuki, Gary Gregory">Pluggable cache for ConstantUtf8.</action>
+      <action issue="BCEL-320" type="add" dev="ggregory" due-to="Tomo Suzuki, Gary Gregory">Add LruCacheClassPathRepository that can scan many JAR files without OutOfMemoryError.</action>
+      <action issue="BCEL-299" type="update" dev="ggregory" due-to="Gary Gregory, zhangminglei">Fix example src/examples/ClassDumper.java ClassDumper.processID().</action>
+      <action issue="BCEL-322" type="add" dev="ggregory" due-to="Gary Gregory">Add constants to org.apache.bcel.Const for Java 14.</action>
+      <action issue="BCEL-270" type="fix" dev="ggregory" due-to="Alexandru-Constantin Bledea">Calling toString(ConstantPool) on InvokeInstruction throws NullPointerException.</action>
+      <action issue="BCEL-321" type="add" dev="ggregory" due-to="Tomo Suzuki">Refactor subclasses of ClassPathRepository for differences in underlying cache.</action>
+      <action issue="BCEL-323" type="fix" dev="ggregory" due-to="Tomo Suzuki">org.apache.bcel.util.BCELifier to set major and minor versions.</action>
+      <action issue="BCEL-326" type="fix" dev="ggregory" due-to="Mark Roberts">Add missing Java 9 and Java 11 class file attributes. #33</action>
+      <action issue="BCEL-325" type="fix" dev="ggregory" due-to="Mark Roberts">ClassDumper crashes on a module-info.class. #33</action>
+      <action issue="BCEL-327" type="fix" dev="ggregory" due-to="Mark Roberts">Update signature scanning in Utility to support TypeParameters. #32</action>
+      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Update tests from JNA 4.5.0 to 5.3.1.</action>
+      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Update tests from JNA 5.3.1. to 5.4.0.</action>
+    </release>
+
+    <release version="6.3.1" date="2019-03-20" description="Bug fix release">
+      <action issue="BCEL-267" type="fix" dev="ggregory" due-to="Stephan Herrmann, Sebb, Gary Gregory, Torsten Curdt">Race conditions on static fields in BranchHandle and InstructionHandle.</action>
+      <action issue="BCEL-297" type="fix" dev="ggregory" due-to="Mark Roberts, mingleizhang">Possible NPE in override implementation of Object.equals (#20)</action>
+      <action issue="BCEL-298" type="update" dev="ggregory" due-to="mingleizhang">Add some files to .gitignore (#19)</action>
+      <action issue="BCEL-315" type="fix" dev="ggregory" due-to="Gary Gregory">NullPointerException at org.apache.bcel.classfile.FieldOrMethod.dump().</action>
+    </release>
+
+    <release version="6.3" date="2019-01-23" description="Experimental Java 9, 10, 11, 12-EA, and 13-EA Support">
+      <action issue="BCEL-304" type="fix" dev="ggregory" due-to="Gary Gregory, Ed Pavlak">ClassPath.getClassFile() and friends do not work with JDK 9 and higher (PR #22.)</action>
+      <action issue="BCEL-305" type="fix" dev="ggregory" due-to="Gary Gregory">ClassPath.getClassFile() and friends do not work with JRE 9 and higher</action>
+      <action                  type="update" dev="ggregory" due-to="Mark Thomas, Gary Gregory">Initial support for Java 11</action>
+      <action                  type="add" dev="ggregory" due-to="Mark Thomas">Added org.apache.bcel.classfile.Visitor.visitConstantDynamic(ConstantDynamic)</action>
+      <action                  type="add" dev="ggregory" due-to="Mark Thomas">Added org.apache.bcel.classfile.ConstantDynamic</action>
+      <action                  type="add" dev="ggregory" due-to="Mark Thomas">Added fields in org.apache.bcel.Const for Java 9, 10, and 11.</action>
+      <action                  type="add" dev="ggregory" due-to="Mark Thomas">Added fields in org.apache.bcel.Const for Java 12 and 13 based on Java Early Access releases.</action>
+      <action                  type="update" dev="ggregory" due-to="Gary Gregory">Update Java requirement from Java 7 to Java 8.</action>
+    </release>
+
+    <release version="6.2" date="2017-12-08" 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:
+
+    https://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 https://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 behavior.
+      </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>
diff --git a/src/conf/spotbugs-exclude-filter.xml b/src/conf/spotbugs-exclude-filter.xml
index f6bc1302..65ce33e5 100644
--- a/src/conf/spotbugs-exclude-filter.xml
+++ b/src/conf/spotbugs-exclude-filter.xml
@@ -37,7 +37,7 @@
     <Class name="~.*\.classfile\.CodeException" />
     <Bug pattern="NM_CLASS_NOT_EXCEPTION" />
   </Match>
-  
+
   <!-- Ignore GC here -->
   <Match>
     <Class name="~.*\.verifier\.TransitiveHull" />
diff --git a/src/main/java/org/apache/bcel/generic/ConstantPoolGen.java b/src/main/java/org/apache/bcel/generic/ConstantPoolGen.java
index 29fed1f8..0622364c 100644
--- a/src/main/java/org/apache/bcel/generic/ConstantPoolGen.java
+++ b/src/main/java/org/apache/bcel/generic/ConstantPoolGen.java
@@ -188,7 +188,7 @@ public class ConstantPoolGen {
                 if (!cpTable.containsKey(key)) {
                     cpTable.put(key, Integer.valueOf(i));
                 }
-            } 
+            }
 //            else if (c == null) { // entries may be null
 //                // nothing to do
 //            } else if (c instanceof ConstantInteger) {
diff --git a/src/main/java/org/apache/bcel/verifier/PassVerifier.java b/src/main/java/org/apache/bcel/verifier/PassVerifier.java
index b037384a..06dcc970 100644
--- a/src/main/java/org/apache/bcel/verifier/PassVerifier.java
+++ b/src/main/java/org/apache/bcel/verifier/PassVerifier.java
@@ -47,7 +47,7 @@ public abstract class PassVerifier {
      * This method adds a (warning) message to the message pool of this PassVerifier. This method is normally only
      * internally used by BCEL's class file verifier "JustIce" and should not be used from the outside.
      *
-     * @param message message to be appended to the message list. 
+     * @param message message to be appended to the message list.
      * @see #getMessages()
      */
     public void addMessage(final String message) {
@@ -56,7 +56,7 @@ public abstract class PassVerifier {
 
     /**
      * Verifies, not cached.
-     * 
+     *
      * @return The VerificationResult
      */
     public abstract VerificationResult do_verify();
diff --git a/src/main/java/org/apache/bcel/verifier/Verifier.java b/src/main/java/org/apache/bcel/verifier/Verifier.java
index a07a21fc..f0c175b0 100644
--- a/src/main/java/org/apache/bcel/verifier/Verifier.java
+++ b/src/main/java/org/apache/bcel/verifier/Verifier.java
@@ -145,9 +145,9 @@ public class Verifier {
 
     /**
      * Returns the VerificationResult for the given pass.
-     * 
+     *
      * @param methodNo The method to verify
-     * @return the VerificationResult 
+     * @return the VerificationResult
      */
     public VerificationResult doPass3a(final int methodNo) {
         return p3avs.computeIfAbsent(Integer.toString(methodNo), k -> new Pass3aVerifier(this, methodNo)).verify();
@@ -155,9 +155,9 @@ public class Verifier {
 
     /**
      * Returns the VerificationResult for the given pass.
-     * 
+     *
      * @param methodNo The method to verify
-     * @return the VerificationResult 
+     * @return the VerificationResult
      */
     public VerificationResult doPass3b(final int methodNo) {
         return p3bvs.computeIfAbsent(Integer.toString(methodNo), k -> new Pass3bVerifier(this, methodNo)).verify();
diff --git a/src/site/site.xml b/src/site/site.xml
index 88e05765..69c39cf7 100644
--- a/src/site/site.xml
+++ b/src/site/site.xml
@@ -7,15 +7,15 @@
     * 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.    
+    * under the License.
 -->
 <project name="Apache Commons BCEL&amp;trade;">
 
diff --git a/src/site/xdoc/faq.xml b/src/site/xdoc/faq.xml
index a989ec56..bd77badc 100644
--- a/src/site/xdoc/faq.xml
+++ b/src/site/xdoc/faq.xml
@@ -7,22 +7,22 @@
     * 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.    
+    * under the License.
 -->
 
 <document>
 
   <properties>
     <title>BCEL FAQ</title>
-  </properties> 
+  </properties>
 
   <body>
 
@@ -41,7 +41,7 @@
       <br/>
       <b>A: </b>BCEL was (deliberately) not designed for thread
       safety. See "Concurrent Programming in Java", by Doug Lea,
-      for an excellent reference on how to build thread-safe wrappers and 
+      for an excellent reference on how to build thread-safe wrappers and
       <a href="https://docs.oracle.com/javase/tutorial/essential/concurrency/further.html">more</a>.
     </p>
 
@@ -50,7 +50,7 @@
       <br/>
       <b>A: </b> Yes, this is covered by the <a
       href="https://www.apache.org/licenses/">Apache License</a>, if you add a note about the original
-      author and where to find the sources, i.e., 
+      author and where to find the sources, i.e.,
       <a href="https://commons.apache.org/bcel/">https://commons.apache.org/bcel/</a>
     </p>
 
@@ -86,7 +86,7 @@
        <pre>
        java org.apache.bcel.verifier.Verifier &lt;your class&gt;</pre>
     </p>
-    
+
     </section>
 <!--
     <p>
diff --git a/src/site/xdoc/manual/appendix.xml b/src/site/xdoc/manual/appendix.xml
index 4cc459f1..fc68794e 100644
--- a/src/site/xdoc/manual/appendix.xml
+++ b/src/site/xdoc/manual/appendix.xml
@@ -7,15 +7,15 @@
     * 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.    
+    * under the License.
 -->
 <document>
   <properties>
@@ -266,17 +266,17 @@ public class Peephole {
             JavaClass clazz  = Repository.lookupClass(argv[0]);
             Method[] methods = clazz.getMethods();
             ConstantPoolGen cp = new ConstantPoolGen(clazz.getConstantPool());
-    
+
             for (int i = 0; i &lt; methods.length; i++) {
                 if (!(methods[i].isAbstract() || methods[i].isNative())) {
                     MethodGen mg = new MethodGen(methods[i], clazz.getClassName(), cp);
                     Method stripped = removeNOPs(mg);
-        
+
                     if (stripped != null)      // Any NOPs stripped?
                         methods[i] = stripped; // Overwrite with stripped method
                   }
             }
-    
+
             // Dump the class to "class name"_.class
             clazz.setConstantPool(cp.getFinalConstantPool());
             clazz.dump(clazz.getClassName() + "_.class");
@@ -291,19 +291,19 @@ public class Peephole {
         String pat = "NOP+"; // Find at least one NOP
         InstructionHandle next = null;
         int count = 0;
-        
+
         for (Iterator iter = f.search(pat); iter.hasNext();) {
             InstructionHandle[] match = (InstructionHandle[]) iter.next();
             InstructionHandle first = match[0];
             InstructionHandle last  = match[match.length - 1];
-            
+
             // Some nasty Java compilers may add NOP at end of method.
             if ((next = last.getNext()) == null) {
                 break;
             }
-            
+
             count += match.length;
-            
+
             /**
              * Delete NOPs and redirect any references to them to the following (non-nop) instruction.
              */
@@ -352,13 +352,13 @@ public class Peephole {
         </a>
       </p>
     </subsection>
-      
+
     <subsection name="Verifier">
-      
+
       <h4>Running a console based verifier</h4>
 
       <source>
-java org.apache.bcel.verifier.Verifier fully.qualified.class.Name          
+java org.apache.bcel.verifier.Verifier fully.qualified.class.Name
       </source>
 
       lets JustIce work standalone.
@@ -386,4 +386,4 @@ java org.apache.bcel.verifier.GraphicalVerifier
     </subsection>
   </section>
   </body>
-</document>
\ No newline at end of file
+</document>
diff --git a/src/site/xdoc/manual/application-areas.xml b/src/site/xdoc/manual/application-areas.xml
index ec7c2960..bbb7ab55 100644
--- a/src/site/xdoc/manual/application-areas.xml
+++ b/src/site/xdoc/manual/application-areas.xml
@@ -7,15 +7,15 @@
     * 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.    
+    * under the License.
 -->
 <document>
   <properties>
diff --git a/src/site/xdoc/manual/bcel-api.xml b/src/site/xdoc/manual/bcel-api.xml
index 6d050d33..508aebed 100644
--- a/src/site/xdoc/manual/bcel-api.xml
+++ b/src/site/xdoc/manual/bcel-api.xml
@@ -7,15 +7,15 @@
     * 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.    
+    * under the License.
 -->
 <document>
   <properties>
@@ -164,7 +164,7 @@ printCode(clazz.getMethods());
 public static void printCode(Method[] methods) {
     for (int i = 0; i &lt; methods.length; i++) {
         System.out.println(methods[i]);
-        
+
         Code code = methods[i].getCode();
         if (code != null) // Non-abstract method
         System.out.println(code);
@@ -409,7 +409,7 @@ InstructionList il = new InstructionList();
 ClassGen  cg = new ClassGen("HelloWorld", "java.lang.Object",
         "&lt;generated&#62;", ACC_PUBLIC | ACC_SUPER, null);
 MethodGen mg = new MethodGen(ACC_STATIC | ACC_PUBLIC,
-        Type.VOID, new Type[] { new ArrayType(Type.STRING, 1) }, 
+        Type.VOID, new Type[] { new ArrayType(Type.STRING, 1) },
         new String[] { "argv" }, "main", "HelloWorld", il, cp);
 ...
 cg.addMethod(mg.getMethod());
diff --git a/src/site/xdoc/manual/introduction.xml b/src/site/xdoc/manual/introduction.xml
index ab50590a..aabdc15a 100644
--- a/src/site/xdoc/manual/introduction.xml
+++ b/src/site/xdoc/manual/introduction.xml
@@ -7,15 +7,15 @@
     * 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.    
+    * under the License.
 -->
 <document>
   <properties>
@@ -23,7 +23,7 @@
   </properties>
 
   <body>
- 
+
   <section name="Introduction">
     <p>
       The <a href="https://java.sun.com/">Java</a> language has become
@@ -67,9 +67,9 @@
     <p>
       This manual is structured as follows: We give a brief description
       of the Java Virtual Machine and the class file format in <a
-            href="jvm.html">section 2</a>. <a href="bcel-api.html">Section 3</a> 
+            href="jvm.html">section 2</a>. <a href="bcel-api.html">Section 3</a>
       introduces the <font face="helvetica,arial">BCEL</font> API.
-      <a href="application-areas.html">Section 4</a> describes some typical 
+      <a href="application-areas.html">Section 4</a> describes some typical
       application areas and example projects. The appendix contains code examples
       that are to long to be presented in the main part of this paper. All examples
       are included in the down-loadable distribution.
@@ -77,5 +77,5 @@
   </section>
 
   </body>
-  
-</document>
\ No newline at end of file
+
+</document>
diff --git a/src/site/xdoc/manual/jvm.xml b/src/site/xdoc/manual/jvm.xml
index 5d20c4ab..40ac02e0 100644
--- a/src/site/xdoc/manual/jvm.xml
+++ b/src/site/xdoc/manual/jvm.xml
@@ -7,15 +7,15 @@
     * 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.    
+    * under the License.
 -->
 <document>
   <properties>
@@ -388,7 +388,7 @@ public class Factorial {
         }
         return n;
     }
-    
+
     public static void main(String[] argv) {
         int n = readInt();
         System.out.println("Factorial of " + n + " is " + fac(n));
@@ -499,4 +499,4 @@ public class Factorial {
     </section>
   </body>
 
-</document>
\ No newline at end of file
+</document>
diff --git a/src/site/xdoc/manual/manual.xml b/src/site/xdoc/manual/manual.xml
index 1c0c3326..96d6843c 100644
--- a/src/site/xdoc/manual/manual.xml
+++ b/src/site/xdoc/manual/manual.xml
@@ -7,15 +7,15 @@
     * 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.    
+    * under the License.
 -->
 <document>
 
diff --git a/src/site/xdoc/projects.xml b/src/site/xdoc/projects.xml
index 1f2cb381..d020b008 100644
--- a/src/site/xdoc/projects.xml
+++ b/src/site/xdoc/projects.xml
@@ -1,14 +1,14 @@
 <?xml version="1.0"?>
-<!-- * 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 
+<!-- * 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. -->
 
 <document>
diff --git a/src/site/xdoc/security.xml b/src/site/xdoc/security.xml
index 3c4c11c2..ceccac6e 100644
--- a/src/site/xdoc/security.xml
+++ b/src/site/xdoc/security.xml
@@ -1,10 +1,10 @@
 <?xml version="1.0"?>
-<!-- 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 
+<!-- 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. -->
 <document>
     <properties>
diff --git a/src/test/java/org/apache/bcel/verifier/AbstractVerifierTestCase.java b/src/test/java/org/apache/bcel/verifier/AbstractVerifierTestCase.java
index f3fabb03..33a1a66b 100644
--- a/src/test/java/org/apache/bcel/verifier/AbstractVerifierTestCase.java
+++ b/src/test/java/org/apache/bcel/verifier/AbstractVerifierTestCase.java
@@ -32,7 +32,7 @@ public abstract class AbstractVerifierTestCase {
     public void afterEach() {
         VerifierFactory.clear();
     }
-    
+
     /**
      * Asserts that the verification of the given class is OK. If it isn't it throws an AssertionFailedError with the given
      * message.
diff --git a/src/test/java/org/apache/bcel/verifier/VerifierTestCase.java b/src/test/java/org/apache/bcel/verifier/VerifierTestCase.java
index 705bbe58..285283eb 100644
--- a/src/test/java/org/apache/bcel/verifier/VerifierTestCase.java
+++ b/src/test/java/org/apache/bcel/verifier/VerifierTestCase.java
@@ -30,7 +30,7 @@ public class VerifierTestCase {
     public void afterEach() {
         VerifierFactory.clear();
     }
-    
+
     @Test
     public void testDefaultMethodValidation() {
         final String className = Collection.class.getName();
diff --git a/src/test/resources/Java8Example.java b/src/test/resources/Java8Example.java
index 20ddc298..07ba6dfb 100644
--- a/src/test/resources/Java8Example.java
+++ b/src/test/resources/Java8Example.java
@@ -6,7 +6,7 @@ public interface Java8Example {
     default void hello() {
         List<String> words = Arrays.asList("Hello", "World", "hi");
         System.out.println(words);
-        
+
         List<String> words2 = words.stream().filter((String s) -> s.length() > 2).collect(Collectors.<String> toList());
         System.out.println(words2);
     }


[commons-bcel] 02/02: Add checkstyle check for trailing whitespace

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

aherbert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-bcel.git

commit 137c0dd57c6dd817ce576c4f0c8f8df859996ee3
Author: aherbert <a....@sussex.ac.uk>
AuthorDate: Wed Nov 2 14:24:55 2022 +0000

    Add checkstyle check for trailing whitespace
---
 src/conf/checkstyle.xml | 397 ++++++++++++++++++++++++------------------------
 1 file changed, 202 insertions(+), 195 deletions(-)

diff --git a/src/conf/checkstyle.xml b/src/conf/checkstyle.xml
index 0ed434bf..68a62b4e 100644
--- a/src/conf/checkstyle.xml
+++ b/src/conf/checkstyle.xml
@@ -1,195 +1,202 @@
-<?xml version="1.0"?>
-<!--
-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.
--->
-
-<!DOCTYPE module PUBLIC
-    "-//Checkstyle//DTD Checkstyle Configuration 1.2//EN"
-    "https://checkstyle.org/dtds/configuration_1_2.dtd">
-
-<!-- commons codec customization of default Checkstyle behavior -->
-<module name="Checker">
-  <property name="localeLanguage" value="en" />
-
-  <!-- Checks whether files end with a new line. -->
-  <!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile -->
-  <module name="NewlineAtEndOfFile">
-    <!-- The files are saved in the repo with LF, and on Windows you should use git config core.autocrlf input -->
-    <property name="lineSeparator" value="lf" />
-  </module>
-
-  <!-- Checks for Tab characters -->
-  <!-- See http://checkstyle.sourceforge.net/config_whitespace.html#FileTabCharacter -->
-  <module name="FileTabCharacter">
-    <property name="fileExtensions" value="java" />
-  </module>
-
-  <!-- Checks for white space at the end of the line -->
-  <!-- See http://checkstyle.sourceforge.net/config_regexp.html -->
-  <!-- 706
-  <module name="RegexpSingleline">
-    <property name="format" value="\s+$" />
-    <property name="message" value="Line has trailing spaces." />
-    <property name="fileExtensions" value="java" />
-  </module>
-  -->
-
-  <!-- @author tags are deprecated -->
-  <module name="RegexpSingleline">
-    <property name="format" value="^\s+\*\s+@author\s" />
-    <property name="message" value="Deprecated @author tag" />
-    <property name="fileExtensions" value="java" />
-    <property name="severity" value="warning" />
-  </module>
-
-  <module name="LineLength">
-    <property name="max" value="160"/>
-  </module>
-
-  <module name="TreeWalker">
- 
-    <!-- Checks for Naming Conventions.                  -->
-    <!-- See http://checkstyle.sf.net/config_naming.html -->
-    <!-- allow CONSTANT_Long etc -->
-    <!-- 
-    <module name="ConstantName">
-      <property name="format" value="^[A-Z][A-Z0-9]*(_[A-Za-z0-9]+)*$"/>
-    </module>
-    <module name="LocalFinalVariableName"/>
-    <module name="LocalVariableName"/>
-    <module name="MemberName">
-      <property name="format" value="^[a-z][a-zA-Z0-9_]*(_[a-zA-Z0-9]+)*$"/>
-    </module>
-    <module name="MethodName"/>
-    <module name="PackageName"/>
-    <module name="ParameterName"/>
-    <module name="StaticVariableName"/>
-     -->
-    <module name="TypeName">
-        <!-- Allow underscore in class names -->
-        <property name="format" value="^[A-Z][A-Za-z0-9]*(_[A-Za-z0-9]+)*$"/>
-    </module>
-
-    <!-- Checks for imports                              -->
-    <!-- See http://checkstyle.sf.net/config_imports.html -->
-    <module name="AvoidStarImport">
-        <property name="excludes" value="org.junit.Assert"/>
-    </module>
-    <module name="IllegalImport"/> <!-- defaults to sun.* packages -->
-    <module name="RedundantImport"/>
-    <module name="UnusedImports"/>
-    
-    <!-- Checks for whitespace                               -->
-    <!-- See http://checkstyle.sf.net/config_whitespace.html -->
-    <module name="EmptyForIteratorPad"/>
-    <!-- Too many to fix at present
-    <module name="NoWhitespaceAfter"/>
-    <module name="NoWhitespaceBefore"/>
-    <module name="OperatorWrap">
-      <property name="option" value="nl" />
-    </module>
-    -->
-    <!-- Too many to fix at present
-    <module name="ParenPad"/>
-    <module name="WhitespaceAfter"/>
-    <module name="WhitespaceAround"/>
-    -->
-    
-    <!-- Modifier Checks                                    -->
-    <!-- See http://checkstyle.sf.net/config_modifiers.html -->
-    <module name="ModifierOrder"/>
-    
-    <!--module name="RedundantModifier"/-->
-    
-    <!-- Checks for blocks. You know, those {}'s         -->
-    <!-- See http://checkstyle.sf.net/config_blocks.html -->
-    <!--module name="AvoidNestedBlocks"/-->
-    <module name="EmptyBlock">
-      <property name="option" value="text"/>
-    </module>
-    <!--
-    <module name="LeftCurly">
-        <property name="option" value="nl"/>
-    </module>
-    -->
-    <module name="NeedBraces"/>
-    <!--
-    <module name="RightCurly">
-        <property name="option" value="alone"/>
-    </module>
-    -->
-    
-    <!-- Checks for common coding problems               -->
-    <!-- See http://checkstyle.sf.net/config_coding.html -->
-    <module name="CovariantEquals"/>
-    <module name="EqualsHashCode"/>
-    <module name="IllegalInstantiation"/>
-    <!--module name="InnerAssignment"/--><!-- Inner assignments are OK -->
-    <!-- module name="MagicNumber">
-        <property name="ignoreNumbers" value="-1,0,1,2,3"/>
-    </module-->
-    <module name="SimplifyBooleanExpression"/>
-    <module name="SimplifyBooleanReturn"/>
-    <module name="StringLiteralEquality"/>
-    <!--module name="SuperClone"/-->
-    <module name="SuperFinalize"/>
-    <!--module name="DeclarationOrder"/-->
-    <!--module name="ExplicitInitialization"/-->
-    <module name="DefaultComesLast"/>
-    <module name="FallThrough">
-        <property name="reliefPattern" value="\$FALL-THROUGH\$"/><!-- to agree with Eclipse -->
-    </module>
-    <module name="MultipleVariableDeclarations"/>
-    <module name="UnnecessaryParentheses"/>
-
-    <!-- Checks for class design                         -->
-    <!-- See http://checkstyle.sf.net/config_design.html -->
-    <!--module name="FinalClass"/-->
-    <!--module name="HideUtilityClassConstructor"/-->
-    <!--module name="InterfaceIsType"/-->
-
-    <module name="VisibilityModifier">
-        <property name="ignoreAnnotationCanonicalNames" value="java.lang.Deprecated"/>
-        <property name="protectedAllowed" value="false"/>
-        <property name="packageAllowed" value="true"/>
-    </module>
-    
-    <!-- Miscellaneous other checks.                   -->
-    <!-- See http://checkstyle.sf.net/config_misc.html -->
-    <module name="ArrayTypeStyle"/>
-    <!--module name="TodoComment"/-->
-    <module name="UpperEll"/>
-
-    <module name="SuppressionCommentFilter"/>
-
-    <!-- 
-        Allow comment to suppress checkstyle for a single line
-        e.g. // CHECKSTYLE IGNORE MagicNumber
-     -->
-    <module name="SuppressWithNearbyCommentFilter">
-      <property name="commentFormat" value="CHECKSTYLE IGNORE (\w+)"/>
-      <property name="checkFormat" value="$1"/>
-    </module>
-
-  </module>
-
-  <module name="SuppressionFilter">
-    <!-- config_loc is used by Eclipse plugin -->
-    <property name="file" value="${config_loc}/src/conf/checkstyle-suppressions.xml"/>
-  </module>
-
-</module>
-
+<?xml version="1.0"?>
+<!--
+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.
+-->
+
+<!DOCTYPE module PUBLIC
+    "-//Checkstyle//DTD Checkstyle Configuration 1.2//EN"
+    "https://checkstyle.org/dtds/configuration_1_2.dtd">
+
+<!-- commons codec customization of default Checkstyle behavior -->
+<module name="Checker">
+  <property name="localeLanguage" value="en" />
+
+  <!-- Checks whether files end with a new line. -->
+  <!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile -->
+  <module name="NewlineAtEndOfFile">
+    <!-- The files are saved in the repo with LF, and on Windows you should use git config core.autocrlf input -->
+    <property name="lineSeparator" value="lf" />
+  </module>
+
+  <!-- Checks for Tab characters -->
+  <!-- See http://checkstyle.sourceforge.net/config_whitespace.html#FileTabCharacter -->
+  <module name="FileTabCharacter">
+    <property name="fileExtensions" value="java" />
+  </module>
+
+  <!-- Checks for white space at the end of the line -->
+  <!-- See http://checkstyle.sourceforge.net/config_regexp.html -->
+  <!-- 706
+  <module name="RegexpSingleline">
+    <property name="format" value="\s+$" />
+    <property name="message" value="Line has trailing spaces." />
+    <property name="fileExtensions" value="java" />
+  </module>
+  -->
+
+  <!-- @author tags are deprecated -->
+  <module name="RegexpSingleline">
+    <property name="format" value="^\s+\*\s+@author\s" />
+    <property name="message" value="Deprecated @author tag" />
+    <property name="fileExtensions" value="java" />
+    <property name="severity" value="warning" />
+  </module>
+
+  <module name="RegexpSingleline">
+    <property name="format" value="\s+$" />
+    <property name="minimum" value="0" />
+    <property name="maximum" value="0" />
+    <property name="message" value="Line has trailing spaces." />
+  </module>
+
+  <module name="LineLength">
+    <property name="max" value="160"/>
+  </module>
+
+  <module name="TreeWalker">
+
+    <!-- Checks for Naming Conventions.                  -->
+    <!-- See http://checkstyle.sf.net/config_naming.html -->
+    <!-- allow CONSTANT_Long etc -->
+    <!--
+    <module name="ConstantName">
+      <property name="format" value="^[A-Z][A-Z0-9]*(_[A-Za-z0-9]+)*$"/>
+    </module>
+    <module name="LocalFinalVariableName"/>
+    <module name="LocalVariableName"/>
+    <module name="MemberName">
+      <property name="format" value="^[a-z][a-zA-Z0-9_]*(_[a-zA-Z0-9]+)*$"/>
+    </module>
+    <module name="MethodName"/>
+    <module name="PackageName"/>
+    <module name="ParameterName"/>
+    <module name="StaticVariableName"/>
+     -->
+    <module name="TypeName">
+        <!-- Allow underscore in class names -->
+        <property name="format" value="^[A-Z][A-Za-z0-9]*(_[A-Za-z0-9]+)*$"/>
+    </module>
+
+    <!-- Checks for imports                              -->
+    <!-- See http://checkstyle.sf.net/config_imports.html -->
+    <module name="AvoidStarImport">
+        <property name="excludes" value="org.junit.Assert"/>
+    </module>
+    <module name="IllegalImport"/> <!-- defaults to sun.* packages -->
+    <module name="RedundantImport"/>
+    <module name="UnusedImports"/>
+
+    <!-- Checks for whitespace                               -->
+    <!-- See http://checkstyle.sf.net/config_whitespace.html -->
+    <module name="EmptyForIteratorPad"/>
+    <!-- Too many to fix at present
+    <module name="NoWhitespaceAfter"/>
+    <module name="NoWhitespaceBefore"/>
+    <module name="OperatorWrap">
+      <property name="option" value="nl" />
+    </module>
+    -->
+    <!-- Too many to fix at present
+    <module name="ParenPad"/>
+    <module name="WhitespaceAfter"/>
+    <module name="WhitespaceAround"/>
+    -->
+
+    <!-- Modifier Checks                                    -->
+    <!-- See http://checkstyle.sf.net/config_modifiers.html -->
+    <module name="ModifierOrder"/>
+
+    <!--module name="RedundantModifier"/-->
+
+    <!-- Checks for blocks. You know, those {}'s         -->
+    <!-- See http://checkstyle.sf.net/config_blocks.html -->
+    <!--module name="AvoidNestedBlocks"/-->
+    <module name="EmptyBlock">
+      <property name="option" value="text"/>
+    </module>
+    <!--
+    <module name="LeftCurly">
+        <property name="option" value="nl"/>
+    </module>
+    -->
+    <module name="NeedBraces"/>
+    <!--
+    <module name="RightCurly">
+        <property name="option" value="alone"/>
+    </module>
+    -->
+
+    <!-- Checks for common coding problems               -->
+    <!-- See http://checkstyle.sf.net/config_coding.html -->
+    <module name="CovariantEquals"/>
+    <module name="EqualsHashCode"/>
+    <module name="IllegalInstantiation"/>
+    <!--module name="InnerAssignment"/--><!-- Inner assignments are OK -->
+    <!-- module name="MagicNumber">
+        <property name="ignoreNumbers" value="-1,0,1,2,3"/>
+    </module-->
+    <module name="SimplifyBooleanExpression"/>
+    <module name="SimplifyBooleanReturn"/>
+    <module name="StringLiteralEquality"/>
+    <!--module name="SuperClone"/-->
+    <module name="SuperFinalize"/>
+    <!--module name="DeclarationOrder"/-->
+    <!--module name="ExplicitInitialization"/-->
+    <module name="DefaultComesLast"/>
+    <module name="FallThrough">
+        <property name="reliefPattern" value="\$FALL-THROUGH\$"/><!-- to agree with Eclipse -->
+    </module>
+    <module name="MultipleVariableDeclarations"/>
+    <module name="UnnecessaryParentheses"/>
+
+    <!-- Checks for class design                         -->
+    <!-- See http://checkstyle.sf.net/config_design.html -->
+    <!--module name="FinalClass"/-->
+    <!--module name="HideUtilityClassConstructor"/-->
+    <!--module name="InterfaceIsType"/-->
+
+    <module name="VisibilityModifier">
+        <property name="ignoreAnnotationCanonicalNames" value="java.lang.Deprecated"/>
+        <property name="protectedAllowed" value="false"/>
+        <property name="packageAllowed" value="true"/>
+    </module>
+
+    <!-- Miscellaneous other checks.                   -->
+    <!-- See http://checkstyle.sf.net/config_misc.html -->
+    <module name="ArrayTypeStyle"/>
+    <!--module name="TodoComment"/-->
+    <module name="UpperEll"/>
+
+    <module name="SuppressionCommentFilter"/>
+
+    <!--
+        Allow comment to suppress checkstyle for a single line
+        e.g. // CHECKSTYLE IGNORE MagicNumber
+     -->
+    <module name="SuppressWithNearbyCommentFilter">
+      <property name="commentFormat" value="CHECKSTYLE IGNORE (\w+)"/>
+      <property name="checkFormat" value="$1"/>
+    </module>
+
+  </module>
+
+  <module name="SuppressionFilter">
+    <!-- config_loc is used by Eclipse plugin -->
+    <property name="file" value="${config_loc}/src/conf/checkstyle-suppressions.xml"/>
+  </module>
+
+</module>
+