diff --git a/clevertap-core/src/main/java/com/clevertap/android/sdk/variables/Parser.java b/clevertap-core/src/main/java/com/clevertap/android/sdk/variables/Parser.java index 0f53744a9..7e805f65e 100644 --- a/clevertap-core/src/main/java/com/clevertap/android/sdk/variables/Parser.java +++ b/clevertap-core/src/main/java/com/clevertap/android/sdk/variables/Parser.java @@ -159,7 +159,7 @@ void defineVariable(final Object instance, String name, T value, String kind // we first call var.define(..) with field name, value and kind final Var var = Var.define(name, value, kind, ctVariables); if (var == null) { - log("Something went wrong, var is null, returning"); + log("Something went wrong, variable '" + name + "' is null, returning"); return; } diff --git a/clevertap-core/src/main/java/com/clevertap/android/sdk/variables/Var.java b/clevertap-core/src/main/java/com/clevertap/android/sdk/variables/Var.java index e1c520a1e..09396021a 100644 --- a/clevertap-core/src/main/java/com/clevertap/android/sdk/variables/Var.java +++ b/clevertap-core/src/main/java/com/clevertap/android/sdk/variables/Var.java @@ -70,6 +70,11 @@ public static Var define(String name, T defaultValue, String kind, CTVari log("Variable name starts or ends with a `.` which is not allowed: " + name); return null; } + if (defaultValue == null) { + Logger.d("Invalid Operation! Null values are not allowed as default values when defining the variable '" + + name + "'."); + return null; + } Var existing = ctVariables.getVarCache().getVariable(name); if (existing != null) { diff --git a/clevertap-core/src/test/java/com/clevertap/android/sdk/variables/VarCacheTest.kt b/clevertap-core/src/test/java/com/clevertap/android/sdk/variables/VarCacheTest.kt index b7ccaf9a2..1c7b604e4 100644 --- a/clevertap-core/src/test/java/com/clevertap/android/sdk/variables/VarCacheTest.kt +++ b/clevertap-core/src/test/java/com/clevertap/android/sdk/variables/VarCacheTest.kt @@ -49,7 +49,7 @@ class VarCacheTest : BaseTestCase() { parser.parseVariables(NullDefaultValue()) - assertNull(varCache.getVariable("string_with_null").value()) + assertNull(varCache.getVariable("string_with_null")) } @Test @@ -58,7 +58,7 @@ class VarCacheTest : BaseTestCase() { Var.define("var_string", null, ctVariables) - assertNull(varCache.getVariable("var_string").value()) + assertNull(varCache.getVariable("var_string")) } @Test