Skip to content

Builder: skip java.* classes in the native interface scan - #6075

Merged
shai-almog merged 1 commit into
masterfrom
builder-skip-java-native-scan
Oct 22, 2026
Merged

shai-almog merged 1 commit into
masterfrom
builder-skip-java-native-scan

Conversation

@shai-almog

Copy link
Copy Markdown
Collaborator

The native interface scan loaded every class in the app output, including the app's own java.* classes. The JVM refuses to define those (SecurityException: Prohibited package name), so each one logged a full stack trace. A native interface can never live in java.*, so they are now skipped before loading.

🤖 Generated with Claude Code

The JVM refuses to define classes in java.* packages, so every app-side
java.* class logged a SecurityException stack trace during the scan.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@shai-almog
shai-almog merged commit d172239 into master Oct 22, 2026
29 of 51 checks passed
@shai-almog
shai-almog deleted the builder-skip-java-native-scan branch October 22, 2026 12:23
@github-actions

Copy link
Copy Markdown
Contributor

Flutter vs Codename One

Same application, built both ways: Flutter's AOT compile of the gallery, and the identical Dart source transpiled to Java on Codename One. Lower is better for every metric, so a ratio above 1.00x means Codename One is ahead by that factor.

javascript

9 interleaved rounds; host load 2.3, 1.43, 0.62

Metric Codename One Flutter Ratio Winner
Installed size 103.9 MB 122.5 MB 1.18x Codename One
Executable code 12.8 MB 25.2 MB 1.96x Codename One
Download size (zipped) 76.3 MB 84.1 MB 1.10x Codename One
Cold start to first frame on screen -- -- -- not measured
Memory at rest -- -- -- not measured

Compute -- the VM workloads (vm/benchmarks), run inside each app; time is the best of the app's own repetitions, higher ratio means Codename One is faster.

Workload Codename One Flutter Ratio
intArithmetic 646 ms wrong result Flutter: wrong result
longArithmetic 5045 ms did not run Flutter: did not run
mathTranscendental 564 ms did not run Flutter: did not run
arraySequential 234 ms 82 ms 0.35x
arrayRandom 1008 ms wrong result Flutter: wrong result
objectAllocation 38 ms 27 ms 0.71x
valueEscape 154 ms 7 ms 0.04x
hashMapChurn 1116 ms 244 ms 0.22x
stringBuilding 520 ms 108 ms 0.21x
recursion 508 ms 488 ms 0.96x
quicksortBench 407 ms wrong result Flutter: wrong result
Geometric mean 0.28x

Gate: NOT JUDGED -- flutter-baseline: linux gallery/code_bytes is rebaselined from the same value by more than one pull request (pr/6032.json, pr/6059.json): two changes moved the same benchmark without seeing each other. Re-measure on top of both and keep one rebaseline.; BEHIND FLUTTER on Compute (geomean of the VM workloads) (reported, not gated: a loss to Flutter on the web is currently accepted).

the JavaScript adapter needs a Chrome DevTools driver; sizes are reported and timings are not
This platform's adapter has not been exercised end to end before; treat the first published run as the thing under review.

Codename One wins 3 of 3 measured metrics across 1 platform(s).

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