JIRA

  • Log In Access more options
    • Online Help
    • GreenHopper Help
    • Agile Answers
    • Use Agile By Default
    • Keyboard Shortcuts
    • About JIRA
    • JIRA Credits
    • What’s New
  • Dashboards Access more options (Alt+d)
  • Projects Access more options (Alt+p)
  • Issues Access more options (Alt+i)
  • Agile Access more options (Alt+g)
  • Create Issue
  • Mule
  • MULE-5895

As a user I want to be able to define a custom default exception strategy that is used when a a flow or service does not define one explicitly

  • Agile Board
  • More Actions
  • Views
    • XML
    • Word
    • Printable

Details

  • Type: New Feature New Feature
  • Status: Closed Closed
  • Priority: Critical Critical
  • Resolution: Fixed
  • Affects Version/s: None
  • Fix Version/s: 3.3 M2
  • Component/s: Core: Exception Handling
  • Labels:
    None
  • User impact:
    Medium
  • Effort points:
    3
  • Similar Issues:
    None
  • Effort:
    S
  • % Users Impacted:
    >80%
  • Value:
    5

Description

Acceptance Criteria

  1. Must be able to redefine default exception strategy for flows and services in a single place.
  2. If a flow or service is configured without an explicitly defined exception strategy the custom default exception strategy is used.
  3. If there's a global exception strategy configured and no other exception strategy configured then flows / services must use that exception strategy.
    When:
    <mule>
      <configuration defaultExceptionStrategy-ref="dlqExceptionStrategy"/>
    
      <catch-exception-strategy name="dlqExceptionStrategy">
        <jms:outbound-endpoint queue="dlq">
           <jms:transaction action="ALWAYS_BEGIN"/>
        </jms:outbound-endpoint>
      </catch-exception-strategy>
    
    
      <flow name="A">
        ...
      </flow>
    
      <model>
        <service name="B">
          ...
        </service>
      </model>
    </mule>

    Then:

    • flow A uses exception strategy defined in global-exception-strategy
    • service B uses exception strategy defined in global-exception-strategy
  4. If there's a global exception strategy configured, an exception strategy configured for a model then services within that model must use exception strategy configured in the model.
    When:
    <mule>
      <configuration defaultExceptionStrategy-ref="dlqExceptionStrategy"/>
    
      <catch-exception-strategy name="dlqExceptionStrategy">
        <jms:outbound-endpoint queue="dlq">
           <jms:transaction action="ALWAYS_BEGIN"/>
        </jms:outbound-endpoint>
      </catch-exception-strategy>
    
      <flow name="A">
        ...
      </flow>
    
      <model>
        <default-exception-strategy>
          ...
        </default-exception-strategy>
    
        <service name="B">
          ...
        </service>
      </model>
    </mule>

    Then:

    • flow A uses exception strategy defined within it
    • service B uses exception strategy defined within model
  5. If there's a global exception strategy configured, an exception strategy configured in a model and a service with a configured exception strategy within that model, then for that service the exception strategy to use must be the one defined in the service.
    When:
    <mule>
      <configuration defaultExceptionStrategy-ref="dlqExceptionStrategy"/>
    
      <catch-exception-strategy name="dlqExceptionStrategy">
        <jms:outbound-endpoint queue="dlq">
           <jms:transaction action="ALWAYS_BEGIN"/>
        </jms:outbound-endpoint>
      </catch-exception-strategy>
    
      <flow name="A">
        ...
        <default-exception-strategy>
          ...
        </default-exception-strategy>
      </flow>
    
      <flow name="B">
        ...
      </flow>
    
      <model>
        <default-exception-strategy>
          ...
        </default-exception-strategy>
    
        <service name="C">
          ...
          <default-exception-strategy>
             ...
          </default-exception-strategy>
        </service>
    
        <service name="D">
          ...
        </service>
      </model>
    </mule>

    Then:

    • flow A uses exception strategy defined within it
    • flow B uses global exception strategy
    • service C uses exception strategy defined within it
    • service D uses exception strategy defined within model

Activity

Ascending order - Click to sort in descending order
  • All
  • Comments
  • Work Log
  • History
  • Activity
  • Transitions
  • Commits
  • Source
  • Builds
Hide
Permalink
Pablo La Greca added a comment - 12/Jan/12 01:00 PM

Documentation http://www.mulesoft.org/documentation/display/MULECDEV/Error+Handling+Reuse+Documentation

Show
Pablo La Greca added a comment - 12/Jan/12 01:00 PM Documentation http://www.mulesoft.org/documentation/display/MULECDEV/Error+Handling+Reuse+Documentation
Hide
Permalink
Pablo La Greca added a comment - 16/Jan/12 08:18 AM

https://fisheye.codehaus.org/changelog/mule/?cs=23609

Show
Pablo La Greca added a comment - 16/Jan/12 08:18 AM https://fisheye.codehaus.org/changelog/mule/?cs=23609
Hide
Permalink
Pablo La Greca added a comment - 23/Jan/12 02:53 PM

Documentation style change according to feedback:
https://fisheye.codehaus.org/changelog/mule/?cs=23701

Show
Pablo La Greca added a comment - 23/Jan/12 02:53 PM Documentation style change according to feedback: https://fisheye.codehaus.org/changelog/mule/?cs=23701
Hide
Permalink
Pablo La Greca added a comment - 24/Jan/12 08:18 AM

Fixing introduced bug:
https://fisheye.codehaus.org/changelog/mule/?cs=23705

Show
Pablo La Greca added a comment - 24/Jan/12 08:18 AM Fixing introduced bug: https://fisheye.codehaus.org/changelog/mule/?cs=23705
Hide
Permalink
Pablo La Greca added a comment - 06/Feb/12 01:36 PM - edited

Detailed documentation about this feature can be found here: http://www.mulesoft.org/documentation/display/MULECDEV/Error+Handling+Reuse

Show
Pablo La Greca added a comment - 06/Feb/12 01:36 PM - edited Detailed documentation about this feature can be found here: http://www.mulesoft.org/documentation/display/MULECDEV/Error+Handling+Reuse
Hide
Permalink
Erich F. Leipold added a comment - 23/Apr/12 12:25 PM

Will this cover system exceptions during a message flow? For example, if the HTTP server throws a "Connection refused" exception while trying to process a message, will the default exception strategy catch this, even though it is a system level exception?

Show
Erich F. Leipold added a comment - 23/Apr/12 12:25 PM Will this cover system exceptions during a message flow? For example, if the HTTP server throws a "Connection refused" exception while trying to process a message, will the default exception strategy catch this, even though it is a system level exception?

People

  • Assignee:
    Pablo La Greca
    Reporter:
    Daniel Feist
Vote (0)
Watch (0)

Dates

  • Created:
    18/Nov/11 07:22 AM
    Updated:
    23/Apr/12 12:25 PM
    Resolved:
    06/Feb/12 01:38 PM

Agile

  • View on Board
  • Atlassian JIRA (v5.0.7#734-sha1:8ad78a6)
  • Report a problem
  • Powered by a free Atlassian JIRA open source license for MuleForge. Try JIRA - bug tracking software for your team.