You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cactus-user@jakarta.apache.org by Denis Avdic <de...@betterway.net> on 2003/10/17 18:05:46 UTC

Freaky behavior

Hello, 

I was trying to run my tests and I was getting an unexplained null pointer error in my first method of each test. My buddy at work wrote a short testCactus test and it worked.  
Here comes the freaky part:

I copied his methods over to my test and my test worked.  
I deleted instructions from his methods and it still worked.
I deleted the beginCactus() method and the endCactus() method and it still worked.

Then I deleted the testCactus() method and I was getting the null pointer error again.

Here is the error:

null 

java.lang.NullPointerException
at java.net.URLEncoder.encode(URLEncoder.java:184)
at java.net.URLEncoder.encode(URLEncoder.java:149)
at org.apache.cactus.client.connector.http.HttpUtil.dispatch51_addHttpGetParameters(HttpUtil.java;org/apache/cactus/util/log/LogAspect.aj[1k]:124)
at org.apache.cactus.client.connector.http.HttpUtil.around51_addHttpGetParameters(HttpUtil.java;org/apache/cactus/util/log/LogAspect.aj[1k]:1198)
at org.apache.cactus.client.connector.http.HttpUtil.addHttpGetParameters(HttpUtil.java;org/apache/cactus/util/log/LogAspect.aj[1k]:83)
at org.apache.cactus.client.connector.http.HttpClientConnectionHelper.dispatch50_connect(HttpClientConnectionHelper.java;org/apache/cactus/util/log/LogAspect.aj[1k]:130)
at org.apache.cactus.client.connector.http.HttpClientConnectionHelper.around50_connect(HttpClientConnectionHelper.java;org/apache/cactus/util/log/LogAspect.aj[1k]:1240)
at org.apache.cactus.client.connector.http.HttpClientConnectionHelper.connect(HttpClientConnectionHelper.java;org/apache/cactus/util/log/LogAspect.aj[1k]:114)
at org.apache.cactus.client.connector.http.DefaultHttpClient.callRunTest(DefaultHttpClient.java;org/apache/cactus/util/log/LogAspect.aj[1k]:201)
at org.apache.cactus.client.connector.http.DefaultHttpClient.dispatch49_doTest(DefaultHttpClient.java;org/apache/cactus/util/log/LogAspect.aj[1k]:119)
at org.apache.cactus.client.connector.http.DefaultHttpClient.around49_doTest(DefaultHttpClient.java;org/apache/cactus/util/log/LogAspect.aj[1k]:1240)
at org.apache.cactus.client.connector.http.DefaultHttpClient.doTest(DefaultHttpClient.java;org/apache/cactus/util/log/LogAspect.aj[1k]:115)
at org.apache.cactus.internal.client.WebClientTestCaseDelegate.runWebTest(WebClientTestCaseDelegate.java;org/apache/cactus/util/log/LogAspect.aj[1k]:334)
at org.apache.cactus.internal.client.WebClientTestCaseDelegate.runGenericTest(WebClientTestCaseDelegate.java;org/apache/cactus/util/log/LogAspect.aj[1k]:282)
at org.apache.cactus.internal.client.WebClientTestCaseDelegate.runTest(WebClientTestCaseDelegate.java;org/apache/cactus/util/log/LogAspect.aj[1k]:258)
at org.apache.cactus.server.runner.ServletTestRunner.run(ServletTestRunner.java;org/apache/cactus/util/log/LogAspect.aj[1k]:313)
at org.apache.cactus.server.runner.ServletTestRunner.dispatch139_doGet(ServletTestRunner.java;org/apache/cactus/util/log/LogAspect.aj[1k]:209)
at org.apache.cactus.server.runner.ServletTestRunner.around139_doGet(ServletTestRunner.java;org/apache/cactus/util/log/LogAspect.aj[1k]:1158)
at org.apache.cactus.server.runner.ServletTestRunner.doGet(ServletTestRunner.java;org/apache/cactus/util/log/LogAspect.aj[1k]:185)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.ajp.tomcat4.Ajp13Processor.process(Ajp13Processor.java:466)
at org.apache.ajp.tomcat4.Ajp13Processor.run(Ajp13Processor.java:585)
at java.lang.Thread.run(Thread.java:536)


