This is an automated email from the ASF dual-hosted git repository.

madhan pushed a commit to branch ranger-2.8
in repository https://gitbox.apache.org/repos/asf/ranger.git


The following commit(s) were added to refs/heads/ranger-2.8 by this push:
     new 7bccdbdd8 RANGER-5443: update JsonUtils to fix unchecked cast warnings 
(#801)
7bccdbdd8 is described below

commit 7bccdbdd8f964efdf5bcef464790c1c798e11a96
Author: Madhan Neethiraj <[email protected]>
AuthorDate: Tue Jan 13 07:11:26 2026 -0800

    RANGER-5443: update JsonUtils to fix unchecked cast warnings (#801)
---
 .../ranger/authorization/utils/JsonUtils.java      | 184 ++++++++++-----------
 .../ranger/authorization/utils/StringUtil.java     |  81 ++++-----
 2 files changed, 116 insertions(+), 149 deletions(-)

diff --git 
a/agents-common/src/main/java/org/apache/ranger/authorization/utils/JsonUtils.java
 
b/agents-common/src/main/java/org/apache/ranger/authorization/utils/JsonUtils.java
index a89e5aaaa..575ac1de4 100755
--- 
a/agents-common/src/main/java/org/apache/ranger/authorization/utils/JsonUtils.java
+++ 
b/agents-common/src/main/java/org/apache/ranger/authorization/utils/JsonUtils.java
@@ -20,7 +20,6 @@
 import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.JsonMappingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.MapUtils;
@@ -47,235 +46,228 @@
 public class JsonUtils {
     private static final Logger LOG = LoggerFactory.getLogger(JsonUtils.class);
 
-    private static final TypeReference TYPE_MAP_STRING_STRING               = 
new TypeReference<Map<String, String>>() {};
-    private static final TypeReference TYPE_SET_STRING                      = 
new TypeReference<Set<String>>() {};
-    private static final TypeReference TYPE_LIST_STRING                     = 
new TypeReference<List<String>>() {};
-    private static final TypeReference TYPE_LIST_RANGER_VALIDITY_SCHEDULE   = 
new TypeReference<List<RangerValiditySchedule>>() {};
-    private static final TypeReference TYPE_LIST_AUDIT_FILTER               = 
new TypeReference<List<AuditFilter>>() {};
-    private static final TypeReference TYPE_LIST_RANGER_VALIDITY_RECURRENCE = 
new TypeReference<List<RangerValidityRecurrence>>() {};
-    private static final TypeReference TYPE_LIST_RANGER_PRINCIPAL           = 
new TypeReference<List<RangerPrincipal>>() {};
-    private static final TypeReference TYPE_MAP_RANGER_MASK_INFO            = 
new TypeReference<Map<String, RangerPolicyItemDataMaskInfo>>() {};
-    private static final TypeReference TYPE_MAP_RANGER_POLICY_RESOURCE      = 
new TypeReference<Map<String, RangerPolicyResource>>() {};
-    private static final TypeReference TYPE_LIST_RANGER_TAG                 = 
new TypeReference<List<RangerTag>>() {};
-
-    static private final ThreadLocal<ObjectMapper> MAPPER = new 
ThreadLocal<ObjectMapper>() {
-        @Override
-        protected ObjectMapper initialValue() {
-            ObjectMapper      objectMapper = new ObjectMapper();
-            objectMapper.setDateFormat(new 
SimpleDateFormat("yyyyMMdd-HH:mm:ss.SSS-Z"));
-            objectMapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, 
true);
-            objectMapper.configure(FAIL_ON_UNKNOWN_PROPERTIES, false);
-            return objectMapper;
-        }
-    };
+    private static final TypeReference<Map<String, String>>                    
   TYPE_MAP_STRING_STRING               = new TypeReference<Map<String, 
String>>() {};
+    private static final TypeReference<Set<String>>                            
   TYPE_SET_STRING                      = new TypeReference<Set<String>>() {};
+    private static final TypeReference<List<String>>                           
   TYPE_LIST_STRING                     = new TypeReference<List<String>>() {};
+    private static final TypeReference<List<RangerValiditySchedule>>           
   TYPE_LIST_RANGER_VALIDITY_SCHEDULE   = new 
TypeReference<List<RangerValiditySchedule>>() {};
+    private static final TypeReference<List<AuditFilter>>                      
   TYPE_LIST_AUDIT_FILTER               = new 
TypeReference<List<AuditFilter>>() {};
+    private static final TypeReference<List<RangerValidityRecurrence>>         
   TYPE_LIST_RANGER_VALIDITY_RECURRENCE = new 
TypeReference<List<RangerValidityRecurrence>>() {};
+    private static final TypeReference<List<RangerPrincipal>>                  
   TYPE_LIST_RANGER_PRINCIPAL           = new 
TypeReference<List<RangerPrincipal>>() {};
+    private static final TypeReference<Map<String, 
RangerPolicyItemDataMaskInfo>> TYPE_MAP_RANGER_MASK_INFO            = new 
TypeReference<Map<String, RangerPolicyItemDataMaskInfo>>() {};
+    private static final TypeReference<Map<String, RangerPolicyResource>>      
   TYPE_MAP_RANGER_POLICY_RESOURCE      = new TypeReference<Map<String, 
RangerPolicyResource>>() {};
+    private static final TypeReference<List<RangerTag>>                        
   TYPE_LIST_RANGER_TAG                 = new TypeReference<List<RangerTag>>() 
{};
+
+    private static final ThreadLocal<ObjectMapper> MAPPER = 
ThreadLocal.withInitial(() -> {
+        ObjectMapper objectMapper = new ObjectMapper();
+
+        objectMapper.setDateFormat(new 
SimpleDateFormat("yyyyMMdd-HH:mm:ss.SSS-Z"));
+        objectMapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
+        objectMapper.configure(FAIL_ON_UNKNOWN_PROPERTIES, false);
+
+        return objectMapper;
+    });
 
     static public ObjectMapper getMapper() {
         return MAPPER.get();
     }
 
     public static String mapToJson(Map<?, ?> map) {
-        String ret = null;
         if (MapUtils.isNotEmpty(map)) {
             try {
-                ret = getMapper().writeValueAsString(map);
+                return getMapper().writeValueAsString(map);
             } catch (Exception e) {
                 LOG.error("Invalid input data: ", e);
             }
         }
-        return ret;
+
+        return null;
     }
 
     public static String listToJson(List<?> list) {
-        String ret = null;
         if (CollectionUtils.isNotEmpty(list)) {
             try {
-                ret = getMapper().writeValueAsString(list);
+                return getMapper().writeValueAsString(list);
             } catch (Exception e) {
                 LOG.error("Invalid input data: ", e);
             }
         }
-        return ret;
+
+        return null;
     }
 
     public static String setToJson(Set<?> set) {
-        String ret = null;
         if (CollectionUtils.isNotEmpty(set)) {
             try {
-                ret = getMapper().writeValueAsString(set);
+                return getMapper().writeValueAsString(set);
             } catch (Exception e) {
                 LOG.error("Invalid input data: ", e);
             }
         }
-        return ret;
+
+        return null;
     }
 
     public static String objectToJson(Object object) {
-        String ret = null;
-
-        if(object != null) {
+        if (object != null) {
             try {
-                ret = getMapper().writeValueAsString(object);
+                return getMapper().writeValueAsString(object);
             } catch(Exception excp) {
                 LOG.warn("objectToJson() failed to convert object to Json", 
excp);
             }
         }
 
-        return ret;
+        return null;
     }
 
-    public static <T> T     jsonToObject(Reader reader, Class<T> clz) {
-        T ret = null;
-
-        if(null != reader) {
+    public static <T> T jsonToObject(Reader reader, Class<T> clz) {
+        if (null != reader) {
             try {
-                ret = getMapper().readValue(reader, clz);
+                return getMapper().readValue(reader, clz);
             } catch(Exception excp) {
-                LOG.warn("jsonToObject() failed to convert json to object: 
class "  + clz + " reader ", excp);
+                LOG.warn("jsonToObject() failed to convert json to object: 
class {} reader ", clz, excp);
             }
         }
 
-        return ret;
+        return null;
     }
 
-    public static <T> void    objectToWriter(Writer writer, T object) {
-        if(null != writer) {
+    public static <T> void objectToWriter(Writer writer, T object) {
+        if (null != writer) {
             try {
                 getMapper().writeValue(writer, object);
             } catch(Exception excp) {
-                LOG.warn("objectToWriter() failed to write oject to writer: 
class "  + object + " writer ", excp);
+                LOG.warn("objectToWriter() failed to write object to writer: 
class {} writer ", object, excp);
             }
         }
     }
 
-    public static <T> T     jsonToObject(String jsonStr, Class<T> clz) {
-        T ret = null;
-
-        if(StringUtils.isNotEmpty(jsonStr)) {
+    public static <T> T jsonToObject(String jsonStr, Class<T> clz) {
+        if (StringUtils.isNotEmpty(jsonStr)) {
             try {
-                ret = getMapper().readValue(jsonStr, clz);
+                return getMapper().readValue(jsonStr, clz);
             } catch(Exception excp) {
-                LOG.warn("jsonToObject() failed to convert json to object: 
class "  +clz + " JSON "+ jsonStr, excp);
+                LOG.warn("jsonToObject() failed to convert json to object: 
class {} JSON {}", clz, jsonStr, excp);
             }
         }
 
-        return ret;
+        return null;
     }
 
-    public static <T> T jsonToObject(String jsonStr, TypeReference<T> 
valueTypeRef) throws JsonProcessingException, JsonMappingException {
-        T ret = null;
-        if(StringUtils.isNotEmpty(jsonStr)) {
+    public static <T> T jsonToObject(String jsonStr, TypeReference<T> 
valueTypeRef) throws JsonProcessingException {
+        if (StringUtils.isNotEmpty(jsonStr)) {
             try {
-                ret = getMapper().readValue(jsonStr, valueTypeRef);
+                return getMapper().readValue(jsonStr, valueTypeRef);
             } catch(Exception excp) {
-                LOG.warn("jsonToObject() failed to convert json to object: " + 
jsonStr, excp);
+                LOG.warn("jsonToObject() failed to convert json to object: 
{}", jsonStr, excp);
             }
         }
 
-        return (T) ret;
+        return null;
     }
 
     public static Map<String, String> jsonToMapStringString(String jsonStr) {
-        Map<String, String> ret = null;
-
-        if(StringUtils.isNotEmpty(jsonStr)) {
+        if (StringUtils.isNotEmpty(jsonStr)) {
             try {
-                ret = (Map<String, String>) getMapper().readValue(jsonStr, 
TYPE_MAP_STRING_STRING);
+                return getMapper().readValue(jsonStr, TYPE_MAP_STRING_STRING);
             } catch(Exception excp) {
-                LOG.warn("jsonToMapStringString() failed to convert json to 
object: " + jsonStr, excp);
+                LOG.warn("jsonToMapStringString() failed to convert json to 
object: {}", jsonStr, excp);
             }
         }
 
-        return ret;
+        return null;
     }
 
     public static Set<String> jsonToSetString(String jsonStr) {
-        Set<String> ret = null;
-
         if (StringUtils.isNotEmpty(jsonStr)) {
             try {
-                ret =  (Set<String>) getMapper().readValue(jsonStr, 
TYPE_SET_STRING);
+                return getMapper().readValue(jsonStr, TYPE_SET_STRING);
             } catch(Exception excp) {
-                LOG.warn("jsonToSetString() failed to convert json to object: 
" + jsonStr, excp);
+                LOG.warn("jsonToSetString() failed to convert json to object: 
{}", jsonStr, excp);
             }
         }
 
-        return ret;
+        return null;
     }
 
     public static List<String> jsonToListString(String jsonStr) {
-        List<String> ret = null;
-
         if (StringUtils.isNotEmpty(jsonStr)) {
             try {
-                ret = (List<String>) getMapper().readValue(jsonStr, 
TYPE_LIST_STRING);
+                return getMapper().readValue(jsonStr, TYPE_LIST_STRING);
             } catch(Exception excp) {
-                LOG.warn("jsonToListString() failed to convert json to object: 
" + jsonStr, excp);
+                LOG.warn("jsonToListString() failed to convert json to object: 
{}", jsonStr, excp);
             }
         }
 
-        return ret;
+        return null;
     }
 
     public static List<RangerValiditySchedule> 
jsonToRangerValiditySchedule(String jsonStr) {
         try {
-            return (List<RangerValiditySchedule>) 
getMapper().readValue(jsonStr, TYPE_LIST_RANGER_VALIDITY_SCHEDULE);
+            return getMapper().readValue(jsonStr, 
TYPE_LIST_RANGER_VALIDITY_SCHEDULE);
         } catch (Exception e) {
-            LOG.error("Cannot get List<RangerValiditySchedule> from " + 
jsonStr, e);
-            return null;
+            LOG.error("Cannot get List<RangerValiditySchedule> from {}", 
jsonStr, e);
         }
+
+        return null;
     }
 
     public static List<AuditFilter> jsonToAuditFilterList(String jsonStr) {
         try {
-            return (List<AuditFilter>) getMapper().readValue(jsonStr, 
TYPE_LIST_AUDIT_FILTER);
+            return getMapper().readValue(jsonStr, TYPE_LIST_AUDIT_FILTER);
         } catch (Exception e) {
-            LOG.error("failed to create audit filters from: " + jsonStr, e);
-            return null;
+            LOG.error("failed to create audit filters from: {}", jsonStr, e);
         }
+
+        return null;
     }
 
     public static List<RangerValidityRecurrence> 
jsonToRangerValidityRecurringSchedule(String jsonStr) {
         try {
-            return (List<RangerValidityRecurrence>) 
getMapper().readValue(jsonStr, TYPE_LIST_RANGER_VALIDITY_RECURRENCE);
+            return getMapper().readValue(jsonStr, 
TYPE_LIST_RANGER_VALIDITY_RECURRENCE);
         } catch (Exception e) {
-            LOG.error("Cannot get List<RangerValidityRecurrence> from " + 
jsonStr, e);
-            return null;
+            LOG.error("Cannot get List<RangerValidityRecurrence> from {}", 
jsonStr, e);
         }
+
+        return null;
     }
 
     public static List<RangerPrincipal> jsonToRangerPrincipalList(String 
jsonStr) {
         try {
-            return (List<RangerPrincipal>) getMapper().readValue(jsonStr, 
TYPE_LIST_RANGER_PRINCIPAL);
+            return getMapper().readValue(jsonStr, TYPE_LIST_RANGER_PRINCIPAL);
         } catch (Exception e) {
-            LOG.error("Cannot get List<RangerPrincipal> from " + jsonStr, e);
-            return null;
+            LOG.error("Cannot get List<RangerPrincipal> from {}", jsonStr, e);
         }
+
+        return null;
     }
 
     public static List<RangerTag> jsonToRangerTagList(String jsonStr) {
         try {
-            return (List<RangerTag>) getMapper().readValue(jsonStr, 
TYPE_LIST_RANGER_TAG);
+            return getMapper().readValue(jsonStr, TYPE_LIST_RANGER_TAG);
         } catch (Exception e) {
-            LOG.error("Cannot get List<RangerTag> from " + jsonStr, e);
-            return null;
+            LOG.error("Cannot get List<RangerTag> from {}", jsonStr, e);
         }
+
+        return null;
     }
 
     public static Map<String, RangerPolicyItemDataMaskInfo> 
jsonToMapMaskInfo(String jsonStr) {
         try {
-            return (Map<String, RangerPolicyItemDataMaskInfo>) 
getMapper().readValue(jsonStr, TYPE_MAP_RANGER_MASK_INFO);
+            return getMapper().readValue(jsonStr, TYPE_MAP_RANGER_MASK_INFO);
         } catch (Exception e) {
-            LOG.error("Cannot get Map<String, RangerPolicyItemDataMaskInfo> 
from " + jsonStr, e);
-            return null;
+            LOG.error("Cannot get Map<String, RangerPolicyItemDataMaskInfo> 
from {}", jsonStr, e);
         }
+
+        return null;
     }
 
     public static Map<String, RangerPolicyResource> 
jsonToMapPolicyResource(String jsonStr) {
         try {
-            return (Map<String, RangerPolicyResource>) 
getMapper().readValue(jsonStr, TYPE_MAP_RANGER_POLICY_RESOURCE);
+            return getMapper().readValue(jsonStr, 
TYPE_MAP_RANGER_POLICY_RESOURCE);
         } catch (Exception e) {
-            LOG.error("Cannot get Map<String, RangerPolicyResource> from " + 
jsonStr, e);
-            return null;
+            LOG.error("Cannot get Map<String, RangerPolicyResource> from {}", 
jsonStr, e);
         }
+
+        return null;
     }
 }
diff --git 
a/agents-common/src/main/java/org/apache/ranger/authorization/utils/StringUtil.java
 
b/agents-common/src/main/java/org/apache/ranger/authorization/utils/StringUtil.java
index 1f9ddc1dd..3675a8351 100644
--- 
a/agents-common/src/main/java/org/apache/ranger/authorization/utils/StringUtil.java
+++ 
b/agents-common/src/main/java/org/apache/ranger/authorization/utils/StringUtil.java
@@ -44,11 +44,10 @@
 import org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyResource;
 
 public class StringUtil {
-    private static final TimeZone gmtTimeZone = TimeZone.getTimeZone("GMT+0");
+       private static final TimeZone gmtTimeZone = 
TimeZone.getTimeZone("GMT+0");
 
-
-    public static boolean equals(String str1, String str2) {
-               boolean ret = false;
+       public static boolean equals(String str1, String str2) {
+               final boolean ret;
 
                if(str1 == null) {
                        ret = str2 == null;
@@ -62,7 +61,7 @@ public static boolean equals(String str1, String str2) {
        }
 
        public static boolean equalsIgnoreCase(String str1, String str2) {
-               boolean ret = false;
+               final boolean ret;
 
                if(str1 == null) {
                        ret = str2 == null;
@@ -76,7 +75,7 @@ public static boolean equalsIgnoreCase(String str1, String 
str2) {
        }
 
        public static boolean equals(Collection<String> set1, 
Collection<String> set2) {
-               boolean ret = false;
+               final boolean ret;
 
                if(set1 == null) {
                        ret = set2 == null;
@@ -84,13 +83,15 @@ public static boolean equals(Collection<String> set1, 
Collection<String> set2) {
                        ret = false;
                } else if(set1.size() == set2.size()) {
                        ret = set1.containsAll(set2);
+               } else {
+                       ret = false;
                }
 
                return ret;
        }
 
        public static boolean equalsIgnoreCase(Collection<String> set1, 
Collection<String> set2) {
-               boolean ret = false;
+               final boolean ret;
 
                if(set1 == null) {
                        ret = set2 == null;
@@ -118,13 +119,15 @@ public static boolean equalsIgnoreCase(Collection<String> 
set1, Collection<Strin
                        }
 
                        ret = numFound == set1.size();
+               } else {
+                       ret = false;
                }
 
                return ret;
        }
 
        public static boolean matches(String pattern, String str) {
-               boolean ret = false;
+               boolean ret;
 
                if(pattern == null || str == null || pattern.isEmpty() || 
str.isEmpty()) {
                        ret = true;
@@ -135,39 +138,6 @@ public static boolean matches(String pattern, String str) {
                return ret;
        }
 
-       /*
-       public static boolean matches(Collection<String> patternSet, 
Collection<String> strSet) {
-               boolean ret = false;
-
-               if(patternSet == null || strSet == null || patternSet.isEmpty() 
|| strSet.isEmpty()) {
-                       ret = true;
-               } else {
-                       boolean foundUnmatched = false;
-
-                       for(String str : strSet) {
-                               boolean isMatched = false;
-                               for(String pattern : patternSet) {
-                                       isMatched = str.matches(pattern);
-                                       
-                                       if(isMatched) {
-                                               break;
-                                       }
-                               }
-                               
-                               foundUnmatched = ! isMatched;
-                               
-                               if(foundUnmatched) {
-                                       break;
-                               }
-                       }
-                       
-                       ret = !foundUnmatched;
-               }
-
-               return ret;
-       }
-       */
-
        public static boolean contains(String str, String strToFind) {
                return str != null && strToFind != null && 
str.contains(strToFind);
        }
@@ -213,11 +183,14 @@ public static String toString(Iterable<String> iterable) {
 
                if(iterable != null) {
                        int count = 0;
+
                        for(String str : iterable) {
-                               if(count == 0)
+                               if(count == 0) {
                                        ret = str;
-                               else
+                               } else {
                                        ret += (", " + str);
+                               }
+
                                count++;
                        }
                }
@@ -230,6 +203,7 @@ public static String toString(String[] arr) {
 
                if(arr != null && arr.length > 0) {
                        ret = arr[0];
+
                        for(int i = 1; i < arr.length; i++) {
                                ret += (", " + arr[i]);
                        }
@@ -243,6 +217,7 @@ public static String toString(List<String> arr) {
 
                if(arr != null && !arr.isEmpty()) {
                        ret = arr.get(0);
+
                        for(int i = 1; i < arr.size(); i++) {
                                ret += (", " + arr.get(i));
                        }
@@ -268,15 +243,15 @@ public static byte[] getBytes(String str) {
        }
 
        public static Date getUTCDate() {
-           Calendar local  = Calendar.getInstance();
-           int      offset = 
local.getTimeZone().getOffset(local.getTimeInMillis());
+               Calendar local  = Calendar.getInstance();
+               int      offset = 
local.getTimeZone().getOffset(local.getTimeInMillis());
 
-           GregorianCalendar utc = new GregorianCalendar(gmtTimeZone);
+               GregorianCalendar utc = new GregorianCalendar(gmtTimeZone);
 
-           utc.setTimeInMillis(local.getTimeInMillis());
-           utc.add(Calendar.MILLISECOND, -offset);
+               utc.setTimeInMillis(local.getTimeInMillis());
+               utc.add(Calendar.MILLISECOND, -offset);
 
-           return utc.getTime();
+               return utc.getTime();
        }
 
        public static Date getUTCDateForLocalDate(Date date) {
@@ -297,16 +272,15 @@ public static Map<String, Object> 
toStringObjectMap(Map<String, String> map) {
                if (map != null) {
                        ret = new HashMap<>(map.size());
 
-                       for (Map.Entry<String, String> e : map.entrySet()) {
-                               ret.put(e.getKey(), e.getValue());
-                       }
+                       ret.putAll(map);
                }
 
                return ret;
        }
 
        public static Set<String> toSet(String str) {
-               Set<String> values = new HashSet<String>();
+               Set<String> values = new HashSet<>();
+
                if (StringUtils.isNotBlank(str)) {
                        for (String item : str.split(",")) {
                                if (StringUtils.isNotBlank(item)) {
@@ -314,6 +288,7 @@ public static Set<String> toSet(String str) {
                                }
                        }
                }
+
                return values;
        }
 

Reply via email to