SBOM: fix issue with unresolved artifacts and empty "components" #688
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.
This PR fixes two issues:
ArtifactResolutionException, causing the SBOM generation to fail. This can happen for an artifact that cannot be located locally or on maven central. An example of such an artifact:com.example:demo:jar:sources:0.0.1-SNAPSHOT. The fix is catch theArtifactResolutionExceptionand returnOptional.empty()fromresolvePackageNamesFromArtifact. Such components will not be pruned by Native Image and will be included undercomponents.metadata/componentand thecomponentslist will be empty. Previously we incorrectly threw an exception for such cases. The fix is to simply return from theaugmentSBOMmethod instead of throwing the exception.I also added a fallback mechanism: if the
SBOMGeneratorfor some reason fails for users that didn't explicitly opt-in to using anaugmentedSBOM, we absorb the failure and proceed with a non-augmented SBOM.