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

@Order annotations not consistently honored within DispatcherServlet and other parts of the framework [SPR-12806] #17403

Closed
spring-issuemaster opened this issue Mar 11, 2015 · 1 comment

Comments

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

commented Mar 11, 2015

Oliver Drotbohm opened SPR-12806 and commented

DispatcherServlet.initHandlerMappings(…) uses OrderComparator.sort(…) instead of AnnotationAwareOrderComparator.sort(…) which misses out HandlerMappings that use @Order instead of implementing Ordered.

Probably an oversight that stems from the times when @Order didn't even exists. Might be worth grepping the framework sources for other uses of OrderComparator as I think AnnotationAwareOrderComparator should be used everywhere OrderComparator is used nowadays.


Affects: 4.0.9, 4.1.5

Issue Links:

  • #17018 Support @Order on ApplicationListeners
  • #20761 Document common use cases for @Order vs @Priority vs @DependsOn

Referenced from: commits 13659d6

@spring-issuemaster

This comment has been minimized.

Copy link
Collaborator Author

commented Mar 11, 2015

Juergen Hoeller commented

It's not really an oversight: For traditional Java strategies such as HandlerMapping, we kept using OrderComparator since it fits with the interface model there. Only for annotation-based components, we started delegating to AnnotationAwareOrderComparator.

That said, for 4.2, we are already considering wider use of AnnotationAwareOrderComparator, see e.g. #17018. I suppose we'll cover this for DispatcherServlet's strategies as well then.

Juergen

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.