[ 
https://issues.apache.org/jira/browse/NIFI-1859?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15275042#comment-15275042
 ] 

ASF subversion and git services commented on NIFI-1859:
-------------------------------------------------------

Commit 993d3cd78f66c24ccad2c4b5c6b5b2ddaf957832 in nifi's branch 
refs/heads/master from [~aldrin]
[ https://git-wip-us.apache.org/repos/asf?p=nifi.git;h=993d3cd ]

NIFI-1859 Using .equals instead of == for default locale check.  Adding some 
additional information for the input and output schema properties.

This closes #418.

Signed-off-by: Aldrin Piri <ald...@apache.org>


> ConvertAvroSchema performs improper equality check on locale property
> ---------------------------------------------------------------------
>
>                 Key: NIFI-1859
>                 URL: https://issues.apache.org/jira/browse/NIFI-1859
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: Extensions
>    Affects Versions: 0.6.1
>            Reporter: Aldrin Piri
>            Assignee: Aldrin Piri
>             Fix For: 1.0.0, 0.7.0
>
>
> From the users list:
> {quote}
> Hi,
> I am seeing this error in my logs (may or may not be linked to upgrade to 
> 0.6.1)
> java.lang.IllegalArgumentException: Invalid locale format: default
>          at 
> org.apache.commons.lang.LocaleUtils.toLocale(LocaleUtils.java:110) ~[na:na]
>          at 
> org.apache.nifi.processors.kite.ConvertAvroSchema.onTrigger(ConvertAvroSchema.java:277)
>  ~[na:na]
> ….
> I have a number of flows that use ConvertAvroSchema processor but I just have 
> the default locale of ‘default’ in there which would appear to be the 
> problem. I’m running on Java 8 if that make a difference.
> Running >locale on a node in my cluster with the problem returns the same as 
> nodes without the error.
> [root@yarn-cm1 opt]# locale
> LANG=en_GB.UTF-8
> LC_CTYPE="en_GB.UTF-8"
> LC_NUMERIC="en_GB.UTF-8"
> LC_TIME="en_GB.UTF-8"
> LC_COLLATE="en_GB.UTF-8"
> LC_MONETARY="en_GB.UTF-8"
> LC_MESSAGES="en_GB.UTF-8"
> LC_PAPER="en_GB.UTF-8"
> LC_NAME="en_GB.UTF-8"
> LC_ADDRESS="en_GB.UTF-8"
> LC_TELEPHONE="en_GB.UTF-8"
> LC_MEASUREMENT="en_GB.UTF-8"
> LC_IDENTIFICATION="en_GB.UTF-8"
> LC_ALL=
> Should I manually set the locale in the ConvertAvroSchema or need to do 
> something else??
> Thanks
> Conrad
> SecureData, combating cyber threats
> {quote}
> Based on the snippet of stacktrace, it appears the culprit is the incorrect 
> use of "==" in lieu of ".equals."  
> The lines in question are: 
> final String localeProperty = context.getProperty(LOCALE).getValue();
> final Locale locale = (localeProperty == 
> DEFAULT_LOCALE_VALUE)?Locale.getDefault():LocaleUtils.toLocale(localeProperty);
> For some instances, I believe localeProperty is not getting internalized with 
> the "default" string for DEFAULT_LOCALE_VALUE, and thus, is being passed to 
> #toLocale.  I was able to reproduce locally by changing the property to 
> something other than "default" and then, changing it back to "default."  Was 
> also able to verify that .equals remedied the issue.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to