Hi Scott, Have you got chance to look at the patch https://issues.apache.org/jira/browse/OFBIZ-2978 ?
On Wed, Sep 30, 2009 at 8:14 PM, Abdullah Shaikh < [email protected]> wrote: > Patch resubmitted > > > On Wed, Sep 30, 2009 at 7:52 PM, Abdullah Shaikh < > [email protected]> wrote: > >> I have changed the service definition to include paymentGatewayRespMsg as >> parameter and checked which parameter has been passed as per your >> suggestion. Also changed the calling code where paymentGatewayRespMsg is >> being passed, now instead of savePgr it will call savePgrMessage, as we >> could not decided which parameter is passed in savePgr, I have created this >> separate method, savePgrMessage. >> >> I will submit the patch when jira is up. >> >> >> >> On Wed, Sep 30, 2009 at 2:07 PM, Scott Gray >> <[email protected]>wrote: >> >>> You could use the same service I guess since it's only real function is >>> to save a generic value. I would change the service definition though so >>> that there is a separate input attribute for a paymentGatewayResponseMsg and >>> instead of checking checking the entity name just check which attribute has >>> been passed in, I think this will be clearer for people looking at the code. >>> >>> Regards >>> Scott >>> >>> >>> On 30/09/2009, at 9:30 PM, Abdullah Shaikh wrote: >>> >>> Scott, >>>> >>>> Should we then have a separate service for saving >>>> PaymentGatewayResponseMsgs >>>> or should we have a condition in savePaymentGatewayResponse, which will >>>> check the entity name (genericvalue.getEntityName()), and decided on the >>>> field mapping ? >>>> >>>> >>>> On Wed, Sep 30, 2009 at 1:56 PM, Abdullah Shaikh < >>>> [email protected]> wrote: >>>> >>>> The savePgr method of PaymentGatewayServices, is called from multiple >>>>> places, this method expects 2 parameters, DispatchContext & >>>>> GenericValue, >>>>> but the issue is the calling methods which calls savePgr methods passes >>>>> PaymentGatewayResponse in some places and PaymentGatewayRespMsg in some >>>>> places. >>>>> >>>>> The savePgr method in turn calls savePaymentGatewayResponse service. >>>>> >>>>> I guess we need to have one more method which will work if >>>>> PaymentGatewayRespMsg as GenericValue is passed or may be a condition >>>>> based >>>>> on the entity name which we can get from the GenericValue ? >>>>> >>>>> Any other thoughts ? >>>>> >>>>> On Wed, Sep 30, 2009 at 1:54 PM, Scott Gray < >>>>> [email protected]>wrote: >>>>> >>>>> You are right Abdullah, it looks the like the code calling the service >>>>>> is >>>>>> attempting to use it for saving both PaymentGatewayResponses and >>>>>> PaymentGatewayResponseMsgs, but it is only capable of handling the >>>>>> former. >>>>>> The fix I think would be to have a separate service for saving >>>>>> PaymentGatewayResponseMsgs and have the calling code use that where >>>>>> needed. >>>>>> >>>>>> Regards >>>>>> Scott >>>>>> >>>>>> >>>>>> On 30/09/2009, at 8:52 PM, Abdullah Shaikh wrote: >>>>>> >>>>>> Hi Scott, >>>>>> >>>>>>> >>>>>>> Yes, PaymentGatewayResponse does have a field called gatewayMessage, >>>>>>> but >>>>>>> the >>>>>>> GenericValue we are getting from the context is of >>>>>>> PaymentGatewayRespMsg. >>>>>>> >>>>>>> There can be two cases here: >>>>>>> >>>>>>> 1) Either the GenericValue that we are getting from the context >>>>>>> should be >>>>>>> of >>>>>>> type PaymentGatewayResponse, which currently is PaymentGatewayRespMsg >>>>>>> >>>>>>> or >>>>>>> >>>>>>> 2) The field name should be changed as I mentioned earlier. >>>>>>> >>>>>>> Below is the error that I was getting that lead me to this issue : >>>>>>> >>>>>>> ---- exception report >>>>>>> ---------------------------------------------------------- >>>>>>> [java] Service [savePaymentGatewayResponse] threw an unexpected >>>>>>> exception/error >>>>>>> [java] Exception: org.ofbiz.service.GenericServiceException >>>>>>> [java] Message: Service [savePaymentGatewayResponse] target threw an >>>>>>> unexpected exception ([GenericEntity.get] "gatewayMessage" is not a >>>>>>> field >>>>>>> of >>>>>>> PaymentGatewayRespMsg) >>>>>>> [java] ---- cause >>>>>>> --------------------------------------------------------------------- >>>>>>> [java] Exception: java.lang.IllegalArgumentException >>>>>>> [java] Message: [GenericEntity.get] "gatewayMessage" is not a field >>>>>>> of >>>>>>> PaymentGatewayRespMsg >>>>>>> [java] ---- stack trace >>>>>>> --------------------------------------------------------------- >>>>>>> [java] java.lang.IllegalArgumentException: [GenericEntity.get] >>>>>>> "gatewayMessage" is not a field of PaymentGatewayRespMsg >>>>>>> [java] org.ofbiz.entity.GenericEntity.get(GenericEntity.java:305) >>>>>>> [java] >>>>>>> org.ofbiz.entity.GenericEntity.getString(GenericEntity.java:582) >>>>>>> [java] >>>>>>> >>>>>>> >>>>>>> org.ofbiz.accounting.payment.PaymentGatewayServices.savePaymentGatewayResponse(PaymentGatewayServices.java:2850) >>>>>>> >>>>>>> >>>>>>> On Wed, Sep 30, 2009 at 12:07 PM, Abdullah Shaikh < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>> Jira issue created and patch attached, >>>>>>> >>>>>>>> https://issues.apache.org/jira/browse/OFBIZ-2978 >>>>>>>> >>>>>>>> >>>>>>>> On Wed, Sep 30, 2009 at 2:07 AM, Scott Gray < >>>>>>>> [email protected] >>>>>>>> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>> >>>>>>>> Yes please >>>>>>>> >>>>>>>>> >>>>>>>>> Regards >>>>>>>>> Scott >>>>>>>>> >>>>>>>>> >>>>>>>>> On 30/09/2009, at 1:45 AM, Abdullah Shaikh wrote: >>>>>>>>> >>>>>>>>> Should I submit the patch ? >>>>>>>>> >>>>>>>>> >>>>>>>>>> On Tue, Sep 29, 2009 at 4:00 PM, Abdullah Shaikh < >>>>>>>>>> [email protected]> wrote: >>>>>>>>>> >>>>>>>>>> In savePaymentGatewayResponse method of PaymentGatewayServices >>>>>>>>>> class, >>>>>>>>>> we >>>>>>>>>> >>>>>>>>>> are setting the "gatewayMessage" field on the GenericValue of >>>>>>>>>>> PaymentGatewayRespMsg, but there is no field named >>>>>>>>>>> "gatewayMessage" >>>>>>>>>>> in >>>>>>>>>>> entity PaymentGatewayRespMsg but instead we need to use >>>>>>>>>>> "pgrMessage" >>>>>>>>>>> in >>>>>>>>>>> place of "gatewayMessage". >>>>>>>>>>> >>>>>>>>>>> I guess we mistakely assumed the GenericValue which we get from >>>>>>>>>>> the >>>>>>>>>>> context, context.get("paymentGatewayResponse");, to be of >>>>>>>>>>> PaymentGatewayResponse, but its the GenericValue of >>>>>>>>>>> PaymentGatewayRespMsg >>>>>>>>>>> but while putting it on the context we named it as >>>>>>>>>>> "paymentGatewayResponse". >>>>>>>>>>> >>>>>>>>>>> I have changed the savePaymentGatewayResponse, and will submit >>>>>>>>>>> the >>>>>>>>>>> patch, >>>>>>>>>>> but before submitting I would like to confirm this. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>> >>>>> >>> >> >
