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/10 10:45:36 UTC
svn commit: r1817687 -
/ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/shipment/thirdparty/ups/UpsServices.java
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);
}