Please help me with updating jtable
the init code is

//Start of init
private void initComponents() {
bindingGroup = new org.jdesktop.beansbinding.BindingGroup();

entityManager1 = java.beans.Beans.isDesignTime() ? null : javax.persistence.Persistence.createEntityManagerF actory("mytable001PU").createEntityManager();
query1 = java.beans.Beans.isDesignTime() ? null : entityManager1.createQuery("select j from JGrpmst j");
list1 = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : query1.getResultList();
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
jButton1 = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstan ts.EXIT_ON_CLOSE);

org.jdesktop.swingbinding.JTableBinding jTableBinding = org.jdesktop.swingbinding.SwingBindings.createJTab leBinding(org.jdesktop.beansbinding.AutoBinding.Up dateStrategy.READ_WRITE, list1, jTable1);
org.jdesktop.swingbinding.JTableBinding.ColumnBind ing columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansb inding.ELProperty.create("${grpid}"));
columnBinding.setColumnName("grpid");
columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansb inding.ELProperty.create("${grpname}"));
columnBinding.setColumnName("grpname");
columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansb inding.ELProperty.create("${penlevel}"));
columnBinding.setColumnName("prnlevel");
bindingGroup.addBinding(jTableBinding);
jTableBinding.bind();
jScrollPane1.setViewportView(jTable1);

jButton1.setText("Add");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout .Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 400, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.Component Placement.UNRELATED)
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 73, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(101, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout .Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 300, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()
.addGap(46, 46, 46)
.addComponent(jButton1))
);

bindingGroup.bind();

pack();
}
// end of init

the add row code is

//Add a row to jTable1
JGrpmst ac = new JGrpmst();
ac.setGrpid(java.util.UUID.randomUUID().toString() );
ac.setGrpname("New Group ");
// entityManager1.getTransaction().begin();
// entityManager1.persist(ac);
// entityManager1.getTransaction().commit();
System.out.print("\n" + this.list1.size());
System.out.print(this.jTable1.getModel().getRowCou nt());
System.out.print(this.jTable1.getRowCount());

this.list1.add(ac);

System.out.print("\n"+this.list1.size());
System.out.print(this.jTable1.getModel().getRowCou nt());
System.out.print(this.jTable1.getRowCount());
//End of ADD row code

there is no error while i add the row and all the sizes are increased by 1
but when i scroll the jtable i get exception of

Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 40, Size: 40
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.get(ArrayList.java:322)
at org.jdesktop.swingbinding.impl.ListBindingManager$ ColumnDescriptionManager.validateBinding(ListBindi ngManager.java:191)
at org.jdesktop.swingbinding.impl.ListBindingManager. valueAt(ListBindingManager.java:99)
at org.jdesktop.swingbinding.JTableBinding$BindingTab leModel.getValueAt(JTableBinding.java:713)
at javax.swing.JTable.getValueAt(JTable.java:2686)
at javax.swing.JTable.prepareRenderer(JTable.java:570 3)
at javax.swing.plaf.basic.BasicTableUI.paintCell(Basi cTableUI.java:2072)
at javax.swing.plaf.basic.BasicTableUI.paintCells(Bas icTableUI.java:1974)
at javax.swing.plaf.basic.BasicTableUI.paint(BasicTab leUI.java:1770)
at javax.swing.plaf.ComponentUI.update(ComponentUI.ja va:143)
at javax.swing.JComponent.paintComponent(JComponent.j ava:752)
at javax.swing.JComponent.paint(JComponent.java:1029)
at javax.swing.JComponent.paintChildren(JComponent.ja va:862)
at javax.swing.JComponent.paint(JComponent.java:1038)
at javax.swing.JViewport.paint(JViewport.java:747)
at javax.swing.JComponent.paintChildren(JComponent.ja va:862)
at javax.swing.JComponent.paint(JComponent.java:1038)
at javax.swing.JComponent.paintToOffscreen(JComponent .java:5124)
at javax.swing.BufferStrategyPaintManager.paint(Buffe rStrategyPaintManager.java:278)
at javax.swing.RepaintManager.paint(RepaintManager.ja va:1224)
at javax.swing.JComponent._paintImmediately(JComponen t.java:5072)
at javax.swing.JComponent.paintImmediately(JComponent .java:4882)
at javax.swing.RepaintManager.paintDirtyRegions(Repai ntManager.java:785)
at javax.swing.RepaintManager.paintDirtyRegions(Repai ntManager.java:713)
at javax.swing.RepaintManager.seqPaintDirtyRegions(Re paintManager.java:693)
at javax.swing.SystemEventQueueUtilities$ComponentWor kRequest.run(SystemEventQueueUtilities.java:125)
at java.awt.event.InvocationEvent.dispatch(Invocation Event.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java: 597)
at java.awt.EventDispatchThread.pumpOneEventForFilter s(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(E ventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarch y(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThre ad.java:122)