Пустые строки в сетке Ваадина после применения фильтра

Я пытаюсь использовать Vaadin Grid с ленивой загрузкой. Когда я добавляю фильтр в сетку, при некоторых значениях фильтра я вижу пустые строки и получаю java.lang.IndexOutOfBoundsException: toIndex = 45. Ниже мой код:

public class ProcessService {

    private List<GeneralProcess> processList;
    private int i;

    public ProcessService() {
        processList=new Repository().list(); //fetch all data from DB

    }


    public List<GeneralProcess> findAll(int offset, int limit, String 
    filter){


        Collections.sort(processList,Comparator
                        .comparing(GeneralProcess::getName));

        if(filter!=null) {

            return processList.stream().filter((s) -> 
                s.getName().startsWith(filter))
           .collect(Collectors.toList()).subList(offset,offset+limit);
        }
        else {
            return processList.subList(offset,offset+limit);
        }
    }


    public int count() {
        return processList.size();
    } 

А вот код из пользовательского интерфейса:

private TextField FilterProcessName= new TextField();

DataProvider<GeneralProcess,String> provider= 
DataProvider.fromFilteringCallbacks(query->{

                int offset = query.getOffset();
                int limit = query.getLimit();
                String filter = query.getFilter().orElse(null);

                List<GeneralProcess> processes = 
                service.findAll(offset, limit,filter);

                return processes.stream();
               },
            query -> service.count()); 

ConfigurableFilterDataProvider<GeneralProcess,Void,String> wrapper=
            provider.withConfigurableFilter();

grid.setDataProvider(wrapper);

FilterProcessName.addValueChangeListener(event -> {
        String filter = event.getValue();
        if (filter.trim().isEmpty()) {

            filter = null;
        }
        wrapper.setFilter(filter);
        grid.getDataProvider().refreshAll();
    });

Проблема возникает, когда значение фильтра очень узкое и в сетке должно быть всего несколько строк. Пожалуйста, помогите

0 ответов

Другие вопросы по тегам