From 36bca4d9da3fbff7b80a92e9ac093360f0d953f1 Mon Sep 17 00:00:00 2001 From: nikhilbonte21 Date: Mon, 3 Mar 2025 18:45:01 +0530 Subject: [PATCH] MLH-173 Quick Fix to relieve WF runs on exelixis --- .../store/graph/v2/EntityGraphMapper.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/EntityGraphMapper.java b/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/EntityGraphMapper.java index ffc0562dd5..092bbda244 100644 --- a/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/EntityGraphMapper.java +++ b/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/EntityGraphMapper.java @@ -2991,7 +2991,8 @@ private AtlasEdge updateRelationship(AtlasEdge currentEdge, final AtlasVertex pa String newEntityId = getIdFromVertex(newEntityVertex); AtlasEdge ret = currentEdge; - if (!currentEntityId.equals(newEntityId)) { + if (StringUtils.isEmpty(currentEntityId) || !currentEntityId.equals(newEntityId)) { + // Checking if currentEntityId is null or empty as corrupted vertex on the other side of the edge should result into creation of new edge // create a new relationship edge to the new attribute vertex from the instance String relationshipName = AtlasGraphUtilsV2.getTypeName(currentEdge); @@ -3068,11 +3069,15 @@ private List removeUnusedArrayEntries(AtlasAttribute attribute, List< continue; } - boolean deleted = deleteDelegate.getHandler().deleteEdgeReference(edge, entryType.getTypeCategory(), attribute.isOwnedRef(), - true, attribute.getRelationshipEdgeDirection(), entityVertex); + try { + boolean deleted = deleteDelegate.getHandler().deleteEdgeReference(edge, entryType.getTypeCategory(), attribute.isOwnedRef(), + true, attribute.getRelationshipEdgeDirection(), entityVertex); - if (!deleted) { - additionalElements.add(edge); + if (!deleted) { + additionalElements.add(edge); + } + } catch (NullPointerException npe) { + LOG.warn("Ignoring deleting edge with corrupted vertex: {}", edge.getId()); } }