> -----Original Message-----
> From: Daniel Kulp [mailto:dk...@apache.org]
> Sent: Thursday, October 21, 2010 13:41
> To: users@cxf.apache.org
> Cc: Gary Gregory
> Subject: Re: NullPointerException migrating from 2.1.10 to CXF 2.3.0 and
> 2.2.11
> 
> 
> I really don't have an objection to putting a null guard there, but I do have
> to wonder how something is being started up without an address.  That seems a
> bit strange to me.    Can you post the setup code or whatever that you have so
> I can see why the address is ending up null?

I'm going to step through the debugger to see what happens.

Creating a standalone unit test is not trivial because we are testing a large 
code based with lots of dependencies.

Thank you,
Gary

> 
> Thanks!
> Dan
> 
> 
> On Thursday 21 October 2010 3:46:55 pm Gary Gregory wrote:
> > Hi All:
> >
> >
> >
> > I am currently on CXF 2.2.10 and our unit tests are humming along great.
> >
> >
> >
> > When I switch to 2.1.11 or 2.3.0, I see many NullPointerException like:
> >
> >
> >
> > junit.framework.AssertionFailedError: Expected response to start with
> > "<?xml": <html>
> >
> > <head>
> >
> > <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
> >
> > <title>Error 500 Server Error</title>
> >
> > </head>
> >
> > <body><h2>HTTP ERROR 500</h2>
> >
> > <p>Problem accessing /. Reason:
> >
> > <pre>    Server Error</pre></p><h3>Caused
> > by:</h3><pre>java.lang.NullPointerException
> >
> >       at
> > org.apache.cxf.transport.servlet.ServletDestination.getBasePath(ServletDes
> > tination.java:105)
> >
> >       at
> > org.apache.cxf.transport.http.AbstractHTTPDestination.setupMessage(Abstrac
> > tHTTPDestination.java:335)
> >
> >       at
> > org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestinat
> > ion.java:88)
> >
> >       at
> > org.apache.cxf.transport.servlet.ServletController.invokeDestination(Servl
> > etController.java:428)
> >
> >       at
> > org.apache.cxf.transport.servlet.ServletController.invoke(ServletControlle
> > r.java:183)
> >
> >       at
> > org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServ
> > let.java:148)
> >
> >       at
> > org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(Abstrac
> > tHTTPServlet.java:179)
> >
> >       at
> > org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPSe
> > rvlet.java:103)
> >
> >       at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
> >
> >       at
> > org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPS
> > ervlet.java:159)
> >
> >       at
> > org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:527)
> >
> >       at
> > org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:423)
> >
> >       at
> > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:1
> > 19)
> >
> >       at
> > org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:493
> > )
> >
> >       at
> > org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.ja
> > va:225)
> >
> >       at
> > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.ja
> > va:930)
> >
> >       at
> > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:358)
> >
> >       at
> > org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.jav
> > a:183)
> >
> >       at
> > org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.jav
> > a:866)
> >
> >       at
> > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:1
> > 17)
> >
> >       at
> > org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollectio
> > n.java:126)
> >
> >       at
> > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java
> > :113)
> >
> >       at org.eclipse.jetty.server.Server.handle(Server.java:351)
> >
> >       at
> > org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:
> > 594)
> >
> >       at
> > org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(Http
> > Connection.java:1042)
> >
> >       at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:558)
> >
> >       at
> > org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:211)
> >
> >       at
> > org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:424)
> >
> >       at
> > org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.j
> > ava:506)
> >
> >       at
> > org.eclipse.jetty.util.thread.OldQueuedThreadPool$PoolThread.run(OldQueued
> > ThreadPool.java:524)
> >
> > </pre>
> >
> > <hr /><i><small>Powered by Jetty://</small></i><br/>
> >
> > <br/>
> >
> > <br/>
> >
> > <br/>
> >
> > <br/>
> >
> > <br/>
> >
> > <br/>
> >
> > <br/>
> >
> > <br/>
> >
> > <br/>
> >
> > <br/>
> >
> > <br/>
> >
> > <br/>
> >
> > <br/>
> >
> > <br/>
> >
> > <br/>
> >
> > <br/>
> >
> > <br/>
> >
> > <br/>
> >
> > <br/>
> >
> >
> >
> > </body>
> >
> > </html>
> >
> >
> >
> >       at junit.framework.Assert.fail(Assert.java:47)
> >
> >       at junit.framework.Assert.assertTrue(Assert.java:20)
> >
> >       at
> > com.seagullsw.appinterface.server.comm.http.TestUtils.assertExecute(TestUt
> > ils.java:51)
> >
> >       at
> > com.seagullsw.appinterface.server.comm.http.TestUtils.execute(TestUtils.ja
> > va:114)
> >
> >       at
> > com.seagullsw.appinterface.server.comm.http.TestUtils.doATest(TestUtils.ja
> > va:102)
> >
> >       at
> > com.seagullsw.appinterface.server.comm.http.TestUtils.doAnOkTest(TestUtils
> > .java:78)
> >
> >       at
> > com.seagullsw.appinterface.server.comm.http.TestUtils.doAnOkTest(TestUtils
> > .java:74)
> >
> >       at
> > com.seagullsw.appinterface.server.comm.soap.SoapCmRoundtripTestCase.doAnOk
> > Test(SoapCmRoundtripTestCase.java:76)
> >
> >       at
> > com.seagullsw.appinterface.server.comm.soap.SoapCmRoundtripTestCase.testNo
> > opDocLiteralSoap(SoapCmRoundtripTestCase.java:126)
> >
> >       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >
> >       at
> > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
> > 39)
> >
> >       at
> > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorIm
> > pl.java:25)
> >
> >       at java.lang.reflect.Method.invoke(Method.java:597)
> >
> >       at
> > org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMetho
> > d.java:44)
> >
> >       at
> > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable
> > .java:15)
> >
> >       at
> > org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.
> > java:41)
> >
> >       at
> > org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.j
> > ava:20)
> >
> >       at
> > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:
> > 28)
> >
> >       at
> > org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRun
> > ner.java:79)
> >
> >       at
> > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.j
> > ava:71)
> >
> >       at
> > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.j
> > ava:49)
> >
> >       at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
> >
> >       at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
> >
> >       at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
> >
> >       at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
> >
> >       at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
> >
> >       at
> > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:
> > 28)
> >
> >       at
> > org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31
> > )
> >
> >       at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
> >
> >       at org.junit.runners.Suite.runChild(Suite.java:128)
> >
> >       at org.junit.runners.Suite.runChild(Suite.java:24)
> >
> >       at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
> >
> >       at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
> >
> >       at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
> >
> >       at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
> >
> >       at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
> >
> >       at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
> >
> >       at
> > org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestR
> > eference.java:49)
> >
> >       at
> > org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java
> > :38)
> >
> >       at
> > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTest
> > Runner.java:467)
> >
> >       at
> > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTest
> > Runner.java:683)
> >
> >       at
> > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunne
> > r.java:390)
> >
> >       at
> > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunn
> > er.java:197)
> >
> >
> >
> >
> >
> > Should the method:
> >
> >
> >
> >     protected String getBasePath(String contextPath) throws IOException {
> >
> >
> >
> >         String address = getAddress().getAddress().getValue();
> >
> >         if (address.startsWith("http")) {
> >
> >             return URI.create(address).getPath();
> >
> >         }
> >
> >
> >
> >         return contextPath + address;
> >
> >     }
> >
> >
> >
> > have guard clause like:
> >
> >
> >
> >     protected String getBasePath(String contextPath) throws IOException {
> >
> >
> >
> >         String address = getAddress().getAddress().getValue();
> >
> >         if (address == null) {
> >
> >            return contextPath;
> >
> >         }
> >
> >         if (address.startsWith("http")) {
> >
> >             return URI.create(address).getPath();
> >
> >         }
> >
> >
> >
> >         return contextPath + address;
> >
> >     }
> >
> >
> >
> > ?
> >
> >
> >
> > Gary Gregory
> >
> > Senior Software Engineer
> >
> > Rocket Software
> >
> > 3340 Peachtree Road, Suite 820 * Atlanta, GA 30326 * USA
> >
> > Tel: +1.404.760.1560
> >
> > Email: ggreg...@seagullsoftware.com
> >
> > Web: seagull.rocketsoftware.com
> 
> --
> Daniel Kulp
> dk...@apache.org
> http://dankulp.com/blog

Reply via email to