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 {
/**