Skip to content

Conversation

@sleicht
Copy link

@sleicht sleicht commented Aug 19, 2025

What is the purpose of the change

Resolves AVRO-1425:

Changes the class loading strategy in ClassUtils to first try the current thread's context class loader before falling back to the context class's class loader. This improves class loading reliability in different runtime environments.

Removes the overloaded forName method that accepted a ClassLoader parameter and updates all callers to use the simplified method signature.

Verifying this change

This change is already covered by existing tests, such as TestSpecificData.

I also tested with a local SpringBoot application using Avro/Kafka and SpringBoot DevTools. Without the change I get a ClassCastException, and with the change it works as expected.

Documentation

  • Does this pull request introduce a new feature? no
  • If yes, how is the feature documented? already working as documented

…xt class's class loader

Changes the class loading strategy in ClassUtils to first try the current thread's
context class loader before falling back to the context class's class loader. This
improves class loading reliability in different runtime environments.

Removes the overloaded forName method that accepted a ClassLoader parameter and
updates all callers to use the simplified method signature.
@github-actions github-actions bot added the Java Pull Requests for Java binding label Aug 19, 2025
@sleicht sleicht changed the title AVRO-1425: [Java] first try ContextClassLoader of current thread and fallback to contextClass ClassLoader AVRO-1425: [Java] prioritise thread context ClassLoader over context class ClassLoader Aug 19, 2025
@sleicht
Copy link
Author

sleicht commented Aug 19, 2025

Updated original repo which showed the issue in SpringBoot/DevTools/Avro: https://github.com/sleicht/spring-boot-devtools-with-avro

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Java Pull Requests for Java binding

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant