fix: ship org.objectweb.asm bundles to satisfy Jacoco 0.8.14 (#1866)#1872
Merged
Conversation
The plugin and bundled Jacoco 0.8.14 require org.objectweb.asm [9.9.0,9.10.0), but the Eclipse platform/JDT-LS provided by vscode-java only ships asm 9.8.0. Since #1798 bumped Jacoco to 0.8.14 (asm 9.9) the asm bundle was never added to the copy allow-list in buildJdtlsExt.js, so it was never shipped in server/ nor registered in javaExtensions. At runtime this leaves com.microsoft.java.test.plugin and org.jacoco.core unresolved (BundleException: Unresolved requirement: org.objectweb.asm [9.9.0,9.10.0)), so the test plugin fails to load and no test UI appears. Add the org.objectweb.asm prefix to bundleList so asm, asm.commons and asm.tree 9.9.x are shipped with the extension and the requirement is satisfied independently of the platform-provided asm version. Co-authored-by: Copilot <[email protected]>
There was a problem hiding this comment.
Pull request overview
This PR addresses an end-user runtime OSGi resolution failure after upgrading JaCoCo to 0.8.14 by ensuring the required org.objectweb.asm bundles are shipped with the extension (rather than relying on the Eclipse/JDT-LS platform’s bundled ASM version).
Changes:
- Extend
scripts/buildJdtlsExt.jsbundle allow-list to copy ASM bundles intoserver/during the build. - Update
package.jsoncontributes.javaExtensionsto include the shipped ASM jars (asm,asm.commons,asm.tree).
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| scripts/buildJdtlsExt.js | Adds ASM to the build allow-list so required bundles are copied into server/ and included in regenerated javaExtensions. |
| package.json | Registers the newly shipped ASM jars as contributes.javaExtensions so they’re available at runtime. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Address review feedback: bundleList prefixes are matched with startsWith, so the bare 'org.objectweb.asm' prefix could also match unrelated bundles like org.objectweb.asm.source_*. List the three bundles Jacoco 0.8.14 actually requires (asm, asm.commons, asm.tree) explicitly with the underscore delimiter, consistent with the other entries. Verified this is the complete closure: asm.commons/asm.tree import only asm, asm.tree and asm.signature (the latter is exported by the base asm bundle); nothing imports asm.analysis. Co-authored-by: Copilot <[email protected]>
chagong
approved these changes
Jun 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #1803
Fixes #1866
Problem
Issue #1866 (CherryDT's follow-up): after upgrading both
vscode-javaandvscode-java-testto pre-release, the test plugin fails to load with:No test UI appears.
Root cause
0.8.12 -> 0.8.14and the asm requirement[9.8.0,9.9.0) -> [9.9.0,9.10.0)inMANIFEST.MF.vscode-javaonly shipsorg.objectweb.asm9.8.0.scripts/buildJdtlsExt.jshas abundleListallow-list that controls which bundles get copied intoserver/and registered ascontributes.javaExtensions. It containsorg.jacoco.core_but no asm, so asm 9.9 was never shipped with the extension.Before #1798 the requirement
[9.8.0,9.9.0)matched the platform's 9.8.0, so asm never needed to be shipped.Fix
Add the
org.objectweb.asmprefix tobundleList. This shipsorg.objectweb.asm,org.objectweb.asm.commonsandorg.objectweb.asm.tree(9.9.1) with the extension ΓÇö the broad prefix is required because Jacoco 0.8.14 also importsasm.commons/asm.tree. The asm requirement is now satisfied independently of the platform-provided asm version.package.jsonjavaExtensionsis regenerated by the build to include the three asm jars.Verification
node scripts/buildJdtlsExt.jssucceeds;server/now containsorg.objectweb.asm_9.9.1.jar,org.objectweb.asm.commons_9.9.1.jar,org.objectweb.asm.tree_9.9.1.jar.package.jsonupdated accordingly.Fixes the
BundleExceptionreported in #1866 and redhat-developer/vscode-java#4396.