Author: markt
Date: Wed Dec 30 12:02:26 2009
New Revision: 894599

URL: http://svn.apache.org/viewvc?rev=894599&view=rev
Log:
Prevent definition of duplicate URIs for tag libraries and improve error 
messages for all duplicates

Modified:
    tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties
    tomcat/trunk/java/org/apache/catalina/startup/WebXml.java

Modified: tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties?rev=894599&r1=894598&r2=894599&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties 
(original)
+++ tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties Wed 
Dec 30 12:02:26 2009
@@ -116,12 +116,13 @@
 userConfig.stop=UserConfig: Processing STOP
 webRuleSet.absoluteOrdering=<absolute-ordering> element not valid in 
web-fragment.xml and will be ignored
 webRuleSet.relativeOrdering=<ordering> element not valid in web.xml and will 
be ignored
-webXml.duplicateEnvEntry=Duplicate env-entry name
-webXml.duplicateFilter=Duplicate filter name
-webXml.duplicateMessageDestination=Duplicate message-destination name
-webXml.duplicateMessageDestinationRef=Duplicate message-destination-ref name
-webXml.duplicateResourceEnvRef=Duplicate resource-env-ref name
-webXml.duplicateResourceRef=Duplicate resource-ref name
+webXml.duplicateEnvEntry=Duplicate env-entry name [{0}]
+webXml.duplicateFilter=Duplicate filter name [{0}]
+webXml.duplicateMessageDestination=Duplicate message-destination name [{0}]
+webXml.duplicateMessageDestinationRef=Duplicate message-destination-ref name 
[{0}]
+webXml.duplicateResourceEnvRef=Duplicate resource-env-ref name [{0}]
+webXml.duplicateResourceRef=Duplicate resource-ref name [{0}]
+webXml.duplicateTaglibUri=Duplicate tag library URI [{0}]
 webXml.reservedName=A web.xml file was detected using a reserved name [{0}]. 
The name element will be ignored for this fragment.
 webXml.mergeConflictDisplayName=The display name was defined in multiple 
fragments with different values including fragment with name [{0}] located at 
[{1}]
 webXml.mergeConflictErrorPage=The Error Page for [{0}] was defined 
inconsistently in multiple fragments including fragment with name [{1}] located 
at [{2}]

Modified: tomcat/trunk/java/org/apache/catalina/startup/WebXml.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/WebXml.java?rev=894599&r1=894598&r2=894599&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/WebXml.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/WebXml.java Wed Dec 30 
12:02:26 2009
@@ -194,7 +194,8 @@
         if (filters.containsKey(filter.getFilterName())) {
             // Filter names must be unique within a web(-fragment).xml
             throw new IllegalArgumentException(
-                    sm.getString("webXml.duplicateFilter"));
+                    sm.getString("webXml.duplicateFilter",
+                            filter.getFilterName()));
         }
         filters.put(filter.getFilterName(), filter);
     }
@@ -279,6 +280,11 @@
     // jsp-config/taglib or taglib (2.3 and earlier)
     private Map<String,String> taglibs = new HashMap<String,String>();
     public void addTaglib(String uri, String location) {
+        if (taglibs.containsKey(uri)) {
+            // Taglib URIs must be unique within a web(-fragment).xml
+            throw new IllegalArgumentException(
+                    sm.getString("webXml.duplicateTaglibUri", uri));
+        }
         taglibs.put(uri, location);
     }
     public Map<String,String> getTaglibs() { return taglibs; }
@@ -329,7 +335,8 @@
         if (envEntries.containsKey(envEntry.getName())) {
             // env-entry names must be unique within a web(-fragment).xml
             throw new IllegalArgumentException(
-                    sm.getString("webXml.duplicateEnvEntry"));
+                    sm.getString("webXml.duplicateEnvEntry",
+                            envEntry.getName()));
         }
         envEntries.put(envEntry.getName(),envEntry);
     }
@@ -373,7 +380,8 @@
         if (resourceRefs.containsKey(resourceRef.getName())) {
             // resource-ref names must be unique within a web(-fragment).xml
             throw new IllegalArgumentException(
-                    sm.getString("webXml.duplicateResourceRef"));
+                    sm.getString("webXml.duplicateResourceRef",
+                            resourceRef.getName()));
         }
         resourceRefs.put(resourceRef.getName(), resourceRef);
     }
@@ -389,7 +397,8 @@
         if (resourceEnvRefs.containsKey(resourceEnvRef.getName())) {
             // resource-env-ref names must be unique within a 
web(-fragment).xml
             throw new IllegalArgumentException(
-                    sm.getString("webXml.duplicateResourceEnvRef"));
+                    sm.getString("webXml.duplicateResourceEnvRef",
+                            resourceEnvRef.getName()));
         }
         resourceEnvRefs.put(resourceEnvRef.getName(), resourceEnvRef);
     }
@@ -408,7 +417,8 @@
             // message-destination-ref names must be unique within a
             // web(-fragment).xml
             throw new IllegalArgumentException(sm.getString(
-                    "webXml.duplicateMessageDestinationRef"));
+                    "webXml.duplicateMessageDestinationRef",
+                    messageDestinationRef.getName()));
         }
         messageDestinationRefs.put(messageDestinationRef.getName(),
                 messageDestinationRef);
@@ -430,7 +440,8 @@
             // message-destination names must be unique within a
             // web(-fragment).xml
             throw new IllegalArgumentException(
-                    sm.getString("webXml.duplicateMessageDestination"));
+                    sm.getString("webXml.duplicateMessageDestination",
+                            messageDestination.getName()));
         }
         messageDestinations.put(messageDestination.getName(),
                 messageDestination);



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

Reply via email to