From a9b52cee6beb66559b6e74c3d896a5595b7219ec Mon Sep 17 00:00:00 2001 From: Maxime Biais Date: Tue, 29 Sep 2015 09:01:33 +0200 Subject: [PATCH] Check null query string --- .../org/wordpress/android/util/JSONUtils.java | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/WordPressUtils/src/main/java/org/wordpress/android/util/JSONUtils.java b/WordPressUtils/src/main/java/org/wordpress/android/util/JSONUtils.java index 6df9e0b0aa9d..8738acd24384 100644 --- a/WordPressUtils/src/main/java/org/wordpress/android/util/JSONUtils.java +++ b/WordPressUtils/src/main/java/org/wordpress/android/util/JSONUtils.java @@ -10,15 +10,15 @@ import java.util.ArrayList; public class JSONUtils { - private static String QUERY_SEPERATOR="."; - private static String QUERY_ARRAY_INDEX_START="["; - private static String QUERY_ARRAY_INDEX_END="]"; - private static String QUERY_ARRAY_FIRST="first"; - private static String QUERY_ARRAY_LAST="last"; + private static String QUERY_SEPERATOR = "."; + private static String QUERY_ARRAY_INDEX_START = "["; + private static String QUERY_ARRAY_INDEX_END = "]"; + private static String QUERY_ARRAY_FIRST = "first"; + private static String QUERY_ARRAY_LAST = "last"; private static final String JSON_NULL_STR = "null"; + private static final String TAG = "JSONUtils"; - private static final String TAG="JSONUtils"; /** * Given a JSONObject and a key path (e.g property.child) and a default it will * traverse the object graph and pull out the desired property @@ -28,6 +28,10 @@ public static U queryJSON(JSONObject source, String query, U defaultObject) AppLog.e(T.UTILS, "Parameter source is null, can't query a null object"); return defaultObject; } + if (query == null) { + AppLog.e(T.UTILS, "Parameter query is null"); + return defaultObject; + } int nextSeperator = query.indexOf(QUERY_SEPERATOR); int nextIndexStart = query.indexOf(QUERY_ARRAY_INDEX_START); if (nextSeperator == -1 && nextIndexStart == -1) { @@ -59,9 +63,6 @@ public static U queryJSON(JSONObject source, String query, U defaultObject) String nextQuery = query.substring(endQuery); String key = query.substring(0, endQuery); try { - if (source == null) { - return defaultObject; - } if (nextQuery.indexOf(QUERY_SEPERATOR) == 0) { return queryJSON(source.getJSONObject(key), nextQuery.substring(1), defaultObject); } else if (nextQuery.indexOf(QUERY_ARRAY_INDEX_START) == 0) { @@ -97,6 +98,10 @@ public static U queryJSON(JSONArray source, String query, U defaultObject) { AppLog.e(T.UTILS, "Parameter source is null, can't query a null object"); return defaultObject; } + if (query == null) { + AppLog.e(T.UTILS, "Parameter query is null"); + return defaultObject; + } // query must start with [ have an index and then have ] int indexStart = query.indexOf(QUERY_ARRAY_INDEX_START); int indexEnd = query.indexOf(QUERY_ARRAY_INDEX_END);