title: TableView ListChangeListener may return incorrect list index
body: <p>In a TableView I encountered this strange situation:</p>
  
  <ul>
  <li>click a row -> one item selected</li>
  <li>shift+click the row below -> two items selected</li>
  <li>click the lower of the two rows to single-select it -> call to <code>.getList()</code> returns -1, but second call returns correct index</li>
  </ul>
  
  <p>EDIT:
  This is a bug, it can be tracked at <a href="http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8147820" rel="nofollow">http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8147820</a>
  It was reported for 1.8u60, still there in 1.8u101</p>
  
  <pre><code>@FXML TableView &lt;TableDataRow&gt; table;
  
  @Override
  public void initialize(URL location, ResourceBundle resources) {
  
      table.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
  
      table.getSelectionModel().getSelectedIndices().addListener(new ListChangeListener&lt;Integer&gt;() {
          @Override
          public void onChanged(Change&lt;? extends Integer&gt; c) {
              System.out.print(c.getList()); //sometimes returns [-1]
              System.out.println(c.getList()); //returns correct selection indices
          }
      });
  </code></pre>