User: vharcq  
  Date: 02/03/30 03:17:36

  Modified:    core/src/xdoclet GenerationManager.java TemplateSubTask.java
  Log:
  Fix a NPE
  
  Revision  Changes    Path
  1.3       +39 -16    xdoclet/core/src/xdoclet/GenerationManager.java
  
  Index: GenerationManager.java
  ===================================================================
  RCS file: /cvsroot/xdoclet/xdoclet/core/src/xdoclet/GenerationManager.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -w -r1.2 -r1.3
  --- GenerationManager.java    30 Mar 2002 10:56:12 -0000      1.2
  +++ GenerationManager.java    30 Mar 2002 11:17:36 -0000      1.3
  @@ -15,6 +15,8 @@
   
   import java.io.File;
   import java.net.URL;
  +import java.util.Map;
  +import java.util.HashMap;
   
   import xjavadoc.XClass;
   import org.apache.log4j.Category;
  @@ -27,12 +29,14 @@
   
       private URL             templateUrl;
       private TemplateParser  parser;
  +    private File            destDir;
       private boolean         isForce;
   
   
  -    public GenerationManager( URL templateUrl, TemplateParser parser, boolean 
isForce){
  +    public GenerationManager( URL templateUrl, TemplateParser parser, File destDir, 
boolean isForce){
           this.templateUrl = templateUrl;
           this.parser = parser;
  +        this.destDir = destDir;
           this.isForce = isForce;
       }
   
  @@ -229,8 +233,8 @@
                        cat.debug( "Generation need check for " + file.getName() );
   
                // 1. Check Timestamp of Template file
  -             if( cat.isDebugEnabled() )
  -                     cat.debug( file.getName() + " " + getTemplateURL() );
  +             //if( cat.isDebugEnabled() )
  +                     cat.error( file.getName() + " " + getTemplateURL() );
                if( file.lastModified() < new File( getTemplateURL().getFile() 
).lastModified() )
                {
                        if( cat.isDebugEnabled() )
  @@ -241,6 +245,9 @@
                        cat.debug( "Reject file '"+file.getName()+ "' because of 
timestamp of " + getTemplateURL() );
   
                // 2. Check timestamp of Merge files found inside Template
  +        File[] files;
  +        if (getParserDb() == null || getParserDb().get(templateURL) == null)
  +        {
                getParser().setOutput( file );
                getParser().setTemplateURL( templateURL );
   
  @@ -253,7 +260,13 @@
                        throw new XDocletException( e.toString() );
                }
   
  -             File[] files = getParser().getMergeFiles();
  +            files = getParser().getMergeFiles();
  +            updateParserDb(templateURL, files);
  +        }
  +        else
  +        {
  +            files = (File[])getParserDb().get(templateURL);
  +        }
   
                if( cat.isDebugEnabled() )
                        cat.debug( "Number of Merge files involved = " + files.length 
);
  @@ -296,5 +309,15 @@
                return new File( path_str );
        }
   
  +    private final Map parserDb = new HashMap();
  +    private Map getParserDb(){
  +        return parserDb;
  +    }
  +
  +    private void updateParserDb(URL templateURL,File[] files){
  +        //if (parserDb == null)
  +//            parserDb = new HashMap();
  +        parserDb.put(templateURL, files);
  +    }
   
   }
  
  
  
  1.34      +3 -2      xdoclet/core/src/xdoclet/TemplateSubTask.java
  
  Index: TemplateSubTask.java
  ===================================================================
  RCS file: /cvsroot/xdoclet/xdoclet/core/src/xdoclet/TemplateSubTask.java,v
  retrieving revision 1.33
  retrieving revision 1.34
  diff -u -w -r1.33 -r1.34
  --- TemplateSubTask.java      30 Mar 2002 10:52:27 -0000      1.33
  +++ TemplateSubTask.java      30 Mar 2002 11:17:36 -0000      1.34
  @@ -29,7 +29,7 @@
    *
    * @author    Ara Abrahamian ([EMAIL PROTECTED])
    * @created   Sep 25, 2001
  - * @version   $Revision: 1.33 $
  + * @version   $Revision: 1.34 $
    */
   public class TemplateSubTask extends SubTask
   {
  @@ -294,7 +294,6 @@
                {
                        setEngine( new TemplateEngine( ) );
                        setParser( new TemplateParser( ) );
  -            setGenerationManager(new GenerationManager(getTemplateURL() , 
getParser(), getContext().isForce()));
                }
                catch( TemplateException te )
                {
  @@ -408,6 +407,7 @@
   
                        try
                        {
  +                setGenerationManager(new GenerationManager(getTemplateURL() , 
getParser(), getDestDir(), getContext().isForce()));
                                if( generationManager.isGenerationNeeded( output_file 
) )
                                {
                                        startEngine( getTemplateURL(), output_file );
  @@ -496,6 +496,7 @@
                                cat.debug( "File exists." );
   
                        // Check modification timestamps
  +            setGenerationManager(new GenerationManager(getTemplateURL() , 
getParser(), getDestDir(), getContext().isForce()));
                        if( ! generationManager.isGenerationNeeded( clazz, file, true 
) )
                                return;
                }
  
  
  

_______________________________________________
Xdoclet-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-devel

Reply via email to