Skip to content

Commit 1a4645d

Browse files
committed
fix(batch): use API compatible w/ JDK 17
LinkedHashMap::reversed was first introduced in JDK 21. The ListIterator approach requires allocating a list, but yields a much simpler code in return.
1 parent c5ea8bd commit 1a4645d

1 file changed

Lines changed: 4 additions & 11 deletions

File tree

  • src/main/java/io/weaviate/client6/v1/api/collections/batch

src/main/java/io/weaviate/client6/v1/api/collections/batch/Batch.java

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,8 @@
55
import java.time.Instant;
66
import java.util.Collection;
77
import java.util.Comparator;
8-
import java.util.Iterator;
98
import java.util.LinkedHashMap;
10-
import java.util.Map;
9+
import java.util.ListIterator;
1110
import java.util.OptionalInt;
1211
import java.util.Set;
1312
import java.util.TreeSet;
@@ -176,15 +175,9 @@ synchronized void setMaxSize(int maxSizeNew) {
176175
}
177176

178177
// Buffer exceeds the new limit. Move extra items to the backlog (LIFO).
179-
Iterator<Map.Entry<String, Data>> extra = buffer.reversed()
180-
.entrySet().stream()
181-
.limit(buffer.size() - maxSize)
182-
.iterator();
183-
184-
while (extra.hasNext()) {
185-
Data data = extra.next().getValue();
186-
addBacklog(data);
187-
extra.remove();
178+
ListIterator<String> extra = buffer.keySet().stream().toList().listIterator();
179+
while (extra.hasPrevious() && buffer.size() > maxSize) {
180+
addBacklog(buffer.remove(extra.previous()));
188181
}
189182
} finally {
190183
checkInvariants();

0 commit comments

Comments
 (0)