Skip to content

Commit

Permalink
Improved handling of statements with anonymous class declarations
Browse files Browse the repository at this point in the history
  • Loading branch information
tsantalis committed Oct 23, 2024
1 parent fd4442e commit 158eed7
Show file tree
Hide file tree
Showing 5 changed files with 50 additions and 28 deletions.
17 changes: 17 additions & 0 deletions src/main/java/org/codetracker/element/Block.java
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,23 @@ public boolean differInFormatting(Block other) {
if (thisSignature != null && otherSignature != null) {
int leftLines = this.getLocation().getEndLine() - this.getLocation().getStartLine();
int rightLines = other.getLocation().getEndLine() - other.getLocation().getStartLine();
if (leftLines == rightLines) {
//check if lines start and end with the same character
String[] leftLineArray = thisSignature.split("\\r?\\n");
String[] rightLineArray = otherSignature.split("\\r?\\n");
int linesWithDifferences = 0;
for (int i=0; i<leftLineArray.length; i++) {
String leftLine = leftLineArray[i];
String rightLine = rightLineArray[i];
if(leftLine.length() > 1 && rightLine.length() > 1 &&
(leftLine.charAt(0) != rightLine.charAt(0) || leftLine.charAt(leftLine.length()-1) != rightLine.charAt(rightLine.length()-1))) {
linesWithDifferences++;
}
}
if(linesWithDifferences > 0) {
return !thisSignature.equals(otherSignature) && thisSignature.replaceAll("\\s+","").equals(otherSignature.replaceAll("\\s+",""));
}
}
return !thisSignature.equals(otherSignature) && leftLines != rightLines && thisSignature.replaceAll("\\s+","").equals(otherSignature.replaceAll("\\s+",""));
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,11 @@ protected boolean blockPredicate(Block block) {
return block.getComposite().getLocationInfo().getStartLine() <= lineNumber &&
block.getComposite().getLocationInfo().getEndLine() >= lineNumber;
}
else if (block.getComposite() instanceof StatementObject && block.getComposite().getAnonymousClassDeclarations().size() > 0) {
int anonymousStartLine = block.getComposite().getAnonymousClassDeclarations().get(0).getLocationInfo().getStartLine();
return block.getComposite().getLocationInfo().getStartLine() <= lineNumber &&
anonymousStartLine >= lineNumber;
}
else if (block.getComposite() instanceof CompositeStatementObject) {
CompositeStatementObject comp = (CompositeStatementObject)block.getComposite();
List<AbstractStatement> statements = comp.getStatements();
Expand Down
4 changes: 2 additions & 2 deletions src/test/resources/blame/blameTestWithLocalRepo6.txt
Original file line number Diff line number Diff line change
Expand Up @@ -271,8 +271,8 @@ fda08852b spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method
ad2e0d458 org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/mvc/method/annotation/support/AbstractMessageConverterMethodProcessor.java (Arjen Poutsma 2011-05-17 09:45:57 +0000 271) if (selectedMediaType != null) {
982cb2f25 spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/AbstractMessageConverterMethodProcessor.java (Rossen Stoyanchev 2012-05-11 18:43:58 +0000 272) selectedMediaType = selectedMediaType.removeQualityValue();
7dd8dc62a spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/AbstractMessageConverterMethodProcessor.java (Juergen Hoeller 2017-06-13 09:37:58 +0000 273) for (HttpMessageConverter<?> converter : this.messageConverters) {
7dd8dc62a spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/AbstractMessageConverterMethodProcessor.java (Juergen Hoeller 2017-06-13 09:37:58 +0000 274) GenericHttpMessageConverter genericConverter = (converter instanceof GenericHttpMessageConverter ?
7dd8dc62a spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/AbstractMessageConverterMethodProcessor.java (Juergen Hoeller 2017-06-13 09:37:58 +0000 275) (GenericHttpMessageConverter<?>) converter : null);
b915e42c3 spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/AbstractMessageConverterMethodProcessor.java (Juergen Hoeller 2018-07-16 17:45:35 +0000 274) GenericHttpMessageConverter genericConverter = (converter instanceof GenericHttpMessageConverter ?
b915e42c3 spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/AbstractMessageConverterMethodProcessor.java (Juergen Hoeller 2018-07-16 17:45:35 +0000 275) (GenericHttpMessageConverter<?>) converter : null);
b915e42c3 spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/AbstractMessageConverterMethodProcessor.java (Juergen Hoeller 2018-07-16 17:45:35 +0000 276) if (genericConverter != null ?
b915e42c3 spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/AbstractMessageConverterMethodProcessor.java (Juergen Hoeller 2018-07-16 17:45:35 +0000 277) ((GenericHttpMessageConverter) converter).canWrite(targetType, valueType, selectedMediaType) :
b915e42c3 spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/AbstractMessageConverterMethodProcessor.java (Juergen Hoeller 2018-07-16 17:45:35 +0000 278) converter.canWrite(valueType, selectedMediaType)) {
Expand Down
2 changes: 1 addition & 1 deletion src/test/resources/blame/blameTestWithLocalRepo7.txt
Original file line number Diff line number Diff line change
Expand Up @@ -345,7 +345,7 @@ bdc9ef8db junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor
fa7f25613 junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/ClassTestDescriptor.java (Sam Brannen 2017-07-04 11:00:30 +0000 345) private void invokeTestInstancePostProcessors(Object instance, ExtensionRegistry registry,
fa7f25613 junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/ClassTestDescriptor.java (Sam Brannen 2017-07-04 11:00:30 +0000 346) ExtensionContext context) {
347)
ebfdc4d7f junit5-engine/src/main/java/org/junit/gen5/engine/junit5/descriptor/ClassTestDescriptor.java (Sam Brannen 2016-05-24 22:09:27 +0000 348) registry.stream(TestInstancePostProcessor.class).forEach(
3e3b40213 junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/ClassTestDescriptor.java (Sam Brannen 2016-06-25 20:02:49 +0000 348) registry.stream(TestInstancePostProcessor.class).forEach(
fa7f25613 junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/ClassTestDescriptor.java (Sam Brannen 2017-07-04 11:00:30 +0000 349) extension -> executeAndMaskThrowable(() -> extension.postProcessTestInstance(instance, context)));
65e0bd548 junit5-engine/src/main/java/org/junit/gen5/engine/junit5/descriptor/ClassTestDescriptor.java (Sam Brannen 2016-05-13 13:55:54 +0000 350) }
351)
Expand Down
Loading

0 comments on commit 158eed7

Please sign in to comment.