Tellier Benoit created JAMES-2275:
-------------------------------------

             Summary: Allow per Exception error handling in the mailet pipeline
                 Key: JAMES-2275
                 URL: https://issues.apache.org/jira/browse/JAMES-2275
             Project: James Server
          Issue Type: New Feature
          Components: Mailet Contributions
    Affects Versions: master
            Reporter: Tellier Benoit


In JAMES-2271 from [~apptaro], the error handling system of the mailet pipeline 
can now be customized using the *onMailetException* property. This allows 
specifying the processor for error handling or ignore the error (by default 
error processor is triggered).

While empowering the user to write custom error handling logic, the error 
handling code capabilities is limited as the original exception is lost along 
the way.

We should:

 - Pass the Exception along with the Mail, as an attribute. 

Thus mailet in the error processor can access and read it. Throwable being 
serializable, this makes this change easy to perform.

 - Implement specific error handling matchers:
   - *HasException* would allow to see if a Mail has a specific exception

{code:xml}
<mailet 
match="HasException=org.apache.james.managesieve.api.ManageSieveException" 
class="...>
    ....
</mailet>
{code}

### How to implement this

1. Add a ERROR_ATTRIBUTE_NAME contant in the Mail interface
2. ProcessorUtil:: handleException should add the ERROR_ATTRIBUTE_NAME attriute 
using the provided exception
3. Modify *AbstractStateMailetProcessorTest* to demonstrate that when a mailet 
or a matcher throws, the Exception is attahed to the incoming mail.

4. In the mailet/standard project, you will implement the HasException matcher. 
You can extend GenericMatcher and implement unit tests for your class.




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to