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/07 15:47:59 UTC

svn commit: r1811438 - in /ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common: CommonEvents.java CommonServices.java FindServices.java JsLanguageFileMappingCreator.java KeywordSearchUtil.java

Author: mbrohl
Date: Sat Oct  7 15:47:59 2017
New Revision: 1811438

URL: http://svn.apache.org/viewvc?rev=1811438&view=rev
Log:
Improved: Fixing defects reported by FindBugs, package 
org.apache.ofbiz.common.
(OFBIZ-9681)

Thanks Julian Leichert for reporting and providing the patch.

Modified:
    ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/CommonEvents.java
    ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/CommonServices.java
    ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/FindServices.java
    ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/JsLanguageFileMappingCreator.java
    ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/KeywordSearchUtil.java

Modified: ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/CommonEvents.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/CommonEvents.java?rev=1811438&r1=1811437&r2=1811438&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/CommonEvents.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/CommonEvents.java Sat Oct  7 15:47:59 2017
@@ -170,12 +170,6 @@ public class CommonEvents {
             String followSessionId = request.getParameter("followSid");
             Map<String, String> follow = appletSessions.get(followSessionId);
             if (follow == null) follow = new LinkedHashMap<String, String>();
-            String followerListStr = follow.get("followers");
-            if (followerListStr == null) {
-                followerListStr = followerSessionId;
-            } else {
-                followerListStr = followerListStr + "," + followerSessionId;
-            }
             appletSessions.put(followSessionId, follow);
             appletSessions.put(followerSessionId, null);
         }
