Details

    • Type: Bug
    • Status: Resolved (View Workflow)
    • Priority: Critical
    • Resolution: Done
    • Affects Version/s: 7.0.0.Beta3
    • Fix Version/s: 7.0.0.CR1
    • Component/s: EJB
    • Labels:
      None
    • Steps to Reproduce:
      Hide

      Run any EJB 3 application, where you ramp up users quickly (in my test its 100 users per second), and you should see this.

      Show
      Run any EJB 3 application, where you ramp up users quickly (in my test its 100 users per second), and you should see this.

      Description

      When running my performance tests, as the first run, from a clean boot kicks off, and the number of users ramps up, I get from one to five of the following exceptions, that cause the transactions to fail:

      13:03:05,652 ERROR [org.jboss.ejb3.tx2.impl.CMTTxInterceptor] (http-192.168.1.22-192.168.1.22-8080-3) javax.ejb.EJBTransactionRolledbackException: java.lang.IllegalAccessException: Class org.jboss.invocation.proxy.ProxyFactory can not access a member of class services.ejb.DistributionCenterManager$$ee$proxy0 with modifiers "private"
      13:03:05,656 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/Order].[NewOrder]] (http-192.168.1.22-192.168.1.22-8080-3) Servlet.service() for servlet NewOrder threw exception: javax.ejb.EJBTransactionRolledbackException: java.lang.IllegalAccessException: Class org.jboss.invocation.proxy.ProxyFactory can not access a member of class services.ejb.DistributionCenterManager$$ee$proxy0 with modifiers "private"
      at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.handleInCallerTx(CMTTxInterceptor.java:176)
      at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInCallerTx(CMTTxInterceptor.java:266)
      at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.required(CMTTxInterceptor.java:396)
      at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invoke(CMTTxInterceptor.java:248)
      at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:47)
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:239)
      at org.jboss.as.ejb3.component.session.SessionInvocationContextInterceptor.processInvocation(SessionInvocationContextInterceptor.java:53)
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:239)
      at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:239)
      at org.jboss.as.ejb3.component.session.SessionBeanComponent$3.processInvocation(SessionBeanComponent.java:217)
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:239)
      at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
      at org.jboss.as.ee.component.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:78)
      at services.ejb.CustomerManager$$ee$proxy4.findByPrimaryKey(Unknown Source)
      at services.ejb.OrderManagerBean.createOrder(OrderManagerBean.java:47) [OrderManagerEJB.jar:]
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_20]
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [:1.6.0_20]
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [:1.6.0_20]
      at java.lang.reflect.Method.invoke(Method.java:616) [:1.6.0_20]
      at org.jboss.invocation.MethodInvokingInterceptor.processInvocation(MethodInvokingInterceptor.java:54)
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:239)
      at org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:41) [jboss-as-jpa-7.0.0.Beta3.jar:7.0.0.Beta3]
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:239)
      at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
      at org.jboss.as.ee.component.DispatcherInterceptor.processInvocation(DispatcherInterceptor.java:47)
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:239)
      at org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51)
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:239)
      at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:296)
      at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:286)
      at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.required(CMTTxInterceptor.java:392)
      at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invoke(CMTTxInterceptor.java:248)
      at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:47)
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:239)
      at org.jboss.as.ejb3.component.session.SessionInvocationContextInterceptor.processInvocation(SessionInvocationContextInterceptor.java:53)
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:239)
      at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:239)
      at org.jboss.as.ejb3.component.session.SessionBeanComponent$3.processInvocation(SessionBeanComponent.java:217)
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:239)
      at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
      at org.jboss.as.ee.component.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:78)
      at services.ejb.OrderManager$$ee$proxy2.createOrder(Unknown Source)
      at services.web.NewOrderServlet.doPost(NewOrderServlet.java:128) [classes:]
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:324) [jbossweb-7.0.0.Beta11.jar:7.0.0.Beta3]
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [jbossweb-7.0.0.Beta11.jar:7.0.0.Beta3]
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.0.Beta11.jar:7.0.0.Beta3]
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.0.Beta11.jar:7.0.0.Beta3]
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:154) [jbossweb-7.0.0.Beta11.jar:7.0.0.Beta3]
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.0.Beta11.jar:7.0.0.Beta3]
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.0.Beta11.jar:7.0.0.Beta3]
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362) [jbossweb-7.0.0.Beta11.jar:7.0.0.Beta3]
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.0.Beta11.jar:7.0.0.Beta3]
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:658) [jbossweb-7.0.0.Beta11.jar:7.0.0.Beta3]
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951) [jbossweb-7.0.0.Beta11.jar:7.0.0.Beta3]
      at java.lang.Thread.run(Thread.java:636) [:1.6.0_20]
      Caused by: java.lang.RuntimeException: java.lang.IllegalAccessException: Class org.jboss.invocation.proxy.ProxyFactory can not access a member of class services.ejb.DistributionCenterManager$$ee$proxy0 with modifiers "private"
      at org.jboss.invocation.proxy.ProxyFactory.setInvocationHandler(ProxyFactory.java:405)
      at org.jboss.invocation.proxy.ProxyFactory.newInstance(ProxyFactory.java:318)
      at org.jboss.as.ee.component.ComponentView$1.getInstance(ComponentView.java:68)
      at org.jboss.as.ee.component.AbstractResourceInjection.inject(AbstractResourceInjection.java:54)
      at org.jboss.as.ee.component.AbstractComponent.applyInjections(AbstractComponent.java:238)
      at org.jboss.as.ejb3.component.session.SessionBeanComponent.applyInjections(SessionBeanComponent.java:114)
      at org.jboss.as.ee.component.AbstractComponent.createInstance(AbstractComponent.java:143)
      at org.jboss.as.ejb3.component.stateless.StatelessSessionComponent.createInstance(StatelessSessionComponent.java:80)
      at org.jboss.as.ejb3.component.stateless.StatelessSessionComponent$1.create(StatelessSessionComponent.java:65)
      at org.jboss.as.ejb3.component.stateless.StatelessSessionComponent$1.create(StatelessSessionComponent.java:62)
      at org.jboss.ejb3.pool.AbstractPool.create(AbstractPool.java:65)
      at org.jboss.ejb3.pool.strictmax.StrictMaxPool.get(StrictMaxPool.java:145)
      at org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:48)
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:239)
      at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:296)
      at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInCallerTx(CMTTxInterceptor.java:262)
      ... 57 more
      Caused by: java.lang.IllegalAccessException: Class org.jboss.invocation.proxy.ProxyFactory can not access a member of class services.ejb.DistributionCenterManager$$ee$proxy0 with modifiers "private"
      at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:95) [:1.6.0_20]
      at java.lang.reflect.Field.doSecurityCheck(Field.java:978) [:1.6.0_20]
      at java.lang.reflect.Field.getFieldAccessor(Field.java:914) [:1.6.0_20]
      at java.lang.reflect.Field.set(Field.java:675) [:1.6.0_20]
      at org.jboss.invocation.proxy.ProxyFactory.setInvocationHandler(ProxyFactory.java:401)
      ... 72 more

      Once these happen, it never happens again, and the run completes as normal. Subsequent runs, with the server warm don't exhibit this problem, which I would expect since it seems to be a problem with the initial proxy.

        Gliffy Diagrams

          Attachments

          1. EJB3OrderStressTest.jmx
            233 kB
          2. mysqlas7module.tar.gz
            768 kB
          3. OrderManagerApp.ear
            98 kB
          4. standalone.xml
            17 kB

            Activity

              People

              • Assignee:
                dmlloyd David Lloyd
                Reporter:
                andy.miller Andrig Miller
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: