Maybe the project is not set correctly. What does "getProject()" refer?
If you inherit from DispatchUtils, you dont have a real task (class inherited from oata.Task). You´re using a task wrapper instead. Jan >-----Ursprüngliche Nachricht----- >Von: Kev Jackson [mailto:[EMAIL PROTECTED] >Gesendet: Dienstag, 23. August 2005 12:23 >An: Ant Developers List >Betreff: 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: [EMAIL PROTECTED] For >additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]