I hit other problems on trunk that I filed in a JIRA.
On Mon, Nov 14, 2011 at 12:06 PM, Sergey Beryozkin <[email protected]> wrote: > Hi Benson > > On 14/11/11 15:33, Benson Margulies wrote: >> >> Sergey, >> >> I'm going to build you a testcase for this > > I hope it is sorted out now, I was not really sure though how to update a > Jackson based test to reproduce this issue, please try the trunk snapshot > when you get a chance; I just updated the code to check for mappers before > wrapping IOExceptions, so it should fix it > >> and my 'disappearing JSON' >> mystery. > > Please do, thanks > Sergey > >> But I got distracted by building an archetype for JAX-RS >> first. So it will be another day or two. >> >> --benson >> >> >> On Mon, Nov 14, 2011 at 4:36 AM, Sergey Beryozkin<[email protected]> >> wrote: >>> >>> I think it is a bug, as at the moment all the exceptions thrown from >>> MessageBodyReaders are wrapped in WebApplicationException, without giving >>> a >>> chance to custom IOException handlers, I think we had a similar query >>> recently... >>> >>> You can provide your own WebApplicationException mapper and get to the >>> cause >>> of it in that mapper, but I agree that a fix is needed anyway, >>> >>> Sergey >>> >>> On 13/11/11 01:12, Benson Margulies wrote: >>>> >>>> I seem to have run into a problem with exception providers in 2.5.0. >>>> Am I confused? Should I file a JIRA? >>>> >>>> In my context XML: >>>> >>>> <jaxrs:server id="services" address="/"> >>>> <jaxrs:inInterceptors> >>>> <ref bean="logInbound"/> >>>> </jaxrs:inInterceptors> >>>> <jaxrs:serviceBeans> >>>> <ref bean="document-service-impl" /> >>>> </jaxrs:serviceBeans> >>>> <jaxrs:providers> >>>> <bean class="org.codehaus.jackson.jaxrs.JacksonJsonProvider"/> >>>> <bean class="com.basistech.rlp.ws.EofExceptionProvider"/> >>>> </jaxrs:providers> >>>> </jaxrs:server> >>>> >>>> Yet: >>>> >>>> 2011-11-12 20:09:24,435 ["http-bio-15000"-exec-1] ERROR >>>> org.apache.cxf.jaxrs.utils.JAXRSUtils - Error deserializing input >>>> stream into target class PlainTextInputOptions, content type : >>>> application/json >>>> 2011-11-12 20:09:24,437 ["http-bio-15000"-exec-1] WARN >>>> org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper - >>>> WebApplicationException has been caught : No content to map to Object >>>> due to end of input >>>> 2011-11-12 20:09:24,438 ["http-bio-15000"-exec-1] DEBUG >>>> org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper - No content >>>> to map to Object due to end of input >>>> javax.ws.rs.WebApplicationException: java.io.EOFException: No content >>>> to map to Object due to end of input >>>> at >>>> >>>> org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBody(JAXRSUtils.java:1040) >>>> at >>>> >>>> org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameter(JAXRSUtils.java:612) >>>> at >>>> >>>> org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameters(JAXRSUtils.java:577) >>>> at >>>> >>>> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRSInInterceptor.java:236) >>>> at >>>> >>>> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java:88) >>>> at >>>> >>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263) >>>> at >>>> >>>> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:123) >>>> at >>>> >>>> org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:206) >>>> at >>>> >>>> org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213) >>>> at >>>> >>>> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:154) >>>> at >>>> >>>> org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:126) >>>> at >>>> >>>> org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:184) >>>> at >>>> >>>> org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:112) >>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) >>>> at >>>> >>>> org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:163) >>>> at >>>> >>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) >>>> at >>>> >>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) >>>> at >>>> >>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) >>>> at >>>> >>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164) >>>> at >>>> >>>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462) >>>> at >>>> >>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) >>>> at >>>> >>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) >>>> at >>>> >>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) >>>> at >>>> >>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399) >>>> at >>>> >>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317) >>>> at >>>> >>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204) >>>> at >>>> >>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:182) >>>> at >>>> >>>> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311) >>>> at >>>> >>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) >>>> at >>>> >>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) >>>> at java.lang.Thread.run(Thread.java:680) >>>> Caused by: java.io.EOFException: No content to map to Object due to end >>>> of >>>> input >>>> at >>>> >>>> org.codehaus.jackson.map.ObjectMapper._initForReading(ObjectMapper.java:2437) >>>> at >>>> org.codehaus.jackson.map.ObjectMapper._readValue(ObjectMapper.java:2370) >>>> at >>>> org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1166) >>>> at >>>> >>>> org.codehaus.jackson.jaxrs.JacksonJsonProvider.readFrom(JacksonJsonProvider.java:410) >>>> at >>>> >>>> org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBody(JAXRSUtils.java:1032) >>>> ... 30 more >>> >>> > >
