VerifyError for wrong declared business methods in SessionBean classes in EAP6+
Issue
- wrong declared EJB business methods 'public final void aMethod()' are not detected during deployment and produce weird error messages during runtime if the EJB is used
- deployment of an application failed after migrating from 6.3 to 6.4 with a VerifyError
Caused by: org.jboss.weld.exceptions.WeldException: by java.lang.VerifyError: class com.redhat.example.1866331487$Proxy$_$$_WeldSubclass overrides final method getValue.()Lcom/redhat/example/ResponseValue;
at org.jboss.weld.bean.proxy.ProxyFactory.getProxyClass(ProxyFactory.java:294)
at org.jboss.weld.bean.AbstractClassBean.createEnhancedSubclass(AbstractClassBean.java:423)
at org.jboss.weld.bean.AbstractClassBean.initEnhancedSubclass(AbstractClassBean.java:411)
at org.jboss.weld.bean.AbstractClassBean.initializeAfterBeanDiscovery(AbstractClassBean.java:150)
at org.jboss.weld.bean.SessionBean.initializeAfterBeanDiscovery(SessionBean.java:208)
at org.jboss.weld.bootstrap.BeanDeployment.doAfterBeanDiscovery(BeanDeployment.java:231)
at org.jboss.weld.bootstrap.BeanDeployment.afterBeanDiscovery(BeanDeployment.java:222)
at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:365)
at org.jboss.as.weld.WeldStartService.start(WeldStartService.java:64)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1980) [jboss-msc-1.1.6.Final-redhat-1.jar:1.1.6.Final-redhat-1]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1913) [jboss-msc-1.1.6.Final-redhat-1.jar:1.1.6.Final-redhat-1]
... 3 more
Caused by: javassist.CannotCompileException: by java.lang.VerifyError: class om.redhat.example.1866331487$Proxy$_$$_WeldSubclass overrides final method getValue.()Lcom/redhat/example/ResponseValue;
at org.jboss.weld.util.bytecode.ClassFileUtils.toClass(ClassFileUtils.java:99)
at org.jboss.weld.bean.proxy.ProxyFactory.createProxyClass(ProxyFactory.java:397)
at org.jboss.weld.bean.proxy.ProxyFactory.getProxyClass(ProxyFactory.java:287)
... 13 more
Caused by: java.lang.VerifyError: class om.redhat.example.1866331487$Proxy$_$$_WeldSubclass overrides final method getValue.()Lcom/redhat/example/ResponseValue;
at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.7.0_80]
at java.lang.ClassLoader.defineClass(ClassLoader.java:800) [rt.jar:1.7.0_80]
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) [:1.7.0_80]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_80]
at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_80]
at org.jboss.weld.util.bytecode.ClassFileUtils.toClass2(ClassFileUtils.java:118)
at org.jboss.weld.util.bytecode.ClassFileUtils.toClass(ClassFileUtils.java:95)
... 15 more
Environment
- Red Hat JBoss Enterprise Application Platform (EAP)
- 6.x
- 7.0
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.