From 40dfd360a8a1c242e39da012a29ddd75e6bb78ef Mon Sep 17 00:00:00 2001 From: lkerford Date: Thu, 19 Sep 2024 15:49:27 -0700 Subject: [PATCH] Fixing duplicate search markers in javaDocs When running the "FindTypes" recipe we are getting duplicate search markers being added to the result. We should only be printing one. --- .../java/search/FindTypesTest.java | 32 +++++++++++++++++++ .../org/openrewrite/java/JavadocPrinter.java | 12 ------- 2 files changed, 32 insertions(+), 12 deletions(-) diff --git a/rewrite-java-test/src/test/java/org/openrewrite/java/search/FindTypesTest.java b/rewrite-java-test/src/test/java/org/openrewrite/java/search/FindTypesTest.java index 5db9f118a71..55f4d06de00 100644 --- a/rewrite-java-test/src/test/java/org/openrewrite/java/search/FindTypesTest.java +++ b/rewrite-java-test/src/test/java/org/openrewrite/java/search/FindTypesTest.java @@ -425,4 +425,36 @@ class B { java(a1) ); } + + @Test + void javadocComment() { + + rewriteRun( + spec -> spec.recipe(new FindTypes("java.lang.String", true)), + java( + """ + public class A { + /** + * JavaDoc comment with {{@link String#trim()}} + * JavaDoc comment with String#trim() + */ + public static String replaceFoo(String string) { + return string.replaceAll("foo", "bar"); + } + } + """, + """ + public class A { + /** + * JavaDoc comment with {{@link ~~>String#trim()}} + * JavaDoc comment with String#trim() + */ + public static /*~~>*/String replaceFoo(/*~~>*/String string) { + return string.replaceAll("foo", "bar"); + } + } + """ + ) + ); + } } diff --git a/rewrite-java/src/main/java/org/openrewrite/java/JavadocPrinter.java b/rewrite-java/src/main/java/org/openrewrite/java/JavadocPrinter.java index 01c35f7a801..320f1cd7803 100644 --- a/rewrite-java/src/main/java/org/openrewrite/java/JavadocPrinter.java +++ b/rewrite-java/src/main/java/org/openrewrite/java/JavadocPrinter.java @@ -464,18 +464,6 @@ public Space visitSpace(Space space, Space.Location loc, PrintOutputCapture

p return space; } - @Override - public M visitMarker(Marker marker, PrintOutputCapture

p) { - if (marker instanceof SearchResult) { - String description = ((SearchResult) marker).getDescription(); - p.append("~~") - .append(description == null ? "" : "(" + description + ")~~") - .append(">"); - } - //noinspection unchecked - return (M) marker; - } - private void visitLineBreak(Javadoc.LineBreak lineBreak, PrintOutputCapture

p) { beforeSyntax(Space.EMPTY, lineBreak.getMarkers(), null, p); p.append(lineBreak.getMargin());