You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Nihal Jain (JIRA)" <ji...@apache.org> on 2019/02/12 14:18:00 UTC

[jira] [Comment Edited] (HBASE-21872) Clean up getBytes() calls without charsets provided

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

Nihal Jain edited comment on HBASE-21872 at 2/12/19 2:17 PM:
-------------------------------------------------------------

bq. [https://github.com/policeman-tools/forbidden-apis]
[~krisden] Thanks for sharing. This looks like a great plugin. Tried this and the results look great.
NOTE: I used the default bundled signatures.

{noformat}
[INFO] --- forbiddenapis:2.6:check (forbidden-apis) @ hbase-backup ---
[INFO] Scanning for classes to check...
[INFO] Reading bundled API signatures: jdk-unsafe-1.6
[INFO] Reading bundled API signatures: jdk-deprecated-1.6
[INFO] Reading bundled API signatures: jdk-non-portable
[INFO] Reading bundled API signatures: jdk-reflection
[INFO] Loading classes to check...
[INFO] Scanning classes for violations...
[ERROR] Forbidden method invocation: java.util.Calendar#getInstance() [Uses default locale or time zone]
[ERROR]   in org.apache.hadoop.hbase.backup.BackupInfo (BackupInfo.java:502)
[ERROR] Forbidden method invocation: java.util.Calendar#getInstance() [Uses default locale or time zone]
[ERROR]   in org.apache.hadoop.hbase.backup.BackupInfo (BackupInfo.java:511)
[ERROR] Forbidden method invocation: java.lang.reflect.AccessibleObject#setAccessible(boolean) [Reflection usage to work around access flags fails with SecurityManagers and likely will not work anymore on runtime classes in Java 9]
[ERROR]   in org.apache.hadoop.hbase.backup.mapreduce.MapReduceBackupCopyJob$BackupDistCp (MapReduceBackupCopyJob.java:177)
[ERROR] Forbidden method invocation: java.lang.reflect.AccessibleObject#setAccessible(boolean) [Reflection usage to work around access flags fails with SecurityManagers and likely will not work anymore on runtime classes in Java 9]
[ERROR]   in org.apache.hadoop.hbase.backup.mapreduce.MapReduceBackupCopyJob$BackupDistCp (MapReduceBackupCopyJob.java:178)
[ERROR] Forbidden method invocation: java.lang.reflect.AccessibleObject#setAccessible(boolean) [Reflection usage to work around access flags fails with SecurityManagers and likely will not work anymore on runtime classes in Java 9]
[ERROR]   in org.apache.hadoop.hbase.backup.mapreduce.MapReduceBackupCopyJob$BackupDistCp (MapReduceBackupCopyJob.java:179)
[ERROR] Forbidden method invocation: java.lang.reflect.AccessibleObject#setAccessible(boolean) [Reflection usage to work around access flags fails with SecurityManagers and likely will not work anymore on runtime classes in Java 9]
[ERROR]   in org.apache.hadoop.hbase.backup.mapreduce.MapReduceBackupCopyJob$BackupDistCp (MapReduceBackupCopyJob.java:281)
[ERROR] Forbidden method invocation: java.lang.reflect.AccessibleObject#setAccessible(boolean) [Reflection usage to work around access flags fails with SecurityManagers and likely will not work anymore on runtime classes in Java 9]
[ERROR]   in org.apache.hadoop.hbase.backup.mapreduce.MapReduceBackupCopyJob$BackupDistCp (MapReduceBackupCopyJob.java:351)
[ERROR] Forbidden method invocation: java.lang.String#<init>(byte[],int,int) [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable$1 (BackupSystemTable.java:1071)
[ERROR] Forbidden method invocation: java.lang.String#<init>(byte[],int,int) [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable$1 (BackupSystemTable.java:1075)
[ERROR] Forbidden method invocation: java.lang.String#<init>(byte[],int,int) [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable$1 (BackupSystemTable.java:1079)
[ERROR] Forbidden method invocation: java.lang.String#<init>(byte[]) [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.regionserver.LogRollBackupSubprocedure (LogRollBackupSubprocedure.java:61)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.master.LogRollMasterProcedureManager (LogRollMasterProcedureManager.java:133)
[ERROR] Forbidden method invocation: java.lang.String#<init>(byte[]) [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:567)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:1618)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:1698)
[ERROR] Forbidden method invocation: java.lang.String#<init>(byte[]) [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:1768)
[ERROR] Forbidden method invocation: java.lang.String#<init>(byte[]) [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:1849)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:1905)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:2009)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:2040)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:144)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:148)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:149)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:157)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:158)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:160)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:161)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:168)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:169)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:170)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.IncrementalTableBackupClient (IncrementalTableBackupClient.java:158)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.IncrementalTableBackupClient (IncrementalTableBackupClient.java:160)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.IncrementalTableBackupClient (IncrementalTableBackupClient.java:162)
[ERROR] Forbidden method invocation: java.lang.String#toUpperCase() [Uses default locale]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupCommands$CreateCommand (BackupCommands.java:342)
[ERROR] Scanned 75 class file(s) for forbidden API invocations (in 0.99s), 34 error(s).
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  43.724 s
[INFO] Finished at: 2019-02-12T19:43:44+05:30
[INFO] ------------------------------------------------------------------------
{noformat}

Ping [~Apache9], [~busbey], [~stack]


was (Author: nihaljain.cs):
bq. [https://github.com/policeman-tools/forbidden-apis]
[~krisden] Thanks for sharing. This looks like a great plugin. Tried this and the results look great.
NOTE: I used the default bundled signatures.

{noformat}
[INFO] --- forbiddenapis:2.6:check (forbidden-apis) @ hbase-backup ---
[INFO] Scanning for classes to check...
[INFO] Reading bundled API signatures: jdk-unsafe-1.6
[INFO] Reading bundled API signatures: jdk-deprecated-1.6
[INFO] Reading bundled API signatures: jdk-non-portable
[INFO] Reading bundled API signatures: jdk-reflection
[INFO] Loading classes to check...
[INFO] Scanning classes for violations...
[ERROR] Forbidden method invocation: java.util.Calendar#getInstance() [Uses default locale or time zone]
[ERROR]   in org.apache.hadoop.hbase.backup.BackupInfo (BackupInfo.java:502)
[ERROR] Forbidden method invocation: java.util.Calendar#getInstance() [Uses default locale or time zone]
[ERROR]   in org.apache.hadoop.hbase.backup.BackupInfo (BackupInfo.java:511)
[ERROR] Forbidden method invocation: java.lang.reflect.AccessibleObject#setAccessible(boolean) [Reflection usage to work around access flags fails with SecurityManagers and likely will not work anymore on runtime classes in Java 9]
[ERROR]   in org.apache.hadoop.hbase.backup.mapreduce.MapReduceBackupCopyJob$BackupDistCp (MapReduceBackupCopyJob.java:177)
[ERROR] Forbidden method invocation: java.lang.reflect.AccessibleObject#setAccessible(boolean) [Reflection usage to work around access flags fails with SecurityManagers and likely will not work anymore on runtime classes in Java 9]
[ERROR]   in org.apache.hadoop.hbase.backup.mapreduce.MapReduceBackupCopyJob$BackupDistCp (MapReduceBackupCopyJob.java:178)
[ERROR] Forbidden method invocation: java.lang.reflect.AccessibleObject#setAccessible(boolean) [Reflection usage to work around access flags fails with SecurityManagers and likely will not work anymore on runtime classes in Java 9]
[ERROR]   in org.apache.hadoop.hbase.backup.mapreduce.MapReduceBackupCopyJob$BackupDistCp (MapReduceBackupCopyJob.java:179)
[ERROR] Forbidden method invocation: java.lang.reflect.AccessibleObject#setAccessible(boolean) [Reflection usage to work around access flags fails with SecurityManagers and likely will not work anymore on runtime classes in Java 9]
[ERROR]   in org.apache.hadoop.hbase.backup.mapreduce.MapReduceBackupCopyJob$BackupDistCp (MapReduceBackupCopyJob.java:281)
[ERROR] Forbidden method invocation: java.lang.reflect.AccessibleObject#setAccessible(boolean) [Reflection usage to work around access flags fails with SecurityManagers and likely will not work anymore on runtime classes in Java 9]
[ERROR]   in org.apache.hadoop.hbase.backup.mapreduce.MapReduceBackupCopyJob$BackupDistCp (MapReduceBackupCopyJob.java:351)
[ERROR] Forbidden method invocation: java.lang.String#<init>(byte[],int,int) [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable$1 (BackupSystemTable.java:1071)
[ERROR] Forbidden method invocation: java.lang.String#<init>(byte[],int,int) [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable$1 (BackupSystemTable.java:1075)
[ERROR] Forbidden method invocation: java.lang.String#<init>(byte[],int,int) [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable$1 (BackupSystemTable.java:1079)
[ERROR] Forbidden method invocation: java.lang.String#<init>(byte[]) [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.regionserver.LogRollBackupSubprocedure (LogRollBackupSubprocedure.java:61)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.master.LogRollMasterProcedureManager (LogRollMasterProcedureManager.java:133)
[ERROR] Forbidden method invocation: java.lang.String#<init>(byte[]) [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:567)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:1618)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:1698)
[ERROR] Forbidden method invocation: java.lang.String#<init>(byte[]) [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:1768)
[ERROR] Forbidden method invocation: java.lang.String#<init>(byte[]) [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:1849)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:1905)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:2009)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:2040)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:144)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:148)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:149)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:157)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:158)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:160)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:161)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:168)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:169)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupSystemTable (BackupSystemTable.java:170)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.IncrementalTableBackupClient (IncrementalTableBackupClient.java:158)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.IncrementalTableBackupClient (IncrementalTableBackupClient.java:160)
[ERROR] Forbidden method invocation: java.lang.String#getBytes() [Uses default charset]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.IncrementalTableBackupClient (IncrementalTableBackupClient.java:162)
[ERROR] Forbidden method invocation: java.lang.String#toUpperCase() [Uses default locale]
[ERROR]   in org.apache.hadoop.hbase.backup.impl.BackupCommands$CreateCommand (BackupCommands.java:342)
[ERROR] Scanned 75 class file(s) for forbidden API invocations (in 0.99s), 34 error(s).
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  43.724 s
[INFO] Finished at: 2019-02-12T19:43:44+05:30
[INFO] ------------------------------------------------------------------------
{noformat}

WDYT [~Apache9], [~busbey]?

> Clean up getBytes() calls without charsets provided
> ---------------------------------------------------
>
>                 Key: HBASE-21872
>                 URL: https://issues.apache.org/jira/browse/HBASE-21872
>             Project: HBase
>          Issue Type: Task
>            Reporter: Josh Elser
>            Assignee: Josh Elser
>            Priority: Trivial
>             Fix For: 3.0.0
>
>         Attachments: HBASE-21782.001.patch, HBASE-21782.002.patch
>
>
> As we saw over in HBASE-21201, the use of {{String.getBytes()}} without a Charset can result is some compiler warnings. Let's just get rid of these calls. There are only a handful anymore in master.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)