tsantalis / RefactoringMiner

MIT License
372 stars 138 forks source link

Detected method extraction is reported twice #686

Closed victorgveloso closed 8 months ago

victorgveloso commented 8 months ago

http://lab:4000/refactoring/260/15388201

http://lab:4000/refactoring/260/15388200

image

The method at https://github.com/hazelcast/hazelcast/commit/ffa1d33cd2b4dcacbc48b752aaead7eb3a956276#diff-6c2709c8310d1fad31023d77c616ab752614814b7d811abb8151eebbcb254374R178-R182 has two associated extract method refactoring. The first is mapped to the invocation at: https://github.com/hazelcast/hazelcast/commit/ffa1d33cd2b4dcacbc48b752aaead7eb3a956276#diff-6c2709c8310d1fad31023d77c616ab752614814b7d811abb8151eebbcb254374R172-R172 The second is mapped to the invocation at: https://github.com/hazelcast/hazelcast/commit/ffa1d33cd2b4dcacbc48b752aaead7eb3a956276#diff-6c2709c8310d1fad31023d77c616ab752614814b7d811abb8151eebbcb254374R124-R124

tsantalis commented 8 months ago

@victorgveloso I checked all refactorings and they are correct. The same method createMessageTask is extracted from multiple different tests.

@pouryafard75 new is not getting matched

image

victorgveloso commented 8 months ago

@pouryafard75 just explained me that RMiner reports one extracted method refactoring for each method invocation and that is the intended behaviour.

I don't know if that changed recently, but getExtractedOperationInvocations returns an ArrayList hence why I assumed that array could contain multiple values. Instead it always contain a single invocation as the refactoring is split by invocation.

tsantalis commented 8 months ago

Resolved in PR #689