Duplicate
Details
Assignee
Hardy FerentschikHardy FerentschikReporter
sebastian haassebastian haasBug Testcase Reminder (view)
Bug reports should generally be accompanied by a test case!
Bug Testcase Reminder (edit)
Bug reports should generally be accompanied by a test case!
Participants
Hardy Ferentschiksebastian haasComponents
Fix versions
Affects versions
Priority
Major
Details
Details
Assignee
Hardy Ferentschik
Hardy FerentschikReporter
sebastian haas
sebastian haasBug Testcase Reminder (view)
Bug reports should generally be accompanied by a test case!
Bug Testcase Reminder (edit)
Bug reports should generally be accompanied by a test case!
Participants
Hardy Ferentschik
sebastian haas
Components
Fix versions
Affects versions
Priority
Created October 10, 2014 at 10:58 AM
Updated October 22, 2014 at 2:50 PM
Resolved October 22, 2014 at 11:13 AM
Class.getAnnotations()
returns a Proxy object wrapping the annotation class; these objects are cached.ConstraintDescriptorImpl
uses theequals()
method of the annotation, but the proxy object does not implement a equals method, soObject.equals()
is used.Under high load or low memory, the cached proxy objects get cleared and newly initialized, which breaks the equals-check and the validation gets skipped.
Annotation.annotationType()
should be checked.This bug may be related to
I'm still working on an unittest to show this behavior. At the moment we can reproduce it by hammering our Struts2 application with JMeter.