From 046c1b5d0561b6bca558c71265c2bbc7cb331230 Mon Sep 17 00:00:00 2001 From: Jens Vannerum Date: Wed, 22 Jan 2025 13:33:58 +0100 Subject: [PATCH] 124579: If no ORIGINAL bundle exists, end the process gracefully instead of throwing NPE --- .../src/main/java/org/dspace/ctask/general/ClamScan.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/dspace-api/src/main/java/org/dspace/ctask/general/ClamScan.java b/dspace-api/src/main/java/org/dspace/ctask/general/ClamScan.java index d1fa70565dfd..c939b67af56d 100644 --- a/dspace-api/src/main/java/org/dspace/ctask/general/ClamScan.java +++ b/dspace-api/src/main/java/org/dspace/ctask/general/ClamScan.java @@ -19,6 +19,7 @@ import java.util.ArrayList; import java.util.List; +import org.apache.commons.collections4.ListUtils; import org.dspace.authorize.AuthorizeException; import org.dspace.content.Bitstream; import org.dspace.content.Bundle; @@ -99,7 +100,12 @@ public int perform(DSpaceObject dso) throws IOException { } try { - Bundle bundle = itemService.getBundles(item, "ORIGINAL").get(0); + List bundles = itemService.getBundles(item, "ORIGINAL"); + if (ListUtils.emptyIfNull(bundles).isEmpty()) { + setResult("No ORIGINAL bundle found for item: " + getItemHandle(item)); + return Curator.CURATE_SKIP; + } + Bundle bundle = bundles.get(0); results = new ArrayList(); for (Bitstream bitstream : bundle.getBitstreams()) { InputStream inputstream = bitstreamService.retrieve(Curator.curationContext(), bitstream);