I have found that the TableView class does not seem to like the number of columns to change, even by making some visible and non-visible, after it has been set the first time. If I add some columns to a table and then call setStyle inside the updateItems method of the CellFactory for the columns, and then afterwards remove a column or just make one not visible I will get a StackOverflowError. If I just remove the setStyle then I don't get the error.