moooonk opened a new issue, #2818:
URL: https://github.com/apache/fory/issues/2818

   ### Question
   
   I have a system that needs to persist many types of caches to Redis. 
fory.registeris automatically called during Spring container initialization to 
register various data classes. Yesterday, I discovered that during system 
iteration, previously persisted data started causing runtime dynamic type 
conversion errors. After investigation, I found that data marked as Class A in 
Redis was being deserialized into Class B objects. The deserialization process 
didn’t throw any errors—it only failed later during runtime when a generic type 
cast was enforced.
   While I understand that this is due to setting CompatibleMode.COMPATIBLE, 
which allows field inconsistencies during deserialization, in this case the 
entire class is inconsistent. After a day of step-by-step debugging, I 
identified the root cause: the order of automatic registration by the container 
changed, causing a shift in the class information index and leading to 
incorrect deserialization results.
   Currently, if Fory registration is disabled, a log suggests enabling it. 
However, the requirement that registration order must remain consistent to 
avoid serious errors is only mentioned in the API comments of the 
fory.registerfunction. Could this order-sensitive behavior be highlighted more 
prominently? Alternatively, is there a solution to make the system compatible 
with out-of-order registration? In a rapidly iterating large-scale system, 
maintaining the order of serialized classes or planning IDs for serializable 
classes is quite cumbersome.
   Hi @chaokunyang, hope you can give some advice 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to