OSGi fix: Set thread context classloader so deserializer in shiro-lang can find classes in shiro-core to fix #2083 #2084
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #2083
The fix is that code in shiro-core (which has a classloader that "sees" all of the classes in shiro-core and shiro-lang) sets its classloader as the thread context classloader, so that the deserializer in shiro-lang (which on its own in OSGi has a classloader that does not see the classes in shiro-core) , can use the thread context classloader to find the deserialized classes.
The fix is one line, as well as one line of comment explaining why the line is there (I have filled in the contributing thing earlier, even though probably not needed for this).