diff --git a/open-java-format/src/main/java/com/palantir/javaformat/java/JavaInput.java b/open-java-format/src/main/java/com/palantir/javaformat/java/JavaInput.java index efd1caaff..87fbf5285 100644 --- a/open-java-format/src/main/java/com/palantir/javaformat/java/JavaInput.java +++ b/open-java-format/src/main/java/com/palantir/javaformat/java/JavaInput.java @@ -154,7 +154,9 @@ public boolean isSlashStarComment() { @Override public boolean isJavadocComment() { - return text.startsWith("/**") && text.length() > 4; + // comments like `/***` are also javadoc, but their formatting probably won't be improved + // by the javadoc formatter + return text.startsWith("/**") && text.charAt("/**".length()) != '*' && text.length() > 4; } @Override diff --git a/open-java-format/src/test/java/com/palantir/javaformat/java/JavadocFormattingTest.java b/open-java-format/src/test/java/com/palantir/javaformat/java/JavadocFormattingTest.java index 95f634808..8466debfa 100644 --- a/open-java-format/src/test/java/com/palantir/javaformat/java/JavadocFormattingTest.java +++ b/open-java-format/src/test/java/com/palantir/javaformat/java/JavadocFormattingTest.java @@ -55,11 +55,28 @@ public void empty() { "class Test {}", }; String[] expected = { - "/** */", "class Test {}", + "/***/", "class Test {}", }; doFormatTest(input, expected); } + @Test + public void bannerCommentIsNotJavadoc() { + // A comment that opens with three or more asterisks is left to the plain comment handling: reflowing it as + // javadoc would push the asterisks onto a line of their own and turn its paragraphs into
tags. + String[] input = { + "/****************************************", + " * Copyright", + " *", + " * Some", + " *", + " * Company", + " ****************************************/", + "class Test {}", + }; + doFormatTest(input, input); + } + @Test public void emptyMultipleLines() { String[] input = {