From ef013b99d41ef501f64c884c393406e9182625dd Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 16 Aug 2022 13:01:14 +0200 Subject: [PATCH] Use @Serial tag With Java 17 we can make serialization-related components explicitly tagged so their shape is enforced. Sprinkle java.io.Serial around. Change-Id: Ibf0ce6e19f8433b3274e05ad3f56d86616146e78 Signed-off-by: Robert Varga --- .../mdsal/binding/api/DataTreeIdentifier.java | 2 ++ .../api/NotificationRejectedException.java | 3 +++ .../api/TransactionChainClosedException.java | 3 +++ .../api/query/QueryStructureException.java | 2 ++ .../codec/api/IncorrectNestingException.java | 2 ++ .../MissingClassInLoadingStrategyException.java | 2 ++ .../dom/codec/api/MissingSchemaException.java | 2 ++ .../api/MissingSchemaForClassException.java | 4 +++- .../AlphabeticallyTypeMemberComparator.java | 2 ++ .../api/generator/ByTypeMemberComparator.java | 3 +++ .../mdsal/binding/model/api/JavaTypeName.java | 8 +++++++- .../mdsal/binding/spec/util/NodeKey.java | 17 +++-------------- .../yang/binding/InstanceIdentifier.java | 8 ++++++++ .../yang/binding/InstanceIdentifierV3.java | 3 +++ .../yang/binding/KeyedInstanceIdentifier.java | 4 ++++ .../yang/binding/KeyedInstanceIdentifierV2.java | 3 +++ .../yang/binding/test/mock/NodeChildKey.java | 17 +++-------------- .../yang/binding/test/mock/NodeKey.java | 17 +++-------------- .../api/DataStoreUnavailableException.java | 12 ++++++------ .../api/DataValidationFailedException.java | 2 ++ .../api/OptimisticLockFailedException.java | 2 ++ .../mdsal/common/api/ReadFailedException.java | 2 ++ .../api/TransactionCommitDeadlockException.java | 2 ++ .../api/TransactionCommitFailedException.java | 11 ++++------- .../schema/osgi/impl/YangModuleInfoScanner.java | 2 ++ .../mdsal/dom/spi/DefaultDOMRpcResult.java | 2 ++ .../SnapshotBackedWriteTransactionTest.java | 2 ++ .../mdsal/eos/binding/api/Entity.java | 2 ++ .../CandidateAlreadyRegisteredException.java | 2 ++ .../mdsal/eos/common/api/GenericEntity.java | 4 +++- .../mdsal/eos/common/api/GenericEntityTest.java | 3 +++ .../mdsal/eos/dom/api/DOMEntity.java | 2 ++ .../replicate/netty/KeepaliveException.java | 3 +++ .../common/api/ServiceGroupIdentifier.java | 2 ++ .../singleton/dom/impl/util/TestEntity.java | 2 ++ .../dom/impl/util/TestInstanceIdentifier.java | 3 ++- 36 files changed, 103 insertions(+), 59 deletions(-) diff --git a/binding/mdsal-binding-api/src/main/java/org/opendaylight/mdsal/binding/api/DataTreeIdentifier.java b/binding/mdsal-binding-api/src/main/java/org/opendaylight/mdsal/binding/api/DataTreeIdentifier.java index c0c0b64eea..b2a92f9103 100644 --- a/binding/mdsal-binding-api/src/main/java/org/opendaylight/mdsal/binding/api/DataTreeIdentifier.java +++ b/binding/mdsal-binding-api/src/main/java/org/opendaylight/mdsal/binding/api/DataTreeIdentifier.java @@ -10,6 +10,7 @@ package org.opendaylight.mdsal.binding.api; import static java.util.Objects.requireNonNull; import com.google.common.base.MoreObjects; +import java.io.Serial; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yangtools.concepts.HierarchicalIdentifier; @@ -21,6 +22,7 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; * data store type and the instance identifier of the root node. */ public final class DataTreeIdentifier implements HierarchicalIdentifier> { + @Serial private static final long serialVersionUID = 1L; private final @NonNull InstanceIdentifier rootIdentifier; diff --git a/binding/mdsal-binding-api/src/main/java/org/opendaylight/mdsal/binding/api/NotificationRejectedException.java b/binding/mdsal-binding-api/src/main/java/org/opendaylight/mdsal/binding/api/NotificationRejectedException.java index 2517e87f8a..e592326ae6 100644 --- a/binding/mdsal-binding-api/src/main/java/org/opendaylight/mdsal/binding/api/NotificationRejectedException.java +++ b/binding/mdsal-binding-api/src/main/java/org/opendaylight/mdsal/binding/api/NotificationRejectedException.java @@ -7,6 +7,8 @@ */ package org.opendaylight.mdsal.binding.api; +import java.io.Serial; + /** * This exception indicates that given notification can not be processed by corresponding mechanism. * More info can be provided in message. @@ -15,6 +17,7 @@ package org.opendaylight.mdsal.binding.api; * Expected use: {@link NotificationPublishService} */ public class NotificationRejectedException extends Exception { + @Serial private static final long serialVersionUID = 1L; public NotificationRejectedException(final String message) { diff --git a/binding/mdsal-binding-api/src/main/java/org/opendaylight/mdsal/binding/api/TransactionChainClosedException.java b/binding/mdsal-binding-api/src/main/java/org/opendaylight/mdsal/binding/api/TransactionChainClosedException.java index 02b8d47108..6aa0c8a88e 100644 --- a/binding/mdsal-binding-api/src/main/java/org/opendaylight/mdsal/binding/api/TransactionChainClosedException.java +++ b/binding/mdsal-binding-api/src/main/java/org/opendaylight/mdsal/binding/api/TransactionChainClosedException.java @@ -7,11 +7,14 @@ */ package org.opendaylight.mdsal.binding.api; +import java.io.Serial; + /** * Exception thrown when an attempt is made to open a new transaction in a closed * chain. */ public final class TransactionChainClosedException extends IllegalStateException { + @Serial private static final long serialVersionUID = 1L; public TransactionChainClosedException(final String message) { diff --git a/binding/mdsal-binding-api/src/main/java/org/opendaylight/mdsal/binding/api/query/QueryStructureException.java b/binding/mdsal-binding-api/src/main/java/org/opendaylight/mdsal/binding/api/query/QueryStructureException.java index ab8ccbbf32..70db948356 100644 --- a/binding/mdsal-binding-api/src/main/java/org/opendaylight/mdsal/binding/api/query/QueryStructureException.java +++ b/binding/mdsal-binding-api/src/main/java/org/opendaylight/mdsal/binding/api/query/QueryStructureException.java @@ -8,6 +8,7 @@ package org.opendaylight.mdsal.binding.api.query; import com.google.common.annotations.Beta; +import java.io.Serial; /** * Exception reported when the proposed query has a structural problem. This may be either a mismatch with underlying @@ -15,6 +16,7 @@ import com.google.common.annotations.Beta; */ @Beta public class QueryStructureException extends IllegalStateException { + @Serial private static final long serialVersionUID = 1L; public QueryStructureException(final String message) { diff --git a/binding/mdsal-binding-dom-codec-api/src/main/java/org/opendaylight/mdsal/binding/dom/codec/api/IncorrectNestingException.java b/binding/mdsal-binding-dom-codec-api/src/main/java/org/opendaylight/mdsal/binding/dom/codec/api/IncorrectNestingException.java index 66ff0f8bd1..995418824e 100644 --- a/binding/mdsal-binding-dom-codec-api/src/main/java/org/opendaylight/mdsal/binding/dom/codec/api/IncorrectNestingException.java +++ b/binding/mdsal-binding-dom-codec-api/src/main/java/org/opendaylight/mdsal/binding/dom/codec/api/IncorrectNestingException.java @@ -8,6 +8,7 @@ package org.opendaylight.mdsal.binding.dom.codec.api; import com.google.common.annotations.Beta; +import java.io.Serial; /** * Thrown where incorrect nesting of data structures was detected and was caused by user. This typically indicates @@ -16,6 +17,7 @@ import com.google.common.annotations.Beta; */ @Beta public class IncorrectNestingException extends IllegalArgumentException { + @Serial private static final long serialVersionUID = 1L; public IncorrectNestingException(final String message) { diff --git a/binding/mdsal-binding-dom-codec-api/src/main/java/org/opendaylight/mdsal/binding/dom/codec/api/MissingClassInLoadingStrategyException.java b/binding/mdsal-binding-dom-codec-api/src/main/java/org/opendaylight/mdsal/binding/dom/codec/api/MissingClassInLoadingStrategyException.java index 60b5c05528..17ffdfa8b8 100644 --- a/binding/mdsal-binding-dom-codec-api/src/main/java/org/opendaylight/mdsal/binding/dom/codec/api/MissingClassInLoadingStrategyException.java +++ b/binding/mdsal-binding-dom-codec-api/src/main/java/org/opendaylight/mdsal/binding/dom/codec/api/MissingClassInLoadingStrategyException.java @@ -8,6 +8,7 @@ package org.opendaylight.mdsal.binding.dom.codec.api; import com.google.common.annotations.Beta; +import java.io.Serial; /** * Thrown when user schema for supplied binding class is available in present schema context, but @@ -16,6 +17,7 @@ import com.google.common.annotations.Beta; */ @Beta public class MissingClassInLoadingStrategyException extends MissingSchemaException { + @Serial private static final long serialVersionUID = 1L; public MissingClassInLoadingStrategyException(final String msg, final Throwable cause) { diff --git a/binding/mdsal-binding-dom-codec-api/src/main/java/org/opendaylight/mdsal/binding/dom/codec/api/MissingSchemaException.java b/binding/mdsal-binding-dom-codec-api/src/main/java/org/opendaylight/mdsal/binding/dom/codec/api/MissingSchemaException.java index 911bd5d4b5..402379c441 100644 --- a/binding/mdsal-binding-dom-codec-api/src/main/java/org/opendaylight/mdsal/binding/dom/codec/api/MissingSchemaException.java +++ b/binding/mdsal-binding-dom-codec-api/src/main/java/org/opendaylight/mdsal/binding/dom/codec/api/MissingSchemaException.java @@ -8,12 +8,14 @@ package org.opendaylight.mdsal.binding.dom.codec.api; import com.google.common.annotations.Beta; +import java.io.Serial; /** * Thrown when codec was used with data which are not modeled and available in schema used by codec. */ @Beta public class MissingSchemaException extends IllegalArgumentException { + @Serial private static final long serialVersionUID = 1L; public MissingSchemaException(final String msg) { diff --git a/binding/mdsal-binding-dom-codec-api/src/main/java/org/opendaylight/mdsal/binding/dom/codec/api/MissingSchemaForClassException.java b/binding/mdsal-binding-dom-codec-api/src/main/java/org/opendaylight/mdsal/binding/dom/codec/api/MissingSchemaForClassException.java index 31d8967571..f8707fde09 100644 --- a/binding/mdsal-binding-dom-codec-api/src/main/java/org/opendaylight/mdsal/binding/dom/codec/api/MissingSchemaForClassException.java +++ b/binding/mdsal-binding-dom-codec-api/src/main/java/org/opendaylight/mdsal/binding/dom/codec/api/MissingSchemaForClassException.java @@ -11,6 +11,7 @@ import static java.util.Objects.requireNonNull; import com.google.common.annotations.Beta; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; +import java.io.Serial; import org.eclipse.jdt.annotation.Nullable; /** @@ -21,6 +22,7 @@ import org.eclipse.jdt.annotation.Nullable; */ @Beta public final class MissingSchemaForClassException extends MissingSchemaException { + @Serial private static final long serialVersionUID = 1L; @SuppressFBWarnings(value = "SE_TRANSIENT_FIELD_NOT_RESTORED", justification = "Documented in API contract") @@ -28,7 +30,7 @@ public final class MissingSchemaForClassException extends MissingSchemaException public MissingSchemaForClassException(final Class clz) { super(String.format("Schema is not available for %s", clz)); - this.bindingClass = requireNonNull(clz); + bindingClass = requireNonNull(clz); } public @Nullable Class getBindingClass() { diff --git a/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/AlphabeticallyTypeMemberComparator.java b/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/AlphabeticallyTypeMemberComparator.java index a3f8c86174..e0fd371187 100644 --- a/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/AlphabeticallyTypeMemberComparator.java +++ b/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/AlphabeticallyTypeMemberComparator.java @@ -7,6 +7,7 @@ */ package org.opendaylight.mdsal.binding.java.api.generator; +import java.io.Serial; import java.io.Serializable; import java.util.Comparator; import org.opendaylight.mdsal.binding.model.api.TypeMember; @@ -18,6 +19,7 @@ import org.opendaylight.mdsal.binding.model.api.TypeMember; * @param TypeMember type */ public class AlphabeticallyTypeMemberComparator implements Comparator, Serializable { + @Serial private static final long serialVersionUID = 1L; @Override diff --git a/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/ByTypeMemberComparator.java b/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/ByTypeMemberComparator.java index c28741b860..213bbcbc94 100644 --- a/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/ByTypeMemberComparator.java +++ b/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/ByTypeMemberComparator.java @@ -8,6 +8,7 @@ package org.opendaylight.mdsal.binding.java.api.generator; import com.google.common.annotations.Beta; +import java.io.Serial; import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; @@ -36,6 +37,7 @@ import org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition; */ @Beta final class ByTypeMemberComparator implements Comparator, Serializable { + @Serial private static final long serialVersionUID = 1L; /** @@ -110,6 +112,7 @@ final class ByTypeMemberComparator implements Comparator localNameComponents() { - final List ret = new ArrayList<>(); + final var ret = new ArrayList(); ret.add(simpleName()); return ret; } @@ -169,6 +173,7 @@ public abstract sealed class JavaTypeName implements Identifier, Immutable { } private static final class Nested extends Reference { + @Serial private static final long serialVersionUID = 1L; private final Reference immediatelyEnclosingClass; @@ -222,6 +227,7 @@ public abstract sealed class JavaTypeName implements Identifier, Immutable { } private static final Logger LOG = LoggerFactory.getLogger(JavaTypeName.class); + @Serial private static final long serialVersionUID = 1L; private final String simpleName; diff --git a/binding/mdsal-binding-spec-util/src/test/java/org/opendaylight/mdsal/binding/spec/util/NodeKey.java b/binding/mdsal-binding-spec-util/src/test/java/org/opendaylight/mdsal/binding/spec/util/NodeKey.java index cfe9e773e6..e0cdc74bc3 100644 --- a/binding/mdsal-binding-spec-util/src/test/java/org/opendaylight/mdsal/binding/spec/util/NodeKey.java +++ b/binding/mdsal-binding-spec-util/src/test/java/org/opendaylight/mdsal/binding/spec/util/NodeKey.java @@ -7,9 +7,11 @@ */ package org.opendaylight.mdsal.binding.spec.util; +import java.io.Serial; import org.opendaylight.yangtools.yang.binding.Identifier; public class NodeKey implements Identifier { + @Serial private static final long serialVersionUID = 1L; private final int id; @@ -29,19 +31,6 @@ public class NodeKey implements Identifier { @Override public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - NodeKey other = (NodeKey) obj; - if (id != other.id) { - return false; - } - return true; + return this == obj || obj != null && getClass() == obj.getClass() && id == ((NodeKey) obj).id; } } diff --git a/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/InstanceIdentifier.java b/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/InstanceIdentifier.java index 216ec21fc4..48b199d678 100644 --- a/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/InstanceIdentifier.java +++ b/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/InstanceIdentifier.java @@ -19,6 +19,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.ObjectStreamException; +import java.io.Serial; import java.io.Serializable; import java.util.Collections; import java.util.Iterator; @@ -63,6 +64,7 @@ import org.opendaylight.yangtools.util.HashCodeBuilder; */ public class InstanceIdentifier implements HierarchicalIdentifier> { + @Serial private static final long serialVersionUID = 3L; /* @@ -661,6 +663,7 @@ public class InstanceIdentifier } private abstract static class AbstractPathArgument implements PathArgument, Serializable { + @Serial private static final long serialVersionUID = 1L; private final @NonNull Class type; @@ -722,6 +725,7 @@ public class InstanceIdentifier * @param Item type */ public static class Item extends AbstractPathArgument { + @Serial private static final long serialVersionUID = 1L; Item(final Class type) { @@ -771,6 +775,7 @@ public class InstanceIdentifier */ public static class IdentifiableItem & DataObject, T extends Identifier> extends AbstractPathArgument { + @Serial private static final long serialVersionUID = 1L; private final @NonNull T key; @@ -831,6 +836,7 @@ public class InstanceIdentifier private static final class CaseItem & DataObject, T extends ChildOf> extends Item { + @Serial private static final long serialVersionUID = 1L; private final Class caseType; @@ -848,6 +854,7 @@ public class InstanceIdentifier private static final class CaseIdentifiableItem & DataObject, T extends ChildOf & Identifiable, K extends Identifier> extends IdentifiableItem { + @Serial private static final long serialVersionUID = 1L; private final Class caseType; @@ -953,6 +960,7 @@ public class InstanceIdentifier @NonNull InstanceIdentifier build(); } + @Serial private Object writeReplace() throws ObjectStreamException { return new InstanceIdentifierV3<>(this); } diff --git a/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/InstanceIdentifierV3.java b/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/InstanceIdentifierV3.java index 7f6ce11e55..80fcf14441 100644 --- a/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/InstanceIdentifierV3.java +++ b/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/InstanceIdentifierV3.java @@ -14,12 +14,14 @@ import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; import java.io.ObjectStreamException; +import java.io.Serial; import java.util.ArrayList; import java.util.List; import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument; class InstanceIdentifierV3 implements Externalizable { + @Serial private static final long serialVersionUID = 3L; private @Nullable Iterable pathArguments; @@ -80,6 +82,7 @@ class InstanceIdentifierV3 implements Externalizable { pathArguments = ImmutableList.copyOf(args); } + @Serial Object readResolve() throws ObjectStreamException { return new InstanceIdentifier<>(targetType, pathArguments, wildcarded, hash); } diff --git a/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/KeyedInstanceIdentifier.java b/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/KeyedInstanceIdentifier.java index 38b61c39ac..eef3d0ad67 100644 --- a/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/KeyedInstanceIdentifier.java +++ b/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/KeyedInstanceIdentifier.java @@ -8,6 +8,7 @@ package org.opendaylight.yangtools.yang.binding; import java.io.ObjectStreamException; +import java.io.Serial; import org.eclipse.jdt.annotation.NonNull; /** @@ -18,7 +19,9 @@ import org.eclipse.jdt.annotation.NonNull; */ public class KeyedInstanceIdentifier & DataObject, K extends Identifier> extends InstanceIdentifier { + @Serial private static final long serialVersionUID = 2L; + private final K key; KeyedInstanceIdentifier(final Class<@NonNull T> type, final Iterable pathArguments, @@ -55,6 +58,7 @@ public class KeyedInstanceIdentifier & DataObject, K e return key == null != (kii.key == null); } + @Serial private Object writeReplace() throws ObjectStreamException { return new KeyedInstanceIdentifierV2<>(this); } diff --git a/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/KeyedInstanceIdentifierV2.java b/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/KeyedInstanceIdentifierV2.java index a7f2546dd8..330a0f220b 100644 --- a/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/KeyedInstanceIdentifierV2.java +++ b/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/KeyedInstanceIdentifierV2.java @@ -11,10 +11,12 @@ import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; import java.io.ObjectStreamException; +import java.io.Serial; import org.eclipse.jdt.annotation.Nullable; final class KeyedInstanceIdentifierV2 & DataObject, K extends Identifier> extends InstanceIdentifierV3 { + @Serial private static final long serialVersionUID = 2L; private @Nullable K key; @@ -41,6 +43,7 @@ final class KeyedInstanceIdentifierV2 & DataObject, K key = (K) in.readObject(); } + @Serial @Override Object readResolve() throws ObjectStreamException { return new KeyedInstanceIdentifier<>(getTargetType(), getPathArguments(), isWildcarded(), getHash(), key); diff --git a/binding/yang-binding/src/test/java/org/opendaylight/yangtools/yang/binding/test/mock/NodeChildKey.java b/binding/yang-binding/src/test/java/org/opendaylight/yangtools/yang/binding/test/mock/NodeChildKey.java index c98b3eb221..cb44a6af1d 100644 --- a/binding/yang-binding/src/test/java/org/opendaylight/yangtools/yang/binding/test/mock/NodeChildKey.java +++ b/binding/yang-binding/src/test/java/org/opendaylight/yangtools/yang/binding/test/mock/NodeChildKey.java @@ -7,9 +7,11 @@ */ package org.opendaylight.yangtools.yang.binding.test.mock; +import java.io.Serial; import org.opendaylight.yangtools.yang.binding.Identifier; public class NodeChildKey implements Identifier { + @Serial private static final long serialVersionUID = 1L; private final int id; @@ -29,19 +31,6 @@ public class NodeChildKey implements Identifier { @Override public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - NodeChildKey other = (NodeChildKey) obj; - if (id != other.id) { - return false; - } - return true; + return this == obj || obj != null && getClass() == obj.getClass() && id == ((NodeChildKey) obj).id; } } diff --git a/binding/yang-binding/src/test/java/org/opendaylight/yangtools/yang/binding/test/mock/NodeKey.java b/binding/yang-binding/src/test/java/org/opendaylight/yangtools/yang/binding/test/mock/NodeKey.java index dc61915d13..cbe3701f54 100644 --- a/binding/yang-binding/src/test/java/org/opendaylight/yangtools/yang/binding/test/mock/NodeKey.java +++ b/binding/yang-binding/src/test/java/org/opendaylight/yangtools/yang/binding/test/mock/NodeKey.java @@ -7,9 +7,11 @@ */ package org.opendaylight.yangtools.yang.binding.test.mock; +import java.io.Serial; import org.opendaylight.yangtools.yang.binding.Identifier; public class NodeKey implements Identifier { + @Serial private static final long serialVersionUID = 1L; private final int id; @@ -29,19 +31,6 @@ public class NodeKey implements Identifier { @Override public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - NodeKey other = (NodeKey) obj; - if (id != other.id) { - return false; - } - return true; + return this == obj || obj != null && getClass() == obj.getClass() && id == ((NodeKey) obj).id; } } diff --git a/common/mdsal-common-api/src/main/java/org/opendaylight/mdsal/common/api/DataStoreUnavailableException.java b/common/mdsal-common-api/src/main/java/org/opendaylight/mdsal/common/api/DataStoreUnavailableException.java index 748d89aeae..44d57575de 100644 --- a/common/mdsal-common-api/src/main/java/org/opendaylight/mdsal/common/api/DataStoreUnavailableException.java +++ b/common/mdsal-common-api/src/main/java/org/opendaylight/mdsal/common/api/DataStoreUnavailableException.java @@ -7,17 +7,17 @@ */ package org.opendaylight.mdsal.common.api; +import java.io.Serial; + /** - * This exception occurs if the datastore is temporarily unavailable. - * A retry of the transaction may succeed after a period of time + * This exception occurs if the datastore is temporarily unavailable. A retry of the transaction may succeed after + * a period of time. */ - public class DataStoreUnavailableException extends Exception { + @Serial private static final long serialVersionUID = 1L; - public DataStoreUnavailableException(String message, Throwable cause) { + public DataStoreUnavailableException(final String message, final Throwable cause) { super(message, cause); } - - } diff --git a/common/mdsal-common-api/src/main/java/org/opendaylight/mdsal/common/api/DataValidationFailedException.java b/common/mdsal-common-api/src/main/java/org/opendaylight/mdsal/common/api/DataValidationFailedException.java index 526ba6d028..f63f04e6a7 100644 --- a/common/mdsal-common-api/src/main/java/org/opendaylight/mdsal/common/api/DataValidationFailedException.java +++ b/common/mdsal-common-api/src/main/java/org/opendaylight/mdsal/common/api/DataValidationFailedException.java @@ -9,6 +9,7 @@ package org.opendaylight.mdsal.common.api; import static java.util.Objects.requireNonNull; +import java.io.Serial; import org.opendaylight.yangtools.concepts.HierarchicalIdentifier; import org.opendaylight.yangtools.yang.common.ErrorTag; import org.opendaylight.yangtools.yang.common.ErrorType; @@ -23,6 +24,7 @@ import org.opendaylight.yangtools.yang.common.RpcResultBuilder; * by this transaction is invalid. */ public class DataValidationFailedException extends TransactionCommitFailedException { + @Serial private static final long serialVersionUID = 1L; private final HierarchicalIdentifier path; diff --git a/common/mdsal-common-api/src/main/java/org/opendaylight/mdsal/common/api/OptimisticLockFailedException.java b/common/mdsal-common-api/src/main/java/org/opendaylight/mdsal/common/api/OptimisticLockFailedException.java index 037777a6fa..7353100280 100644 --- a/common/mdsal-common-api/src/main/java/org/opendaylight/mdsal/common/api/OptimisticLockFailedException.java +++ b/common/mdsal-common-api/src/main/java/org/opendaylight/mdsal/common/api/OptimisticLockFailedException.java @@ -7,6 +7,7 @@ */ package org.opendaylight.mdsal.common.api; +import java.io.Serial; import org.opendaylight.yangtools.yang.common.ErrorTag; import org.opendaylight.yangtools.yang.common.ErrorType; import org.opendaylight.yangtools.yang.common.RpcResultBuilder; @@ -18,6 +19,7 @@ import org.opendaylight.yangtools.yang.common.RpcResultBuilder; * updated transaction. */ public class OptimisticLockFailedException extends TransactionCommitFailedException { + @Serial private static final long serialVersionUID = 1L; public OptimisticLockFailedException(final String message, final Throwable cause) { diff --git a/common/mdsal-common-api/src/main/java/org/opendaylight/mdsal/common/api/ReadFailedException.java b/common/mdsal-common-api/src/main/java/org/opendaylight/mdsal/common/api/ReadFailedException.java index bdede012df..8d5c7da113 100644 --- a/common/mdsal-common-api/src/main/java/org/opendaylight/mdsal/common/api/ReadFailedException.java +++ b/common/mdsal-common-api/src/main/java/org/opendaylight/mdsal/common/api/ReadFailedException.java @@ -7,6 +7,7 @@ */ package org.opendaylight.mdsal.common.api; +import java.io.Serial; import org.opendaylight.yangtools.util.concurrent.ExceptionMapper; import org.opendaylight.yangtools.yang.common.OperationFailedException; import org.opendaylight.yangtools.yang.common.RpcError; @@ -15,6 +16,7 @@ import org.opendaylight.yangtools.yang.common.RpcError; * An exception for a failed read. */ public class ReadFailedException extends OperationFailedException { + @Serial private static final long serialVersionUID = 1L; public static final ExceptionMapper MAPPER = diff --git a/common/mdsal-common-api/src/main/java/org/opendaylight/mdsal/common/api/TransactionCommitDeadlockException.java b/common/mdsal-common-api/src/main/java/org/opendaylight/mdsal/common/api/TransactionCommitDeadlockException.java index c667f86a7f..50e338f125 100644 --- a/common/mdsal-common-api/src/main/java/org/opendaylight/mdsal/common/api/TransactionCommitDeadlockException.java +++ b/common/mdsal-common-api/src/main/java/org/opendaylight/mdsal/common/api/TransactionCommitDeadlockException.java @@ -7,6 +7,7 @@ */ package org.opendaylight.mdsal.common.api; +import java.io.Serial; import java.util.function.Supplier; import org.opendaylight.yangtools.yang.common.ErrorTag; import org.opendaylight.yangtools.yang.common.ErrorType; @@ -23,6 +24,7 @@ import org.opendaylight.yangtools.yang.common.RpcResultBuilder; * @author Thomas Pantelis */ public class TransactionCommitDeadlockException extends TransactionCommitFailedException { + @Serial private static final long serialVersionUID = 1L; private static final String DEADLOCK_MESSAGE = "An attempt to block on a ListenableFuture via a get method from a " + "write transaction submit was detected that would result in deadlock. The commit result must be obtained " diff --git a/common/mdsal-common-api/src/main/java/org/opendaylight/mdsal/common/api/TransactionCommitFailedException.java b/common/mdsal-common-api/src/main/java/org/opendaylight/mdsal/common/api/TransactionCommitFailedException.java index 8367911b45..d88798bb79 100644 --- a/common/mdsal-common-api/src/main/java/org/opendaylight/mdsal/common/api/TransactionCommitFailedException.java +++ b/common/mdsal-common-api/src/main/java/org/opendaylight/mdsal/common/api/TransactionCommitFailedException.java @@ -7,25 +7,22 @@ */ package org.opendaylight.mdsal.common.api; +import java.io.Serial; import org.opendaylight.yangtools.yang.common.OperationFailedException; import org.opendaylight.yangtools.yang.common.RpcError; /** - * Failed commit of asynchronous transaction. - * This exception is raised and returned when transaction commit - * failed. - * + * Failed commit of asynchronous transaction. This exception is raised and returned when transaction commit failed. */ public class TransactionCommitFailedException extends OperationFailedException { - + @Serial private static final long serialVersionUID = 1L; public TransactionCommitFailedException(final String message, final RpcError... errors) { this(message, null, errors); } - public TransactionCommitFailedException(final String message, final Throwable cause, - final RpcError... errors) { + public TransactionCommitFailedException(final String message, final Throwable cause, final RpcError... errors) { super(message, cause, errors); } } diff --git a/dom/mdsal-dom-schema-osgi/src/main/java/org/opendaylight/mdsal/dom/schema/osgi/impl/YangModuleInfoScanner.java b/dom/mdsal-dom-schema-osgi/src/main/java/org/opendaylight/mdsal/dom/schema/osgi/impl/YangModuleInfoScanner.java index a3c3458659..6f989eff74 100644 --- a/dom/mdsal-dom-schema-osgi/src/main/java/org/opendaylight/mdsal/dom/schema/osgi/impl/YangModuleInfoScanner.java +++ b/dom/mdsal-dom-schema-osgi/src/main/java/org/opendaylight/mdsal/dom/schema/osgi/impl/YangModuleInfoScanner.java @@ -12,6 +12,7 @@ import static java.util.Objects.requireNonNull; import com.google.common.collect.ImmutableList; import com.google.common.io.Resources; import java.io.IOException; +import java.io.Serial; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.net.URL; @@ -153,6 +154,7 @@ final class YangModuleInfoScanner extends BundleTracker> { + @Serial private static final long serialVersionUID = 1L; /** Constructs an instance. diff --git a/entityownership/mdsal-eos-common-api/src/main/java/org/opendaylight/mdsal/eos/common/api/CandidateAlreadyRegisteredException.java b/entityownership/mdsal-eos-common-api/src/main/java/org/opendaylight/mdsal/eos/common/api/CandidateAlreadyRegisteredException.java index 8706a49210..3382d691a4 100644 --- a/entityownership/mdsal-eos-common-api/src/main/java/org/opendaylight/mdsal/eos/common/api/CandidateAlreadyRegisteredException.java +++ b/entityownership/mdsal-eos-common-api/src/main/java/org/opendaylight/mdsal/eos/common/api/CandidateAlreadyRegisteredException.java @@ -9,6 +9,7 @@ package org.opendaylight.mdsal.eos.common.api; import static java.util.Objects.requireNonNull; +import java.io.Serial; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.concepts.HierarchicalIdentifier; @@ -17,6 +18,7 @@ import org.opendaylight.yangtools.concepts.HierarchicalIdentifier; * duplicate registration or two different components within the same process trying to register a Candidate. */ public class CandidateAlreadyRegisteredException extends Exception { + @Serial private static final long serialVersionUID = 1L; private final @NonNull GenericEntity entity; diff --git a/entityownership/mdsal-eos-common-api/src/main/java/org/opendaylight/mdsal/eos/common/api/GenericEntity.java b/entityownership/mdsal-eos-common-api/src/main/java/org/opendaylight/mdsal/eos/common/api/GenericEntity.java index 3f8a1b8d29..57fb8c361b 100644 --- a/entityownership/mdsal-eos-common-api/src/main/java/org/opendaylight/mdsal/eos/common/api/GenericEntity.java +++ b/entityownership/mdsal-eos-common-api/src/main/java/org/opendaylight/mdsal/eos/common/api/GenericEntity.java @@ -9,6 +9,7 @@ package org.opendaylight.mdsal.eos.common.api; import static java.util.Objects.requireNonNull; +import java.io.Serial; import java.io.Serializable; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.concepts.HierarchicalIdentifier; @@ -42,6 +43,7 @@ import org.opendaylight.yangtools.concepts.Identifiable; * @param the entity identifier type */ public class GenericEntity> implements Serializable, Identifiable { + @Serial private static final long serialVersionUID = 1L; private final @NonNull String type; @@ -77,7 +79,7 @@ public class GenericEntity> implements Seria if (obj == null || getClass() != obj.getClass()) { return false; } - final GenericEntity entity = (GenericEntity) obj; + final var entity = (GenericEntity) obj; return id.equals(entity.id) && type.equals(entity.type); } diff --git a/entityownership/mdsal-eos-common-api/src/test/java/org/opendaylight/mdsal/eos/common/api/GenericEntityTest.java b/entityownership/mdsal-eos-common-api/src/test/java/org/opendaylight/mdsal/eos/common/api/GenericEntityTest.java index 8ac1fea38b..81d2348253 100644 --- a/entityownership/mdsal-eos-common-api/src/test/java/org/opendaylight/mdsal/eos/common/api/GenericEntityTest.java +++ b/entityownership/mdsal-eos-common-api/src/test/java/org/opendaylight/mdsal/eos/common/api/GenericEntityTest.java @@ -12,6 +12,7 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertTrue; +import java.io.Serial; import org.junit.Test; import org.opendaylight.yangtools.concepts.HierarchicalIdentifier; @@ -35,6 +36,7 @@ public class GenericEntityTest { } private static final class TestClass implements HierarchicalIdentifier { + @Serial private static final long serialVersionUID = 1L; @Override @@ -44,6 +46,7 @@ public class GenericEntityTest { } private static final class TestClassDiff implements HierarchicalIdentifier { + @Serial private static final long serialVersionUID = 1L; @Override diff --git a/entityownership/mdsal-eos-dom-api/src/main/java/org/opendaylight/mdsal/eos/dom/api/DOMEntity.java b/entityownership/mdsal-eos-dom-api/src/main/java/org/opendaylight/mdsal/eos/dom/api/DOMEntity.java index ad8da3740a..6b28838950 100644 --- a/entityownership/mdsal-eos-dom-api/src/main/java/org/opendaylight/mdsal/eos/dom/api/DOMEntity.java +++ b/entityownership/mdsal-eos-dom-api/src/main/java/org/opendaylight/mdsal/eos/dom/api/DOMEntity.java @@ -10,6 +10,7 @@ package org.opendaylight.mdsal.eos.dom.api; import static java.util.Objects.requireNonNull; import com.google.common.annotations.Beta; +import java.io.Serial; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.eos.common.api.GenericEntity; import org.opendaylight.yangtools.yang.common.QName; @@ -22,6 +23,7 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; */ @Beta public class DOMEntity extends GenericEntity { + @Serial private static final long serialVersionUID = 1L; static final QName ENTITY = QName.create( diff --git a/replicate/mdsal-replicate-netty/src/main/java/org/opendaylight/mdsal/replicate/netty/KeepaliveException.java b/replicate/mdsal-replicate-netty/src/main/java/org/opendaylight/mdsal/replicate/netty/KeepaliveException.java index a4b402902f..0c85ccff39 100644 --- a/replicate/mdsal-replicate-netty/src/main/java/org/opendaylight/mdsal/replicate/netty/KeepaliveException.java +++ b/replicate/mdsal-replicate-netty/src/main/java/org/opendaylight/mdsal/replicate/netty/KeepaliveException.java @@ -7,7 +7,10 @@ */ package org.opendaylight.mdsal.replicate.netty; +import java.io.Serial; + final class KeepaliveException extends Exception { + @Serial private static final long serialVersionUID = 1L; KeepaliveException(final int missedKeepalives) { diff --git a/singleton-service/mdsal-singleton-common-api/src/main/java/org/opendaylight/mdsal/singleton/common/api/ServiceGroupIdentifier.java b/singleton-service/mdsal-singleton-common-api/src/main/java/org/opendaylight/mdsal/singleton/common/api/ServiceGroupIdentifier.java index 4a33f9ee08..0a7ca41f82 100644 --- a/singleton-service/mdsal-singleton-common-api/src/main/java/org/opendaylight/mdsal/singleton/common/api/ServiceGroupIdentifier.java +++ b/singleton-service/mdsal-singleton-common-api/src/main/java/org/opendaylight/mdsal/singleton/common/api/ServiceGroupIdentifier.java @@ -7,6 +7,7 @@ */ package org.opendaylight.mdsal.singleton.common.api; +import java.io.Serial; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.util.AbstractStringIdentifier; @@ -14,6 +15,7 @@ import org.opendaylight.yangtools.util.AbstractStringIdentifier; * Identifier represents a service group competence. It's based on String. */ public class ServiceGroupIdentifier extends AbstractStringIdentifier { + @Serial private static final long serialVersionUID = 6853612584804702662L; protected ServiceGroupIdentifier(final @NonNull String string) { diff --git a/singleton-service/mdsal-singleton-dom-impl/src/test/java/org/opendaylight/mdsal/singleton/dom/impl/util/TestEntity.java b/singleton-service/mdsal-singleton-dom-impl/src/test/java/org/opendaylight/mdsal/singleton/dom/impl/util/TestEntity.java index 4367ccc6b8..75cd2e1bcb 100644 --- a/singleton-service/mdsal-singleton-dom-impl/src/test/java/org/opendaylight/mdsal/singleton/dom/impl/util/TestEntity.java +++ b/singleton-service/mdsal-singleton-dom-impl/src/test/java/org/opendaylight/mdsal/singleton/dom/impl/util/TestEntity.java @@ -7,6 +7,7 @@ */ package org.opendaylight.mdsal.singleton.dom.impl.util; +import java.io.Serial; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.eos.common.api.GenericEntity; import org.opendaylight.yangtools.yang.common.QName; @@ -15,6 +16,7 @@ import org.opendaylight.yangtools.yang.common.QName; * Test util class. */ public class TestEntity extends GenericEntity { + @Serial private static final long serialVersionUID = 1L; static final QName ENTITY = QName diff --git a/singleton-service/mdsal-singleton-dom-impl/src/test/java/org/opendaylight/mdsal/singleton/dom/impl/util/TestInstanceIdentifier.java b/singleton-service/mdsal-singleton-dom-impl/src/test/java/org/opendaylight/mdsal/singleton/dom/impl/util/TestInstanceIdentifier.java index 99ea192d7f..956bfb0e72 100644 --- a/singleton-service/mdsal-singleton-dom-impl/src/test/java/org/opendaylight/mdsal/singleton/dom/impl/util/TestInstanceIdentifier.java +++ b/singleton-service/mdsal-singleton-dom-impl/src/test/java/org/opendaylight/mdsal/singleton/dom/impl/util/TestInstanceIdentifier.java @@ -9,6 +9,7 @@ package org.opendaylight.mdsal.singleton.dom.impl.util; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; +import java.io.Serial; import java.util.LinkedList; import java.util.List; import org.opendaylight.yangtools.concepts.HierarchicalIdentifier; @@ -17,6 +18,7 @@ import org.opendaylight.yangtools.concepts.HierarchicalIdentifier; * Test helper class. {@link HierarchicalIdentifier} for testing only. */ public class TestInstanceIdentifier implements HierarchicalIdentifier { + @Serial private static final long serialVersionUID = 1L; private final ImmutableList path; @@ -38,5 +40,4 @@ public class TestInstanceIdentifier implements HierarchicalIdentifier