I'd appreciate any help on this.  I mean, it is not a big deal, I just have
public void testCactus(){} after each setUp method in my tests but I was wondering if something else was broke too...

Denis

RE: Question about Servlet TestSuite

Posted by Vincent Massol <vm...@pivolis.com>.

> -----Original Message-----
> From: Bret Kumler [mailto:bkumler@firstam.com]
> Sent: 17 October 2003 22:55
> To: Cactus Users List
> Subject: Question about Servlet TestSuite
> 
> I have the following script
> 
> package com.test;
> 
> import junit.framework.*;
> import org.apache.log4j.Logger;
> 
> 
> 
> public class AllBatTests{
> 
> 
>   private static Logger logger = Logger.getLogger(AllBatTests.class);
> 
> 
>   public static Test suite() {
>     TestSuite suite = new TestSuite();
>     suite.addTest(com.test.QaServiceBatTest.suite());
>     suite.addTest(com.test.QaProductBatTest.suite());
>     return suite;
>   }
> }
> 
> If I change it to
> 
> public static Test suite() {
>     ServletTestSuite suite = new ServletTestSuite ();
>     suite.addTest(com.test.QaServiceBatTest.suite());
>     suite.addTest(com.test.QaProductBatTest.suite());
>     return suite;
> }
> 
> Can I still use JUnit to run the test or do I need seperate test
suites?

I don't understand. What you have written *is* a test suite. As with all
cactus tests you need to use a JUnit test runner to start the test.

-Vincent


RE: Question about Servlet TestSuite

Posted by Vincent Massol <vm...@pivolis.com>.

> -----Original Message-----
> From: Bret Kumler [mailto:bkumler@firstam.com]
> Sent: 17 October 2003 22:55
> To: Cactus Users List
> Subject: Question about Servlet TestSuite
> 
> I have the following script
> 
> package com.test;
> 
> import junit.framework.*;
> import org.apache.log4j.Logger;
> 
> 
> 
> public class AllBatTests{
> 
> 
>   private static Logger logger = Logger.getLogger(AllBatTests.class);
> 
> 
>   public static Test suite() {
>     TestSuite suite = new TestSuite();
>     suite.addTest(com.test.QaServiceBatTest.suite());
>     suite.addTest(com.test.QaProductBatTest.suite());
>     return suite;
>   }
> }
> 
> If I change it to
> 
> public static Test suite() {
>     ServletTestSuite suite = new ServletTestSuite ();
>     suite.addTest(com.test.QaServiceBatTest.suite());
>     suite.addTest(com.test.QaProductBatTest.suite());
>     return suite;
> }
> 
> Can I still use JUnit to run the test or do I need seperate test
suites?

I don't understand. What you have written *is* a test suite. As with all
cactus tests you need to use a JUnit test runner to start the test.

-Vincent


Question about Servlet TestSuite

Posted by Bret Kumler <bk...@firstam.com>.
I have the following script

package com.test;

import junit.framework.*;
import org.apache.log4j.Logger;



public class AllBatTests{


  private static Logger logger = Logger.getLogger(AllBatTests.class);

  
  public static Test suite() {
    TestSuite suite = new TestSuite();
    suite.addTest(com.test.QaServiceBatTest.suite());
    suite.addTest(com.test.QaProductBatTest.suite());
    return suite;
  }
}

If I change it to 

public static Test suite() {
    ServletTestSuite suite = new ServletTestSuite ();
    suite.addTest(com.test.QaServiceBatTest.suite());
    suite.addTest(com.test.QaProductBatTest.suite());
    return suite;
}

Can I still use JUnit to run the test or do I need seperate test suites?


Thanks


changes in state between beginXXX and testXXX

Posted by Denis Avdic <de...@betterway.net>.
Hello,

I am trying to test cookie login on my site.  However I cannot find any
cookies in my test method.

Here is my code snippet:
public void beginLoginCookie (WebRequest wr){


wr.addCookie("www.domain.com:80",ServletUtils.COOKIE_NAME,"myvalue");
        wr.setURL("www.domain.com:80", "", "/login.html", null,null);
        dBSnapshot();
        ServletUtils.log("after snapshot");
    }

public void testLoginCookie() throws Exception{

        controller.doGet(request,response);

}

My controller servlet cannot find anything in the request.

Does the request reset after begin method?   Should I put the cookie
directly into the request in the testLoginCookie() method?

Denis