diff --git a/src/core/lombok/core/handlers/HandlerUtil.java b/src/core/lombok/core/handlers/HandlerUtil.java index b6124670..412a7741 100644 --- a/src/core/lombok/core/handlers/HandlerUtil.java +++ b/src/core/lombok/core/handlers/HandlerUtil.java @@ -910,9 +910,13 @@ public class HandlerUtil { } } - public static String stripLinesWithTagFromJavadoc(String javadoc, JavadocTag tag) { + public static String stripLinesWithTagFromJavadoc(String javadoc, JavadocTag... tags) { if (javadoc == null || javadoc.isEmpty()) return javadoc; - return tag.pattern.matcher(javadoc).replaceAll("").trim(); + String result = javadoc; + for (JavadocTag tag : tags) { + result = tag.pattern.matcher(result).replaceAll("").trim(); + } + return result; } public static String stripSectionsFromJavadoc(String javadoc) { @@ -968,7 +972,7 @@ public class HandlerUtil { public static String addJavadocLine(String in, String line) { if (in == null) return line; - if (in.endsWith("\n")) return in + line + "\n"; + if (in.endsWith("\n")) return in + line; return in + "\n" + line; } @@ -990,11 +994,14 @@ public class HandlerUtil { String fieldBaseJavadoc = stripSectionsFromJavadoc(fieldJavadoc); String paramJavadoc = getParamJavadoc(fieldBaseJavadoc, paramName); - if (paramJavadoc == null) { - paramJavadoc = stripLinesWithTagFromJavadoc(fieldBaseJavadoc, JavadocTag.PARAM); - paramJavadoc = stripLinesWithTagFromJavadoc(paramJavadoc, JavadocTag.RETURN); + if (paramJavadoc != null) { + return paramJavadoc; } - return paramJavadoc; + String javadocWithoutTags = stripLinesWithTagFromJavadoc(fieldBaseJavadoc, JavadocTag.PARAM, JavadocTag.RETURN); + if (javadocWithoutTags != null) { + return "@param " + paramName + " " + javadocWithoutTags; + } + return null; } } diff --git a/src/core/lombok/eclipse/handlers/HandleConstructor.java b/src/core/lombok/eclipse/handlers/HandleConstructor.java index e60ca15f..81b4cf11 100755 --- a/src/core/lombok/eclipse/handlers/HandleConstructor.java +++ b/src/core/lombok/eclipse/handlers/HandleConstructor.java @@ -598,12 +598,12 @@ public class HandleConstructor { String paramJavadoc = getConstructorParameterJavadoc(paramName, fieldJavadoc); if (paramJavadoc == null) { - paramJavadoc = ""; + paramJavadoc = "@param " + paramName; } else { fieldDescriptionAdded = true; } - constructorJavadoc = addJavadocLine(constructorJavadoc, "@param " + paramName + " " + paramJavadoc); + constructorJavadoc = addJavadocLine(constructorJavadoc, paramJavadoc); } if (fieldDescriptionAdded) { setDocComment(typeNode, constructorNode, constructorJavadoc); diff --git a/src/core/lombok/javac/handlers/HandleConstructor.java b/src/core/lombok/javac/handlers/HandleConstructor.java index 27dba4a0..31d15445 100644 --- a/src/core/lombok/javac/handlers/HandleConstructor.java +++ b/src/core/lombok/javac/handlers/HandleConstructor.java @@ -490,12 +490,12 @@ public class HandleConstructor { String paramJavadoc = getConstructorParameterJavadoc(paramName, fieldJavadoc); if (paramJavadoc == null) { - paramJavadoc = ""; + paramJavadoc = "@param " + paramName; } else { fieldDescriptionAdded = true; } - constructorJavadoc = addJavadocLine(constructorJavadoc, "@param " + paramName + " " + paramJavadoc); + constructorJavadoc = addJavadocLine(constructorJavadoc, paramJavadoc); } if (fieldDescriptionAdded) { setDocComment(cu, constructor, constructorJavadoc); diff --git a/test/transform/resource/after-delombok/ConstructorJavadoc.java b/test/transform/resource/after-delombok/ConstructorJavadoc.java index bd55b585..71a99e46 100644 --- a/test/transform/resource/after-delombok/ConstructorJavadoc.java +++ b/test/transform/resource/after-delombok/ConstructorJavadoc.java @@ -16,7 +16,7 @@ public class ConstructorJavadoc { /** * Creates a new {@code ConstructorJavadoc} instance. * - * @param fieldName Some text + * @param fieldName Hello, World1 * @param fieldName2 Sky is blue */ @java.lang.SuppressWarnings("all") diff --git a/test/transform/resource/after-ecj/ConstructorJavadoc.java b/test/transform/resource/after-ecj/ConstructorJavadoc.java index 4b861ab7..da931f2c 100644 --- a/test/transform/resource/after-ecj/ConstructorJavadoc.java +++ b/test/transform/resource/after-ecj/ConstructorJavadoc.java @@ -5,7 +5,7 @@ public @AllArgsConstructor class ConstructorJavadoc { /** * Creates a new {@code ConstructorJavadoc} instance. * - * @param fieldName Some text + * @param fieldName Hello, World1 * @param fieldName2 Sky is blue */ public @java.lang.SuppressWarnings("all") @lombok.Generated ConstructorJavadoc(final int fieldName, final int fieldName2) {