Skip to content

Commit 9ceff6f

Browse files
authored
fix npe on missing javadoc description (via #427)
1 parent 6531def commit 9ceff6f

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

allure-descriptions-javadoc/src/main/java/io/qameta/allure/description/JavaDocDescriptionsProcessor.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,12 @@ public boolean process(final Set<? extends TypeElement> annotations, final Round
7171
final List<String> typeParams = ((ExecutableElement) el).getParameters().stream()
7272
.map(param -> param.asType().toString()).collect(Collectors.toList());
7373
final String name = el.getSimpleName().toString();
74+
if (docs == null) {
75+
messager.printMessage(Diagnostic.Kind.WARNING,
76+
"Unable to create resource for method " + name + typeParams
77+
+ " as it does not have a docs comment");
78+
return;
79+
}
7480

7581
final String hash = generateMethodSignatureHash(el.getEnclosingElement().toString(), name, typeParams);
7682
try {

allure-descriptions-javadoc/src/test/java/io/qameta/allure/description/ProcessDescriptionsTest.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,4 +61,27 @@ void captureDescriptionTest() {
6161
expectedMethodSignatureHash
6262
);
6363
}
64+
65+
@Test
66+
void skipUncommentedMethodTest() {
67+
JavaFileObject source = JavaFileObjects.forSourceLines(
68+
"io.qameta.allure.description.test.DescriptionSample",
69+
"package io.qameta.allure.description.test;",
70+
"import io.qameta.allure.Description;",
71+
"",
72+
"public class DescriptionSample {",
73+
"",
74+
"@Description(useJavaDoc = true)",
75+
"public void sampleTestWithoutJavadocComment() {",
76+
"}",
77+
"}"
78+
);
79+
80+
Compiler compiler = javac().withProcessors(new JavaDocDescriptionsProcessor());
81+
Compilation compilation = compiler.compile(source);
82+
assertThat(compilation).succeeded();
83+
assertThat(compilation)
84+
.hadWarningContaining("Unable to create resource for method "
85+
+ "sampleTestWithoutJavadocComment[] as it does not have a docs comment");
86+
}
6487
}

0 commit comments

Comments
 (0)