Byte Code Engineering Library

Edit Package bcel
http://commons.apache.org/proper/commons-bcel/

The Byte Code Engineering Library is intended to give users a
convenient way to analyze, create, and manipulate (binary) Java class
files (those ending with .class). Classes are represented by objects
that contain all the symbolic information of the given class: methods,
fields, and byte code instructions, in particular.

Such objects can be read from an existing file, transformed by a
program (such as a class loader at runtime), and dumped to a file
again. An even more interesting application is the creation of classes
from scratch at runtime. The Byte Code Engineering Library (BCEL) may
also be useful if you want to learn about the Java Virtual Machine
(JVM) and the format of Java .class files.

BCEL is already being used successfully in several projects, such as
compilers, optimizers, obfuscators, code generators, and analysis
tools.

It contains a byte code verifier named JustIce, which usually gives you
much better information about what is wrong with your code than the
standard JVM message.

Refresh
Refresh
Source Files
Filename Size Changed
bcel-6.8.0-src.tar.gz 0001064680 1.02 MB
bcel-build.xml 0000006992 6.83 KB
bcel.changes 0000011071 10.8 KB
bcel.spec 0000003195 3.12 KB
Revision 53 (latest revision is 54)
Gus Kenion's avatar Gus Kenion (gkenion) accepted request 1134732 from Anton Shvetz's avatar Anton Shvetz (urbic) (revision 53)
- Update to version 6.8.0
  * 6.8.0 (2023-12-08) Maintenance and bug fix release.
    + New features:
      ~ Add and use InvalidMethodSignatureException extending
        ClassFormatException.
      ~ Increase code coverage in Class2HTMLTestCase with new test
        input Java4Example #186.
      ~ Add verifier tests on some opcodes #180.
      ~ Added signature test cases for class/method, and bad
        signatures #182.
      ~ Add Const.MAJOR_20.
      ~ Add Const.MINOR_20.
      ~ Add Const.MAJOR_21.
      ~ Add Const.MINOR_21.
      ~ [Bcelifier] stackmap support to pass JDK verifier #177.
      ~ Fix SpotBugs [ERROR] Class org.apache.bcel.util.ClassVector
        defines non-transient non-serializable instance field vec
        [org.apache.bcel.util.ClassVector] In ClassVector.java
        SE_BAD_FIELD.
      ~ Fix SpotBugs [ERROR] Switch statement found in
        org.apache.bcel.util.BCELFactory.visitAllocationInstruction(AllocationInstruction)
        where one case falls through to the next case
        [org.apache.bcel.util.BCELFactory,
        org.apache.bcel.util.BCELFactory] At
        BCELFactory.java:[lines 188-191]Another occurrence at
        BCELFactory.java:[lines 192-196] SF_SWITCH_FALLTHROUGH.
    + Fixed bugs:
      ~ When parsing an class with an invalid constant reference,
        ensure ClassParser.parse() throws ClassFormatException, not
        NullPointerException.
      ~ Ensure that references to a constant pool entry with index
        zero trigger a ClassFormatException, not a
        NullPointerException.
      ~ Ensure that references to the unused constant pool entry
        after a long/double entry triggers a ClassFormatException,
        not a NullPointerException.
      ~ Test and coverage of InstructionFactory #190.
      ~ Verifier: test and coverage for SWAP instruction #188.
      ~ Exception parsing Kotlin class with 'fun `method name with
        () in it`()' #205.
      ~ Fix null pointers in AnnotationEntry #213.
      ~ Field not found, search field in both super class and
        implemented interfaces (5x duplicated code to find field by
        name and type is refactored to a new method and now
        supports package-private) #181.
      ~ BCEL-366: Use alternative name for broken classes under
        test #220.
      ~ BCEL-367: Fixes java.lang.IndexOutOfBoundsException for
        ATHROW on empty stack #223.
      ~ BCEL-368: Fixes java.lang.StackOverflowError in
        Select#toString(boolean) #229.
      ~ Fix for type.getType(...) use on non-signature type names
        #221.
      ~ Fix EmptyVisitorTestCase on Java 21.
    + Changes:
      ~ Bump commons-parent from 54 to 65 #189, #198, #222.
      ~ Bump jna.version from 5.12.1 to 5.13.0 #203.
      ~ Bump kotlin-stdlib from 1.8.10 to 1.9.21 #217, #219, #227,
        #231, #235, #245, #247.
      ~ Bump commons-io from 2.11.0 to 2.15.1.
      ~ Bump commons-lang3 from 3.12.0 to 3.14.0.
      ~ Bump org.codehaus.mojo:exec-maven-plugin from 3.1.0 to
        3.1.1 #246.
Comments 0
openSUSE Build Service is sponsored by