Martin Isheim [https://community.jboss.org/people/martinLuene] created the 
discussion

"JBoss7.1 JNDI subcontext handling failure"

To view the discussion, visit: https://community.jboss.org/message/741168#741168

--------------------------------------------------------------
Using JBoss7.1.2-NightlyBuild2012-04-30 - due to another fix - i observe 
strange behaviour within JNDI:
First destrying a subcontext seems not work, the subcontext is still available 
afterwards.
The second is, that after an unbind, the subcontext, which contained the 
object, is also gone.
Instead i expect the subcontext to be still available, although it is empty now.

Below are small test procedures for demonstration, at the indicated lines
the first throws the RuntimeException, the second a 
javax.naming.NameNotFoundException.

I execute these procedures within a SLSB on the application server.
Is there a specific way needed to set up a naming context on server side, i 
just use "new InitialContext()"?

Thanks,
Martin

    public void testDestroySubcontext() throws NamingException {
        // Preparation
        Context ctx = new InitialContext();
        ctx.createSubcontext("root");
        Context sub1 = ctx.createSubcontext("root/sub1");
        sub1.rebind("NAME", "VALUE");
        assertEquals("Lookup object", "VALUE", ctx.lookup("root/sub1/NAME"));
        assertEquals("Lookup subcontext", "VALUE", sub1.lookup("NAME"));

        // test destroySubcontext
        ctx.destroySubcontext("root/sub1");
        try {
            Context sub1Lookup = (Context) ctx.lookup("root/sub1");
>>>>       throw new RuntimeException("Test failed, destroyed sub context still 
>>>>found: "
                    + sub1Lookup.getNameInNamespace());
        } catch (NameNotFoundException nnfe) {
            // expected, but not thrown.
        }
    }

    public void testUnbind() throws NamingException {
        // Preparation
        Context ctx = new InitialContext();
        ctx.createSubcontext("root");
        Context sub1 = ctx.createSubcontext("root/sub1");
        sub1.rebind("NAME", "VALUE");

        assertEquals("Lookup object", "VALUE", ctx.lookup("root/sub1/NAME"));
        assertEquals("Lookup subcontext", "VALUE", sub1.lookup("NAME"));
        Context lookupCtx = (Context) ctx.lookup("root/sub1");
        assertEquals("Lookup before unbind", "root/sub1", 
lookupCtx.getNameInNamespace());

        // test unbind
        ctx.unbind("root/sub1/NAME");
        try {
            Object item = ctx.lookup("root/sub1/NAME");
            throw new RuntimeException("Test failed, unbound object still 
found" + item);
        } catch (NameNotFoundException nnfe) {
            // expected, unbound object no longer available.
        }

        // sub context shall be still available, as stated in java doc for 
javax.naming.Context.unbind().
>>>>  Context lookupAgainCtx = (Context) ctx.lookup("root/sub1");
        assertEquals("Lookup after unbin", "root/sub1", 
lookupAgainCtx.getNameInNamespace());
    }

Caused by: javax.naming.NameNotFoundException: root/sub1 -- service 
jboss.naming.context.java.root.sub1
    at 
org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:97)
    at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:178)
    at org.jboss.as.naming.InitialContext.lookup(InitialContext.java:119)
    at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:214)
    at javax.naming.InitialContext.lookup(InitialContext.java:392)
    at 
com.jcoffee.base.global.naming.test.TestJNDIUtilitiesImpl.testUnbind(TestJNDIUtilitiesImpl.java:235)
--------------------------------------------------------------

Reply to this message by going to Community
[https://community.jboss.org/message/741168#741168]

Start a new discussion in JNDI and Naming at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2083]

_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to