From 869d52f145c077e3499b88df752cebc60af51d66 Mon Sep 17 00:00:00 2001 From: Adam Michael Date: Tue, 7 Mar 2017 01:48:06 +0000 Subject: Fix NPE in Android{S,N}dkRepositoryFunction. If neither the path attribute or the $ANDROID_HOME/$ANDROID_NDK_HOME environment variable is set, we should report a helpful error message. A previous change switched the lookup for the environment variable from the client environment map to the skyframe environment map. However in the skyframe action environment map, environment variables that are requested but not set in the environment have null values. Followup to change needed for #2621. -- PiperOrigin-RevId: 149369076 MOS_MIGRATED_REVID=149369076 --- .../build/lib/bazel/rules/android/AndroidNdkRepositoryFunction.java | 2 +- .../build/lib/bazel/rules/android/AndroidSdkRepositoryFunction.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryFunction.java index bf0818b776..6373eb66ce 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryFunction.java @@ -106,7 +106,7 @@ public class AndroidNdkRepositoryFunction extends RepositoryFunction { PathFragment pathFragment; if (attributes.isAttributeValueExplicitlySpecified("path")) { pathFragment = getTargetPath(rule, directories.getWorkspace()); - } else if (environ.containsKey(PATH_ENV_VAR)) { + } else if (environ.get(PATH_ENV_VAR) != null) { pathFragment = getAndroidNdkHomeEnvironmentVar(directories.getWorkspace(), environ); } else { throw new RepositoryFunctionException( diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidSdkRepositoryFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidSdkRepositoryFunction.java index fb407e3040..598784a368 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidSdkRepositoryFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidSdkRepositoryFunction.java @@ -93,7 +93,7 @@ public class AndroidSdkRepositoryFunction extends RepositoryFunction { Path androidSdkPath; if (attributes.isAttributeValueExplicitlySpecified("path")) { androidSdkPath = fs.getPath(getTargetPath(rule, directories.getWorkspace())); - } else if (environ.containsKey(PATH_ENV_VAR)){ + } else if (environ.get(PATH_ENV_VAR) != null) { androidSdkPath = fs.getPath(getAndroidHomeEnvironmentVar(directories.getWorkspace(), environ)); } else { -- cgit v1.2.3