diff options
-rw-r--r-- | plugins/sonar-squid-java-plugin/src/main/java/org/sonar/java/bytecode/visitor/LCOM4Visitor.java | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/plugins/sonar-squid-java-plugin/src/main/java/org/sonar/java/bytecode/visitor/LCOM4Visitor.java b/plugins/sonar-squid-java-plugin/src/main/java/org/sonar/java/bytecode/visitor/LCOM4Visitor.java index 31059478c96..4360e1ea229 100644 --- a/plugins/sonar-squid-java-plugin/src/main/java/org/sonar/java/bytecode/visitor/LCOM4Visitor.java +++ b/plugins/sonar-squid-java-plugin/src/main/java/org/sonar/java/bytecode/visitor/LCOM4Visitor.java @@ -115,7 +115,10 @@ public class LCOM4Visitor extends BytecodeVisitor { Set<AsmResource> blockA = getOrCreateResourceBlock(resourceA); Set<AsmResource> blockB = getOrCreateResourceBlock(resourceB); - if (blockA.equals(blockB)) { + // getOrCreateResourceBlock() returns the same block instance if resourceA and resourceB are identical or already in the same block + // TODO: Avoid this violation by using a Disjoint Union Set which is also more efficient performance-wise + // See: http://en.wikipedia.org/wiki/Disjoint-set_data_structure + if (blockA == blockB) { // NOSONAR false-positive Compare Objects With Equals return; } |