< prev index next >

src/java.base/share/classes/jdk/internal/reflect/NativeConstructorAccessorImpl.java

Print this page

        

@@ -23,13 +23,14 @@
  * questions.
  */
 
 package jdk.internal.reflect;
 
-import java.lang.reflect.*;
 import sun.reflect.misc.ReflectUtil;
 
+import java.lang.reflect.*;
+
 /** Used only for the first few invocations of a Constructor;
     afterward, switches to bytecode-based implementation */
 
 class NativeConstructorAccessorImpl extends ConstructorAccessorImpl {
     private final Constructor<?> c;

@@ -47,10 +48,11 @@
     {
         // We can't inflate a constructor belonging to a vm-anonymous class
         // because that kind of class can't be referred to by name, hence can't
         // be found from the generated bytecode.
         if (++numInvocations > ReflectionFactory.inflationThreshold()
+                && !c.getDeclaringClass().isHiddenClass()
                 && !ReflectUtil.isVMAnonymousClass(c.getDeclaringClass())) {
             ConstructorAccessorImpl acc = (ConstructorAccessorImpl)
                 new MethodAccessorGenerator().
                     generateConstructor(c.getDeclaringClass(),
                                         c.getParameterTypes(),
< prev index next >