On 10/20/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
Author: dain
Date: Thu Oct 19 15:44:24 2006
New Revision: 465917
...
+ boolean containsEnv = false;
+ for (Iterator iterator = map.entrySet().iterator();
iterator.hasNext();) {
+ Map.Entry entry = (Map.Entry) iterator.next();
+ String name = (String) entry.getKey();
+ Object value = entry.getValue();
+
+ if (name.startsWith("env/")) {
+ containsEnv = true;
+ }
if (value instanceof KernelAwareReference) {
((KernelAwareReference) value).setKernel(kernel);
}
if (value instanceof ClassLoaderAwareReference) {
((ClassLoaderAwareReference)
value).setClassLoader(classLoader);
}
+ }
+
+ if (!containsEnv) {
+ Context env = new ImmutableContext("java:comp/env",
Collections.EMPTY_MAP, false);
+ map.put("env", env);
}
I haven't tested it out, but...reading the code seems to set
containsEnv to false every time. It's because name.startsWith("env/")
checks whether env + '/' whereas map contains only env (with no
trailing slash).
BTW, why doesn't it simply use map.get("env") to verify whether
java:comp/env is available?
--
Jacek Laskowski
http://www.jaceklaskowski.pl