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