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")
+    }
+  }
 }

Reply via email to