You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ofbiz.apache.org by Abdullah Shaikh <ab...@viithiisys.com> on 2009/10/05 08:30:04 UTC

Re: gatewayMessage should be pgrMessage in savePaymentGatewayResponse

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 <
abdullah.shaikh@viithiisys.com> wrote:

> Patch resubmitted
>
>
> On Wed, Sep 30, 2009 at 7:52 PM, Abdullah Shaikh <
> abdullah.shaikh@viithiisys.com> 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 <sc...@hotwaxmedia.com>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 <
>>>> abdullah.shaikh@viithiisys.com> 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 <
>>>>> scott.gray@hotwaxmedia.com>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 <
>>>>>>> abdullah.shaikh@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.gray@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.shaikh@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.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>
>>>
>>
>