8 ms·
Can you give an example for streams not terminating when they should? As for that cancel method, why is it a problem if it doesn’t use a variable? Like, there
by kaba0 2y ago
Can you give an example for streams not terminating when they should?
As for that cancel method, why is it a problem if it doesn’t use a variable? Like, there are also no-op methods inside standard libraries, these are very different to how you write ordinary code.
Also, Futures and green threads are not something to pivot between, they are different abstractions. And virtual threads locking up is pretty overblown of an issue, and always happened under some stupid workload, where normal threads would have locked up just as well.
Does java ship bugs? Of course, there is zero chance of shipping such a large project without bugs. But I do think that they have a tendency to re-think and wait for new features, before committing to them, and they actually commit to such decisions, remarkably so.
- mrkeen 2y agohttps://bugs.openjdk.org/browse/JDK-8225328 https://bugs.openjdk.org/browse/JDK-8225328
- MeetingsBrowser 2y agomaybe I misunderstood > so far I've been able to produce an infinite-loop or stack/heap space problem The linked issue was resolved 5 years ago
- mrkeen 2y agoHaha I bet it was! "Java great" according to Java. Anyway, it's a been a while, so, I downloaded the latest Adoptium - that's the one you don't get sued for using right? ./javac --version javac 21.0.3 Full source code for pulling the first number out of a big stream: import java.util.stream.Stream; public class Main { public static void main(String[] args) { Stream.iterate(0, a -> a + 1) .flatMap(b -> Stream.iterate(b, c -> c + 1) .flatMap(d -> Stream.iterate(d, e -> e + 1))) .limit(1L) .findFirst() .get(); } } Run it: ./javac Main.java && time ./java Main Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at java.base/java.lang.Integer.valueOf(Integer.java:1073) at Main.lambda$main$2(Main.java:7) {...} at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647) at Main.main(Main.java:9) real 0m9,911s user 1m31,992s sys 0m1,423s