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) {