You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by "Jarek Gawor (JIRA)" <ji...@apache.org> on 2011/05/04 18:38:03 UTC

[jira] [Assigned] (GERONIMO-5946) error when starting server with -noverify option

     [ https://issues.apache.org/jira/browse/GERONIMO-5946?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jarek Gawor reassigned GERONIMO-5946:
-------------------------------------

    Assignee: Jarek Gawor

> error when starting server with -noverify option
> ------------------------------------------------
>
>                 Key: GERONIMO-5946
>                 URL: https://issues.apache.org/jira/browse/GERONIMO-5946
>             Project: Geronimo
>          Issue Type: Bug
>      Security Level: public(Regular issues) 
>    Affects Versions: 3.0
>            Reporter: Kevan Miller
>            Assignee: Jarek Gawor
>             Fix For: 3.0
>
>
> If you set the "-noverify" java option will result in the following exception and server startup fails:
> {code}
> java.lang.NoClassDefFoundError: org/apache/xbean/asm/ClassReader
>         at org.apache.xbean.recipe.XbeanAsmParameterNameLoader.createClassReader(XbeanAsmParameterNameLoader.java:201)
>         at org.apache.xbean.recipe.XbeanAsmParameterNameLoader.getAllConstructorParameters(XbeanAsmParameterNameLoader.java:111)
>         at org.apache.xbean.recipe.XbeanAsmParameterNameLoader.get(XbeanAsmParameterNameLoader.java:82)
>         at org.apache.xbean.recipe.ReflectionUtil.getParameterNames(ReflectionUtil.java:906)
>         at org.apache.xbean.recipe.ReflectionUtil.findConstructor(ReflectionUtil.java:636)
>         at org.apache.xbean.recipe.ObjectRecipe.findFactory(ObjectRecipe.java:563)
>         at org.apache.xbean.recipe.ObjectRecipe.internalCreate(ObjectRecipe.java:274)
>         at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:96)
>         at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:61)
>         at org.apache.geronimo.tomcat.model.ExecutorType.getExecutor(ExecutorType.java:127)
>         at org.apache.geronimo.tomcat.model.ServiceType.getService(ServiceType.java:281)
>         at org.apache.geronimo.tomcat.model.ServerType.build(ServerType.java:300)
>         at org.apache.geronimo.tomcat.TomcatServerGBean.<init>(TomcatServerGBean.java:141)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>         at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>         at org.apache.xbean.recipe.ReflectionUtil$ConstructorFactory.create(ReflectionUtil.java:952)
>         at org.apache.xbean.recipe.ObjectRecipe.internalCreate(ObjectRecipe.java:276)
>         at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:96)
>         at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:61)
>         at org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:933)
>         at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:271)
>         at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:105)
>         at org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:127)
>         at org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:560)
>         at org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:386)
>         at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:460)
>         at org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:226)
>         at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:702)
>         at org.apache.geronimo.system.main.EmbeddedDaemon.doStartup(EmbeddedDaemon.java:211)
>         at org.apache.geronimo.system.main.EmbeddedDaemon.execute(EmbeddedDaemon.java:91)
>         at org.apache.geronimo.system.osgi.BootActivator$1.execute(BootActivator.java:107)
>         at org.apache.geronimo.main.Bootstrapper.execute(Bootstrapper.java:65)
>         at org.apache.geronimo.cli.AbstractCLI.executeMain(AbstractCLI.java:65)
>         at org.apache.geronimo.cli.daemon.DaemonCLI.main(DaemonCLI.java:32)
> Caused by: java.lang.ClassNotFoundException: org.apache.xbean.asm.ClassReader
>         at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:506)
>         at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422)
>         at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
>         at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
>         ... 36 more
> {code}
> Problem is that -noverify is turning off early detection of classloading issues in the following org.apache.xbean.recipe.ReflectionUtil code:
> {code}
>  static
>   {
>     String[] impls = { "org.apache.xbean.recipe.XbeanAsmParameterNameLoader", "org.apache.xbean.recipe.AsmParameterNameLoader" };
>     for (String impl : impls)
>       try {
>         Class loaderClass = ReflectionUtil.class.getClassLoader().loadClass(impl).asSubclass(ParameterNameLoader.class);
>         parameterNamesLoader = (ParameterNameLoader)loaderClass.newInstance();
>         break;
>       }
>       catch (Throwable ignored)
>       {
>       }
>   }
> {code}
> With --noverify, the load of "org.apache.xbean.recipe.XbeanAsmParameterNameLoader" will succeed, but fail later. Without --noverify (i.e. -verify), the load of "org.apache.xbean.recipe.XbeanAsmParameterNameLoader" fails in the above load.
>  

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira