Details
-
Bug
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
None
-
None
-
Reviewed
Description
2017-11-16 00:43:41,204 INFO [main] mapreduce.IntegrationTestImportTsv: Running test testGenerateAndLoad. Exception in thread "main" java.lang.NullPointerException at org.apache.hadoop.hbase.TableName.valueOf(TableName.java:461) at org.apache.hadoop.hbase.mapreduce.IntegrationTestImportTsv.testGenerateAndLoad(IntegrationTestImportTsv.java:189) at org.apache.hadoop.hbase.mapreduce.IntegrationTestImportTsv.run(IntegrationTestImportTsv.java:229) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76) at org.apache.hadoop.hbase.mapreduce.IntegrationTestImportTsv.main(IntegrationTestImportTsv.java:239)
(Potential line-number skew)
@Test public void testGenerateAndLoad() throws Exception { LOG.info("Running test testGenerateAndLoad."); final TableName table = TableName.valueOf(name.getMethodName());
The JUnit framework sets the test method name inside of the JUnit Rule. When we invoke the test directly (ala hbase org.apache.hadoop.hbase.mapreduce.IntegrationTestImportTsv), this getMethodName() returns null and we get the above stacktrace.
Should make a pass over the ITs with main methods and Rule's to make sure we don't have this lurking. Another alternative is to just remove the main methods and just force use of IntegrationTestsDriver instead.