From 2e2ef536d805df5862fc08e315a2df89ae9d4cc4 Mon Sep 17 00:00:00 2001 From: Chris Collins Date: Fri, 7 Oct 2022 10:38:38 -0400 Subject: [PATCH] fix(lineage) Fix possible null pointer exception in UpstreamLineagesMapper (#6147) --- .../mappers/UpstreamLineagesMapper.java | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/common/mappers/UpstreamLineagesMapper.java b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/common/mappers/UpstreamLineagesMapper.java index ac1824256a..40f0ca90b0 100644 --- a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/common/mappers/UpstreamLineagesMapper.java +++ b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/common/mappers/UpstreamLineagesMapper.java @@ -30,14 +30,18 @@ public class UpstreamLineagesMapper { for (FineGrainedLineage fineGrainedLineage : upstreamLineage.getFineGrainedLineages()) { com.linkedin.datahub.graphql.generated.FineGrainedLineage resultEntry = new com.linkedin.datahub.graphql.generated.FineGrainedLineage(); - resultEntry.setUpstreams(fineGrainedLineage.getUpstreams().stream() - .filter(entry -> entry.getEntityType().equals("schemaField")) - .map(entry -> mapDatasetSchemaField(entry)).collect( - Collectors.toList())); - resultEntry.setDownstreams(fineGrainedLineage.getDownstreams().stream() - .filter(entry -> entry.getEntityType().equals("schemaField")) - .map(entry -> mapDatasetSchemaField(entry)).collect( - Collectors.toList())); + if (fineGrainedLineage.hasUpstreams()) { + resultEntry.setUpstreams(fineGrainedLineage.getUpstreams().stream() + .filter(entry -> entry.getEntityType().equals("schemaField")) + .map(entry -> mapDatasetSchemaField(entry)).collect( + Collectors.toList())); + } + if (fineGrainedLineage.hasDownstreams()) { + resultEntry.setDownstreams(fineGrainedLineage.getDownstreams().stream() + .filter(entry -> entry.getEntityType().equals("schemaField")) + .map(entry -> mapDatasetSchemaField(entry)).collect( + Collectors.toList())); + } result.add(resultEntry); } return result;