Bug 37112 - NullPointerException with cvschangelog task
Summary: NullPointerException with cvschangelog task
Status: RESOLVED DUPLICATE of bug 30576
Alias: None
Product: Ant
Classification: Unclassified
Component: Core tasks (show other bugs)
Version: 1.6.5
Hardware: All All
: P1 major (vote)
Target Milestone: ---
Assignee: Ant Notifications List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-10-17 08:30 UTC by Rick Geimer
Modified: 2008-02-22 12:18 UTC (History)
0 users



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Rick Geimer 2005-10-17 08:30:29 UTC
I was running the CVS change log task on my repository, and got a rather 
uninforming NullPointerException:


BUILD FAILED
/home/geimer/projects/aoms_build/build.xml:30: java.lang.NullPointerException
        at org.apache.tools.ant.Task.perform(Task.java:373)
        at org.apache.tools.ant.Target.execute(Target.java:341)
        at org.apache.tools.ant.Target.performTasks(Target.java:369)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
        at org.apache.tools.ant.helper.DefaultExecutor.executeTargets
(DefaultExecutor.java:40)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1068)
        at org.apache.tools.ant.Main.runBuild(Main.java:668)
        at org.apache.tools.ant.Main.startAnt(Main.java:187)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:246)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:67)
Caused by: java.lang.NullPointerException
        at java.util.Date.after(Date.java:871)
        at org.apache.tools.ant.taskdefs.cvslib.ChangeLogTask.filterEntrySet
(ChangeLogTask.java:334)
        at org.apache.tools.ant.taskdefs.cvslib.ChangeLogTask.execute
(ChangeLogTask.java:263)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
        at org.apache.tools.ant.Task.perform(Task.java:364)
        ... 10 more


I went to the ant source and added some debugging code, and was able to track 
the problem down to the following place in 
org.apache.tools.ant.taskdefs.cvslib.ChangeLogParser:

    private Date parseDate(final String date) {
        try {
            return c_inputDate.parse(date);
        } catch (ParseException e) {
            //final String message = REZ.getString( "changelog.bat-
date.error", date );
            //getContext().error( message );
            return null;
        }
    }

When I printed the stack trace for the ParserException, I found out it was 
complaining about the date format it encountered, which was "yyyy-MM-dd 
HH:mm:ss" instead of the "yyyy/MM/dd HH:mm:ss" format that it was expecting. I 
fixed this by adding the following code:


    /** alternate input format for dates read in from cvs log */
    private static final SimpleDateFormat alt_c_inputDate
        = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    private Date parseDate(final String date) {
        try {
            return c_inputDate.parse(date);
        } catch (ParseException e) {
            //final String message = REZ.getString( "changelog.bat-
date.error", date );
            //getContext().error( message );
            if (date != null){
            	try {
					return alt_c_inputDate.parse(date);
				} catch (ParseException e1){
					e.printStackTrace();
					return null;
				}
			}
            return null;
        }
    }
Comment 1 J.M. (Martijn) Kruithof 2005-10-17 20:01:07 UTC

*** This bug has been marked as a duplicate of 30576 ***