Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
2.17.3
-
None
-
Patch Available
-
Unknown
Description
Avro holds a cache of classloaders and other reflection related classes in a static map here:
Keys of that map are {{String}}s with classname.
The cache is never updated, and this breaks OSGi ability to update a new class definition, since avro will keep pointing to the old version.
This will lead to a situation where, on an OSGi platform, you are exposed to ClassCastException since the rest of the platform might see a different varsion than the old one cached by avro.
The attached fix is a simple way to entirely bypass this caching behavior with just public subclasses that turn off just the caching behavior.
Attachments
Issue Links
- links to