We are not initializing the size field, hence the class does not
operate correctly. Fix that and correct isEmpty() method.
Change-Id: I1543e617f14f0a88c6b59afe93364cace151ee5c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
d94cd2529378a5544030c75bdb23b05d98092e05)
import static com.google.common.base.Preconditions.checkArgument;
import static java.util.Objects.requireNonNull;
import static com.google.common.base.Preconditions.checkArgument;
import static java.util.Objects.requireNonNull;
-import com.google.common.base.Preconditions;
import com.google.common.collect.AbstractIterator;
import com.google.common.collect.ImmutableList;
import java.util.AbstractCollection;
import com.google.common.collect.AbstractIterator;
import com.google.common.collect.ImmutableList;
import java.util.AbstractCollection;
@Override
Collection<StatementContextBase<?, ?, ?>> values() {
@Override
Collection<StatementContextBase<?, ?, ?>> values() {
- return new RegularAsCollection<>(elements);
+ return new RegularAsCollection<>(elements, size);
private static final class RegularAsCollection<T> extends AbstractCollection<T> {
private final T[] elements;
private static final class RegularAsCollection<T> extends AbstractCollection<T> {
private final T[] elements;
+ private final int size;
- RegularAsCollection(final T[] elements) {
- this.elements = Preconditions.checkNotNull(elements);
+ RegularAsCollection(final T[] elements, final int size) {
+ this.elements = requireNonNull(elements);
+ this.size = size;
- @Override
- public boolean isEmpty() {
- return size != 0;
- }
-
@Override
public Iterator<T> iterator() {
return new AbstractIterator<T>() {
@Override
public Iterator<T> iterator() {
return new AbstractIterator<T>() {