keeps/commons-ip

If the top-level structural division <div> element’s @LABEL is missing, a NullPointerException is thrown.

ThomasEdvardsen opened this issue · 1 comments

Using cli-2.4.0 i get a NullPointerException when trying to validate a package with missing top-level structural division

element’s @Label.

NullPointerException thrown:

<structMap ID="uuid-6ab52b1d-0492-4690-b895-a6a3f8bc4f7d" TYPE="PHYSICAL" LABEL="CSIP">
        <div ID="uuid-fd713066-1104-4c46-9cff-113cff1ef6d3">

Validation is done:

<structMap ID="uuid-6ab52b1d-0492-4690-b895-a6a3f8bc4f7d" TYPE="PHYSICAL" LABEL="CSIP">
        <div ID="uuid-fd713066-1104-4c46-9cff-113cff1ef6d3" LABEL="abcde123">

Stacktrace:

2023-08-15 15:01:36,894 [main] INFO  o.r.c.v.o.ProgressValidationLoggerObserver - Start validation of: CSIP86
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because the return value of "org.roda_project.commons_ip2.mets_v1_12.beans.DivType.getLABEL()" is null
	at org.roda_project.commons_ip2.validator.component.structuralMapComponent.StructuralMapComponentValidator.validateCSIP86(StructuralMapComponentValidator.java:615)
	at org.roda_project.commons_ip2.validator.component.structuralMapComponent.StructuralMapComponentValidator.validate(StructuralMapComponentValidator.java:92)
	at org.roda_project.commons_ip2.validator.EARKSIPValidator.validateComponents(EARKSIPValidator.java:183)
	at org.roda_project.commons_ip2.validator.EARKSIPValidator.validateSubMets(EARKSIPValidator.java:208)
	at org.roda_project.commons_ip2.validator.EARKSIPValidator.validate(EARKSIPValidator.java:157)
	at org.roda_project.commons_ip2.validator.CLI.CLIValidator.validate(CLIValidator.java:213)
	at org.roda_project.commons_ip2.validator.CLI.CLIValidator.start(CLIValidator.java:157)
	at org.roda_project.commons_ip2.validator.CLI.Main.main(Main.java:30)

done at a914e2f