Skip to content

Update ECJ versions and generate the SWAP fixture with BCEL - #537

Merged
garydgregory merged 1 commit into
apache:masterfrom
garydgregory:test_ecj_versions
Oct 18, 2026
Merged

garydgregory merged 1 commit into
apache:masterfrom
garydgregory:test_ecj_versions

Conversation

@garydgregory

Copy link
Copy Markdown
Member

Update ECJ versions and generate the SWAP fixture with BCEL.

Default ecj.version to 3.46.100. Add property-only Maven profiles selecting 3.33.0 on Java 11 and below and 3.26.0 on Java 8 and below, with the Java 8 profile taking precedence when both activate.

Replace Java 1.4 compilation in VerifierMainTest with BCEL-generated bytecode containing a SWAP instruction. Current ECJ releases reject the old source level, leaving the expected class file missing. Remove the unused SWAP.java fixture.

Run the verifier subprocess with the current Java runtime and prepend the temporary fixture directory to its classpath. Retain assertions for successful verification and exactly one SWAP instruction, and dispose of instruction lists after use.

  • Read the contribution guidelines for this project.
  • Read the ASF Generative Tooling Guidance if you use Artificial Intelligence (AI).
  • I used AI to create the new test: GTP 6.1 Sol Medium.
  • Run a successful build using the default Maven goal with mvn; that's mvn on the command line by itself.
  • Write unit tests that match behavioral changes, where the tests fail if the changes to the runtime are not applied. This may not always be possible, but it is a best practice.
  • Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
  • Each commit in the pull request should have a meaningful subject line and body. Note that a maintainer may squash commits during the merge process.

Update ECJ versions and generate the SWAP fixture with BCEL

Default ecj.version to 3.46.100. Add property-only Maven profiles
selecting 3.33.0 on Java 11 and below and 3.26.0 on Java 8 and below,
with the Java 8 profile taking precedence when both activate.

Replace Java 1.4 compilation in VerifierMainTest with BCEL-generated
bytecode containing a SWAP instruction. Current ECJ releases reject
the old source level, leaving the expected class file missing.
Remove the unused SWAP.java fixture.

Run the verifier subprocess with the current Java runtime and prepend
the temporary fixture directory to its classpath. Retain assertions
for successful verification and exactly one SWAP instruction, and
dispose of instruction lists after use.
@garydgregory
garydgregory merged commit 3221444 into apache:master Oct 18, 2026
38 of 41 checks passed
@garydgregory
garydgregory deleted the test_ecj_versions branch October 18, 2026 12:55
garydgregory added a commit that referenced this pull request Oct 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant