X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fcds-access-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Faccess%2Fcommands%2FReadTransactionSuccessProxyV1.java;h=f755d3ef86bab2dbf219b548cc5e97f2ae901817;hb=c7105cb6f9179a796360316171026f494d64c10d;hp=13e1cf0d5a48709b239ccb6ea5f146f08d0e8cf4;hpb=e4a1f1fa1f3efb4442c1141224b8a2df714efcb4;p=controller.git diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccessProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccessProxyV1.java index 13e1cf0d5a..f755d3ef86 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccessProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccessProxyV1.java @@ -7,13 +7,14 @@ */ package org.opendaylight.controller.cluster.access.commands; -import com.google.common.base.Optional; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; +import java.util.Optional; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.controller.cluster.datastore.node.utils.stream.NormalizedNodeDataOutput; import org.opendaylight.controller.cluster.datastore.node.utils.stream.NormalizedNodeInputOutput; +import org.opendaylight.controller.cluster.datastore.node.utils.stream.NormalizedNodeStreamVersion; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; /** @@ -24,8 +25,13 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; */ final class ReadTransactionSuccessProxyV1 extends AbstractTransactionSuccessProxy { private static final long serialVersionUID = 1L; + private Optional> data; + private transient NormalizedNodeStreamVersion streamVersion; + // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to + // be able to create instances via reflection. + @SuppressWarnings("checkstyle:RedundantModifier") public ReadTransactionSuccessProxyV1() { // For Externalizable } @@ -33,6 +39,7 @@ final class ReadTransactionSuccessProxyV1 extends AbstractTransactionSuccessProx ReadTransactionSuccessProxyV1(final ReadTransactionSuccess request) { super(request); this.data = request.getData(); + this.streamVersion = request.getVersion().getStreamVersion(); } @Override @@ -41,14 +48,12 @@ final class ReadTransactionSuccessProxyV1 extends AbstractTransactionSuccessProx if (data.isPresent()) { out.writeBoolean(true); - try (NormalizedNodeDataOutput nnout = NormalizedNodeInputOutput.newDataOutput(out)) { + try (NormalizedNodeDataOutput nnout = NormalizedNodeInputOutput.newDataOutput(out, streamVersion)) { nnout.writeNormalizedNode(data.get()); } } else { out.writeBoolean(false); } - - out.writeObject(data); } @Override @@ -58,13 +63,12 @@ final class ReadTransactionSuccessProxyV1 extends AbstractTransactionSuccessProx if (in.readBoolean()) { data = Optional.of(NormalizedNodeInputOutput.newDataInput(in).readNormalizedNode()); } else { - data = Optional.absent(); + data = Optional.empty(); } } @Override - protected ReadTransactionSuccess createSuccess(final TransactionIdentifier target, final long sequence, - final long retry) { - return new ReadTransactionSuccess(target, sequence, retry, data); + protected ReadTransactionSuccess createSuccess(final TransactionIdentifier target, final long sequence) { + return new ReadTransactionSuccess(target, sequence, data); } }