Author: mbrohl
Date: Sun Dec 10 10:45:36 2017 New Revision: 1817687 URL: http://svn.apache.org/viewvc?rev=1817687&view=rev Log: Improved: Fixing defects reported by FindBugs, package org.apache.ofbiz.shipment.thirdparty.ups. (OFBIZ-9819) Thanks Dennis Balkir for reporting and providing the patch. Modified: ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/shipment/thirdparty/ups/UpsServices.java Modified: ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/shipment/thirdparty/ups/UpsServices.java URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/shipment/thirdparty/ups/UpsServices.java?rev=1817687&r1=1817686&r2=1817687&view=diff ============================================================================== --- ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/shipment/thirdparty/ups/UpsServices.java (original) +++ ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/shipment/thirdparty/ups/UpsServices.java Sun Dec 10 10:45:36 2017 @@ -44,6 +44,7 @@ import org.apache.ofbiz.base.util.HttpCl import org.apache.ofbiz.base.util.HttpClientException; import org.apache.ofbiz.base.util.StringUtil; import org.apache.ofbiz.base.util.UtilGenerics; +import org.apache.ofbiz.base.util.UtilIO; import org.apache.ofbiz.base.util.UtilMisc; import org.apache.ofbiz.base.util.UtilNumber; import org.apache.ofbiz.base.util.UtilProperties; @@ -78,8 +79,8 @@ public class UpsServices { public final static String module = UpsServices.class.getName(); - public static Map<String, String> unitsUpsToOfbiz = new HashMap<String, String>(); - public static Map<String, String> unitsOfbizToUps = new HashMap<String, String>(); + private static final Map<String, String> unitsUpsToOfbiz = new HashMap<String, String>(); + private static final Map<String, String> unitsOfbizToUps = new HashMap<String, String>(); static { unitsUpsToOfbiz.put("LBS", "WT_lb"); unitsUpsToOfbiz.put("KGS", "WT_kg"); @@ -505,7 +506,7 @@ public class UpsServices { Element unitOfMeasurementElement = UtilXml.addChildElement(dimensionsElement, "UnitOfMeasurement", shipmentConfirmRequestDoc); GenericValue dimensionUom = shipmentBoxType.getRelatedOne("DimensionUom", false); if (dimensionUom != null) { - UtilXml.addChildElementValue(unitOfMeasurementElement, "Code", dimensionUom.getString("abbreviation").toUpperCase(), shipmentConfirmRequestDoc); + UtilXml.addChildElementValue(unitOfMeasurementElement, "Code", dimensionUom.getString("abbreviation").toUpperCase(Locale.getDefault()), shipmentConfirmRequestDoc); } else { // I guess we'll default to inches... UtilXml.addChildElementValue(unitOfMeasurementElement, "Code", ModelService.IN_PARAM, shipmentConfirmRequestDoc); @@ -523,7 +524,7 @@ public class UpsServices { Element unitOfMeasurementElement = UtilXml.addChildElement(dimensionsElement, "UnitOfMeasurement", shipmentConfirmRequestDoc); GenericValue dimensionUom = shipmentPackage.getRelatedOne("DimensionUom", false); if (dimensionUom != null) { - UtilXml.addChildElementValue(unitOfMeasurementElement, "Code", dimensionUom.getString("abbreviation").toUpperCase(), shipmentConfirmRequestDoc); + UtilXml.addChildElementValue(unitOfMeasurementElement, "Code", dimensionUom.getString("abbreviation").toUpperCase(Locale.getDefault()), shipmentConfirmRequestDoc); } else { UtilXml.addChildElementValue(unitOfMeasurementElement, "Code", ModelService.IN_PARAM, shipmentConfirmRequestDoc); } @@ -633,7 +634,7 @@ public class UpsServices { String outFileName = shipmentUpsSaveCertificationPath + "/UpsShipmentConfirmRequest" + shipmentId + "_" + shipmentRouteSegment.getString("shipmentRouteSegmentId") + ".xml"; try { FileOutputStream fileOut = new FileOutputStream(outFileName); - fileOut.write(xmlString.toString().getBytes()); + fileOut.write(xmlString.toString().getBytes(UtilIO.getUtf8())); fileOut.flush(); fileOut.close(); } catch (IOException e) { @@ -654,7 +655,7 @@ public class UpsServices { String outFileName = shipmentUpsSaveCertificationPath + "/UpsShipmentConfirmResponse" + shipmentId + "_" + shipmentRouteSegment.getString("shipmentRouteSegmentId") + ".xml"; try { FileOutputStream fileOut = new FileOutputStream(outFileName); - fileOut.write(shipmentConfirmResponseString.getBytes()); + fileOut.write(shipmentConfirmResponseString.getBytes(UtilIO.getUtf8())); fileOut.flush(); fileOut.close(); } catch (IOException e) { @@ -908,9 +909,8 @@ public class UpsServices { if (shipmentUpsSaveCertificationInfo) { String outFileName = shipmentUpsSaveCertificationPath + "/UpsShipmentAcceptRequest" + shipmentId + "_" + shipmentRouteSegment.getString("shipmentRouteSegmentId") + ".xml"; - try { - FileOutputStream fileOut = new FileOutputStream(outFileName); - fileOut.write(xmlString.toString().getBytes()); + try (FileOutputStream fileOut = new FileOutputStream(outFileName)) { + fileOut.write(xmlString.toString().getBytes(UtilIO.getUtf8())); fileOut.flush(); fileOut.close(); } catch (IOException e) { @@ -929,9 +929,8 @@ public class UpsServices { if (shipmentUpsSaveCertificationInfo) { String outFileName = shipmentUpsSaveCertificationPath + "/UpsShipmentAcceptResponse" + shipmentId + "_" + shipmentRouteSegment.getString("shipmentRouteSegmentId") + ".xml"; - try { - FileOutputStream fileOut = new FileOutputStream(outFileName); - fileOut.write(shipmentAcceptResponseString.getBytes()); + try (FileOutputStream fileOut = new FileOutputStream(outFileName)) { + fileOut.write(shipmentAcceptResponseString.getBytes(UtilIO.getUtf8())); fileOut.flush(); fileOut.close(); } catch (IOException e) { @@ -1110,12 +1109,12 @@ public class UpsServices { } byte[] labelImageBytes = null; if (packageLabelGraphicImageString != null) { - labelImageBytes = Base64.base64Decode(packageLabelGraphicImageString.getBytes()); + labelImageBytes = Base64.base64Decode(packageLabelGraphicImageString.getBytes(UtilIO.getUtf8())); shipmentPackageRouteSeg.setBytes("labelImage", labelImageBytes); } byte[] labelInternationalSignatureGraphicImageBytes = null; if (packageLabelInternationalSignatureGraphicImageString != null) { - labelInternationalSignatureGraphicImageBytes = Base64.base64Decode(packageLabelInternationalSignatureGraphicImageString.getBytes()); + labelInternationalSignatureGraphicImageBytes = Base64.base64Decode(packageLabelInternationalSignatureGraphicImageString.getBytes(UtilIO.getUtf8())); shipmentPackageRouteSeg.set("labelIntlSignImage", labelInternationalSignatureGraphicImageBytes); } String packageLabelHTMLImageStringDecoded = Base64.base64Decode(packageLabelHTMLImageString); @@ -1124,8 +1123,7 @@ public class UpsServices { if (shipmentUpsSaveCertificationInfo) { if (labelImageBytes != null) { String outFileName = shipmentUpsSaveCertificationPath + "/label" + trackingNumber + ".gif"; - try { - FileOutputStream fileOut = new FileOutputStream(outFileName); + try (FileOutputStream fileOut = new FileOutputStream(outFileName)) { fileOut.write(labelImageBytes); fileOut.flush(); fileOut.close(); @@ -1135,8 +1133,7 @@ public class UpsServices { } if (labelInternationalSignatureGraphicImageBytes != null) { String outFileName = shipmentUpsSaveCertificationPath + "/UpsShipmentLabelIntlSignImage" + "label" + trackingNumber + ".gif"; - try { - FileOutputStream fileOut = new FileOutputStream(outFileName); + try (FileOutputStream fileOut = new FileOutputStream(outFileName)) { fileOut.write(labelInternationalSignatureGraphicImageBytes); fileOut.flush(); fileOut.close(); @@ -1146,9 +1143,8 @@ public class UpsServices { } if (packageLabelHTMLImageStringDecoded != null) { String outFileName = shipmentUpsSaveCertificationPath + "/UpsShipmentLabelHTMLImage" + shipmentRouteSegment.getString("shipmentId") + "_" + shipmentRouteSegment.getString("shipmentRouteSegmentId") + "_" + shipmentPackageRouteSeg.getString("shipmentPackageSeqId") + ".html"; - try { - FileOutputStream fileOut = new FileOutputStream(outFileName); - fileOut.write(packageLabelHTMLImageStringDecoded.getBytes()); + try (FileOutputStream fileOut = new FileOutputStream(outFileName)) { + fileOut.write(packageLabelHTMLImageStringDecoded.getBytes(UtilIO.getUtf8())); fileOut.flush(); fileOut.close(); } catch (IOException e) { @@ -1179,9 +1175,8 @@ public class UpsServices { shipmentRouteSegment.set("upsHighValueReport", fileStringDecoded); shipmentRouteSegment.store(); String outFileName = shipmentUpsSaveCertificationPath + "/HighValueReport" + shipmentRouteSegment.getString("shipmentId") + "_" + shipmentRouteSegment.getString("shipmentRouteSegmentId") + ".html"; - try { - FileOutputStream fileOut = new FileOutputStream(outFileName); - fileOut.write(fileStringDecoded.getBytes()); + try (FileOutputStream fileOut = new FileOutputStream(outFileName)) { + fileOut.write(fileStringDecoded.getBytes(UtilIO.getUtf8())); fileOut.flush(); fileOut.close(); } catch (IOException e) { @@ -1302,9 +1297,8 @@ public class UpsServices { if (shipmentUpsSaveCertificationInfo) { String outFileName = shipmentUpsSaveCertificationPath + "/UpsVoidShipmentRequest" + shipmentId + "_" + shipmentRouteSegment.getString("shipmentRouteSegmentId") + ".xml"; - try { - FileOutputStream fileOut = new FileOutputStream(outFileName); - fileOut.write(xmlString.toString().getBytes()); + try (FileOutputStream fileOut = new FileOutputStream(outFileName)) { + fileOut.write(xmlString.toString().getBytes(UtilIO.getUtf8())); fileOut.flush(); fileOut.close(); } catch (IOException e) { @@ -1323,9 +1317,8 @@ public class UpsServices { if (shipmentUpsSaveCertificationInfo) { String outFileName = shipmentUpsSaveCertificationPath + "/UpsVoidShipmentResponse" + shipmentId + "_" + shipmentRouteSegment.getString("shipmentRouteSegmentId") + ".xml"; - try { - FileOutputStream fileOut = new FileOutputStream(outFileName); - fileOut.write(voidShipmentResponseString.getBytes()); + try (FileOutputStream fileOut = new FileOutputStream(outFileName)) { + fileOut.write(voidShipmentResponseString.getBytes(UtilIO.getUtf8())); fileOut.flush(); fileOut.close(); } catch (IOException e) { @@ -1502,9 +1495,8 @@ public class UpsServices { if (shipmentUpsSaveCertificationInfo) { String outFileName = shipmentUpsSaveCertificationPath + "/UpsTrackRequest" + shipmentId + "_" + shipmentRouteSegment.getString("shipmentRouteSegmentId") + ".xml"; - try { - FileOutputStream fileOut = new FileOutputStream(outFileName); - fileOut.write(xmlString.toString().getBytes()); + try (FileOutputStream fileOut = new FileOutputStream(outFileName)) { + fileOut.write(xmlString.toString().getBytes(UtilIO.getUtf8())); fileOut.flush(); fileOut.close(); } catch (IOException e) { @@ -1523,9 +1515,8 @@ public class UpsServices { if (shipmentUpsSaveCertificationInfo) { String outFileName = shipmentUpsSaveCertificationPath + "/UpsTrackResponseString" + shipmentId + "_" + shipmentRouteSegment.getString("shipmentRouteSegmentId") + ".xml"; - try { - FileOutputStream fileOut = new FileOutputStream(outFileName); - fileOut.write(trackResponseString.getBytes()); + try (FileOutputStream fileOut = new FileOutputStream(outFileName)) { + fileOut.write(trackResponseString.getBytes(UtilIO.getUtf8())); fileOut.flush(); fileOut.close(); } catch (IOException e) { @@ -1870,10 +1861,6 @@ public class UpsServices { */ public static String sendUpsRequest(String upsService, String xmlString, String shipmentGatewayConfigId, String resource, Delegator delegator, Locale locale) throws UpsConnectException { - String conStr = getShipmentGatewayConfigValue(delegator, shipmentGatewayConfigId, "connectUrl", resource, "shipment.ups.connect.url"); - if (conStr == null) { - throw new UpsConnectException(UtilProperties.getMessage(resourceError, "FacilityShipmentUpsIncompleteConnectionURL", locale)); - } // need a ups service to call if (upsService == null) { @@ -1886,6 +1873,11 @@ public class UpsServices { throw new UpsConnectException(UtilProperties.getMessage(resourceError, "FacilityShipmentUpsXmlMessageCannotBeNull", locale)); } + String conStr = getShipmentGatewayConfigValue(delegator, shipmentGatewayConfigId, "connectUrl", resource, "shipment.ups.connect.url"); + if (UtilValidate.isEmpty(conStr)) { + throw new UpsConnectException(UtilProperties.getMessage(resourceError, "FacilityShipmentUpsIncompleteConnectionURL", locale)); + } + // prepare the connect string conStr = conStr.trim(); if (!conStr.endsWith("/")) { @@ -1936,9 +1928,6 @@ public class UpsServices { String shippingCountryCode = (String) context.get("shippingCountryCode"); List<BigDecimal> packageWeights = UtilGenerics.checkList(context.get("packageWeights")); List<Map<String, Object>> shippableItemInfo = UtilGenerics.checkList(context.get("shippableItemInfo")); - BigDecimal shippableTotal = (BigDecimal) context.get("shippableTotal"); - BigDecimal shippableQuantity = (BigDecimal) context.get("shippableQuantity"); - BigDecimal shippableWeight = (BigDecimal) context.get("shippableWeight"); String isResidentialAddress = (String)context.get("isResidentialAddress"); // Important: DO NOT returnError here or you could trigger a transaction rollback and break other services. @@ -1946,15 +1935,6 @@ public class UpsServices { return ServiceUtil.returnFailure(UtilProperties.getMessage(resourceError, "FacilityShipmentUpsCannotRateEstimatePostalCodeMissing", locale)); } - if (shippableTotal == null) { - shippableTotal = BigDecimal.ZERO; - } - if (shippableQuantity == null) { - shippableQuantity = BigDecimal.ZERO; - } - if (shippableWeight == null) { - shippableWeight = BigDecimal.ZERO; - } if (serviceConfigProps == null) { serviceConfigProps = "shipment.properties"; } @@ -2061,14 +2041,14 @@ public class UpsServices { // package info String maxWeightStr = getShipmentGatewayConfigValue(delegator, shipmentGatewayConfigId, "maxEstimateWeight", serviceConfigProps, "shipment.ups.max.estimate.weight", "99"); - BigDecimal maxWeight = new BigDecimal("99"); + BigDecimal maxWeight; try { maxWeight = new BigDecimal(maxWeightStr); } catch (NumberFormatException e) { maxWeight = new BigDecimal("99"); } String minWeightStr = getShipmentGatewayConfigValue(delegator, shipmentGatewayConfigId, "minEstimateWeight", serviceConfigProps, "shipment.ups.min.estimate.weight", ".1"); - BigDecimal minWeight = new BigDecimal("0.1"); + BigDecimal minWeight; try { minWeight = new BigDecimal(minWeightStr); } catch (NumberFormatException e) { @@ -2666,9 +2646,8 @@ public class UpsServices { if (shipmentUpsSaveCertificationInfo) { String outFileName = shipmentUpsSaveCertificationPath + "/UpsShipmentAcceptRequest" + shipmentId + "_" + shipmentRouteSegment.getString("shipmentRouteSegmentId") + ".xml"; - try { - FileOutputStream fileOut = new FileOutputStream(outFileName); - fileOut.write(xmlString.toString().getBytes()); + try (FileOutputStream fileOut = new FileOutputStream(outFileName)) { + fileOut.write(xmlString.toString().getBytes(UtilIO.getUtf8())); fileOut.flush(); fileOut.close(); } catch (IOException e) { @@ -2699,7 +2678,7 @@ public class UpsServices { Delegator delegator = dctx.getDelegator(); // prepare the data - String upsRateInquireMode = (String) context.get("upsRateInquireMode"); + String upsRateInquireMode; String shipmentId = (String) context.get("shipmentId"); String shipmentRouteSegmentId = (String) context.get("shipmentRouteSegmentId"); Locale locale = (Locale) context.get("locale"); @@ -2901,7 +2880,7 @@ public class UpsServices { Element unitOfMeasurementElement = UtilXml.addChildElement(dimensionsElement, "UnitOfMeasurement", rateRequestDoc); GenericValue dimensionUom = shipmentBoxType.getRelatedOne("DimensionUom", false); if (dimensionUom != null) { - UtilXml.addChildElementValue(unitOfMeasurementElement, "Code", dimensionUom.getString("abbreviation").toUpperCase(), rateRequestDoc); + UtilXml.addChildElementValue(unitOfMeasurementElement, "Code", dimensionUom.getString("abbreviation").toUpperCase(Locale.getDefault()), rateRequestDoc); } else { UtilXml.addChildElementValue(unitOfMeasurementElement, "Code", ModelService.IN_PARAM, rateRequestDoc); } |
Free forum by Nabble | Edit this page |