You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ofbiz.apache.org by "Jacques Le Roux (JIRA)" <ji...@apache.org> on 2014/04/24 15:40:16 UTC

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

     [ 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)