On 08/12/2013 03:19 PM, Paul Sandoz wrote:
>- inherited annotations. They are combined with declared annotations in a Map 
that is cached in the AnnotationData. If superclass is redefined, the inherited 
annotations are not invalidated. Unless the VM increments classRedefinedCount for 
the redefined class and all currently loaded subclasses. I don't know if this is 
the case.
Same here. There is a comment which implies it does get updated:

2389     // Incremented by the VM on each call to JVM TI RedefineClasses()
2390     // that redefines this class or a superclass.
2391     private volatile transient int classRedefinedCount = 0;

Oh, I missed that. Thanks for pointing it out. There's no problem for inherited annotations then. But if a default in the annotation declaration changes, then it only affects annotations that are constructed after that...

Regards, Peter

Reply via email to