joerg       2004/03/16 13:46:27

  Modified:    src/java/org/apache/cocoon/acting
                        AbstractValidatorAction.java
  Log:
  handle possible NPE if no parameter in the sitemap and no constraint-set for 
validating was specified:
  http://marc.theaimsgroup.com/?t=107702303400001&r=1&w=4
  
  Revision  Changes    Path
  1.10      +10 -1     
cocoon-2.2/src/java/org/apache/cocoon/acting/AbstractValidatorAction.java
  
  Index: AbstractValidatorAction.java
  ===================================================================
  RCS file: 
/home/cvs/cocoon-2.2/src/java/org/apache/cocoon/acting/AbstractValidatorAction.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- AbstractValidatorAction.java      8 Mar 2004 13:57:35 -0000       1.9
  +++ AbstractValidatorAction.java      16 Mar 2004 21:46:27 -0000      1.10
  @@ -28,9 +28,11 @@
   import org.apache.avalon.framework.configuration.ConfigurationException;
   import org.apache.avalon.framework.parameters.Parameters;
   import org.apache.cocoon.Constants;
  +import org.apache.cocoon.ProcessingException;
   import org.apache.cocoon.environment.ObjectModelHelper;
   import org.apache.cocoon.environment.Redirector;
   import org.apache.cocoon.environment.SourceResolver;
  +import org.apache.cocoon.sitemap.SitemapParameters;
   import org.apache.cocoon.util.Tokenizer;
   import org.apache.regexp.RE;
   import org.apache.regexp.RESyntaxException;
  @@ -244,6 +246,13 @@
               Map csets = 
this.indexConfiguration(conf.getChildren("constraint-set"));
               params = this.resolveConstraints(valsetstr, csets);
           }
  +
  +        if (params == null) {
  +            throw new ProcessingException("Neither a constraint-set nor 
parameters in the sitemap "
  +                                          + "were specified for validating 
at "
  +                                          + 
SitemapParameters.getStatementLocation(parameters));
  +        }
  +
           HashMap values = this.createMapOfParameters(objectModel, params);
           allOK = this.validateSetOfParameters(desc, actionMap, resultMap, 
params, values, this.isStringEncoded());
   
  
  
  

Reply via email to