Details
-
Type:
Bug
-
Status: Resolved
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 2.17.3
-
Component/s: camel-avro
-
Labels:None
-
Patch Info:Patch Available
-
Estimated Complexity:Unknown
-
External issue URL:
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