sylvain     2004/02/04 07:14:59

  Modified:    src/java/org/apache/cocoon/components/pipeline
                        AbstractProcessingPipeline.java
  Log:
  Give more meaningful messages with location information
  
  Revision  Changes    Path
  1.13      +37 -19    
cocoon-2.1/src/java/org/apache/cocoon/components/pipeline/AbstractProcessingPipeline.java
  
  Index: AbstractProcessingPipeline.java
  ===================================================================
  RCS file: 
/home/cvs/cocoon-2.1/src/java/org/apache/cocoon/components/pipeline/AbstractProcessingPipeline.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- AbstractProcessingPipeline.java   31 Jan 2004 13:07:53 -0000      1.12
  +++ AbstractProcessingPipeline.java   4 Feb 2004 15:14:59 -0000       1.13
  @@ -60,6 +60,7 @@
   import org.apache.avalon.framework.parameters.Parameterizable;
   import org.apache.avalon.framework.parameters.Parameters;
   import org.apache.cocoon.ConnectionResetException;
  +import org.apache.cocoon.Constants;
   import org.apache.cocoon.ProcessingException;
   import org.apache.cocoon.components.CocoonComponentManager;
   import org.apache.cocoon.environment.Environment;
  @@ -239,20 +240,22 @@
       public void setGenerator (String role, String source, Parameters param, 
Parameters hintParam)
       throws ProcessingException {
           if (this.generator != null) {
  -            throw new ProcessingException ("Generator already set. You can 
only select one Generator (" + role + ")");
  +            throw new ProcessingException ("Generator already set. Cannot 
set generator '" + role +
  +                "' at " + getLocation(param));
           }
           if (this.reader != null) {
  -            throw new ProcessingException ("Reader already set. You cannot 
use a reader and a generator for one pipeline.");
  +            throw new ProcessingException ("Reader already set. Cannot set 
generator '" + role +
  +                "' at " + getLocation(param));
           }
           try {
               this.generatorSelector = (ComponentSelector) 
this.newManager.lookup(Generator.ROLE + "Selector");
           } catch (ComponentException ce) {
  -            throw new ProcessingException("Lookup of generator selector 
failed.", ce);
  +            throw new ProcessingException("Lookup of generator selector 
failed at " +getLocation(param), ce);
           }
           try {
               this.generator = (Generator) this.generatorSelector.select(role);
           } catch (ComponentException ce) {
  -            throw new ProcessingException("Lookup of generator for role 
'"+role+"' failed.", ce);
  +            throw new ProcessingException("Lookup of generator '" + role + 
"' failed at " + getLocation(param), ce);
           }
           this.generatorSource = source;
           this.generatorParam = param;
  @@ -273,22 +276,25 @@
       public void addTransformer (String role, String source, Parameters 
param, Parameters hintParam)
       throws ProcessingException {
           if (this.reader != null) {
  -            throw new ProcessingException ("Reader already set. You cannot 
use a transformer with a reader.");
  +            // Should normally never happen as setting a reader starts 
pipeline processing
  +            throw new ProcessingException ("Reader already set. Cannot add 
transformer '" + role +
  +                "' at " + getLocation(param));
           }
           if (this.generator == null) {
  -            throw new ProcessingException ("You must set a generator first 
before you can use a transformer.");
  +            throw new ProcessingException ("Must set a generator before 
adding transformer '" + role +
  +                "' at " + getLocation(param));
           }
           ComponentSelector selector = null;
           try {
               selector = (ComponentSelector) 
this.newManager.lookup(Transformer.ROLE + "Selector");
           } catch (ComponentException ce) {
  -            throw new ProcessingException("Lookup of transformer selector 
failed.", ce);
  +            throw new ProcessingException("Lookup of transformer selector 
failed at " + getLocation(param), ce);
           }
           try {
               this.transformers.add(selector.select(role));
               this.transformerSelectors.add(selector);
           } catch (ComponentException ce) {
  -            throw new ProcessingException("Lookup of transformer for role 
'"+role+"' failed.", ce);
  +            throw new ProcessingException("Lookup of transformer '"+role+"' 
failed at " + getLocation(param), ce);
           }
           this.transformerSources.add(source);
           this.transformerParams.add(param);
  @@ -301,24 +307,29 @@
       public void setSerializer (String role, String source, Parameters param, 
Parameters hintParam, String mimeType)
       throws ProcessingException {
           if (this.serializer != null) {
  -            throw new ProcessingException ("Serializer already set. You can 
only select one Serializer (" + role + ")");
  +            // Should normally not happen as adding a serializer starts 
pipeline processing
  +            throw new ProcessingException ("Serializer already set. Cannot 
set serializer '" + role +
  +                "' at " + getLocation(param));
           }
           if (this.reader != null) {
  -            throw new ProcessingException ("Reader already set. You cannot 
use a serializer with a reader.");
  +            // Should normally never happen as setting a reader starts 
pipeline processing
  +            throw new ProcessingException ("Reader already set. Cannot set 
serializer '" + role +
  +                "' at " + getLocation(param));
           }
           if (this.generator == null) {
  -            throw new ProcessingException ("You must set a generator first 
before you can use a serializer.");
  +            throw new ProcessingException ("Must set a generator before 
setting serializer '" + role +
  +                "' at " + getLocation(param));
           }
   
           try {
               this.serializerSelector = (OutputComponentSelector) 
this.newManager.lookup(Serializer.ROLE + "Selector");
           } catch (ComponentException ce) {
  -            throw new ProcessingException("Lookup of serializer selector 
failed.", ce);
  +            throw new ProcessingException("Lookup of serializer selector 
failed at " + getLocation(param), ce);
           }
           try {
               this.serializer = (Serializer)serializerSelector.select(role);
           } catch (ComponentException ce) {
  -            throw new ProcessingException("Lookup of serializer for role 
'"+role+"' failed.", ce);
  +            throw new ProcessingException("Lookup of serializer '" + role + 
"' failed at " + getLocation(param), ce);
           }
           this.serializerSource = source;
           this.serializerParam = param;
  @@ -334,21 +345,25 @@
       public void setReader (String role, String source, Parameters param, 
String mimeType)
       throws ProcessingException {
           if (this.reader != null) {
  -            throw new ProcessingException ("Reader already set. You can only 
select one Reader (" + role + ")");
  +            // Should normally never happen as setting a reader starts 
pipeline processing
  +            throw new ProcessingException ("Reader already set. Cannot set 
reader '" + role +
  +                "' at " + getLocation(param));
           }
           if (this.generator != null) {
  -            throw new ProcessingException ("Generator already set. You 
cannot use a reader and a generator for one pipeline.");
  +            // Should normally never happen as setting a reader starts 
pipeline processing
  +            throw new ProcessingException ("Generator already set. Cannot 
use reader '" + role +
  +                "' at " + getLocation(param));
           }
   
           try {
               this.readerSelector = (OutputComponentSelector) 
this.newManager.lookup(Reader.ROLE + "Selector");
           } catch (ComponentException ce) {
  -            throw new ProcessingException("Lookup of reader selector 
failed.", ce);
  +            throw new ProcessingException("Lookup of reader selector failed 
at " + getLocation(param), ce);
           }
           try {
               this.reader = (Reader)readerSelector.select(role);
           } catch (ComponentException ce) {
  -            throw new ProcessingException("Lookup of reader for role 
'"+role+"' failed.", ce);
  +            throw new ProcessingException("Lookup of reader '"+role+"' 
failed at " + getLocation(param), ce);
           }
           this.readerSource = source;
           this.readerParam = param;
  @@ -785,5 +800,8 @@
       public String getKeyForEventPipeline() {
           return null;
       }
  -
  +    
  +    protected String getLocation(Parameters param) {
  +        return param.getParameter(Constants.SITEMAP_PARAMETERS_LOCATION, 
"[unknown location]");
  +    }
   }
  
  
  

Reply via email to