RFR: 8196065: ListChangeListener getRemoved() returns items that were not removed. [v8]
Ambarish Rapte
arapte at openjdk.java.net
Fri Jun 11 09:11:03 UTC 2021
On Sat, 29 May 2021 12:31:33 GMT, Michael Strauß <mstrauss at openjdk.org> wrote:
>> The documentation for `ObservableListBase.nextRemove` states that a single change always refers to the current state of the list, which likely means that multiple disjoint removed ranges need to be applied in order, otherwise the next change's `getFrom` doesn't refer to the correct index.
>>
>> `SelectedItemsReadOnlyObservableList` doesn't apply removals to `itemsRefList`, which means that subsequent removals will refer to the wrong index when retrieving the removed elements. This PR fixes the calculation of the current index.
>
> Michael Strauß has updated the pull request incrementally with one additional commit since the last revision:
>
> fix tests
Fix looks good to me. Provided few minor comments.
modules/javafx.base/src/test/java/test/javafx/collections/MockListObserver.java line 174:
> 172: assertFalse(tooManyCalls);
> 173: assertEquals(1, calls.size());
> 174: }
Minor: The `check1` method can be changed to internally call `checkN`.
modules/javafx.controls/src/main/java/javafx/scene/control/ControlUtils.java line 101:
> 99: @Override public int getTo() {
> 100: checkState();
> 101: return from;
How about reverting this change ?
modules/javafx.controls/src/test/java/test/com/sun/javafx/scene/control/SelectedItemsReadOnlyObservableListTest.java line 66:
> 64: selectedIndices.addAll(0, 1, 2, 3, 4);
> 65: assertEquals(1, changes.size());
> 66: assertEquals(change(added(0, "foo", "bar", "baz", "qux", "quz")), changes.get(0));
I would recommend to use the exact string in the expected parameter instead of the helper function.
`assertEquals("{ [foo, bar, baz, qux, quz] added at 0 }", changes.get(0));`
This way improves readability.
modules/javafx.controls/src/test/java/test/com/sun/javafx/scene/control/SelectedItemsReadOnlyObservableListTest.java line 107:
> 105: */
> 106: @Test
> 107: @Ignore("see JDK-8267951")
Generally we use only the bug ID here -> @Ignore("JDK-8267951")
-------------
Changes requested by arapte (Reviewer).
PR: https://git.openjdk.java.net/jfx/pull/478
More information about the openjfx-dev
mailing list