Example usage for java.lang ClassCastException getMessage

List of usage examples for java.lang ClassCastException getMessage

Introduction

In this page you can find the example usage for java.lang ClassCastException getMessage.

Prototype

public String getMessage() 

Source Link

Document

Returns the detail message string of this throwable.

Usage

From source file:sos.settings.SOSSettingsDialog.java

/**
 * Setzt ein SOSUser Objekt/*from  w ww .  ja v  a2  s  .  co m*/
 * 
 * @param user
 *            SOSUser Objekt.
 * @throws Exception
 */
public void setUser(Object user) throws Exception {

    try {
        this.user = (sos.user.SOSUser) user;
    } catch (ClassCastException e) {
        throw new Exception("user is not valid SOSUser Object." + e.getMessage());
    } catch (NoClassDefFoundError e) {
        throw new Exception("Class not found (sos.user.jar) : " + e.getMessage());
    } catch (Exception e) {
        throw new Exception(e.getMessage());
    }

}

From source file:org.ofbiz.order.shoppingcart.ShoppingCartEvents.java

/** Event to add an item to the shopping cart. */
public static String addToCart(HttpServletRequest request, HttpServletResponse response) {
    Delegator delegator = (Delegator) request.getAttribute("delegator");
    LocalDispatcher dispatcher = (LocalDispatcher) request.getAttribute("dispatcher");
    ShoppingCart cart = getCartObject(request);
    ShoppingCartHelper cartHelper = new ShoppingCartHelper(delegator, dispatcher, cart);
    String controlDirective = null;
    Map<String, Object> result = null;
    String productId = null;/*from   w  w  w . j a  v  a 2s .c om*/
    String parentProductId = null;
    String itemType = null;
    String itemDescription = null;
    String productCategoryId = null;
    String priceStr = null;
    BigDecimal price = null;
    String quantityStr = null;
    BigDecimal quantity = BigDecimal.ZERO;
    String reservStartStr = null;
    String reservEndStr = null;
    Timestamp reservStart = null;
    Timestamp reservEnd = null;
    String reservLengthStr = null;
    BigDecimal reservLength = null;
    String reservPersonsStr = null;
    BigDecimal reservPersons = null;
    String accommodationMapId = null;
    String accommodationSpotId = null;
    String shipBeforeDateStr = null;
    String shipAfterDateStr = null;
    Timestamp shipBeforeDate = null;
    Timestamp shipAfterDate = null;
    String numberOfDay = null;

    // not used right now: Map attributes = null;
    String catalogId = CatalogWorker.getCurrentCatalogId(request);
    Locale locale = UtilHttp.getLocale(request);

    //CODIGOLINUX
    TimeZone timeZone = UtilHttp.getTimeZone(request);

    // Get the parameters as a MAP, remove the productId and quantity params.
    Map<String, Object> paramMap = UtilHttp.getCombinedMap(request);

    String itemGroupNumber = (String) paramMap.get("itemGroupNumber");

    // Get shoppingList info if passed
    String shoppingListId = (String) paramMap.get("shoppingListId");
    String shoppingListItemSeqId = (String) paramMap.get("shoppingListItemSeqId");
    if (paramMap.containsKey("ADD_PRODUCT_ID")) {
        productId = (String) paramMap.remove("ADD_PRODUCT_ID");
    } else if (paramMap.containsKey("add_product_id")) {
        Object object = paramMap.remove("add_product_id");
        try {
            productId = (String) object;
        } catch (ClassCastException e) {
            List<String> productList = UtilGenerics.checkList(object);
            productId = productList.get(0);
        }
    }
    if (paramMap.containsKey("PRODUCT_ID")) {
        parentProductId = (String) paramMap.remove("PRODUCT_ID");
    } else if (paramMap.containsKey("product_id")) {
        parentProductId = (String) paramMap.remove("product_id");
    }

    Debug.logInfo("adding item product " + productId, module);
    Debug.logInfo("adding item parent product " + parentProductId, module);

    if (paramMap.containsKey("ADD_CATEGORY_ID")) {
        productCategoryId = (String) paramMap.remove("ADD_CATEGORY_ID");
    } else if (paramMap.containsKey("add_category_id")) {
        productCategoryId = (String) paramMap.remove("add_category_id");
    }
    if (productCategoryId != null && productCategoryId.length() == 0) {
        productCategoryId = null;
    }

    if (paramMap.containsKey("ADD_ITEM_TYPE")) {
        itemType = (String) paramMap.remove("ADD_ITEM_TYPE");
    } else if (paramMap.containsKey("add_item_type")) {
        itemType = (String) paramMap.remove("add_item_type");
    }

    if (UtilValidate.isEmpty(productId)) {
        // before returning error; check make sure we aren't adding a special item type
        if (UtilValidate.isEmpty(itemType)) {
            request.setAttribute("_ERROR_MESSAGE_",
                    UtilProperties.getMessage(resource_error, "cart.addToCart.noProductInfoPassed", locale));
            return "success"; // not critical return to same page
        }
    } else {
        try {
            String pId = ProductWorker.findProductId(delegator, productId);
            if (pId != null) {
                productId = pId;
            }
        } catch (Throwable e) {
            Debug.logWarning(e, module);
        }
    }

    // check for an itemDescription
    if (paramMap.containsKey("ADD_ITEM_DESCRIPTION")) {
        itemDescription = (String) paramMap.remove("ADD_ITEM_DESCRIPTION");
    } else if (paramMap.containsKey("add_item_description")) {
        itemDescription = (String) paramMap.remove("add_item_description");
    }
    if (itemDescription != null && itemDescription.length() == 0) {
        itemDescription = null;
    }

    // Get the ProductConfigWrapper (it's not null only for configurable items)
    ProductConfigWrapper configWrapper = null;
    configWrapper = ProductConfigWorker.getProductConfigWrapper(productId, cart.getCurrency(), request);

    if (configWrapper != null) {
        if (paramMap.containsKey("configId")) {
            try {
                configWrapper.loadConfig(delegator, (String) paramMap.remove("configId"));
            } catch (Exception e) {
                Debug.logWarning(e, "Could not load configuration", module);
            }
        } else {
            // The choices selected by the user are taken from request and set in the wrapper
            ProductConfigWorker.fillProductConfigWrapper(configWrapper, request);
        }
        if (!configWrapper.isCompleted()) {
            // The configuration is not valid
            request.setAttribute("product_id", productId);
            request.setAttribute("_EVENT_MESSAGE_", UtilProperties.getMessage(resource_error,
                    "cart.addToCart.configureProductBeforeAddingToCart", locale));
            return "product";
        } else {
            // load the Config Id
            ProductConfigWorker.storeProductConfigWrapper(configWrapper, delegator);
        }
    }

    //Check for virtual products
    if (ProductWorker.isVirtual(delegator, productId)) {

        if ("VV_FEATURETREE".equals(ProductWorker.getProductVirtualVariantMethod(delegator, productId))) {
            // get the selected features.
            List<String> selectedFeatures = new LinkedList<String>();
            Enumeration<String> paramNames = UtilGenerics.cast(request.getParameterNames());
            while (paramNames.hasMoreElements()) {
                String paramName = paramNames.nextElement();
                if (paramName.startsWith("FT")) {
                    selectedFeatures.add(request.getParameterValues(paramName)[0]);
                }
            }

            // check if features are selected
            if (UtilValidate.isEmpty(selectedFeatures)) {
                request.setAttribute("paramMap", paramMap);
                request.setAttribute("product_id", productId);
                request.setAttribute("_EVENT_MESSAGE_", UtilProperties.getMessage(resource_error,
                        "cart.addToCart.chooseVariationBeforeAddingToCart", locale));
                return "product";
            }

            String variantProductId = ProductWorker.getVariantFromFeatureTree(productId, selectedFeatures,
                    delegator);
            if (UtilValidate.isNotEmpty(variantProductId)) {
                productId = variantProductId;
            } else {
                request.setAttribute("paramMap", paramMap);
                request.setAttribute("product_id", productId);
                request.setAttribute("_EVENT_MESSAGE_", UtilProperties.getMessage(resource_error,
                        "cart.addToCart.incompatibilityVariantFeature", locale));
                return "product";
            }

        } else {
            request.setAttribute("paramMap", paramMap);
            request.setAttribute("product_id", productId);
            request.setAttribute("_EVENT_MESSAGE_", UtilProperties.getMessage(resource_error,
                    "cart.addToCart.chooseVariationBeforeAddingToCart", locale));
            return "product";
        }
    }

    // get the override price
    if (paramMap.containsKey("PRICE")) {
        priceStr = (String) paramMap.remove("PRICE");
    } else if (paramMap.containsKey("price")) {
        priceStr = (String) paramMap.remove("price");
    }
    if (priceStr == null) {
        priceStr = "0"; // default price is 0
    }

    if ("ASSET_USAGE_OUT_IN".equals(ProductWorker.getProductTypeId(delegator, productId))) {
        if (paramMap.containsKey("numberOfDay")) {
            numberOfDay = (String) paramMap.remove("numberOfDay");
            reservStart = UtilDateTime.addDaysToTimestamp(UtilDateTime.nowTimestamp(), 1);
            reservEnd = UtilDateTime.addDaysToTimestamp(reservStart, Integer.valueOf(numberOfDay));
        }
    }

    // get the renting data
    if ("ASSET_USAGE".equals(ProductWorker.getProductTypeId(delegator, productId))
            || "ASSET_USAGE_OUT_IN".equals(ProductWorker.getProductTypeId(delegator, productId))) {
        if (paramMap.containsKey("reservStart")) {
            reservStartStr = (String) paramMap.remove("reservStart");
            if (reservStartStr.length() == 10) // only date provided, no time string?
                reservStartStr += " 00:00:00.000000000"; // should have format: yyyy-mm-dd hh:mm:ss.fffffffff
            if (reservStartStr.length() > 0) {
                try {
                    reservStart = java.sql.Timestamp.valueOf(reservStartStr);
                } catch (Exception e) {
                    Debug.logWarning(e, "Problems parsing Reservation start string: " + reservStartStr, module);
                    reservStart = null;
                    request.setAttribute("_ERROR_MESSAGE_", UtilProperties.getMessage(resource_error,
                            "cart.addToCart.rental.startDate", locale));
                    return "error";
                }
            } else
                reservStart = null;
        }

        if (paramMap.containsKey("reservEnd")) {
            reservEndStr = (String) paramMap.remove("reservEnd");
            if (reservEndStr.length() == 10) // only date provided, no time string?
                reservEndStr += " 00:00:00.000000000"; // should have format: yyyy-mm-dd hh:mm:ss.fffffffff
            if (reservEndStr.length() > 0) {
                try {
                    reservEnd = java.sql.Timestamp.valueOf(reservEndStr);
                } catch (Exception e) {
                    Debug.logWarning(e, "Problems parsing Reservation end string: " + reservEndStr, module);
                    reservEnd = null;
                    request.setAttribute("_ERROR_MESSAGE_",
                            UtilProperties.getMessage(resource_error, "cart.addToCart.rental.endDate", locale));
                    return "error";
                }
            } else
                reservEnd = null;
        }

        if (reservStart != null && reservEnd != null) {
            reservLength = new BigDecimal(UtilDateTime.getInterval(reservStart, reservEnd))
                    .divide(new BigDecimal("86400000"), generalRounding);
        }

        if (reservStart != null && paramMap.containsKey("reservLength")) {
            reservLengthStr = (String) paramMap.remove("reservLength");
            // parse the reservation Length
            try {
                reservLength = (BigDecimal) ObjectType.simpleTypeConvert(reservLengthStr, "BigDecimal", null,
                        locale);
            } 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";
            }
        }

        if (reservStart != null && paramMap.containsKey("reservPersons")) {
            reservPersonsStr = (String) paramMap.remove("reservPersons");
            // parse the number of persons
            try {
                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";
            }
        }

        //check for valid rental parameters
        if (UtilValidate.isEmpty(reservStart) && UtilValidate.isEmpty(reservLength)
                && UtilValidate.isEmpty(reservPersons)) {
            request.setAttribute("product_id", productId);
            request.setAttribute("_EVENT_MESSAGE_", UtilProperties.getMessage(resource_error,
                    "cart.addToCart.enterBookingInforamtionBeforeAddingToCart", locale));
            return "product";
        }

        //check accommodation for reservations
        if ((paramMap.containsKey("accommodationMapId")) && (paramMap.containsKey("accommodationSpotId"))) {
            accommodationMapId = (String) paramMap.remove("accommodationMapId");
            accommodationSpotId = (String) paramMap.remove("accommodationSpotId");
        }
    }

    // get the quantity
    if (paramMap.containsKey("QUANTITY")) {
        quantityStr = (String) paramMap.remove("QUANTITY");
    } else if (paramMap.containsKey("quantity")) {
        quantityStr = (String) paramMap.remove("quantity");
    }
    if (UtilValidate.isEmpty(quantityStr)) {
        quantityStr = "1"; // default quantity is 1
    }

    // parse the price
    try {
        price = (BigDecimal) ObjectType.simpleTypeConvert(priceStr, "BigDecimal", null, locale);
    } catch (Exception e) {
        Debug.logWarning(e, "Problems parsing price string: " + priceStr, module);
        price = null;
    }

    // parse the quantity
    try {
        quantity = (BigDecimal) ObjectType.simpleTypeConvert(quantityStr, "BigDecimal", null, locale);
        //For quantity we should test if we allow to add decimal quantity for this product an productStore : if not then round to 0
        if (!ProductWorker.isDecimalQuantityOrderAllowed(delegator, productId, cart.getProductStoreId())) {
            quantity = quantity.setScale(0, UtilNumber.getBigDecimalRoundingMode("order.rounding"));
        } else {
            quantity = quantity.setScale(UtilNumber.getBigDecimalScale("order.decimals"),
                    UtilNumber.getBigDecimalRoundingMode("order.rounding"));
        }
    } catch (Exception e) {
        Debug.logWarning(e, "Problems parsing quantity string: " + quantityStr, module);
        quantity = BigDecimal.ONE;
    }

    // get the selected amount
    String selectedAmountStr = null;
    if (paramMap.containsKey("ADD_AMOUNT")) {
        selectedAmountStr = (String) paramMap.remove("ADD_AMOUNT");
    } else if (paramMap.containsKey("add_amount")) {
        selectedAmountStr = (String) paramMap.remove("add_amount");
    }

    // parse the amount
    BigDecimal amount = null;
    if (UtilValidate.isNotEmpty(selectedAmountStr)) {
        try {
            amount = (BigDecimal) ObjectType.simpleTypeConvert(selectedAmountStr, "BigDecimal", null, locale);
        } catch (Exception e) {
            Debug.logWarning(e, "Problem parsing amount string: " + selectedAmountStr, module);
            amount = null;
        }
    } else {
        amount = BigDecimal.ZERO;
    }

    // check for required amount
    if ((ProductWorker.isAmountRequired(delegator, productId))
            && (amount == null || amount.doubleValue() == 0.0)) {
        request.setAttribute("product_id", productId);
        request.setAttribute("_EVENT_MESSAGE_", UtilProperties.getMessage(resource_error,
                "cart.addToCart.enterAmountBeforeAddingToCart", locale));
        return "product";
    }

    // get the ship before date (handles both yyyy-mm-dd input and full timestamp)
    shipBeforeDateStr = (String) paramMap.remove("shipBeforeDate");
    if (UtilValidate.isNotEmpty(shipBeforeDateStr)) {
        if (shipBeforeDateStr.length() == 10)
            shipBeforeDateStr += " 00:00:00.000";
        try {
            shipBeforeDate = java.sql.Timestamp.valueOf(shipBeforeDateStr);
        } catch (IllegalArgumentException e) {
            Debug.logWarning(e, "Bad shipBeforeDate input: " + e.getMessage(), module);
            shipBeforeDate = null;
        }
    }

    // get the ship after date (handles both yyyy-mm-dd input and full timestamp)
    shipAfterDateStr = (String) paramMap.remove("shipAfterDate");
    if (UtilValidate.isNotEmpty(shipAfterDateStr)) {
        if (shipAfterDateStr.length() == 10)
            shipAfterDateStr += " 00:00:00.000";
        try {
            shipAfterDate = java.sql.Timestamp.valueOf(shipAfterDateStr);
        } catch (IllegalArgumentException e) {
            Debug.logWarning(e, "Bad shipAfterDate input: " + e.getMessage(), module);
            shipAfterDate = null;
        }
    }

    // check for an add-to cart survey
    List<String> surveyResponses = null;
    if (productId != null) {
        String productStoreId = ProductStoreWorker.getProductStoreId(request);
        List<GenericValue> productSurvey = ProductStoreWorker.getProductSurveys(delegator, productStoreId,
                productId, "CART_ADD", parentProductId);
        if (UtilValidate.isNotEmpty(productSurvey)) {
            // TODO: implement multiple survey per product
            GenericValue survey = EntityUtil.getFirst(productSurvey);
            String surveyResponseId = (String) request.getAttribute("surveyResponseId");
            if (surveyResponseId != null) {
                surveyResponses = UtilMisc.toList(surveyResponseId);
            } else {
                String origParamMapId = UtilHttp.stashParameterMap(request);
                Map<String, Object> surveyContext = UtilMisc.<String, Object>toMap("_ORIG_PARAM_MAP_ID_",
                        origParamMapId);
                GenericValue userLogin = cart.getUserLogin();
                String partyId = null;
                if (userLogin != null) {
                    partyId = userLogin.getString("partyId");
                }
                String formAction = "/additemsurvey";
                String nextPage = RequestHandler.getOverrideViewUri(request.getPathInfo());
                if (nextPage != null) {
                    formAction = formAction + "/" + nextPage;
                }
                ProductStoreSurveyWrapper wrapper = new ProductStoreSurveyWrapper(survey, partyId,
                        surveyContext);
                request.setAttribute("surveyWrapper", wrapper);
                request.setAttribute("surveyAction", formAction); // will be used as the form action of the survey
                return "survey";
            }
        }
    }
    if (surveyResponses != null) {
        paramMap.put("surveyResponses", surveyResponses);
    }

    GenericValue productStore = ProductStoreWorker.getProductStore(request);
    if (productStore != null) {
        String addToCartRemoveIncompat = productStore.getString("addToCartRemoveIncompat");
        String addToCartReplaceUpsell = productStore.getString("addToCartReplaceUpsell");
        try {
            if ("Y".equals(addToCartRemoveIncompat)) {
                List<GenericValue> productAssocs = null;
                EntityCondition cond = EntityCondition
                        .makeCondition(
                                UtilMisc.toList(
                                        EntityCondition.makeCondition(
                                                EntityCondition.makeCondition(
                                                        "productId", EntityOperator.EQUALS, productId),
                                                EntityOperator.OR,
                                                EntityCondition.makeCondition("productIdTo",
                                                        EntityOperator.EQUALS, productId)),
                                        EntityCondition.makeCondition("productAssocTypeId",
                                                EntityOperator.EQUALS, "PRODUCT_INCOMPATABLE")),
                                EntityOperator.AND);
                productAssocs = delegator.findList("ProductAssoc", cond, null, null, null, false);
                productAssocs = EntityUtil.filterByDate(productAssocs);
                List<String> productList = FastList.newInstance();
                for (GenericValue productAssoc : productAssocs) {
                    if (productId.equals(productAssoc.getString("productId"))) {
                        productList.add(productAssoc.getString("productIdTo"));
                        continue;
                    }
                    if (productId.equals(productAssoc.getString("productIdTo"))) {
                        productList.add(productAssoc.getString("productId"));
                        continue;
                    }
                }
                for (ShoppingCartItem sci : cart) {
                    if (productList.contains(sci.getProductId())) {
                        try {
                            cart.removeCartItem(sci, dispatcher);
                        } catch (CartItemModifyException e) {
                            Debug.logError(e.getMessage(), module);
                        }
                    }
                }
            }
            if ("Y".equals(addToCartReplaceUpsell)) {
                List<GenericValue> productList = null;
                EntityCondition cond = EntityCondition.makeCondition(UtilMisc.toList(
                        EntityCondition.makeCondition("productIdTo", EntityOperator.EQUALS, productId),
                        EntityCondition.makeCondition("productAssocTypeId", EntityOperator.EQUALS,
                                "PRODUCT_UPGRADE")),
                        EntityOperator.AND);
                productList = delegator.findList("ProductAssoc", cond, UtilMisc.toSet("productId"), null, null,
                        false);
                if (productList != null) {
                    for (ShoppingCartItem sci : cart) {
                        if (productList.contains(sci.getProductId())) {
                            try {
                                cart.removeCartItem(sci, dispatcher);
                            } catch (CartItemModifyException e) {
                                Debug.logError(e.getMessage(), module);
                            }
                        }
                    }
                }
            }
        } catch (GenericEntityException e) {
            Debug.logError(e.getMessage(), module);
        }
    }

    // check for alternative packing
    if (ProductWorker.isAlternativePacking(delegator, productId, parentProductId)) {
        GenericValue parentProduct = null;
        try {
            parentProduct = delegator.findOne("Product", UtilMisc.toMap("productId", parentProductId), false);
        } catch (GenericEntityException e) {
            Debug.logError(e, "Error getting parent product", module);
        }
        BigDecimal piecesIncluded = BigDecimal.ZERO;
        if (parentProduct != null) {
            piecesIncluded = new BigDecimal(parentProduct.getLong("piecesIncluded"));
            quantity = quantity.multiply(piecesIncluded);
        }
    }

    // Translate the parameters and add to the cart
    result = cartHelper.addToCart(catalogId, shoppingListId, shoppingListItemSeqId, productId,
            productCategoryId, itemType, itemDescription, price, amount, quantity, reservStart, reservLength,
            reservPersons, accommodationMapId, accommodationSpotId, shipBeforeDate, shipAfterDate,
            configWrapper, itemGroupNumber, paramMap, parentProductId);
    controlDirective = processResult(result, request);

    Integer itemId = (Integer) result.get("itemId");
    if (UtilValidate.isNotEmpty(itemId)) {
        request.setAttribute("itemId", itemId);
    }

    // Determine where to send the browser
    if (controlDirective.equals(ERROR)) {
        return "error";
    } else {
        if (cart.viewCartOnAdd()) {
            return "viewcart";
        } else {
            return "success";
        }
    }
}