Error: Unable to deserialize Report

Thanks @icrc.thonorio for sharing your findings.

The reports that disappear seem to share a common trait: their serialized report definitions’ <creator/> contains an Hibernate proxy class name. This is very similar to what what was happening back in 2015 and described on that other thread.

  • Back then it was because of Javaassist names, eg. "org.openmrs.User_$$_jvst6de_41".
  • Now it’s because of Hibernate proxy names, eg. "org.openmrs.User$HibernateProxy$ODcBnusu".

@icrc.thonorio looks like we need to expand on @mogoodrich’s fix of back in the days, see SXS-24 here ; or that we figure out what process writes those names and then do something like what was done here by @icrc.psousa on Data Filter: Rely on Hibernate getClass method on entities to avoid getting proxy … · openmrs/openmrs-module-datafilter@027d476 · GitHub

The latter may be difficult as this may be happening in XStream itself. XStream was upgraded often recently actually, you can git blame this line to see that: openmrs-core/pom.xml at e9703b6094a0ffc244b66ce62319af7b2550eb09 · openmrs/openmrs-core · GitHub