Ok. So it seems we managed to track this down. I just opened https://javafx-jira.kenai.com/browse/RT-32283
Seems to be some nasty problem with duplicate entries causing headaches for the SortedList trying to accommodate to changes sent from the underlying FilteredList - probably something to do with index lookup and Arrays.binarySearch (just a guess). Since attach is still no available here are the links to the occurring exception stack trace and a test that shows the correct behavior without duplicates and the error with duplicates (can be dropped into the :base tests.. https://www.dropbox.com/s/l4orwhqxqjcgb3x/AIOOBE.txt https://www.dropbox.com/s/k8luvvh8q2v6i11/SortedFilteredListTest.java -Sven On Mon, Aug 12, 2013 at 1:14 PM, Martin Klähn <grazer...@gmail.com> wrote: > Sorry for the link I had that in the original mail but by adding it seems > to have vanished. > So I had a chance to test the TableView with SortedList and FilteredList > with b102. > > Sorting is enabled with SortedList but not with FilteredList. I guess > you'll want a issue for filtering with FilteredList? > > However I've run into a range of Exception in conjunction with SortedLists > created from FilteredList as item in TableView and user ordering of Columns > and user based changes of the FilteredList.predicate. They range from > ArrayIndexOutOfBoundsException out of SortedList.java:313 to > IndexOutOfBoundsException caused by TextInputControlBehavior.java:334 and > NullPointerException in SortedList.java:247. > > I've built a small test class a user has to interact with. We've searched > for some automatic way of reproducing the error to no avail (up to now). > See https://www.dropbox.com/s/bfhqm0xk4y9r1oz/FilterSortedList.java > > Steps to reproduce: > 1) change column sort of any column > 2) type two characters in the textfield below which will change the > FilterList.predicate based on String.startsWith-condition. > > Regards, > Martin > > > > On Thu, Aug 8, 2013 at 10:30 PM, Jonathan Giles > <jonathan.gi...@oracle.com>wrote: > > > Funny you should ask about this - I just blogged about SortedList and > > TableView the other day, over at FXExperience: > > http://fxexperience.com/2013/**08/returning-a-tableview-back-** > > to-an-unsorted-state-in-**javafx-8-0< > http://fxexperience.com/2013/08/returning-a-tableview-back-to-an-unsorted-state-in-javafx-8-0 > > > > > > Of course, I can see that you've already read that post (I see a comment > > from the code in my post in your code below). What might have been missed > > is that I noted earlier on in the blog post I had to make a few small > > changes to properly get SortedList support in TableView, so you'll want > to > > try again in b102 (or b103). > > > > Regarding your use of FilteredList as well - I've not tried this at all, > > but I'll add it to my todo list to investigate today. I imagine there > might > > be a bug somewhere. Whatever I find will probably make for a good post at > > FXExperience, so keep an eye out there too. > > > > Thanks, and if you do run into further issues, please don't hesitate to > > file bugs. In general, if TableView isn't sorting then something is going > > really wrong! > > > > -- Jonathan > > > > > > On 8/08/2013 11:17 p.m., Martin Klähn wrote: > > > >> Hi guys, > >> > >> I'm working on a business application that makes use of TableView and > I'm > >> working with JDK 8 build b101. > >> > >> Displaying the data works like a charm. Row sorting for ordinary > >> ObservableLists is fine too. > >> > >> Then I've set TableView.items to FilteredList and row sorting was > >> disabled. > >> replacing TableView.item with SortedList does not allow row sorting as > >> well. Binding the comparator of SortedList to the TableView.comparator > has > >> no effect either. > >> > >> > >> // row sorting possible > >> //final TableView<Integer> tableView = new > >> TableView<>(FXCollections.**observableArrayList(2, 1, 3)); > >> > >> // row sorting not possible (SortedList) > >> // create a TableView with the sorted list set as the items it will show > >> // bind the sortedList comparator to the TableView comparator > >> //SortedList<Integer> sortedList = new > >> SortedList<>(FXCollections.**observableArrayList(2, 1, 3)); > >> > //sortedList.**comparatorProperty().bind(**tableView.comparatorProperty() > >> **); > >> //final TableView<Integer> tableView = new TableView<>(sortedList); > >> > >> // row sorting not possible (FilteredList) > >> //FilteredList<Integer> filteredList = new > >> FilteredList<>(FXCollections.**observableArrayList(2, 1, 3), (e) -> > >> true); > >> //final TableView<Integer> tableView = new TableView<>(filteredList ); > >> > >> // Don't forget to define columns! > >> final TableColumn<Integer, Number> integerColumn = new > >> TableColumn<>("Integer"); > >> final TableColumn<Integer, String> hexColumn = new > TableColumn<>("Integer > >> Hex"); > >> > >> integerColumn.**setCellValueFactory(javaClass -> new > >> SimpleLongProperty(javaClass.**getValue())); > >> hexColumn.setCellValueFactory(**javaClass -> new > >> SimpleStringProperty(Integer.**toHexString(javaClass.**getValue()))); > >> > >> tableView.getColumns().addAll(**integerColumn, hexColumn); > >> > >> > >> Any pointers on what I'm doing wrong or where I have to adapt my > >> expectations. > >> Is it correct that row sorting in a TableView is only possible for > >> ordinary > >> ObservableLists? > >> > >> > >> With Regards > >> Martin > >> > > > > > -- Sven Reimers * Senior Expert Software Architect * NetBeans Dream Team Member: http://dreamteam.netbeans.org * Community Leader NetBeans: http://community.java.net/netbeans Desktop Java: http://community.java.net/javadesktop * Duke's Choice Award Winner 2009 * Blog: http://nbguru.blogspot.com * XING: https://www.xing.com/profile/Sven_Reimers8 * LinkedIn: http://www.linkedin.com/in/svenreimers Join the NetBeans Groups: * XING: http://www.xing.com/group-20148.82db20 * NUGM: http://haug-server.dyndns.org/display/NUGM/Home * LinkedIn: http://www.linkedin.com/groups?gid=1860468 http://www.linkedin.com/groups?gid=107402 http://www.linkedin.com/groups?gid=1684717 * Oracle: https://mix.oracle.com/groups/18497