You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by mb...@apache.org on 2017/10/10 12:28:01 UTC

svn commit: r1811685 - in /ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/collections: FlexibleServletAccessor.java LifoSet.java MapComparator.java MapContext.java ResourceBundleMapWrapper.java

Author: mbrohl
Date: Tue Oct 10 12:28:01 2017
New Revision: 1811685

URL: http://svn.apache.org/viewvc?rev=1811685&view=rev
Log:
Improved: Fixing defects reported by FindBugs, package 
org.apache.ofbiz.base.util.collections.
(OFBIZ-9590)

Thanks Dennis Balkir for reporting and providing the patch.

Modified:
    ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/collections/FlexibleServletAccessor.java
    ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/collections/LifoSet.java
    ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/collections/MapComparator.java
    ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/collections/MapContext.java
    ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/collections/ResourceBundleMapWrapper.java

Modified: ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/collections/FlexibleServletAccessor.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/collections/FlexibleServletAccessor.java?rev=1811685&r1=1811684&r2=1811685&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/collections/FlexibleServletAccessor.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/collections/FlexibleServletAccessor.java Tue Oct 10 12:28:01 2017
@@ -66,7 +66,7 @@ public class FlexibleServletAccessor<T>
         } else {
             empty = false;
             int openPos = name.indexOf("${");
-            if (openPos != -1 && name.indexOf("}", openPos) != -1) {
+            if (openPos != -1 && name.indexOf('}', openPos) != -1) {
                 fma = null;
                 attributeName = null;
                 needsExpand = true;
@@ -95,7 +95,7 @@ public class FlexibleServletAccessor<T>
      * @return the object corresponding to this getter class
      */
     public T get(ServletRequest request, Map<String, Object> expandContext) {
-        AttributeAccessor<T> aa = new AttributeAccessor<T>(name, expandContext, this.attributeName, this.fma, this.needsExpand);
+        AttributeAccessor<T> aa = new AttributeAccessor<>(name, expandContext, this.attributeName, this.fma, this.needsExpand);
         return aa.get(request);
     }
 
@@ -105,7 +105,7 @@ public class FlexibleServletAccessor<T>
      * @return the found value
      */
     public T get(HttpSession session, Map<String, Object> expandContext) {
-        AttributeAccessor<T> aa = new AttributeAccessor<T>(name, expandContext, this.attributeName, this.fma, this.needsExpand);
+        AttributeAccessor<T> aa = new AttributeAccessor<>(name, expandContext, this.attributeName, this.fma, this.needsExpand);
         return aa.get(session);
     }
 
@@ -119,7 +119,7 @@ public class FlexibleServletAccessor<T>
      * @param expandContext
      */
     public void put(ServletRequest request, T value, Map<String, Object> expandContext) {
-        AttributeAccessor<T> aa = new AttributeAccessor<T>(name, expandContext, this.attributeName, this.fma, this.needsExpand);
+        AttributeAccessor<T> aa = new AttributeAccessor<>(name, expandContext, this.attributeName, this.fma, this.needsExpand);
         aa.put(request, value);
     }
 
@@ -133,7 +133,7 @@ public class FlexibleServletAccessor<T>
      * @param expandContext
      */
     public void put(HttpSession session, T value, Map<String, Object> expandContext) {
-        AttributeAccessor<T> aa = new AttributeAccessor<T>(name, expandContext, this.attributeName, this.fma, this.needsExpand);
+        AttributeAccessor<T> aa = new AttributeAccessor<>(name, expandContext, this.attributeName, this.fma, this.needsExpand);
         aa.put(session, value);
     }
 
@@ -143,7 +143,7 @@ public class FlexibleServletAccessor<T>
      * @return the removed value
      */
     public T remove(ServletRequest request, Map<String, Object> expandContext) {
-        AttributeAccessor<T> aa = new AttributeAccessor<T>(name, expandContext, this.attributeName, this.fma, this.needsExpand);
+        AttributeAccessor<T> aa = new AttributeAccessor<>(name, expandContext, this.attributeName, this.fma, this.needsExpand);
         return aa.remove(request);
     }
 
@@ -153,11 +153,11 @@ public class FlexibleServletAccessor<T>
      * @return the removed value
      */
     public T remove(HttpSession session, Map<String, Object> expandContext) {
-        AttributeAccessor<T> aa = new AttributeAccessor<T>(name, expandContext, this.attributeName, this.fma, this.needsExpand);
+        AttributeAccessor<T> aa = new AttributeAccessor<>(name, expandContext, this.attributeName, this.fma, this.needsExpand);
         return aa.remove(session);
     }
 
-    /** The equals and hashCode methods are imnplemented just case this object is ever accidently used as a Map key *
+    /** The equals and hashCode methods are implemented just case this object is ever accidently used as a Map key *
      * @return the hashcode
      */
     @Override
@@ -165,7 +165,7 @@ public class FlexibleServletAccessor<T>
         return this.name.hashCode();
     }
 
-    /** The equals and hashCode methods are imnplemented just case this object is ever accidently used as a Map key
+    /** The equals and hashCode methods are implemented just case this object is ever accidently used as a Map key
      * @param obj
      * @return whether this object is equal to the passed object
      */
@@ -177,13 +177,14 @@ public class FlexibleServletAccessor<T>
                 return flexibleServletAccessor.name == null;
             }
             return this.name.equals(flexibleServletAccessor.name);
-        } else {
-            String str = (String) obj;
-            if (this.name == null) {
-                return str == null;
-            }
-            return this.name.equals(str);
         }
