Hi, 

I'm having a problem using the 'trycatch' task defined by TryCatchTask.java from the 
SourceForge 'antcontrib' project. However, I don't know if this problem is particular 
to that task or custom tasks in general. The problem is a bit deep inside ant for me 
to figure out. Perhaps someone came across something similar while developing or using 
a custom task and can save me some time by pointing me in the right direction.

The problem is that ant is throwing a null pointer exception. This happens in the 
class UnknownElement when trying to create a task object for the task in the 
trycatch's 'try' clause. It seems that the project object never gets set and so the 
line 'project.createTask()' throws the NullPointerException.

I'm using ant 1.4.1 and JDK 1.3.1_01 under Solaris


To isolate the problem, I created a build.xml that has only the code sample from the 
TryCatchTask javadoc:

<project name="Test TryCatchTask" default="test.it">

  <target name="test.it">
    <taskdef name="trycatch" classname="net.sf.antcontrib.logic.TryCatchTask"/>
    <trycatch property="foo" reference="bar">
      <try>
        <fail>Tada!</fail>
      </try>

      <catch>
        <echo>In &lt;catch&gt;.</echo>
      </catch>

      <finally>
        <echo>In &lt;finally&gt;.</echo>
      </finally>
    </trycatch>
  </target>

</project>


I added the following debugging lines to the beginning of the makeTask() method in 
UnknownElement.java

    protected Task makeTask(UnknownElement ue, RuntimeConfigurable w) {
        System.out.println("-------");
        System.out.println("ue: " + ue);
        System.out.println("ue.getTag(): " + ue.getTag());
        System.out.println("project: " + project);
        System.out.println("project.getName(): " + project.getName());

        Task task = project.createTask(ue.getTag());

        System.out.println("task: " + task);


When run, I get the following output:

msexter ~/AutoDeploy$ ant -verbose
Ant version 1.4.1 compiled on October 11 2001
Buildfile: build.xml
Detected Java version: 1.3 in: /usr/j2sdk1_3_1_01/jre
Detected OS: SunOS
parsing buildfile /private/msexter/AutoDeploy/build.xml with URI = file:/private
/msexter/AutoDeploy/build.xml
Project base dir set to: /private/msexter/AutoDeploy
Build sequence for target `test.it' is [test.it]
Complete build sequence is [test.it]

test.it:
 [trycatch] -------
 [trycatch] ue: org.apache.tools.ant.UnknownElement@2d7a10
 [trycatch] ue.getTag(): trycatch
 [trycatch] project: org.apache.tools.ant.Project@93efe
 [trycatch] project.getName(): Test TryCatchTask
 [trycatch] task: net.sf.antcontrib.logic.TryCatchTask@28c488
 [trycatch] -------
 [trycatch] ue: org.apache.tools.ant.UnknownElement@48cc8c
 [trycatch] ue.getTag(): fail
 [trycatch] project: null

BUILD FAILED

java.lang.NullPointerException
        at org.apache.tools.ant.UnknownElement.makeTask(UnknownElement.java:156) 
<-really line 148
        at org.apache.tools.ant.UnknownElement.handleChildren(UnknownElement.java:127)
        at org.apache.tools.ant.UnknownElement.handleChildren(UnknownElement.java:137)
        at org.apache.tools.ant.UnknownElement.maybeConfigure(UnknownElement.java:88)
        at org.apache.tools.ant.Task.perform(Task.java:216)
        at org.apache.tools.ant.Target.execute(Target.java:184)
        at org.apache.tools.ant.Target.performTasks(Target.java:202)
        at org.apache.tools.ant.Project.executeTarget(Project.java:601)
        at org.apache.tools.ant.Project.executeTargets(Project.java:560)
        at org.apache.tools.ant.Main.runBuild(Main.java:454)
        at org.apache.tools.ant.Main.start(Main.java:153)
        at org.apache.tools.ant.Main.main(Main.java:176)

Total time: 1 second


I don't think this is a classpath problem since the TryCatchTask object is 
successfully created and ant doesn't barf until it tries to create a task object for 
the nested tasks. Any help you could give would be appreciated...


                                    - Mike
 

----------
Mike Sexter
(650)633-8603
Principal Member of Technical Staff
<http://www.oraclemobile.com/>OracleMobile - Online Studio
http://msexter.tripod.com

Reply via email to