diff --git a/api/src/main/java/org/apache/iceberg/SortField.java b/api/src/main/java/org/apache/iceberg/SortField.java index 07131b8b9e09..f980d6f8e4de 100644 --- a/api/src/main/java/org/apache/iceberg/SortField.java +++ b/api/src/main/java/org/apache/iceberg/SortField.java @@ -80,7 +80,7 @@ public NullOrder nullOrder() { * @return true if this order satisfies the given order */ public boolean satisfies(SortField other) { - if (this == other) { + if (Objects.equals(this, other)) { return true; } else if (sourceId != other.sourceId || direction != other.direction || nullOrder != other.nullOrder) { return false; diff --git a/api/src/main/java/org/apache/iceberg/types/TypeUtil.java b/api/src/main/java/org/apache/iceberg/types/TypeUtil.java index 11c66f946e20..5185038f66fb 100644 --- a/api/src/main/java/org/apache/iceberg/types/TypeUtil.java +++ b/api/src/main/java/org/apache/iceberg/types/TypeUtil.java @@ -22,6 +22,7 @@ import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.Objects; import java.util.Set; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Predicate; @@ -45,7 +46,7 @@ public static Schema select(Schema schema, Set fieldIds) { Preconditions.checkNotNull(schema, "Schema cannot be null"); Types.StructType result = select(schema.asStruct(), fieldIds); - if (schema.asStruct() == result) { + if (Objects.equals(schema.asStruct(), result)) { return schema; } else if (result != null) { if (schema.getAliases() != null) { diff --git a/core/src/main/java/org/apache/iceberg/avro/BuildAvroProjection.java b/core/src/main/java/org/apache/iceberg/avro/BuildAvroProjection.java index 5a954103aef0..cd934dc4b89d 100644 --- a/core/src/main/java/org/apache/iceberg/avro/BuildAvroProjection.java +++ b/core/src/main/java/org/apache/iceberg/avro/BuildAvroProjection.java @@ -21,6 +21,7 @@ import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.function.Supplier; import org.apache.avro.JsonProperties; import org.apache.avro.Schema; @@ -133,7 +134,7 @@ public Schema.Field field(Schema.Field field, Supplier fieldResult) { try { Schema schema = fieldResult.get(); - if (schema != field.schema() || !expectedName.equals(field.name())) { + if (!Objects.equals(schema, field.schema()) || !expectedName.equals(field.name())) { // add an alias for the field return AvroSchemaUtil.copyField(field, schema, AvroSchemaUtil.makeCompatibleName(expectedName)); } else { @@ -153,7 +154,7 @@ public Schema union(Schema union, Iterable options) { Schema nonNullOriginal = AvroSchemaUtil.fromOption(union); Schema nonNullResult = AvroSchemaUtil.fromOptions(Lists.newArrayList(options)); - if (nonNullOriginal != nonNullResult) { + if (!Objects.equals(nonNullOriginal, nonNullResult)) { return AvroSchemaUtil.toOption(nonNullResult); } @@ -174,7 +175,7 @@ public Schema array(Schema array, Supplier element) { Schema.Field valueProjection = element.get().getField("value"); // element was changed, create a new array - if (valueProjection.schema() != valueField.schema()) { + if (!Objects.equals(valueProjection.schema(), valueField.schema())) { return AvroSchemaUtil.createProjectionMap(keyValueSchema.getFullName(), AvroSchemaUtil.getFieldId(keyField), keyField.name(), keyField.schema(), AvroSchemaUtil.getFieldId(valueField), valueField.name(), valueProjection.schema()); @@ -199,7 +200,7 @@ public Schema array(Schema array, Supplier element) { Schema elementSchema = element.get(); // element was changed, create a new array - if (elementSchema != array.getElementType()) { + if (!Objects.equals(elementSchema, array.getElementType())) { return Schema.createArray(elementSchema); } @@ -223,7 +224,7 @@ public Schema map(Schema map, Supplier value) { Schema valueSchema = value.get(); // element was changed, create a new map - if (valueSchema != map.getValueType()) { + if (!Objects.equals(valueSchema, map.getValueType())) { return Schema.createMap(valueSchema); } diff --git a/core/src/main/java/org/apache/iceberg/avro/PruneColumns.java b/core/src/main/java/org/apache/iceberg/avro/PruneColumns.java index 617607054788..57e2c2709137 100644 --- a/core/src/main/java/org/apache/iceberg/avro/PruneColumns.java +++ b/core/src/main/java/org/apache/iceberg/avro/PruneColumns.java @@ -21,6 +21,7 @@ import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Set; import org.apache.avro.JsonProperties; import org.apache.avro.Schema; @@ -118,7 +119,7 @@ public Schema union(Schema union, List options) { } if (pruned != null) { - if (pruned != AvroSchemaUtil.fromOption(union)) { + if (!Objects.equals(pruned, AvroSchemaUtil.fromOption(union))) { return AvroSchemaUtil.toOption(pruned); } return union; @@ -149,13 +150,14 @@ public Schema array(Schema array, Schema element) { Schema valueProjection = element.getField("value").schema(); // it is possible that key is not selected, and // key schemas can be different if new field ids were assigned to them - if (keyProjectionField != null && keyValue.getField("key").schema() != keyProjectionField.schema()) { + if (keyProjectionField != null && + !Objects.equals(keyValue.getField("key").schema(), keyProjectionField.schema())) { Preconditions.checkState( SchemaNormalization.parsingFingerprint64(keyValue.getField("key").schema()) == SchemaNormalization.parsingFingerprint64(keyProjectionField.schema()), - "Map keys should not be projected"); + "Map keys should not be projected"); return AvroSchemaUtil.createMap(keyId, keyProjectionField.schema(), valueId, valueProjection); - } else if (keyValue.getField("value").schema() != valueProjection) { + } else if (!Objects.equals(keyValue.getField("value").schema(), valueProjection)) { return AvroSchemaUtil.createMap(keyId, keyValue.getField("key").schema(), valueId, valueProjection); } else { return complexMapWithIds(array, keyId, valueId); @@ -171,7 +173,7 @@ public Schema array(Schema array, Schema element) { if (selectedIds.contains(elementId)) { return arrayWithId(array, elementId); } else if (element != null) { - if (element != array.getElementType()) { + if (!Objects.equals(element, array.getElementType())) { // the element must be a projection return arrayWithId(Schema.createArray(element), elementId); } @@ -199,7 +201,7 @@ public Schema map(Schema map, Schema value) { // e.g if we are reading data not written by Iceberg writers return mapWithIds(map, keyId, valueId); } else if (value != null) { - if (value != map.getValueType()) { + if (!Objects.equals(value, map.getValueType())) { // the value must be a projection return mapWithIds(Schema.createMap(value), keyId, valueId); } diff --git a/core/src/main/java/org/apache/iceberg/avro/RemoveIds.java b/core/src/main/java/org/apache/iceberg/avro/RemoveIds.java index 1f929bf53bb6..b9e0d5cd1799 100644 --- a/core/src/main/java/org/apache/iceberg/avro/RemoveIds.java +++ b/core/src/main/java/org/apache/iceberg/avro/RemoveIds.java @@ -21,6 +21,7 @@ import java.util.List; import java.util.Map; +import java.util.Objects; import org.apache.avro.Schema; import org.apache.iceberg.relocated.com.google.common.collect.Lists; @@ -74,7 +75,7 @@ private static Schema.Field copyField(Schema.Field field, Schema newSchema) { Schema.Field copy = new Schema.Field(field.name(), newSchema, field.doc(), field.defaultVal(), field.order()); for (Map.Entry prop : field.getObjectProps().entrySet()) { String key = prop.getKey(); - if (key != AvroSchemaUtil.FIELD_ID_PROP) { + if (!Objects.equals(key, AvroSchemaUtil.FIELD_ID_PROP)) { copy.addProp(key, prop.getValue()); } } diff --git a/core/src/main/java/org/apache/iceberg/avro/SchemaToType.java b/core/src/main/java/org/apache/iceberg/avro/SchemaToType.java index 577fa2330cf9..73c86226007f 100644 --- a/core/src/main/java/org/apache/iceberg/avro/SchemaToType.java +++ b/core/src/main/java/org/apache/iceberg/avro/SchemaToType.java @@ -20,6 +20,7 @@ package org.apache.iceberg.avro; import java.util.List; +import java.util.Objects; import org.apache.avro.LogicalType; import org.apache.avro.LogicalTypes; import org.apache.avro.Schema; @@ -83,7 +84,7 @@ public Type record(Schema record, List names, List fieldTypes) { List fields = record.getFields(); List newFields = Lists.newArrayListWithExpectedSize(fields.size()); - if (root == record) { + if (Objects.equals(root, record)) { this.nextId = 0; } diff --git a/flink/src/main/java/org/apache/iceberg/flink/FlinkTypeToType.java b/flink/src/main/java/org/apache/iceberg/flink/FlinkTypeToType.java index 2cc9771c1969..88276d86d3df 100644 --- a/flink/src/main/java/org/apache/iceberg/flink/FlinkTypeToType.java +++ b/flink/src/main/java/org/apache/iceberg/flink/FlinkTypeToType.java @@ -171,6 +171,7 @@ public Type visit(MapType mapType) { } @Override + @SuppressWarnings("ReferenceEquality") public Type visit(RowType rowType) { List newFields = Lists.newArrayListWithExpectedSize(rowType.getFieldCount()); boolean isRoot = root == rowType; diff --git a/parquet/src/main/java/org/apache/iceberg/parquet/PruneColumns.java b/parquet/src/main/java/org/apache/iceberg/parquet/PruneColumns.java index fa784a532ed5..acdda78c680b 100644 --- a/parquet/src/main/java/org/apache/iceberg/parquet/PruneColumns.java +++ b/parquet/src/main/java/org/apache/iceberg/parquet/PruneColumns.java @@ -131,7 +131,7 @@ public Type map(GroupType map, Type key, Type value) { } else if (value != null) { Integer mapId = getId(map); if (!Objects.equal(value, originalValue)) { - Type mapType = Types.map(map.getRepetition()) + Type mapType = Types.map(map.getRepetition()) .key(originalKey) .value(value) .named(map.getName()); diff --git a/spark/src/main/java/org/apache/iceberg/spark/SparkTableUtil.java b/spark/src/main/java/org/apache/iceberg/spark/SparkTableUtil.java index c9bfd49697a1..29c71a8a56ef 100644 --- a/spark/src/main/java/org/apache/iceberg/spark/SparkTableUtil.java +++ b/spark/src/main/java/org/apache/iceberg/spark/SparkTableUtil.java @@ -372,7 +372,7 @@ public static void importSparkTable(SparkSession spark, TableIdentifier sourceTa try { PartitionSpec spec = SparkSchemaUtil.specForTable(spark, sourceTableIdentWithDB.unquotedString()); - if (spec == PartitionSpec.unpartitioned()) { + if (Objects.equal(spec, PartitionSpec.unpartitioned())) { importUnpartitionedSparkTable(spark, sourceTableIdentWithDB, targetTable); } else { List sourceTablePartitions = getPartitions(spark, sourceTableIdent); diff --git a/spark/src/main/java/org/apache/iceberg/spark/SparkTypeToType.java b/spark/src/main/java/org/apache/iceberg/spark/SparkTypeToType.java index 90c612957d4d..f0b8b2a9762b 100644 --- a/spark/src/main/java/org/apache/iceberg/spark/SparkTypeToType.java +++ b/spark/src/main/java/org/apache/iceberg/spark/SparkTypeToType.java @@ -64,6 +64,7 @@ private int getNextId() { } @Override + @SuppressWarnings("ReferenceEquality") public Type struct(StructType struct, List types) { StructField[] fields = struct.fields(); List newFields = Lists.newArrayListWithExpectedSize(fields.length);