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/12/12 16:14:59 UTC

svn commit: r1817925 - /ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/thirdparty/paypal/PayPalEvents.java

Author: mbrohl
Date: Tue Dec 12 16:14:59 2017
New Revision: 1817925

URL: http://svn.apache.org/viewvc?rev=1817925&view=rev
Log:
Improved: Fixing defects reported by FindBugs, package 
org.apache.ofbiz.accounting.thirdparty.paypal.
(OFBIZ-9539)

Thanks Kyra Pritzel-Hentley for reporting and Dennis Balkir for 
providing the patch.

Modified:
    ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/thirdparty/paypal/PayPalEvents.java

Modified: ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/thirdparty/paypal/PayPalEvents.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/thirdparty/paypal/PayPalEvents.java?rev=1817925&r1=1817924&r2=1817925&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/thirdparty/paypal/PayPalEvents.java (original)
+++ ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/thirdparty/paypal/PayPalEvents.java Tue Dec 12 16:14:59 2017
@@ -21,6 +21,7 @@ package org.apache.ofbiz.accounting.thir
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
 import java.math.BigDecimal;
 import java.net.URL;
@@ -55,6 +56,7 @@ import org.apache.ofbiz.product.store.Pr
 import org.apache.ofbiz.service.GenericServiceException;
 import org.apache.ofbiz.service.LocalDispatcher;
 import org.apache.ofbiz.service.ModelService;
+import org.apache.ofbiz.service.ServiceUtil;
 
 
 public class PayPalEvents {
@@ -146,7 +148,7 @@ public class PayPalEvents {
         }
 
         // create the redirect string
-        Map <String, Object> parameters = new LinkedHashMap <String, Object>();
+        Map<String, Object> parameters = new LinkedHashMap<>();
         parameters.put("cmd", "_xclick");
         parameters.put("business", payPalAccount);
         parameters.put("item_name", itemName);
@@ -226,6 +228,8 @@ public class PayPalEvents {
 
         // send off the confirm request
         String confirmResp = null;
+        BufferedReader in = null;
+        PrintWriter pw = null;
 
         try {
             String str = UtilHttp.urlEncodeArgs(parametersMap);
@@ -233,16 +237,25 @@ public class PayPalEvents {
             URLConnection uc = u.openConnection();
             uc.setDoOutput(true);
             uc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
-            PrintWriter pw = new PrintWriter(uc.getOutputStream());
+            pw = new PrintWriter(new OutputStreamWriter(uc.getOutputStream(), "UTF-8"));
             pw.println(str);
-            pw.close();
 
-            BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream()));
+            in = new BufferedReader(new InputStreamReader(uc.getInputStream()));
             confirmResp = in.readLine();
-            in.close();
             Debug.logError("PayPal Verification Response: " + confirmResp, module);
         } catch (IOException e) {
-            Debug.logError(e, "Problems sending verification message", module);
+            Debug.logError(e, "Problems sending verification message.", module);
+        } finally {
+            if (in != null) {
+                try {
+                    in.close();
+                } catch (IOException e) {
+                    Debug.logError(e, "Could not close BufferedReader.", module);
+                }
+            }
+            if (pw != null) {
+                pw.close();
+            }
         }
 
         Debug.logInfo("Got verification from PayPal, processing..", module);
@@ -416,7 +429,7 @@ public class PayPalEvents {
         String paymentStatus = request.getParameter("payment_status");
         String transactionId = request.getParameter("txn_id");
 
-        List <GenericValue> toStore = new LinkedList <GenericValue> ();
+        List<GenericValue> toStore = new LinkedList<>();
 
         // PayPal returns the timestamp in the format 'hh:mm:ss Jan 1, 2000 PST'
         // Parse this into a valid Timestamp Object
@@ -482,7 +495,7 @@ public class PayPalEvents {
             return false;
         }
 
-        if ((results == null) || (results.get(ModelService.RESPONSE_MESSAGE).equals(ModelService.RESPOND_ERROR))) {
+        if (ServiceUtil.isError(results)) {
             Debug.logError((String) results.get(ModelService.ERROR_MESSAGE), module);
             request.setAttribute("_ERROR_MESSAGE_", results.get(ModelService.ERROR_MESSAGE));
             return false;