This is an automated email from the ASF dual-hosted git repository.
yhu 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 b42c992c7d4 [ErrorProne] Fix BadInstanceof and enable check (#37753)
b42c992c7d4 is described below
commit b42c992c7d463224f1accd94753872a8c955c871
Author: Radosław Stankiewicz <[email protected]>
AuthorDate: Thu Mar 5 14:28:44 2026 +0100
[ErrorProne] Fix BadInstanceof and enable check (#37753)
---
.../main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy | 1 -
.../flink/translation/functions/ImpulseSourceFunctionTest.java | 3 +--
.../beam/runners/flink/FlinkStreamingTranslationContext.java | 2 +-
.../beam/runners/flink/PipelineTranslationModeOptimizer.java | 2 +-
.../runners/flink/translation/utils/LookupPipelineVisitor.java | 2 +-
.../flink/translation/functions/ImpulseSourceFunctionTest.java | 3 +--
runners/jet/src/main/java/org/apache/beam/runners/jet/Utils.java | 2 +-
.../beam/runners/samza/translation/ParDoBoundMultiTranslator.java | 4 ++--
.../runners/samza/translation/SplittableParDoTranslators.java | 2 +-
.../apache/beam/runners/spark/translation/EvaluationContext.java | 2 +-
.../apache/beam/runners/twister2/Twister2TranslationContext.java | 2 +-
.../apache/beam/sdk/util/construction/PTransformReplacements.java | 4 ++--
.../org/apache/beam/sdk/util/construction/ParDoTranslation.java | 2 +-
.../org/apache/beam/sdk/expansion/service/TransformProvider.java | 2 +-
.../org/apache/beam/sdk/io/gcp/spanner/ReadSpannerSchemaTest.java | 4 ++--
.../org/apache/beam/sdk/io/gcp/spanner/SpannerIOWriteTest.java | 8 ++++----
.../java/org/apache/beam/sdk/nexmark/queries/Query4Model.java | 2 +-
.../java/org/apache/beam/sdk/nexmark/queries/Query6Model.java | 2 +-
18 files changed, 23 insertions(+), 26 deletions(-)
diff --git
a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy
b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy
index c8b174fc9de..06c29c781bc 100644
--- a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy
+++ b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy
@@ -1535,7 +1535,6 @@ class BeamModulePlugin implements Plugin<Project> {
"AutoValueImmutableFields",
"AutoValueSubclassLeaked",
"BadImport",
- "BadInstanceof",
"BigDecimalEquals",
"ComparableType",
"DoNotMockAutoValue",
diff --git
a/runners/flink/2.0/src/test/java/org/apache/beam/runners/flink/translation/functions/ImpulseSourceFunctionTest.java
b/runners/flink/2.0/src/test/java/org/apache/beam/runners/flink/translation/functions/ImpulseSourceFunctionTest.java
index a425b8798aa..0e60951aa0a 100644
---
a/runners/flink/2.0/src/test/java/org/apache/beam/runners/flink/translation/functions/ImpulseSourceFunctionTest.java
+++
b/runners/flink/2.0/src/test/java/org/apache/beam/runners/flink/translation/functions/ImpulseSourceFunctionTest.java
@@ -201,8 +201,7 @@ public class ImpulseSourceFunctionTest {
@Override
public boolean matches(WindowedValue<byte[]> o) {
- return o instanceof WindowedValue
- && Arrays.equals((byte[]) ((WindowedValue) o).getValue(), new byte[]
{});
+ return o != null && Arrays.equals(o.getValue(), new byte[] {});
}
}
}
diff --git
a/runners/flink/src/main/java/org/apache/beam/runners/flink/FlinkStreamingTranslationContext.java
b/runners/flink/src/main/java/org/apache/beam/runners/flink/FlinkStreamingTranslationContext.java
index 24c7b4336e2..3757de5c39a 100644
---
a/runners/flink/src/main/java/org/apache/beam/runners/flink/FlinkStreamingTranslationContext.java
+++
b/runners/flink/src/main/java/org/apache/beam/runners/flink/FlinkStreamingTranslationContext.java
@@ -123,7 +123,7 @@ class FlinkStreamingTranslationContext {
public Map<TupleTag<?>, Coder<?>> getOutputCoders() {
return currentTransform.getOutputs().entrySet().stream()
- .filter(e -> e.getValue() instanceof PCollection)
+ .filter(e -> e.getValue() != null)
.collect(Collectors.toMap(e -> e.getKey(), e -> ((PCollection)
e.getValue()).getCoder()));
}
diff --git
a/runners/flink/src/main/java/org/apache/beam/runners/flink/PipelineTranslationModeOptimizer.java
b/runners/flink/src/main/java/org/apache/beam/runners/flink/PipelineTranslationModeOptimizer.java
index dc55b912882..b70d86201c4 100644
---
a/runners/flink/src/main/java/org/apache/beam/runners/flink/PipelineTranslationModeOptimizer.java
+++
b/runners/flink/src/main/java/org/apache/beam/runners/flink/PipelineTranslationModeOptimizer.java
@@ -74,7 +74,7 @@ class PipelineTranslationModeOptimizer extends
FlinkPipelineTranslator {
private boolean hasUnboundedOutput(AppliedPTransform<?, ?, ?> transform) {
return transform.getOutputs().values().stream()
- .filter(value -> value instanceof PCollection)
+ .filter(value -> value != null)
.map(value -> (PCollection<?>) value)
.anyMatch(collection -> collection.isBounded() == IsBounded.UNBOUNDED);
}
diff --git
a/runners/flink/src/main/java/org/apache/beam/runners/flink/translation/utils/LookupPipelineVisitor.java
b/runners/flink/src/main/java/org/apache/beam/runners/flink/translation/utils/LookupPipelineVisitor.java
index 23e36fb653f..eadf93cfaf9 100644
---
a/runners/flink/src/main/java/org/apache/beam/runners/flink/translation/utils/LookupPipelineVisitor.java
+++
b/runners/flink/src/main/java/org/apache/beam/runners/flink/translation/utils/LookupPipelineVisitor.java
@@ -92,7 +92,7 @@ public class LookupPipelineVisitor extends
Pipeline.PipelineVisitor.Defaults {
@SuppressWarnings("unchecked")
public Map<TupleTag<?>, Coder<?>> getOutputCoders(PTransform<?, ?>
transform) {
return getOutputs(transform).entrySet().stream()
- .filter(e -> e.getValue() instanceof PCollection)
+ .filter(e -> e.getValue() != null)
.collect(Collectors.toMap(Map.Entry::getKey, e -> ((PCollection)
e.getValue()).getCoder()));
}
}
diff --git
a/runners/flink/src/test/java/org/apache/beam/runners/flink/translation/functions/ImpulseSourceFunctionTest.java
b/runners/flink/src/test/java/org/apache/beam/runners/flink/translation/functions/ImpulseSourceFunctionTest.java
index 554c4207b4a..1a6feeebb26 100644
---
a/runners/flink/src/test/java/org/apache/beam/runners/flink/translation/functions/ImpulseSourceFunctionTest.java
+++
b/runners/flink/src/test/java/org/apache/beam/runners/flink/translation/functions/ImpulseSourceFunctionTest.java
@@ -201,8 +201,7 @@ public class ImpulseSourceFunctionTest {
@Override
public boolean matches(WindowedValue<byte[]> o) {
- return o instanceof WindowedValue
- && Arrays.equals((byte[]) ((WindowedValue) o).getValue(), new byte[]
{});
+ return o != null && Arrays.equals(o.getValue(), new byte[] {});
}
}
}
diff --git a/runners/jet/src/main/java/org/apache/beam/runners/jet/Utils.java
b/runners/jet/src/main/java/org/apache/beam/runners/jet/Utils.java
index 06e07d0c6cf..55b79d70e20 100644
--- a/runners/jet/src/main/java/org/apache/beam/runners/jet/Utils.java
+++ b/runners/jet/src/main/java/org/apache/beam/runners/jet/Utils.java
@@ -147,7 +147,7 @@ public class Utils {
static Map<TupleTag<?>, Coder<?>> getOutputValueCoders(
AppliedPTransform<?, ?, ?> appliedTransform) {
return appliedTransform.getOutputs().entrySet().stream()
- .filter(e -> e.getValue() instanceof PCollection)
+ .filter(e -> e.getValue() != null)
.collect(Collectors.toMap(Map.Entry::getKey, e -> ((PCollection)
e.getValue()).getCoder()));
}
diff --git
a/runners/samza/src/main/java/org/apache/beam/runners/samza/translation/ParDoBoundMultiTranslator.java
b/runners/samza/src/main/java/org/apache/beam/runners/samza/translation/ParDoBoundMultiTranslator.java
index 6b4d464b8e7..c5fdb125ad4 100644
---
a/runners/samza/src/main/java/org/apache/beam/runners/samza/translation/ParDoBoundMultiTranslator.java
+++
b/runners/samza/src/main/java/org/apache/beam/runners/samza/translation/ParDoBoundMultiTranslator.java
@@ -113,7 +113,7 @@ class ParDoBoundMultiTranslator<InT, OutT>
final PCollection<? extends InT> input = ctx.getInput(transform);
final Map<TupleTag<?>, Coder<?>> outputCoders =
ctx.getCurrentTransform().getOutputs().entrySet().stream()
- .filter(e -> e.getValue() instanceof PCollection)
+ .filter(e -> e.getValue() != null)
.collect(
Collectors.toMap(e -> e.getKey(), e -> ((PCollection<?>)
e.getValue()).getCoder()));
@@ -145,7 +145,7 @@ class ParDoBoundMultiTranslator<InT, OutT>
final Map.Entry<TupleTag<?>, PCollection<?>> taggedOutput =
outputs.get(index);
tagToIndexMap.put(taggedOutput.getKey(), index);
- if (!(taggedOutput.getValue() instanceof PCollection)) {
+ if (taggedOutput.getValue() == null) {
throw new IllegalArgumentException(
"Expected side output to be PCollection, but was: " +
taggedOutput.getValue());
}
diff --git
a/runners/samza/src/main/java/org/apache/beam/runners/samza/translation/SplittableParDoTranslators.java
b/runners/samza/src/main/java/org/apache/beam/runners/samza/translation/SplittableParDoTranslators.java
index 215c7e1fbcb..2bd6674700c 100644
---
a/runners/samza/src/main/java/org/apache/beam/runners/samza/translation/SplittableParDoTranslators.java
+++
b/runners/samza/src/main/java/org/apache/beam/runners/samza/translation/SplittableParDoTranslators.java
@@ -78,7 +78,7 @@ public class SplittableParDoTranslators {
final Map.Entry<TupleTag<?>, PCollection<?>> taggedOutput =
outputs.get(index);
tagToIndexMap.put(taggedOutput.getKey(), index);
- if (!(taggedOutput.getValue() instanceof PCollection)) {
+ if (taggedOutput.getValue() == null) {
throw new IllegalArgumentException(
"Expected side output to be PCollection, but was: " +
taggedOutput.getValue());
}
diff --git
a/runners/spark/src/main/java/org/apache/beam/runners/spark/translation/EvaluationContext.java
b/runners/spark/src/main/java/org/apache/beam/runners/spark/translation/EvaluationContext.java
index 8adc78af59e..fa3f2a5cccf 100644
---
a/runners/spark/src/main/java/org/apache/beam/runners/spark/translation/EvaluationContext.java
+++
b/runners/spark/src/main/java/org/apache/beam/runners/spark/translation/EvaluationContext.java
@@ -144,7 +144,7 @@ public class EvaluationContext {
public Map<TupleTag<?>, Coder<?>> getOutputCoders() {
return currentTransform.getOutputs().entrySet().stream()
- .filter(e -> e.getValue() instanceof PCollection)
+ .filter(e -> e.getValue() != null)
.collect(Collectors.toMap(Map.Entry::getKey, e -> ((PCollection)
e.getValue()).getCoder()));
}
diff --git
a/runners/twister2/src/main/java/org/apache/beam/runners/twister2/Twister2TranslationContext.java
b/runners/twister2/src/main/java/org/apache/beam/runners/twister2/Twister2TranslationContext.java
index a194d86f746..76d7a867523 100644
---
a/runners/twister2/src/main/java/org/apache/beam/runners/twister2/Twister2TranslationContext.java
+++
b/runners/twister2/src/main/java/org/apache/beam/runners/twister2/Twister2TranslationContext.java
@@ -99,7 +99,7 @@ public abstract class Twister2TranslationContext {
public Map<TupleTag<?>, Coder<?>> getOutputCoders() {
return currentTransform.getOutputs().entrySet().stream()
- .filter(e -> e.getValue() instanceof PCollection)
+ .filter(e -> e.getValue() != null)
.collect(Collectors.toMap(Map.Entry::getKey, e -> ((PCollection)
e.getValue()).getCoder()));
}
diff --git
a/sdks/java/core/src/main/java/org/apache/beam/sdk/util/construction/PTransformReplacements.java
b/sdks/java/core/src/main/java/org/apache/beam/sdk/util/construction/PTransformReplacements.java
index 90f6afdeff8..79a7a0b1214 100644
---
a/sdks/java/core/src/main/java/org/apache/beam/sdk/util/construction/PTransformReplacements.java
+++
b/sdks/java/core/src/main/java/org/apache/beam/sdk/util/construction/PTransformReplacements.java
@@ -52,9 +52,9 @@ public class PTransformReplacements {
mainInput,
input.getValue());
checkArgument(
- input.getValue() instanceof PCollection,
+ input.getValue() != null,
"Unexpected input type %s",
- input.getValue().getClass());
+ input.getValue() == null ? "null" : input.getValue().getClass());
mainInput = (PCollection<T>) input.getValue();
}
}
diff --git
a/sdks/java/core/src/main/java/org/apache/beam/sdk/util/construction/ParDoTranslation.java
b/sdks/java/core/src/main/java/org/apache/beam/sdk/util/construction/ParDoTranslation.java
index d3ff5d1cc71..e8788efb62e 100644
---
a/sdks/java/core/src/main/java/org/apache/beam/sdk/util/construction/ParDoTranslation.java
+++
b/sdks/java/core/src/main/java/org/apache/beam/sdk/util/construction/ParDoTranslation.java
@@ -487,7 +487,7 @@ public class ParDoTranslation {
public static Map<TupleTag<?>, Coder<?>>
getOutputCoders(AppliedPTransform<?, ?, ?> application) {
return application.getOutputs().entrySet().stream()
- .filter(e -> e.getValue() instanceof PCollection)
+ .filter(e -> e.getValue() != null)
.collect(Collectors.toMap(e -> e.getKey(), e -> ((PCollection)
e.getValue()).getCoder()));
}
diff --git
a/sdks/java/expansion-service/src/main/java/org/apache/beam/sdk/expansion/service/TransformProvider.java
b/sdks/java/expansion-service/src/main/java/org/apache/beam/sdk/expansion/service/TransformProvider.java
index 2a3f3290e30..55e159d57ca 100644
---
a/sdks/java/expansion-service/src/main/java/org/apache/beam/sdk/expansion/service/TransformProvider.java
+++
b/sdks/java/expansion-service/src/main/java/org/apache/beam/sdk/expansion/service/TransformProvider.java
@@ -101,7 +101,7 @@ public interface TransformProvider<InputT extends PInput,
OutputT extends POutpu
i++;
}
return indexToPCollection.build();
- } else if (output instanceof POutput) {
+ } else if (output != null) {
// This is needed to support custom output types.
Map<TupleTag<?>, PValue> values = output.expand();
Map<String, PCollection<?>> returnMap = new HashMap<>();
diff --git
a/sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/spanner/ReadSpannerSchemaTest.java
b/sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/spanner/ReadSpannerSchemaTest.java
index ad0dbb659d0..300c657c7f4 100644
---
a/sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/spanner/ReadSpannerSchemaTest.java
+++
b/sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/spanner/ReadSpannerSchemaTest.java
@@ -93,7 +93,7 @@ public class ReadSpannerSchemaTest {
@Override
public boolean matches(Statement argument) {
- if (!(argument instanceof Statement)) {
+ if (argument == null) {
return false;
}
Statement st = (Statement) argument;
@@ -115,7 +115,7 @@ public class ReadSpannerSchemaTest {
@Override
public boolean matches(Statement argument) {
- if (!(argument instanceof Statement)) {
+ if (argument == null) {
return false;
}
Statement st = (Statement) argument;
diff --git
a/sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/spanner/SpannerIOWriteTest.java
b/sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/spanner/SpannerIOWriteTest.java
index 10932162d30..602ac9ae4f1 100644
---
a/sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/spanner/SpannerIOWriteTest.java
+++
b/sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/spanner/SpannerIOWriteTest.java
@@ -213,7 +213,7 @@ public class SpannerIOWriteTest implements Serializable {
@Override
public boolean matches(Statement argument) {
- if (!(argument instanceof Statement)) {
+ if (argument == null) {
return false;
}
Statement st = (Statement) argument;
@@ -236,7 +236,7 @@ public class SpannerIOWriteTest implements Serializable {
@Override
public boolean matches(Statement argument) {
- if (!(argument instanceof Statement)) {
+ if (argument == null) {
return false;
}
Statement st = (Statement) argument;
@@ -259,7 +259,7 @@ public class SpannerIOWriteTest implements Serializable {
@Override
public boolean matches(Statement argument) {
- if (!(argument instanceof Statement)) {
+ if (argument == null) {
return false;
}
Statement st = (Statement) argument;
@@ -1657,7 +1657,7 @@ public class SpannerIOWriteTest implements Serializable {
@Override
public boolean matches(Iterable<Mutation> argument) {
- if (!(argument instanceof Iterable)) {
+ if (argument == null) {
return false;
}
ImmutableSet<Mutation> actual = ImmutableSet.copyOf((Iterable)
argument);
diff --git
a/sdks/java/testing/nexmark/src/main/java/org/apache/beam/sdk/nexmark/queries/Query4Model.java
b/sdks/java/testing/nexmark/src/main/java/org/apache/beam/sdk/nexmark/queries/Query4Model.java
index 89436293428..8fc7912d442 100644
---
a/sdks/java/testing/nexmark/src/main/java/org/apache/beam/sdk/nexmark/queries/Query4Model.java
+++
b/sdks/java/testing/nexmark/src/main/java/org/apache/beam/sdk/nexmark/queries/Query4Model.java
@@ -167,7 +167,7 @@ public class Query4Model extends
NexmarkQueryModel<CategoryPrice> implements Ser
// Find the last (in processing time) reported average price for each
category.
Map<Long, TimestampedValue<CategoryPrice>> finalAverages = new TreeMap<>();
for (TimestampedValue<CategoryPrice> obj : results) {
- Assert.assertTrue("have CategoryPrice", obj.getValue() instanceof
CategoryPrice);
+ Assert.assertTrue("have CategoryPrice", obj.getValue() != null);
CategoryPrice categoryPrice = (CategoryPrice) obj.getValue();
if (categoryPrice.isLast) {
finalAverages.put(
diff --git
a/sdks/java/testing/nexmark/src/main/java/org/apache/beam/sdk/nexmark/queries/Query6Model.java
b/sdks/java/testing/nexmark/src/main/java/org/apache/beam/sdk/nexmark/queries/Query6Model.java
index a3fff668aa7..9d8649bcde6 100644
---
a/sdks/java/testing/nexmark/src/main/java/org/apache/beam/sdk/nexmark/queries/Query6Model.java
+++
b/sdks/java/testing/nexmark/src/main/java/org/apache/beam/sdk/nexmark/queries/Query6Model.java
@@ -123,7 +123,7 @@ public class Query6Model extends
NexmarkQueryModel<SellerPrice> implements Seria
// Find the last (in processing time) reported average price for each
seller.
Map<Long, TimestampedValue<SellerPrice>> finalAverages = new TreeMap<>();
for (TimestampedValue<SellerPrice> obj : results) {
- Assert.assertTrue("have SellerPrice", obj.getValue() instanceof
SellerPrice);
+ Assert.assertTrue("have SellerPrice", obj.getValue() != null);
SellerPrice sellerPrice = (SellerPrice) obj.getValue();
finalAverages.put(sellerPrice.seller, TimestampedValue.of(sellerPrice,
obj.getTimestamp()));
}