23

In Sonar 4.5.6 (with default settings) I am seeing Duplicated Blocks message as

enter image description here

My java code for which I am getting the message is like below:-

package com.jabong.orchestratorservice.adapter.order.endpoints; import com.jabong.orchestratorservice.adapter.order.request.UpdateOrderStatusReadyShipRequest; public class UpdateOrderReadyShipEndPoint extends BaseOrderEndPoint { private final static String API_NAME = "setStatusToReadyToShip"; @Override public String getSourceEndPoint() { return new StringBuilder("direct:").append(API_NAME).toString(); } @Override public String getDestinationEndPoint() { return new StringBuilder("bean:orderHelper?method=").append(API_NAME).toString(); } @Override protected String getName() { return API_NAME; } @Override protected String getApiInputClassName() { return UpdateOrderStatusReadyShipRequest.class.getName(); } } 

UpdateOrderStatusReadyShipRequest also does not import UpdateOrderReadyShipEndPoint

package com.jabong.orchestratorservice.adapter.order.request; public class UpdateOrderStatusReadyShipRequest extends BaseOrderRequest { 

Can some let me know what does this mean?

2
  • Does the other class import this one? Commented Mar 20, 2016 at 9:06
  • No it does not import. Commented Mar 20, 2016 at 9:09

2 Answers 2

38

The Duplicate Blocks rule raises issues at the file level. So it's not trying to tell you that your import statement is duplicated, but that somewhere in the file is a duplicate block. If you'll scroll down, you should see a vertical yellow/orange bar in the left margin. It marks the duplicate block. Click on the bar to get details of where the block is duplicated.

EDIT In more recent versions the duplication marker is brown or gray.

Sign up to request clarification or add additional context in comments.

6 Comments

I had same issue on my project. Abstract class implemented with two other classes with same overrides. Sonar issued this as same block. But actually it was not. Anyway I get rid of it by replacing method order in one of that classes. Funny, isn't it? :)
@G. Ann - SonarSource Team Where Can I find the logic of this rule common-java:DuplicatedBlocks ?
It's in SonarQube itself
@G. Ann - SonarSource Team .Would be quite interesting to know how this works.This rule is in sonarqube and rest of the rules starting with squid-xxxx are in sonar-java.Is Sonar using some external library to check code duplication?
@G. Ann - SonarSource Team Thank you for the hint ,I have figured out how copy code is working.
|
26

You have to look (scroll down) your code. There will be a duplication marker in brown/gray like this:

enter image description here

5 Comments

Thanks, We could locate the duplicate block of code and the lines as mentioned clearly by you in the screenshot.
Thanks you saved my day. The yellow background on code lines is really misleading.
Woah ! thanks man Sonarqube needs to do better at documentation. You saved the day !
Thanks Carlos, your screenshot is a savior. I was scrolling mindlessly, and this gray marker wasn't catching my attention.
@Carlos saved the day. thank you

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.