Summary
The btrace-dtrace shadowJar include filter still matches the pre-migration org/openjdk/btrace/dtrace/** path, but the classes are now io.btrace.dtrace.*. The filter matches nothing, so the shaded jar contains zero of its own classes. The build stays green, and the empty jar ships.
Surfaced during the pre-release compiler/boot/dtrace review.
Ground truth (verified)
btrace-dtrace/build.gradle:59 — include 'org/openjdk/btrace/dtrace/**/*'; actual package is io/btrace/dtrace/.
Masked because nothing currently consumes the dtrace jar: there is no project(':btrace-dtrace') dependency anywhere, and the distribution copies only the Solaris .so. The Java side is effectively orphaned.
Fix
- Update the include filter to
io/btrace/dtrace/**/*, and/or
- Decide whether
btrace-dtrace's Java side is still in scope for 3.0 at all. If it is dead code, remove it (and the empty jar) rather than shipping it; if it is intended to ship, wire a real consumer and add a smoke check that the jar is non-empty.
Note: the dtrace build also references the removed javah tool and compiles a mock API into main — worth resolving as part of the same decision.
Severity: MAJOR (ships a broken/empty artifact) but low blast radius (orphaned). Owner: build team.
Summary
The
btrace-dtraceshadowJarincludefilter still matches the pre-migrationorg/openjdk/btrace/dtrace/**path, but the classes are nowio.btrace.dtrace.*. The filter matches nothing, so the shaded jar contains zero of its own classes. The build stays green, and the empty jar ships.Surfaced during the pre-release compiler/boot/dtrace review.
Ground truth (verified)
btrace-dtrace/build.gradle:59—include 'org/openjdk/btrace/dtrace/**/*'; actual package isio/btrace/dtrace/.Masked because nothing currently consumes the dtrace jar: there is no
project(':btrace-dtrace')dependency anywhere, and the distribution copies only the Solaris.so. The Java side is effectively orphaned.Fix
io/btrace/dtrace/**/*, and/orbtrace-dtrace's Java side is still in scope for 3.0 at all. If it is dead code, remove it (and the empty jar) rather than shipping it; if it is intended to ship, wire a real consumer and add a smoke check that the jar is non-empty.Note: the dtrace build also references the removed
javahtool and compiles a mock API intomain— worth resolving as part of the same decision.Severity: MAJOR (ships a broken/empty artifact) but low blast radius (orphaned). Owner: build team.