Witam.
Mam problem z prezentowanym kodem.
Jeo zadaniem jest odświeżać dane w tabeli do której podpięta jest personList.
Kiedy dokonuje zmniejszenia ilości pól poprzez

data = personQuery.getResultList().subList(Integer.parseInt(jtextOd.getText()) , Integer.parseInt(jtextDo.getText()));

Działa bez problemu i pojawia się mniejsza ilość elementów.
Jednak jeżeli zwiększę ilość rekordów w tabeli to po wywołaniu tego kodu otrzymuje błąd:

Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 27, Size: 27
.......

generowany przez linię : personList.addAll(data);

jak poprawić ten kod aby działał?

Pozdrawiam
Marian

@Action
public Task refresh() {
return new RefreshTask(getApplication());
}
private class RefreshTask extends Task {
RefreshTask(org.jdesktop.application.Application app) {
super(app);
}
@SuppressWarnings("unchecked")
@Override protected Void doInBackground() {
try {

            java.util.List<agencjapodrozy.Person> data;
            personQuery = travelPUEntityManager.createQuery("SELECT p FROM Person p where p.name LIKE '%"+jtextName.getText()+"%'"    );
            System.out.println(personQuery.getResultList().size());
            
            if ((jtextOd.getText().trim().length()<1) || (jtextDo.getText().trim().length()<1)){
             
             data = personQuery.getResultList(); 
             
            } else {
                
             data = personQuery.getResultList().subList(Integer.parseInt(jtextOd.getText()) , Integer.parseInt(jtextDo.getText()));    
            }
           
            
            for (Object entity : data) {
                travelPUEntityManager.refresh(entity);
            }
            Thread.sleep(1300L); // remove for real app
            setProgress(4, 0, 4);
            Thread.sleep(150L); // remove for real app
            
                    
          // personList = personQuery.getResultList();
 
          personList.clear();
          personList.addAll(data);
          
 
            
        } catch(Exception ex) {System.out.println(ex); }
        return null;
    }
}