IMO... UpdateAttribute has been around since the beginning of time, I can't
see adding a failure relationship. At the same time I understand the want
for such exceptions to be handled more gracefully rather than rolling back
indefinitely.
I'd vote in favor of considering Moser's option #2... and being able to
implement an "if this then that" logic within your flow.

Also just thinking... for every UA failure you have to consider a good
failure-management strategy, which MIGHT add a lot of noise to the flow.
Something that might otherwise easily be identified in a downstream
component and/or database/etc.

My 2 cents **
Phil





On Wed, Feb 7, 2024 at 5:18 PM Adam Taft <a...@adamtaft.com> wrote:

> Or better, the failure relationship just doesn't even exist until the
> property "Has Failure Relationship" is set to True.  This involves updating
> UpdateAttribute to have dynamic relationships (the failure relationships
> appearing on true), which isn't hard to do in processor code.
>
> This has the advantage of being backwards compatible for existing users and
> allows the failure relationship to exist for new configurations. Obviously
> the processor would need an update to catch Expression Language exceptions
> and then route conditionally to failure.
>
> Just thinking out loud.
> /Adam
>
>
>
> On Wed, Feb 7, 2024 at 1:48 PM u...@moosheimer.com <u...@moosheimer.com>
> wrote:
>
> > Hi Mike,
> >
> > How about the option of introducing a new property that decides whether
> to
> > route to the 'failure' relationship in the event of an error?
> > If this property is set to false, then the 'failure' relationship is
> > automatically set to 'terminate' (since nothing is routed there anyway).
> >
> > Then everyone can decide whether and where they want to use this new
> > feature or not.
> > All other options would still be possible with such a solution.
> >
> > -- Uwe
> >
> > > Am 07.02.2024 um 22:15 schrieb Michael Moser <moser...@gmail.com>:
> > >
> > > Hi Dan,
> > >
> > > This has been discussed in the past, as you found with those two Jira
> > > tickets.  Personally, I'm still not sure whether a new failure
> > relationship
> > > on UpdateAttribute in 2.0 is a good approach.  I have heard from some
> > > dataflow managers that would not want to go through their entire graph
> > when
> > > upgrading to 2.0 and update every UpdateAttribute configuration.
> > >
> > > I have heard some alternatives to a 'failure' relationship that I would
> > > like to share as options.
> > >
> > > 1) Add a new property to UpdateAttribute that controls whether a
> flowfile
> > > that causes an expression language exception either yields and rolls
> > back,
> > > or silently fails to update the attribute and sends the flowfile to
> > > success.  I personally don't like this, because the use case for
> "silent
> > > failure" seems really like a rarely needed edge case.
> > >
> > > 2) Identify all expression language methods that can throw an exception
> > and
> > > document that fact in the Expression Language Guide (some methods
> already
> > > mention they can throw an "exception bulletin").  Then implement new
> > > expression methods to check if an expression could fail, and use that
> in
> > > UpdateAttribute advanced rules.  For example, if the format() and
> > > formatInstant() methods can fail on a negative number, we create a new
> > > method such as isValidMilliseconds().  This already exists for some
> > cases,
> > > such as isJson() which can do a quick check of some value before
> calling
> > > jsonPathDelete() on it.
> > >
> > > I'm curious to hear more thoughts on this.
> > >
> > > -- Mike
> > >
> > >
> > >
> > >> On Wed, Jan 31, 2024 at 11:02 AM Dan S <dsti...@gmail.com> wrote:
> > >>
> > >> My team is requesting a failure relationship for UpdateAttribute as
> > seen in
> > >> NIFI-5448 <https://issues.apache.org/jira/browse/NIFI-5448> and
> > NIFI-6344
> > >> <https://issues.apache.org/jira/browse/NIFI-6344> as we are
> > >> experiencing the same problem where a NIFI Expression Language is
> > throwing
> > >> an exception. In the PR for NIFI-5448 it was mentioned this feature
> > would
> > >> have to wait until NIFI 2.0.0. I wanted to know if there is any active
> > work
> > >> regarding this and whether eventually there will be a failure
> > relationship
> > >> added to UpdateAttribute?
> > >>
> >
> >
>

Reply via email to