Re: NPE org.apache.cxf.attachment.AttachmentSerializer.writeAttachments

2008-04-11 Thread Daniel Kulp


Christoph,

How is the attachment constructed?   Is this something that is a byte[] 
in the jaxb beans or is it an Image or a DataHandler or what?   That may 
help narrow down that cause a bit.

All we do is iterator over the attachments, write out the mime headers, 
then call:
 att.getDataHandler().writeTo(out);

Also, what version of activation are you using?

Assuming the latest geronimo-specs activation jar, from that stack trace, 
line 90 is:
is.close()
Thus, an NPE would occur there if getInputStream() returns null which 
would occur if:
ds.getInputStream();
returns null.  Thus, I guess I'd need to know what the DataSource is.


Dan


On Friday 11 April 2008, [EMAIL PROTECTED] wrote:
> Hi List,
>
> I'm relatively new to Apache CXF and managed to implement a Webservice
> using JAX-WS which returns MTOM attachments. My service connects to a
> Webserver and gets the content of the MTOM attachment by reading a
> Java HTTPConnection. Sometimes there seems to be no content in the
> HTTPConnection inputStream, so I implemented a check for this case
> which throws an exception.
>
> At a first glance everything is ok but when I do some load test with
> SoapUI I get this exception in the tomcat log:
>
> java.lang.NullPointerException
> at javax.activation.DataHandler.writeTo(DataHandler.java:90)
> at
> org.apache.cxf.attachment.AttachmentSerializer.writeAttachments(Attach
>mentSerializer.java:129) at
> org.apache.cxf.interceptor.AttachmentOutInterceptor$AttachmentOutEndin
>gInterceptor.handleMessage(AttachmentOutInterceptor.java:77) at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercepto
>rChain.java:220) at
> org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(Outg
>oingChainInterceptor.java:74) at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercepto
>rChain.java:220) at
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitia
>tionObserver.java:77) at
> org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDest
>ination.java:92) at
> org.apache.cxf.transport.servlet.ServletController.invokeDestination(S
>ervletController.java:213) at
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletContr
>oller.java:150) at
> org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXF
>Servlet.java:170) at
> org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXF
>Servlet.java:148) at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:710) at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appli
>cationFilterChain.java:269) at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFi
>lterChain.java:188) at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperVa
>lve.java:213) at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextVa
>lve.java:174) at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticat
>orBase.java:525) at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.ja
>va:127) at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.ja
>va:117) at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValv
>e.java:108) at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java
>:174) at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:
>874) at
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.pr
>ocessConnection(Http11BaseProtocol.java:665) at
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoi
>nt.java:528) at
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFoll
>owerWorkerThread.java:81) at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPo
>ol.java:689) at java.lang.Thread.run(Thread.java:595)
> 11.04.2008 16:18:33 org.apache.cxf.phase.PhaseInterceptorChain
> doIntercept INFO: Interceptor has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: Error writing to XMLStreamWriter.
> at
> org.apache.cxf.binding.soap.interceptor.Soap11FaultOutInterceptor.hand
>leMessage(Soap11FaultOutInterceptor.java:140) at
> org.apache.cxf.binding.soap.interceptor.Soap11FaultOutInterceptor.hand
>leMessage(Soap11FaultOutInterceptor.java:43) at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercepto
>rChain.java:220) at
> org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessa
>ge(AbstractFaultChainInitiatorObserver.java:96) at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercepto
>rChain.java:254) at
> org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(Outg
>oingChainInterceptor.java:74) at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercepto
>rChain.java:220) at
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitia
>tionObserver.java:77) 

NPE org.apache.cxf.attachment.AttachmentSerializer.writeAttachments

2008-04-11 Thread guse
Hi List,

I'm relatively new to Apache CXF and managed to implement a Webservice 
using JAX-WS which returns MTOM attachments. My service connects to a 
Webserver and gets the content of the MTOM attachment by reading a Java 
HTTPConnection. Sometimes there seems to be no content in the 
HTTPConnection inputStream, so I implemented a check for this case which 
throws an exception.

At a first glance everything is ok but when I do some load test with 
SoapUI I get this exception in the tomcat log:

java.lang.NullPointerException
at javax.activation.DataHandler.writeTo(DataHandler.java:90)
at 
org.apache.cxf.attachment.AttachmentSerializer.writeAttachments(AttachmentSerializer.java:129)
at 
org.apache.cxf.interceptor.AttachmentOutInterceptor$AttachmentOutEndingInterceptor.handleMessage(AttachmentOutInterceptor.java:77)
at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
at 
org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:74)
at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
at 
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:77)
at 
org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
at 
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213)
at 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:150)
at 
org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:170)
at 
org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:148)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at 
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at 
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at 
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:595)
11.04.2008 16:18:33 org.apache.cxf.phase.PhaseInterceptorChain doIntercept
INFO: Interceptor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Error writing to XMLStreamWriter.
at 
org.apache.cxf.binding.soap.interceptor.Soap11FaultOutInterceptor.handleMessage(Soap11FaultOutInterceptor.java:140)
at 
org.apache.cxf.binding.soap.interceptor.Soap11FaultOutInterceptor.handleMessage(Soap11FaultOutInterceptor.java:43)
at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
at 
org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:96)
at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:254)
at 
org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:74)
at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
at 
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:77)
at 
org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
at 
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213)
at 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:150)
at 
org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:170)
at 
org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:148)
at javax.servlet.http.HttpServlet.service(HttpS