Skip to content

Commit 3337a15

Browse files
author
Vincent Potucek
committed
Add error-prone.picnic.tech
1 parent 805adad commit 3337a15

File tree

3 files changed

+114
-21
lines changed

3 files changed

+114
-21
lines changed

gradle/libs.versions.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,9 @@ bndlib = { module = "biz.aQute.bnd:biz.aQute.bndlib", version.ref = "bnd" }
3131
checkstyle = { module = "com.puppycrawl.tools:checkstyle", version.ref = "checkstyle" }
3232
classgraph = { module = "io.github.classgraph:classgraph", version = "4.8.181" }
3333
commons-io = { module = "commons-io:commons-io", version = "2.20.0" }
34-
errorProne-core = { module = "com.google.errorprone:error_prone_core", version = "2.42.0" }
34+
error-prone-core = { module = "com.google.errorprone:error_prone_core", version = "2.42.0" }
35+
error-prone-contrib = { module = "tech.picnic.error-prone-support:error-prone-contrib", version = "0.25.0" }
36+
refaster-runner = { module = "tech.picnic.error-prone-support:refaster-runner", version = "0.25.0" }
3537
fastcsv = { module = "de.siegmar:fastcsv", version = "4.0.0" }
3638
groovy = { module = "org.apache.groovy:groovy", version = "5.0.1" }
3739
groovy2-bom = { module = "org.codehaus.groovy:groovy-bom", version = "2.5.23" }

gradle/plugins/common/src/main/kotlin/junitbuild.java-nullability-conventions.gradle.kts

Lines changed: 110 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import junitbuild.extensions.dependencyFromLibs
22
import net.ltgt.gradle.errorprone.errorprone
33
import net.ltgt.gradle.nullaway.nullaway
4+
import java.lang.System.getenv
45

