Cannot lookup JNDI context inside some servlet event listeners.
---------------------------------------------------------------

                 Key: GERONIMO-3528
                 URL: https://issues.apache.org/jira/browse/GERONIMO-3528
             Project: Geronimo
          Issue Type: Bug
      Security Level: public (Regular issues)
          Components: naming
    Affects Versions: 2.0.1, 1.1.1
            Reporter: Kan Ogawa


In some servlet event listeners, JNDI context lookup fails.
I encountered this issue while testing the following use case:
 - When http session has became invalid by timeout, web container automatically 
updates the logoff datetime to database system.

So I have made sample application to reproduce this issue and the tested 
results.
This stack trace is one of NG results:
16:23:35,661 ERROR [[/examples]] Session event listener threw exception
java.lang.NullPointerException
    at 
org.apache.xbean.naming.context.ContextFlyweight.lookup(ContextFlyweight.java:44)
    at 
org.apache.xbean.naming.context.ContextFederation.getFederatedBinding(ContextFederation.java:71)
    at 
org.apache.xbean.naming.context.AbstractFederatedContext.getBinding(AbstractFederatedContext.java:63)
    at 
org.apache.xbean.naming.context.AbstractContext.lookup(AbstractContext.java:129)
    at 
org.apache.xbean.naming.context.AbstractContext.lookup(AbstractContext.java:611)
    at 
org.apache.xbean.naming.context.AbstractContext.lookup(AbstractContext.java:152)
    at 
org.apache.xbean.naming.context.AbstractContext.lookup(AbstractContext.java:597)
    at javax.naming.InitialContext.lookup(InitialContext.java:351)
    at examples.DBConnector.testConnection(DBConnector.java:26)
    at 
examples.HttpSessionListenerImpl.sessionDestroyed(HttpSessionListenerImpl.java:15)
    at 
org.apache.catalina.session.StandardSession.expire(StandardSession.java:702)
    at 
org.apache.catalina.session.StandardSession.isValid(StandardSession.java:592)
    at 
org.apache.catalina.session.ManagerBase.processExpires(ManagerBase.java:682)
    at 
org.apache.catalina.session.ManagerBase.backgroundProcess(ManagerBase.java:667)
    at 
org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1316)
    at 
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601)
    at 
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
    at 
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
    at 
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590)
    at java.lang.Thread.run(Thread.java:595)

If Geronimo v1.1, the stack trace is:
[ERROR] HttpSession - SystemDatabase doesn't have been lookuped from JNDI 
Context.
javax.naming.NameNotFoundException: comp/env/jdbc/SystemDatasource
    at org.apache.geronimo.naming.java.RootContext.lookup(RootContext.java:45)
    at javax.naming.InitialContext.lookup(InitialContext.java:351)
    at examples.DBConnector.testConnection(DBConnector.java:26)
    at 
examples.HttpSessionListenerImpl.sessionDestroyed(HttpSessionListenerImpl.java:15)
    at 
org.apache.catalina.session.StandardSession.expire(StandardSession.java:685)
    at 
org.apache.catalina.session.StandardSession.isValid(StandardSession.java:577)
    at 
org.apache.catalina.session.ManagerBase.processExpires(ManagerBase.java:678)
    at 
org.apache.catalina.session.ManagerBase.backgroundProcess(ManagerBase.java:663)
    at 
org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1283)
    at 
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1568)
    at 
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1577)
    at 
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1577)
    at 
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1557)
    at java.lang.Thread.run(Thread.java:595)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to