Everything works nice, sorting, pagination, etc, but query.getFilter().orElse(null) is always returning null. I have verified that wrapper.setFilter(valueChangeEvent.getValue()) is setting the filter value correctly. Any ideas as to what could be the problem?
Hi, I try this solution with vaadin 14, and as soon as i enter second Character in textfield Filter, i have an exception:
java.lang.ClassCastException: class java.lang.String cannot be cast to class java.lang.Void (java.lang.String and java.lang.Void are in module java.base of loader ‘bootstrap’)
at com.vaadin.flow.data.provider.FilterUtils.combineFilters(FilterUtils.java:56)
at com.vaadin.flow.data.provider.DataProvider$2.combineFilters(DataProvider.java:240)
at com.vaadin.flow.data.provider.ConfigurableFilterDataProviderWrapper.getFilter(ConfigurableFilterDataProviderWrapper.java:59)
at com.vaadin.flow.data.provider.DataProviderWrapper.size(DataProviderWrapper.java:86)
at com.vaadin.flow.data.provider.DataProviderWrapper.size(DataProviderWrapper.java:85)
at com.vaadin.flow.data.provider.DataCommunicator.getDataProviderSize(DataCommunicator.java:336)
at com.vaadin.flow.data.provider.DataCommunicator.flush(DataCommunicator.java:453)
at com.vaadin.flow.data.provider.DataCommunicator.lambda$requestFlush$2f364bb9$1(DataCommunicator.java:425)
at com.vaadin.flow.internal.StateTree.lambda$runExecutionsBeforeClientResponse$1(StateTree.java:368)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1507)
at com.vaadin.flow.internal.StateTree.runExecutionsBeforeClientResponse(StateTree.java:365)
at com.vaadin.flow.server.communication.UidlWriter.encodeChanges(UidlWriter.java:411)
at com.vaadin.flow.server.communication.UidlWriter.createUidl(UidlWriter.java:187)
at com.vaadin.flow.server.communication.UidlRequestHandler.writeUidl(UidlRequestHandler.java:121)
at com.vaadin.flow.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:90)
at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1540)
at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:247)
at com.vaadin.flow.spring.SpringServlet.service(SpringServlet.java:95)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
The exception occurs in combineFilters method.
Can you help me? Any Ideas?
`default <Q, C> ConfigurableFilterDataProvider<T, Q, C> withConfigurableFilter(
SerializableBiFunction<Q, C, F> filterCombiner) {
return new ConfigurableFilterDataProviderWrapper<T, Q, C, F>(this) {
@Override
protected F combineFilters(Q queryFilter, C configuredFilter) {
return FilterUtils.combineFilters(filterCombiner, queryFilter,
configuredFilter);
}
};
}`