So actually you have to look here:
http://svn.apache.org/repos/asf/jakarta/cactus/trunk/integration/ant/src/java/org/apache/cactus/integration/ant/CactusTask.java
and this is the peace of code that actually executes the test:
===========================================
private void executeInContainer(ContainerWrapper theWrapper,
DeployableFile theFile)
{
log("Starting up container", Project.MSG_VERBOSE);
ContainerRunner runner = new ContainerRunner(theWrapper);
runner.setLogger(new AntLogger(getProject()));
try
{
URL url = new URL(theWrapper.getBaseURL() + "/"
+ theFile.getTestContext()
+ theFile.getServletRedirectorMapping()
+ "?Cactus_Service=RUN_TEST");
runner.setURL(url);
runner.startUpContainer();
log("Server name retrieved from 'Server' HTTP header: ["
+ runner.getServerName() + "]", Project.MSG_VERBOSE);
try
{
Enumeration tests = getIndividualTests();
while (tests.hasMoreElements())
{
JUnitTest test = (JUnitTest) tests.nextElement();
if (test.shouldRun(getProject())
&& !theWrapper.isExcluded(test.getName()))
{
if (theWrapper.getToDir() != null)
{
test.setTodir(theWrapper.getToDir());
}
execute(test);
}
}
}
finally
{
log("Shutting down container", Project.MSG_VERBOSE);
runner.shutDownContainer();
log("Container shut down", Project.MSG_VERBOSE);
}
}
===========================================
and the test-case in "execute(test)" is NOT null - I explicitly checked it.
In my opinion the only reason for the NLP is because the delegate
object is null :-(.
Any suggestions?
2007/10/28, Petar Tahchiev <[EMAIL PROTECTED]>:
>
> Hi guys,
>
> my name is Petar Tahchiev and I am one of the developers of Jakarta
> Cactus.
> I have a really strange problem, when using Ant > 1.6.5.
> When trying to execute my cactus tasks, I invoke actually the JunitTask, I
> get the
> following exception:
>
> -----------------------------------------------------------------------------
> /home/peter/bin/workspace/TestCactus/build.xml:93:
> java.lang.NullPointerException
> at org.apache.tools.ant.dispatch.DispatchUtils.execute (
> DispatchUtils.java:115)
> at org.apache.tools.ant.Task.perform(Task.java:348)
> at org.apache.tools.ant.Target.execute(Target.java:357)
> at org.apache.tools.ant.Target.performTasks(Target.java :385)
> at org.apache.tools.ant.Project.executeSortedTargets(Project.java
> :1329)
> at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
> at org.apache.tools.ant.helper.DefaultExecutor.executeTargets (
> DefaultExecutor.java:41)
> at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
> at org.apache.tools.ant.Main.runBuild(Main.java:758)
> at org.apache.tools.ant.Main.startAnt(Main.java :217)
> at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
> at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
> Caused by: java.lang.NullPointerException
> at
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeInVM (
> JUnitTask.java:1272)
> at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(
> JUnitTask.java:823)
> at org.apache.cactus.integration.ant.CactusTask.executeInContainer
> (CactusTask.java:453)
> at org.apache.cactus.integration.ant.CactusTask.execute(
> CactusTask.java:204)
> at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java
> :288)
> at sun.reflect.GeneratedMethodAccessor2.invoke (Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(
> DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at org.apache.tools.ant.dispatch.DispatchUtils.execute (
> DispatchUtils.java:105)
> ... 11 more
> --- Nested Exception ---
> java.lang.NullPointerException
> at
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeInVM(
> JUnitTask.java:1272)
> at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(
> JUnitTask.java:823)
> at org.apache.cactus.integration.ant.CactusTask.executeInContainer
> (CactusTask.java:453)
> at org.apache.cactus.integration.ant.CactusTask.execute (
> CactusTask.java:204)
> at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java
> :288)
> at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke (
> DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at org.apache.tools.ant.dispatch.DispatchUtils.execute(
> DispatchUtils.java:105)
> at org.apache.tools.ant.Task.perform (Task.java:348)
> at org.apache.tools.ant.Target.execute(Target.java:357)
> at org.apache.tools.ant.Target.performTasks(Target.java:385)
> at
> org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
> at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
> at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(
> DefaultExecutor.java:41)
> at org.apache.tools.ant.Project.executeTargets (Project.java:1181)
> at org.apache.tools.ant.Main.runBuild(Main.java:758)
> at org.apache.tools.ant.Main.startAnt(Main.java:217)
> at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
> at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
>
> Total time: 8 seconds
>
> ------------------------------------------------------------------------------------------------
>
> However, if I downgrade to Ant 1.6.5 I don't get this exception and
> everything passes
> smoothly. Looking at the source code of the task, on line 1272 here is
> what we see:
>
> runner = delegate.newJUnitTestRunner (test, test.getHaltonerror(),
> test.getFiltertrace(),
> test.getHaltonfailure(), false,
> true, classLoader);
> so it turns out that delegate is null !!!
> In Ant 1.6.5. there seems that this "delegate" object is missing. Also
> when we look on line 799
> we see that delegate is explicitly nullified:
> ------------------------------------------------
>
> delegate = null;
>
> ------------------------------------------------
>
> ????
>
> Does these thoughts make any sense, and if yes, how can I resolve my
> problems.
>
> Thank you.
>
> --
> Regards, Petar!
> Karlovo, Bulgaria.
>
> EOOXML Objections
> http://www.grokdoc.net/index.php/EOOXML_objections
>
> Public PGP Key at:
> https://keyserver1.pgp.com/vkd/DownloadKey.event?keyid=0x19658550C3110611
>
> Key Fingerprint: A369 A7EE 61BC 93A3 CDFF 55A5 1965 8550 C311 0611
--
Regards, Petar!
Karlovo, Bulgaria.
EOOXML Objections
http://www.grokdoc.net/index.php/EOOXML_objections
Public PGP Key at:
https://keyserver1.pgp.com/vkd/DownloadKey.event?keyid=0x19658550C3110611
Key Fingerprint: A369 A7EE 61BC 93A3 CDFF 55A5 1965 8550 C311 0611