[jira] [Closed] (OFBIZ-5449) Emails with attachments are sent multiple times, problem with : field-to-result (simple methods)

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Closed] (OFBIZ-5449) Emails with attachments are sent multiple times, problem with : field-to-result (simple methods)

Nicolas Malin (Jira)

     [ https://issues.apache.org/jira/browse/OFBIZ-5449?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jacques Le Roux closed OFBIZ-5449.
----------------------------------

    Resolution: Duplicate

> Emails with attachments are sent multiple times, problem with : field-to-result (simple methods)
> ------------------------------------------------------------------------------------------------
>
>                 Key: OFBIZ-5449
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-5449
>             Project: OFBiz
>          Issue Type: Bug
>          Components: content
>    Affects Versions: Release Branch 12.04
>            Reporter: Sergei Biletnikov
>
> The service "createCommContentDataResource" which is used for creating and storing the content data resourses throws an error. As result, the email sending is not finished (just the data resource was not stored to the DB) and the job scheduler reschedule the mail sending in async mode again, so OFBiz will send emails every retring period again and again.
> The service implementation:
> component://content/script/org/ofbiz/content/content/ContentServices.xml#createCommContentDataResource
> There is a snippet of code with wrong behaviour:
>           <call-service service-name="persistContentAndAssoc" in-map-name="persistIn">
>             <results-to-map map-name="persistOut"/>
>         </call-service>
>         <iterate-map key="key" value="val" map="persistOut">
>             <field-to-result field="val" result-name="${key}"/>
>         </iterate-map>
> Message: Roll back error, could not commit transaction, was rolled back instead because of: Service [createCommContentDataResource] threw an unexpected exception/errororg.ofbiz.service.GenericServiceException: Outgoing result (in runSync : createCommContentDataResource) does not match expected requirements (Unknown parameter found: [createCommContentDataResource.success]) (Outgoing result (in runSync : createCommContentDataResource) does not match expected requirements (Unknown parameter found: [createCommContentDataResource.success]))
> ---- cause ---------------------------------------------------------------------
> Exception: org.ofbiz.service.GenericServiceException
> Message: Outgoing result (in runSync : createCommContentDataResource) does not match expected requirements (Unknown parameter found: [createCommContentDataResource.success])
> ---- cause ---------------------------------------------------------------------
> Exception: org.ofbiz.service.ServiceValidationException
> Message: Unknown parameter found: [createCommContentDataResource.success]
> ---- stack trace ---------------------------------------------------------------
> org.ofbiz.service.ServiceValidationException: Unknown parameter found: [createCommContentDataResource.success]
> org.ofbiz.service.ModelService.validate(ModelService.java:649)
> org.ofbiz.service.ModelService.validate(ModelService.java:563)
> org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:480)
> org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:225)
> org.ofbiz.service.GenericDispatcher.runSync(GenericDispatcher.java:163)
> org.ofbiz.party.communication.CommunicationEventServices.createAttachmentContent(CommunicationEventServices.java:1022)
> org.ofbiz.party.communication.CommunicationEventServices.updateCommEventAfterEmail(CommunicationEventServices.java:648)
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> java.lang.reflect.Method.invoke(Method.java:597)
> However,the cause of the problem is here:
> <field-to-result field="val" result-name="${key}"/>
> when the key = "responseMessage" and val = "success"
> field-to-result places to the result map unexpected key-value pair : success : success  (not  responseMessage : success)
> That is wrong, of course.
> Quick workaround is ignore the "responseMessage" field:
> <iterate-map key="key" value="val" map="persistOut">
>             <if-compare field="key" operator="not-equals" value="responseMessage">
>                 <field-to-result field="val" result-name="${key}"/>
>             </if-compare>
> </iterate-map>
> but I would prefer if someone have found the problem in "field-to-result", because "createCommContentDataResource" just uncovers the problem.



--
This message was sent by Atlassian JIRA
(v6.2#6252)