diff --git a/src/main/java/org/spdx/jacksonstore/MultiFormatStore.java b/src/main/java/org/spdx/jacksonstore/MultiFormatStore.java index 0d8bce6..45c26f4 100644 --- a/src/main/java/org/spdx/jacksonstore/MultiFormatStore.java +++ b/src/main/java/org/spdx/jacksonstore/MultiFormatStore.java @@ -181,6 +181,14 @@ public synchronized void serialize(OutputStream stream, @Nullable CoreModelObjec JacksonSerializer serializer = new JacksonSerializer(outputMapper, format, verbose, this); JsonNode output; if (Objects.nonNull(modelObject)) { + if (modelObject.getSpecVersion().compareTo("3.0") >= 0) { + logger.error("Attempting to serialize an SPDX Spec version 3 model object"); + throw new InvalidSPDXAnalysisException("Attempting to serialize an SPDX Spec version 3 model object"); + } + if (!modelObject.getObjectUri().contains("#")) { + logger.error("SPDX spec version 2 model object does not contain a namespace prefix. Missing '#' in model URI"); + throw new InvalidSPDXAnalysisException("SPDX spec version 2 model object does not contain a namespace prefix. Missing '#' in model URI"); + } output = serializer.docToJsonNode(modelObject.getObjectUri().substring(0, modelObject.getObjectUri().indexOf('#'))); } else { List allDocuments = getAllItems(null, SpdxConstantsCompatV2.CLASS_SPDX_DOCUMENT)