You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ni...@apache.org on 2024/08/12 16:00:57 UTC
(hbase-connectors) branch master updated: HBASE-18570 Fix NPE when HBaseContext was never initialized (#127)
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 <ju...@gmail.com>
AuthorDate: Tue Aug 13 01:00:52 2024 +0900
HBASE-18570 Fix NPE when HBaseContext was never initialized (#127)
Signed-off-by: Nihal Jain <ni...@apache.org>
---
.../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")
+ }
+ }
}