V6013. Comparison of arrays, strings, collections by reference. Possibly an equality comparison was intended.
V6013 Strings 'contentType' and 'that.getContentType()' are compared by reference. Possibly an equality comparison was intended. CodegenEncoding.java 50
@Getter private String contentType;
@Getter private String style;
....
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
CodegenEncoding that = (CodegenEncoding) o;
return contentType == that.getContentType() && // <=
Objects.equals(headers, that.getHeaders()) &&
style == that.getStyle() && // <=
explode == that.getExplode() &&
allowReserved == that.getAllowReserved() &&
Objects.equals(vendorExtensions, that.vendorExtensions);
}
Similar errors can be found in some other places:
V6013 Strings 'snapshot.getMetadata().getVersion()' and 'version' are compared by reference. Possibly an equality comparison was intended. InMemoryFlowRegistry.java 165
public synchronized void addFlowSnapshot(
final VersionedExternalFlow versionedExternalFlow
) {
final String version;
if (metadata == null) {
bucketId = DEFAULT_BUCKET_ID;
flowId = "flow-" + flowIdGenerator.getAndIncrement();
version = "1";
} else {
bucketId = metadata.getBucketIdentifier();
flowId = metadata.getFlowIdentifier();
version = metadata.getVersion();
}
....
final Optional<VersionedExternalFlow> optionalSnapshot =
snapshots.stream().filter(
snapshot ->
snapshot.getMetadata().getVersion() == version // <=
).findAny();
....
}
V6013 Arrays 'buf' and '_nameCopyBuffer' are compared by reference. Possibly an equality comparison was intended. IOContext.java 234
public void releaseNameCopyBuffer(char[] buf)
{
if (buf != null) {
if (buf != _nameCopyBuffer) { // <=
throw new IllegalArgumentException(....);
}
....
}
}
V6013 Objects 'newValues' and 'values' are compared by reference. Possibly an equality comparison was intended. ConcatFunctionPipe.java 41
private final List values;
....
@Override
public final Pipe resolveAttributes(AttributeResolver resolver) {
List newValues = new ArrayList<>(values.size());
for (Pipe v : values) {
newValues.add(v.resolveAttributes(resolver));
}
if (newValues == values) { // <=
return this;
}
return replaceChildrenSameSize(newValues);
}
V6013 Objects 'docValues' and 'other.docValues' are compared by reference. Possibly an equality comparison was intended. TestFieldCacheSortRandom.java 341
private static class RandomQuery extends Query {
private final long seed;
private float density;
private final List<BytesRef> docValues;
....
private boolean equalsTo(RandomQuery other) {
return seed == other.seed &&
docValues == other.docValues &&
density == other.density;
}
}
V6013 Strings 'action' and 'key.action' are compared by reference. Possibly an equality comparison was intended. UserRequiredActionEntity.java 99
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Key key = (Key) o;
if (action != key.action) return false; // <=
....
}
V6013 Strings 'child.name' and 'name' are compared by reference. Possibly an equality comparison was intended. CProfileNode.java(70)
public CProfileNode getSubNode(String name) {
// Try to find this sub node
CProfileNode child = this.child;
while (child != null) {
if (child.name == name) { // <=
return child;
}
child = child.sibling;
}
// We didn't find it, so add it
....
return node;
}
V6013 Numbers 'displaySize' and 'that.displaySize' are compared by reference. Possibly an equality comparison was intended. ColumnInfo.java(122)
....
private final String table;
private final String name;
private final String esType;
private final Integer displaySize;
....
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
ColumnInfo that = (ColumnInfo) o;
return displaySize == that.displaySize && // <=
Objects.equals(table, that.table) &&
Objects.equals(name, that.name) &&
Objects.equals(esType, that.esType);
}