Do not emit trailing white-space for empty javadoc lines.
This occurs when multiple newlines are present. While the HTML-rendered Javadoc will collapse these, we preserve them for the sake of continuity with input.
diff --git a/src/main/java/com/squareup/javawriter/JavaWriter.java b/src/main/java/com/squareup/javawriter/JavaWriter.java
index 1b0b84c..e375f39 100644
--- a/src/main/java/com/squareup/javawriter/JavaWriter.java
+++ b/src/main/java/com/squareup/javawriter/JavaWriter.java
@@ -448,8 +448,11 @@
out.write("/**\n");
for (String line : formatted.split("\n")) {
indent();
- out.write(" * ");
- out.write(line);
+ out.write(" *");
+ if (!line.isEmpty()) {
+ out.write(" ");
+ out.write(line);
+ }
out.write("\n");
}
indent();
diff --git a/src/test/java/com/squareup/javawriter/JavaWriterTest.java b/src/test/java/com/squareup/javawriter/JavaWriterTest.java
index 6450af9..0f82a2d 100644
--- a/src/test/java/com/squareup/javawriter/JavaWriterTest.java
+++ b/src/test/java/com/squareup/javawriter/JavaWriterTest.java
@@ -552,6 +552,17 @@
+ " */\n");
}
+ @Test public void multilineJavadocDoesNotEmitTrailingSpaceForEmptyLines() throws IOException {
+ javaWriter.emitJavadoc("Foo\n\nBar");
+ assertCode(""
+ + "/**\n"
+ + " * Foo\n"
+ + " *\n"
+ + " * Bar\n"
+ + " */\n"
+ );
+ }
+
@Test public void testStringLiteral() {
assertThat(JavaWriter.stringLiteral("")).isEqualTo("\"\"");
assertThat(JavaWriter.stringLiteral("JavaWriter")).isEqualTo("\"JavaWriter\"");