@@ -3593,9 +3593,11 @@ public List<Refactoring> getRefactorings() throws RefactoringMinerTimedOutExcept
35933593 if (!conflictingRefactorings .isEmpty ()) {
35943594 Set <AbstractCodeMapping > conflictingReferences = new LinkedHashSet <>();
35953595 Set <Replacement > conflictingReplacements = new LinkedHashSet <>();
3596+ ReferenceBasedRefactoring conflictingRefactoring = null ;
35963597 for (Refactoring r : conflictingRefactorings ) {
35973598 if (r instanceof ReferenceBasedRefactoring ) {
3598- Set <AbstractCodeMapping > references = ((ReferenceBasedRefactoring )r ).getReferences ();
3599+ conflictingRefactoring = (ReferenceBasedRefactoring )r ;
3600+ Set <AbstractCodeMapping > references = conflictingRefactoring .getReferences ();
35993601 conflictingReferences .addAll (references );
36003602 for (AbstractCodeMapping mapping : references ) {
36013603 conflictingReplacements .addAll (mapping .getReplacements ());
@@ -3615,9 +3617,27 @@ public List<Refactoring> getRefactorings() throws RefactoringMinerTimedOutExcept
36153617 }
36163618 if (references .size () > conflictingReferences .size ()) {
36173619 refactorings .removeAll (conflictingRefactorings );
3620+ if (conflictingRefactoring != null && conflictingRefactoring instanceof RenameAttributeRefactoring ) {
3621+ UMLAttribute removed = ((RenameAttributeRefactoring )conflictingRefactoring ).getOriginalAttribute ();
3622+ UMLAttribute added = ((RenameAttributeRefactoring )conflictingRefactoring ).getRenamedAttribute ();
3623+ for (UMLEnumConstantDiff d : new ArrayList <>(diff .getEnumConstantDiffList ())) {
3624+ if (d .getRemovedEnumConstant ().equals (removed ) && d .getAddedEnumConstant ().equals (added )) {
3625+ diff .getEnumConstantDiffList ().remove (d );
3626+ }
3627+ }
3628+ }
36183629 }
36193630 else if (references .size () == conflictingReferences .size () && replacements .size () < conflictingReplacements .size ()) {
36203631 refactorings .removeAll (conflictingRefactorings );
3632+ if (conflictingRefactoring != null && conflictingRefactoring instanceof RenameAttributeRefactoring ) {
3633+ UMLAttribute removed = ((RenameAttributeRefactoring )conflictingRefactoring ).getOriginalAttribute ();
3634+ UMLAttribute added = ((RenameAttributeRefactoring )conflictingRefactoring ).getRenamedAttribute ();
3635+ for (UMLEnumConstantDiff d : new ArrayList <>(diff .getEnumConstantDiffList ())) {
3636+ if (d .getRemovedEnumConstant ().equals (removed ) && d .getAddedEnumConstant ().equals (added )) {
3637+ diff .getEnumConstantDiffList ().remove (d );
3638+ }
3639+ }
3640+ }
36213641 }
36223642 }
36233643 refactorings .addAll (enumConstantDiffRefactorings );
0 commit comments