From e7f9ee82eea034d295959d012fb1771e01047a00 Mon Sep 17 00:00:00 2001 From: pkupczyk <piotr.kupczyk@id.ethz.ch> Date: Mon, 25 Sep 2023 12:31:35 +0200 Subject: [PATCH] SSDM-14065 : UsageReportingTask fails with NPE if samples without space were created --- .../generic/server/task/UsageGatherer.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/server-application-server/source/java/ch/systemsx/cisd/openbis/generic/server/task/UsageGatherer.java b/server-application-server/source/java/ch/systemsx/cisd/openbis/generic/server/task/UsageGatherer.java index 8ee4dfa9099..7d823e5de67 100644 --- a/server-application-server/source/java/ch/systemsx/cisd/openbis/generic/server/task/UsageGatherer.java +++ b/server-application-server/source/java/ch/systemsx/cisd/openbis/generic/server/task/UsageGatherer.java @@ -131,7 +131,7 @@ public class UsageGatherer fetchOptions.withSpace(); fetchOptions.withRegistrator(); List<Sample> samples = service.searchSamples(sessionToken, searchCriteria, fetchOptions).getObjects(); - Function<Sample, String> spaceExtractor = sample -> sample.getSpace().getCode(); + Function<Sample, String> spaceExtractor = sample -> sample.getSpace() != null ? sample.getSpace().getCode() : null; gatherUsage(usageByUsersAndSpaces, samples, spaceExtractor, UsageInfo::addNewSample); } @@ -155,8 +155,15 @@ public class UsageGatherer if (experiment != null) { return experiment.getProject().getSpace().getCode(); - } - return dataSet.getSample().getSpace().getCode(); + } + + Sample sample = dataSet.getSample(); + if (sample != null) + { + return sample.getSpace() != null ? sample.getSpace().getCode() : null; + } + + return null; } }; gatherUsage(usageByUsersAndSpaces, dataSets, spaceExtractor, UsageInfo::addNewDataSet); @@ -172,7 +179,7 @@ public class UsageGatherer if (usageBySpaces != null) { String space = spaceExtractor.apply(entity); - if (spacesToBeIgnored.contains(space) == false) + if (space != null && spacesToBeIgnored.contains(space) == false) { UsageInfo usageInfo = usageBySpaces.get(space); if (usageInfo == null) -- GitLab