Hi Richard,

FinalStep() in a CasMultiplier aggregate means to stop further flow
in the aggregate and return the CAS to the component that passed
the CAS into the aggregate, or if a child-CAS, passed the child's
parent-CAS into the aggregate.

FinalStep(true) is used to stop a child-CAS from being returned
to the component. But the contract for an AE is CAS-in/CAS-out,
which means a CAS coming into an AE must be returned.

Eddie

On Sun, Sep 6, 2015 at 9:59 AM, Richard Eckart de Castilho <r...@apache.org>
wrote:

> Hi Eddie,
>
> ok, but why can input CASes created outside the aggregate not be dropped?
>
> Cheers,
>
> -- Richard
>
> On 06.09.2015, at 15:58, Eddie Epstein <eaepst...@gmail.com> wrote:
>
> > Hi Torsten,
> >
> > The documentation says ...
> >
> > public FinalStep(boolean aForceCasToBeDropped)
> >
> >   Creates a new FinalStep, and may indicate that a CAS should be dropped.
> >   This can only be used for CASes that are produced internally to the
> > aggregate.
> >   It is an error to attempt to drop a CAS that was passed as input to the
> > aggregate.
> >
> > The error must be because the drop is being applied to a CAS passed into
> the
> > aggregate from the outside, not created by a CasMultiplier inside the
> > aggregate.
> >
> > Eddie
> >
> >
> > On Wed, Sep 2, 2015 at 4:22 PM, Zesch, Torsten <torsten.ze...@uni-due.de
> >
> > wrote:
> >
> >> Hi all,
> >>
> >> I'm trying to implement a FlowController that drops CASes matching
> certain
> >> critera. The FlowController is defined on an inner AAE which sets
> >> casproduced to true. The inner AAE resides in an outer AAE which
> contains
> >> additional processing before and after the inner AAE.
> >>
> >> Reader -> Outer AAE { ProcŠ Inner AAE { FlowController } ProcŠ Consumer}
> >> The aggregate receives various input CASes and is supposed to drop some
> >> but not others. When I try to drop a CAS in my FlowController now, I get
> >> the error
> >>
> >> Caused by:
> org.apache.uima.analysis_engine.AnalysisEngineProcessException:
> >> The FlowController attempted to drop a CAS that was passed as input to
> the
> >> Aggregate AnalysisEngine containing that FlowController.  The only CASes
> >> that may be dropped are those that are created within the same Aggregate
> >> AnalysisEngine as the FlowController.
> >>
> >> How can I drop CASes using a FlowController such that they do not
> proceed
> >> in the outer aggregate?
> >>
> >>
> >> thanks,
> >> Torsten
>
>

Reply via email to