Skip to content

Commit

Permalink
always set the package ID for java packages (#1493)
Browse files Browse the repository at this point in the history
Signed-off-by: Alex Goodman <[email protected]>

Signed-off-by: Alex Goodman <[email protected]>
  • Loading branch information
wagoodman authored Jan 20, 2023
1 parent 99f55f6 commit 972e4cd
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 2 deletions.
6 changes: 4 additions & 2 deletions syft/pkg/cataloger/java/archive_parser.go
Original file line number Diff line number Diff line change
Expand Up @@ -133,12 +133,14 @@ func (j *archiveParser) parse() ([]pkg.Package, []artifact.Relationship, error)
// add pURLs to all packages found
// note: since package information may change after initial creation when parsing multiple locations within the
// jar, we wait until the conclusion of the parsing process before synthesizing pURLs.
for i, p := range pkgs {
for i := range pkgs {
p := &pkgs[i]
if m, ok := p.Metadata.(pkg.JavaMetadata); ok {
pkgs[i].PURL = packageURL(p.Name, p.Version, m)
p.PURL = packageURL(p.Name, p.Version, m)
} else {
log.WithFields("package", p.String()).Warn("unable to extract java metadata to generate purl")
}
p.SetID()
}

return pkgs, relationships, nil
Expand Down
4 changes: 4 additions & 0 deletions syft/pkg/cataloger/java/archive_parser_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -277,6 +277,10 @@ func TestParseJar(t *testing.T) {
}

for _, a := range actual {
if a.ID() == "" {
t.Fatalf("empty package ID: %+v", a)
}

e, ok := test.expected[a.Name]
if !ok {
t.Errorf("entry not found: %s", a.Name)
Expand Down

0 comments on commit 972e4cd

Please sign in to comment.