Add models for Apache StringUtils isEmpty methods (#264)
diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle
index d422e58..a48a882 100755
--- a/gradle/dependencies.gradle
+++ b/gradle/dependencies.gradle
@@ -67,6 +67,8 @@
// freeze at 2.5.5 since it's not supported afterward
cfCompatQual : "org.checkerframework:checker-compat-qual:2.5.5",
rxjava2 : "io.reactivex.rxjava2:rxjava:2.1.2",
+ commonsLang3 : "org.apache.commons:commons-lang3:3.8.1",
+ commonsLang : "commons-lang:commons-lang:2.6",
]
ext.deps = [
diff --git a/nullaway/build.gradle b/nullaway/build.gradle
index 063259d..1a5f414 100644
--- a/nullaway/build.gradle
+++ b/nullaway/build.gradle
@@ -54,6 +54,8 @@
testCompile deps.test.inferAnnotations
testCompile deps.apt.javaxInject
testCompile deps.test.rxjava2
+ testCompile deps.test.commonsLang
+ testCompile deps.test.commonsLang3
}
javadoc {
diff --git a/nullaway/src/main/java/com/uber/nullaway/handlers/LibraryModelsHandler.java b/nullaway/src/main/java/com/uber/nullaway/handlers/LibraryModelsHandler.java
index bd0f800..d0af1cb 100644
--- a/nullaway/src/main/java/com/uber/nullaway/handlers/LibraryModelsHandler.java
+++ b/nullaway/src/main/java/com/uber/nullaway/handlers/LibraryModelsHandler.java
@@ -294,6 +294,11 @@
.put(methodRef(Strings.class, "isNullOrEmpty(java.lang.String)"), 0)
.put(methodRef(Objects.class, "isNull(java.lang.Object)"), 0)
.put(methodRef("android.text.TextUtils", "isEmpty(java.lang.CharSequence)"), 0)
+ .put(methodRef("org.apache.commons.lang.StringUtils", "isEmpty(java.lang.String)"), 0)
+ .put(
+ methodRef(
+ "org.apache.commons.lang3.StringUtils", "isEmpty(java.lang.CharSequence)"),
+ 0)
.build();
private static final ImmutableSet<MethodRef> NULLABLE_RETURNS =
diff --git a/nullaway/src/test/resources/com/uber/nullaway/testdata/NullAwayNativeModels.java b/nullaway/src/test/resources/com/uber/nullaway/testdata/NullAwayNativeModels.java
index 773e4b8..14aa878 100644
--- a/nullaway/src/test/resources/com/uber/nullaway/testdata/NullAwayNativeModels.java
+++ b/nullaway/src/test/resources/com/uber/nullaway/testdata/NullAwayNativeModels.java
@@ -310,4 +310,17 @@
s.hashCode();
}
}
+
+ static void apacheCommonsStuff() {
+ String s = null;
+ if (!org.apache.commons.lang.StringUtils.isEmpty(s)) {
+ // no warning due to isEmpty check
+ s.hashCode();
+ }
+ String t = null;
+ if (!org.apache.commons.lang3.StringUtils.isEmpty(t)) {
+ // no warning due to isEmpty check
+ t.hashCode();
+ }
+ }
}