56
plugins {
67
`java-library`
@@ -9,8 +10,10 @@ plugins {
910
}
1011

1112
dependencies {
12-
errorprone(dependencyFromLibs("errorProne-core"))
13+
errorprone(dependencyFromLibs("error-prone-contrib"))
14+
errorprone(dependencyFromLibs("error-prone-core"))
1315
errorprone(dependencyFromLibs("nullaway"))
16+
errorprone(dependencyFromLibs("refaster-runner"))
1417
constraints {
1518
errorprone("com.google.guava:guava") {
1619
version {
@@ -27,29 +30,117 @@ nullaway {
2730

2831
tasks.withType<JavaCompile>().configureEach {
2932
options.errorprone {
33+
allErrorsAsWarnings = true
34+
disableWarningsInGeneratedCode = true
35+
errorproneArgs.add("-XepOpt:Refaster:NamePattern=^(?!.*Rules\\$).*") // might consider.
36+
if (getenv("IN_PLACE").toBoolean()) {
37+
errorproneArgs.addAll(
38+
"-XepPatchLocation:IN_PLACE", // why only certain picnic rules apply?
39+
"-XepPatchChecks:" +
40+
"AddNullMarkedToPackageInfo," +
41+
"AmbiguousJsonCreator," +
42+
"AssertJNullnessAssertion," +
43+
"AutowiredConstructor," +
44+
"CanonicalAnnotationSyntax," +
45+
"CanonicalClassNameUsage," +
46+
"ClassCastLambdaUsage," +
47+
"CollectorMutability," +
48+
"ConstantNaming," +
49+
"DeadException," +
50+
"DefaultCharset," +
51+
"EagerStringFormatting," +
52+
"EmptyMethod," +
53+
"EmptyMonoZip," +
54+
"ExplicitArgumentEnumeration," +
55+
"ExplicitEnumOrdering," +
56+
"FluxFlatMapUsage," +
57+
"FluxImplicitBlock," +
58+
"FormatStringConcatenation," +
59+
"IdentityConversion," +
60+
"ImmutablesSortedSetComparator," +
61+
"IsInstanceLambdaUsage," +
62+
"JUnitClassModifiers," +
63+
"JUnitMethodDeclaration," +
64+
"JUnitNullaryParameterizedTestDeclaration," +
65+
"JUnitValueSource," +
66+
"LexicographicalAnnotationAttributeListing," +
67+
"LexicographicalAnnotationListing," +
68+
"MissingOverride," +
69+
"MockitoMockClassReference," +
70+
"MockitoStubbing," +
71+
"MongoDBTextFilterUsage," +
72+
"NestedOptionals," +
73+
"NestedPublishers," +
74+
"NonEmptyMono," +
75+
"NonStaticImport," +
76+
"OptionalOrElseGet," +
77+
"PrimitiveComparison," +
78+
"RedundantStringConversion," +
79+
"RedundantStringEscape," +
80+
"RefasterAnyOfUsage," +
81+
"ImmutableEnumChecker," +
82+
"RequestMappingAnnotation," +
83+
"RequestParamType," +
84+
"Slf4jLogStatement," +
85+
"Slf4jLoggerDeclaration," +
86+
"SpringMvcAnnotation," +
87+
"StaticImport," +
88+
"StringJoin," +
89+
"TimeZoneUsage"
90+
)
91+
}
3092
val shouldDisableErrorProne = java.toolchain.implementation.orNull == JvmImplementation.J9
3193
if (name == "compileJava" && !shouldDisableErrorProne) {
3294
disable(
33-
34-
// This check is opinionated wrt. which method names it considers unsuitable for import which includes
35-
// a few of our own methods in `ReflectionUtils` etc.
36-
"BadImport",
37-
38-
// The findings of this check are subjective because a named constant can be more readable in many cases
39-
"UnnecessaryLambda",
40-
41-
// Resolving findings for these checks requires ErrorProne's annotations which we don't want to use
42-
"AnnotateFormatMethod",
95+
"AnnotateFormatMethod", // We don't want to use ErrorProne's annotations.
96+
"BadImport", // This check is opinionated wrt. which method names it considers unsuitable for import which includes a few of our own methods in `ReflectionUtils` etc.
97+
"DirectReturn", // https://github.com/junit-team/junit-framework/pull/5006#discussion_r2403984446
4398
"DoNotCallSuggester",
44-
"InlineMeSuggester",
4599
"ImmutableEnumChecker",
46-
47-
// Resolving findings for this check requires using Guava which we don't want to use
48-
"StringSplitter",
49-
50-
// Produces a lot of findings that we consider to be false positives, for example for package-private
51-
// classes and methods
52-
"MissingSummary",
100+
"InlineMeSuggester",
101+
"MissingSummary", // Produces a lot of findings that we consider to be false positives, for example for package-private classes and methods.
102+
"StringSplitter", // We don't want to use Guava.
103+
"UnnecessaryLambda", // The findings of this check are subjective because a named constant can be more readable in many cases.
104+
// might consider: https://error-prone.picnic.tech
105+
"AddNullMarkedToPackageInfo",
106+
"AmbiguousJsonCreator",
107+
"AssertJNullnessAssertion",
108+
"AutowiredConstructor",
109+
"CanonicalAnnotationSyntax",
110+
"CanonicalClassNameUsage",
111+
"ClassCastLambdaUsage",
112+
"CollectorMutability",
113+
"ConstantNaming",
114+
"DeadException",
115+
"EagerStringFormatting",
116+
"EmptyMonoZip",
117+
"ExplicitArgumentEnumeration",
118+
"ExplicitEnumOrdering",
119+
"FluxFlatMapUsage",
120+
"FluxImplicitBlock",
121+
"FormatStringConcatenation",
122+
"IdentityConversion",
123+
"ImmutablesSortedSetComparator",
124+
"IsInstanceLambdaUsage",
125+
"JUnitClassModifiers",
126+
"JUnitMethodDeclaration",
127+
"JUnitNullaryParameterizedTestDeclaration",
128+
"JUnitValueSource",
129+
"LexicographicalAnnotationAttributeListing",
130+
"LexicographicalAnnotationListing",
131+
"MockitoMockClassReference",
132+
"MockitoStubbing",
133+
"NestedOptionals",
134+
"NestedPublishers",
135+
"NonEmptyMono",
136+
"NonStaticImport",
137+
"OptionalOrElseGet",
138+
"PrimitiveComparison",
139+
"RequestMappingAnnotation",
140+
"Slf4jLogStatement",
141+
"Slf4jLoggerDeclaration",
142+
"StaticImport",
143+
"TimeZoneUsage",
53144
)
54145
error("PackageLocation")
55146
} else {

junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/extension/PreInterruptThreadDumpPrinter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public void beforeThreadInterrupt(PreInterruptContext preInterruptContext, Exten
4949
sb.append(NL);
5050
// Use the same prefix as java.lang.Throwable.printStackTrace(PrintStreamOrWriter)
5151
sb.append("\tat ");
52-
sb.append(stackTraceElement.toString());
52+
sb.append(stackTraceElement);
5353
}
5454
sb.append(NL);
5555
}

0 commit comments

Comments
 (0)