When setting data for the series through the setData method IOOBE occurs if the data contains duplicate category entries.
ObservableList<Data<String, Number>> list = FXCollections.observableArrayList(
new Data<>("1", 0), new Data<>("1", 0), new Data<>("2", 0)
);
BarChart<String, Number> bc = new BarChart<>(new CategoryAxis(), new NumberAxis());
bc.getData().add(new Series<>());
bc.getData().get(0).setData(list);
java.lang.IndexOutOfBoundsException: Index: 2, Size: 1
at java.util.ArrayList.rangeCheckForAdd(ArrayList.java:661)
at java.util.ArrayList.add(ArrayList.java:473)
at com.sun.javafx.collections.ObservableListWrapper.doAdd(ObservableListWrapper.java:101)
at javafx.collections.ModifiableObservableListBase.add(ModifiableObservableListBase.java:151)
at javafx.scene.chart.BarChart.dataItemAdded(BarChart.java:209)
at javafx.scene.chart.XYChart.dataItemsChanged(XYChart.java:501)
at javafx.scene.chart.XYChart.access$2300(XYChart.java:93)
at javafx.scene.chart.XYChart$Series$1.onChanged(XYChart.java:1457)
at javafx.scene.chart.XYChart$Series$4.invalidated(XYChart.java:1538)
at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:111)
at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:146)
at javafx.beans.property.ObjectProperty.setValue(ObjectProperty.java:69)
at javafx.scene.chart.XYChart$Series.setData(XYChart.java:1569)
ObservableList<Data<String, Number>> list = FXCollections.observableArrayList(
new Data<>("1", 0), new Data<>("1", 0), new Data<>("2", 0)
);
BarChart<String, Number> bc = new BarChart<>(new CategoryAxis(), new NumberAxis());
bc.getData().add(new Series<>());
bc.getData().get(0).setData(list);
java.lang.IndexOutOfBoundsException: Index: 2, Size: 1
at java.util.ArrayList.rangeCheckForAdd(ArrayList.java:661)
at java.util.ArrayList.add(ArrayList.java:473)
at com.sun.javafx.collections.ObservableListWrapper.doAdd(ObservableListWrapper.java:101)
at javafx.collections.ModifiableObservableListBase.add(ModifiableObservableListBase.java:151)
at javafx.scene.chart.BarChart.dataItemAdded(BarChart.java:209)
at javafx.scene.chart.XYChart.dataItemsChanged(XYChart.java:501)
at javafx.scene.chart.XYChart.access$2300(XYChart.java:93)
at javafx.scene.chart.XYChart$Series$1.onChanged(XYChart.java:1457)
at javafx.scene.chart.XYChart$Series$4.invalidated(XYChart.java:1538)
at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:111)
at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:146)
at javafx.beans.property.ObjectProperty.setValue(ObjectProperty.java:69)
at javafx.scene.chart.XYChart$Series.setData(XYChart.java:1569)