Fix a couple of potential NPEs
authormarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Tue, 8 Dec 2009 00:29:50 +0000 (00:29 +0000)
committermarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Tue, 8 Dec 2009 00:29:50 +0000 (00:29 +0000)
git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@888203 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/catalina/startup/WebXml.java

index 06643fb..f258459 100644 (file)
@@ -706,15 +706,19 @@ public class WebXml {
                     mergeFilter(entry.getValue(),
                             filters.get(entry.getKey()), false);
                 } else {
-                    if (!(mergeFilter(entry.getValue(),
-                            temp.getFilters().get(entry.getKey()), true))) {
-                        log.error(sm.getString(
-                                "webXml.mergeConflictFilter",
-                                entry.getKey(),
-                                fragment.getName(),
-                                fragment.getURL()));
-
-                        return false;
+                    if (temp.getFilters().containsKey(entry.getKey())) {
+                        if (!(mergeFilter(entry.getValue(),
+                                temp.getFilters().get(entry.getKey()), true))) {
+                            log.error(sm.getString(
+                                    "webXml.mergeConflictFilter",
+                                    entry.getKey(),
+                                    fragment.getName(),
+                                    fragment.getURL()));
+    
+                            return false;
+                        }
+                    } else {
+                        temp.getFilters().put(entry.getKey(), entry.getValue());
                     }
                 }
             }
@@ -845,15 +849,19 @@ public class WebXml {
                     mergeServlet(entry.getValue(),
                             servlets.get(entry.getKey()), false);
                 } else {
-                    if (!(mergeServlet(entry.getValue(),
-                            temp.getServlets().get(entry.getKey()), true))) {
-                        log.error(sm.getString(
-                                "webXml.mergeConflictServlet",
-                                entry.getKey(),
-                                fragment.getName(),
-                                fragment.getURL()));
-
-                        return false;
+                    if (temp.getServlets().containsKey(entry.getKey())) {
+                        if (!(mergeServlet(entry.getValue(),
+                                temp.getServlets().get(entry.getKey()), true))) {
+                            log.error(sm.getString(
+                                    "webXml.mergeConflictServlet",
+                                    entry.getKey(),
+                                    fragment.getName(),
+                                    fragment.getURL()));
+    
+                            return false;
+                        }
+                    } else {
+                        temp.getServlets().put(entry.getKey(), entry.getValue());
                     }
                 }
             }