geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dain Sundstrom (JIRA)" <>
Subject [jira] Updated: (GERONIMO-2079) No methodProxy in EJBInvocation at startup under heavy load
Date Wed, 07 Jun 2006 01:16:30 GMT
     [ ]

Dain Sundstrom updated GERONIMO-2079:

    Attachment: 2079.patch

New patch which puts all transient data in the proxy factory into a single object.  Access
to this data is controlled by a synchronized block.  A volatile could be used, but a synchronized
block is easier for people to understand and this code should not have a performance impact.
 This is because each interceptor copies the data once from the proxy factory, so the this
will only impact the first invocation on a proxy. 

I also cleaned up the initialization code in the interceptor. 

> No methodProxy in EJBInvocation at startup under heavy load
> -----------------------------------------------------------
>          Key: GERONIMO-2079
>          URL:
>      Project: Geronimo
>         Type: Bug
>     Security: public(Regular issues) 
>   Components: OpenEJB
>     Versions: 1.1
>     Reporter: David Jencks
>     Assignee: David Jencks
>      Fix For: 1.2
>  Attachments: 2079.patch, GERONIMO-2079.failed1.patch
> After deploying daytrader, if you apply heavy load (50 threads) you get about 60 exceptions
like this:
> java.lang.NullPointerException
>         at org.openejb.proxy.EJBMethodInterceptor.createEJBInvocation(
>         at org.openejb.proxy.EJBMethodInterceptor.intercept(
>         at org.openejb.proxy.EntityEJBLocalObject$$EnhancerByCGLIB$$84c9ae5f.getDataBean(<generated>)
>         at org.apache.geronimo.samples.daytrader.web.prims.PingServlet2EntityLocal.doGet(
>         at org.apache.geronimo.samples.daytrader.web.prims.PingServlet2EntityLocal.doPost(
>         at javax.servlet.http.HttpServlet.service(
>         at javax.servlet.http.HttpServlet.service(
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(
>         at org.apache.catalina.core.StandardWrapperValve.invoke(
>         at org.apache.catalina.core.StandardContextValve.invoke(
>         at org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke(
>         at org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(
>         at org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(
>         at org.apache.catalina.core.StandardHostValve.invoke(
>         at org.apache.catalina.valves.ErrorReportValve.invoke(
>         at org.apache.catalina.core.StandardEngineValve.invoke(
>         at org.apache.catalina.connector.CoyoteAdapter.service(
>         at org.apache.coyote.http11.Http11Processor.process(
>         at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(
>         at
>         at
>         at org.apache.tomcat.util.threads.ThreadPool$
>         at                                    
> Looking into the code, it appears that cglib is calling EJBMethodInterceptor with a null
methodProxy.  After these startup exceptions, which appear to occur within the first 2 seconds
of load, there are no further exceptions: i ran it for 17 minutes at 1200 pages/sec.

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:

View raw message