Fixed nullpointer issue in th comparator

This commit is contained in:
Raf Ponsaerts
2019-01-28 15:35:56 +01:00
parent a62a66ec41
commit 7dc59a03a2

View File

@@ -1359,13 +1359,14 @@ prevent the generation of resource policy entry values with null dspace_object a
private List<MetadataValue> sortMetadataValueList(List<MetadataValue> listToReturn) {
Comparator<MetadataValue> comparator = Comparator.comparing(
metadataValue -> metadataValue.getMetadataField().getMetadataSchema().getName());
comparator = comparator.thenComparing(Comparator.comparing(
metadataValue -> metadataValue.getMetadataField().getElement()));
comparator = comparator.thenComparing(Comparator.comparing(
metadataValue -> metadataValue.getMetadataField().getQualifier()));
comparator = comparator.thenComparing(Comparator.comparing(
metadataValue -> metadataValue.getPlace()));
metadataValue -> metadataValue.getMetadataField().getMetadataSchema().getName(),
Comparator.nullsFirst(Comparator.naturalOrder()));
comparator = comparator.thenComparing(metadataValue -> metadataValue.getMetadataField().getElement(),
Comparator.nullsFirst(Comparator.naturalOrder()));
comparator = comparator.thenComparing(metadataValue -> metadataValue.getMetadataField().getQualifier(),
Comparator.nullsFirst(Comparator.naturalOrder()));
comparator = comparator.thenComparing(metadataValue -> metadataValue.getPlace(),
Comparator.nullsFirst(Comparator.naturalOrder()));
Stream<MetadataValue> metadataValueStream = listToReturn.stream().sorted(comparator);
listToReturn = metadataValueStream.collect(Collectors.toList());