Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdi-dev] GlassFish vs. Weld5: java.lang.VerifyError: Expecting a stackmap frame at branch target 12

It might be a Weld bug, literally just got a similar echo from WFLY trying to execute an MP TCK that was previously working.
ATM I don't know what's causing it, although my prime suspect are changes in https://github.com/weld/core/commit/18af30b7ae367ca2dac107d22b64c5c596c7bb6d

Can you give me any additional information on how does the bean with invalid proxy look like? What access modifiers does it have, if it is being self intercepted, anything that might stand out could give me a hint.
It seems to be some rare combination since otherwise there would be failures all over the place but that's not the case...

Regards
Matej

On Mon, May 2, 2022 at 6:25 PM David Matějček <dmatej@xxxxxxxxx> wrote:
Hi, 

Arjan tried to upgrade to the latest Weld 5.0.0.Final (from 5.0.0.CR2), but GlassFish tests failed with the following stacktrace both on JDK11 and JDK17 (reproduced on my machine).
Can someone give us some hint what is wrong? Is it a Weld bug or we have to fix something?
Just 6 tests of 3573 are failing, all related to JMSCDIExtension implemented in GlassFish.

See 
- https://github.com/eclipse-ee4j/glassfish/pull/23925
- https://ci.eclipse.org/glassfish/job/glassfish_build-and-test-using-jenkinsfile/job/PR-23925/

Thanks for help!

David Matějček.

-------------

[2022-05-02T13:35:18.423+0200] [glassfish 7.0] [SEVERE] [AS-EJB-5070] [jakarta.enterprise.ejb.container] [tid: _ThreadID=60 _ThreadName=http-listener-1(4)] [timeMillis: 1651491318423] [levelValue: 1000] [[
Exception creating stateless session bean : [null_injection_SimpleEjb(STATELESS)]]]

[2022-05-02T13:35:18.424+0200] [glassfish 7.0] [WARNING] [AS-EJB-00056] [jakarta.enterprise.ejb.container] [tid: _ThreadID=60 _ThreadName=http-listener-1(4)] [timeMillis: 1651491318424] [levelValue: 900] [[
A system exception occurred during an invocation on EJB SimpleEjb, method: public boolean org.glassfish.tests.jms.injection.SimpleEjb.testTransactionScope()]]

[2022-05-02T13:35:18.425+0200] [glassfish 7.0] [WARNING] [] [jakarta.enterprise.ejb.container] [tid: _ThreadID=60 _ThreadName=http-listener-1(4)] [timeMillis: 1651491318425] [levelValue: 900] [[

jakarta.ejb.EJBException: jakarta.ejb.EJBException: jakarta.ejb.CreateException: Could not create stateless EJB
at com.sun.ejb.containers.StatelessSessionContainer._getContext(StatelessSessionContainer.java:429)
at com.sun.ejb.containers.BaseContainer.getContext(BaseContainer.java:2288)
at com.sun.ejb.containers.BaseContainer.preInvoke(BaseContainer.java:1753)
at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:186)
at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:64)
at jdk.proxy66/jdk.proxy66.$Proxy342.testTransactionScope(Unknown Source)
at org.glassfish.tests.jms.injection.__EJB31_Generated__SimpleEjb__Intf____Bean__.testTransactionScope(Unknown Source)
at org.glassfish.tests.jms.injection.TestServlet.processRequest(TestServlet.java:58)
at org.glassfish.tests.jms.injection.TestServlet.doGet(TestServlet.java:75)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:527)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)
at jdk.internal.reflect.GeneratedMethodAccessor145.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:275)
at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:273)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
at java.base/javax.security.auth.Subject.doAsPrivileged(Subject.java:584)
at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:308)
at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:166)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1572)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:217)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:119)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:611)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:550)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:75)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:121)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:294)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:187)
at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:440)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:144)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:174)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:153)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:196)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:88)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:246)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:178)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:118)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:96)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:51)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:510)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:82)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:83)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:101)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:535)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:515)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: jakarta.ejb.EJBException: jakarta.ejb.CreateException: Could not create stateless EJB
at com.sun.ejb.containers.StatelessSessionContainer$SessionContextFactory.create(StatelessSessionContainer.java:693)
at com.sun.ejb.containers.util.pool.NonBlockingPool.getObject(NonBlockingPool.java:222)
at com.sun.ejb.containers.StatelessSessionContainer._getContext(StatelessSessionContainer.java:425)
... 46 more
Caused by: jakarta.ejb.CreateException: Could not create stateless EJB
at com.sun.ejb.containers.StatelessSessionContainer.createStatelessEJB(StatelessSessionContainer.java:509)
at com.sun.ejb.containers.StatelessSessionContainer$SessionContextFactory.create(StatelessSessionContainer.java:691)
... 48 more
Caused by: java.lang.VerifyError: Expecting a stackmap frame at branch target 12
Exception Details:
Location:
org/glassfish/jms/injection/RequestedJMSContextManager$Proxy$_$$_WeldClientProxy.toString()Ljava/lang/String; @4: ifne
Reason:
Expected stackmap frame at this location.
Bytecode:
0000000: 2ab4 0018 9a00 082a b700 5bb0 b800 2e4c
0000010: 2ab4 0034 b600 3ac0 001c 59b6 005c 2b59
0000020: c600 0cc0 0030 b600 3da7 0004 57a7 0013
0000030: 2b59 c600 0cc0 0030 b600 3da7 0004 57bf
0000040: 5aa5 0004 b02a c000 28b0
Exception Handler Table:
bci [16, 48] => handler: 48

