geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jeff Genender (JIRA)" <...@geronimo.apache.org>
Subject [jira] Closed: (GERONIMO-1131) component context not available in tomcat servlet init methods
Date Mon, 07 Nov 2005 03:05:21 GMT
     [ http://issues.apache.org/jira/browse/GERONIMO-1131?page=all ]
     
Jeff Genender closed GERONIMO-1131:
-----------------------------------

    Resolution: Fixed

Thanks DJ.  The test fails because the default context never gets started due to the new block
start on the pipeline initialization.  The default context is what answers when there is no
context's available.  It handles errors an such, so it needs to be started.  I added some
code to ensure it starts and all tests now pass.

Sending        tomcat/src/java/org/apache/geronimo/tomcat/GeronimoStandardContext.java
Sending        tomcat/src/java/org/apache/geronimo/tomcat/TomcatContainer.java
Transmitting file data ..
Committed revision 331186.



> component context not available in tomcat servlet init methods
> --------------------------------------------------------------
>
>          Key: GERONIMO-1131
>          URL: http://issues.apache.org/jira/browse/GERONIMO-1131
>      Project: Geronimo
>         Type: Bug
>   Components: Tomcat
>     Versions: 1.0
>     Reporter: David Jencks
>     Assignee: David Jencks
>      Fix For: 1.0
>  Attachments: GeronimoStandardContext.diff
>
> It appears that in the tomcat integration, the servlet init method is not wrapped by
the context valve.  Therefore the component context is not available.  I believe the security
and transaction valves should also be traversed on the way to the init method.
> Evidence is this stack trace from Jian Liao:
>  well, still the same problem - javax.naming.NameNotFoundException
>  I debug it and found that, the NameNotFoundException is thrown by org.apache.geronimo.naming.java.RootContext
>  code:
>  Context compCtx = (Context) compContext.get();
>  if (compCtx == null) {
>          // the component context was not set for this thread
>          throw new NameNotFoundException(name);
>  }
>  the call stack:
>  org.apache.geronimo.naming.java.RootContext.lookup(java.lang.String) line: 43
>  org.apache.geronimo.naming.java.RootContext.lookup(java.lang.String) line: 43
>  javax.naming.InitialContext.lookup(java.lang.String) line: 347
>  org.apache.jetspeed.components.rdbms.ojb.ConnectionRepositoryEntry.afterPropertiesSet()
line: 252
>  org.springframework.beans.factory.support.DefaultListableBeanFactory(org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory).invokeInitMethods(java.lang.String,
java.lang.Object, org.springframework.beans.factory.support.RootBeanDefinition) line: 1072
>  org.springframework.beans.factory.support.DefaultListableBeanFactory(org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory).createBean(java.lang.String,
org.springframework.beans.factory.support.RootBeanDefinition, java.lang.Object[], boolean)
line: 343
>  org.springframework.beans.factory.support.DefaultListableBeanFactory(org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory).createBean(java.lang.String,
org.springframework.beans.factory.support.RootBeanDefinition, java.lang.Object[]) line: 260
>  org.springframework.beans.factory.support.DefaultListableBeanFactory(org.springframework.beans.factory.support.AbstractBeanFactory).getBean(java.lang.String,
java.lang.Class, java.lang.Object[]) line: 221
>  org.springframework.beans.factory.support.DefaultListableBeanFactory(org.springframework.beans.factory.support.AbstractBeanFactory).getBean(java.lang.String)
line: 145
>  org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons()
line: 291
>  org.springframework.web.context.support.XmlWebApplicationContext(org.springframework.context.support.AbstractApplicationContext).refresh()
line: 317
>  org.springframework.web.context.support.XmlWebApplicationContext(org.springframework.web.context.support.AbstractRefreshableWebApplicationContext).refresh()
line: 131
>  org.apache.jetspeed.components.SpringComponentManager.start() line: 206
>  org.apache.jetspeed.engine.JetspeedEngine.start() line: 137
>  org.apache.jetspeed.engine.JetspeedServlet.init(javax.servlet.ServletConfig) line: 135
>  org.apache.catalina.core.StandardWrapper.loadServlet() line: 1091
>  org.apache.catalina.core.StandardWrapper.load() line: 925
>  org.apache.geronimo.tomcat.GeronimoStandardContext(org.apache.catalina.core.StandardContext).loadOnStartup(org.apache.catalina.Container[])
line: 3857
>  org.apache.geronimo.tomcat.GeronimoStandardContext(org.apache.catalina.core.StandardContext).start()
line: 4118
>  org.apache.geronimo.tomcat.GeronimoStandardContext.start() line: 164
>  org.apache.catalina.core.StandardHost(org.apache.catalina.core.ContainerBase).addChildInternal(org.apache.catalina.Container)
line: 759
>  org.apache.catalina.core.StandardHost(org.apache.catalina.core.ContainerBase).addChild(org.apache.catalina.Container)
line: 739
>  org.apache.catalina.core.StandardHost.addChild(org.apache.catalina.Container) line:
524
>  org.apache.geronimo.tomcat.TomcatContainer.addContext(org.apache.geronimo.tomcat.TomcatContext)
line: 287
>  org.apache.geronimo.tomcat.TomcatContainer$$FastClassByCGLIB$$9370b073.invoke(int, java.lang.Object,
java.lang.Object[]) line: not available
>  net.sf.cglib.reflect.FastMethod.invoke(java.lang.Object, java.lang.Object[]) line: 53
>  org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(java.lang.Object, java.lang.Object[])
line: 38
>  org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(java.lang.Object, java.lang.Object[])
line: 118
>  org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(int, java.lang.Object[]) line:
779
>  org.apache.geronimo.gbean.runtime.RawInvoker.invoke(int, java.lang.Object[]) line: 57
>  org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(javax.management.ObjectName,
java.lang.Object[]) line: 36
>  org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(java.lang.Object,
java.lang.reflect.Method, java.lang.Object[], net.sf.cglib.proxy.MethodProxy) line: 96
>  org.apache.geronimo.tomcat.TomcatContainer$$EnhancerByCGLIB$$9b8a0a97.addContext(org.apache.geronimo.tomcat.TomcatContext)
line: not available
>  org.apache.geronimo.tomcat.TomcatWebAppContext.doStart() line: 377
>  org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance() line: 913
>  org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart() line: 325
>  org.apache.geronimo.gbean.runtime.GBeanInstanceState.start() line: 110
>  org.apache.geronimo.gbean.runtime.GBeanInstance.start() line: 499
>  org.apache.geronimo.gbean.runtime.GBeanSingleReference.attemptFullStart() line: 154
>  org.apache.geronimo.gbean.runtime.GBeanSingleReference.targetAdded(javax.management.ObjectName)
line: 127
>  org.apache.geronimo.gbean.runtime.GBeanSingleReference(org.apache.geronimo.gbean.runtime.AbstractGBeanReference).addTarget(javax.management.ObjectName)
line: 242
>  org.apache.geronimo.gbean.runtime.GBeanSingleReference$1.running(javax.management.ObjectName)
line: 163
>  org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.fireRunningEvent(javax.management.ObjectName)
line: 155
>  org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.access$300(org.apache.geronimo.kernel.basic.BasicLifecycleMonitor,
javax.management.ObjectName) line: 38
>  org.apache.geronimo.kernel.basic.BasicLifecycleMonitor$RawLifecycleBroadcaster.fireRunningEvent()
line: 231
>  org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart() line: 350
>  org.apache.geronimo.gbean.runtime.GBeanInstanceState.start() line: 110
>  org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive() line: 132
>  org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive() line: 516
>  org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(javax.management.ObjectName)
line: 210
>  org.apache.geronimo.kernel.config.Configuration.startRecursiveGBeans() line: 326
>  org.apache.geronimo.kernel.config.Configuration$$FastClassByCGLIB$$7f4b4a9b.invoke(int,
java.lang.Object, java.lang.Object[]) line: not available
>  net.sf.cglib.reflect.FastMethod.invoke(java.lang.Object, java.lang.Object[]) line: 53
>  org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(java.lang.Object, java.lang.Object[])
line: 38
>  org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(java.lang.Object, java.lang.Object[])
line: 118
>  org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(java.lang.String, java.lang.Object[],
java.lang.String[]) line: 814
>  org.apache.geronimo.kernel.basic.BasicKernel.invoke(javax.management.ObjectName, java.lang.String,
java.lang.Object[], java.lang.String[]) line: 180
>  org.apache.geronimo.kernel.basic.BasicKernel.invoke(javax.management.ObjectName, java.lang.String)
line: 175
>  org.apache.geronimo.kernel.config.ConfigurationManagerImpl.start(java.net.URI) line:
138
>  org.apache.geronimo.kernel.config.ConfigurationManagerImpl$$FastClassByCGLIB$$fbed85d2.invoke(int,
java.lang.Object, java.lang.Object[]) line: not available
>  net.sf.cglib.reflect.FastMethod.invoke(java.lang.Object, java.lang.Object[]) line: 53
>  org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(java.lang.Object, java.lang.Object[])
line: 38
>  org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(java.lang.Object, java.lang.Object[])
line: 118
>  org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(java.lang.String, java.lang.Object[],
java.lang.String[]) line: 814
>  org.apache.geronimo.kernel.basic.BasicKernel.invoke(javax.management.ObjectName, java.lang.String,
java.lang.Object[], java.lang.String[]) line: 180
>  org.apache.geronimo.kernel.KernelGBean.invoke(javax.management.ObjectName, java.lang.String,
java.lang.Object[], java.lang.String[]) line: 125
>  org.apache.geronimo.kernel.KernelGBean$$FastClassByCGLIB$$1cccefc9.invoke(int, java.lang.Object,
java.lang.Object[]) line: not available
>  net.sf.cglib.reflect.FastMethod.invoke(java.lang.Object, java.lang.Object[]) line: 53
>  org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(java.lang.Object, java.lang.Object[])
line: 38
>  org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(java.lang.Object, java.lang.Object[])
line: 118
>  org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(java.lang.String, java.lang.Object[],
java.lang.String[]) line: 814
>  org.apache.geronimo.kernel.basic.BasicKernel.invoke(javax.management.ObjectName, java.lang.String,
java.lang.Object[], java.lang.String[]) line: 180
>  org.apache.geronimo.kernel.jmx.MBeanServerDelegate.invoke(javax.management.ObjectName,
java.lang.String, java.lang.Object[], java.lang.String[]) line: 117
>  mx4j.remote.rmi.RMIConnectionInvoker.invoke(javax.management.ObjectName, java.lang.String,
java.rmi.MarshalledObject, java.lang.String[], javax.security.auth.Subject) line: 219
>  sun.reflect.GeneratedMethodAccessor151.invoke(java.lang.Object, java.lang.Object[])
line: not available
>  sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[])
line: 25
>  java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) line: 324
>  mx4j.remote.rmi.RMIConnectionSubjectInvoker(mx4j.remote.rmi.RMIConnectionProxy).invoke(java.lang.Object,
java.lang.reflect.Method, java.lang.Object[]) line: 34
>  mx4j.remote.rmi.RMIConnectionSubjectInvoker.chain(java.lang.Object, java.lang.reflect.Method,
java.lang.Object[]) line: 99
>  mx4j.remote.rmi.RMIConnectionSubjectInvoker.access$000(mx4j.remote.rmi.RMIConnectionSubjectInvoker,
java.lang.Object, java.lang.reflect.Method, java.lang.Object[]) line: 31
>  mx4j.remote.rmi.RMIConnectionSubjectInvoker$1.run() line: 90
>  java.security.AccessController.doPrivileged(java.security.PrivilegedExceptionAction,
java.security.AccessControlContext) line: not available [native method]
>  javax.security.auth.Subject.doAsPrivileged(javax.security.auth.Subject, java.security.PrivilegedExceptionAction,
java.security.AccessControlContext) line: 500
>  mx4j.remote.MX4JRemoteUtils.subjectInvoke(javax.security.auth.Subject, javax.security.auth.Subject,
java.security.AccessControlContext, java.util.Map, java.security.PrivilegedExceptionAction)
line: 163
>  mx4j.remote.rmi.RMIConnectionSubjectInvoker.subjectInvoke(java.lang.Object, java.lang.reflect.Method,
java.lang.Object[], javax.security.auth.Subject) line: 86
>  mx4j.remote.rmi.RMIConnectionSubjectInvoker.invoke(java.lang.Object, java.lang.reflect.Method,
java.lang.Object[]) line: 80
>  $Proxy0.invoke(javax.management.ObjectName, java.lang.String, java.rmi.MarshalledObject,
java.lang.String[], javax.security.auth.Subject) line: not available
>  javax.management.remote.rmi.RMIConnectionImpl.invoke(javax.management.ObjectName, java.lang.String,
java.rmi.MarshalledObject, java.lang.String[], javax.security.auth.Subject) line: 221
>  sun.reflect.GeneratedMethodAccessor168.invoke(java.lang.Object, java.lang.Object[])
line: not available
>  sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[])
line: 25
>  java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) line: 324
>  sun.rmi.server.UnicastServerRef2(sun.rmi.server.UnicastServerRef).dispatch(java.rmi.Remote,
java.rmi.server.RemoteCall) line: 261
>  sun.rmi.transport.Transport$1.run() line: 148
>  java.security.AccessController.doPrivileged(java.security.PrivilegedExceptionAction,
java.security.AccessControlContext) line: not available [native method]
>  sun.rmi.transport.tcp.TCPTransport(sun.rmi.transport.Transport).serviceCall(java.rmi.server.RemoteCall)
line: 144
>  sun.rmi.transport.tcp.TCPTransport.handleMessages(sun.rmi.transport.Connection, boolean)
line: 460
>  sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run() line: 701
>  java.lang.Thread.run() line: 534

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message