+        if (this.name == null) {
+            return obj == null;
+        }
+        if (!(obj instanceof String)) {
+            return false;
+        }
+        return this.name.equals(obj);
     }
 
     /** To be used for a string representation of the accessor, returns the original name.
@@ -258,9 +259,8 @@ public class FlexibleServletAccessor<T>
 
             if (fma != null) {
                 return fma.get(UtilGenerics.<String, Object>checkMap(theValue));
-            } else {
-                return UtilGenerics.<T>cast(theValue);
             }
+            return UtilGenerics.<T>cast(theValue);
         }
 
         public T get(HttpSession session) {
@@ -274,9 +274,8 @@ public class FlexibleServletAccessor<T>
 
             if (fma != null) {
                 return fma.get(UtilGenerics.<String, Object>checkMap(theValue));
-            } else {
-                return UtilGenerics.<T>cast(theValue);
             }
+            return UtilGenerics.<T>cast(theValue);
         }
 
         protected void putInList(List<T> lst, T value) {
@@ -336,19 +335,16 @@ public class FlexibleServletAccessor<T>
                 if (isListReference) {
                     List<Object> lst = UtilGenerics.checkList(theObj);
                     return fma.remove(UtilGenerics.checkMap(lst.get(listIndex), String.class, Object.class));
-                } else {
-                    return fma.remove(UtilGenerics.checkMap(theObj, String.class, Object.class));
-                }
-            } else {
-                if (isListReference) {
-                    List<Object> lst = UtilGenerics.checkList(request.getAttribute(attributeName));
-                    return UtilGenerics.<T>cast(lst.remove(listIndex));
-                } else {
-                    Object theValue = request.getAttribute(attributeName);
-                    request.removeAttribute(attributeName);
-                    return UtilGenerics.<T>cast(theValue);
                 }
+                return fma.remove(UtilGenerics.checkMap(theObj, String.class, Object.class));
+            }
+            if (isListReference) {
+                List<Object> lst = UtilGenerics.checkList(request.getAttribute(attributeName));
+                return UtilGenerics.<T>cast(lst.remove(listIndex));
             }
+            Object theValue = request.getAttribute(attributeName);
+            request.removeAttribute(attributeName);
+            return UtilGenerics.<T>cast(theValue);
         }
 
         public T remove(HttpSession session) {
@@ -357,19 +353,16 @@ public class FlexibleServletAccessor<T>
                 if (isListReference) {
                     List<Object> lst = UtilGenerics.checkList(theObj);
                     return fma.remove(UtilGenerics.checkMap(lst.get(listIndex), String.class, Object.class));
-                } else {
-                    return fma.remove(UtilGenerics.checkMap(theObj, String.class, Object.class));
-                }
-            } else {
-                if (isListReference) {
-                    List<Object> lst = UtilGenerics.checkList(session.getAttribute(attributeName));
-                    return UtilGenerics.<T>cast(lst.remove(listIndex));
-                } else {
-                    Object theValue = session.getAttribute(attributeName);
-                    session.removeAttribute(attributeName);
-                    return UtilGenerics.<T>cast(theValue);
                 }
+                return fma.remove(UtilGenerics.checkMap(theObj, String.class, Object.class));
+            }
+            if (isListReference) {
+                List<Object> lst = UtilGenerics.checkList(session.getAttribute(attributeName));
+                return UtilGenerics.<T>cast(lst.remove(listIndex));
             }
+            Object theValue = session.getAttribute(attributeName);
+            session.removeAttribute(attributeName);
+            return UtilGenerics.<T>cast(theValue);
         }
     }
 }

Modified: ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/collections/LifoSet.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/collections/LifoSet.java?rev=1811685&r1=1811684&r2=1811685&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/collections/LifoSet.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/collections/LifoSet.java Tue Oct 10 12:28:01 2017
@@ -1,4 +1,5 @@
 /*******************************************************************************
+
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information
@@ -32,7 +33,7 @@ import java.util.LinkedList;
 public class LifoSet<V> extends AbstractSet<V> implements Serializable {
 
     // This set's back LinkedList
-    private LinkedList<V> backedList = new LinkedList<V>();
+    private LinkedList<V> backedList = new LinkedList<>();
     private int maxCapacity = 10;
 
     /**

Modified: ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/collections/MapComparator.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/collections/MapComparator.java?rev=1811685&r1=1811684&r2=1811685&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/collections/MapComparator.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/collections/MapComparator.java Tue Oct 10 12:28:01 2017
@@ -48,8 +48,15 @@ public class MapComparator implements Co
      */
     @Override
     public boolean equals(Object obj) {
+        if (obj==null) {
+            return false;
+        }
         return obj.equals(this);
     }
