RFR: 8334900: IOOBE when adding data to a Series of a BarChart that already contains data [v3]
Andy Goryachev
angorya at openjdk.org
Mon Jul 15 16:36:00 UTC 2024
On Sat, 13 Jul 2024 10:00:31 GMT, Markus Mack <mmack at openjdk.org> wrote:
>> This PR is a fix for another IOOBE that I discovered while working on #1476.
>>
>> The PR simplifies the code for adding a series that already contains data by adding the data points one-by-one.
>> As far as I can see no attempt was previously made to optimize the bulk operation except for some trivial O(1) operations, so this should have no noticable performance impact.
>>
>> Accidentally this fixes another bug related to the missing "negative" style class when negative data values are added.
>>
>> Also, the PR aligns the handling of duplicate categories with the behavior clarified in #1476, when there are duplicates in the data that was already in the series before the series was added to the chart.
>>
>> Note a change was made to the createTestSeries() test method, letting it start at index 1, avoiding the duplicate data items resulting from multiplying by 0.
>> Without this change `testSeriesRemoveAnimatedStyleClasses` would fail because it counts the number of plot children, where the duplicates are now removed.
>
> Markus Mack has updated the pull request incrementally with one additional commit since the last revision:
>
> fix "negative" style class when series is changed
modules/javafx.controls/src/test/java/test/javafx/scene/chart/BarChartTest.java line 305:
> 303: BarChart<String, Number> chart = new BarChart<>(new CategoryAxis(), new NumberAxis());
> 304: XYChart.Series<String, Number> series = new XYChart.Series<>();
> 305: chart.getData().add(series);
speaking of negative values - could we check **all** the possible ways where the 'negative' class is added? or removed?
I think it might be possible to add a check to the exiting tests, to reuse the setup.
Lastly, I think we also need to test the case when the data point becomes non-negative after explicit XYChart.Data.setValue(), do you think?
-------------
PR Review Comment: https://git.openjdk.org/jfx/pull/1488#discussion_r1678109067
More information about the openjfx-dev
mailing list