From be2b10b6082768487fb49f2266ed320b3b90f469 Mon Sep 17 00:00:00 2001 From: tsantalis Date: Wed, 8 Jan 2025 14:13:13 -0500 Subject: [PATCH] Fix failing test --- .../java/gr/uom/java/xmi/diff/UMLClassBaseDiff.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/java/gr/uom/java/xmi/diff/UMLClassBaseDiff.java b/src/main/java/gr/uom/java/xmi/diff/UMLClassBaseDiff.java index 53d6b8296..4ebd2eadb 100644 --- a/src/main/java/gr/uom/java/xmi/diff/UMLClassBaseDiff.java +++ b/src/main/java/gr/uom/java/xmi/diff/UMLClassBaseDiff.java @@ -3141,6 +3141,8 @@ private List checkForExtractedOperations() throws Refact List refs = detection.check(addedOperation); List discarded = new ArrayList<>(); List duplicates = new ArrayList<>(); + List superSets = new ArrayList<>(); + List subSets = new ArrayList<>(); if(refs.size() > 1) { for(ExtractOperationRefactoring refactoring : refs) { Set mappings = refactoring.getBodyMapper().getMappings(); @@ -3164,6 +3166,11 @@ private List checkForExtractedOperations() throws Refact if(ex.getBodyMapper().getMappings().equals(refactoring.getBodyMapper().getMappings())) { duplicates.add(refactoring); } + else if(ex.toString().equals(refactoring.toString()) && + refactoring.getBodyMapper().getMappings().containsAll(ex.getBodyMapper().getMappings())) { + superSets.add(refactoring); + subSets.add(ex); + } } } } @@ -3172,6 +3179,9 @@ private List checkForExtractedOperations() throws Refact } for(ExtractOperationRefactoring refactoring : refs) { if(!discarded.contains(refactoring) && !duplicates.contains(refactoring)) { + if(superSets.contains(refactoring)) { + this.refactorings.removeAll(subSets); + } CompositeStatementObject synchronizedBlock = refactoring.extractedFromSynchronizedBlock(); if(synchronizedBlock != null) { refactoring.getBodyMapper().getParentMapper().getNonMappedInnerNodesT1().remove(synchronizedBlock);