You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ofbiz.apache.org by Chris Bai <cb...@gmail.com> on 2006/06/30 04:44:38 UTC
Where to set breakpoint for this error?
Hi
The error message I got.
*******************************************
org.ofbiz.base.util.GeneralException: Error rendering screen
[component://ecommerce/widget/CatalogScreens.xml#product]:
org.ofbiz.base.util.GeneralException: Error rendering screen
[component://ecommerce/widget/CommonScreens.xml#main-decorator]:
org.ofbiz.base.util.GeneralException: Error rendering screen
[component://ecommerce/widget/CatalogScreens.xml#productdetail]:
org.ofbiz.base.util.GeneralException: Error running BSH script at location
[component://order/webapp/ordermgr/WEB-INF/actions/entry/catalog/productdetail.bsh]:
org.ofbiz.base.util.GeneralException: Error running BSH script at
[component://order/webapp/ordermgr/WEB-INF/actions/entry/catalog/productdetail.bsh],
line [384]: Sourced file:
*component://order/webapp/ordermgr/WEB-INF/actions/entry/catalog/productdetail.bsh
: Method Invocation dispatcher.runSync : at Line: 384 : *in file:
component://order/webapp/ordermgr/WEB-INF/actions/entry/catalog/productdetail.bsh
: dispatcher .runSync ( "*getAssociatedProducts*" , UtilMisc .toMap (
"productId" , productId , "type" , "PRODUCT_OBSOLESCENCE" , "checkViewAllow"
, Boolean .TRUE , "prodCatalogId" , currentCatalogId ) )
....
********************************
It seems to me the error came from getAssociatedProducts method in
ProductWorker class. But when I set a breakpoint there, it is not called.
// get product associations (this is line 384)
obsoleteProducts = dispatcher.runSync("getAssociatedProducts",
UtilMisc.toMap("productId", productId, "type", "PRODUCT_OBSOLESCENCE",
"checkViewAllow", Boolean.TRUE, "prodCatalogId", currentCatalogId));
The getAssociatedProducts method is not called in my debugging. I set
several breakpints in this method and they all failed to halt execution. My
debugging works fine in other code place.
public static void getAssociatedProducts(PageContext pageContext, String
productAttributeName, String assocPrefix) {
GenericDelegator delegator = (GenericDelegator)
pageContext.getRequest().getAttribute("delegator");
GenericValue product = (GenericValue) pageContext.getAttribute
(productAttributeName);
if (product == null)
return;
try {
List upgradeProducts = product.getRelatedByAndCache
("MainProductAssoc",
UtilMisc.toMap("productAssocTypeId",
"PRODUCT_UPGRADE"));
List complementProducts = product.getRelatedByAndCache
("MainProductAssoc",
UtilMisc.toMap("productAssocTypeId",
"PRODUCT_COMPLEMENT"));
List obsolescenceProducts = product.getRelatedByAndCache
("AssocProductAssoc",
UtilMisc.toMap("productAssocTypeId",
"PRODUCT_OBSOLESCENCE"));
List obsoleteByProducts = product.getRelatedByAndCache
("MainProductAssoc",
UtilMisc.toMap("productAssocTypeId",
"PRODUCT_OBSOLESCENCE"));
// since ProductAssoc records have a fromDate and thruDate, we
can filter by now so that only assocs in the date range are included
upgradeProducts = EntityUtil.filterByDate(upgradeProducts,
true);
complementProducts = EntityUtil.filterByDate(complementProducts,
true);
obsolescenceProducts =
EntityUtil.filterByDate(obsolescenceProducts,
true);
obsoleteByProducts =
EntityUtil.filterByDate(obsoleteByProducts, true);
if (upgradeProducts != null && upgradeProducts.size() > 0)
pageContext.setAttribute(assocPrefix + "upgrade",
upgradeProducts);
if (complementProducts != null && complementProducts.size() > 0)
pageContext.setAttribute(assocPrefix + "complement",
complementProducts);
if (obsolescenceProducts != null && obsolescenceProducts.size ()
> 0)
pageContext.setAttribute(assocPrefix + "obsolescence",
obsolescenceProducts);
if (obsoleteByProducts != null && obsoleteByProducts.size() > 0)
pageContext.setAttribute(assocPrefix + "obsoleteby",
obsoleteByProducts);
} catch (GenericEntityException e) {
Debug.logWarning(e, module);
}
}
I don't know where to go to find the cause of my error. Please advise.
Thanks.
Re: Where to set breakpoint for this error?
Posted by Chris Howe <cj...@yahoo.com>.
runSync calls the service in
product/servicedef/services_view.xml, not the java
method ProductWorker.getAssociatedProducts
the service getAssociatedProducts requires an IN
parameter of productIdTo which you are missing when
you call it.
--- Chris Bai <cb...@gmail.com> wrote:
> Hi
>
> The error message I got.
> *******************************************
> org.ofbiz.base.util.GeneralException: Error
> rendering screen
>
[component://ecommerce/widget/CatalogScreens.xml#product]:
> org.ofbiz.base.util.GeneralException: Error
> rendering screen
>
[component://ecommerce/widget/CommonScreens.xml#main-decorator]:
> org.ofbiz.base.util.GeneralException: Error
> rendering screen
>
[component://ecommerce/widget/CatalogScreens.xml#productdetail]:
> org.ofbiz.base.util.GeneralException: Error running
> BSH script at location
>
[component://order/webapp/ordermgr/WEB-INF/actions/entry/catalog/productdetail.bsh]:
> org.ofbiz.base.util.GeneralException: Error running
> BSH script at
>
[component://order/webapp/ordermgr/WEB-INF/actions/entry/catalog/productdetail.bsh],
> line [384]: Sourced file:
>
*component://order/webapp/ordermgr/WEB-INF/actions/entry/catalog/productdetail.bsh
> : Method Invocation dispatcher.runSync : at Line:
> 384 : *in file:
>
component://order/webapp/ordermgr/WEB-INF/actions/entry/catalog/productdetail.bsh
> : dispatcher .runSync ( "*getAssociatedProducts*" ,
> UtilMisc .toMap (
> "productId" , productId , "type" ,
> "PRODUCT_OBSOLESCENCE" , "checkViewAllow"
> , Boolean .TRUE , "prodCatalogId" , currentCatalogId
> ) )
> ....
> ********************************
>
> It seems to me the error came from
> getAssociatedProducts method in
> ProductWorker class. But when I set a breakpoint
> there, it is not called.
>
>
> // get product associations (this is line 384)
> obsoleteProducts =
> dispatcher.runSync("getAssociatedProducts",
> UtilMisc.toMap("productId", productId, "type",
> "PRODUCT_OBSOLESCENCE",
> "checkViewAllow", Boolean.TRUE, "prodCatalogId",
> currentCatalogId));
>
>
> The getAssociatedProducts method is not called in my
> debugging. I set
> several breakpints in this method and they all
> failed to halt execution. My
> debugging works fine in other code place.
>
>
> public static void getAssociatedProducts(PageContext
> pageContext, String
> productAttributeName, String assocPrefix) {
> GenericDelegator delegator =
> (GenericDelegator)
> pageContext.getRequest().getAttribute("delegator");
> GenericValue product = (GenericValue)
> pageContext.getAttribute
> (productAttributeName);
>
> if (product == null)
> return;
>
> try {
> List upgradeProducts =
> product.getRelatedByAndCache
> ("MainProductAssoc",
>
> UtilMisc.toMap("productAssocTypeId",
> "PRODUCT_UPGRADE"));
>
> List complementProducts =
> product.getRelatedByAndCache
> ("MainProductAssoc",
>
> UtilMisc.toMap("productAssocTypeId",
> "PRODUCT_COMPLEMENT"));
>
> List obsolescenceProducts =
> product.getRelatedByAndCache
> ("AssocProductAssoc",
>
> UtilMisc.toMap("productAssocTypeId",
> "PRODUCT_OBSOLESCENCE"));
>
> List obsoleteByProducts =
> product.getRelatedByAndCache
> ("MainProductAssoc",
>
> UtilMisc.toMap("productAssocTypeId",
> "PRODUCT_OBSOLESCENCE"));
>
> // since ProductAssoc records have a
> fromDate and thruDate, we
> can filter by now so that only assocs in the date
> range are included
> upgradeProducts =
> EntityUtil.filterByDate(upgradeProducts,
> true);
> complementProducts =
> EntityUtil.filterByDate(complementProducts,
> true);
> obsolescenceProducts =
> EntityUtil.filterByDate(obsolescenceProducts,
> true);
> obsoleteByProducts =
> EntityUtil.filterByDate(obsoleteByProducts, true);
>
> if (upgradeProducts != null &&
> upgradeProducts.size() > 0)
> pageContext.setAttribute(assocPrefix
> + "upgrade",
> upgradeProducts);
> if (complementProducts != null &&
> complementProducts.size() > 0)
> pageContext.setAttribute(assocPrefix
> + "complement",
> complementProducts);
> if (obsolescenceProducts != null &&
> obsolescenceProducts.size ()
> > 0)
> pageContext.setAttribute(assocPrefix
> + "obsolescence",
> obsolescenceProducts);
> if (obsoleteByProducts != null &&
> obsoleteByProducts.size() > 0)
> pageContext.setAttribute(assocPrefix
> + "obsoleteby",
> obsoleteByProducts);
> } catch (GenericEntityException e) {
> Debug.logWarning(e, module);
> }
> }
>
> I don't know where to go to find the cause of my
> error. Please advise.
> Thanks.
>