Bugs item #663283, was opened at 2003-01-06 11:33
Message generated for change (Comment added) made by starksm
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=376685&aid=663283&group_id=22866
>Category: JBossServer
Group: v4.0
>Status: Closed
>Resolution: Fixed
Priority: 5
Submitted By: Rod Burgett (rodburgett)
>Assigned to: Scott M Stark (starksm)
Summary: NamingContext.lookup(Name) changes Name parameter
Initial Comment:
OS: Win2K, v5.0
JDK: Sun 1.3.1_04
Category: JBossNS
1) The 'Object lookup(javax.naming.Name name)'
method in the org.jnp.interfaces.NamingContext class
has a side effect of changing the state of the input Name
instance when the input Name includes a scheme prefix
such as "java:". For example, using a Name instance
created from "java:comp/env", display name.toString()
before and after calling ctx.lookup(name). The displayed
strings are different.
2) The org.jnp.client.Main tester for this class does not
currently check for this side effect.
Proposed fix 2):
Applying the following 'diff' to org.jnp.client.Main.java will
expose bug 1) above.
diff -r1.7 Main.java
141,143c141,156
< server = ctx.lookup"jnp://localhost/test/server2");
< System.out.println("jnp://localhost/test/server2
lookup:"+server);
<
---
> //...updated 03-jan-2003, rodB, to check lookup using
Name and side effects
> String
svr2NameString "jnp://localhost/test/server2";
> server = ctx.lookup(svr2NameString);
> System.out.println
(svr2NameString+"lookup:"+server);
> Name svr2Name = ctx.getNameParser
(svr2NameString).parse(svr2NameString);
> Name svr2NameClone = (Name) svr2Name.clone
();
> server = ctx.lookup(svr2Name);
> System.out.println(svr2NameString+" lookup,
using Name:"+server);
> if ( ! svr2Name.equals( svr2NameClone) )
> {
> System.out.println("Oops! ctx.lookup()
changed state of Name " +
> "parameter
from "+svr2NameClone.toString() +
> ") to
("+svr2Name.toString()+")");
> }
> //...end of 03-jan-2003 changes, rodB
>
Proposed fix 1):
Applying the following 'diff' to
org.jnp.interfaces.NamingContext.java will correct bug 1)
above.
diff -r1.23 NamingContext.java
357a358,359
> //...one line below added 03-jan-2003, rodB, to avoid
side effects on name
> name = (Name) name.clone ();
404a407,408
> //...one line below added 03-jan-2003, rodB, to avoid
side effects on name
> name = (Name) name.clone ();
452a457,458
> //...one line below added 03-jan-2003, rodB, to avoid
side effects on name
> name = (Name) name.clone ();
624a631,632
> //...one line below added 03-jan-2003, rodB, to avoid
side effects on name
> name = (Name) name.clone ();
667a676,677
> //...one line below added 03-jan-2003, rodB, to avoid
side effects on name
> name = (Name) name.clone ();
697a708,709
> //...one line below added 03-jan-2003, rodB, to avoid
side effects on name
> name = (Name) name.clone ();
798a811,812
> //...one line below added 03-jan-2003, rodB, to avoid
side effects on name
> name = (Name) name.clone ();
Why so many identical new lines? Many of the
javax.naming.Context interface methods, e.g. bind,
rebind, list, unbind, use a Name instance for input. In
this implementation, many follow a similar pattern to
ensure common handling of the input Name.
Why not fix it in just one place? The common handling
pattern includes calling getEnv(), a private method,
which in turn calls parseNameForScheme(), a static
method with package visibility. It is
parseNameForScheme that updates it's input Name, but
lookup, list, bind, etc. make subsequent calls to
getAbsoluteName(), which will operate properly only on
a Name exhibiting this side effect.
----------------------------------------------------------------------
>Comment By: Scott M Stark (starksm)
Date: 2004-11-04 13:00
Message:
Logged In: YES
user_id=175228
This has been fixed for 4.0.1RC1.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=376685&aid=663283&group_id=22866
-------------------------------------------------------
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click
_______________________________________________
JBoss-Development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development