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:22 PM, Abdullah Shaikh < abdullah.sha...@viithiisys.com> 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 < > abdullah.sha...@viithiisys.com> 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 >> <scott.g...@hotwaxmedia.com>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 < >>>> abdullah.sha...@viithiisys.com> 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. >>>>> >>>>> >>> >> >