On Mon, 21 Sep 2020 10:40:37 GMT, Jeanette Winzenburg <faste...@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 ;) I realized I was wrong. Thank you. I would probably need to add a test for this case. ------------- PR: https://git.openjdk.java.net/jfx/pull/305