sunyerui created HBASE-13873:
--------------------------------
Summary: LoadTestTool addAuthInfoToConf throws
UnsupportedOperationException
Key: HBASE-13873
URL: https://issues.apache.org/jira/browse/HBASE-13873
Project: HBase
Issue Type: Bug
Components: integration tests
Affects Versions: 0.98.13
Reporter: sunyerui
Fix For: 0.98.14
When run IntegrationTestIngestWithACL on distributed clusters with kerberos
security enabled, the method addAuthInfoToConf() in LoadTestTool will be
invoked and throws UnsupportedOperationException, stack as follows:
{panel}
2015-06-09 22:15:33,605 ERROR \[main\] util.AbstractHBaseTool: Error running
command-line tool
java.lang.UnsupportedOperationException
at java.util.AbstractList.add(AbstractList.java:148)
at java.util.AbstractList.add(AbstractList.java:108)
at
org.apache.hadoop.hbase.util.LoadTestTool.addAuthInfoToConf(LoadTestTool.java:811)
at
org.apache.hadoop.hbase.util.LoadTestTool.loadTable(LoadTestTool.java:516)
at
org.apache.hadoop.hbase.util.LoadTestTool.doWork(LoadTestTool.java:479)
at
org.apache.hadoop.hbase.util.AbstractHBaseTool.run(AbstractHBaseTool.java:112)
at
org.apache.hadoop.hbase.IntegrationTestIngest.runIngestTest(IntegrationTestIngest.java:151)
at
org.apache.hadoop.hbase.IntegrationTestIngest.internalRunIngestTest(IntegrationTestIngest.java:114)
at
org.apache.hadoop.hbase.IntegrationTestIngest.runTestFromCommandLine(IntegrationTestIngest.java:97)
at
org.apache.hadoop.hbase.IntegrationTestBase.doWork(IntegrationTestBase.java:115)
at
org.apache.hadoop.hbase.util.AbstractHBaseTool.run(AbstractHBaseTool.java:112)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at
org.apache.hadoop.hbase.IntegrationTestIngestWithACL.main(IntegrationTestIngestWithACL.java:136)
{panel}
The corresponding code is below and the reason is obvious. Arrays.asList return
a java.util.Arrays$ArrayList but not java.util.ArrayList. Both of them are
inherited from java.util.AbstractList, but the former didn't override the
method add(), so the parent method java.util.AbstractList.add() will be invoked
and the exception threw.
{code}
private void addAuthInfoToConf(Properties authConfig, Configuration conf,
String owner,
String userList) throws IOException {
List<String> users = Arrays.asList(userList.split(","));
users.add(owner);
...
}
{code}
Does anyone occurred on this? I think it's an obvious bug but no one report it,
so please tell me if I misunderstanding it. If it's actually a bug here, then
it can be fixed very easy as below:
{code}
List<String> users = new ArraList<String>(Arrays.asList(userList.split(",")));
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)