You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by pb...@apache.org on 2007/06/27 06:58:45 UTC
svn commit: r551041 -
/struts/struts1/trunk/core/src/main/java/org/apache/struts/validator/ValidatorPlugIn.java
Author: pbenedict
Date: Tue Jun 26 21:58:43 2007
New Revision: 551041
URL: http://svn.apache.org/viewvc?view=rev&rev=551041
Log:
STR-2904: Verify only one instance of the plugin is loaded per module
Modified:
struts/struts1/trunk/core/src/main/java/org/apache/struts/validator/ValidatorPlugIn.java
Modified: struts/struts1/trunk/core/src/main/java/org/apache/struts/validator/ValidatorPlugIn.java
URL: http://svn.apache.org/viewvc/struts/struts1/trunk/core/src/main/java/org/apache/struts/validator/ValidatorPlugIn.java?view=diff&rev=551041&r1=551040&r2=551041
==============================================================================
--- struts/struts1/trunk/core/src/main/java/org/apache/struts/validator/ValidatorPlugIn.java (original)
+++ struts/struts1/trunk/core/src/main/java/org/apache/struts/validator/ValidatorPlugIn.java Tue Jun 26 21:58:43 2007
@@ -28,6 +28,7 @@
import org.apache.struts.config.ModuleConfig;
import org.xml.sax.SAXException;
+import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.UnavailableException;
@@ -155,18 +156,24 @@
*/
public void init(ActionServlet servlet, ModuleConfig config)
throws ServletException {
+
// Remember our associated configuration and servlet
this.config = config;
this.servlet = servlet;
+
+ // Verify only one instance of the plugin is loaded per module
+ String validatorModuleKey = VALIDATOR_KEY + config.getPrefix();
+ ServletContext servletContext = servlet.getServletContext();
+ if (servletContext.getAttribute(validatorModuleKey) != null) {
+ throw new UnavailableException("ValidatorPlugIn cannot be " +
+ "redefined for module '" + config.getPrefix() + "'");
+ }
// Load our database from persistent storage
try {
this.initResources();
-
- servlet.getServletContext().setAttribute(VALIDATOR_KEY
- + config.getPrefix(), resources);
-
- servlet.getServletContext().setAttribute(STOP_ON_ERROR_KEY + '.'
+ servletContext.setAttribute(validatorModuleKey, resources);
+ servletContext.setAttribute(STOP_ON_ERROR_KEY + '.'
+ config.getPrefix(),
(this.stopOnFirstError ? Boolean.TRUE : Boolean.FALSE));
} catch (Exception e) {