Patch available at https://issues.apache.org/jira/browse/NIFI-5761
<https://www.google.com/url?q=https://issues.apache.org/jira/browse/NIFI-5761&sa=D&source=hangouts&ust=1540669801593000&usg=AFQjCNHVVj1whk8fb1Z3Ic51w2TdwvrC1Q>

On Thu, 18 Oct 2018 at 13:33 Juan Pablo Gardella <
gardellajuanpa...@gmail.com> wrote:

> Exactly, I know it is not an issue in the replace text code, but it
> happens inside it. If we are using the ReplaceText in multiple places, it
> increases the flow design complexity. We need to evaluate all expressions
> before sending to the processor, to be sure will not fail in ReplaceText
> processor.
>
> Notice it's impossible if you have to process content dynamically. I would
> happy to file a ticket and the patch as I mention.
>
> Juan
>
>
>
> On Thu, 18 Oct 2018 at 13:18 Shawn Weeks <swe...@weeksconsulting.us>
> wrote:
>
>> I understand the issue now, I’m not sure that a failure of ReplaceText is
>> the best place to catch this though.  The reason I’m not sure it’s the best
>> place is what happens if there are multiple failures because you had
>> multiple expressions, just having them all routed to the same failure
>> wouldn’t help you make decisions on what to do with a single attribute.
>> Perhaps a better solution would be to use a RouteOnAttribute to check if
>> the attributes match a certain pattern before sending them to ReplaceText.
>> A possible expression could be
>> “${actualSettlementDate:matches('[0-9]{2}/[0-9]{2}/[0-9]{4}')}” however
>> that would not catch things that look like dates but aren’t valid.
>>
>>
>>
>> Thanks
>>
>> Shawn Weeks
>>
>>
>>
>> *From:* Juan Pablo Gardella <gardellajuanpa...@gmail.com>
>>
>> *Sent:* Thursday, October 18, 2018 11:03 AM
>>
>>
>> *To:* users@nifi.apache.org
>> *Subject:* Re: [EXT] ReplaceText cannot consume messages if Regex does
>> not match
>>
>>
>>
>> At *search value*:(?s)(^.*$)
>>
>>
>>
>> At *Replacement value*:
>>
>>
>> *<?xml version="1.0" encoding="UTF-8"?>
>> <SettleDate>${actualSettlementDate:toDate('MM/dd/yyyy'):format("yyyy-MM-dd'T'00:00:00.0000000")}</SettleDate>*
>>
>>
>>
>> The actualSettlementDate is a flowfile attribute. The problem is the
>> replacement value is evaluated inside the processor and the *toDate *method
>> fails.
>>
>>
>>
>> Hope it's clear now.
>>
>>
>>
>>
>>
>> On Thu, 18 Oct 2018 at 12:51 Shawn Weeks <swe...@weeksconsulting.us>
>> wrote:
>>
>> I’m still trying to understand your actual issue, can your provide a
>> screenshot of the ReplaceText config like the attached, I need to see
>> exactly where you’re putting the expression. A template would also be
>> really helpful.
>>
>>
>>
>> Thanks
>>
>> Shawn Weeks
>>
>>
>>
>> *From:* Juan Pablo Gardella <gardellajuanpa...@gmail.com>
>>
>> *Sent:* Thursday, October 18, 2018 10:45 AM
>>
>>
>> *To:* users@nifi.apache.org
>> *Subject:* Re: [EXT] ReplaceText cannot consume messages if Regex does
>> not match
>>
>>
>>
>> At ReplaceText
>> <https://raw.githubusercontent.com/apache/nifi/master/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ReplaceText.java>processor
>> we have:
>>
>>
>>
>> [image: image.png]
>>
>> As you can see, only if *StackOverflowError *is raised during the
>> evaluation, the flowfile is send to failure relationship. I would like to
>> update the code to use Exception or NifiExpressionFailedException (if it
>> exits).
>>
>>
>>
>> Juan
>>
>>
>>
>> On Thu, 18 Oct 2018 at 12:33 Shawn Weeks <swe...@weeksconsulting.us>
>> wrote:
>>
>> What processor are you defining your expression in? I also may be
>> misunderstanding the problem because I don’t see any regular expressions
>> anywhere. Can you create a sample workflow showing your issue so I can take
>> a look at it.
>>
>>
>>
>> Thanks
>>
>> Shawn Weeks
>>
>>
>>
>> *From:* Juan Pablo Gardella <gardellajuanpa...@gmail.com>
>> *Sent:* Thursday, October 18, 2018 10:27 AM
>> *To:* users@nifi.apache.org
>> *Subject:* Re: [EXT] ReplaceText cannot consume messages if Regex does
>> not match
>>
>>
>>
>> No, it's not a valid date. I would like if it an error happens, I would
>> like to throw the flowfile to failure and continue.
>>
>>
>>
>> On Thu, 18 Oct 2018 at 12:19 Shawn Weeks <swe...@weeksconsulting.us>
>> wrote:
>>
>> Any expression language syntax has to be correct or the processor won’t
>> run. I’m not sure there is any way to work around that except to explicitly
>> check that the value you are trying to evaluate is valid. Is the attribute
>> “tradeDate” coming from the contents of a flow file or is it defined
>> somewhere else. Can you ensure it is a valid date in that format before
>> hand?
>>
>>
>>
>> Thanks
>>
>> Shawn Weeks
>>
>>
>>
>> *From:* Juan Pablo Gardella <gardellajuanpa...@gmail.com>
>>
>> *Sent:* Thursday, October 18, 2018 10:13 AM
>>
>>
>> *To:* users@nifi.apache.org
>> *Subject:* Re: [EXT] ReplaceText cannot consume messages if Regex does
>> not match
>>
>>
>>
>> Hi, the error is not in the processor itself. It's in the expression used
>> against flowfile attributes. For example inside the text, I have:
>>
>>
>>
>>
>> <EventDate>${tradeDate:toDate('MM/dd/yyyy'):format("yyyy-MM-dd'T'00:00:00.0000000")}</EventDate>
>>
>> And that is the root issue. If it's unable to convert it, the flow cannot
>> be consumed. How can I evaluate attributes in a non-blocker way?
>>
>>
>>
>> Juan
>>
>>
>>
>> On Thu, 18 Oct 2018 at 12:07 Shawn Weeks <swe...@weeksconsulting.us>
>> wrote:
>>
>> Where is your expression? That’s not the entire configuration for that
>> processor.
>>
>>
>>
>> Thanks
>>
>> Shawn Weeks
>>
>>
>>
>> *From:* Juan Pablo Gardella <gardellajuanpa...@gmail.com>
>> *Sent:* Thursday, October 18, 2018 10:03 AM
>> *To:* users@nifi.apache.org
>> *Subject:* Re: [EXT] ReplaceText cannot consume messages if Regex does
>> not match
>>
>>
>>
>> Configuration:
>>
>> Replacement Strategy: Always replace
>>
>> EvaluationMode: Entire text
>>
>>
>>
>>
>>
>> On Thu, 18 Oct 2018 at 12:01 Juan Pablo Gardella <
>> gardellajuanpa...@gmail.com> wrote:
>>
>> Hortonworks nifi based on 1.5.0:
>>
>>
>>
>> Configuration:
>>
>> Thanks
>>
>>
>>
>> On Thu, 18 Oct 2018 at 11:56 Peter Wicks (pwicks) <pwi...@micron.com>
>> wrote:
>>
>> Hi Juan,
>>
>>
>>
>> What version of NiFi are you running on?
>>
>> What mode are you running ReplaceText in, all text or line by line?
>>
>> Other settings that might be important? What’s your RegEx look like (if
>> your able to share).
>>
>>
>>
>> --Peter
>>
>>
>>
>>
>>
>> *From:* Juan Pablo Gardella [mailto:gardellajuanpa...@gmail.com]
>> *Sent:* Thursday, October 18, 2018 8:53 AM
>> *To:* users@nifi.apache.org
>> *Subject:* [EXT] ReplaceText cannot consume messages if Regex does not
>> match
>>
>>
>>
>> Hi all,
>>
>>
>>
>> I'm seeing that ReplaceText is not able to consume messages that does not
>> match regex. It keeps all the messages in the input queue instead of
>> sending them to failure relationship. Is this the intended behavior or I
>> have to file a ticket in order to be fixed? In that way, the processor is
>> not able to process bad messages and converts in the bottleneck of a flow
>>
>>
>>
>> Juan
>>
>>

Reply via email to