You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by ni...@apache.org on 2002/11/25 21:15:44 UTC

cvs commit: xml-cocoon2/src/java/org/apache/cocoon Main.java

nicolaken    2002/11/25 12:15:44

  Modified:    .        changes.xml
               src/java/org/apache/cocoon/components/notification
                        DefaultNotifyingBuilder.java
               src/java/org/apache/cocoon Main.java
  Log:
    <action dev="NKB" type="fix">
     Make the CLI report errors correctly to the screen when a page generation fails.
    </action>
  
  Revision  Changes    Path
  1.288     +5 -2      xml-cocoon2/changes.xml
  
  Index: changes.xml
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/changes.xml,v
  retrieving revision 1.287
  retrieving revision 1.288
  diff -u -r1.287 -r1.288
  --- changes.xml	25 Nov 2002 15:18:30 -0000	1.287
  +++ changes.xml	25 Nov 2002 20:15:44 -0000	1.288
  @@ -40,7 +40,10 @@
    </devs>
   
    <release version="@version@" date="@date@">
  -  <action dev="NKB" type="updated" fixes-bug="12975" due-to="Philipp Schmidt" due-to-email="Philipp.Schmidt@it-care.de">
  +  <action dev="NKB" type="fix">
  +   Make the CLI report errors correctly to the screen when a page generation fails.
  +  </action> 
  +  <action dev="NKB" type="update" fixes-bug="12975" due-to="Philipp Schmidt" due-to-email="Philipp.Schmidt@it-care.de">
      Moved POI to a block. Applied patch without moving the core elementprocessor
      classes in the block.
     </action> 
  
  
  
  1.10      +2 -2      xml-cocoon2/src/java/org/apache/cocoon/components/notification/DefaultNotifyingBuilder.java
  
  Index: DefaultNotifyingBuilder.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/notification/DefaultNotifyingBuilder.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- DefaultNotifyingBuilder.java	15 Jul 2002 14:52:39 -0000	1.9
  +++ DefaultNotifyingBuilder.java	25 Nov 2002 20:15:44 -0000	1.10
  @@ -211,7 +211,7 @@
     /**
      * Get root Exception.
      */
  -  private static Throwable getRootCause (Throwable t) {
  +  public static Throwable getRootCause (Throwable t) {
       Throwable cause = null;
       if (t instanceof CascadingThrowable) {
         cause = ((CascadingThrowable) t).getCause();
  
  
  
  1.26      +61 -24    xml-cocoon2/src/java/org/apache/cocoon/Main.java
  
  Index: Main.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/Main.java,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- Main.java	24 Aug 2002 17:34:51 -0000	1.25
  +++ Main.java	25 Nov 2002 20:15:44 -0000	1.26
  @@ -72,6 +72,7 @@
   import org.apache.cocoon.components.notification.SimpleNotifyingBean;
   import org.apache.cocoon.components.notification.DefaultNotifyingBuilder;
   import org.apache.cocoon.components.notification.Notifier;
  +import org.apache.cocoon.components.notification.DefaultNotifyingBuilder;
   import org.apache.log.Hierarchy;
   import org.apache.log.Logger;
   import org.apache.log.Priority;
  @@ -628,7 +629,7 @@
                       }
                   }
               } catch (ResourceNotFoundException rnfe) {
  -                printBroken (url);
  +                printBroken (url, rnfe.getMessage());
               }
           
               links.remove(url);
  @@ -785,7 +786,7 @@
                       absoluteLinks.add(absoluteLink);
                   }    
                   catch (ProcessingException pe) {
  -                    printBroken(absoluteLink);
  +                    printBroken(absoluteLink, pe.getMessage());
                   }                
               }
               
  @@ -802,15 +803,26 @@
               // Process URI
               File file = IOUtils.createFile(destDir, NetUtils.decodePath(filename));
               OutputStream output = new BufferedOutputStream(new FileOutputStream(file));
  -            String type = getPage(deparameterizedURI, parameters, translatedLinks, output);
  -            output.close();
  -            if (type == null) {
  -                printBroken(filename);
  -                resourceUnavailable(file, uri);
  -            } else {
  -              printlnInfo(uri); //(can also output type)
  -            }
  -        } catch (ResourceNotFoundException rnfe) {
  +            
  +             try{
  +                String type = getPage(deparameterizedURI, parameters, translatedLinks, output);
  +                printlnInfo(uri); //(can also output type)
  +            }
  +             catch(ProcessingException pe){
  +                 printBroken(filename, DefaultNotifyingBuilder.getRootCause(pe).getMessage());
  +                 resourceUnavailable(file, uri);
  +             }
  +             finally{
  +                try{ 
  +                   output.close();
  +                }
  +                catch(IOException ioex){
  +                    this.log.warn(ioex.toString());
  +                }
  +             }
  +
  +        } catch (Exception rnfe) {
  +            System.out.println("XXX"+rnfe);
               this.log.warn("Could not process URI: " + deparameterizedURI);
               if (verbose) System.out.println("Could not process URI: " + deparameterizedURI);             
           }
  @@ -931,12 +943,12 @@
                           links,
                           stream,
                           new LogKitLogger(this.log));
  -        if(processLenient(env)==true){
  -          return env.getContentType();
  -        }
  -        else{
  -          return null;
  -        }
  +        
  +            //Here Cocoon can throw an exception if there are errors in processing the page
  +            cocoon.process(env);
  +            //if we get here, the page was created :-)
  +            return env.getContentType();
  +
       }
   
       /** Class <code>NullOutputStream</code> here. */
  @@ -992,12 +1004,37 @@
        * @returns boolean true if no error were cast, false otherwise
        * @exception Exception if an error occurs, except RNFE
        */
  -    private void printBroken(String url) {
  -       System.out.println("");
  -       printlnInfo("-> [broken link] " + url +" <- ");
  -       if (null != this.brokenLinkWriter) {
  -             this.brokenLinkWriter.println(url);
  -       }       
  +    private void printBroken(String url, String cause) {
  +
  +        int screenWidth=67;
  +        int causeWidth= screenWidth - 6;
  +
  +        printlnInfo(""); 
  +        printlnInfo("-> [broken page] " + url +" <- ");     
  +        printlnInfo(""); 
  +        printInfo("     ");      
  +        
  +        int causeLength = cause.length(), currentStart = -causeWidth, currentEnd = 0 ;         
  +        
  +        do{ 
  +            
  +            currentStart+=causeWidth; 
  +            currentEnd  +=causeWidth;
  +
  +            if(currentEnd>causeLength){
  +                currentEnd=causeLength;   
  +            }
  +
  +           printlnInfo(cause.substring(currentStart, currentEnd) );      
  +           printInfo("     ");       
  +            
  +         }while(currentEnd<causeLength);
  +         
  +         printlnInfo(""); 
  +         
  +        if (null != this.brokenLinkWriter) {
  +            this.brokenLinkWriter.println(url);
  +        }       
       }
       
       /**
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     webmaster@xml.apache.org
To unsubscribe, e-mail:          cocoon-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: cocoon-cvs-help@xml.apache.org