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()))
);