From 4967a7d368eb08242cf6530c783f4b89cbb0e3e0 Mon Sep 17 00:00:00 2001 From: David Schlosnagle Date: Thu, 15 Sep 2022 00:44:53 -0400 Subject: [PATCH 1/4] NullAway annotated com.google.common --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index ac9eb4948..9fb75df86 100644 --- a/build.gradle +++ b/build.gradle @@ -65,7 +65,7 @@ allprojects { ] options.errorprone { - option('NullAway:AnnotatedPackages', 'com.palantir') + option('NullAway:AnnotatedPackages', 'com.palantir,com.google.common') option('NullAway:CheckOptionalEmptiness', 'true') option('AllSuggestionsAsWarnings') // https://github.com/google/error-prone/pull/3301 From cf222d9f24c43618b07449791ec3991694b0901c Mon Sep 17 00:00:00 2001 From: David Schlosnagle Date: Thu, 15 Sep 2022 09:32:22 -0400 Subject: [PATCH 2/4] Appease NullAway --- .../main/java/com/palantir/tritium/processor/Methods.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tritium-processor/src/main/java/com/palantir/tritium/processor/Methods.java b/tritium-processor/src/main/java/com/palantir/tritium/processor/Methods.java index 6df0d5004..e9f9aaa39 100644 --- a/tritium-processor/src/main/java/com/palantir/tritium/processor/Methods.java +++ b/tritium-processor/src/main/java/com/palantir/tritium/processor/Methods.java @@ -17,6 +17,7 @@ package com.palantir.tritium.processor; import com.google.common.base.CaseFormat; +import com.google.common.base.Strings; import com.squareup.javapoet.CodeBlock; import com.squareup.javapoet.FieldSpec; import com.squareup.javapoet.TypeName; @@ -66,9 +67,9 @@ static IdentityHashMap methodStaticFieldName( IdentityHashMap result = new IdentityHashMap<>(); for (MethodElements method : instrumentedMethods) { String methodName = method.element().getSimpleName().toString(); - String originalMethodFieldName = CaseFormat.LOWER_CAMEL + String originalMethodFieldName = Strings.nullToEmpty(CaseFormat.LOWER_CAMEL .converterTo(CaseFormat.UPPER_UNDERSCORE) - .convert(methodName); + .convert(methodName)); String methodFieldName = originalMethodFieldName; for (int i = 1; true; i++) { String finalName = methodFieldName; From 5e14709b6fbb929036373a4de28d06be4ee4f085 Mon Sep 17 00:00:00 2001 From: svc-changelog Date: Thu, 15 Sep 2022 13:38:00 +0000 Subject: [PATCH 3/4] Add generated changelog entries --- changelog/@unreleased/pr-1570.v2.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 changelog/@unreleased/pr-1570.v2.yml diff --git a/changelog/@unreleased/pr-1570.v2.yml b/changelog/@unreleased/pr-1570.v2.yml new file mode 100644 index 000000000..2ccee2cfb --- /dev/null +++ b/changelog/@unreleased/pr-1570.v2.yml @@ -0,0 +1,5 @@ +type: improvement +improvement: + description: Enforce NullAway for Guava packages + links: + - https://github.com/palantir/tritium/pull/1570 From 8aeaabd6274619927a8c8faaaa65a880e1cf6cc0 Mon Sep 17 00:00:00 2001 From: David Schlosnagle Date: Thu, 15 Sep 2022 09:37:33 -0400 Subject: [PATCH 4/4] Enforce non-null method name --- .../java/com/palantir/tritium/processor/Methods.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tritium-processor/src/main/java/com/palantir/tritium/processor/Methods.java b/tritium-processor/src/main/java/com/palantir/tritium/processor/Methods.java index e9f9aaa39..0fdac164d 100644 --- a/tritium-processor/src/main/java/com/palantir/tritium/processor/Methods.java +++ b/tritium-processor/src/main/java/com/palantir/tritium/processor/Methods.java @@ -17,7 +17,7 @@ package com.palantir.tritium.processor; import com.google.common.base.CaseFormat; -import com.google.common.base.Strings; +import com.palantir.logsafe.Preconditions; import com.squareup.javapoet.CodeBlock; import com.squareup.javapoet.FieldSpec; import com.squareup.javapoet.TypeName; @@ -67,9 +67,11 @@ static IdentityHashMap methodStaticFieldName( IdentityHashMap result = new IdentityHashMap<>(); for (MethodElements method : instrumentedMethods) { String methodName = method.element().getSimpleName().toString(); - String originalMethodFieldName = Strings.nullToEmpty(CaseFormat.LOWER_CAMEL - .converterTo(CaseFormat.UPPER_UNDERSCORE) - .convert(methodName)); + String originalMethodFieldName = Preconditions.checkNotNull( + CaseFormat.LOWER_CAMEL + .converterTo(CaseFormat.UPPER_UNDERSCORE) + .convert(methodName), + "methodName cannot be null"); String methodFieldName = originalMethodFieldName; for (int i = 1; true; i++) { String finalName = methodFieldName;