On Mon, 14 Sep 2020 09:57:26 GMT, yosbits <github.com+7517141+yos...@openjdk.org> wrote:
> https://bugs.openjdk.java.net/browse/JDK-8253086 > > ObservableListWrapper.java > * public boolean removeAll(Collection<?> c) > * public boolean retainAll(Collection<?> c) > > These two methods use BitSet, but it doesn't make sense. > By rewriting to the equivalent behavior that does not use BitSet, it is > possible to reduce the CPU load in a wide range > of use cases. > The test is done with the following command. > > * gradle base: test > * gradle controls: test modules/javafx.base/src/main/java/com/sun/javafx/collections/ObservableListWrapper.java line 191: > 189: if (this.isEmpty() || c.isEmpty()) { > 190: return false; > 191: } logic seems wrong: if c is empty this must be cleared The error shows up in a failing test (but only when running all base.collections tests in Eclipse, not with gradle on the commandline) the test failure is in ObservableListWithExtractor.testUpdate_retainAll() which - besides exposing the error above - tells us two issues with the tests a) the normal (that is no extractor) test is incomplete (in not testing retainAll with empty array/collection) b) the test is not run with gradle because it doesn't adhere to naming conventions ;) ------------- PR: https://git.openjdk.java.net/jfx/pull/305