This is an automated email from the ASF dual-hosted git repository.
rmaucher pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/9.0.x by this push:
new b9d3f2ea70 Minor naming fixes from code review
b9d3f2ea70 is described below
commit b9d3f2ea70da12f8d1209d211668c7eef42c7cf1
Author: remm <[email protected]>
AuthorDate: Mon Jun 1 16:51:14 2026 +0200
Minor naming fixes from code review
---
java/org/apache/naming/NamingContext.java | 16 ++++++++++------
.../apache/naming/NamingContextBindingsEnumeration.java | 2 +-
java/org/apache/naming/NamingContextEnumeration.java | 2 +-
java/org/apache/naming/ServiceRef.java | 16 +++++++++-------
java/org/apache/naming/factory/ResourceLinkFactory.java | 6 ++++--
5 files changed, 25 insertions(+), 17 deletions(-)
diff --git a/java/org/apache/naming/NamingContext.java
b/java/org/apache/naming/NamingContext.java
index ee943ef8d3..7f680a43d3 100644
--- a/java/org/apache/naming/NamingContext.java
+++ b/java/org/apache/naming/NamingContext.java
@@ -384,13 +384,17 @@ public class NamingContext implements Context {
return nameParser;
}
+ NamingEntry entry = bindings.get(name.get(0));
+ if (entry == null) {
+ throw new
NameNotFoundException(sm.getString("namingContext.nameNotBound", name,
name.get(0)));
+ }
+
+ if (entry.type != NamingEntry.CONTEXT) {
+ throw new
NotContextException(sm.getString("namingContext.contextExpected", name.get(0)));
+ }
+
if (name.size() > 1) {
- Object obj = bindings.get(name.get(0));
- if (obj instanceof Context) {
- return ((Context) obj).getNameParser(name.getSuffix(1));
- } else {
- throw new
NotContextException(sm.getString("namingContext.contextExpected", name.get(0)));
- }
+ return ((Context) entry.value).getNameParser(name.getSuffix(1));
}
return nameParser;
diff --git a/java/org/apache/naming/NamingContextBindingsEnumeration.java
b/java/org/apache/naming/NamingContextBindingsEnumeration.java
index e462f5249a..0c505b7926 100644
--- a/java/org/apache/naming/NamingContextBindingsEnumeration.java
+++ b/java/org/apache/naming/NamingContextBindingsEnumeration.java
@@ -113,7 +113,7 @@ public class NamingContextBindingsEnumeration implements
NamingEnumeration<Bindi
value = entry.value;
}
- return new Binding(entry.name, value.getClass().getName(), value,
true);
+ return new Binding(entry.name, value == null ? null :
value.getClass().getName(), value, true);
}
}
diff --git a/java/org/apache/naming/NamingContextEnumeration.java
b/java/org/apache/naming/NamingContextEnumeration.java
index 16cc66231d..fa81277ebc 100644
--- a/java/org/apache/naming/NamingContextEnumeration.java
+++ b/java/org/apache/naming/NamingContextEnumeration.java
@@ -79,7 +79,7 @@ public class NamingContextEnumeration implements
NamingEnumeration<NameClassPair
@Override
public NameClassPair nextElement() {
NamingEntry entry = iterator.next();
- return new NameClassPair(entry.name, entry.value.getClass().getName());
+ return new NameClassPair(entry.name, entry.value == null ? null :
entry.value.getClass().getName());
}
diff --git a/java/org/apache/naming/ServiceRef.java
b/java/org/apache/naming/ServiceRef.java
index 090cea4db9..87175fa2c1 100644
--- a/java/org/apache/naming/ServiceRef.java
+++ b/java/org/apache/naming/ServiceRef.java
@@ -116,13 +116,15 @@ public class ServiceRef extends AbstractRef {
refAddr = new StringRefAddr(SERVICE_INTERFACE, serviceInterface);
add(refAddr);
}
- if (serviceQname[0] != null) {
- refAddr = new StringRefAddr(SERVICE_NAMESPACE, serviceQname[0]);
- add(refAddr);
- }
- if (serviceQname[1] != null) {
- refAddr = new StringRefAddr(SERVICE_LOCAL_PART, serviceQname[1]);
- add(refAddr);
+ if (serviceQname != null) {
+ if (serviceQname.length > 0 && serviceQname[0] != null) {
+ refAddr = new StringRefAddr(SERVICE_NAMESPACE,
serviceQname[0]);
+ add(refAddr);
+ }
+ if (serviceQname.length > 1 && serviceQname[1] != null) {
+ refAddr = new StringRefAddr(SERVICE_LOCAL_PART,
serviceQname[1]);
+ add(refAddr);
+ }
}
if (wsdl != null) {
refAddr = new StringRefAddr(WSDL, wsdl);
diff --git a/java/org/apache/naming/factory/ResourceLinkFactory.java
b/java/org/apache/naming/factory/ResourceLinkFactory.java
index 057edb899e..85c6a49daa 100644
--- a/java/org/apache/naming/factory/ResourceLinkFactory.java
+++ b/java/org/apache/naming/factory/ResourceLinkFactory.java
@@ -16,7 +16,6 @@
*/
package org.apache.naming.factory;
-import java.util.HashMap;
import java.util.Hashtable;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@@ -84,7 +83,7 @@ public class ResourceLinkFactory implements ObjectFactory {
ClassLoader cl = Thread.currentThread().getContextClassLoader();
// Web application initialization is single threaded so this is
// safe.
- globalResourceRegistrations.computeIfAbsent(cl, k -> new
HashMap<>()).put(localName, globalName);
+ globalResourceRegistrations.computeIfAbsent(cl, k -> new
ConcurrentHashMap<>()).put(localName, globalName);
}
@@ -171,6 +170,9 @@ public class ResourceLinkFactory implements ObjectFactory {
return null;
}
Object result = globalContext.lookup(globalName);
+ if (result == null) {
+ return null;
+ }
// Check the expected type
String expectedClassName = ref.getClassName();
if (expectedClassName == null) {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]