We are performing a defensive copy in constructor, hence it is
better to allocate a builder, skipping an untrusted copy operation.
Change-Id: I95d7aa90f6da325aaae6a340caf49a6e17fe9f64
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
-import java.util.ArrayList;
import java.util.Collection;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.controller.cluster.access.concepts.ClientIdentifier;
import java.util.Collection;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.controller.cluster.access.concepts.ClientIdentifier;
final var purgedHistories = ImmutableUnsignedLongSet.readFrom(in);
final int currentSize = in.readInt();
final var purgedHistories = ImmutableUnsignedLongSet.readFrom(in);
final int currentSize = in.readInt();
- // FIXME: ImmutableList.builder()
- final var currentHistories = new ArrayList<FrontendHistoryMetadata>(currentSize);
+ final var currentBuilder = ImmutableList.<FrontendHistoryMetadata>builderWithExpectedSize(currentSize);
for (int i = 0; i < currentSize; ++i) {
for (int i = 0; i < currentSize; ++i) {
- currentHistories.add(FrontendHistoryMetadata.readFrom(in));
+ currentBuilder.add(FrontendHistoryMetadata.readFrom(in));
- return new FrontendClientMetadata(id, purgedHistories, currentHistories);
+ return new FrontendClientMetadata(id, purgedHistories, currentBuilder.build());
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.Test;
import org.opendaylight.controller.cluster.access.concepts.ClientIdentifier;
import org.opendaylight.controller.cluster.access.concepts.FrontendIdentifier;
import org.junit.Test;
import org.opendaylight.controller.cluster.access.concepts.ClientIdentifier;
import org.opendaylight.controller.cluster.access.concepts.FrontendIdentifier;
tmp.add(0);
final ImmutableUnsignedLongSet purgedHistories = tmp.immutableCopy();
tmp.add(0);
final ImmutableUnsignedLongSet purgedHistories = tmp.immutableCopy();
- final Set<FrontendHistoryMetadata> currentHistories = Set.of(
+ return new FrontendClientMetadata(clientIdentifier, purgedHistories.immutableCopy(), List.of(
new FrontendHistoryMetadata(num, num, true, ImmutableMap.of(UnsignedLong.ZERO, Boolean.TRUE),
new FrontendHistoryMetadata(num, num, true, ImmutableMap.of(UnsignedLong.ZERO, Boolean.TRUE),
- purgedHistories));
-
- return new FrontendClientMetadata(clientIdentifier, purgedHistories.immutableCopy(), currentHistories);
}
private static <T> void testObject(final T object, final T equalObject) {
}
private static <T> void testObject(final T object, final T equalObject) {