[weld-issues] [JBoss JIRA] Commented: (WELD-769) Intercepting a method in a bean where another method is final causes a VerifyError

Stuart Douglas (JIRA) jira-events at lists.jboss.org
Mon Nov 29 03:27:09 EST 2010


    [ https://jira.jboss.org/browse/WELD-769?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12565766#comment-12565766 ] 

Stuart Douglas commented on WELD-769:
-------------------------------------

To clarify, we will be able to fix the VerifyError, however as the final method cannot be overridden an invocation cannot be delegated to be bean instance and will be invoked directly on the interceptor proxy. 

> Intercepting a method in a bean where another method is final causes a VerifyError
> ----------------------------------------------------------------------------------
>
>                 Key: WELD-769
>                 URL: https://jira.jboss.org/browse/WELD-769
>             Project: Weld
>          Issue Type: Bug
>          Components: Proxies
>    Affects Versions: 1.1.0.Beta2
>            Reporter: Adam Warski
>            Assignee: Stuart Douglas
>         Attachments: weld.11.bugs.tar.gz
>
>
> Used to work fine until AS6 CR1 (tested in M2 and M4). 
> Stack trace:
> org.jboss.arquillian.impl.event.FiredEventException: java.lang.RuntimeException: Could not inject members
> 	at org.jboss.arquillian.impl.event.MapEventManager.fire(MapEventManager.java:68)
> 	at org.jboss.arquillian.impl.context.AbstractEventContext.fire(AbstractEventContext.java:115)
> 	at org.jboss.arquillian.impl.EventTestRunnerAdaptor.before(EventTestRunnerAdaptor.java:97)
> 	at org.jboss.arquillian.testng.Arquillian.arquillianBeforeTest(Arquillian.java:89)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:644)
> 	at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:443)
> 	at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:160)
> 	at org.testng.internal.Invoker.invokeMethod(Invoker.java:494)
> 	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:700)
> 	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1002)
> 	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:137)
> 	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:121)
> 	at org.testng.TestRunner.runWorkers(TestRunner.java:908)
> 	at org.testng.TestRunner.privateRun(TestRunner.java:617)
> 	at org.testng.TestRunner.run(TestRunner.java:498)
> 	at org.testng.SuiteRunner.runTest(SuiteRunner.java:329)
> 	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:324)
> 	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:296)
> 	at org.testng.SuiteRunner.run(SuiteRunner.java:201)
> 	at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:915)
> 	at org.testng.TestNG.runSuitesLocally(TestNG.java:879)
> 	at org.testng.TestNG.run(TestNG.java:787)
> 	at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:75)
> 	at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:92)
> Caused by: java.lang.RuntimeException: Could not inject members
> 	at org.jboss.arquillian.testenricher.cdi.CDIInjectionEnricher.injectClass(CDIInjectionEnricher.java:103)
> 	at org.jboss.arquillian.testenricher.cdi.CDIInjectionEnricher.enrich(CDIInjectionEnricher.java:52)
> 	at org.jboss.arquillian.impl.handler.TestCaseEnricher.callback(TestCaseEnricher.java:42)
> 	at org.jboss.arquillian.impl.handler.TestCaseEnricher.callback(TestCaseEnricher.java:32)
> 	at org.jboss.arquillian.impl.event.MapEventManager.fire(MapEventManager.java:63)
> 	... 27 more
> Caused by: org.jboss.weld.exceptions.DeploymentException: by java.lang.VerifyError: class pl.softwaremill.weldbugs.bug2.org$jboss$weld$bean-1ed4ae51-6ceb-40b2-899a-ed6d1f90409e$jar-ManagedBean-class_pl$softwaremill$weldbugs$bug2$TestBean2_$$_WeldProxy overrides final method someMethod.()V
> 	at org.jboss.weld.bean.ManagedBean.applyInterceptors(ManagedBean.java:569)
> 	at org.jboss.weld.bean.ManagedBean$ManagedBeanInjectionTarget.produce(ManagedBean.java:250)
> 	at org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:332)
> 	at org.jboss.weld.context.unbound.DependentContextImpl.get(DependentContextImpl.java:59)
> 	at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:669)
> 	at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:743)
> 	at org.jboss.weld.injection.FieldInjectionPoint.inject(FieldInjectionPoint.java:137)
> 	at org.jboss.weld.util.Beans.injectBoundFields(Beans.java:869)
> 	at org.jboss.weld.util.Beans.injectFieldsAndInitializers(Beans.java:881)
> 	at org.jboss.weld.manager.SimpleInjectionTarget$1.proceed(SimpleInjectionTarget.java:122)
> 	at org.jboss.weld.injection.InjectionContextImpl.run(InjectionContextImpl.java:54)
> 	at org.jboss.weld.manager.SimpleInjectionTarget.inject(SimpleInjectionTarget.java:116)
> 	at org.jboss.arquillian.testenricher.cdi.CDIInjectionEnricher.injectNonContextualInstance(CDIInjectionEnricher.java:113)
> 	at org.jboss.arquillian.testenricher.cdi.CDIInjectionEnricher.injectClass(CDIInjectionEnricher.java:93)
> 	... 31 more
> Caused by: org.jboss.weld.exceptions.WeldException: by java.lang.VerifyError: class pl.softwaremill.weldbugs.bug2.org$jboss$weld$bean-1ed4ae51-6ceb-40b2-899a-ed6d1f90409e$jar-ManagedBean-class_pl$softwaremill$weldbugs$bug2$TestBean2_$$_WeldProxy overrides final method someMethod.()V
> 	at org.jboss.weld.bean.proxy.ProxyFactory.getProxyClass(ProxyFactory.java:268)
> 	at org.jboss.weld.bean.proxy.ProxyFactory.create(ProxyFactory.java:198)
> 	at org.jboss.weld.bean.ManagedBean.applyInterceptors(ManagedBean.java:564)
> 	... 44 more
> Caused by: javassist.CannotCompileException: by java.lang.VerifyError: class pl.softwaremill.weldbugs.bug2.org$jboss$weld$bean-1ed4ae51-6ceb-40b2-899a-ed6d1f90409e$jar-ManagedBean-class_pl$softwaremill$weldbugs$bug2$TestBean2_$$_WeldProxy overrides final method someMethod.()V
> 	at org.jboss.weld.util.bytecode.ClassFileUtils.toClass(ClassFileUtils.java:117)
> 	at org.jboss.weld.bean.proxy.ProxyFactory.createProxyClass(ProxyFactory.java:376)
> 	at org.jboss.weld.bean.proxy.ProxyFactory.getProxyClass(ProxyFactory.java:264)
> 	... 46 more
> Caused by: java.lang.VerifyError: class pl.softwaremill.weldbugs.bug2.org$jboss$weld$bean-1ed4ae51-6ceb-40b2-899a-ed6d1f90409e$jar-ManagedBean-class_pl$softwaremill$weldbugs$bug2$TestBean2_$$_WeldProxy overrides final method someMethod.()V
> 	at java.lang.ClassLoader.defineClass1(Native Method)
> 	at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
> 	at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
> 	at java.lang.ClassLoader.defineClass(ClassLoader.java:466)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at org.jboss.weld.util.bytecode.ClassFileUtils.toClass2(ClassFileUtils.java:143)
> 	at org.jboss.weld.util.bytecode.ClassFileUtils.toClass(ClassFileUtils.java:109)
> 	... 48 more

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

        


More information about the weld-issues mailing list