You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by Kev Jackson <ke...@it.fts-vn.com> on 2005/08/23 12:22:45 UTC

strange logging error

Hi all,

I'm writing a custom task at the moment and I've come across a problem

the simple act of trying to log causes a NullPointerException at 
Task:347 which seems to be failing as the project is null.

I'm pretty sure that this is being caused by my code, but I can't see 
what the problem is at all:
<build.xml>

<?xml version="1.0"?>

<project name="darcs" default="test" basedir=".">

    <target name="test">
        <echo message="Ant setup correctly" />
    </target>


    <target name="test-darcs">
        <taskdef name="darcs"
                 
classname="org.apache.tools.ant.taskdefs.optional.darcs.Darcs" />
         
     <darcs command="initialize" />
    </target>
</project>
for simplicity I'm writing within the ant codebase, later I'll break it 
out into a separate jar

class that fails

package org.apache.tools.ant.taskdefs.optional.darcs.commands;

import java.io.IOException;

import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.taskdefs.Execute;
import org.apache.tools.ant.taskdefs.optional.darcs.AbstractDarcs;

public class Initialize extends AbstractDarcs implements DarcsCommand {
   
    private boolean pristineTree = true;
    private static final String PRISTINE = "--plain-pristine-tree";
    private static final String NO_PRISTINE = "--no-pristine-tree";
   
    /**
     * set to use the pristine tree option
     * @param pristineTree
     */
    public void setPristineTree(final boolean pristineTree) {
        this.pristineTree = pristineTree;
    }

    public void execute() throws BuildException {
        String[] cmdline;
        if (pristineTree) {
            cmdline = createCommandline(DarcsCommandList.DARCS, new 
String[] {DarcsCommandList.INITIALIZE, PRISTINE});
        } else {
            cmdline = createCommandline(DarcsCommandList.DARCS, new 
String[] {DarcsCommandList.INITIALIZE, NO_PRISTINE});
        }
        Execute exe = new Execute(getExecuteStreamHandler(), null);
        exe.setCommandline(cmdline);
        try {
            if(verbose) {
                log("Executing : "+this); <-- this breaks with 
NullPointerException
            }
            exe.execute();
        } catch (IOException e) {
            throw new BuildException("There was a problem executing the 
command [ "+this.toString()+" ]");
        }
    }
}

annoyingly the code works as intended without the logging, I just don't 
know why it can't find the project when getProject is called in the Task 
superclass.

with -verbose on, I get a message about antlib.xml not found, but that 
should have nothing to do with this.

just for completeness, here's my stack trace:

BUILD FAILED
D:\eclipse\WORKSP~1\ant\darcs.xml:14: java.lang.NullPointerException
        at 
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav
a:114)
        at org.apache.tools.ant.Task.perform(Task.java:365)
        at org.apache.tools.ant.Target.execute(Target.java:356)
        at org.apache.tools.ant.Target.performTasks(Target.java:384)
        at 
org.apache.tools.ant.Project.executeSortedTargets(Project.java:1236)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1205)
        at 
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExe
cutor.java:40)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1088)
        at org.apache.tools.ant.Main.runBuild(Main.java:676)
        at org.apache.tools.ant.Main.startAnt(Main.java:195)
        at org.apache.tools.ant.Main.start(Main.java:158)
        at org.apache.tools.ant.Main.main(Main.java:236)
Caused by: java.lang.NullPointerException
        at org.apache.tools.ant.Task.log(Task.java:347)
        at org.apache.tools.ant.Task.log(Task.java:335)
        at 
org.apache.tools.ant.taskdefs.optional.darcs.commands.Initialize.exec
ute(Initialize.java:34)
        at 
org.apache.tools.ant.taskdefs.optional.darcs.Darcs.execute(Darcs.java
:19)
        at 
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at 
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav
a:104)
        ... 11 more
--- Nested Exception ---
java.lang.NullPointerException
        at org.apache.tools.ant.Task.log(Task.java:347)
        at org.apache.tools.ant.Task.log(Task.java:335)
        at 
org.apache.tools.ant.taskdefs.optional.darcs.commands.Initialize.exec
ute(Initialize.java:34)
        at 
org.apache.tools.ant.taskdefs.optional.darcs.Darcs.execute(Darcs.java
:19)
        at 
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at 
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav
a:104)
        at org.apache.tools.ant.Task.perform(Task.java:365)
        at org.apache.tools.ant.Target.execute(Target.java:356)
        at org.apache.tools.ant.Target.performTasks(Target.java:384)
        at 
org.apache.tools.ant.Project.executeSortedTargets(Project.java:1236)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1205)
        at 
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExe
cutor.java:40)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1088)
        at org.apache.tools.ant.Main.runBuild(Main.java:676)
        at org.apache.tools.ant.Main.startAnt(Main.java:195)
        at org.apache.tools.ant.Main.start(Main.java:158)
        at org.apache.tools.ant.Main.main(Main.java:236)

Total time: 0 seconds

My guess is that I'm doing something incredibly stupid, but I thought 
you might see a problem within the code - using latest CVS version

Thanks for any help
Kev



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org