This is an automated email from the ASF dual-hosted git repository.
nihaljain pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase-connectors.git
The following commit(s) were added to refs/heads/master by this push:
new 2087677 HBASE-18570 Fix NPE when HBaseContext was never initialized
(#127)
2087677 is described below
commit 2087677ea776e1fc1aa29f8a0ac378327889cb04
Author: Junegunn Choi <[email protected]>
AuthorDate: Tue Aug 13 01:00:52 2024 +0900
HBASE-18570 Fix NPE when HBaseContext was never initialized (#127)
Signed-off-by: Nihal Jain <[email protected]>
---
.../scala/org/apache/hadoop/hbase/spark/DefaultSource.scala | 2 +-
.../org/apache/hadoop/hbase/spark/DefaultSourceSuite.scala | 12 ++++++++++++
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git
a/spark/hbase-spark/src/main/scala/org/apache/hadoop/hbase/spark/DefaultSource.scala
b/spark/hbase-spark/src/main/scala/org/apache/hadoop/hbase/spark/DefaultSource.scala
index 7005f65..4ad945a 100644
---
a/spark/hbase-spark/src/main/scala/org/apache/hadoop/hbase/spark/DefaultSource.scala
+++
b/spark/hbase-spark/src/main/scala/org/apache/hadoop/hbase/spark/DefaultSource.scala
@@ -137,7 +137,7 @@ case class HBaseRelation(
.getInt(HBaseSparkConf.BULKGET_SIZE,
HBaseSparkConf.DEFAULT_BULKGET_SIZE))
// create or get latest HBaseContext
- val hbaseContext: HBaseContext = if (useHBaseContext) {
+ val hbaseContext: HBaseContext = if (useHBaseContext &&
LatestHBaseContextCache.latest != null) {
LatestHBaseContextCache.latest
} else {
val hadoopConfig = sqlContext.sparkContext.hadoopConfiguration
diff --git
a/spark/hbase-spark/src/test/scala/org/apache/hadoop/hbase/spark/DefaultSourceSuite.scala
b/spark/hbase-spark/src/test/scala/org/apache/hadoop/hbase/spark/DefaultSourceSuite.scala
index 60b5d3c..cf92d08 100644
---
a/spark/hbase-spark/src/test/scala/org/apache/hadoop/hbase/spark/DefaultSourceSuite.scala
+++
b/spark/hbase-spark/src/test/scala/org/apache/hadoop/hbase/spark/DefaultSourceSuite.scala
@@ -1359,4 +1359,16 @@ class DefaultSourceSuite
}
}
}
+
+ test("NPE should not be thrown even when HBaseContext was never
initialized") {
+ LatestHBaseContextCache.latest = null
+ val catalog = s"""{"table":{"namespace":"default", "name":"table"},
+ | "rowkey":"key",
+ | "columns":{"c1":{"cf":"d", "col":"c1",
"type":"string"}}}""".stripMargin
+ try {
+ HBaseRelation(Map(HBaseTableCatalog.tableCatalog -> catalog),
None)(sqlContext)
+ } catch {
+ case _: NullPointerException => fail("Unexpected NPE thrown")
+ }
+ }
}