You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Hudson (JIRA)" <ji...@apache.org> on 2016/06/06 22:13:21 UTC

[jira] [Commented] (HBASE-15889) String case conversions are locale-sensitive, used without locale

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

Hudson commented on HBASE-15889:
--------------------------------

SUCCESS: Integrated in HBase-1.4 #196 (See [https://builds.apache.org/job/HBase-1.4/196/])
HBASE-15889. String case conversions are locale-sensitive, used without (busbey: rev 878b1ea7212a461bb9abb0eff2bfeeee41a6bb77)
* hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceFactoryImpl.java
* hbase-common/src/main/java/org/apache/hadoop/hbase/io/crypto/KeyStoreKeyProvider.java
* hbase-annotations/src/main/java/org/apache/hadoop/hbase/classification/tools/StabilityOptions.java
* hbase-server/src/test/java/org/apache/hadoop/hbase/TimedOutTestsListener.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/util/ServerCommandLine.java
* hbase-client/src/main/java/org/apache/hadoop/hbase/util/PoolMap.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
* hbase-client/src/main/java/org/apache/hadoop/hbase/filter/SubstringComparator.java
* hbase-hadoop2-compat/src/test/java/org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/security/HBaseSaslRpcServer.java
* hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/ThriftUtilities.java
* hbase-client/src/main/java/org/apache/hadoop/hbase/ServerName.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormat.java
* hbase-client/src/main/java/org/apache/hadoop/hbase/security/SaslUtil.java
* hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestMultiTableInputFormat.java
* hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.java
* hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestTableInputFormatScanBase.java
* hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/RpcClientImpl.java
* hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/AsyncRpcChannel.java
* hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/filter/GzipFilter.java
* hbase-it/src/test/java/org/apache/hadoop/hbase/HBaseClusterManager.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/util/CompressionTest.java
* hbase-it/src/test/java/org/apache/hadoop/hbase/StripeCompactionsPerformanceEvaluation.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/BaseRowProcessor.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/util/DirectMemoryUtils.java
* hbase-client/src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java
* hbase-server/src/test/java/org/apache/hadoop/hbase/PerformanceEvaluation.java
* hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/HThreadedSelectorServerArgs.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/Import.java
* hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.java
* hbase-it/src/test/java/org/apache/hadoop/hbase/RESTApiClusterManager.java
* hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/MultiTableInputFormatTestBase.java
* hbase-server/src/test/java/org/apache/hadoop/hbase/util/LoadTestTool.java
* hbase-server/src/test/java/org/apache/hadoop/hbase/TestIPv6NIOServerSocketChannel.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/CreateSnapshot.java
* hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcExecutor.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/util/FSUtils.java


> String case conversions are locale-sensitive, used without locale
> -----------------------------------------------------------------
>
>                 Key: HBASE-15889
>                 URL: https://issues.apache.org/jira/browse/HBASE-15889
>             Project: HBase
>          Issue Type: Bug
>          Components: localization
>    Affects Versions: 1.2.0
>            Reporter: Sean Mackrory
>            Assignee: Sean Mackrory
>            Priority: Minor
>             Fix For: 2.0.0, 1.4.0
>
>         Attachments: HBASE-15889-branch-1.v2.patch, HBASE-15889-v1.patch, HBASE-15891-v2.patch
>
>
> Static code analysis is flagging cases of String.toLowerCase and String.toUpperCase being used without Locale. From the API reference:
> {quote}
> Note: This method is locale sensitive, and may produce unexpected results if used for strings that are intended to be interpreted locale independently. Examples are programming language identifiers, protocol keys, and HTML tags. For instance, "TITLE".toLowerCase() in a Turkish locale returns "t\u0131tle", where '\u0131' is the LATIN SMALL LETTER DOTLESS I character. To obtain correct results for locale insensitive strings, use toLowerCase(Locale.ROOT).
> {quote}
> Many uses of these functions do appear to be looking up classes, etc. and not dealing with stored data, so I'd think there aren't significant compatibility problems here and specifying the locale is indeed the safer way to go.



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