mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-11-01 11:09:14 +00:00
fix: handle potential null node in DQ failure lineage (#18707)
This commit is contained in:
parent
de4a2cdfa0
commit
0dca5362b9
@ -1172,9 +1172,11 @@ public class ElasticSearchClient implements SearchClient {
|
||||
processedNodes.add(nodeFailureId);
|
||||
if (nodesWithFailures.contains(nodeFailureId)) {
|
||||
Map<String, Object> node = allNodes.get(nodeFailureId);
|
||||
node.keySet().removeAll(FIELDS_TO_REMOVE);
|
||||
node.remove("lineage");
|
||||
nodes.add(allNodes.get(nodeFailureId));
|
||||
if (node != null) {
|
||||
node.keySet().removeAll(FIELDS_TO_REMOVE);
|
||||
node.remove("lineage");
|
||||
nodes.add(node);
|
||||
}
|
||||
}
|
||||
List<Map<String, Object>> edgesForNode = allEdges.get(nodeFailureId);
|
||||
if (edgesForNode != null) {
|
||||
|
||||
@ -1097,7 +1097,8 @@ public class OpenSearchClient implements SearchClient {
|
||||
nodesWithFailures,
|
||||
new HashSet<>());
|
||||
for (String nodeWithFailure : nodesWithFailures) {
|
||||
traceBackDQLineage(nodeWithFailure, allEdges, allNodes, nodes, edges, new HashSet<>());
|
||||
traceBackDQLineage(
|
||||
nodeWithFailure, nodesWithFailures, allEdges, allNodes, nodes, edges, new HashSet<>());
|
||||
}
|
||||
}
|
||||
|
||||
@ -1154,6 +1155,7 @@ public class OpenSearchClient implements SearchClient {
|
||||
|
||||
private void traceBackDQLineage(
|
||||
String nodeFailureId,
|
||||
Set<String> nodesWithFailures,
|
||||
Map<String, List<Map<String, Object>>> allEdges,
|
||||
Map<String, Map<String, Object>> allNodes,
|
||||
Set<Map<String, Object>> nodes,
|
||||
@ -1164,7 +1166,14 @@ public class OpenSearchClient implements SearchClient {
|
||||
}
|
||||
|
||||
processedNodes.add(nodeFailureId);
|
||||
nodes.add(allNodes.get(nodeFailureId));
|
||||
if (nodesWithFailures.contains(nodeFailureId)) {
|
||||
Map<String, Object> node = allNodes.get(nodeFailureId);
|
||||
if (node != null) {
|
||||
node.keySet().removeAll(FIELDS_TO_REMOVE);
|
||||
node.remove("lineage");
|
||||
nodes.add(node);
|
||||
}
|
||||
}
|
||||
List<Map<String, Object>> edgesForNode = allEdges.get(nodeFailureId);
|
||||
if (edgesForNode != null) {
|
||||
for (Map<String, Object> edge : edgesForNode) {
|
||||
@ -1173,7 +1182,14 @@ public class OpenSearchClient implements SearchClient {
|
||||
if (!fromEntityId.equals(nodeFailureId)) continue; // skip if the edge is from the node
|
||||
Map<String, String> toEntity = (Map<String, String>) edge.get("toEntity");
|
||||
edges.add(edge);
|
||||
traceBackDQLineage(toEntity.get("id"), allEdges, allNodes, nodes, edges, processedNodes);
|
||||
traceBackDQLineage(
|
||||
toEntity.get("id"),
|
||||
nodesWithFailures,
|
||||
allEdges,
|
||||
allNodes,
|
||||
nodes,
|
||||
edges,
|
||||
processedNodes);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user