I have a set of report definitions that have been running very well, until recently some of them have started failing to load on the UI. The error is always saying that there is no report definition available with the specified uuid, yet when you check in the serialized_object table, such definitions exists. Anyone with a clue on what is going on? @mseaton@dkayiwa@mogoodrich, here is a link to the error https://pastebin.com/ujEdvuHm
Yes, on the main server, a normal OS update was done. Taking the server backup and trying to run the same on my local instance which has the following:
openjdk version "1.8.0_222"OpenJDK Runtime Environment (build 1.8.0_222-8u222-b10-1ubuntu1~16.04.1-b10)OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)Reporting module 1.17.0Serialization Xstream 0.2.14Platform Version: 2.1.4 Build 2cb839RefApp 2.9.0
@ningosi we ran into a similar issue after the automated update to Java 8 “222”.
We fixed it and released version 1.18.0 of the reporting module:
Can you try upgrading to Reporting 1.18.0 and see if that fixes the issue?
You error message looks slightly different than the one we were seeing so it’s possible this is something related but will require further debugging to fix.
Yes, let me share the entire serialized_object table.
Find the link here, am running refApp 2.0.6 and the offending reports are of uuid fed89032-0017-11e8-9580-f731617cc228 and 713f9b56-0271-11e8-8377-3fa4a39ea76a
Given the issues that @mogoodrich highlighted above, the issue is with changes that occurred in new versions of Java that prevents certain serialization from working. If you look at the tickets within the reporting 1.18.0 release, we ended up putting 2 fixes in place:
Added no-args constructors to DataConverter classes
Ensured any inner classes implemented Serializable
Since you appear to have custom DataConverter classes within your module, one thing you could try would be to ensure all of these have no-arg constructors. Your stack trace does indicate that your “org.openmrs.module.aihdreports.reporting.converter.GenderConverter” class might be one that needs addressing.