From 5764cacfc8a6f3fbf588f04d0d351ccc6c66e9d1 Mon Sep 17 00:00:00 2001 From: Matthias Ronge Date: Wed, 21 Feb 2024 10:45:04 +0100 Subject: [PATCH] Prevent saving a broken METS file (#5883) Throw an illegal argument exception if either side of the pair is null --- .../org/kitodo/dataformat/access/MetsXmlElementAccess.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Kitodo-DataFormat/src/main/java/org/kitodo/dataformat/access/MetsXmlElementAccess.java b/Kitodo-DataFormat/src/main/java/org/kitodo/dataformat/access/MetsXmlElementAccess.java index dc4748b46bd..f27a6fb5642 100644 --- a/Kitodo-DataFormat/src/main/java/org/kitodo/dataformat/access/MetsXmlElementAccess.java +++ b/Kitodo-DataFormat/src/main/java/org/kitodo/dataformat/access/MetsXmlElementAccess.java @@ -428,6 +428,12 @@ private DivType generatePhysicalStructMapRecursive(PhysicalDivision physicalDivi private StructLink createStructLink(LinkedList> smLinkData) { StructLink structLink = new StructLink(); structLink.getSmLinkOrSmLinkGrp().addAll(smLinkData.parallelStream().map(entry -> { + if (Objects.isNull(entry.getLeft())) { + throw new IllegalArgumentException("smLinkData.entry[?].left must not be null"); + } + if (Objects.isNull(entry.getRight())) { + throw new IllegalArgumentException("smLinkData.entry[?].right must not be null"); + } SmLink smLink = new SmLink(); smLink.setFrom(entry.getLeft()); smLink.setTo(entry.getRight());