diff --git a/repository/src/main/java/org/apache/atlas/repository/graph/GraphHelper.java b/repository/src/main/java/org/apache/atlas/repository/graph/GraphHelper.java index 7b7ec65..ca46d0f 100755 --- a/repository/src/main/java/org/apache/atlas/repository/graph/GraphHelper.java +++ b/repository/src/main/java/org/apache/atlas/repository/graph/GraphHelper.java @@ -407,22 +407,8 @@ public final class GraphHelper { return ret; } - public static List<AtlasEdge> getIncomingClassificationEdges(AtlasVertex classificationVertex) { - List<AtlasEdge> ret = new ArrayList<>(); - String classificationName = getTypeName(classificationVertex); - Iterable edges = classificationVertex.query().direction(AtlasEdgeDirection.IN).label(CLASSIFICATION_LABEL) - .has(CLASSIFICATION_EDGE_NAME_PROPERTY_KEY, classificationName).edges(); - if (edges != null) { - Iterator<AtlasEdge> iterator = edges.iterator(); - - while (iterator.hasNext()) { - AtlasEdge edge = iterator.next(); - - ret.add(edge); - } - } - - return ret; + public static boolean hasEntityReferences(AtlasVertex classificationVertex) { + return classificationVertex.hasEdges(AtlasEdgeDirection.IN, CLASSIFICATION_LABEL); } public static List<AtlasVertex> getAllPropagatedEntityVertices(AtlasVertex classificationVertex) { diff --git a/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/DeleteHandlerV1.java b/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/DeleteHandlerV1.java index 3f8503a..717310d 100644 --- a/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/DeleteHandlerV1.java +++ b/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/DeleteHandlerV1.java @@ -156,9 +156,6 @@ public abstract class DeleteHandlerV1 { continue; } - // re-evaluate tag propagation - removeTagPropagation(edge); - deleteEdge(edge, isInternal || forceDelete); } } @@ -974,10 +971,8 @@ public abstract class DeleteHandlerV1 { LOG.debug("Deleting classification vertex", string(classificationVertex)); } - List<AtlasEdge> incomingClassificationEdges = getIncomingClassificationEdges(classificationVertex); - // delete classification vertex only if it has no more entity references (direct or propagated) - if (CollectionUtils.isEmpty(incomingClassificationEdges)) { + if (!hasEntityReferences(classificationVertex)) { _deleteVertex(classificationVertex, force); } }