CycloneDX / CycloneDX/cyclonedx-core-java
Parsing ISO 8601 compliant metadata.timestamp returns null in bom
- Vorherrschende Sprache
- Java
- Sterne
- 120
- Forks
- 90
- Ø Merge
- 12 Std. 43 Min.
- Gemergte PRs (30 T.)
- 18
Beschreibung
Parsing a bom with ISO 8601 compliant available metadata.timestamp using a version > 9.1.0 returns a bom object with value null
for metadata.timestamp.
Code to reproduce the behaviour (or run the test in BomParserTest in attached TestSbomImport):
```
import org.cyclonedx.model.Bom;
import org.cyclonedx.parsers.JsonParser;
import org.junit.jupiter.api.Test;
import java.io.File;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
public class BomParserTest {
@Test
void manTest() {
try {
String bomContent = new String(Files.readAllBytes(new File("src/test/resources/bom.json").toPath()));
Bom b = new JsonParser().parse(bomContent.getBytes(StandardCharsets.UTF_8));
// works with 9.1.0 but not with later versions
assertNotNull(b.getMetadata().getTimestamp());
}
catch (Exception e) {
assertNull(e);
}
}
}
```
[TestSbomImport.zip](https://github.com/user-attachments/files/21527027/TestSbomImport.zip)
Beitragsleitfaden
Rechercherichtung
Beginne mit org.cyclonedx.parsers.JsonParser und der Reproduktion BomParserTest unter Verwendung von src/test/resources/bom.json aus dem angehängten TestSbomImport. Vergleiche das Parsing-Verhalten nach 9.1.0 und verifiziere, dass ein ISO-8601-metadata.timestamp einen nicht-null Bom-Metadatenzeitstempel erzeugt; lasse den Regressionstest weiterhin erfolgreich durchlaufen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java
- Bereich
- data
- Issue-Typ
- Bug
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Aktivitätsstatus
- Aktiv
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 72/100