If a SPDX 2.3 tag/value file contains PrimaryPackagePurpose: OPERATING-SYSTEM then attempts to convert the file, or to deserialize it using SpdxToolsHelper.deserializeDocument will fail with org.spdx.tag.InvalidSpdxTagFileException: Unknown Package Purpose: OPERATING-SYSTEM
This value is perfectly valid according to the spec:
https://spdx.github.io/spdx-spec/v2.3/package-information/#724-primary-package-purpose-field
The problem seems to be that the enum member is named OPERATING_SYSTEM (note the underscore)