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

Reply via email to