+    
+    public int hashCode() {
+        return super.hashCode();
+    }
 
     /**
      * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
@@ -117,9 +124,8 @@ public class MapComparator implements Co
             if (compareResult != 0) {
                 if (ascending) {
                     return compareResult;
-                } else {
-                    return -compareResult;
                 }
+                return -compareResult;
             }
         }
 

Modified: ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/collections/MapContext.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/collections/MapContext.java?rev=1811685&r1=1811684&r2=1811685&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/collections/MapContext.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/collections/MapContext.java Tue Oct 10 12:28:01 2017
@@ -43,7 +43,7 @@ public class MapContext<K, V> implements
     public static final String module = MapContext.class.getName();
 
     public static final <K, V> MapContext<K, V> getMapContext() {
-        return new MapContext<K, V>();
+        return new MapContext<>();
     }
 
     public static <K, V> MapContext<K, V> createMapContext() {
@@ -75,15 +75,15 @@ public class MapContext<K, V> implements
         super();
     }
 
-    protected List<Map<K, V>> stackList = new LinkedList<Map<K, V>>();
+    protected List<Map<K, V>> stackList = new LinkedList<>();
 
     public void reset() {
-        stackList = new LinkedList<Map<K, V>>();
+        stackList = new LinkedList<>();
     }
 
     /** Puts a new Map on the top of the stack */
     public void push() {
-        Map<K, V> newMap = new HashMap<K, V>();
+        Map<K, V> newMap = new HashMap<>();
         this.stackList.add(0,newMap);
     }
 
@@ -108,9 +108,8 @@ public class MapContext<K, V> implements
         // always leave at least one Map in the List, ie never pop off the last Map
         if (this.stackList.size() > 1) {
             return stackList.remove(0);
-        } else {
-            return null;
         }
