Skip to content

fix: harden CheerpJ class transforms - #94

Merged
summerofstart merged 3 commits into
developfrom
fix/web-class-transform-errors
Aug 7, 2026
Merged

fix: harden CheerpJ class transforms#94
summerofstart merged 3 commits into
developfrom
fix/web-class-transform-errors

Conversation

@Summer110622

Copy link
Copy Markdown
Collaborator

Summary

  • run web-side ASM transforms sequentially instead of through ForkJoinPool
  • isolate runtime/ASM failures to the individual class instead of failing the entire JAR
  • preserve the original bytecode for classes that cannot be transformed
  • report unchanged classes, exception types, and messages in the web UI and CSV report
  • keep successful/partial output JARs downloadable

Why

The browser progressed past the previous TypeNotPresentException fix but then surfaced java.lang.ArrayIndexOutOfBoundsException while patching. The exception originates inside the Java transform path (app.js only receives it at the await site). CheerpJ does not need desktop-style parallel ASM processing, and one problematic class should not invalidate the entire plugin conversion.

The contentscript.js MaxListeners/ObjectMultiplex warnings are injected browser-extension content-script messages and are independent of pasta.

Behavior

If a class transform throws a RuntimeException or LinkageError, pasta now copies that class unchanged, continues the rest of the JAR, and marks the result partial with the exact class and error in the report.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@summerofstart
summerofstart merged commit 2b3520b into develop Aug 7, 2026
3 of 5 checks passed
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.

2 participants