[ 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