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
