diff -Nru bcel-6.1/CONTRIBUTING.md bcel-6.2/CONTRIBUTING.md --- bcel-6.1/CONTRIBUTING.md 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/CONTRIBUTING.md 2017-12-08 19:13:53.000000000 +0000 @@ -51,47 +51,65 @@ + Make sure you have a [JIRA account](https://issues.apache.org/jira/). + Make sure you have a [GitHub account](https://github.com/signup/free). + If you're planning to implement a new feature it makes sense to discuss you're changes on the [dev list](https://commons.apache.org/mail-lists.html) first. This way you can make sure you're not wasting your time on something that isn't considered to be in Apache Commons BCEL's scope. -+ Submit a ticket for your issue, assuming one does not already exist. ++ Submit a [Jira Ticket][jira] for your issue, assuming one does not already exist. + Clearly describe the issue including steps to reproduce when it is a bug. + Make sure you fill in the earliest version that you know has the issue. -+ Fork the repository on GitHub. ++ Find the corresponding [repository on GitHub](https://github.com/apache/?query=commons-), +[fork](https://help.github.com/articles/fork-a-repo/) and check out your forked repository. Making Changes -------------- -+ Create a topic branch from where you want to base your work (this is usually the master/trunk branch). ++ Create a _topic branch_ for your isolated work. + * Usually you should base your branch on the `master` or `trunk` branch. + * A good topic branch name can be the JIRA bug id plus a keyword, e.g. `BCEL-123-InputStream`. + * If you have submitted multiple JIRA issues, try to maintain separate branches and pull requests. + Make commits of logical units. + * Make sure your commit messages are meaningful and in the proper format. Your commit message should contain the key of the JIRA issue. + * e.g. `BCEL-123: Close input stream earlier` + Respect the original code style: + Only use spaces for indentation. - + Create minimal diffs - disable on save actions like reformat source code or organize imports. If you feel the source code should be reformatted create a separate PR for this change. - + Check for unnecessary whitespace with git diff --check before committing. -+ Make sure your commit messages are in the proper format. Your commit message should contain the key of the JIRA issue. -+ Make sure you have added the necessary tests for your changes. + + Create minimal diffs - disable _On Save_ actions like _Reformat Source Code_ or _Organize Imports_. If you feel the source code should be reformatted create a separate PR for this change first. + + Check for unnecessary whitespace with `git diff` -- check before committing. ++ Make sure you have added the necessary tests for your changes, typically in `src/test/java`. + Run all the tests with `mvn clean verify` to assure nothing else was accidentally broken. Making Trivial Changes ---------------------- +The JIRA tickets are used to generate the changelog for the next release. + For changes of a trivial nature to comments and documentation, it is not always necessary to create a new ticket in JIRA. In this case, it is appropriate to start the first line of a commit with '(doc)' instead of a ticket number. + Submitting Changes ------------------ -+ Sign the [Contributor License Agreement][cla] if you haven't already. ++ Sign and submit the Apache [Contributor License Agreement][cla] if you haven't already. + * Note that small patches & typical bug fixes do not require a CLA as + clause 5 of the [Apache License](https://www.apache.org/licenses/LICENSE-2.0.html#contributions) + covers them. + Push your changes to a topic branch in your fork of the repository. -+ Submit a pull request to the repository in the apache organization. ++ Submit a _Pull Request_ to the corresponding repository in the `apache` organization. + * Verify _Files Changed_ shows only your intended changes and does not + include additional files like `target/*.class` + Update your JIRA ticket and include a link to the pull request in the ticket. +If you prefer to not use GitHub, then you can instead use +`git format-patch` (or `svn diff`) and attach the patch file to the JIRA issue. + + Additional Resources -------------------- + [Contributing patches](https://commons.apache.org/patches.html) -+ [Apache Commons BCEL JIRA project page](https://issues.apache.org/jira/browse/BCEL) ++ [Apache Commons BCEL JIRA project page][jira] + [Contributor License Agreement][cla] + [General GitHub documentation](https://help.github.com/) + [GitHub pull request documentation](https://help.github.com/send-pull-requests/) + [Apache Commons Twitter Account](https://twitter.com/ApacheCommons) -+ #apachecommons IRC channel on freenode.org ++ `#apache-commons` IRC channel on `irc.freenode.net` [cla]:https://www.apache.org/licenses/#clas +[jira]:https://issues.apache.org/jira/browse/BCEL diff -Nru bcel-6.1/debian/changelog bcel-6.2/debian/changelog --- bcel-6.1/debian/changelog 2021-04-21 16:36:53.000000000 +0000 +++ bcel-6.2/debian/changelog 2021-04-27 05:14:41.000000000 +0000 @@ -1,8 +1,18 @@ -bcel (6.1-1~16.04.sav0) xenial; urgency=medium +bcel (6.2-1~16.04.sav0) xenial; urgency=medium * Backport to Xenial + * debian/compat: Set compat level to 10 (Launchpad sbuild highest for Xenial) - -- Rob Savoury Wed, 21 Apr 2021 09:36:53 -0700 + -- Rob Savoury Mon, 26 Apr 2021 22:14:41 -0700 + +bcel (6.2-1) unstable; urgency=medium + + * Team upload. + * New upstream version 6.2. + * Use compat level 11. + * Declare compliance with Debian Policy 4.1.3. + + -- Markus Koschany Wed, 17 Jan 2018 00:05:34 +0100 bcel (6.1-1) unstable; urgency=medium @@ -126,7 +136,7 @@ * Add ${misc:Depends} to Depends to clear Lintian warnings * Drop the dependency on libxerces2-java-doc on the libbcel-java-doc package as xerces2 is not a runtime dependency - for bcel, in fact xerces is not used at all in bcel's code. + for bcel, in fact xerces is not used at all in bcel's code. It caused lots of confusion in Ubuntu for nothing - see LP #190247. * Add libbcel-java-doc.docs to ship to real docs for a change. * Move the API docs to /usr/share/java/libbcel-java/api diff -Nru bcel-6.1/debian/control bcel-6.2/debian/control --- bcel-6.1/debian/control 2017-10-17 21:34:56.000000000 +0000 +++ bcel-6.2/debian/control 2018-01-16 23:05:34.000000000 +0000 @@ -5,14 +5,14 @@ Uploaders: Torsten Werner , Emmanuel Bourg Build-Depends-Indep: default-jdk, default-jdk-doc Build-Depends: - debhelper (>= 10), + debhelper (>= 11), libcommons-lang3-java, libjna-platform-java, libmaven-bundle-plugin-java, libmaven-javadoc-plugin-java, junit4, maven-debian-helper (>= 2.1~) -Standards-Version: 4.1.1 +Standards-Version: 4.1.3 Vcs-Git: https://anonscm.debian.org/git/pkg-java/bcel.git Vcs-Browser: https://anonscm.debian.org/cgit/pkg-java/bcel.git Homepage: http://commons.apache.org/bcel/ @@ -33,7 +33,7 @@ interesting application is the creation of classes from scratch at run-time. The Byte Code Engineering Library (BCEL) may be also useful if you want to learn about the Java Virtual Machine (JVM) and the format of Java .class - files. + files. Package: libbcel-java-doc Architecture: all @@ -52,6 +52,6 @@ interesting application is the creation of classes from scratch at run-time. The Byte Code Engineering Library (BCEL) may be also useful if you want to learn about the Java Virtual Machine (JVM) and the format of Java .class - files. + files. . This package contains the API (javadoc) documentation. diff -Nru bcel-6.1/debian/libbcel-java.docs bcel-6.2/debian/libbcel-java.docs --- bcel-6.1/debian/libbcel-java.docs 1970-01-01 00:00:00.000000000 +0000 +++ bcel-6.2/debian/libbcel-java.docs 2018-01-16 23:05:34.000000000 +0000 @@ -0,0 +1 @@ +NOTICE.txt diff -Nru bcel-6.1/pom.xml bcel-6.2/pom.xml --- bcel-6.1/pom.xml 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/pom.xml 2017-12-08 19:13:53.000000000 +0000 @@ -33,7 +33,7 @@ org.apache.bcel bcel jar - 6.1 + 6.2 Apache Commons BCEL Apache Commons Bytecode Engineering Library @@ -47,7 +47,7 @@ 1.7 bcel org.apache.bcel - 6.1 + 6.2 (Java 7+) https://svn.apache.org/repos/infra/websites/production/commons/content/proper/commons-bcel @@ -58,7 +58,7 @@ BCEL 12314220 - 3.0.4 + 3.0.5 2.17 2.8 4.5.0 @@ -442,7 +442,7 @@ org.apache.commons commons-lang3 - 3.6 + 3.7 test @@ -511,7 +511,7 @@ commons-io commons-io - 2.5 + 2.6 test diff -Nru bcel-6.1/README.md bcel-6.2/README.md --- bcel-6.1/README.md 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/README.md 2017-12-08 19:13:53.000000000 +0000 @@ -1,103 +1,105 @@ - - -Apache Commons BCEL -=================== - -[![Build Status](https://travis-ci.org/apache/commons-bcel.svg?branch=trunk)](https://travis-ci.org/apache/commons-bcel) -[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.apache.bcel/bcel/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.apache.bcel/bcel/) - -Apache Commons Bytecode Engineering Library - -Documentation -------------- - -More information can be found on the [Apache Commons BCEL homepage](https://commons.apache.org/proper/commons-bcel). -The [JavaDoc](https://commons.apache.org/proper/commons-bcel/javadocs/api-release) can be browsed. -Questions related to the usage of Apache Commons BCEL should be posted to the [user mailing list][ml]. - -Where can I get the latest release? ------------------------------------ -You can download source and binaries from our [download page](https://commons.apache.org/proper/commons-bcel/download_bcel.cgi). - -Alternatively you can pull it from the central Maven repositories: - -```xml - - org.apache.bcel - bcel - 6.0 - -``` - -Contributing ------------- - -We accept Pull Requests via GitHub. The [developer mailing list][ml] is the main channel of communication for contributors. -There are some guidelines which will make applying PRs easier for us: -+ No tabs! Please use spaces for indentation. -+ Respect the code style. -+ Create minimal diffs - disable on save actions like reformat source code or organize imports. If you feel the source code should be reformatted create a separate PR for this change. -+ Provide JUnit tests for your changes and make sure your changes don't break any existing tests by running ```mvn clean test```. - -If you plan to contribute on a regular basis, please consider filing a [contributor license agreement](https://www.apache.org/licenses/#clas). -You can learn more about contributing via GitHub in our [contribution guidelines](CONTRIBUTING.md). - -License -------- -This code is under the [Apache Licence v2](https://www.apache.org/licenses/LICENSE-2.0). - -See the `NOTICE.txt` file for required notices and attributions. - -Donations ---------- -You like Apache Commons BCEL? Then [donate back to the ASF](https://www.apache.org/foundation/contributing.html) to support the development. - -Additional Resources --------------------- - -+ [Apache Commons Homepage](https://commons.apache.org/) -+ [Apache Issue Tracker (JIRA)](https://issues.apache.org/jira/browse/BCEL) -+ [Apache Commons Twitter Account](https://twitter.com/ApacheCommons) -+ `#apache-commons` IRC channel on `irc.freenode.org` - -[ml]:https://commons.apache.org/mail-lists.html + + +Apache Commons BCEL +=================== + +[![Build Status](https://travis-ci.org/apache/bcel.svg?branch=master)](https://travis-ci.org/apache/bcel) +[![Coverage Status](https://coveralls.io/repos/apache/bcel/badge.svg?branch=master)](https://coveralls.io/r/apache/bcel) +[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.apache.bcel/bcel/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.apache.bcel/bcel/) +[![License](http://img.shields.io/:license-apache-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0.html) + +Apache Commons Bytecode Engineering Library + +Documentation +------------- + +More information can be found on the [Apache Commons BCEL homepage](https://commons.apache.org/proper/commons-bcel). +The [JavaDoc](https://commons.apache.org/proper/commons-bcel/javadocs/api-release) can be browsed. +Questions related to the usage of Apache Commons BCEL should be posted to the [user mailing list][ml]. + +Where can I get the latest release? +----------------------------------- +You can download source and binaries from our [download page](https://commons.apache.org/proper/commons-bcel/download_bcel.cgi). + +Alternatively you can pull it from the central Maven repositories: + +```xml + + org.apache.bcel + bcel + 6.2 + +``` + +Contributing +------------ + +We accept Pull Requests via GitHub. The [developer mailing list][ml] is the main channel of communication for contributors. +There are some guidelines which will make applying PRs easier for us: ++ No tabs! Please use spaces for indentation. ++ Respect the code style. ++ Create minimal diffs - disable on save actions like reformat source code or organize imports. If you feel the source code should be reformatted create a separate PR for this change. ++ Provide JUnit tests for your changes and make sure your changes don't break any existing tests by running ```mvn clean test```. + +If you plan to contribute on a regular basis, please consider filing a [contributor license agreement](https://www.apache.org/licenses/#clas). +You can learn more about contributing via GitHub in our [contribution guidelines](CONTRIBUTING.md). + +License +------- +This code is under the [Apache Licence v2](https://www.apache.org/licenses/LICENSE-2.0). + +See the `NOTICE.txt` file for required notices and attributions. + +Donations +--------- +You like Apache Commons BCEL? Then [donate back to the ASF](https://www.apache.org/foundation/contributing.html) to support the development. + +Additional Resources +-------------------- + ++ [Apache Commons Homepage](https://commons.apache.org/) ++ [Apache Issue Tracker (JIRA)](https://issues.apache.org/jira/browse/BCEL) ++ [Apache Commons Twitter Account](https://twitter.com/ApacheCommons) ++ `#apache-commons` IRC channel on `irc.freenode.org` + +[ml]:https://commons.apache.org/mail-lists.html diff -Nru bcel-6.1/RELEASE-NOTES.txt bcel-6.2/RELEASE-NOTES.txt --- bcel-6.1/RELEASE-NOTES.txt 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/RELEASE-NOTES.txt 2017-12-08 19:13:53.000000000 +0000 @@ -1,4 +1,51 @@ Apache Commons BCEL + Version 6.2 + RELEASE NOTES + + +INTRODUCTION: + +The Apache Commons BCEL team is pleased to announce the release of +Apache Commons BCEL 6.2! + +The Byte Code Engineering Library (BCEL) is intended to give users a convenient +way to analyze, create, and manipulate compiled .class files. Classes are +represented by objects containing all the symbolic information of the given +class: methods, fields and byte code instructions. + +Experimental Java 9 Support + +FIXED BUGS: +=========== + +o BCEL-294: Incorrect comment in StackMap.java Thanks to Mark Roberts. +o BCEL-296: Incorrect comment in several classes. Thanks to Mark Roberts. +o BCEL-295: Fix local variable live range length; add test case. Thanks to Mark Roberts. +o BCEL-300: org.apache.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19. +o BCEL-301: org.apache.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 20. + + +Have fun! +-Apache Commons BCEL team + +Feedback +-------- + +Open source works best when you give feedback: + + http://commons.apache.org/bcel + +Please direct all bug reports to JIRA: + + https://issues.apache.org/jira/browse/BCEL + +Or subscribe to the commons-user mailing list + +The Apache Commons Team + +----------------------------------------------------------------------------- + + Apache Commons BCEL Version 6.1 RELEASE NOTES @@ -85,6 +132,7 @@ Have fun! -Apache Commons BCEL team +----------------------------------------------------------------------------- Release Notes for 6.0 diff -Nru bcel-6.1/src/changes/changes.xml bcel-6.2/src/changes/changes.xml --- bcel-6.1/src/changes/changes.xml 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/changes/changes.xml 2017-12-08 19:13:53.000000000 +0000 @@ -62,6 +62,14 @@ --> + + Incorrect comment in StackMap.java + Incorrect comment in several classes. + Fix local variable live range length; add test case. + org.apache.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19. + org.apache.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 20. + + Add Automatic-Module-Name MANIFEST entry for Java 9 compatibility Add minimal Java 9 support diff -Nru bcel-6.1/src/main/java/org/apache/bcel/classfile/Constant.java bcel-6.2/src/main/java/org/apache/bcel/classfile/Constant.java --- bcel-6.1/src/main/java/org/apache/bcel/classfile/Constant.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/classfile/Constant.java 2017-12-08 19:13:53.000000000 +0000 @@ -163,6 +163,10 @@ return new ConstantMethodType(input); case Const.CONSTANT_InvokeDynamic: return new ConstantInvokeDynamic(input); + case Const.CONSTANT_Module: + return new ConstantModule(input); + case Const.CONSTANT_Package: + return new ConstantPackage(input); default: throw new ClassFormatException("Invalid byte tag in constant pool: " + b); } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/classfile/StackMap.java bcel-6.2/src/main/java/org/apache/bcel/classfile/StackMap.java --- bcel-6.1/src/main/java/org/apache/bcel/classfile/StackMap.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/classfile/StackMap.java 2017-12-08 19:13:53.000000000 +0000 @@ -74,7 +74,7 @@ /** - * Dump line number table attribute to file stream in binary format. + * Dump stack map table attribute to file stream in binary format. * * @param file Output file stream * @throws IOException diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/ALOAD.java bcel-6.2/src/main/java/org/apache/bcel/generic/ALOAD.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/ALOAD.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/ALOAD.java 2017-12-08 19:13:53.000000000 +0000 @@ -26,8 +26,8 @@ public class ALOAD extends LoadInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ ALOAD() { super(org.apache.bcel.Const.ALOAD, org.apache.bcel.Const.ALOAD_0); diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/ANEWARRAY.java bcel-6.2/src/main/java/org/apache/bcel/generic/ANEWARRAY.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/ANEWARRAY.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/ANEWARRAY.java 2017-12-08 19:13:53.000000000 +0000 @@ -29,8 +29,8 @@ ExceptionThrower, StackConsumer, StackProducer { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ ANEWARRAY() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/ArithmeticInstruction.java bcel-6.2/src/main/java/org/apache/bcel/generic/ArithmeticInstruction.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/ArithmeticInstruction.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/ArithmeticInstruction.java 2017-12-08 19:13:53.000000000 +0000 @@ -28,8 +28,8 @@ StackProducer, StackConsumer { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ ArithmeticInstruction() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/ArrayInstruction.java bcel-6.2/src/main/java/org/apache/bcel/generic/ArrayInstruction.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/ArrayInstruction.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/ArrayInstruction.java 2017-12-08 19:13:53.000000000 +0000 @@ -28,8 +28,8 @@ TypedInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ ArrayInstruction() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/ASTORE.java bcel-6.2/src/main/java/org/apache/bcel/generic/ASTORE.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/ASTORE.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/ASTORE.java 2017-12-08 19:13:53.000000000 +0000 @@ -26,8 +26,8 @@ public class ASTORE extends StoreInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ ASTORE() { super(org.apache.bcel.Const.ASTORE, org.apache.bcel.Const.ASTORE_0); diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/BIPUSH.java bcel-6.2/src/main/java/org/apache/bcel/generic/BIPUSH.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/BIPUSH.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/BIPUSH.java 2017-12-08 19:13:53.000000000 +0000 @@ -35,8 +35,8 @@ /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ BIPUSH() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/BranchInstruction.java bcel-6.2/src/main/java/org/apache/bcel/generic/BranchInstruction.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/BranchInstruction.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/BranchInstruction.java 2017-12-08 19:13:53.000000000 +0000 @@ -52,8 +52,8 @@ /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ BranchInstruction() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/CHECKCAST.java bcel-6.2/src/main/java/org/apache/bcel/generic/CHECKCAST.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/CHECKCAST.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/CHECKCAST.java 2017-12-08 19:13:53.000000000 +0000 @@ -29,8 +29,8 @@ StackConsumer { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ CHECKCAST() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/ConversionInstruction.java bcel-6.2/src/main/java/org/apache/bcel/generic/ConversionInstruction.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/ConversionInstruction.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/ConversionInstruction.java 2017-12-08 19:13:53.000000000 +0000 @@ -28,8 +28,8 @@ StackProducer, StackConsumer { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ ConversionInstruction() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/CPInstruction.java bcel-6.2/src/main/java/org/apache/bcel/generic/CPInstruction.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/CPInstruction.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/CPInstruction.java 2017-12-08 19:13:53.000000000 +0000 @@ -46,8 +46,8 @@ /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ CPInstruction() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/DCONST.java bcel-6.2/src/main/java/org/apache/bcel/generic/DCONST.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/DCONST.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/DCONST.java 2017-12-08 19:13:53.000000000 +0000 @@ -30,8 +30,8 @@ /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ DCONST() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/DLOAD.java bcel-6.2/src/main/java/org/apache/bcel/generic/DLOAD.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/DLOAD.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/DLOAD.java 2017-12-08 19:13:53.000000000 +0000 @@ -26,8 +26,8 @@ public class DLOAD extends LoadInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ DLOAD() { super(org.apache.bcel.Const.DLOAD, org.apache.bcel.Const.DLOAD_0); diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/DSTORE.java bcel-6.2/src/main/java/org/apache/bcel/generic/DSTORE.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/DSTORE.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/DSTORE.java 2017-12-08 19:13:53.000000000 +0000 @@ -26,8 +26,8 @@ public class DSTORE extends StoreInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ DSTORE() { super(org.apache.bcel.Const.DSTORE, org.apache.bcel.Const.DSTORE_0); diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/FCONST.java bcel-6.2/src/main/java/org/apache/bcel/generic/FCONST.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/FCONST.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/FCONST.java 2017-12-08 19:13:53.000000000 +0000 @@ -30,8 +30,8 @@ /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ FCONST() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/FieldInstruction.java bcel-6.2/src/main/java/org/apache/bcel/generic/FieldInstruction.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/FieldInstruction.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/FieldInstruction.java 2017-12-08 19:13:53.000000000 +0000 @@ -27,8 +27,8 @@ public abstract class FieldInstruction extends FieldOrMethod { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ FieldInstruction() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/FieldOrMethod.java bcel-6.2/src/main/java/org/apache/bcel/generic/FieldOrMethod.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/FieldOrMethod.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/FieldOrMethod.java 2017-12-08 19:13:53.000000000 +0000 @@ -32,8 +32,8 @@ public abstract class FieldOrMethod extends CPInstruction implements LoadClass { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ FieldOrMethod() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/FLOAD.java bcel-6.2/src/main/java/org/apache/bcel/generic/FLOAD.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/FLOAD.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/FLOAD.java 2017-12-08 19:13:53.000000000 +0000 @@ -26,8 +26,8 @@ public class FLOAD extends LoadInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ FLOAD() { super(org.apache.bcel.Const.FLOAD, org.apache.bcel.Const.FLOAD_0); diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/FSTORE.java bcel-6.2/src/main/java/org/apache/bcel/generic/FSTORE.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/FSTORE.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/FSTORE.java 2017-12-08 19:13:53.000000000 +0000 @@ -26,8 +26,8 @@ public class FSTORE extends StoreInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ FSTORE() { super(org.apache.bcel.Const.FSTORE, org.apache.bcel.Const.FSTORE_0); diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/GETFIELD.java bcel-6.2/src/main/java/org/apache/bcel/generic/GETFIELD.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/GETFIELD.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/GETFIELD.java 2017-12-08 19:13:53.000000000 +0000 @@ -32,8 +32,8 @@ StackProducer { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ GETFIELD() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/GETSTATIC.java bcel-6.2/src/main/java/org/apache/bcel/generic/GETSTATIC.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/GETSTATIC.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/GETSTATIC.java 2017-12-08 19:13:53.000000000 +0000 @@ -31,8 +31,8 @@ public class GETSTATIC extends FieldInstruction implements PushInstruction, ExceptionThrower { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ GETSTATIC() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/GotoInstruction.java bcel-6.2/src/main/java/org/apache/bcel/generic/GotoInstruction.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/GotoInstruction.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/GotoInstruction.java 2017-12-08 19:13:53.000000000 +0000 @@ -30,8 +30,8 @@ /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ GotoInstruction() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/GOTO.java bcel-6.2/src/main/java/org/apache/bcel/generic/GOTO.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/GOTO.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/GOTO.java 2017-12-08 19:13:53.000000000 +0000 @@ -28,8 +28,8 @@ public class GOTO extends GotoInstruction implements VariableLengthInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ GOTO() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/GOTO_W.java bcel-6.2/src/main/java/org/apache/bcel/generic/GOTO_W.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/GOTO_W.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/GOTO_W.java 2017-12-08 19:13:53.000000000 +0000 @@ -30,8 +30,8 @@ public class GOTO_W extends GotoInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ GOTO_W() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/ICONST.java bcel-6.2/src/main/java/org/apache/bcel/generic/ICONST.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/ICONST.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/ICONST.java 2017-12-08 19:13:53.000000000 +0000 @@ -30,8 +30,8 @@ /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ ICONST() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/IF_ACMPEQ.java bcel-6.2/src/main/java/org/apache/bcel/generic/IF_ACMPEQ.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/IF_ACMPEQ.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/IF_ACMPEQ.java 2017-12-08 19:13:53.000000000 +0000 @@ -27,8 +27,8 @@ public class IF_ACMPEQ extends IfInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ IF_ACMPEQ() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/IF_ACMPNE.java bcel-6.2/src/main/java/org/apache/bcel/generic/IF_ACMPNE.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/IF_ACMPNE.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/IF_ACMPNE.java 2017-12-08 19:13:53.000000000 +0000 @@ -27,8 +27,8 @@ public class IF_ACMPNE extends IfInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ IF_ACMPNE() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/IFEQ.java bcel-6.2/src/main/java/org/apache/bcel/generic/IFEQ.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/IFEQ.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/IFEQ.java 2017-12-08 19:13:53.000000000 +0000 @@ -27,8 +27,8 @@ public class IFEQ extends IfInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ IFEQ() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/IFGE.java bcel-6.2/src/main/java/org/apache/bcel/generic/IFGE.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/IFGE.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/IFGE.java 2017-12-08 19:13:53.000000000 +0000 @@ -27,8 +27,8 @@ public class IFGE extends IfInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ IFGE() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/IFGT.java bcel-6.2/src/main/java/org/apache/bcel/generic/IFGT.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/IFGT.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/IFGT.java 2017-12-08 19:13:53.000000000 +0000 @@ -27,8 +27,8 @@ public class IFGT extends IfInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ IFGT() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/IF_ICMPEQ.java bcel-6.2/src/main/java/org/apache/bcel/generic/IF_ICMPEQ.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/IF_ICMPEQ.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/IF_ICMPEQ.java 2017-12-08 19:13:53.000000000 +0000 @@ -27,8 +27,8 @@ public class IF_ICMPEQ extends IfInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ IF_ICMPEQ() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/IF_ICMPGE.java bcel-6.2/src/main/java/org/apache/bcel/generic/IF_ICMPGE.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/IF_ICMPGE.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/IF_ICMPGE.java 2017-12-08 19:13:53.000000000 +0000 @@ -27,8 +27,8 @@ public class IF_ICMPGE extends IfInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ IF_ICMPGE() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/IF_ICMPGT.java bcel-6.2/src/main/java/org/apache/bcel/generic/IF_ICMPGT.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/IF_ICMPGT.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/IF_ICMPGT.java 2017-12-08 19:13:53.000000000 +0000 @@ -27,8 +27,8 @@ public class IF_ICMPGT extends IfInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ IF_ICMPGT() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/IF_ICMPLE.java bcel-6.2/src/main/java/org/apache/bcel/generic/IF_ICMPLE.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/IF_ICMPLE.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/IF_ICMPLE.java 2017-12-08 19:13:53.000000000 +0000 @@ -27,8 +27,8 @@ public class IF_ICMPLE extends IfInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ IF_ICMPLE() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/IF_ICMPLT.java bcel-6.2/src/main/java/org/apache/bcel/generic/IF_ICMPLT.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/IF_ICMPLT.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/IF_ICMPLT.java 2017-12-08 19:13:53.000000000 +0000 @@ -27,8 +27,8 @@ public class IF_ICMPLT extends IfInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ IF_ICMPLT() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/IF_ICMPNE.java bcel-6.2/src/main/java/org/apache/bcel/generic/IF_ICMPNE.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/IF_ICMPNE.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/IF_ICMPNE.java 2017-12-08 19:13:53.000000000 +0000 @@ -27,8 +27,8 @@ public class IF_ICMPNE extends IfInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ IF_ICMPNE() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/IfInstruction.java bcel-6.2/src/main/java/org/apache/bcel/generic/IfInstruction.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/IfInstruction.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/IfInstruction.java 2017-12-08 19:13:53.000000000 +0000 @@ -25,8 +25,8 @@ public abstract class IfInstruction extends BranchInstruction implements StackConsumer { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ IfInstruction() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/IFLE.java bcel-6.2/src/main/java/org/apache/bcel/generic/IFLE.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/IFLE.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/IFLE.java 2017-12-08 19:13:53.000000000 +0000 @@ -27,8 +27,8 @@ public class IFLE extends IfInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ IFLE() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/IFLT.java bcel-6.2/src/main/java/org/apache/bcel/generic/IFLT.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/IFLT.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/IFLT.java 2017-12-08 19:13:53.000000000 +0000 @@ -27,8 +27,8 @@ public class IFLT extends IfInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ IFLT() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/IFNE.java bcel-6.2/src/main/java/org/apache/bcel/generic/IFNE.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/IFNE.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/IFNE.java 2017-12-08 19:13:53.000000000 +0000 @@ -27,8 +27,8 @@ public class IFNE extends IfInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ IFNE() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/IFNONNULL.java bcel-6.2/src/main/java/org/apache/bcel/generic/IFNONNULL.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/IFNONNULL.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/IFNONNULL.java 2017-12-08 19:13:53.000000000 +0000 @@ -27,8 +27,8 @@ public class IFNONNULL extends IfInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ IFNONNULL() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/IFNULL.java bcel-6.2/src/main/java/org/apache/bcel/generic/IFNULL.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/IFNULL.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/IFNULL.java 2017-12-08 19:13:53.000000000 +0000 @@ -27,8 +27,8 @@ public class IFNULL extends IfInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ IFNULL() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/IINC.java bcel-6.2/src/main/java/org/apache/bcel/generic/IINC.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/IINC.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/IINC.java 2017-12-08 19:13:53.000000000 +0000 @@ -34,8 +34,8 @@ /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ IINC() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/ILOAD.java bcel-6.2/src/main/java/org/apache/bcel/generic/ILOAD.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/ILOAD.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/ILOAD.java 2017-12-08 19:13:53.000000000 +0000 @@ -26,8 +26,8 @@ public class ILOAD extends LoadInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ ILOAD() { super(org.apache.bcel.Const.ILOAD, org.apache.bcel.Const.ILOAD_0); diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/INSTANCEOF.java bcel-6.2/src/main/java/org/apache/bcel/generic/INSTANCEOF.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/INSTANCEOF.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/INSTANCEOF.java 2017-12-08 19:13:53.000000000 +0000 @@ -29,8 +29,8 @@ StackProducer, StackConsumer { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ INSTANCEOF() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/Instruction.java bcel-6.2/src/main/java/org/apache/bcel/generic/Instruction.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/Instruction.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/Instruction.java 2017-12-08 19:13:53.000000000 +0000 @@ -47,8 +47,8 @@ /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ Instruction() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/INVOKEDYNAMIC.java bcel-6.2/src/main/java/org/apache/bcel/generic/INVOKEDYNAMIC.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/INVOKEDYNAMIC.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/INVOKEDYNAMIC.java 2017-12-08 19:13:53.000000000 +0000 @@ -1,145 +1,145 @@ -/* - * 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. - * - */ -package org.apache.bcel.generic; - -import java.io.DataOutputStream; -import java.io.IOException; - -import org.apache.bcel.Const; -import org.apache.bcel.ExceptionConst; -import org.apache.bcel.classfile.ConstantInvokeDynamic; -import org.apache.bcel.classfile.ConstantNameAndType; -import org.apache.bcel.classfile.ConstantPool; -import org.apache.bcel.util.ByteSequence; - -/** - * Class for INVOKEDYNAMIC. Not an instance of InvokeInstruction, since that class - * expects to be able to get the class of the method. Ignores the bootstrap - * mechanism entirely. - * - * @version $Id: InvokeInstruction.java 1152072 2011-07-29 01:54:05Z dbrosius $ - * @see - * - * The invokedynamic instruction in The Java Virtual Machine Specification - * @since 6.0 - */ -public class INVOKEDYNAMIC extends InvokeInstruction { - - /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. - */ - INVOKEDYNAMIC() { - } - - - public INVOKEDYNAMIC(final int index) { - super(Const.INVOKEDYNAMIC, index); - } - - - /** - * Dump instruction as byte code to stream out. - * @param out Output stream - */ - @Override - public void dump( final DataOutputStream out ) throws IOException { - out.writeByte(super.getOpcode()); - out.writeShort(super.getIndex()); - out.writeByte(0); - out.writeByte(0); - } - - - /** - * Read needed data (i.e., index) from file. - */ - @Override - protected void initFromFile( final ByteSequence bytes, final boolean wide ) throws IOException { - super.initFromFile(bytes, wide); - super.setLength(5); - bytes.readByte(); // Skip 0 byte - bytes.readByte(); // Skip 0 byte - } - - - /** - * @return mnemonic for instruction with symbolic references resolved - */ - @Override - public String toString( final ConstantPool cp ) { - return super.toString(cp); - } - - - @Override - public Class[] getExceptions() { - return ExceptionConst.createExceptions(ExceptionConst.EXCS.EXCS_INTERFACE_METHOD_RESOLUTION, - ExceptionConst.UNSATISFIED_LINK_ERROR, - ExceptionConst.ABSTRACT_METHOD_ERROR, - ExceptionConst.ILLEGAL_ACCESS_ERROR, - ExceptionConst.INCOMPATIBLE_CLASS_CHANGE_ERROR); - } - - - /** - * Call corresponding visitor method(s). The order is: - * Call visitor methods of implemented interfaces first, then - * call methods according to the class hierarchy in descending order, - * i.e., the most specific visitXXX() call comes last. - * - * @param v Visitor object - */ - @Override - public void accept( final Visitor v ) { - v.visitExceptionThrower(this); - v.visitTypedInstruction(this); - v.visitStackConsumer(this); - v.visitStackProducer(this); - v.visitLoadClass(this); - v.visitCPInstruction(this); - v.visitFieldOrMethod(this); - v.visitInvokeInstruction(this); - v.visitINVOKEDYNAMIC(this); - } - - /** - * Override the parent method because our classname is held elsewhere. - */ - @Override - public String getClassName( final ConstantPoolGen cpg ) { - final ConstantPool cp = cpg.getConstantPool(); - final ConstantInvokeDynamic cid = (ConstantInvokeDynamic) cp.getConstant(super.getIndex(), Const.CONSTANT_InvokeDynamic); - return ((ConstantNameAndType) cp.getConstant(cid.getNameAndTypeIndex())).getName(cp); - } - - - /** - * Since InvokeDynamic doesn't refer to a reference type, just return java.lang.Object, - * as that is the only type we can say for sure the reference will be. - * - * @param cpg - * the ConstantPoolGen used to create the instruction - * @return an ObjectType for java.lang.Object - * @since 6.1 - */ - @Override - public ReferenceType getReferenceType(final ConstantPoolGen cpg) { - return new ObjectType(Object.class.getName()); - } -} +/* + * 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. + * + */ +package org.apache.bcel.generic; + +import java.io.DataOutputStream; +import java.io.IOException; + +import org.apache.bcel.Const; +import org.apache.bcel.ExceptionConst; +import org.apache.bcel.classfile.ConstantInvokeDynamic; +import org.apache.bcel.classfile.ConstantNameAndType; +import org.apache.bcel.classfile.ConstantPool; +import org.apache.bcel.util.ByteSequence; + +/** + * Class for INVOKEDYNAMIC. Not an instance of InvokeInstruction, since that class + * expects to be able to get the class of the method. Ignores the bootstrap + * mechanism entirely. + * + * @version $Id: InvokeInstruction.java 1152072 2011-07-29 01:54:05Z dbrosius $ + * @see + * + * The invokedynamic instruction in The Java Virtual Machine Specification + * @since 6.0 + */ +public class INVOKEDYNAMIC extends InvokeInstruction { + + /** + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. + */ + INVOKEDYNAMIC() { + } + + + public INVOKEDYNAMIC(final int index) { + super(Const.INVOKEDYNAMIC, index); + } + + + /** + * Dump instruction as byte code to stream out. + * @param out Output stream + */ + @Override + public void dump( final DataOutputStream out ) throws IOException { + out.writeByte(super.getOpcode()); + out.writeShort(super.getIndex()); + out.writeByte(0); + out.writeByte(0); + } + + + /** + * Read needed data (i.e., index) from file. + */ + @Override + protected void initFromFile( final ByteSequence bytes, final boolean wide ) throws IOException { + super.initFromFile(bytes, wide); + super.setLength(5); + bytes.readByte(); // Skip 0 byte + bytes.readByte(); // Skip 0 byte + } + + + /** + * @return mnemonic for instruction with symbolic references resolved + */ + @Override + public String toString( final ConstantPool cp ) { + return super.toString(cp); + } + + + @Override + public Class[] getExceptions() { + return ExceptionConst.createExceptions(ExceptionConst.EXCS.EXCS_INTERFACE_METHOD_RESOLUTION, + ExceptionConst.UNSATISFIED_LINK_ERROR, + ExceptionConst.ABSTRACT_METHOD_ERROR, + ExceptionConst.ILLEGAL_ACCESS_ERROR, + ExceptionConst.INCOMPATIBLE_CLASS_CHANGE_ERROR); + } + + + /** + * Call corresponding visitor method(s). The order is: + * Call visitor methods of implemented interfaces first, then + * call methods according to the class hierarchy in descending order, + * i.e., the most specific visitXXX() call comes last. + * + * @param v Visitor object + */ + @Override + public void accept( final Visitor v ) { + v.visitExceptionThrower(this); + v.visitTypedInstruction(this); + v.visitStackConsumer(this); + v.visitStackProducer(this); + v.visitLoadClass(this); + v.visitCPInstruction(this); + v.visitFieldOrMethod(this); + v.visitInvokeInstruction(this); + v.visitINVOKEDYNAMIC(this); + } + + /** + * Override the parent method because our classname is held elsewhere. + */ + @Override + public String getClassName( final ConstantPoolGen cpg ) { + final ConstantPool cp = cpg.getConstantPool(); + final ConstantInvokeDynamic cid = (ConstantInvokeDynamic) cp.getConstant(super.getIndex(), Const.CONSTANT_InvokeDynamic); + return ((ConstantNameAndType) cp.getConstant(cid.getNameAndTypeIndex())).getName(cp); + } + + + /** + * Since InvokeDynamic doesn't refer to a reference type, just return java.lang.Object, + * as that is the only type we can say for sure the reference will be. + * + * @param cpg + * the ConstantPoolGen used to create the instruction + * @return an ObjectType for java.lang.Object + * @since 6.1 + */ + @Override + public ReferenceType getReferenceType(final ConstantPoolGen cpg) { + return new ObjectType(Object.class.getName()); + } +} diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/InvokeInstruction.java bcel-6.2/src/main/java/org/apache/bcel/generic/InvokeInstruction.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/InvokeInstruction.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/InvokeInstruction.java 2017-12-08 19:13:53.000000000 +0000 @@ -33,8 +33,8 @@ StackConsumer, StackProducer { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ InvokeInstruction() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/INVOKEINTERFACE.java bcel-6.2/src/main/java/org/apache/bcel/generic/INVOKEINTERFACE.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/INVOKEINTERFACE.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/INVOKEINTERFACE.java 2017-12-08 19:13:53.000000000 +0000 @@ -40,8 +40,8 @@ /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ INVOKEINTERFACE() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/INVOKESPECIAL.java bcel-6.2/src/main/java/org/apache/bcel/generic/INVOKESPECIAL.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/INVOKESPECIAL.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/INVOKESPECIAL.java 2017-12-08 19:13:53.000000000 +0000 @@ -37,8 +37,8 @@ public class INVOKESPECIAL extends InvokeInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ INVOKESPECIAL() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/INVOKESTATIC.java bcel-6.2/src/main/java/org/apache/bcel/generic/INVOKESTATIC.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/INVOKESTATIC.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/INVOKESTATIC.java 2017-12-08 19:13:53.000000000 +0000 @@ -36,8 +36,8 @@ public class INVOKESTATIC extends InvokeInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ INVOKESTATIC() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/INVOKEVIRTUAL.java bcel-6.2/src/main/java/org/apache/bcel/generic/INVOKEVIRTUAL.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/INVOKEVIRTUAL.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/INVOKEVIRTUAL.java 2017-12-08 19:13:53.000000000 +0000 @@ -36,8 +36,8 @@ public class INVOKEVIRTUAL extends InvokeInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ INVOKEVIRTUAL() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/ISTORE.java bcel-6.2/src/main/java/org/apache/bcel/generic/ISTORE.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/ISTORE.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/ISTORE.java 2017-12-08 19:13:53.000000000 +0000 @@ -26,8 +26,8 @@ public class ISTORE extends StoreInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ ISTORE() { super(org.apache.bcel.Const.ISTORE, org.apache.bcel.Const.ISTORE_0); diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/JsrInstruction.java bcel-6.2/src/main/java/org/apache/bcel/generic/JsrInstruction.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/JsrInstruction.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/JsrInstruction.java 2017-12-08 19:13:53.000000000 +0000 @@ -31,8 +31,8 @@ /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ JsrInstruction() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/JSR.java bcel-6.2/src/main/java/org/apache/bcel/generic/JSR.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/JSR.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/JSR.java 2017-12-08 19:13:53.000000000 +0000 @@ -28,8 +28,8 @@ public class JSR extends JsrInstruction implements VariableLengthInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ JSR() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/JSR_W.java bcel-6.2/src/main/java/org/apache/bcel/generic/JSR_W.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/JSR_W.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/JSR_W.java 2017-12-08 19:13:53.000000000 +0000 @@ -30,8 +30,8 @@ public class JSR_W extends JsrInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ JSR_W() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/LCONST.java bcel-6.2/src/main/java/org/apache/bcel/generic/LCONST.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/LCONST.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/LCONST.java 2017-12-08 19:13:53.000000000 +0000 @@ -30,8 +30,8 @@ /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ LCONST() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/LDC2_W.java bcel-6.2/src/main/java/org/apache/bcel/generic/LDC2_W.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/LDC2_W.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/LDC2_W.java 2017-12-08 19:13:53.000000000 +0000 @@ -27,8 +27,8 @@ public class LDC2_W extends CPInstruction implements PushInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ LDC2_W() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/LDC.java bcel-6.2/src/main/java/org/apache/bcel/generic/LDC.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/LDC.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/LDC.java 2017-12-08 19:13:53.000000000 +0000 @@ -33,8 +33,8 @@ public class LDC extends CPInstruction implements PushInstruction, ExceptionThrower { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ LDC() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/LDC_W.java bcel-6.2/src/main/java/org/apache/bcel/generic/LDC_W.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/LDC_W.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/LDC_W.java 2017-12-08 19:13:53.000000000 +0000 @@ -31,8 +31,8 @@ public class LDC_W extends LDC { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ LDC_W() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/LLOAD.java bcel-6.2/src/main/java/org/apache/bcel/generic/LLOAD.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/LLOAD.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/LLOAD.java 2017-12-08 19:13:53.000000000 +0000 @@ -26,8 +26,8 @@ public class LLOAD extends LoadInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ LLOAD() { super(org.apache.bcel.Const.LLOAD, org.apache.bcel.Const.LLOAD_0); diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/LoadInstruction.java bcel-6.2/src/main/java/org/apache/bcel/generic/LoadInstruction.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/LoadInstruction.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/LoadInstruction.java 2017-12-08 19:13:53.000000000 +0000 @@ -26,8 +26,8 @@ public abstract class LoadInstruction extends LocalVariableInstruction implements PushInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. * tag and length are defined in readInstruction and initFromFile, respectively. */ LoadInstruction(final short canon_tag, final short c_tag) { diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/LocalVariableGen.java bcel-6.2/src/main/java/org/apache/bcel/generic/LocalVariableGen.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/LocalVariableGen.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/LocalVariableGen.java 2017-12-08 19:13:53.000000000 +0000 @@ -38,6 +38,7 @@ private InstructionHandle start; private InstructionHandle end; private int orig_index; // never changes; used to match up with LocalVariableTypeTable entries + private boolean live_to_end; /** @@ -61,6 +62,7 @@ setStart(start); setEnd(end); this.orig_index = index; + this.live_to_end = end == null; } @@ -88,11 +90,11 @@ * This relies on that the instruction list has already been dumped to byte code or * or that the `setPositions' methods has been called for the instruction list. * - * Note that for local variables whose scope end at the last - * instruction of the method's code, the JVM specification is ambiguous: - * both a start_pc+length ending at the last instruction and - * start_pc+length ending at first index beyond the end of the code are - * valid. + * Note that due to the conversion from byte code offset to InstructionHandle, + * it is impossible to tell the difference between a live range that ends BEFORE + * the last insturction of the method or a live range that ends AFTER the last + * instruction of the method. Hence the live_to_end flag to differentiate + * between these two cases. * * @param cp constant pool */ @@ -102,7 +104,7 @@ if ((start != null) && (end != null)) { start_pc = start.getPosition(); length = end.getPosition() - start_pc; - if (end.getNext() == null) { + if ((end.getNext() == null) && live_to_end) { length += end.getInstruction().getLength(); } } @@ -128,6 +130,16 @@ } + public void setLiveToEnd( final boolean live_to_end) { + this.live_to_end = live_to_end; + } + + + public boolean getLiveToEnd() { + return live_to_end; + } + + @Override public void setName( final String name ) { this.name = name; diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/LocalVariableInstruction.java bcel-6.2/src/main/java/org/apache/bcel/generic/LocalVariableInstruction.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/LocalVariableInstruction.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/LocalVariableInstruction.java 2017-12-08 19:13:53.000000000 +0000 @@ -47,8 +47,8 @@ /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. * tag and length are defined in readInstruction and initFromFile, respectively. */ LocalVariableInstruction(final short canon_tag, final short c_tag) { @@ -59,8 +59,8 @@ /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Also used by IINC()! + * Empty constructor needed for Instruction.readInstruction. + * Also used by IINC()! */ LocalVariableInstruction() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/LOOKUPSWITCH.java bcel-6.2/src/main/java/org/apache/bcel/generic/LOOKUPSWITCH.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/LOOKUPSWITCH.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/LOOKUPSWITCH.java 2017-12-08 19:13:53.000000000 +0000 @@ -31,8 +31,8 @@ public class LOOKUPSWITCH extends Select { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ LOOKUPSWITCH() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/LSTORE.java bcel-6.2/src/main/java/org/apache/bcel/generic/LSTORE.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/LSTORE.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/LSTORE.java 2017-12-08 19:13:53.000000000 +0000 @@ -26,8 +26,8 @@ public class LSTORE extends StoreInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ LSTORE() { super(org.apache.bcel.Const.LSTORE, org.apache.bcel.Const.LSTORE_0); diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/MethodGen.java bcel-6.2/src/main/java/org/apache/bcel/generic/MethodGen.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/MethodGen.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/MethodGen.java 2017-12-08 19:13:53.000000000 +0000 @@ -130,10 +130,10 @@ setConstantPool(cp); final boolean abstract_ = isAbstract() || isNative(); InstructionHandle start = null; - InstructionHandle end = null; + final InstructionHandle end = null; if (!abstract_) { start = il.getStart(); - end = il.getEnd(); + // end == null => live to end of method /* Add local variables, namely the implicit `this' and the arguments */ if (!isStatic() && (class_name != null)) { // Instance method -> `this' is local var 0 @@ -617,13 +617,13 @@ */ public void addParameterAnnotationsAsAttribute(final ConstantPoolGen cp) { if (!hasParameterAnnotations) { - return; - } - final Attribute[] attrs = AnnotationEntryGen.getParameterAnnotationAttributes(cp,param_annotations); - if (attrs!=null) { - for (final Attribute attr : attrs) { - addAttribute(attr); + return; } + final Attribute[] attrs = AnnotationEntryGen.getParameterAnnotationAttributes(cp,param_annotations); + if (attrs != null) { + for (final Attribute attr : attrs) { + addAttribute(attr); + } } } @@ -720,14 +720,12 @@ removeLocalVariables(); for (final LocalVariable l : lv) { InstructionHandle start = il.findHandle(l.getStartPC()); - InstructionHandle end = il.findHandle(l.getStartPC() + l.getLength()); + final InstructionHandle end = il.findHandle(l.getStartPC() + l.getLength()); // Repair malformed handles if (null == start) { start = il.getStart(); } - if (null == end) { - end = il.getEnd(); - } + // end == null => live to end of method // Since we are recreating the LocalVaraible, we must // propagate the orig_index to new copy. addLocalVariable(l.getName(), Type.getType(l.getSignature()), l diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/MULTIANEWARRAY.java bcel-6.2/src/main/java/org/apache/bcel/generic/MULTIANEWARRAY.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/MULTIANEWARRAY.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/MULTIANEWARRAY.java 2017-12-08 19:13:53.000000000 +0000 @@ -37,8 +37,8 @@ /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ MULTIANEWARRAY() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/NEWARRAY.java bcel-6.2/src/main/java/org/apache/bcel/generic/NEWARRAY.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/NEWARRAY.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/NEWARRAY.java 2017-12-08 19:13:53.000000000 +0000 @@ -37,8 +37,8 @@ /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ NEWARRAY() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/NEW.java bcel-6.2/src/main/java/org/apache/bcel/generic/NEW.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/NEW.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/NEW.java 2017-12-08 19:13:53.000000000 +0000 @@ -29,8 +29,8 @@ ExceptionThrower, StackProducer { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ NEW() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/PUTFIELD.java bcel-6.2/src/main/java/org/apache/bcel/generic/PUTFIELD.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/PUTFIELD.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/PUTFIELD.java 2017-12-08 19:13:53.000000000 +0000 @@ -31,8 +31,8 @@ public class PUTFIELD extends FieldInstruction implements PopInstruction, ExceptionThrower { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ PUTFIELD() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/PUTSTATIC.java bcel-6.2/src/main/java/org/apache/bcel/generic/PUTSTATIC.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/PUTSTATIC.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/PUTSTATIC.java 2017-12-08 19:13:53.000000000 +0000 @@ -31,8 +31,8 @@ public class PUTSTATIC extends FieldInstruction implements ExceptionThrower, PopInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ PUTSTATIC() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/RET.java bcel-6.2/src/main/java/org/apache/bcel/generic/RET.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/RET.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/RET.java 2017-12-08 19:13:53.000000000 +0000 @@ -36,8 +36,8 @@ /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ RET() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/ReturnInstruction.java bcel-6.2/src/main/java/org/apache/bcel/generic/ReturnInstruction.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/ReturnInstruction.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/ReturnInstruction.java 2017-12-08 19:13:53.000000000 +0000 @@ -29,8 +29,8 @@ TypedInstruction, StackConsumer { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ ReturnInstruction() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/Select.java bcel-6.2/src/main/java/org/apache/bcel/generic/Select.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/Select.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/Select.java 2017-12-08 19:13:53.000000000 +0000 @@ -73,8 +73,8 @@ /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ Select() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/SIPUSH.java bcel-6.2/src/main/java/org/apache/bcel/generic/SIPUSH.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/SIPUSH.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/SIPUSH.java 2017-12-08 19:13:53.000000000 +0000 @@ -35,8 +35,8 @@ /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ SIPUSH() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/StackInstruction.java bcel-6.2/src/main/java/org/apache/bcel/generic/StackInstruction.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/StackInstruction.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/StackInstruction.java 2017-12-08 19:13:53.000000000 +0000 @@ -25,8 +25,8 @@ public abstract class StackInstruction extends Instruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ StackInstruction() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/StoreInstruction.java bcel-6.2/src/main/java/org/apache/bcel/generic/StoreInstruction.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/StoreInstruction.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/StoreInstruction.java 2017-12-08 19:13:53.000000000 +0000 @@ -26,8 +26,8 @@ public abstract class StoreInstruction extends LocalVariableInstruction implements PopInstruction { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. * tag and length are defined in readInstruction and initFromFile, respectively. */ StoreInstruction(final short canon_tag, final short c_tag) { diff -Nru bcel-6.1/src/main/java/org/apache/bcel/generic/TABLESWITCH.java bcel-6.2/src/main/java/org/apache/bcel/generic/TABLESWITCH.java --- bcel-6.1/src/main/java/org/apache/bcel/generic/TABLESWITCH.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/generic/TABLESWITCH.java 2017-12-08 19:13:53.000000000 +0000 @@ -31,8 +31,8 @@ public class TABLESWITCH extends Select { /** - * Empty constructor needed for the Class.newInstance() statement in - * Instruction.readInstruction(). Not to be used otherwise. + * Empty constructor needed for Instruction.readInstruction. + * Not to be used otherwise. */ TABLESWITCH() { } diff -Nru bcel-6.1/src/main/java/org/apache/bcel/verifier/statics/DOUBLE_Upper.java bcel-6.2/src/main/java/org/apache/bcel/verifier/statics/DOUBLE_Upper.java --- bcel-6.1/src/main/java/org/apache/bcel/verifier/statics/DOUBLE_Upper.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/verifier/statics/DOUBLE_Upper.java 2017-12-08 19:13:53.000000000 +0000 @@ -32,7 +32,7 @@ /** The constructor; this class must not be instantiated from the outside. */ private DOUBLE_Upper() { - super(Const.T_UNKNOWN, "Long_Upper"); + super(Const.T_UNKNOWN, "Double_Upper"); } /** Use this method to get the single instance of this class. */ diff -Nru bcel-6.1/src/main/java/org/apache/bcel/verifier/VerificationResult.java bcel-6.2/src/main/java/org/apache/bcel/verifier/VerificationResult.java --- bcel-6.1/src/main/java/org/apache/bcel/verifier/VerificationResult.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/main/java/org/apache/bcel/verifier/VerificationResult.java 2017-12-08 19:13:53.000000000 +0000 @@ -70,7 +70,7 @@ /** - * Returns one one the {@link #VERIFIED_OK}, {@link #VERIFIED_NOTYET}, + * Returns one of the {@link #VERIFIED_OK}, {@link #VERIFIED_NOTYET}, * {@link #VERIFIED_REJECTED} constants. */ public int getStatus() { diff -Nru bcel-6.1/src/site/xdoc/download_bcel.xml bcel-6.2/src/site/xdoc/download_bcel.xml --- bcel-6.1/src/site/xdoc/download_bcel.xml 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/site/xdoc/download_bcel.xml 2017-12-08 19:13:53.000000000 +0000 @@ -111,32 +111,32 @@

-
+
- - - + + + - - - + + +
bcel-6.1-bin.tar.gzmd5pgpbcel-6.2-bin.tar.gzmd5pgp
bcel-6.1-bin.zipmd5pgpbcel-6.2-bin.zipmd5pgp
- - - + + + - - - + + +
bcel-6.1-src.tar.gzmd5pgpbcel-6.2-src.tar.gzmd5pgp
bcel-6.1-src.zipmd5pgpbcel-6.2-src.zipmd5pgp
diff -Nru bcel-6.1/src/site/xdoc/issue-tracking.xml bcel-6.2/src/site/xdoc/issue-tracking.xml --- bcel-6.1/src/site/xdoc/issue-tracking.xml 1970-01-01 00:00:00.000000000 +0000 +++ bcel-6.2/src/site/xdoc/issue-tracking.xml 2017-12-08 19:13:53.000000000 +0000 @@ -0,0 +1,102 @@ + + + + + + Apache Commons BCEL Issue tracking + Apache Commons Documentation Team + + + +
+

+ Apache Commons BCEL uses ASF JIRA for tracking issues. + See the Apache Commons BCEL JIRA project page. +

+ +

+ To use JIRA you may need to create an account + (if you have previously created/updated Commons issues using Bugzilla an account will have been automatically + created and you can use the Forgot Password + page to get a new password). +

+ +

+ If you would like to report a bug, or raise an enhancement request with + Apache Commons BCEL please do the following: +

    +
  1. Search existing open bugs. + If you find your issue listed then please add a comment with your details.
  2. +
  3. Search the mailing list archive(s). + You may find your issue or idea has already been discussed.
  4. +
  5. Decide if your issue is a bug or an enhancement.
  6. +
  7. Submit either a bug report + or enhancement request.
  8. +
+

+ +

+ Please also remember these points: +

    +
  • the more information you provide, the better we can help you
  • +
  • test cases are vital, particularly for any proposed enhancements
  • +
  • the developers of Apache Commons BCEL are all unpaid volunteers
  • +
+

+ +

+ For more information on subversion and creating patches see the + Apache Contributors Guide. +

+ +

+ You may also find these links useful: +

+

+
+ +
diff -Nru bcel-6.1/src/site/xdoc/mail-lists.xml bcel-6.2/src/site/xdoc/mail-lists.xml --- bcel-6.1/src/site/xdoc/mail-lists.xml 1970-01-01 00:00:00.000000000 +0000 +++ bcel-6.2/src/site/xdoc/mail-lists.xml 2017-12-08 19:13:53.000000000 +0000 @@ -0,0 +1,205 @@ + + + + + + Apache Commons BCEL Mailing Lists + Apache Commons Documentation Team + + + +
+

+ Apache Commons BCEL shares mailing lists with all the other + Commons Components. + To make it easier for people to only read messages related to components they are interested in, + the convention in Commons is to prefix the subject line of messages with the component's name, + for example: +

    +
  • [bcel] Problem with the ...
  • +
+

+

+ Questions related to the usage of Apache Commons BCEL should be posted to the + User List. +
+ The Developer List + is for questions and discussion related to the development of Apache Commons BCEL. +
+ Please do not cross-post; developers are also subscribed to the user list. +
+ You must be subscribed to post to the mailing lists. Follow the Subscribe links below + to subscribe. +

+

+ Note: please don't send patches or attachments to any of the mailing lists. + Patches are best handled via the Issue Tracking system. + Otherwise, please upload the file to a public server and include the URL in the mail. +

+
+ +
+

+ Please prefix the subject line of any messages for Apache Commons BCEL + with [bcel] - thanks! +
+
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameSubscribeUnsubscribePostArchiveOther Archives
+ Commons User List +

+ Questions on using Apache Commons BCEL. +

+
SubscribeUnsubscribePostmail-archives.apache.orgmarkmail.org
+ www.mail-archive.com
+ news.gmane.org +
+ Commons Developer List +

+ Discussion of development of Apache Commons BCEL. +

+
SubscribeUnsubscribePostmail-archives.apache.orgmarkmail.org
+ www.mail-archive.com
+ news.gmane.org +
+ Commons Issues List +

+ Only for e-mails automatically generated by the issue tracking system. +

+
SubscribeUnsubscriberead onlymail-archives.apache.orgmarkmail.org
+ www.mail-archive.com +
+ Commons Commits List +

+ Only for e-mails automatically generated by the source control sytem. +

+
SubscribeUnsubscriberead onlymail-archives.apache.orgmarkmail.org
+ www.mail-archive.com +
+ +
+
+

+ Other mailing lists which you may find useful include: +

+ + + + + + + + + + + + + + + + + + +
NameSubscribeUnsubscribePostArchiveOther Archives
+ Apache Announce List +

+ General announcements of Apache project releases. +

+
SubscribeUnsubscriberead onlymail-archives.apache.orgmarkmail.org
+ old.nabble.com
+ www.mail-archive.com
+ news.gmane.org +
+ +
+ +
diff -Nru bcel-6.1/src/test/java/org/apache/bcel/data/PLSETestClass2.java bcel-6.2/src/test/java/org/apache/bcel/data/PLSETestClass2.java --- bcel-6.1/src/test/java/org/apache/bcel/data/PLSETestClass2.java 1970-01-01 00:00:00.000000000 +0000 +++ bcel-6.2/src/test/java/org/apache/bcel/data/PLSETestClass2.java 2017-12-08 19:13:53.000000000 +0000 @@ -0,0 +1,30 @@ +/* + * 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. + * + */ + +package org.apache.bcel.data; + +public class PLSETestClass2 +{ + public static void main(final String args[]) { + int t = 0; + + for (int i = 0; i < 100; i++) { + t += i; + } + } +} diff -Nru bcel-6.1/src/test/java/org/apache/bcel/generic/JDKGenericDumpTestCase.java bcel-6.2/src/test/java/org/apache/bcel/generic/JDKGenericDumpTestCase.java --- bcel-6.1/src/test/java/org/apache/bcel/generic/JDKGenericDumpTestCase.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/test/java/org/apache/bcel/generic/JDKGenericDumpTestCase.java 2017-12-08 19:13:53.000000000 +0000 @@ -45,17 +45,38 @@ import com.sun.jna.platform.win32.Advapi32Util; /** - * Test that the generic dump() methods work on the JDK classes Reads each class - * into an instruction list and then dumps the instructions. The output bytes - * should be the same as the input. + * Test that the generic dump() methods work on the JDK classes Reads each class into an instruction list and then dumps + * the instructions. The output bytes should be the same as the input. */ @RunWith(Parameterized.class) public class JDKGenericDumpTestCase { + private static final char[] hexArray = "0123456789ABCDEF".toCharArray(); + private static final String KEY_JDK = "SOFTWARE\\JavaSoft\\Java Development Kit"; + private static final String KEY_JDK_9 = "SOFTWARE\\JavaSoft\\JDK"; + private static final String KEY_JRE = "SOFTWARE\\JavaSoft\\Java Runtime Environment"; + private static final String KEY_JRE_9 = "SOFTWARE\\JavaSoft\\JRE"; + + private static void addAllJavaHomesOnWindows(final String keyJre, final Set javaHomes) { + javaHomes.addAll(findJavaHomesOnWindows(keyJre, Advapi32Util.registryGetKeys(HKEY_LOCAL_MACHINE, keyJre))); + } + + private static String bytesToHex(final byte[] bytes) { + final char[] hexChars = new char[bytes.length * 3]; + int i = 0; + for (final byte b : bytes) { + final int v = b & 0xFF; + hexChars[i++] = hexArray[v >>> 4]; + hexChars[i++] = hexArray[v & 0x0F]; + hexChars[i++] = ' '; + } + return new String(hexChars); + } + @Parameters(name = "{0}") public static Collection data() { return findJavaHomes(); @@ -71,20 +92,20 @@ } private static Set findJavaHomesOnWindows() { - Set javaHomes = new HashSet<>(); - final String[] jreKeys = Advapi32Util.registryGetKeys(HKEY_LOCAL_MACHINE, KEY_JRE); - javaHomes = findJavaHomesOnWindows(jreKeys); - final String[] jdkKeys = Advapi32Util.registryGetKeys(HKEY_LOCAL_MACHINE, KEY_JDK); - javaHomes.addAll(findJavaHomesOnWindows(jdkKeys)); + final Set javaHomes = new HashSet<>(); + addAllJavaHomesOnWindows(KEY_JRE, javaHomes); + addAllJavaHomesOnWindows(KEY_JRE_9, javaHomes); + addAllJavaHomesOnWindows(KEY_JDK, javaHomes); + addAllJavaHomesOnWindows(KEY_JDK_9, javaHomes); return javaHomes; } - private static Set findJavaHomesOnWindows(final String[] keys) { + private static Set findJavaHomesOnWindows(final String keyJavaHome, final String[] keys) { final Set javaHomes = new HashSet<>(keys.length); for (final String key : keys) { - if (Advapi32Util.registryKeyExists(HKEY_LOCAL_MACHINE, KEY_JRE + "\\" + key)) { - final String javaHome = Advapi32Util.registryGetStringValue(HKEY_LOCAL_MACHINE, KEY_JRE + "\\" + key, - "JavaHome"); + if (Advapi32Util.registryKeyExists(HKEY_LOCAL_MACHINE, keyJavaHome + "\\" + key)) { + final String javaHome = Advapi32Util.registryGetStringValue(HKEY_LOCAL_MACHINE, + keyJavaHome + "\\" + key, "JavaHome"); if (StringUtils.isNoneBlank(javaHome)) { if (new File(javaHome).exists()) { javaHomes.add(javaHome); @@ -95,41 +116,10 @@ return javaHomes; } - public JDKGenericDumpTestCase(final String javaHome) { - this.javaHome = javaHome; - } - private final String javaHome; - @Test - public void testJDKjars() throws Exception { - final File[] jars = listJDKjars(); - if (jars != null) { - for (final File file : jars) { - testJar(file); - } - } - } - - private void testJar(final File file) throws Exception { - System.out.println(file); - try (JarFile jar = new JarFile(file)) { - final Enumeration en = jar.entries(); - while (en.hasMoreElements()) { - final JarEntry e = en.nextElement(); - final String name = e.getName(); - if (name.endsWith(".class")) { - // System.out.println("- " + name); - try (InputStream in = jar.getInputStream(e)) { - final ClassParser parser = new ClassParser(in, name); - final JavaClass jc = parser.parse(); - for (final Method m : jc.getMethods()) { - compare(name, m); - } - } - } - } - } + public JDKGenericDumpTestCase(final String javaHome) { + this.javaHome = javaHome; } private void compare(final String name, final Method m) { @@ -164,17 +154,34 @@ }); } - private static final char[] hexArray = "0123456789ABCDEF".toCharArray(); + private void testJar(final File file) throws Exception { + System.out.println(file); + try (JarFile jar = new JarFile(file)) { + final Enumeration en = jar.entries(); + while (en.hasMoreElements()) { + final JarEntry e = en.nextElement(); + final String name = e.getName(); + if (name.endsWith(".class")) { + // System.out.println("- " + name); + try (InputStream in = jar.getInputStream(e)) { + final ClassParser parser = new ClassParser(in, name); + final JavaClass jc = parser.parse(); + for (final Method m : jc.getMethods()) { + compare(name, m); + } + } + } + } + } + } - private static String bytesToHex(final byte[] bytes) { - final char[] hexChars = new char[bytes.length * 3]; - int i = 0; - for (final byte b : bytes) { - final int v = b & 0xFF; - hexChars[i++] = hexArray[v >>> 4]; - hexChars[i++] = hexArray[v & 0x0F]; - hexChars[i++] = ' '; + @Test + public void testJDKjars() throws Exception { + final File[] jars = listJDKjars(); + if (jars != null) { + for (final File file : jars) { + testJar(file); + } } - return new String(hexChars); } } diff -Nru bcel-6.1/src/test/java/org/apache/bcel/PLSETestCase.java bcel-6.2/src/test/java/org/apache/bcel/PLSETestCase.java --- bcel-6.1/src/test/java/org/apache/bcel/PLSETestCase.java 2017-09-18 08:48:36.000000000 +0000 +++ bcel-6.2/src/test/java/org/apache/bcel/PLSETestCase.java 2017-12-08 19:13:53.000000000 +0000 @@ -19,6 +19,7 @@ package org.apache.bcel; import org.apache.bcel.classfile.JavaClass; +import org.apache.bcel.classfile.LocalVariable; import org.apache.bcel.classfile.LocalVariableTable; import org.apache.bcel.classfile.Method; import org.apache.bcel.generic.ClassGen; @@ -86,4 +87,23 @@ final String cn = ii.getClassName(pool); assertEquals("[Lorg.apache.bcel.data.PLSETestEnum;", cn); } + + /** + * BCEL-295: + */ + public void testB295() throws Exception + { + final JavaClass clazz = getTestClass(PACKAGE_BASE_NAME+".data.PLSETestClass2"); + final ClassGen cg = new ClassGen(clazz); + final ConstantPoolGen pool = cg.getConstantPool(); + final Method m = cg.getMethodAt(1); // 'main' + final LocalVariableTable lvt = m.getLocalVariableTable(); + final LocalVariable lv = lvt.getLocalVariable(2, 4); // 'i' + //System.out.println(lv); + final MethodGen mg = new MethodGen(m, cg.getClassName(), pool); + final LocalVariableTable new_lvt = mg.getLocalVariableTable(mg.getConstantPool()); + final LocalVariable new_lv = new_lvt.getLocalVariable(2, 4); // 'i' + //System.out.println(new_lv); + assertEquals("live range length", lv.getLength(), new_lv.getLength()); + } }