Class CatchProcessor

java.lang.Object
org.apache.camel.support.service.BaseService
org.apache.camel.support.service.ServiceSupport
org.apache.camel.support.AsyncProcessorSupport
org.apache.camel.support.processor.DelegateAsyncProcessor
org.apache.camel.processor.CatchProcessor
All Implemented Interfaces:
AutoCloseable, org.apache.camel.AsyncProcessor, org.apache.camel.DelegateProcessor, org.apache.camel.Navigate<org.apache.camel.Processor>, org.apache.camel.Processor, org.apache.camel.Service, org.apache.camel.ShutdownableService, org.apache.camel.spi.HasId, org.apache.camel.spi.IdAware, org.apache.camel.spi.RouteIdAware, org.apache.camel.StatefulService, org.apache.camel.SuspendableService, org.apache.camel.Traceable

public class CatchProcessor extends org.apache.camel.support.processor.DelegateAsyncProcessor implements org.apache.camel.Traceable, org.apache.camel.spi.IdAware, org.apache.camel.spi.RouteIdAware
A processor which catches exceptions.
  • Field Summary

    Fields inherited from class org.apache.camel.support.processor.DelegateAsyncProcessor

    processor

    Fields inherited from class org.apache.camel.support.service.BaseService

    BUILT, FAILED, INITIALIZED, INITIALIZING, lock, NEW, SHUTDOWN, SHUTTING_DOWN, STARTED, STARTING, status, STOPPED, STOPPING, SUSPENDED, SUSPENDING
  • Constructor Summary

    Constructors
    Constructor
    Description
    CatchProcessor(org.apache.camel.CamelContext camelContext, List<Class<? extends Throwable>> exceptions, org.apache.camel.Processor processor, org.apache.camel.Predicate onWhen)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected Throwable
    catches(org.apache.camel.Exchange exchange, Throwable exception)
    Returns with the exception that is caught by this processor.
    protected void
     
    long
    Gets the total number of Exchanges that was caught (also matched the onWhen predicate).
    long
    Gets the number of Exchanges that was caught by the given exception class name (also matched the onWhen predicate).
    Set of the caught exception fully qualified class names
     
     
     
    protected boolean
    matchesWhen(org.apache.camel.Exchange exchange)
    Strategy method for matching the exception type with the current exchange.
    boolean
    process(org.apache.camel.Exchange exchange, org.apache.camel.AsyncCallback callback)
     
    void
    Reset counters.
    void
     
    void
    setRouteId(String routeId)
     
     

    Methods inherited from class org.apache.camel.support.processor.DelegateAsyncProcessor

    doBuild, doShutdown, doStart, doStop, getProcessor, hasNext, next, setProcessor, setProcessor

    Methods inherited from class org.apache.camel.support.AsyncProcessorSupport

    process, processAsync

    Methods inherited from class org.apache.camel.support.service.BaseService

    build, doFail, doLifecycleChange, doResume, doSuspend, fail, getStatus, init, isBuild, isInit, isNew, isRunAllowed, isShutdown, isStarted, isStarting, isStartingOrStarted, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, isSuspendingOrSuspended, resume, shutdown, start, stop, suspend

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface org.apache.camel.spi.IdAware

    setGeneratedId

    Methods inherited from interface org.apache.camel.Processor

    process

    Methods inherited from interface org.apache.camel.Service

    build, close, init, start, stop

    Methods inherited from interface org.apache.camel.ShutdownableService

    shutdown

    Methods inherited from interface org.apache.camel.StatefulService

    getStatus, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isSuspending

    Methods inherited from interface org.apache.camel.SuspendableService

    isSuspended, resume, suspend
  • Constructor Details

    • CatchProcessor

      public CatchProcessor(org.apache.camel.CamelContext camelContext, List<Class<? extends Throwable>> exceptions, org.apache.camel.Processor processor, org.apache.camel.Predicate onWhen)
  • Method Details

    • doInit

      protected void doInit() throws Exception
      Overrides:
      doInit in class org.apache.camel.support.processor.DelegateAsyncProcessor
      Throws:
      Exception
    • toString

      public String toString()
      Overrides:
      toString in class org.apache.camel.support.processor.DelegateAsyncProcessor
    • getId

      public String getId()
      Specified by:
      getId in interface org.apache.camel.spi.HasId
    • setId

      public void setId(String id)
      Specified by:
      setId in interface org.apache.camel.spi.IdAware
    • getRouteId

      public String getRouteId()
      Specified by:
      getRouteId in interface org.apache.camel.spi.RouteIdAware
    • setRouteId

      public void setRouteId(String routeId)
      Specified by:
      setRouteId in interface org.apache.camel.spi.RouteIdAware
    • getTraceLabel

      public String getTraceLabel()
      Specified by:
      getTraceLabel in interface org.apache.camel.Traceable
    • process

      public boolean process(org.apache.camel.Exchange exchange, org.apache.camel.AsyncCallback callback)
      Specified by:
      process in interface org.apache.camel.AsyncProcessor
      Overrides:
      process in class org.apache.camel.support.processor.DelegateAsyncProcessor
    • catches

      protected Throwable catches(org.apache.camel.Exchange exchange, Throwable exception)
      Returns with the exception that is caught by this processor. This method traverses exception causes, so sometimes the exception returned from this method might be one of causes of the parameter passed.
      Parameters:
      exchange - the current exchange
      exception - the thrown exception
      Returns:
      Throwable that this processor catches. null if nothing matches.
    • getCaughtCount

      public long getCaughtCount()
      Gets the total number of Exchanges that was caught (also matched the onWhen predicate).
    • getCaughtCount

      public long getCaughtCount(String className)
      Gets the number of Exchanges that was caught by the given exception class name (also matched the onWhen predicate). This requires to have extended statistics enabled on management statistics level.
    • reset

      public void reset()
      Reset counters.
    • getCaughtExceptionClassNames

      public Set<String> getCaughtExceptionClassNames()
      Set of the caught exception fully qualified class names
    • matchesWhen

      protected boolean matchesWhen(org.apache.camel.Exchange exchange)
      Strategy method for matching the exception type with the current exchange.

      This default implementation will match as:

      • Always true if no when predicate on the exception type
      • Otherwise the when predicate is matches against the current exchange
      Parameters:
      exchange - the current Exchange
      Returns:
      true if matched, false otherwise.