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