title: IndexOutOfBoundsException in the first row of Glazedlist table?
body: <p>I have build 3 Glazedlist table. when the user clicked on the row of the first table it shows list in the second table.
  when click on row in second table it displaies other list in the 3th table.
  Problem is when i click the first row in first table sometimes following exception appears.</p>
  
  <p><strong>Does any body know Why do i get IndexOutOfBoundsException and how get rid of it?</strong></p>
  
  <pre><code>Exception in thread "AWT-EventQueue-1" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
      at java.util.ArrayList.RangeCheck(ArrayList.java:546)
      at java.util.ArrayList.get(ArrayList.java:321)
      at ca.odell.glazedlists.impl.gui.ThreadProxyEventList.applyChangeToCache(ThreadProxyEventList.java:175)
      at ca.odell.glazedlists.impl.gui.ThreadProxyEventList.access$600(ThreadProxyEventList.java:68)
      at ca.odell.glazedlists.impl.gui.ThreadProxyEventList$UpdateRunner.listChanged(ThreadProxyEventList.java:237)
      at ca.odell.glazedlists.event.ListEventAssembler$ListEventFormat.fire(ListEventAssembler.java:412)
      at ca.odell.glazedlists.event.ListEventAssembler$ListEventFormat.fire(ListEventAssembler.java:409)
      at ca.odell.glazedlists.event.SequenceDependenciesEventPublisher$SubjectAndListener.firePendingEvent(SequenceDependenciesEventPublisher.java:445)
      at ca.odell.glazedlists.event.SequenceDependenciesEventPublisher.fireEvent(SequenceDependenciesEventPublisher.java:344)
      at ca.odell.glazedlists.event.ListEventAssembler.commitEvent(ListEventAssembler.java:316)
      at ca.odell.glazedlists.impl.gui.ThreadProxyEventList$UpdateRunner.run(ThreadProxyEventList.java:225)
      at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
      at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
      at di.pri.debutil.gui.debEventQueue.dispatchEvent(debEventQueue.java:63)
      at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
      at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
      at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
      at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
      at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
  </code></pre>
  
  <p><strong>Code:</strong></p>
  
  <pre><code>// build the table
  EventList&lt;Treat&gt; TreatEventList = summaryModel.getTreatEvenList();
  String[] propertyNames = new String[]{"PlanId", "Number", "Type","dication","stimulation","dication2","Date","Outcome","rank","version"};
  String[] columnLabels = new String[]{"pnr", "NBNR", "handeling","Supp","Stim1","Stim2","date","Outcome","Rank","Version"};
  TableFormat&lt;Treat&gt; tableFormat = GlazedLists.tableFormat(Treat.class, propertyNames, columnLabels);
  SortedList&lt;Treat&gt; TreatSortedList = new SortedList&lt;Treat&gt;(TreatEventList, null);
  cabinaTable = new WebTable(new EventTableModel&lt;Treat&gt;(TreatSortedList, tableFormat)); 
  
  // Configure the Table
  TableComparatorChooser tableSorter = TableComparatorChooser.install(cabinaTable, TreatSortedList, TableComparatorChooser.SINGLE_COLUMN);
  tableSorter.appendComparator(1, 0, true);
  cabinaTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
  cabinaTable.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
  cabinaTable.addMouseListener(new MouseAdapter() {
      @Override
      public void mouseClicked(MouseEvent e) {
          int row = cabinaTable.rowAtPoint(e.getPoint());
          DHDPnr = cabinaTable.getValueAt(row, 0).toString();
          //at this point i set the evntlist for second Glazedlist table
          summaryModel.retrieveAllPredomainWithDHDPnr(dosNr(), DHDPnr);
      }
  });
  </code></pre>