This is an automated email from the ASF dual-hosted git repository.

remm pushed a commit to branch 11.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/11.0.x by this push:
     new 90017ebb70 Add new registry factory that does not return null
90017ebb70 is described below

commit 90017ebb7008fa2ee2db5607f396d4a2486a9997
Author: remm <r...@apache.org>
AuthorDate: Wed Mar 19 10:50:58 2025 +0100

    Add new registry factory that does not return null
    
    Adding null checks everywhere is not worth it.
---
 .../tomcat/util/modeler/LocalStrings.properties    |  1 +
 java/org/apache/tomcat/util/modeler/Registry.java  | 23 ++++++++++++++++++++++
 2 files changed, 24 insertions(+)

diff --git a/java/org/apache/tomcat/util/modeler/LocalStrings.properties 
b/java/org/apache/tomcat/util/modeler/LocalStrings.properties
index d40f0527d8..a5464f7b04 100644
--- a/java/org/apache/tomcat/util/modeler/LocalStrings.properties
+++ b/java/org/apache/tomcat/util/modeler/LocalStrings.properties
@@ -40,6 +40,7 @@ managedMBean.noSet=Cannot find setter method [{0}] on 
resource [{1}]
 modules.digesterParseError=Error parsing registry data
 modules.readDescriptorsError=Error reading descriptors
 
+registry.cannotAccessRegistry=Guard object [{0}] does not allow access to the 
registry
 registry.createdServer=Created MBeanServer
 registry.existingServer=Using existing MBeanServer
 registry.initError=Error initializing [{0}]
diff --git a/java/org/apache/tomcat/util/modeler/Registry.java 
b/java/org/apache/tomcat/util/modeler/Registry.java
index 1db01647ab..be18708775 100644
--- a/java/org/apache/tomcat/util/modeler/Registry.java
+++ b/java/org/apache/tomcat/util/modeler/Registry.java
@@ -132,6 +132,29 @@ public class Registry implements RegistryMBean, 
MBeanRegistration {
     }
 
 
+    /**
+     * Factory method to create (if necessary) and return our
+     * <code>Registry</code> instance.
+     *
+     * @param key Unused
+     * @param guard Prevent access to the registry by untrusted components
+     *
+     * @return the registry
+     * @throws IllegalArgumentException if the guard object does not allow 
access
+     * @since 1.1
+     */
+    public static synchronized Registry getRegistryNonNull(Object key, Object 
guard) {
+        if (registry == null) {
+            registry = new Registry();
+            registry.guard = guard;
+        }
+        if (registry.guard != null && registry.guard != guard) {
+            throw new 
IllegalArgumentException(sm.getString("registry.cannotAccessRegistry", guard));
+        }
+        return registry;
+    }
+
+
     public static synchronized void disableRegistry() {
         if (registry == null) {
             registry = new NoDescriptorRegistry();


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to