This is an automated email from the ASF dual-hosted git repository.

stankiewicz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/master by this push:
     new d382b050463 [#20501] Remove nullness suppressions from sql extensions 
module (#40317)
d382b050463 is described below

commit d382b05046330d0bf5043a0db227adfbad14864d
Author: Nitin Ware <[email protected]>
AuthorDate: Tue Sep 29 08:54:53 2026 -0500

    [#20501] Remove nullness suppressions from sql extensions module (#40317)
    
    Remove blanket @SuppressWarnings("nullness") from ParquetTable and the
    stale nullness key from TestTableUtils. Guard ParquetTable's nullable
    table.getLocation() reads with checkArgumentNotNull at the three call
    sites. Keep the narrow, documented one-statement suppression in
    BeamSqlEnv on Field.get(null) (the checker's JDK stub marks the receiver
    @NonNull).
---
 .../org/apache/beam/sdk/extensions/sql/impl/BeamSqlEnv.java   |  2 ++
 .../extensions/sql/meta/provider/parquet/ParquetTable.java    | 11 +++++++----
 .../sdk/extensions/sql/meta/provider/test/TestTableUtils.java |  2 +-
 3 files changed, 10 insertions(+), 5 deletions(-)

diff --git 
a/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/BeamSqlEnv.java
 
b/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/BeamSqlEnv.java
index 18c3a8ead1e..23067438161 100644
--- 
a/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/BeamSqlEnv.java
+++ 
b/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/BeamSqlEnv.java
@@ -339,6 +339,8 @@ public class BeamSqlEnv {
       // this reflective access.
       QueryPlanner.Factory factory;
       try {
+        // Field.get(null) reads a static field; the checker's annotated JDK 
stub marks the
+        // receiver as @NonNull, so this narrow suppression is required.
         // See 
https://github.com/typetools/jdk/pull/235#pullrequestreview-3400922783
         @SuppressWarnings("nullness")
         Object queryPlannerFactoryObj =
diff --git 
a/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/meta/provider/parquet/ParquetTable.java
 
b/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/meta/provider/parquet/ParquetTable.java
index bdbb48bf1b7..981870c7c57 100644
--- 
a/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/meta/provider/parquet/ParquetTable.java
+++ 
b/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/meta/provider/parquet/ParquetTable.java
@@ -17,6 +17,8 @@
  */
 package org.apache.beam.sdk.extensions.sql.meta.provider.parquet;
 
+import static org.apache.beam.sdk.util.Preconditions.checkArgumentNotNull;
+
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
@@ -43,7 +45,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @Internal
-@SuppressWarnings({"nullness"})
 class ParquetTable extends SchemaBaseBeamTable implements Serializable {
   private static final Logger LOG = 
LoggerFactory.getLogger(ParquetTable.class);
 
@@ -57,7 +58,7 @@ class ParquetTable extends SchemaBaseBeamTable implements 
Serializable {
   @Override
   public PCollection<Row> buildIOReader(PBegin begin) {
     final Schema schema = AvroUtils.toAvroSchema(table.getSchema());
-    String filePattern = resolveFilePattern(table.getLocation());
+    String filePattern = 
resolveFilePattern(checkArgumentNotNull(table.getLocation()));
     Read read = ParquetIO.read(schema).withBeamSchemas(true).from(filePattern);
     return begin.apply("ParquetIORead", read).apply("ToRows", 
Convert.toRows());
   }
@@ -66,7 +67,7 @@ class ParquetTable extends SchemaBaseBeamTable implements 
Serializable {
   public PCollection<Row> buildIOReader(
       PBegin begin, BeamSqlTableFilter filters, List<String> fieldNames) {
     final Schema schema = AvroUtils.toAvroSchema(table.getSchema());
-    String filePattern = resolveFilePattern(table.getLocation());
+    String filePattern = 
resolveFilePattern(checkArgumentNotNull(table.getLocation()));
     Read read = ParquetIO.read(schema).withBeamSchemas(true).from(filePattern);
     if (!fieldNames.isEmpty()) {
       Schema projectionSchema = projectSchema(schema, fieldNames);
@@ -112,7 +113,9 @@ class ParquetTable extends SchemaBaseBeamTable implements 
Serializable {
         .apply("ToGenericRecords", Convert.to(GenericRecord.class))
         .apply(
             "ParquetIOWrite",
-            
FileIO.<GenericRecord>write().via(ParquetIO.sink(schema)).to(table.getLocation()));
+            FileIO.<GenericRecord>write()
+                .via(ParquetIO.sink(schema))
+                .to(checkArgumentNotNull(table.getLocation())));
   }
 
   @Override
diff --git 
a/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/meta/provider/test/TestTableUtils.java
 
b/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/meta/provider/test/TestTableUtils.java
index 9bf7aebf071..db95efd25c2 100644
--- 
a/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/meta/provider/test/TestTableUtils.java
+++ 
b/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/meta/provider/test/TestTableUtils.java
@@ -29,7 +29,7 @@ import org.apache.beam.sdk.values.Row;
 import 
org.apache.beam.vendor.guava.v32_1_2_jre.com.google.common.collect.Lists;
 
 /** Utility functions for mock classes. */
-@SuppressWarnings({"keyfor", "nullness"}) // 
TODO(https://github.com/apache/beam/issues/20497)
+@SuppressWarnings({"keyfor"})
 public class TestTableUtils {
 
   /**

Reply via email to