svn commit: r1817583 - /ofbiz/ofbiz-framework/trunk/applications/party/src/main/java/org/apache/ofbiz/party/communication/CommunicationEventServices.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r1817583 - /ofbiz/ofbiz-framework/trunk/applications/party/src/main/java/org/apache/ofbiz/party/communication/CommunicationEventServices.java

mbrohl
Author: mbrohl
Date: Fri Dec  8 22:11:11 2017
New Revision: 1817583

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

Thanks Julian Leichert for reporting and providing the patch.

Modified:
    ofbiz/ofbiz-framework/trunk/applications/party/src/main/java/org/apache/ofbiz/party/communication/CommunicationEventServices.java

Modified: ofbiz/ofbiz-framework/trunk/applications/party/src/main/java/org/apache/ofbiz/party/communication/CommunicationEventServices.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/party/src/main/java/org/apache/ofbiz/party/communication/CommunicationEventServices.java?rev=1817583&r1=1817582&r2=1817583&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/party/src/main/java/org/apache/ofbiz/party/communication/CommunicationEventServices.java (original)
+++ ofbiz/ofbiz-framework/trunk/applications/party/src/main/java/org/apache/ofbiz/party/communication/CommunicationEventServices.java Fri Dec  8 22:11:11 2017
@@ -676,19 +676,12 @@ public class CommunicationEventServices
         Locale locale = (Locale) context.get("locale");
         String partyIdTo = null;
         String partyIdFrom = null;