at java.base/java.lang.Class.getDeclaredFields0(Native Method)
at java.base/java.lang.Class.privateGetDeclaredFields(Class.java:3297)
at java.base/java.lang.Class.getDeclaredFields(Class.java:2371)
at org.jboss.weld.security.GetDeclaredFieldsAction.run(GetDeclaredFieldsAction.java:30)
at org.jboss.weld.security.GetDeclaredFieldsAction.run(GetDeclaredFieldsAction.java:22)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
at org.jboss.weld.bean.proxy.SecurityActions.hasDeclaredField(SecurityActions.java:93)
at org.jboss.weld.bean.proxy.ProxyFactory.run(ProxyFactory.java:361)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
at org.jboss.weld.bean.proxy.ProxyFactory.create(ProxyFactory.java:352)
at org.jboss.weld.bean.proxy.ClientProxyFactory.create(ClientProxyFactory.java:83)
at org.jboss.weld.bean.proxy.ClientProxyProvider.createClientProxy(ClientProxyProvider.java:205)
at org.jboss.weld.bean.proxy.ClientProxyProvider.createClientProxy(ClientProxyProvider.java:195)
at org.jboss.weld.bean.proxy.ClientProxyProvider$CreateClientProxy.apply(ClientProxyProvider.java:52)
at org.jboss.weld.bean.proxy.ClientProxyProvider$CreateClientProxy.apply(ClientProxyProvider.java:48)
at org.jboss.weld.util.cache.ReentrantMapBackedComputingCache.lambda$new$0(ReentrantMapBackedComputingCache.java:55)
at org.jboss.weld.util.LazyValueHolder$1.computeValue(LazyValueHolder.java:32)
at org.jboss.weld.util.LazyValueHolder.get(LazyValueHolder.java:46)
at org.jboss.weld.util.cache.ReentrantMapBackedComputingCache.getValue(ReentrantMapBackedComputingCache.java:72)
at org.jboss.weld.util.cache.ReentrantMapBackedComputingCache.getCastValue(ReentrantMapBackedComputingCache.java:78)
at org.jboss.weld.bean.proxy.ClientProxyProvider.getClientProxy(ClientProxyProvider.java:229)
at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:669)
at org.jboss.weld.manager.BeanManagerImpl.getInjectableReference(BeanManagerImpl.java:775)
at org.jboss.weld.injection.ParameterInjectionPointImpl.getValueToInject(ParameterInjectionPointImpl.java:76)
at org.jboss.weld.injection.ConstructorInjectionPoint.getParameterValues(ConstructorInjectionPoint.java:150)
at org.jboss.weld.injection.ConstructorInjectionPoint.newInstance(ConstructorInjectionPoint.java:75)
at org.jboss.weld.injection.producer.AbstractInstantiator.newInstance(AbstractInstantiator.java:28)
at org.jboss.weld.injection.producer.BasicInjectionTarget.produce(BasicInjectionTarget.java:112)
at org.jboss.weld.injection.producer.BeanInjectionTarget.produce(BeanInjectionTarget.java:186)
at org.glassfish.jms.injection.JMSCDIExtension$LocalPassivationCapableBean.create(JMSCDIExtension.java:178)
at org.jboss.weld.contexts.unbound.DependentContextImpl.get(DependentContextImpl.java:64)
at org.jboss.weld.bean.ContextualInstanceStrategy$DefaultContextualInstanceStrategy.get(ContextualInstanceStrategy.java:100)
at org.jboss.weld.bean.ContextualInstance.get(ContextualInstance.java:50)
at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:675)
at org.jboss.weld.manager.BeanManagerImpl.getInjectableReference(BeanManagerImpl.java:775)
at org.jboss.weld.injection.FieldInjectionPoint.inject(FieldInjectionPoint.java:92)
at org.jboss.weld.util.Beans.injectBoundFields(Beans.java:345)
at org.jboss.weld.util.Beans.injectFieldsAndInitializers(Beans.java:356)
at org.jboss.weld.injection.producer.DefaultInjector$1.proceed(DefaultInjector.java:71)
at org.glassfish.weld.services.InjectionServicesImpl.aroundInject(InjectionServicesImpl.java:154)
at org.jboss.weld.injection.InjectionContextImpl.run(InjectionContextImpl.java:46)
at org.jboss.weld.injection.producer.DefaultInjector.inject(DefaultInjector.java:73)
at org.jboss.weld.module.ejb.DynamicInjectionPointInjector.inject(DynamicInjectionPointInjector.java:61)
at org.jboss.weld.module.ejb.SessionBeanInjectionTarget.inject(SessionBeanInjectionTarget.java:138)
at org.glassfish.weld.services.JCDIServiceImpl.injectEJBInstance(JCDIServiceImpl.java:299)
at com.sun.ejb.containers.BaseContainer.injectEjbInstance(BaseContainer.java:1574)
at com.sun.ejb.containers.StatelessSessionContainer.createStatelessEJB(StatelessSessionContainer.java:470)
... 49 more
]]
-- 
David Matějček
_______________________________________________
cdi-dev mailing list
cdi-dev@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/cdi-dev

Back to the top