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. >>>>>> >>>>>> >>>>>> >>>> >>> >
