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/09 17:52:33 UTC
svn commit: r1817641 -
/ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/
Author: mbrohl
Date: Sat Dec 9 17:52:33 2017
New Revision: 1817641
URL: http://svn.apache.org/viewvc?rev=1817641&view=rev
Log:
Improved: Fixing defects reported by FindBugs, package
org.apache.ofbiz.order.shoppingcart.
(OFBIZ-9783)
Thanks Dennis Balkir for reporting and providing the patch.
Modified:
ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/CartEventListener.java
ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/CheckOutEvents.java
ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/CheckOutHelper.java
ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCart.java
ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartEvents.java
ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartHelper.java
ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartItem.java
ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartServices.java
Modified: ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/CartEventListener.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/CartEventListener.java?rev=1817641&r1=1817640&r2=1817641&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/CartEventListener.java (original)
+++ ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/CartEventListener.java Sat Dec 9 17:52:33 2017
@@ -78,7 +78,7 @@ public class CartEventListener implement
GenericValue cartAbandonedLine = delegator.makeValue("CartAbandonedLine");
cartAbandonedLine.set("visitId", visit.get("visitId"));
- cartAbandonedLine.set("cartAbandonedLineSeqId", (Integer.valueOf(seqId)).toString());
+ cartAbandonedLine.set("cartAbandonedLineSeqId", Integer.toString(seqId));
cartAbandonedLine.set("productId", cartItem.getProductId());
cartAbandonedLine.set("prodCatalogId", cartItem.getProdCatalogId());
cartAbandonedLine.set("quantity", cartItem.getQuantity());
Modified: ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/CheckOutEvents.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/CheckOutEvents.java?rev=1817641&r1=1817640&r2=1817641&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/CheckOutEvents.java (original)
+++ ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/CheckOutEvents.java Sat Dec 9 17:52:33 2017
@@ -64,10 +64,10 @@ public class CheckOutEvents {
public static String cartNotEmpty(HttpServletRequest request, HttpServletResponse response) {
ShoppingCart cart = ShoppingCartEvents.getCartObject(request);
- if (cart != null && UtilValidate.isNotEmpty(cart.items())) {
+ if (UtilValidate.isNotEmpty(cart.items())) {
return "success";
} else {
- String errMsg = UtilProperties.getMessage(resource_error, "checkevents.cart_empty", (cart != null ? cart.getLocale() : UtilHttp.getLocale(request)));
+ String errMsg = UtilProperties.getMessage(resource_error, "checkevents.cart_empty", cart.getLocale());
request.setAttribute("_ERROR_MESSAGE_", errMsg);
return "error";
}
@@ -481,14 +481,14 @@ public class CheckOutEvents {
request.setAttribute("orderAdditionalEmails", cart.getOrderAdditionalEmails());
}
}
-
+
String issuerId = request.getParameter("issuerId");
if (UtilValidate.isNotEmpty(issuerId)) {
request.setAttribute("issuerId", issuerId);
}
-
- return cart.getOrderType().toLowerCase();
+
+ return cart.getOrderType().toLowerCase(Locale.getDefault());
}
// Event wrapper for the tax calc.
Modified: ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/CheckOutHelper.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/CheckOutHelper.java?rev=1817641&r1=1817640&r2=1817641&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/CheckOutHelper.java (original)
+++ ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/CheckOutHelper.java Sat Dec 9 17:52:33 2017
@@ -98,7 +98,7 @@ public class CheckOutHelper {
errorMessages.add(errMsg);
}
if (errorMessages.size() == 1) {
- result = ServiceUtil.returnError(errorMessages.get(0).toString());
+ result = ServiceUtil.returnError(errorMessages.get(0));
} else if (errorMessages.size() > 0) {
result = ServiceUtil.returnError(errorMessages);
} else {
@@ -117,7 +117,7 @@ public class CheckOutHelper {
this.cart.setAllShippingContactMechId(shippingContactMechId);
} else if (cart.shippingApplies()) {
// only return an error if shipping is required for this purchase
- errMsg = UtilProperties.getMessage(resource_error,"checkhelper.select_shipping_destination", (cart != null ? cart.getLocale() : Locale.getDefault()));
+ errMsg = UtilProperties.getMessage(resource_error,"checkhelper.select_shipping_destination", cart.getLocale());
errorMessages.add(errMsg);
}
@@ -139,7 +139,7 @@ public class CheckOutHelper {
}
if (errorMessages.size() == 1) {
- result = ServiceUtil.returnError(errorMessages.get(0).toString());
+ result = ServiceUtil.returnError(errorMessages.get(0));
} else if (errorMessages.size() > 0) {
result = ServiceUtil.returnError(errorMessages);
} else {
@@ -169,7 +169,7 @@ public class CheckOutHelper {
this.cart.setAllCarrierPartyId(carrierPartyId);
} else if (cart.shippingApplies()) {
// only return an error if shipping is required for this purchase
- errMsg = UtilProperties.getMessage(resource_error,"checkhelper.select_shipping_method", (cart != null ? cart.getLocale() : Locale.getDefault()));
+ errMsg = UtilProperties.getMessage(resource_error,"checkhelper.select_shipping_method", cart.getLocale());
errorMessages.add(errMsg);
}
@@ -179,7 +179,7 @@ public class CheckOutHelper {
if (UtilValidate.isNotEmpty(maySplit)) {
cart.setAllMaySplit(Boolean.valueOf(maySplit));
} else {
- errMsg = UtilProperties.getMessage(resource_error,"checkhelper.select_splitting_preference", (cart != null ? cart.getLocale() : Locale.getDefault()));
+ errMsg = UtilProperties.getMessage(resource_error,"checkhelper.select_splitting_preference", cart.getLocale());
errorMessages.add(errMsg);
}
@@ -189,7 +189,7 @@ public class CheckOutHelper {
if (UtilValidate.isNotEmpty(isGift)) {
cart.setAllIsGift(Boolean.valueOf(isGift));
} else {
- errMsg = UtilProperties.getMessage(resource_error, "checkhelper.specify_if_order_is_gift", (cart != null ? cart.getLocale() : Locale.getDefault()));
+ errMsg = UtilProperties.getMessage(resource_error, "checkhelper.specify_if_order_is_gift", cart.getLocale());
errorMessages.add(errMsg);
}
@@ -200,7 +200,7 @@ public class CheckOutHelper {
if (UtilValidate.isDate(shipBeforeDate)) {
cart.setShipBeforeDate(UtilDateTime.toTimestamp(shipBeforeDate));
} else {
- errMsg = UtilProperties.getMessage(resource_error, "checkhelper.specify_if_shipBeforeDate_is_date", (cart != null ? cart.getLocale() : Locale.getDefault()));
+ errMsg = UtilProperties.getMessage(resource_error, "checkhelper.specify_if_shipBeforeDate_is_date", cart.getLocale());
errorMessages.add(errMsg);
}
}
@@ -209,7 +209,7 @@ public class CheckOutHelper {
if (UtilValidate.isDate(shipAfterDate)) {
cart.setShipAfterDate(UtilDateTime.toTimestamp(shipAfterDate));
} else {
- errMsg = UtilProperties.getMessage(resource_error, "checkhelper.specify_if_shipAfterDate_is_date", (cart != null ? cart.getLocale() : Locale.getDefault()));
+ errMsg = UtilProperties.getMessage(resource_error, "checkhelper.specify_if_shipAfterDate_is_date", cart.getLocale());
errorMessages.add(errMsg);
}
}
@@ -233,7 +233,7 @@ public class CheckOutHelper {
}
if (errorMessages.size() == 1) {
- result = ServiceUtil.returnError(errorMessages.get(0).toString());
+ result = ServiceUtil.returnError(errorMessages.get(0));
} else if (errorMessages.size() > 0) {
result = ServiceUtil.returnError(errorMessages);
} else {
@@ -288,7 +288,7 @@ public class CheckOutHelper {
// if an amount was entered, check that it doesn't exceed available amount
if (amountToUse.compareTo(BigDecimal.ZERO) > 0 && amountToUse.compareTo(accountCredit) > 0) {
errMsg = UtilProperties.getMessage(resource_error,"checkhelper.insufficient_credit_available_on_account",
- (cart != null ? cart.getLocale() : Locale.getDefault()));
+ cart.getLocale());
errorMessages.add(errMsg);
} else {
// otherwise use the available account credit (The user might enter 10.00 for an order worth 20.00 from an account with 30.00. This makes sure that the 30.00 is used)
@@ -300,7 +300,7 @@ public class CheckOutHelper {
if (grandTotal.compareTo(amountToUse) > 0) {
cart.setBillingAccount(null, BigDecimal.ZERO); // erase existing billing account data
errMsg = UtilProperties.getMessage(resource_error,"checkhelper.insufficient_credit_available_on_account",
- (cart != null ? cart.getLocale() : Locale.getDefault()));
+ cart.getLocale());
errorMessages.add(errMsg);
} else {
// since this is the only selected payment method, let's make this amount the grand total for convenience
@@ -318,7 +318,7 @@ public class CheckOutHelper {
for (String checkOutPaymentId : selectedPaymentMethods.keySet()) {
String finAccountId = null;
- if (checkOutPaymentId.indexOf("|") > -1) {
+ if (checkOutPaymentId.indexOf('|') > -1) {
// split type -- ID|Actual
String[] splitStr = checkOutPaymentId.split("\\|");
checkOutPaymentId = splitStr[0];
@@ -349,7 +349,7 @@ public class CheckOutHelper {
} else if (cart.getGrandTotal().compareTo(BigDecimal.ZERO) != 0) {
// only return an error if the order total is not 0.00
errMsg = UtilProperties.getMessage(resource_error,"checkhelper.select_method_of_payment",
- (cart != null ? cart.getLocale() : Locale.getDefault()));
+ cart.getLocale());
errorMessages.add(errMsg);
}
@@ -371,7 +371,7 @@ public class CheckOutHelper {
}
if (errorMessages.size() == 1) {
- result = ServiceUtil.returnError(errorMessages.get(0).toString());
+ result = ServiceUtil.returnError(errorMessages.get(0));
} else if (errorMessages.size() > 0) {
result = ServiceUtil.returnError(errorMessages);
} else {
@@ -421,7 +421,7 @@ public class CheckOutHelper {
}
if (errorMessages.size() == 1) {
- result = ServiceUtil.returnError(errorMessages.get(0).toString());
+ result = ServiceUtil.returnError(errorMessages.get(0));
} else if (errorMessages.size() > 0) {
result = ServiceUtil.returnError(errorMessages);
} else {
@@ -452,7 +452,7 @@ public class CheckOutHelper {
if (cart.isPinRequiredForGC(delegator)) {
// if a PIN is required, make sure the PIN is valid
if (UtilValidate.isEmpty(gcPin)) {
- errMsg = UtilProperties.getMessage(resource_error,"checkhelper.enter_gift_card_pin_number", (cart != null ? cart.getLocale() : Locale.getDefault()));
+ errMsg = UtilProperties.getMessage(resource_error,"checkhelper.enter_gift_card_pin_number", cart.getLocale());
errorMessages.add(errMsg);
gcFieldsOkay = false;
}
@@ -464,13 +464,13 @@ public class CheckOutHelper {
if (!cart.isPinRequiredForGC(delegator)) {
GenericValue finAccount = FinAccountHelper.getFinAccountFromCode(gcNum, delegator);
if (finAccount == null) {
- errMsg = UtilProperties.getMessage(resource_error,"checkhelper.gift_card_does_not_exist", (cart != null ? cart.getLocale() : Locale.getDefault()));
+ errMsg = UtilProperties.getMessage(resource_error,"checkhelper.gift_card_does_not_exist", cart.getLocale());
errorMessages.add(errMsg);
gcFieldsOkay = false;
} else if ((finAccount.getBigDecimal("availableBalance") == null) ||
!((finAccount.getBigDecimal("availableBalance")).compareTo(FinAccountHelper.ZERO) > 0)) {
// if account's available balance (including authorizations) is not greater than zero, then return an error
- errMsg = UtilProperties.getMessage(resource_error,"checkhelper.gift_card_has_no_value", (cart != null ? cart.getLocale() : Locale.getDefault()));
+ errMsg = UtilProperties.getMessage(resource_error,"checkhelper.gift_card_has_no_value", cart.getLocale());
errorMessages.add(errMsg);
gcFieldsOkay = false;
}
@@ -484,7 +484,7 @@ public class CheckOutHelper {
if (UtilValidate.isNotEmpty(selectedPaymentMethods)) {
if (UtilValidate.isEmpty(gcAmt)) {
- errMsg = UtilProperties.getMessage(resource_error,"checkhelper.enter_amount_to_place_on_gift_card", (cart != null ? cart.getLocale() : Locale.getDefault()));
+ errMsg = UtilProperties.getMessage(resource_error,"checkhelper.enter_amount_to_place_on_gift_card", cart.getLocale());
errorMessages.add(errMsg);
gcFieldsOkay = false;
}
@@ -494,7 +494,7 @@ public class CheckOutHelper {
gcAmount = new BigDecimal(gcAmt);
} catch (NumberFormatException e) {
Debug.logError(e, module);
- errMsg = UtilProperties.getMessage(resource_error,"checkhelper.invalid_amount_for_gift_card", (cart != null ? cart.getLocale() : Locale.getDefault()));
+ errMsg = UtilProperties.getMessage(resource_error,"checkhelper.invalid_amount_for_gift_card", cart.getLocale());
errorMessages.add(errMsg);
gcFieldsOkay = false;
}
@@ -531,7 +531,7 @@ public class CheckOutHelper {
result.put("amount", giftCardAmount);
}
} else {
- errMsg = UtilProperties.getMessage(resource_error,"checkhelper.problem_with_gift_card_information", (cart != null ? cart.getLocale() : Locale.getDefault()));
+ errMsg = UtilProperties.getMessage(resource_error,"checkhelper.problem_with_gift_card_information", cart.getLocale());
errorMessages.add(errMsg);
}
}
@@ -609,14 +609,14 @@ public class CheckOutHelper {
} catch (GenericServiceException e) {
String service = e.getMessage();
Map<String, Object> messageMap = UtilMisc.<String, Object>toMap("service", service);
- String errMsg = UtilProperties.getMessage(resource_error, "checkhelper.could_not_create_order_invoking_service", messageMap, (cart != null ? cart.getLocale() : Locale.getDefault()));
+ String errMsg = UtilProperties.getMessage(resource_error, "checkhelper.could_not_create_order_invoking_service", messageMap, cart.getLocale());
Debug.logError(e, errMsg, module);
return ServiceUtil.returnError(errMsg);
}
// check for error message(s)
if (ServiceUtil.isError(storeResult)) {
- String errMsg = UtilProperties.getMessage(resource_error, "checkhelper.did_not_complete_order_following_occurred", (cart != null ? cart.getLocale() : Locale.getDefault()));
+ String errMsg = UtilProperties.getMessage(resource_error, "checkhelper.did_not_complete_order_following_occurred", cart.getLocale());
List<String> resErrorMessages = new LinkedList<String>();
resErrorMessages.add(errMsg);
resErrorMessages.add(ServiceUtil.getErrorMessage(storeResult));
@@ -656,19 +656,19 @@ public class CheckOutHelper {
String service = e.getMessage();
Map<String, String> messageMap = UtilMisc.toMap("service", service);
String errMsg = "Problem accessing the Product entity";
- errMsg = errMsg + UtilProperties.getMessage(resource_error, "checkhelper.could_not_create_order_invoking_service", messageMap, (cart != null ? cart.getLocale() : Locale.getDefault()));
+ errMsg = errMsg + UtilProperties.getMessage(resource_error, "checkhelper.could_not_create_order_invoking_service", messageMap, cart.getLocale());
Debug.logError(e, errMsg, module);
return ServiceUtil.returnError(errMsg);
} catch (GenericServiceException e) {
String service = e.getMessage();
Map<String, String> messageMap = UtilMisc.toMap("service", service);
- String errMsg = UtilProperties.getMessage(resource_error, "checkhelper.could_not_create_order_invoking_service", messageMap, (cart != null ? cart.getLocale() : Locale.getDefault()));
+ String errMsg = UtilProperties.getMessage(resource_error, "checkhelper.could_not_create_order_invoking_service", messageMap, cart.getLocale());
Debug.logError(e, errMsg, module);
return ServiceUtil.returnError(errMsg);
} catch (Exception e) {
String service = e.getMessage();
Map<String, String> messageMap = UtilMisc.toMap("service", service);
- String errMsg = UtilProperties.getMessage(resource_error, "checkhelper.could_not_create_order_invoking_service", messageMap, (cart != null ? cart.getLocale() : Locale.getDefault()));
+ String errMsg = UtilProperties.getMessage(resource_error, "checkhelper.could_not_create_order_invoking_service", messageMap, cart.getLocale());
Debug.logError(e, errMsg, module);
return ServiceUtil.returnError(errMsg);
}
@@ -690,13 +690,13 @@ public class CheckOutHelper {
} catch (GenericServiceException e) {
String service = e.getMessage();
Map<String, String> messageMap = UtilMisc.toMap("service", service);
- String errMsg = UtilProperties.getMessage(resource_error, "checkhelper.could_not_create_order_invoking_service", messageMap, (cart != null ? cart.getLocale() : Locale.getDefault()));
+ String errMsg = UtilProperties.getMessage(resource_error, "checkhelper.could_not_create_order_invoking_service", messageMap, cart.getLocale());
Debug.logError(e, errMsg, module);
return ServiceUtil.returnError(errMsg);
} catch (Exception e) {
String service = e.getMessage();
Map<String, String> messageMap = UtilMisc.toMap("service", service);
- String errMsg = UtilProperties.getMessage(resource_error, "checkhelper.could_not_create_order_invoking_service", messageMap, (cart != null ? cart.getLocale() : Locale.getDefault()));
+ String errMsg = UtilProperties.getMessage(resource_error, "checkhelper.could_not_create_order_invoking_service", messageMap, cart.getLocale());
Debug.logError(e, errMsg, module);
return ServiceUtil.returnError(errMsg);
}
@@ -1204,7 +1204,7 @@ public class CheckOutHelper {
if (shippingAddressObj == null) {
return ServiceUtil.returnSuccess("success");
}
- String shippingAddress = UtilFormatOut.checkNull(shippingAddressObj.getString("address1")).toUpperCase();
+ String shippingAddress = UtilFormatOut.checkNull(shippingAddressObj.getString("address1")).toUpperCase(Locale.getDefault());
shippingAddress = UtilFormatOut.makeSqlSafe(shippingAddress);
List<EntityExpr> exprs = UtilMisc.toList(EntityCondition.makeCondition(
EntityCondition.makeCondition(EntityFunction.UPPER_FIELD("blacklistString"), EntityOperator.EQUALS, EntityFunction.UPPER(shippingAddress)),
@@ -1223,7 +1223,7 @@ public class CheckOutHelper {
billingAddress = creditCard.getRelatedOne("PostalAddress", false);
} catch (GenericEntityException e) {
Debug.logError(e, "Problems getting credit card from payment method", module);
- errMsg = UtilProperties.getMessage(resource_error,"checkhelper.problems_reading_database", (cart != null ? cart.getLocale() : Locale.getDefault()));
+ errMsg = UtilProperties.getMessage(resource_error,"checkhelper.problems_reading_database", cart.getLocale());
return ServiceUtil.returnError(errMsg);
}
if (creditCard != null) {
@@ -1233,7 +1233,7 @@ public class CheckOutHelper {
EntityCondition.makeCondition("orderBlacklistTypeId", EntityOperator.EQUALS, "BLACKLIST_CREDITCARD")));
}
if (billingAddress != null) {
- String address = UtilFormatOut.checkNull(billingAddress.getString("address1").toUpperCase());
+ String address = UtilFormatOut.checkNull(billingAddress.getString("address1").toUpperCase(Locale.getDefault()));
address = UtilFormatOut.makeSqlSafe(address);
exprs.add(EntityCondition.makeCondition(
EntityCondition.makeCondition(EntityFunction.UPPER_FIELD("blacklistString"), EntityOperator.EQUALS, EntityFunction.UPPER(address)),
@@ -1249,13 +1249,13 @@ public class CheckOutHelper {
blacklistFound = EntityQuery.use(this.delegator).from("OrderBlacklist").where(exprs).queryList();
} catch (GenericEntityException e) {
Debug.logError(e, "Problems with OrderBlacklist lookup.", module);
- errMsg = UtilProperties.getMessage(resource_error,"checkhelper.problems_reading_database", (cart != null ? cart.getLocale() : Locale.getDefault()));
+ errMsg = UtilProperties.getMessage(resource_error,"checkhelper.problems_reading_database", cart.getLocale());
return ServiceUtil.returnError(errMsg);
}
}
if (UtilValidate.isNotEmpty(blacklistFound)) {
- return ServiceUtil.returnFailure(UtilProperties.getMessage(resource_error,"OrderFailed", (cart != null ? cart.getLocale() : Locale.getDefault())));
+ return ServiceUtil.returnFailure(UtilProperties.getMessage(resource_error,"OrderFailed", cart.getLocale()));
} else {
return ServiceUtil.returnSuccess("success");
}
@@ -1282,7 +1282,7 @@ public class CheckOutHelper {
}
} catch (GenericEntityException e) {
Debug.logError(e, module);
- errMsg = UtilProperties.getMessage(resource_error,"checkhelper.database_error", (cart != null ? cart.getLocale() : Locale.getDefault()));
+ errMsg = UtilProperties.getMessage(resource_error,"checkhelper.database_error", cart.getLocale());
result = ServiceUtil.returnError(errMsg);
return result;
}
@@ -1332,7 +1332,7 @@ public class CheckOutHelper {
if (!("EXT_PAYPAL".equals(paymentMethodTypeId) && UtilValidate.isNotEmpty(paymentPreference.getString("paymentMethodId")))) {
String type = paymentMethodTypeId.substring(4);
result = ServiceUtil.returnSuccess();
- result.put("type", type.toLowerCase());
+ result.put("type", type.toLowerCase(Locale.getDefault()));
return result;
}
}
@@ -1418,7 +1418,7 @@ public class CheckOutHelper {
this.cart.setShipmentMethodTypeId(shipGroupIndex, shipmentMethodTypeId);
this.cart.setCarrierPartyId(shipGroupIndex, carrierPartyId);
} else {
- errMsg = UtilProperties.getMessage(resource_error,"checkhelper.select_shipping_method", (cart != null ? cart.getLocale() : Locale.getDefault()));
+ errMsg = UtilProperties.getMessage(resource_error,"checkhelper.select_shipping_method", cart.getLocale());
result = ServiceUtil.returnError(errMsg);
}
@@ -1528,7 +1528,7 @@ public class CheckOutHelper {
if (billingAccountAmt.compareTo(availableAmount) > 0) {
Debug.logError("Billing account " + billingAccountId + " has [" + availableAmount + "] available but needs [" + billingAccountAmt + "] for this order", module);
Map<String, String> messageMap = UtilMisc.toMap("billingAccountId", billingAccountId);
- errMsg = UtilProperties.getMessage(resource_error, "checkevents.not_enough_available_on_account", messageMap, (cart != null ? cart.getLocale() : Locale.getDefault()));
+ errMsg = UtilProperties.getMessage(resource_error, "checkevents.not_enough_available_on_account", messageMap, cart.getLocale());
return ServiceUtil.returnError(errMsg);
}
@@ -1537,7 +1537,7 @@ public class CheckOutHelper {
List<String> paymentTypes = cart.getPaymentMethodTypeIds();
if (paymentTypes.contains("EXT_BILLACT") && paymentTypes.size() == 1 && paymentMethods.size() == 0) {
if (cart.getGrandTotal().compareTo(availableAmount) > 0) {
- errMsg = UtilProperties.getMessage(resource_error, "checkevents.insufficient_credit_available_on_account", (cart != null ? cart.getLocale() : Locale.getDefault()));
+ errMsg = UtilProperties.getMessage(resource_error, "checkevents.insufficient_credit_available_on_account", cart.getLocale());
return ServiceUtil.returnError(errMsg);
}
}
@@ -1572,7 +1572,7 @@ public class CheckOutHelper {
if (Debug.verboseOn()) Debug.logVerbose("Set null paymentMethodId - " + info.paymentMethodId + " / " + info.amount, module);
}
if (!setOverflow) {
- info.overflow = setOverflow = true;
+ info.overflow = true;
if (Debug.verboseOn()) Debug.logVerbose("Set overflow flag on payment - " + info.paymentMethodId, module);
}
}
@@ -1587,14 +1587,14 @@ public class CheckOutHelper {
if (UtilValidate.isNotEmpty(paymentMethods) && requiredAmount.compareTo(selectedPaymentTotal) > 0) {
Debug.logError("Required Amount : " + requiredAmount + " / Selected Amount : " + selectedPaymentTotal, module);
- errMsg = UtilProperties.getMessage(resource_error, "checkevents.payment_not_cover_this_order", (cart != null ? cart.getLocale() : Locale.getDefault()));
+ errMsg = UtilProperties.getMessage(resource_error, "checkevents.payment_not_cover_this_order", cart.getLocale());
return ServiceUtil.returnError(errMsg);
}
if (UtilValidate.isNotEmpty(paymentMethods) && requiredAmount.compareTo(selectedPaymentTotal) < 0) {
BigDecimal changeAmount = selectedPaymentTotal.subtract(requiredAmount);
if (!paymentTypes.contains("CASH")) {
Debug.logError("Change Amount : " + changeAmount + " / No cash.", module);
- errMsg = UtilProperties.getMessage(resource_error, "checkhelper.change_returned_cannot_be_greater_than_cash", (cart != null ? cart.getLocale() : Locale.getDefault()));
+ errMsg = UtilProperties.getMessage(resource_error, "checkhelper.change_returned_cannot_be_greater_than_cash", cart.getLocale());
return ServiceUtil.returnError(errMsg);
} else {
int cashIndex = paymentTypes.indexOf("CASH");
@@ -1602,7 +1602,7 @@ public class CheckOutHelper {
BigDecimal cashAmount = cart.getPaymentAmount(cashId);
if (cashAmount.compareTo(changeAmount) < 0) {
Debug.logError("Change Amount : " + changeAmount + " / Cash Amount : " + cashAmount, module);
- errMsg = UtilProperties.getMessage(resource_error, "checkhelper.change_returned_cannot_be_greater_than_cash", (cart != null ? cart.getLocale() : Locale.getDefault()));
+ errMsg = UtilProperties.getMessage(resource_error, "checkhelper.change_returned_cannot_be_greater_than_cash", cart.getLocale());
return ServiceUtil.returnError(errMsg);
}
}
Modified: ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCart.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCart.java?rev=1817641&r1=1817640&r2=1817641&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCart.java (original)
+++ ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCart.java Sat Dec 9 17:52:33 2017
@@ -24,6 +24,7 @@ import java.math.MathContext;
import java.math.RoundingMode;
import java.sql.Timestamp;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
@@ -134,7 +135,7 @@ public class ShoppingCart implements Ite
private List<ShoppingCartItem> cartLines = new LinkedList<ShoppingCartItem>();
private Map<String, ShoppingCartItemGroup> itemGroupByNumberMap = new HashMap<String, ShoppingCartItemGroup>();
protected long nextGroupNumber = 1;
- private List<CartPaymentInfo> paymentInfo = new LinkedList<ShoppingCart.CartPaymentInfo>();
+ protected List<CartPaymentInfo> paymentInfo = new LinkedList<ShoppingCart.CartPaymentInfo>();
private List<CartShipInfo> shipInfo = new LinkedList<ShoppingCart.CartShipInfo>();
private Map<String, String> contactMechIdsMap = new HashMap<String, String>();
private Map<String, String> orderAttributes = new HashMap<String, String>();
@@ -432,11 +433,11 @@ public class ShoppingCart implements Ite
}
public void setOrderDate(Timestamp t) {
- this.orderDate = t;
+ this.orderDate = t != null ? (Timestamp) t.clone() : null;
}
public Timestamp getOrderDate() {
- return this.orderDate;
+ return this.orderDate != null ? (Timestamp) this.orderDate.clone() : null;
}
/** Sets the currency for the cart. */
@@ -464,7 +465,7 @@ public class ShoppingCart implements Ite
}
public Timestamp getCartCreatedTime() {
- return this.cartCreatedTs;
+ return this.cartCreatedTs != null ? (Timestamp) this.cartCreatedTs.clone() : null;
}
public GenericValue getSupplierProduct(String productId, BigDecimal quantity, LocalDispatcher dispatcher) {
@@ -1200,27 +1201,27 @@ public class ShoppingCart implements Ite
}
public void setDefaultShipBeforeDate(Timestamp defaultShipBeforeDate) {
- this.defaultShipBeforeDate = defaultShipBeforeDate;
+ this.defaultShipBeforeDate = defaultShipBeforeDate != null ? (Timestamp) defaultShipBeforeDate.clone() : null;
}
public Timestamp getDefaultShipBeforeDate() {
- return this.defaultShipBeforeDate;
+ return this.defaultShipBeforeDate != null ? (Timestamp) this.defaultShipBeforeDate.clone() : null;
}
public void setDefaultShipAfterDate(Timestamp defaultShipAfterDate) {
- this.defaultShipAfterDate = defaultShipAfterDate;
+ this.defaultShipAfterDate = defaultShipAfterDate != null ? (Timestamp) defaultShipAfterDate.clone() : null;
}
public void setCancelBackOrderDate(Timestamp cancelBackOrderDate) {
- this.cancelBackOrderDate = cancelBackOrderDate;
+ this.cancelBackOrderDate = cancelBackOrderDate != null ? (Timestamp) cancelBackOrderDate.clone() : null;
}
public Timestamp getCancelBackOrderDate() {
- return this.cancelBackOrderDate;
+ return this.cancelBackOrderDate != null ? (Timestamp) this.cancelBackOrderDate.clone() : null;
}
public Timestamp getDefaultShipAfterDate() {
- return this.defaultShipAfterDate;
+ return this.defaultShipAfterDate != null ? (Timestamp) this.defaultShipAfterDate.clone() : null;
}
public String getOrderPartyId() {
@@ -1320,11 +1321,11 @@ public class ShoppingCart implements Ite
}
public void setLastListRestore(Timestamp time) {
- this.lastListRestore = time;
+ this.lastListRestore = time != null ? (Timestamp) time.clone() : null;
}
public Timestamp getLastListRestore() {
- return this.lastListRestore;
+ return this.lastListRestore != null ? (Timestamp) this.lastListRestore.clone() : null;
}
public BigDecimal getPartyDaysSinceCreated(Timestamp nowTimestamp) {
@@ -1832,15 +1833,13 @@ public class ShoppingCart implements Ite
public List<GenericValue> getCreditCards() {
List<GenericValue> paymentMethods = this.getPaymentMethods();
List<GenericValue> creditCards = new LinkedList<GenericValue>();
- if (paymentMethods != null) {
- for (GenericValue pm : paymentMethods) {
- if ("CREDIT_CARD".equals(pm.getString("paymentMethodTypeId"))) {
- try {
- GenericValue cc = pm.getRelatedOne("CreditCard", false);
- creditCards.add(cc);
- } catch (GenericEntityException e) {
- Debug.logError(e, "Unable to get credit card record from payment method : " + pm, module);
- }
+ for (GenericValue pm : paymentMethods) {
+ if ("CREDIT_CARD".equals(pm.getString("paymentMethodTypeId"))) {
+ try {
+ GenericValue cc = pm.getRelatedOne("CreditCard", false);
+ creditCards.add(cc);
+ } catch (GenericEntityException e) {
+ Debug.logError(e, "Unable to get credit card record from payment method : " + pm, module);
}
}
}
@@ -1851,15 +1850,13 @@ public class ShoppingCart implements Ite
public List<GenericValue> getGiftCards() {
List<GenericValue> paymentMethods = this.getPaymentMethods();
List<GenericValue> giftCards = new LinkedList<GenericValue>();
- if (paymentMethods != null) {
- for (GenericValue pm : paymentMethods) {
- if ("GIFT_CARD".equals(pm.getString("paymentMethodTypeId"))) {
- try {
- GenericValue gc = pm.getRelatedOne("GiftCard", false);
- giftCards.add(gc);
- } catch (GenericEntityException e) {
- Debug.logError(e, "Unable to get gift card record from payment method : " + pm, module);
- }
+ for (GenericValue pm : paymentMethods) {
+ if ("GIFT_CARD".equals(pm.getString("paymentMethodTypeId"))) {
+ try {
+ GenericValue gc = pm.getRelatedOne("GiftCard", false);
+ giftCards.add(gc);
+ } catch (GenericEntityException e) {
+ Debug.logError(e, "Unable to get gift card record from payment method : " + pm, module);
}
}
}
@@ -2068,7 +2065,7 @@ public class ShoppingCart implements Ite
public void setShipGroupShipDatesFromItem(ShoppingCartItem item) {
Map<Integer, BigDecimal> shipGroups = this.getShipGroups(item);
- if ((shipGroups != null) && (shipGroups.keySet() != null)) {
+ if (shipGroups.keySet() != null) {
for (Integer shipGroup : shipGroups.keySet()) {
CartShipInfo cartShipInfo = this.getShipInfo(shipGroup.intValue());
@@ -3321,7 +3318,7 @@ public class ShoppingCart implements Ite
Iterator<ShoppingCartItem> cartItemIter = this.iterator();
while (cartItemIter.hasNext()) {
ShoppingCartItem checkItem = cartItemIter.next();
- if (checkItem != null && checkItem.getIsPromo()) {
+ if (checkItem.getIsPromo()) {
this.clearItemShipInfo(checkItem);
cartItemIter.remove();
} else {
@@ -3486,7 +3483,7 @@ public class ShoppingCart implements Ite
else {
serviceContext.put("productTypeId", "AGGREGATED_CONF");
}
-
+
serviceContext.put("configId", configId);
if (UtilValidate.isNotEmpty(product.getString("requirementMethodEnumId"))) {
serviceContext.put("requirementMethodEnumId", product.getString("requirementMethodEnumId"));
@@ -3957,12 +3954,13 @@ public class ShoppingCart implements Ite
for (ShoppingCartItem item : cartLines) {
Map<String, String> orderItemAttributes = item.getOrderItemAttributes();
- for (String key : orderItemAttributes.keySet()) {
- String value = orderItemAttributes.get(key);
+ for (Entry<String, String> entry : orderItemAttributes.entrySet()) {
+ String value = entry.getValue();
+ String key = entry.getKey();
if (ALL == mode || (FILLED_ONLY == mode && UtilValidate.isNotEmpty(value)) || (EMPTY_ONLY == mode && UtilValidate.isEmpty(value))
- || (mode != ALL && mode != FILLED_ONLY && mode != EMPTY_ONLY)) {
-
+ || (mode != FILLED_ONLY && mode != EMPTY_ONLY)) {
+
GenericValue orderItemAttribute = getDelegator().makeValue("OrderItemAttribute");
if (UtilValidate.isNotEmpty(orderId)) {
orderItemAttribute.set("orderId", orderId);
@@ -4000,9 +3998,6 @@ public class ShoppingCart implements Ite
orderAtt.put("attrValue", value);
switch (mode) {
- case ALL:
- allOrderAttributes.add(orderAtt);
- break;
case FILLED_ONLY:
if (UtilValidate.isNotEmpty(value)) {
allOrderAttributes.add(orderAtt);
@@ -4013,6 +4008,7 @@ public class ShoppingCart implements Ite
allOrderAttributes.add(orderAtt);
}
break;
+ case ALL:
default:
allOrderAttributes.add(orderAtt);
break;
@@ -4259,7 +4255,8 @@ public class ShoppingCart implements Ite
}
// Reassign the drop-shippable item quantities to new or existing drop-ship groups
- for (String supplierPartyId : dropShipItems.keySet()) {
+ for (Entry<String, Map<ShoppingCartItem, Map<Integer, BigDecimal>>> supplierPartyEntry : dropShipItems.entrySet()) {
+ String supplierPartyId = supplierPartyEntry.getKey();
CartShipInfo shipInfo = null;
int newShipGroupIndex = -1 ;
@@ -4275,12 +4272,14 @@ public class ShoppingCart implements Ite
}
shipInfo.supplierPartyId = supplierPartyId;
- Map<ShoppingCartItem, Map<Integer, BigDecimal>> supplierCartItems = UtilGenerics.checkMap(dropShipItems.get(supplierPartyId));
- for (ShoppingCartItem cartItem : supplierCartItems.keySet()) {
- Map<Integer, BigDecimal> cartItemGroupQuantities = UtilGenerics.checkMap(supplierCartItems.get(cartItem));
- for (Integer previousShipGroupIndex : cartItemGroupQuantities.keySet()) {
- BigDecimal dropShipQuantity = cartItemGroupQuantities.get(previousShipGroupIndex);
- positionItemToGroup(cartItem, dropShipQuantity, previousShipGroupIndex.intValue(), newShipGroupIndex, true);
+ Map<ShoppingCartItem, Map<Integer, BigDecimal>> supplierCartItems = UtilGenerics.checkMap(supplierPartyEntry.getValue());
+ for (Entry<ShoppingCartItem, Map<Integer, BigDecimal>> cartItemEntry : supplierCartItems.entrySet()) {
+ ShoppingCartItem cartItem = cartItemEntry.getKey();
+ Map<Integer, BigDecimal> cartItemGroupQuantities = UtilGenerics.checkMap(cartItemEntry.getValue());
+ for (Entry<Integer, BigDecimal> previousShipGroupIndexEntry : cartItemGroupQuantities.entrySet()) {
+ Integer previousShipGroupIndex = previousShipGroupIndexEntry.getKey();
+ BigDecimal dropShipQuantity = previousShipGroupIndexEntry.getValue();
+ positionItemToGroup(cartItem, dropShipQuantity, previousShipGroupIndex, newShipGroupIndex, true);
}
}
}
@@ -4298,15 +4297,19 @@ public class ShoppingCart implements Ite
ShoppingCartItem cartItem = (ShoppingCartItem) obj;
ShoppingCartItem cartItem1 = (ShoppingCartItem) obj1;
- int compareValue = cartItem.getBasePrice().compareTo(cartItem1.getBasePrice());
- if (this.ascending) {
- return compareValue;
- } else {
- return -compareValue;
- }
+ return this.ascending
+ ? cartItem.getBasePrice().compareTo(cartItem1.getBasePrice())
+ : cartItem1.getBasePrice().compareTo(cartItem.getBasePrice());
}
@Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + (ascending ? 1231 : 1237);
+ return result;
+ }
+
public boolean equals(java.lang.Object obj) {
if (obj instanceof BasePriceOrderComparator) {
return this.ascending == ((BasePriceOrderComparator) obj).ascending;
@@ -4379,11 +4382,22 @@ public class ShoppingCart implements Ite
}
@Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((groupName == null) ? 0 : groupName.hashCode());
+ result = prime * result + ((groupNumber == null) ? 0 : groupNumber.hashCode());
+ result = prime * result + ((parentGroup == null) ? 0 : parentGroup.hashCode());
+ return result;
+ }
+
+ @Override
public boolean equals(Object obj) {
- if (obj == null) return false;
- ShoppingCartItemGroup that = (ShoppingCartItemGroup) obj;
- if (that.groupNumber.equals(this.groupNumber)) {
- return true;
+ if (obj instanceof ShoppingCartItemGroup) {
+ ShoppingCartItemGroup that = (ShoppingCartItemGroup) obj;
+ if (that.groupNumber.equals(this.groupNumber)) {
+ return true;
+ }
}
return false;
}
@@ -4410,10 +4424,10 @@ public class ShoppingCart implements Ite
public BigDecimal getQuantityLeftInActions() { return this.quantityLeftInActions; }
public Map<ShoppingCartItem,BigDecimal> getUsageInfoMap() { return this.usageInfoMap; }
public BigDecimal getUsageWeight() {
- Iterator<ShoppingCartItem> lineItems = this.usageInfoMap.keySet().iterator();
+ Iterator<Entry<ShoppingCartItem, BigDecimal>> lineItems = this.usageInfoMap.entrySet().iterator();
BigDecimal totalAmount = BigDecimal.ZERO;
while (lineItems.hasNext()) {
- ShoppingCartItem lineItem = lineItems.next();
+ ShoppingCartItem lineItem = lineItems.next().getKey();
totalAmount = totalAmount.add(lineItem.getBasePrice().multiply(usageInfoMap.get(lineItem)));
}
if (totalAmount.compareTo(BigDecimal.ZERO) == 0) {
@@ -4425,7 +4439,56 @@ public class ShoppingCart implements Ite
@Override
public int compareTo(ProductPromoUseInfo other) {
- return other.getUsageWeight().compareTo(getUsageWeight());
+ return other.getUsageWeight().compareTo(getUsageWeight());
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((productPromoCodeId == null) ? 0 : productPromoCodeId.hashCode());
+ result = prime * result + ((productPromoId == null) ? 0 : productPromoId.hashCode());
+ result = prime * result + ((quantityLeftInActions == null) ? 0 : quantityLeftInActions.hashCode());
+ result = prime * result + ((totalDiscountAmount == null) ? 0 : totalDiscountAmount.hashCode());
+ result = prime * result + ((usageInfoMap == null) ? 0 : usageInfoMap.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ ProductPromoUseInfo other = (ProductPromoUseInfo) obj;
+ if (productPromoCodeId == null) {
+ if (other.productPromoCodeId != null)
+ return false;
+ } else if (!productPromoCodeId.equals(other.productPromoCodeId))
+ return false;
+ if (productPromoId == null) {
+ if (other.productPromoId != null)
+ return false;
+ } else if (!productPromoId.equals(other.productPromoId))
+ return false;
+ if (quantityLeftInActions == null) {
+ if (other.quantityLeftInActions != null)
+ return false;
+ } else if (!quantityLeftInActions.equals(other.quantityLeftInActions))
+ return false;
+ if (totalDiscountAmount == null) {
+ if (other.totalDiscountAmount != null)
+ return false;
+ } else if (!totalDiscountAmount.equals(other.totalDiscountAmount))
+ return false;
+ if (usageInfoMap == null) {
+ if (other.usageInfoMap != null)
+ return false;
+ } else if (!usageInfoMap.equals(other.usageInfoMap))
+ return false;
+ return true;
}
}
@@ -4601,8 +4664,9 @@ public class ShoppingCart implements Ite
}
// create the ship group item associations
- for (ShoppingCartItem item : shipItemInfo.keySet()) {
- CartShipItemInfo itemInfo = shipItemInfo.get(item);
+ for (Entry<ShoppingCartItem, CartShipItemInfo> entry : shipItemInfo.entrySet()) {
+ ShoppingCartItem item = entry.getKey();
+ CartShipItemInfo itemInfo = entry.getValue();
GenericValue assoc = delegator.makeValue("OrderItemShipGroupAssoc");
assoc.set("orderItemSeqId", item.getOrderItemSeqId());
@@ -4684,7 +4748,7 @@ public class ShoppingCart implements Ite
public void resetShipBeforeDateIfAfter(Timestamp newShipBeforeDate) {
if (newShipBeforeDate != null) {
if ((this.shipBeforeDate == null) || (!this.shipBeforeDate.before(newShipBeforeDate))) {
- this.shipBeforeDate = newShipBeforeDate;
+ this.shipBeforeDate = (Timestamp) newShipBeforeDate.clone();
}
}
}
@@ -4696,7 +4760,7 @@ public class ShoppingCart implements Ite
public void resetShipAfterDateIfBefore(Timestamp newShipAfterDate) {
if (newShipAfterDate != null) {
if ((this.shipAfterDate == null) || (!this.shipAfterDate.after(newShipAfterDate))) {
- this.shipAfterDate = newShipAfterDate;
+ this.shipAfterDate = (Timestamp) newShipAfterDate.clone();
}
}
}
@@ -5007,17 +5071,87 @@ public class ShoppingCart implements Ite
}
@Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((amount == null) ? 0 : amount.hashCode());
+ result = prime * result + ((finAccountId == null) ? 0 : finAccountId.hashCode());
+ result = prime * result + (isPresent ? 1231 : 1237);
+ result = prime * result + (isSwiped ? 1231 : 1237);
+ result = prime * result + (overflow ? 1231 : 1237);
+ result = prime * result + ((paymentMethodId == null) ? 0 : paymentMethodId.hashCode());
+ result = prime * result + ((paymentMethodTypeId == null) ? 0 : paymentMethodTypeId.hashCode());
+ result = prime * result + ((postalCode == null) ? 0 : postalCode.hashCode());
+ result = prime * result + Arrays.hashCode(refNum);
+ result = prime * result + ((securityCode == null) ? 0 : securityCode.hashCode());
+ result = prime * result + (singleUse ? 1231 : 1237);
+ result = prime * result + ((track2 == null) ? 0 : track2.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ CartPaymentInfo other = (CartPaymentInfo) obj;
+ if (amount == null) {
+ if (other.amount != null)
+ return false;
+ } else if (!amount.equals(other.amount))
+ return false;
+ if (finAccountId == null) {
+ if (other.finAccountId != null)
+ return false;
+ } else if (!finAccountId.equals(other.finAccountId))
+ return false;
+ if (isPresent != other.isPresent)
+ return false;
+ if (isSwiped != other.isSwiped)
+ return false;
+ if (overflow != other.overflow)
+ return false;
+ if (paymentMethodId == null) {
+ if (other.paymentMethodId != null)
+ return false;
+ } else if (!paymentMethodId.equals(other.paymentMethodId))
+ return false;
+ if (paymentMethodTypeId == null) {
+ if (other.paymentMethodTypeId != null)
+ return false;
+ } else if (!paymentMethodTypeId.equals(other.paymentMethodTypeId))
+ return false;
+ if (postalCode == null) {
+ if (other.postalCode != null)
+ return false;
+ } else if (!postalCode.equals(other.postalCode))
+ return false;
+ if (!Arrays.equals(refNum, other.refNum))
+ return false;
+ if (securityCode == null) {
+ if (other.securityCode != null)
+ return false;
+ } else if (!securityCode.equals(other.securityCode))
+ return false;
+ if (singleUse != other.singleUse)
+ return false;
+ if (track2 == null) {
+ if (other.track2 != null)
+ return false;
+ } else if (!track2.equals(other.track2))
+ return false;
+ return true;
+ }
+
+ @Override
public String toString() {
return "Pm: " + paymentMethodId + " / PmType: " + paymentMethodTypeId + " / Amt: " + amount + " / Ref: " + refNum[0] + "!" + refNum[1];
}
}
- @Override
- protected void finalize() throws Throwable {
- // DEJ20050518 we should not call clear because it kills the auto-save shopping list and is unnecessary given that when this object is GC'ed it will cause everything it points to that isn't referenced anywhere else to be GC'ed too: this.clear();
- super.finalize();
- }
-
public Map<String, String> getOrderAttributes() {
return orderAttributes;
}
Modified: ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartEvents.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartEvents.java?rev=1817641&r1=1817640&r2=1817641&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartEvents.java (original)
+++ ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartEvents.java Sat Dec 9 17:52:33 2017
@@ -71,7 +71,7 @@ import org.apache.ofbiz.webapp.control.R
*/
public class ShoppingCartEvents {
- public static String module = ShoppingCartEvents.class.getName();
+ public static final String module = ShoppingCartEvents.class.getName();
public static final String resource = "OrderUiLabels";
public static final String resource_error = "OrderErrorUiLabels";
@@ -358,7 +358,7 @@ public class ShoppingCartEvents {
if (paramMap.containsKey("numberOfDay")) {
numberOfDay = (String) paramMap.remove("numberOfDay");
reservStart = UtilDateTime.addDaysToTimestamp(UtilDateTime.nowTimestamp(), 1);
- reservEnd = UtilDateTime.addDaysToTimestamp(reservStart, Integer.valueOf(numberOfDay));
+ reservEnd = UtilDateTime.addDaysToTimestamp(reservStart, Integer.parseInt(numberOfDay));
}
}
@@ -409,7 +409,6 @@ public class ShoppingCartEvents {
} catch (Exception e) {
Debug.logWarning(e, "Problems parsing reservation length string: "
+ reservLengthStr, module);
- reservLength = BigDecimal.ONE;
request.setAttribute("_ERROR_MESSAGE_", UtilProperties.getMessage(resource_error, "OrderReservationLengthShouldBeAPositiveNumber", locale));
return "error";
}
@@ -422,7 +421,6 @@ public class ShoppingCartEvents {
reservPersons = (BigDecimal) ObjectType.simpleTypeConvert(reservPersonsStr, "BigDecimal", null, locale);
} catch (Exception e) {
Debug.logWarning(e, "Problems parsing reservation number of persons string: " + reservPersonsStr, module);
- reservPersons = BigDecimal.ONE;
request.setAttribute("_ERROR_MESSAGE_", UtilProperties.getMessage(resource_error, "OrderNumberOfPersonsShouldBeOneOrLarger", locale));
return "error";
}
@@ -605,7 +603,7 @@ public class ShoppingCartEvents {
productList = EntityQuery.use(delegator).select("productId").from("ProductAssoc").where("productIdTo", productId, "productAssocTypeId", "PRODUCT_UPGRADE").queryList();
if (productList != null) {
for (ShoppingCartItem sci : cart) {
- if (productList.contains(sci.getProductId())) {
+ if (productList.parallelStream().anyMatch(p -> sci.getProductId().equals(p.getString("productId")))) {
try {
cart.removeCartItem(sci, dispatcher);
} catch (CartItemModifyException e) {
@@ -1465,8 +1463,7 @@ public class ShoppingCartEvents {
String shipGroupSeqId = null;
long groupIndex = cart.getShipInfoSize();
List<GenericValue> orderAdjustmentList = new ArrayList<GenericValue>();
- List<GenericValue> orderAdjustments = new ArrayList<GenericValue>();
- orderAdjustments = cart.getAdjustments();
+ List<GenericValue> orderAdjustments = cart.getAdjustments();
try {
orderAdjustmentList = EntityQuery.use(delegator).from("OrderAdjustment").where("orderId", orderId).queryList();
} catch (GenericEntityException e) {
@@ -1769,7 +1766,6 @@ public class ShoppingCartEvents {
String controlDirective = null;
Map<String, Object> result = null;
String productId = null;
- String productCategoryId = null;
String quantityStr = null;
String itemDesiredDeliveryDateStr = null;
BigDecimal quantity = BigDecimal.ZERO;
@@ -1868,10 +1864,10 @@ public class ShoppingCartEvents {
Map<String, Object> itemAttributes = UtilMisc.<String, Object>toMap("itemDesiredDeliveryDate", itemDesiredDeliveryDateStr);
if (quantity.compareTo(BigDecimal.ZERO) > 0) {
- Debug.logInfo("Attempting to add to cart with productId = " + productId + ", categoryId = " + productCategoryId +
+ Debug.logInfo("Attempting to add to cart with productId = " + productId + ", categoryId = " + null +
", quantity = " + quantity + ", itemType = " + itemType + " and itemDescription = " + itemDescription, module);
result = cartHelper.addToCart(catalogId, shoppingListId, shoppingListItemSeqId, productId,
- productCategoryId, itemType, itemDescription, null,
+ null, itemType, itemDescription, null,
amount, quantity, null, null, null, null, null, null,
itemGroupNumber, itemAttributes,null);
// no values for price and paramMap (a context for adding attributes)
@@ -1989,10 +1985,9 @@ public class ShoppingCartEvents {
LocalDispatcher dispatcher = (LocalDispatcher) request.getAttribute("dispatcher");
Locale locale = UtilHttp.getLocale(request);
String productId = null;
- String productCategoryId = null;
String quantityStr = null;
String itemDesiredDeliveryDateStr = null;
- BigDecimal quantity = BigDecimal.ZERO;
+ BigDecimal quantity;
String itemType = null;
String itemDescription = "";
String orderId = null;
@@ -2061,7 +2056,7 @@ public class ShoppingCartEvents {
shipGroupSeqId = (String) paramMap.remove("shipGroupSeqId" + thisSuffix);
}
if (quantity.compareTo(BigDecimal.ZERO) > 0) {
- Debug.logInfo("Attempting to add to cart with productId = " + productId + ", categoryId = " + productCategoryId +
+ Debug.logInfo("Attempting to add to cart with productId = " + productId + ", categoryId = " + null +
", quantity = " + quantity + ", itemType = " + itemType + " and itemDescription = " + itemDescription, module);
HttpSession session = request.getSession();
GenericValue userLogin = (GenericValue) session.getAttribute("userLogin");
Modified: ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartHelper.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartHelper.java?rev=1817641&r1=1817640&r2=1817641&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartHelper.java (original)
+++ ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartHelper.java Sat Dec 9 17:52:33 2017
@@ -65,7 +65,7 @@ import org.apache.ofbiz.service.ServiceU
public class ShoppingCartHelper {
public static final String resource = "OrderUiLabels";
- public static String module = ShoppingCartHelper.class.getName();
+ public static final String module = ShoppingCartHelper.class.getName();
public static final String resource_error = "OrderErrorUiLabels";
// The shopping cart to manipulate
@@ -206,8 +206,9 @@ public class ShoppingCartHelper {
// Get the additional features selected for the product (if any)
Map<String, Object> selectedFeatures = UtilHttp.makeParamMapWithPrefix(context, null, "FT", null);
Map<String, GenericValue> additionalFeaturesMap = new HashMap<String, GenericValue>();
- for (String selectedFeatureType : selectedFeatures.keySet()) {
- String selectedFeatureValue = (String)selectedFeatures.get(selectedFeatureType);
+ for (Entry<String, Object> entry : selectedFeatures.entrySet()) {
+ String selectedFeatureType = entry.getKey();
+ String selectedFeatureValue = (String) entry.getValue();
if (UtilValidate.isNotEmpty(selectedFeatureValue)) {
GenericValue productFeatureAndAppl = null;
try {
@@ -229,7 +230,7 @@ public class ShoppingCartHelper {
Map<String, String> orderItemAttributes = new HashMap<String, String>();
String orderItemAttributePrefix = EntityUtilProperties.getPropertyValue("order", "order.item.attr.prefix", delegator);
for (Entry<String, ? extends Object> entry : context.entrySet()) {
- if (entry.getKey().toString().contains(orderItemAttributePrefix) && UtilValidate.isNotEmpty(entry.getValue())) {
+ if (entry.getKey().contains(orderItemAttributePrefix) && UtilValidate.isNotEmpty(entry.getValue())) {
orderItemAttributes.put(entry.getKey().replaceAll(orderItemAttributePrefix, ""), entry.getValue().toString());
}
}
@@ -269,7 +270,7 @@ public class ShoppingCartHelper {
// Indicate there were no critical errors
result = ServiceUtil.returnSuccess();
if (itemId != -1) {
- result.put("itemId", new Integer(itemId));
+ result.put("itemId", Integer.valueOf(itemId));
}
return result;
}
@@ -432,9 +433,8 @@ public class ShoppingCartHelper {
} catch (GenericEntityException e) {
Debug.logError(e, "Error getting parent product", module);
}
- BigDecimal piecesIncluded = BigDecimal.ZERO;
if(originalProduct != null){
- piecesIncluded = new BigDecimal(originalProduct.getLong("piecesIncluded"));
+ BigDecimal piecesIncluded = new BigDecimal(originalProduct.getLong("piecesIncluded"));
quantity = quantity.multiply(piecesIncluded);
}
}
@@ -525,7 +525,7 @@ public class ShoppingCartHelper {
}
if (UtilValidate.isNotEmpty(quantStr)) {
- BigDecimal quantity = BigDecimal.ZERO;
+ BigDecimal quantity;
try {
quantity = (BigDecimal) ObjectType.simpleTypeConvert(quantStr, "BigDecimal", null, cart.getLocale());
} catch (GeneralException ge) {
@@ -633,7 +633,7 @@ public class ShoppingCartHelper {
Map<String, Object> result = null;
List<String> errorMsgs = new ArrayList<String>();
for (String o : context.keySet()) {
- if (o.toUpperCase().startsWith("DELETE")) {
+ if (o.toUpperCase(Locale.getDefault()).startsWith("DELETE")) {
try {
String indexStr = o.substring(o.lastIndexOf('_') + 1);
int index = Integer.parseInt(indexStr);
@@ -667,7 +667,7 @@ public class ShoppingCartHelper {
List<ShoppingCartItem> deleteList = new ArrayList<ShoppingCartItem>();
List<String> errorMsgs = new ArrayList<String>();
- BigDecimal oldQuantity = BigDecimal.ONE.negate();
+ BigDecimal oldQuantity;
String oldDescription = "";
String oldItemComment = "";
BigDecimal oldPrice = BigDecimal.ONE.negate();
@@ -680,7 +680,8 @@ public class ShoppingCartHelper {
}
// TODO: This should be refactored to use UtilHttp.parseMultiFormData(parameters)
- for (String parameterName : context.keySet()) {
+ for (Entry<String, ? extends Object> entry : context.entrySet()) {
+ String parameterName = entry.getKey();
int underscorePos = parameterName.lastIndexOf('_');
// ignore localized date input elements, just use their counterpart without the _i18n suffix
@@ -688,7 +689,7 @@ public class ShoppingCartHelper {
try {
String indexStr = parameterName.substring(underscorePos + 1);
int index = Integer.parseInt(indexStr);
- String quantString = (String) context.get(parameterName);
+ String quantString = parameterName;
BigDecimal quantity = BigDecimal.ONE.negate();
String itemDescription = "";
String itemComment = "";
@@ -696,8 +697,8 @@ public class ShoppingCartHelper {
// get the cart item
ShoppingCartItem item = this.cart.findCartItem(index);
- if (parameterName.toUpperCase().startsWith("OPTION")) {
- if (quantString.toUpperCase().startsWith("NO^")) {
+ if (parameterName.toUpperCase(Locale.getDefault()).startsWith("OPTION")) {
+ if (quantString.toUpperCase(Locale.getDefault()).startsWith("NO^")) {
if (quantString.length() > 2) { // the length of the prefix
String featureTypeId = this.getRemoveFeatureTypeId(parameterName);
if (featureTypeId != null) {
@@ -710,9 +711,9 @@ public class ShoppingCartHelper {
item.putAdditionalProductFeatureAndAppl(featureAppl);
}
}
- } else if (parameterName.toUpperCase().startsWith("DESCRIPTION")) {
+ } else if (parameterName.toUpperCase(Locale.getDefault()).startsWith("DESCRIPTION")) {
itemDescription = quantString; // the quantString is actually the description if the field name starts with DESCRIPTION
- } else if (parameterName.toUpperCase().startsWith("COMMENT")) {
+ } else if (parameterName.toUpperCase(Locale.getDefault()).startsWith("COMMENT")) {
itemComment= quantString; // the quantString is actually the comment if the field name starts with COMMENT
} else if (parameterName.startsWith("reservStart")) {
if (quantString.length() ==0) {
@@ -792,7 +793,7 @@ public class ShoppingCartHelper {
this.cart.setShipGroupShipDatesFromItem(item);
}
- if (parameterName.toUpperCase().startsWith("UPDATE")) {
+ if (parameterName.toUpperCase(Locale.getDefault()).startsWith("UPDATE")) {
if (quantity.compareTo(BigDecimal.ZERO) == 0) {
deleteList.add(item);
} else {
@@ -850,7 +851,7 @@ public class ShoppingCartHelper {
}
}
- if (parameterName.toUpperCase().startsWith("DESCRIPTION")) {
+ if (parameterName.toUpperCase(Locale.getDefault()).startsWith("DESCRIPTION")) {
if (!oldDescription.equals(itemDescription)) {
if (security.hasEntityPermission("ORDERMGR", "_CREATE", userLogin)) {
if (item != null) {
@@ -859,8 +860,8 @@ public class ShoppingCartHelper {
}
}
}
-
- if (parameterName.toUpperCase().startsWith("COMMENT")) {
+
+ if (parameterName.toUpperCase(Locale.getDefault()).startsWith("COMMENT")) {
if (!oldItemComment.equals(itemComment)) {
if (security.hasEntityPermission("ORDERMGR", "_CREATE", userLogin)) {
if (item != null) {
@@ -870,7 +871,7 @@ public class ShoppingCartHelper {
}
}
- if (parameterName.toUpperCase().startsWith("PRICE")) {
+ if (parameterName.toUpperCase(Locale.getDefault()).startsWith("PRICE")) {
NumberFormat pf = NumberFormat.getCurrencyInstance(locale);
String tmpQuantity = pf.format(quantity);
String tmpOldPrice = pf.format(oldPrice);
@@ -884,7 +885,7 @@ public class ShoppingCartHelper {
}
}
- if (parameterName.toUpperCase().startsWith("DELETE")) {
+ if (parameterName.toUpperCase(Locale.getDefault()).startsWith("DELETE")) {
deleteList.add(this.cart.findCartItem(index));
}
} catch (NumberFormatException nfe) {
Modified: ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartItem.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartItem.java?rev=1817641&r1=1817640&r2=1817641&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartItem.java (original)
+++ ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartItem.java Sat Dec 9 17:52:33 2017
@@ -75,10 +75,10 @@ import org.apache.ofbiz.service.ServiceU
@SuppressWarnings("serial")
public class ShoppingCartItem implements java.io.Serializable {
- public static String module = ShoppingCartItem.class.getName();
+ public static final String module = ShoppingCartItem.class.getName();
public static final String resource = "OrderUiLabels";
public static final String resource_error = "OrderErrorUiLabels";
- public static String[] attributeNames = { "shoppingListId", "shoppingListItemSeqId", "surveyResponses",
+ protected static final String[] attributeNames = { "shoppingListId", "shoppingListItemSeqId", "surveyResponses",
"itemDesiredDeliveryDate", "itemComment", "fromInventoryItemId"};
public static final MathContext generalRounding = new MathContext(10);
@@ -703,21 +703,19 @@ public class ShoppingCartItem implements
protected ShoppingCartItem(GenericValue product, Map<String, GenericValue> additionalProductFeatureAndAppls, Map<String, Object> attributes, String prodCatalogId, Locale locale,
String itemType, ShoppingCart.ShoppingCartItemGroup itemGroup, LocalDispatcher dispatcher) {
this(product, additionalProductFeatureAndAppls, attributes, prodCatalogId, null, locale, itemType, itemGroup, null);
- if (product != null) {
- String productName = ProductContentWrapper.getProductContentAsText(product, "PRODUCT_NAME", this.locale, dispatcher, "html");
- // if the productName is null or empty, see if there is an associated virtual product and get the productName of that product
- if (UtilValidate.isEmpty(productName)) {
- GenericValue parentProduct = this.getParentProduct();
- if (parentProduct != null) {
- productName = ProductContentWrapper.getProductContentAsText(parentProduct, "PRODUCT_NAME", this.locale, dispatcher, "html");
- }
+ String productName = ProductContentWrapper.getProductContentAsText(product, "PRODUCT_NAME", this.locale, dispatcher, "html");
+ // if the productName is null or empty, see if there is an associated virtual product and get the productName of that product
+ if (UtilValidate.isEmpty(productName)) {
+ GenericValue parentProduct = this.getParentProduct();
+ if (parentProduct != null) {
+ productName = ProductContentWrapper.getProductContentAsText(parentProduct, "PRODUCT_NAME", this.locale, dispatcher, "html");
}
+ }
- if (productName == null) {
- this.itemDescription= "";
- } else {
- this.itemDescription= productName;
- }
+ if (productName == null) {
+ this.itemDescription = "";
+ } else {
+ this.itemDescription = productName;
}
}
@@ -832,7 +830,7 @@ public class ShoppingCartItem implements
}
/** Sets the reservation start date */
public void setReservStart(Timestamp reservStart) {
- this.reservStart = reservStart;
+ this.reservStart = reservStart != null ? (Timestamp) reservStart.clone() : null;
}
/** Sets the reservation length */
public void setReservLength(BigDecimal reservLength) {
@@ -1233,7 +1231,7 @@ public class ShoppingCartItem implements
/** Returns the reservation start date with a number of days added. */
public Timestamp getReservStart(BigDecimal addDays) {
if (addDays.compareTo(BigDecimal.ZERO) == 0)
- return this.reservStart;
+ return this.reservStart != null ? (Timestamp) this.reservStart.clone() : null;
else {
if (this.reservStart != null)
return new Timestamp((long)(this.reservStart.getTime() + (addDays.doubleValue() * 86400000.0)));
@@ -1259,7 +1257,7 @@ public class ShoppingCartItem implements
return this.accommodationSpotId;
}
- public BigDecimal getPromoQuantityUsed() {
+ public synchronized BigDecimal getPromoQuantityUsed() {
if (this.getIsPromo()) {
return this.quantity;
} else {
@@ -1267,7 +1265,7 @@ public class ShoppingCartItem implements
}
}
- public BigDecimal getPromoQuantityAvailable() {
+ public synchronized BigDecimal getPromoQuantityAvailable() {
if (this.getIsPromo()) {
return BigDecimal.ZERO;
} else {
@@ -1430,43 +1428,43 @@ public class ShoppingCartItem implements
/** Sets the date to ship before */
public void setShipBeforeDate(Timestamp date) {
- this.shipBeforeDate = date;
+ this.shipBeforeDate = date != null ? (Timestamp) date.clone() : null;
}
/** Returns the date to ship before */
public Timestamp getShipBeforeDate() {
- return this.shipBeforeDate;
+ return this.shipBeforeDate != null ? (Timestamp) this.shipBeforeDate.clone() : null;
}
/** Sets the date to ship after */
public void setShipAfterDate(Timestamp date) {
- this.shipAfterDate = date;
+ this.shipAfterDate = date != null ? (Timestamp) date.clone() : null;
}
/** Returns the date to ship after */
public Timestamp getShipAfterDate() {
- return this.shipAfterDate;
+ return this.shipAfterDate != null ? (Timestamp) this.shipAfterDate.clone() : null;
}
/** Sets the cancel back order date */
public void setCancelBackOrderDate(Timestamp date) {
- this.cancelBackOrderDate = date;
+ this.cancelBackOrderDate = date != null ? (Timestamp) date.clone() : null;
}
/** Returns the cancel back order date */
public Timestamp getCancelBackOrderDate() {
- return this.cancelBackOrderDate;
+ return this.cancelBackOrderDate != null ? (Timestamp) this.cancelBackOrderDate.clone() : null;
}
/** Sets the date to EstimatedShipDate */
public void setEstimatedShipDate(Timestamp date) {
- this.estimatedShipDate = date;
+ this.estimatedShipDate = date != null ? (Timestamp) date.clone() : null;
}
/** Returns the date to EstimatedShipDate */
public Timestamp getEstimatedShipDate() {
- return this.estimatedShipDate;
+ return this.estimatedShipDate != null ? (Timestamp) this.estimatedShipDate.clone() : null;
}
/** Sets the item type. */
@@ -2261,12 +2259,19 @@ public class ShoppingCartItem implements
this.alternativeOptionProductIds = alternativeOptionProductIds;
}
- /** Compares the specified object with this cart item. */
public boolean equals(ShoppingCartItem item) {
if (item == null) return false;
return this.equals(item.getProductId(), item.additionalProductFeatureAndAppls, item.attributes, item.prodCatalogId, item.selectedAmount, item.getItemType(), item.getItemGroup(), item.getIsPromo());
}
+ public boolean equals(Object obj) {
+ return super.equals(obj);
+ }
+
+ public int hashCode() {
+ return super.hashCode();
+ }
+
/** Compares the specified object with this cart item. Defaults isPromo to false. Default to no itemGroup. */
public boolean equals(String productId, Map<String, GenericValue> additionalProductFeatureAndAppls, Map<String, Object> attributes, String prodCatalogId, BigDecimal selectedAmount) {
return equals(productId, additionalProductFeatureAndAppls, attributes, prodCatalogId, selectedAmount, null, null, false);
Modified: ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartServices.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartServices.java?rev=1817641&r1=1817640&r2=1817641&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartServices.java (original)
+++ ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartServices.java Sat Dec 9 17:52:33 2017
@@ -27,6 +27,8 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Locale;
import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import org.apache.ofbiz.base.util.Debug;
import org.apache.ofbiz.base.util.GeneralException;
@@ -351,10 +353,12 @@ public class ShoppingCartServices {
List<GenericValue> orderItems = orh.getOrderItems();
long nextItemSeq = 0;
if (UtilValidate.isNotEmpty(orderItems)) {
+ Pattern pattern = Pattern.compile("\\P{Digit}");
for (GenericValue item : orderItems) {
// get the next item sequence id
String orderItemSeqId = item.getString("orderItemSeqId");
- orderItemSeqId = orderItemSeqId.replaceAll("\\P{Digit}", "");
+ Matcher pmatcher = pattern.matcher(orderItemSeqId);
+ orderItemSeqId = pmatcher.replaceAll("");
// get product Id
String productId = item.getString("productId");
GenericValue product = null;
@@ -808,10 +812,12 @@ public class ShoppingCartServices {
long nextItemSeq = 0;
if (UtilValidate.isNotEmpty(quoteItems)) {
+ Pattern pattern = Pattern.compile("\\P{Digit}");
for (GenericValue quoteItem : quoteItems) {
// get the next item sequence id
String orderItemSeqId = quoteItem.getString("quoteItemSeqId");
- orderItemSeqId = orderItemSeqId.replaceAll("\\P{Digit}", "");
+ Matcher pmatcher = pattern.matcher(orderItemSeqId);
+ orderItemSeqId = pmatcher.replaceAll("");
try {
long seq = Long.parseLong(orderItemSeqId);
if (seq > nextItemSeq) {
@@ -870,7 +876,7 @@ public class ShoppingCartServices {
configWrapper = ProductConfigWorker.loadProductConfigWrapper(delegator, dispatcher, quoteItem.getString("configId"), productId, productStoreId, null, null, currency, locale, userLogin);
}
try {
- itemIndex = cart.addItemToEnd(productId, amount, quantity, quoteUnitPrice, reservStart, reservLength, reservPersons,null,null, null, null, null, configWrapper, null, dispatcher, new Boolean(!applyQuoteAdjustments), new Boolean(quoteUnitPrice.compareTo(BigDecimal.ZERO) == 0), Boolean.FALSE, Boolean.FALSE);
+ itemIndex = cart.addItemToEnd(productId, amount, quantity, quoteUnitPrice, reservStart, reservLength, reservPersons,null,null, null, null, null, configWrapper, null, dispatcher, Boolean.valueOf(!applyQuoteAdjustments), Boolean.valueOf(quoteUnitPrice.compareTo(BigDecimal.ZERO) == 0), Boolean.FALSE, Boolean.FALSE);
} catch (ItemNotFoundException e) {
Debug.logError(e, module);
@@ -1024,10 +1030,12 @@ public class ShoppingCartServices {
long nextItemSeq = 0;
if (UtilValidate.isNotEmpty(shoppingListItems)) {
+ Pattern pattern = Pattern.compile("\\P{Digit}");
for (GenericValue shoppingListItem : shoppingListItems) {
// get the next item sequence id
String orderItemSeqId = shoppingListItem.getString("shoppingListItemSeqId");
- orderItemSeqId = orderItemSeqId.replaceAll("\\P{Digit}", "");
+ Matcher pmatcher = pattern.matcher(orderItemSeqId);
+ orderItemSeqId = pmatcher.replaceAll("");
try {
long seq = Long.parseLong(orderItemSeqId);
if (seq > nextItemSeq) {