-        String contentType = null;
         String communicationEventId = null;
         String contactMechIdFrom = null;
         String contactMechIdTo = null;
 
         Map<String, Object> result = null;
         try {
-            String contentTypeRaw = wrapper.getContentType();
-            int idx = contentTypeRaw.indexOf(";");
-            if (idx == -1) idx = contentTypeRaw.length();
-            contentType = contentTypeRaw.substring(0, idx);
-            if (contentType == null || "".equals(contentType)) contentType = "text/html";
-            contentType = contentType.toLowerCase();
             Address[] addressesFrom = wrapper.getFrom();
             Address[] addressesTo = wrapper.getTo();
             Address[] addressesCC = wrapper.getCc();
@@ -750,7 +743,7 @@ public class CommunicationEventServices
             String deliveredTo = wrapper.getFirstHeader("Delivered-To");
             if (deliveredTo != null) {
                 // check if started with the domain name if yes remove including the dash.
-                String dn = deliveredTo.substring(deliveredTo.indexOf("@")+1, deliveredTo.length());
+                String dn = deliveredTo.substring(deliveredTo.indexOf('@') + 1, deliveredTo.length());
                 if (deliveredTo.startsWith(dn)) {
                     deliveredTo = deliveredTo.substring(dn.length()+1, deliveredTo.length());
                 }
@@ -792,8 +785,8 @@ public class CommunicationEventServices
 
             // get the content(type) part
             String messageBodyContentType = wrapper.getMessageBodyContentType();
-            if (messageBodyContentType.indexOf(";") > -1) {
-                messageBodyContentType = messageBodyContentType.substring(0, messageBodyContentType.indexOf(";"));
+            if (messageBodyContentType.indexOf(';') > -1) {
+                messageBodyContentType = messageBodyContentType.substring(0, messageBodyContentType.indexOf(';'));
             }
 
             // select the plain text bodypart
@@ -801,7 +794,7 @@ public class CommunicationEventServices
             if (wrapper.getMainPartCount() > 1) {
                 for (int ind=0; ind < wrapper.getMainPartCount(); ind++) {
                     BodyPart p = wrapper.getPart(ind + "");
-                    if (p.getContentType().toLowerCase().indexOf("text/plain") > -1) {
+                    if (p.getContentType().toLowerCase(Locale.getDefault()).indexOf("text/plain") > -1) {
                         messageBody = (String) p.getContent();
                         break;
                     }
@@ -813,7 +806,7 @@ public class CommunicationEventServices
             }
 
             commEventMap.put("content", messageBody);
-            commEventMap.put("contentMimeTypeId", messageBodyContentType.toLowerCase());
+            commEventMap.put("contentMimeTypeId", messageBodyContentType.toLowerCase(Locale.getDefault()));
 
             // check for for a reply to communication event (using in-reply-to the parent messageID)
             String[] inReplyTo = wrapper.getHeader("In-Reply-To");
@@ -908,13 +901,7 @@ public class CommunicationEventServices
             results.put("communicationEventId", communicationEventId);
             results.put("statusId", commEventMap.get("statusId"));
             return results;
-        } catch (MessagingException e) {
-            Debug.logError(e, module);
-            return ServiceUtil.returnError(e.getMessage());
-        } catch (GenericServiceException e) {
-            Debug.logError(e, module);
-            return ServiceUtil.returnError(e.getMessage());
-        } catch (Exception e) {
+        } catch (MessagingException | GenericServiceException | GenericEntityException | IOException e) {
             Debug.logError(e, module);
             return ServiceUtil.returnError(e.getMessage());
         }
@@ -999,8 +986,8 @@ public class CommunicationEventServices
                 }
 
                 String attContentType = wrapper.getPartContentType(attachmentIdx);
-                if (attContentType != null && attContentType.indexOf(";") > -1) {
-                    attContentType = attContentType.toLowerCase().substring(0, attContentType.indexOf(";"));
+                if (attContentType != null && attContentType.indexOf(';') > -1) {
+                    attContentType = attContentType.toLowerCase(Locale.getDefault()).substring(0, attContentType.indexOf(';'));
                 }
 
                 if (UtilValidate.isNotEmpty(attFileName)) {
@@ -1011,7 +998,7 @@ public class CommunicationEventServices
                 }
 
                 attachmentMap.put("drMimeTypeId", attContentType);
-                if (attContentType.startsWith("text")) {
+                if (attContentType != null && attContentType.startsWith("text")) {
                     String text = wrapper.getPartText(attachmentIdx);
                     attachmentMap.put("drDataResourceTypeId", "ELECTRONIC_TEXT");
                     attachmentMap.put("textData", text);
@@ -1110,12 +1097,10 @@ public class CommunicationEventServices
                 if (addr instanceof InternetAddress) {
                     emailAddress = (InternetAddress)addr;
 
-                    if (emailAddress != null) {
-                        result = dispatcher.runSync("findPartyFromEmailAddress",
-                                UtilMisc.toMap("address", emailAddress.getAddress(), "userLogin", userLogin));
-                        if (result.get("partyId") != null) {
-                            tempResults.add(result);
-                        }
+                    result = dispatcher.runSync("findPartyFromEmailAddress",
+                            UtilMisc.toMap("address", emailAddress.getAddress(), "userLogin", userLogin));
+                    if (result.get("partyId") != null) {
+                        tempResults.add(result);
                     }
                 }
             }
@@ -1137,19 +1122,17 @@ public class CommunicationEventServices
             for (Address addr: addresses) {
                 if (addr instanceof InternetAddress) {
                     emailAddress = (InternetAddress)addr;
-                    if (emailAddress != null) {
-                        Map<String, String> inputFields = new HashMap<String, String>();
-                        inputFields.put("infoString", emailAddress.getAddress());
-                        inputFields.put("infoString_ic", caseInsensitiveEmail);
-                        result = dispatcher.runSync("performFind", UtilMisc.<String, Object>toMap("entityName", "WorkEffortContactMechView"
-                                ,"inputFields", inputFields, "userLogin", userLogin));
-                        try (EntityListIterator listIt = (EntityListIterator) result.get("listIt")) {
-                            List<GenericValue> list = listIt.getCompleteList();
-                            List<GenericValue> filteredList = EntityUtil.filterByDate(list);
-                            tempResults.addAll(filteredList);
-                        } catch (GenericEntityException e) {
-                            Debug.logError(e, module);
-                        }
+                    Map<String, String> inputFields = new HashMap<String, String>();
+                    inputFields.put("infoString", emailAddress.getAddress());
+                    inputFields.put("infoString_ic", caseInsensitiveEmail);
+                    result = dispatcher.runSync("performFind", UtilMisc.<String, Object>toMap("entityName",
+                            "WorkEffortContactMechView", "inputFields", inputFields, "userLogin", userLogin));
+                    try (EntityListIterator listIt = (EntityListIterator) result.get("listIt")) {
+                        List<GenericValue> list = listIt.getCompleteList();
+                        List<GenericValue> filteredList = EntityUtil.filterByDate(list);
+                        tempResults.addAll(filteredList);
+                    } catch (GenericEntityException e) {
+                        Debug.logError(e, module);
                     }
                 }
             }
@@ -1321,12 +1304,12 @@ public class CommunicationEventServices
         // pull the communication event from path info, so we can hide the process from the user
         String pathInfo = request.getPathInfo();
         String[] pathParsed = pathInfo.split("/", 3);
-        if (pathParsed != null && pathParsed.length > 2) {
+        if (pathParsed.length > 2) {
             pathInfo = pathParsed[2];
         } else {
             pathInfo = null;
         }
-        if (pathInfo != null && pathInfo.indexOf("/") > -1) {
+        if (pathInfo != null && pathInfo.indexOf('/') > -1) {
             pathParsed = pathInfo.split("/");
             communicationEventId = pathParsed[0];
         }