Hi,

I'm using Apache Wicket 7.9.0 alongside Spring 5.0.5.RELEASE. In one of my 
beans, I call some stream API containing multiple lambda expressions. During 
that page execution, I get following exception:

Caused by: java.io.NotSerializableException: 
org.devocative.metis.service.data.ReportService$$Lambda$126/997816965

and it is very strange for me since it is in one of my beans not in any 
Wicket-related part.

I've searched and I've found the Serializable casting solution, however it 
results in a very complex syntax for my code. So is there any other solution? 
Dose Wicket has a way for this type of serialization?


P.S: My block of code for stream:

reports.parallelStream()
   .filter(report ->
      externalAuthorizationService == null ||
         externalAuthorizationService.authorizeReport(report, null, 
currentUser.getUserId())
   )
   .flatMap(report -> report.getGroups().stream().map(dataGroup -> new 
KeyValueVO<>(dataGroup, report)))
   .collect(Collectors.groupingBy(
      KeyValueVO::getKey,
      () -> new TreeMap<>(Comparator.comparing(DataGroup::getName)),
      Collectors.mapping(
         KeyValueVO::getValue,
         Collectors.toList()))
   );

Reply via email to