[broker] prevent NPEs

This commit is contained in:
Claudio Atzori 2023-01-11 14:44:14 +01:00
parent 04cb96001c
commit 0a58bc7ba7
1 changed files with 16 additions and 7 deletions

View File

@ -128,13 +128,22 @@ public class ConversionUtils {
protected static List<OaBrokerTypedValue> allResultPids(final Result result) { protected static List<OaBrokerTypedValue> allResultPids(final Result result) {
final Map<String, StructuredProperty> map = new HashMap<>(); final Map<String, StructuredProperty> map = new HashMap<>();
result.getPid().forEach(sp -> map.put(sp.getValue(), sp));
result.getInstance().forEach(i -> { if (result.getPid() != null) {
i.getPid().forEach(sp -> map.put(sp.getValue(), sp)); result.getPid().forEach(sp -> map.put(sp.getValue(), sp));
i.getAlternateIdentifier().forEach(sp -> map.put(sp.getValue(), sp)); }
});
final List<OaBrokerTypedValue> pids = mappedList(map.values(), ConversionUtils::oafPidToBrokerPid); if (result.getInstance() != null) {
return pids; result.getInstance().forEach(i -> {
if (i.getPid() != null) {
i.getPid().forEach(sp -> map.put(sp.getValue(), sp));
}
if (i.getAlternateIdentifier() != null) {
i.getAlternateIdentifier().forEach(sp -> map.put(sp.getValue(), sp));
}
});
}
return mappedList(map.values(), ConversionUtils::oafPidToBrokerPid);
} }
public static String cleanOpenaireId(final String id) { public static String cleanOpenaireId(final String id) {