Hi Peter,

On 06/11/2013 12:57 AM, Peter Levart wrote:
> When 'sun.reflect.noCaches=true' system property is defined, 
> reflectionData() returns null. In that case, the code should cope 
> without using ReflectionData (no caching). See other uses of 
> reflectionData() (for example: in privateGetDeclaredFields())...

Good catch. Indeed, I was deluged by newReflectionData returning null.
Fixed.

> If 'genericSignature' is cached on ReflectionData then it would be 
> consistent to also cache the derived 'genericInfo', what do you
> think?

"genericSignature" is off the ReflectionData now, so it makes a little
sense to move genericInfo there. The interference of genericInfo and
class redefinition is an interesting in itself, and I think it should be
taken care of elsewhere (notably, when JEP-159 lands). I'm somewhat
resistant to do this along with the performance fix.

> If there was a singleton ClassRepository NONE instance, then event
> the boolean flag wouldn't be needed.

Oh, that's a good idea. Implemented.

The new webrev is here:
  http://cr.openjdk.java.net/~shade/8016236/webrev.02/

Testing:
  - Linux x86_64/release builds OK
  - Linux x86_64/release jdk/test/java/lang/reflect/ jtreg OK
  - Microbenchmark scores are still showing the major increase
  - Layout dumps show Reflection data is 8 bytes more (1 oop + alignment)

-Aleksey.

Reply via email to