X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fpersisted%2FCommitTransactionPayload.java;fp=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fpersisted%2FCommitTransactionPayload.java;h=4cbe151a6d8337f6f607ce26e3f6d087d2912148;hp=cb261a2b19392da2373357383957a7f2cad4b4b5;hb=0f88bd70a92ec2b536b0633a6ba4e6733cee475d;hpb=67d8d3684dda352f957990c80c8e628dabcd0ca6 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CommitTransactionPayload.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CommitTransactionPayload.java index cb261a2b19..4cbe151a6d 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CommitTransactionPayload.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CommitTransactionPayload.java @@ -34,6 +34,7 @@ import org.opendaylight.controller.cluster.datastore.persisted.DataTreeCandidate import org.opendaylight.controller.cluster.io.ChunkedByteArray; import org.opendaylight.controller.cluster.io.ChunkedOutputStream; import org.opendaylight.controller.cluster.raft.messages.IdentifiablePayload; +import org.opendaylight.controller.cluster.raft.persisted.LegacySerializable; import org.opendaylight.yangtools.concepts.Either; import org.opendaylight.yangtools.yang.data.api.schema.stream.ReusableStreamReceiver; import org.opendaylight.yangtools.yang.data.impl.schema.ReusableImmutableNormalizedNodeStreamWriter; @@ -149,11 +150,12 @@ public abstract sealed class CommitTransactionPayload extends IdentifiablePayloa abstract DataInput newDataInput(); @Override - protected final Object writeReplace() { - return new Proxy(this); + public final Object writeReplace() { + return new CT(this); } - static final class Simple extends CommitTransactionPayload { + static sealed class Simple extends CommitTransactionPayload { + @java.io.Serial private static final long serialVersionUID = 1L; private final byte[] serialized; @@ -178,7 +180,8 @@ public abstract sealed class CommitTransactionPayload extends IdentifiablePayloa } } - static final class Chunked extends CommitTransactionPayload { + static sealed class Chunked extends CommitTransactionPayload { + @java.io.Serial private static final long serialVersionUID = 1L; @SuppressFBWarnings(value = "SE_BAD_FIELD", justification = "Handled via serialization proxy") @@ -206,14 +209,36 @@ public abstract sealed class CommitTransactionPayload extends IdentifiablePayloa // Exists to break initialization dependency between CommitTransactionPayload/Simple/Proxy private static final class ProxySizeHolder { - static final int PROXY_SIZE = SerializationUtils.serialize(new Proxy(new Simple(new byte[0]))).length; + static final int PROXY_SIZE = SerializationUtils.serialize(new CT(new Simple(new byte[0]))).length; private ProxySizeHolder() { // Hidden on purpose } } + @Deprecated(since = "7.0.0", forRemoval = true) + private static final class SimpleMagnesium extends Simple implements LegacySerializable { + @java.io.Serial + private static final long serialVersionUID = 1L; + + SimpleMagnesium(final byte[] serialized) { + super(serialized); + } + } + + @Deprecated(since = "7.0.0", forRemoval = true) + private static final class ChunkedMagnesium extends Chunked implements LegacySerializable { + @java.io.Serial + private static final long serialVersionUID = 1L; + + ChunkedMagnesium(final ChunkedByteArray source) { + super(source); + } + } + + @Deprecated(since = "7.0.0", forRemoval = true) private static final class Proxy implements Externalizable { + @java.io.Serial private static final long serialVersionUID = 1L; private CommitTransactionPayload payload; @@ -243,12 +268,13 @@ public abstract sealed class CommitTransactionPayload extends IdentifiablePayloa } else if (length < MAX_ARRAY_SIZE) { final byte[] serialized = new byte[length]; in.readFully(serialized); - payload = new Simple(serialized); + payload = new SimpleMagnesium(serialized); } else { - payload = new Chunked(ChunkedByteArray.readFrom(in, length, MAX_ARRAY_SIZE)); + payload = new ChunkedMagnesium(ChunkedByteArray.readFrom(in, length, MAX_ARRAY_SIZE)); } } + @java.io.Serial private Object readResolve() { return verifyNotNull(payload); }