Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CachedIntrospectionResults should use BeanInfoFactory when introspecting implemented interfaces [SPR-16322] #20869

Closed
spring-issuemaster opened this issue Dec 22, 2017 · 2 comments

Comments

Projects
None yet
2 participants
@spring-issuemaster
Copy link
Collaborator

commented Dec 22, 2017

Phil Webb opened SPR-16322 and commented

#18772 updated CachedIntrospectionResults to explicitly introspect implemented interfaces (for Java 8 default methods), however it directly calls Introspector.getBeanInfo and I believe it should probably try the BeanInfoFactory implementations first, in case a custom introspection method is being used.

It's also possible to skip the Serializable interface and stop when Object is reached (rather than null).


Affects: 5.0.2

Issue Links:

  • #18772 Java 8 default methods not detected as bean properties
  • #21208 Reduce ClassUtils.forName overhead (in particular for annotation introspection purposes)
  • #21516 CachedIntrospectionResults should build complete descriptor for setter/getter across interface hierarchy
  • #21110 Consider caching interface-derived BeanInfo instances in CachedIntrospectionResults

Referenced from: pull request #1631, and commits 45828cb

@spring-issuemaster

This comment has been minimized.

Copy link
Collaborator Author

commented Dec 22, 2017

Phil Webb commented

#1631

@spring-issuemaster

This comment has been minimized.

Copy link
Collaborator Author

commented Jan 8, 2018

Juergen Hoeller commented

I've applied a fresh implementation of these points, with a common ClassUtils.isJavaLanguageInterface delegate shared with Conventions where not only Serializable but also Externalizable, Cloneable and Comparable are being ignored.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.