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

Reply via email to