From 5a851932de2d4b3dbeb38d9f7254d47b4ea546b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Pablo=20Gonz=C3=A1lez?= Date: Mon, 29 Apr 2024 11:35:59 -0300 Subject: [PATCH] Fix NPE when using HttpClient from online Android application --- android/src/main/java/com/genexus/Application.java | 3 +++ .../java/com/genexus/specific/android/Application.java | 10 +++++++++- .../java/com/genexus/specific/android/HttpClient.java | 6 +++++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/android/src/main/java/com/genexus/Application.java b/android/src/main/java/com/genexus/Application.java index e33ddad61..f752113dc 100644 --- a/android/src/main/java/com/genexus/Application.java +++ b/android/src/main/java/com/genexus/Application.java @@ -250,6 +250,9 @@ public static boolean hasClientPreferences() */ public static ClientPreferences getClientPreferences() { + if (!hasClientPreferences()) + return null; + return (ClientPreferences) ((ModelContext)ClientContext.getModelContext()).getPreferences(); } diff --git a/android/src/main/java/com/genexus/specific/android/Application.java b/android/src/main/java/com/genexus/specific/android/Application.java index 04401645d..a76bcbbf6 100644 --- a/android/src/main/java/com/genexus/specific/android/Application.java +++ b/android/src/main/java/com/genexus/specific/android/Application.java @@ -24,7 +24,15 @@ public void exit() { @Override public Object getProperty(String key, String defaultValue) { - return com.genexus.Application.getClientContext().getClientPreferences().getProperty(key, defaultValue); + com.genexus.ModelContext modelContext = com.genexus.Application.getClientContext(); + if (modelContext == null) + return defaultValue; + + IClientPreferences preferences = modelContext.getClientPreferences(); + if (preferences == null) + return defaultValue; + + return preferences.getProperty(key, defaultValue); } @Override diff --git a/android/src/main/java/com/genexus/specific/android/HttpClient.java b/android/src/main/java/com/genexus/specific/android/HttpClient.java index 89d890d65..372b68374 100644 --- a/android/src/main/java/com/genexus/specific/android/HttpClient.java +++ b/android/src/main/java/com/genexus/specific/android/HttpClient.java @@ -19,7 +19,11 @@ public class HttpClient implements IExtensionHttpClient { @Override public void addSDHeaders(String host, String baseURL, Hashtable headersToSend) { - com.genexus.Preferences.getDefaultPreferences().getProperty("USER_LOG_NAMESPACE", "GeneXusUserLog"); + com.genexus.Preferences preferences = com.genexus.Preferences.getDefaultPreferences(); + if (preferences == null) + return; + + preferences.getProperty("USER_LOG_NAMESPACE", "GeneXusUserLog"); } @Override