+        return null;
     }
 
     /**
@@ -177,7 +176,7 @@ public class MapContext<K, V> implements
      */
     public boolean containsValue(Object value) {
         // walk the stackList and the entries for each Map and if nothing is in for the current key, consider it an option, otherwise ignore
-        Set<K> resultKeySet = new HashSet<K>();
+        Set<K> resultKeySet = new HashSet<>();
         for (Map<K, V> curMap: this.stackList) {
             for (Map.Entry<K, V> curEntry: curMap.entrySet()) {
                 if (!resultKeySet.contains(curEntry.getKey())) {
@@ -222,9 +221,8 @@ public class MapContext<K, V> implements
                 if (curMap instanceof LocalizedMap<?>) {
                     LocalizedMap<V> lmap = UtilGenerics.cast(curMap);
                     return lmap.get(name, locale);
-                } else {
-                    return curMap.get(name);
                 }
+                return curMap.get(name);
             }
         }
         return null;
@@ -270,7 +268,7 @@ public class MapContext<K, V> implements
      */
     public Set<K> keySet() {
         // walk the stackList and aggregate all keys
-        Set<K> resultSet = new HashSet<K>();
+        Set<K> resultSet = new HashSet<>();
         for (Map<K, V> curMap: this.stackList) {
             resultSet.addAll(curMap.keySet());
         }
@@ -282,8 +280,8 @@ public class MapContext<K, V> implements
      */
     public Collection<V> values() {
         // walk the stackList and the entries for each Map and if nothing is in for the current key, put it in
-        Set<K> resultKeySet = new HashSet<K>();
-        List<V> resultValues = new LinkedList<V>();
+        Set<K> resultKeySet = new HashSet<>();
+        List<V> resultValues = new LinkedList<>();
         for (Map<K, V> curMap: this.stackList) {
             for (Map.Entry<K, V> curEntry: curMap.entrySet()) {
                 if (!resultKeySet.contains(curEntry.getKey())) {
@@ -300,8 +298,8 @@ public class MapContext<K, V> implements
      */
     public Set<Map.Entry<K, V>> entrySet() {
         // walk the stackList and the entries for each Map and if nothing is in for the current key, put it in
-        Set<K> resultKeySet = new HashSet<K>();
-        Set<Map.Entry<K, V>> resultEntrySet = new ListSet<Map.Entry<K, V>>();
+        Set<K> resultKeySet = new HashSet<>();
+        Set<Map.Entry<K, V>> resultEntrySet = new ListSet<>();
         for (Map<K, V> curMap: this.stackList) {
             for (Map.Entry<K, V> curEntry: curMap.entrySet()) {
                 if (!resultKeySet.contains(curEntry.getKey())) {
@@ -338,12 +336,12 @@ public class MapContext<K, V> implements
         return fullMapString.toString();
     }
 
-    private static final class ListSet<E> extends AbstractSet<E> implements Set<E> {
+    private static final class ListSet<E> extends AbstractSet<E> {
 
-        protected final List<E> listImpl;
+        private final List<E> listImpl;
 
         public ListSet() {
-            this.listImpl = new ArrayList<E>();
+            this.listImpl = new ArrayList<>();
         }
 
         public int size() {

Modified: ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/collections/ResourceBundleMapWrapper.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/collections/ResourceBundleMapWrapper.java?rev=1811685&r1=1811684&r2=1811685&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/collections/ResourceBundleMapWrapper.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/collections/ResourceBundleMapWrapper.java Tue Oct 10 12:28:01 2017
@@ -174,13 +174,13 @@ public class ResourceBundleMapWrapper im
             // when the main Map doesn't have a certain value
             if (resourceBundle != null) {
                 Set<String> set = resourceBundle.keySet();
-                topLevelMap = new HashMap<String, Object>(set.size());
+                topLevelMap = new HashMap<>(set.size());
                 for (String key : set) {
                     Object value = resourceBundle.getObject(key);
                     topLevelMap.put(key, value);
                 }
             } else {
-                topLevelMap = new HashMap<String, Object>(1);
+                topLevelMap = new HashMap<>(1);
             }
             topLevelMap.put("_RESOURCE_BUNDLE_", resourceBundle);
             isMapInitialized = true;
@@ -190,13 +190,12 @@ public class ResourceBundleMapWrapper im
         /* (non-Javadoc)
          * @see java.util.Map#size()
          */
-        public int size() {            
+        public int size() {
             if(isMapInitialized) {
                 // this is an approximate size, won't include elements from parent bundles
                 return topLevelMap.size() -1;
-            } else {
-                return resourceBundle.keySet().size();                        
             }
+            return resourceBundle.keySet().size();
         }
 
         /* (non-Javadoc)
@@ -205,9 +204,8 @@ public class ResourceBundleMapWrapper im
         public boolean isEmpty() {
             if (isMapInitialized) {
                 return topLevelMap.isEmpty();
-            } else {
-                return resourceBundle.keySet().size() == 0;
             }
+            return resourceBundle.keySet().size() == 0;
         }
 
         /* (non-Javadoc)
@@ -220,9 +218,10 @@ public class ResourceBundleMapWrapper im
                 }
             } else {
                 try {
-                    if (this.resourceBundle.getObject((String) arg0) != null) {
-                        return true;
-                    }
+                    //the following will just be executed to check if arg0 is null, 
+                    //if so the thrown exception will be caught, if not true will be returned
+                    this.resourceBundle.getObject((String) arg0);
+                    return true;
                 } catch (NullPointerException e) {
                     // happens when arg0 is null
                 } catch (MissingResourceException e) {