Some jndi name change cause javax.naming.NotContextException
------------------------------------------------------------

                 Key: OPENEJB-1288
                 URL: https://issues.apache.org/jira/browse/OPENEJB-1288
             Project: OpenEJB
          Issue Type: Bug
          Components: container system
    Affects Versions: 3.1.3
            Reporter: Forrest Xia


When I run a EJB test case in geronimo 2.2.1-snapshot, an 
javax.naming.NotContextException throws out like this:
2010-06-02 16:47:20,656 ERROR [OpenEJB] The bean instance mejb/ejb/mgmt/MEJB 
threw a system exception:javax.naming.NotContextException: The intermediate 
context EJBContext does not exist
javax.naming.NotContextException: The intermediate context EJBContext does not 
exist
        at 
org.apache.xbean.naming.context.AbstractContext.lookupFinalContext(AbstractContext.java:198)
        at 
org.apache.xbean.naming.context.AbstractContext.addDeepBinding(AbstractContext.java:241)
        at 
org.apache.xbean.naming.context.AbstractContext.bind(AbstractContext.java:660)
        at 
org.apache.xbean.naming.context.AbstractContext.bind(AbstractContext.java:651)
        at 
org.apache.openejb.core.stateless.StatelessInstanceManager.ceateInstance(StatelessInstanceManager.java:180)
        at 
org.apache.openejb.core.stateless.StatelessInstanceManager.getInstance(StatelessInstanceManager.java:151)
        at 
org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:165)
        at 
org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:136)
        at 
org.apache.openejb.server.ejbd.EjbRequestHandler.doEjbObject_BUSINESS_METHOD(EjbRequestHandler.java:238)
        at 
org.apache.openejb.server.ejbd.EjbRequestHandler.processRequest(EjbRequestHandler.java:129)
        at 
org.apache.openejb.server.ejbd.EjbDaemon.processEjbRequest(EjbDaemon.java:196)
        at org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:149)
        at org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:71)
        at 
org.apache.openejb.server.ejbd.KeepAliveServer$Session.service(KeepAliveServer.java:213)
        at 
org.apache.openejb.server.ejbd.KeepAliveServer.service(KeepAliveServer.java:233)
        at org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:66)
        at org.apache.openejb.server.ServicePool$2.run(ServicePool.java:91)
        at org.apache.openejb.server.ServicePool$3.run(ServicePool.java:120)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)

After tracing back the stack, found an jndi name change caused the problem. I 
see some code snippet:
synchronized(this){
                try {
                    sessionContext = (SessionContext) 
ctx.lookup("comp/EJBContext");
                } catch (NamingException e1) {
                    sessionContext = createSessionContext(deploymentInfo);
                    // TODO: This should work
                    ctx.bind("comp/EJBContext", sessionContext);
                }
            }
Seems the jndi name "comp/EJBContext" does not work for Geronimo. After 
changing them back to "java:comp/EJBContext". The test case passes.

So maybe we need to revert some changes back from openejb-1014.

-- 
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