@@ -303,7 +297,7 @@ public class CommonEvents {
         try {
             JSON json = JSON.from(attrMap);
             writeJSONtoResponse(json, request, response);
-        } catch (Exception e) {
+        } catch (IOException e) {
             return "error";
         }
         return "success";
@@ -311,10 +305,6 @@ public class CommonEvents {
 
     private static void writeJSONtoResponse(JSON json, HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException {
         String jsonStr = json.toString();
-        if (jsonStr == null) {
-            Debug.logError("JSON Object was empty; fatal error!", module);
-            return;
-        }
         String httpMethod = request.getMethod();
 
         // This was added for security reason (OFBIZ-5409), you might need to remove the "//" prefix when handling the JSON response
@@ -499,7 +489,7 @@ public class CommonEvents {
                 session.setAttribute("_CAPTCHA_CODE_", captchaCodeMap);
             }
             captchaCodeMap.put(captchaCodeId, captchaCode);
-        } catch (Exception ioe) {
+        } catch (IOException | IllegalArgumentException | IllegalStateException ioe) {
             Debug.logError(ioe.getMessage(), module);
         }
         return "success";

Modified: ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/CommonServices.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/CommonServices.java?rev=1811438&r1=1811437&r2=1811438&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/CommonServices.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/CommonServices.java Sat Oct  7 15:47:59 2017
@@ -48,6 +48,7 @@ import org.apache.ofbiz.base.metrics.Met
 import org.apache.ofbiz.base.util.Debug;
 import org.apache.ofbiz.base.util.UtilCodec;
 import org.apache.ofbiz.base.util.UtilDateTime;
+import org.apache.ofbiz.base.util.UtilIO;
 import org.apache.ofbiz.base.util.UtilMisc;
 import org.apache.ofbiz.base.util.UtilProperties;
 import org.apache.ofbiz.base.util.UtilValidate;
@@ -471,10 +472,11 @@ public class CommonServices {
         InputStream in = (InputStream) context.get("inputStream");
         OutputStream out = (OutputStream) context.get("outputStream");
 
-        BufferedReader reader = new BufferedReader(new InputStreamReader(in));
         String line;
 
-        try (Writer writer = new OutputStreamWriter(out)) {
+        try (
+                BufferedReader reader = new BufferedReader(new InputStreamReader(in, UtilIO.getUtf8()));
+                Writer writer = new OutputStreamWriter(out, UtilIO.getUtf8())) {
             while ((line = reader.readLine()) != null) {
                 Debug.logInfo("Read line: " + line, module);
                 writer.write(line);
@@ -497,7 +499,7 @@ public class CommonServices {
             message = "PONG";
         }
 
-        long count = -1;
+        long count;
         try {
             count = EntityQuery.use(delegator).from("SequenceValueItem").queryCount();
         } catch (GenericEntityException e) {
@@ -505,7 +507,7 @@ public class CommonServices {
             return ServiceUtil.returnError(UtilProperties.getMessage(resource, "CommonPingDatasourceCannotConnect", locale));
         }
 
-        if (count > 0) {
+        if (count != 0L) {
             Map<String, Object> result = ServiceUtil.returnSuccess();
             result.put("message", message);
             return result;

Modified: ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/FindServices.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/FindServices.java?rev=1811438&r1=1811437&r2=1811438&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/FindServices.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/FindServices.java Sat Oct  7 15:47:59 2017
@@ -29,6 +29,7 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
+import java.util.Map.Entry;
 import java.util.Set;
 import java.util.TimeZone;
 
@@ -68,7 +69,7 @@ public class FindServices {
 
     public static final String module = FindServices.class.getName();
     public static final String resource = "CommonUiLabels";
-    public static Map<String, EntityComparisonOperator<?, ?>> entityOperators;
+    public static final Map<String, EntityComparisonOperator<?, ?>> entityOperators;
 
     static {
         entityOperators =  new LinkedHashMap<String, EntityComparisonOperator<?, ?>>();
@@ -112,7 +113,8 @@ public class FindServices {
         // Contained in the associated entity.
         // Those extra fields will be ignored in the second half of this method.
         Map<String, Map<String, Map<String, Object>>> normalizedFields = new LinkedHashMap<String, Map<String, Map<String, Object>>>();
-        for (String fieldNameRaw: inputFields.keySet()) { // The name as it appeas in the HTML form
+        for (Entry<String, ?> entry : inputFields.entrySet()) { // The name as it appeas in the HTML form
+            String fieldNameRaw = entry.getKey();
             String fieldNameRoot = null; // The entity field name. Everything to the left of the first "_" if
                                                                  //  it exists, or the whole word, if not.
             String fieldPair = null; // "fld0" or "fld1" - begin/end of range or just fld0 if no range.
@@ -124,19 +126,19 @@ public class FindServices {
             Map<String, Object> subMap2 = null;
             String fieldMode = null;
 
-            fieldValue = inputFields.get(fieldNameRaw);
+            fieldValue = entry.getValue();
             if (ObjectType.isEmpty(fieldValue)) {
                 continue;
             }
 
             queryStringMap.put(fieldNameRaw, fieldValue);
-            iPos = fieldNameRaw.indexOf("_"); // Look for suffix
+            iPos = fieldNameRaw.indexOf('_'); // Look for suffix
 
             // This is a hack to skip fields from "multi" forms
             // These would have the form "fieldName_o_1"
             if (iPos >= 0) {
                 String suffix = fieldNameRaw.substring(iPos + 1);
-                iPos2 = suffix.indexOf("_");
+                iPos2 = suffix.indexOf('_');
                 if (iPos2 == 1) {
                     continue;
                 }
@@ -153,7 +155,7 @@ public class FindServices {
 
                 fieldNameRoot = fieldNameRaw.substring(0, iPos);
                 String suffix = fieldNameRaw.substring(iPos + 1);
-                iPos2 = suffix.indexOf("_");
+                iPos2 = suffix.indexOf('_');
                 if (iPos2 < 0) {
                     if (suffix.startsWith("fld")) {
                         // If only one token and it starts with "fld"
@@ -342,7 +344,8 @@ public class FindServices {
             fieldObject = modelField.getModelEntity().convertFieldValue(modelField, fieldValue, delegator, context);
         }
         if (ignoreCase && fieldObject instanceof String) {
-            cond = EntityCondition.makeCondition(EntityFunction.UPPER_FIELD(fieldName), fieldOp, EntityFunction.UPPER(((String)fieldValue).toUpperCase()));
+            cond = EntityCondition.makeCondition(EntityFunction.UPPER_FIELD(fieldName), fieldOp, EntityFunction.UPPER(
+                    ((String) fieldValue).toUpperCase(Locale.getDefault())));
         } else {
             if (fieldObject.equals(GenericEntity.NULL_FIELD.toString())) {
                 fieldObject = null;
@@ -441,7 +444,7 @@ public class FindServices {
         try (EntityListIterator it = (EntityListIterator) result.get("listIt")) {
             list = it.getPartialList(start+1, viewSize); // list starts at '1'
             listSize = it.getResultsSizeAfterPartialList();
-        } catch (Exception e) {
+        } catch (ClassCastException | NullPointerException | GenericEntityException e) {
             Debug.logInfo("Problem getting partial list" + e,module);
         }
 
@@ -694,27 +697,28 @@ public class FindServices {
         ModelEntity modelEntity = delegator.getModelEntity(entityName);
         Map<String, Object> normalizedFields = new LinkedHashMap<String, Object>();
         //StringBuffer queryStringBuf = new StringBuffer();
-        for (String fieldNameRaw: inputFields.keySet()) { // The name as it appeas in the HTML form
+        for (Entry<String, ?> entry : inputFields.entrySet()) { // The name as it appeas in the HTML form
+            String fieldNameRaw = entry.getKey();
             String fieldNameRoot = null; // The entity field name. Everything to the left of the first "_" if
                                                                  //  it exists, or the whole word, if not.
             Object fieldValue = null; // If it is a "value" field, it will be the value to be used in the query.
                                                         // If it is an "op" field, it will be "equals", "greaterThan", etc.
             int iPos = -1;
             int iPos2 = -1;
-            
-            fieldValue = inputFields.get(fieldNameRaw);
+
+            fieldValue = entry.getValue();
             if (ObjectType.isEmpty(fieldValue)) {
                 continue;
             }
 
             //queryStringBuffer.append(fieldNameRaw + "=" + fieldValue);
-            iPos = fieldNameRaw.indexOf("_"); // Look for suffix
+            iPos = fieldNameRaw.indexOf('_'); // Look for suffix
 
             // This is a hack to skip fields from "multi" forms
             // These would have the form "fieldName_o_1"
             if (iPos >= 0) {
                 String suffix = fieldNameRaw.substring(iPos + 1);
-                iPos2 = suffix.indexOf("_");
+                iPos2 = suffix.indexOf('_');
                 if (iPos2 == 1) {
                     continue;
                 }
@@ -755,7 +759,7 @@ public class FindServices {
             if (UtilValidate.isNotEmpty(list)) {
                 item = list.get(0);
             }
-        } catch (Exception e) {
+        } catch (ClassCastException | NullPointerException | GenericEntityException e) {
             Debug.logInfo("Problem getting list Item" + e,module);
         }
 
@@ -763,7 +767,7 @@ public class FindServices {
             result.put("item",item);
         }
         result.remove("listIt");
-        
+
         if (result.containsKey("listSize")) {
             result.remove("listSize");
         }

Modified: ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/JsLanguageFileMappingCreator.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/JsLanguageFileMappingCreator.java?rev=1811438&r1=1811437&r2=1811438&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/JsLanguageFileMappingCreator.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/JsLanguageFileMappingCreator.java Sat Oct  7 15:47:59 2017
@@ -20,8 +20,10 @@
 package org.apache.ofbiz.common;
 
 import java.io.File;
+import java.io.IOException;
 import java.io.StringWriter;
 import java.io.Writer;
+
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.List;
@@ -37,6 +39,8 @@ import org.apache.ofbiz.base.util.templa
 import org.apache.ofbiz.service.DispatchContext;
 import org.apache.ofbiz.service.ServiceUtil;
 
+import freemarker.template.TemplateException;
+
 // Use the createJsLanguageFileMapping service to create or update the JsLanguageFilesMapping.java. You will still need to compile thereafter
 
 public class JsLanguageFileMappingCreator {
@@ -93,7 +97,7 @@ public class JsLanguageFileMappingCreato
                 fileUrl = dateJsLocaleRelPath + dateJsLocalePrefix + modifiedDisplayCountry + jsFilePostFix;
             } else {
                 // Try to guess a language
-                String tmpLocale = strippedLocale + "-" + strippedLocale.toUpperCase();
+                String tmpLocale = strippedLocale + "-" + strippedLocale.toUpperCase(Locale.getDefault());
                 fileName = componentRoot + dateJsLocaleRelPath + dateJsLocalePrefix + tmpLocale + jsFilePostFix;
                 file = FileUtil.getFile(fileName);
                 if (file.exists()) {
@@ -195,7 +199,7 @@ public class JsLanguageFileMappingCreato
             File file = new File(output);
             FileUtils.writeStringToFile(file, writer.toString(), encoding);
         }
-        catch (Exception e) {
+        catch (IOException | TemplateException e) {
             Debug.logError(e, module);
             return ServiceUtil.returnError(UtilProperties.getMessage("CommonUiLabels", "CommonOutputFileCouldNotBeCreated", UtilMisc.toMap("errorString", e.getMessage()), (Locale)context.get("locale")));
         }

Modified: ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/KeywordSearchUtil.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/KeywordSearchUtil.java?rev=1811438&r1=1811437&r2=1811438&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/KeywordSearchUtil.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/KeywordSearchUtil.java Sat Oct  7 15:47:59 2017
@@ -21,6 +21,7 @@ package org.apache.ofbiz.common;
 import java.util.HashSet;
 import java.util.LinkedHashMap;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 import java.util.StringTokenizer;
@@ -192,7 +193,7 @@ public final class KeywordSearchUtil {
             StringTokenizer tokener = new StringTokenizer(str, separators, false);
             while (tokener.hasMoreTokens()) {
                 // make sure it is lower case before doing anything else
-                String token = tokener.nextToken().toLowerCase();
+                String token = tokener.nextToken().toLowerCase(Locale.getDefault());
 
                 if (forSearch) {
                     // these characters will only be present if it is for a search, ie not for indexing