Create ServiceHolderImpl with correct service implementation type #4100
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.
As described in #4099,
ServiceHolder#getImplementationClass()
sometimes doesn't return the actual implementation class of the service, butorg.glassfish.jersey.inject.hk2.InstanceSupplierFactoryBridge
instead. This leads to the situation that Jersey looks for@Priority
annotations on the wrong type (detailed description in #4099).This change fixes the underlying problem and ordering via
@Priority
works fine now. Unforunately I wasn't able to reproduce the issue in an integration test. I guess that's because HK2 behaves differently when deploying a real app to Glassfish.