Uploaded image for project: 'Aesh'
  1. Aesh
  2. AESH-423

Intermittent InstantiationException creating a new Command instance

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 1.0.0.Alpha1
    • 0.66.10
    • main
    • None

    Description

      In some circumstances initialisation of Command by reflection fails with:

       java.lang.InstantiationException
       	at sun.reflect.InstantiationExceptionConstructorAccessorImpl.newInstance(InstantiationExceptionConstructorAccessorImpl.java:48)
       	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
       	at org.jboss.aesh.util.ReflectionUtil.newInstanceWithParameterTypes(ReflectionUtil.java:85)
       	at org.jboss.aesh.util.ReflectionUtil.instantiateWithConstructor(ReflectionUtil.java:64)
       	at org.jboss.aesh.util.ReflectionUtil.newInstance(ReflectionUtil.java:38)
       	at org.jboss.aesh.cl.parser.ParserGenerator.doGenerateCommandLineParser(ParserGenerator.java:120)
       	at org.jboss.aesh.cl.parser.ParserGenerator.doGenerateCommandLineParser(ParserGenerator.java:121)
       	at org.jboss.aesh.cl.parser.ParserGenerator.generateCommandLineParser(ParserGenerator.java:65)
       	at org.jboss.aesh.console.command.container.AeshCommandContainerBuilder.create(AeshCommandContainerBuilder.java:45)
       	at org.jboss.aesh.console.command.registry.MutableCommandRegistry.addCommand(MutableCommandRegistry.java:132)
       	at org.jboss.aesh.console.command.registry.AeshCommandRegistryBuilder.command(AeshCommandRegistryBuilder.java:46)
       	at org.keycloak.client.registration.cli.KcRegMain.main(KcRegMain.java:38)
       Exception in thread "main" java.lang.RuntimeException: java.lang.InstantiationException
       	at org.jboss.aesh.util.ReflectionUtil.newInstanceWithParameterTypes(ReflectionUtil.java:88)
       	at org.jboss.aesh.util.ReflectionUtil.instantiateWithConstructor(ReflectionUtil.java:64)
       	at org.jboss.aesh.util.ReflectionUtil.newInstance(ReflectionUtil.java:38)
       	at org.jboss.aesh.cl.parser.ParserGenerator.doGenerateCommandLineParser(ParserGenerator.java:120)
       	at org.jboss.aesh.cl.parser.ParserGenerator.doGenerateCommandLineParser(ParserGenerator.java:121)
       	at org.jboss.aesh.cl.parser.ParserGenerator.generateCommandLineParser(ParserGenerator.java:65)
       	at org.jboss.aesh.console.command.container.AeshCommandContainerBuilder.create(AeshCommandContainerBuilder.java:45)
       	at org.jboss.aesh.console.command.registry.MutableCommandRegistry.addCommand(MutableCommandRegistry.java:132)
       	at org.jboss.aesh.console.command.registry.AeshCommandRegistryBuilder.command(AeshCommandRegistryBuilder.java:46)
       	at org.keycloak.client.registration.cli.KcRegMain.main(KcRegMain.java:38)
       Caused by: java.lang.InstantiationException
       	at sun.reflect.InstantiationExceptionConstructorAccessorImpl.newInstance(InstantiationExceptionConstructorAccessorImpl.java:48)
       	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
       	at org.jboss.aesh.util.ReflectionUtil.newInstanceWithParameterTypes(ReflectionUtil.java:85)
       	... 9 more
      

      It seems to have to do with the order in which constructors are returned in ReflectionUtil.java:37.

      Instantiation should either always fail, or always succeed. Currently constructors seem to be consistently ordered on most systems / configurations, but unpredictably or differently ordered on some systems / configurations.

      Attachments

        Activity

          People

            spederse@redhat.com Stale Pedersen
            marko.strukelj@gmail.com Marko Strukelj
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: