From 80a47a6c2721eaf95b77b58f548404d021a8f405 Mon Sep 17 00:00:00 2001 From: markt Date: Sun, 24 May 2009 17:35:07 +0000 Subject: [PATCH] More ServerFactory removal git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@778196 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/catalina/deploy/NamingResources.java | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/java/org/apache/catalina/deploy/NamingResources.java b/java/org/apache/catalina/deploy/NamingResources.java index dba9b83c4..885d481ea 100644 --- a/java/org/apache/catalina/deploy/NamingResources.java +++ b/java/org/apache/catalina/deploy/NamingResources.java @@ -25,7 +25,9 @@ import java.util.HashMap; import java.util.Hashtable; import java.io.Serializable; -import org.apache.catalina.ServerFactory; +import org.apache.catalina.Context; +import org.apache.catalina.Engine; +import org.apache.catalina.Server; /** @@ -212,8 +214,7 @@ public class NamingResources implements Serializable { } } else if (rl != null) { // Link. Need to look at the global resources - NamingResources global = - ServerFactory.getServer().getGlobalNamingResources(); + NamingResources global = getServer().getGlobalNamingResources(); if (global.findEnvironment(rl.getGlobal()) != null) { if (global.findEnvironment(rl.getGlobal()).getOverride()) { removeResourceLink(environment.getName()); @@ -237,6 +238,20 @@ public class NamingResources implements Serializable { } + // Container should be an instance of Server or Context. If it is anything + // else, return null which will trigger a NPE. + private Server getServer() { + if (container instanceof Server) { + return (Server) container; + } + if (container instanceof Context) { + // Could do this in one go. Lots of casts so split out for clarity + Engine engine = + (Engine) ((Context) container).getParent().getParent(); + return engine.getService().getServer(); + } + return null; + } /** * Add a local EJB resource reference for this web application. -- 2.11.0