Class TimeoutGuardPipe

All Implemented Interfaces:
HasTransactionAttribute, IConfigurable, IConfigurationAware, IForwardTarget, INamedObject, IPipe, IScopeProvider, IWithParameters, EventThrowing, HasStatistics, org.springframework.beans.factory.Aware, org.springframework.context.ApplicationContextAware

public abstract class TimeoutGuardPipe extends FixedForwardPipe
Extension to FixedForwardPipe for interrupting processing when timeout is exceeded.
Author:
Peter Leeuwenburgh
Specific parameters
timeout When a parameter with name timeout is present, it is used instead of the timeout specified by the attribute
  • Constructor Details

    • TimeoutGuardPipe

      public TimeoutGuardPipe()
  • Method Details

    • doPipe

      public PipeRunResult doPipe(Message message, PipeLineSession session) throws PipeRunException
      Description copied from interface: IPipe
      This is where the action takes place. Pipes may only throw a PipeRunException, to be handled by the caller of this object. Implementations must either consume the message, or pass it on to the next Pipe in the PipeRunResult. If the result of the Pipe does not depend on the input, like for the FixedResultPipe, the Pipe can schedule the input to be closed at session exit, by calling Message.closeOnCloseOf(PipeLineSession, String) This allows the previous Pipe to release any resources (e.g. connections) that it might have kept open until the message was consumed. Doing so avoids connections leaking from pools, while it enables efficient streaming processing of data while it is being read from a stream.
      Throws:
      PipeRunException
    • doPipeWithTimeoutGuarded

      public abstract PipeRunResult doPipeWithTimeoutGuarded(Message input, PipeLineSession session) throws PipeRunException
      doPipe wrapped around a TimeoutGuard
      Throws:
      PipeRunException
    • killPipe

      protected void killPipe()
      optional implementation to kill additional threads if the pipe may have created those.
    • setThrowException

      public void setThrowException(boolean b)
      when true, a piperunexception is thrown. otherwise the output is only logged as an error (and returned in a xml string with 'error' tags)
      Default value
      true
    • isThrowException

      public boolean isThrowException()
    • getTimeout

      public int getTimeout()
    • setTimeout

      public void setTimeout(int i)
      timeout in seconds of obtaining a result
      Default value
      30