Uploaded image for project: 'CXF'
  1. CXF
  2. CXF-6517

Regression in 3.1.2 attachment handling

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 3.1.2
    • Fix Version/s: 3.1.3, 2.7.18, 3.0.7
    • Component/s: JAXB Databinding
    • Labels:
      None
    • Estimated Complexity:
      Unknown

      Description

      2015-08-04 13:35:20,892 [qtp38997010-16][146.213.0.135][][AB62939][04027744109][7001][BRA][1f220a68-cbf7-4779-9014-3bd225fb720a] WARN org.apache.cxf.phase.PhaseInterceptorChain - Interceptor for {urn:srv.jfr.tac.f
      s.edb.com:ws:file:v1}TACSFileService_V1#{urn:srv.jfr.tac.fs.edb.com:ws:file:v1}fileRead has thrown exception, unwinding now
      org.apache.cxf.interceptor.Fault: Marshalling Error: null
              at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:268) ~[cxf-rt-databinding-jaxb-3.1.2.jar:3.1.2]
              at org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:237) ~[cxf-rt-databinding-jaxb-3.1.2.jar:3.1.2]
              at org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:136) ~[cxf-core-3.1.2.jar:3.1.2]
              at org.apache.cxf.wsdl.interceptors.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68) ~[cxf-rt-wsdl-3.1.2.jar:3.1.2]
              at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) [cxf-core-3.1.2.jar:3.1.2]
              at org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:83) [cxf-core-3.1.2.jar:3.1.2]
              at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) [cxf-core-3.1.2.jar:3.1.2]
              at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) [cxf-core-3.1.2.jar:3.1.2]
              at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:251) [cxf-rt-transports-http-3.1.2.jar:3.1.2]
              at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234) [cxf-rt-transports-http-3.1.2.jar:3.1.2]
              at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208) [cxf-rt-transports-http-3.1.2.jar:3.1.2]
              at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160) [cxf-rt-transports-http-3.1.2.jar:3.1.2]
              at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:171) [cxf-rt-transports-http-3.1.2.jar:3.1.2]
              at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:293) [cxf-rt-transports-http-3.1.2.jar:3.1.2]
              at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:212) [cxf-rt-transports-http-3.1.2.jar:3.1.2]
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) [servlet-api-3.1.jar:3.1.0]
              at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:268) [cxf-rt-transports-http-3.1.2.jar:3.1.2]
              at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808) [jetty-servlet-9.2.8.v20150217.jar:9.2.8.v20150217]
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669) [jetty-servlet-9.2.8.v20150217.jar:9.2.8.v20150217]
              at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:160) [javamelody-core-1.56.0.jar:1.56.0]
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) [jetty-servlet-9.2.8.v20150217.jar:9.2.8.v20150217]
              at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:178) [spring-orm-4.2.0.RELEASE.jar:4.2.0.RELEASE]
              at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-4.2.0.RELEASE.jar:4.2.0.RELEASE]
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) [jetty-servlet-9.2.8.v20150217.jar:9.2.8.v20150217]
              at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:198) [javamelody-core-1.56.0.jar:1.56.0]
              at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:176) [javamelody-core-1.56.0.jar:1.56.0]
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) [jetty-servlet-9.2.8.v20150217.jar:9.2.8.v20150217]
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:316) [spring-security-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
              at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126) [spring-security-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
              at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90) [spring-security-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) [spring-security-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
              at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114) [spring-security-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) [spring-security-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
              at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:122) [spring-security-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) [spring-security-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
              at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111) [spring-security-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) [spring-security-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
              at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:169) [spring-security-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) [spring-security-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
              at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:48) [spring-security-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) [spring-security-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
              at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:158) [spring-security-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
              at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-4.2.0.RELEASE.jar:4.2.0.RELEASE]
      .....
              at ch.qos.logback.classic.helpers.MDCInsertingServletFilter.doFilter(MDCInsertingServletFilter.java:51) [logback-classic-1.1.3.jar:na]
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) [jetty-servlet-9.2.8.v20150217.jar:9.2.8.v20150217]
              at com.netflix.hystrix.contrib.requestservlet.HystrixRequestLogViaLoggerServletFilter.doFilter(HystrixRequestLogViaLoggerServletFilter.java:78) [hystrix-request-servlet-1.4.13.jar:1.4.13]
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) [jetty-servlet-9.2.8.v20150217.jar:9.2.8.v20150217]
              at com.netflix.hystrix.contrib.requestservlet.HystrixRequestContextServletFilter.doFilter(HystrixRequestContextServletFilter.java:53) [hystrix-request-servlet-1.4.13.jar:1.4.13]
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) [jetty-servlet-9.2.8.v20150217.jar:9.2.8.v20150217]
              at com.netflix.hystrix.contrib.requestservlet.HystrixRequestLogViaResponseHeaderServletFilter.doFilter(HystrixRequestLogViaResponseHeaderServletFilter.java:63) [hystrix-request-servlet-1.4.13.jar:1.4.13]
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) [jetty-servlet-9.2.8.v20150217.jar:9.2.8.v20150217]
              at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) [jetty-servlet-9.2.8.v20150217.jar:9.2.8.v20150217]
              at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [jetty-server-9.2.8.v20150217.jar:9.2.8.v20150217]
              at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) [jetty-security-9.2.8.v20150217.jar:9.2.8.v20150217]
              at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) [jetty-server-9.2.8.v20150217.jar:9.2.8.v20150217]
              at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) [jetty-server-9.2.8.v20150217.jar:9.2.8.v20150217]
              at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) [jetty-servlet-9.2.8.v20150217.jar:9.2.8.v20150217]
              at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [jetty-server-9.2.8.v20150217.jar:9.2.8.v20150217]
              at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) [jetty-server-9.2.8.v20150217.jar:9.2.8.v20150217]
              at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [jetty-server-9.2.8.v20150217.jar:9.2.8.v20150217]
              at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215) [jetty-server-9.2.8.v20150217.jar:9.2.8.v20150217]
              at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110) [jetty-server-9.2.8.v20150217.jar:9.2.8.v20150217]
              at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [jetty-server-9.2.8.v20150217.jar:9.2.8.v20150217]
              at org.eclipse.jetty.server.Server.handle(Server.java:497) [jetty-server-9.2.8.v20150217.jar:9.2.8.v20150217]
              at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) [jetty-server-9.2.8.v20150217.jar:9.2.8.v20150217]
              at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) [jetty-server-9.2.8.v20150217.jar:9.2.8.v20150217]
              at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) [jetty-io-9.2.8.v20150217.jar:9.2.8.v20150217]
              at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) [jetty-util-9.2.8.v20150217.jar:9.2.8.v20150217]
              at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) [jetty-util-9.2.8.v20150217.jar:9.2.8.v20150217]
              at java.lang.Thread.run(Thread.java:745) [na:1.8.0_45]
      Caused by: java.lang.NullPointerException: null
              at java.net.URLEncoder.encode(URLEncoder.java:204) ~[na:1.8.0_45]
              at org.apache.cxf.attachment.AttachmentUtil.createContentID(AttachmentUtil.java:207) ~[cxf-core-3.1.2.jar:3.1.2]
              at org.apache.cxf.attachment.AttachmentUtil.createMtomAttachmentFromDH(AttachmentUtil.java:502) ~[cxf-core-3.1.2.jar:3.1.2]
              at org.apache.cxf.jaxb.attachment.JAXBAttachmentMarshaller.addMtomAttachment(JAXBAttachmentMarshaller.java:69) ~[cxf-rt-databinding-jaxb-3.1.2.jar:3.1.2]
              at com.sun.xml.bind.v2.runtime.output.MTOMXmlOutput.text(MTOMXmlOutput.java:128) ~[jaxb-impl-2.2.11.jar:2.2.11]
              at com.sun.xml.bind.v2.runtime.XMLSerializer.leafElement(XMLSerializer.java:356) ~[jaxb-impl-2.2.11.jar:2.2.11]
              at com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$PcdataImpl.writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:191) ~[jaxb-impl-2.2.11.jar:2.2.11]
              at com.sun.xml.bind.v2.runtime.MimeTypedTransducer.writeLeafElement(MimeTypedTransducer.java:96) ~[jaxb-impl-2.2.11.jar:2.2.11]
              at com.sun.xml.bind.v2.runtime.reflect.TransducedAccessor$CompositeTransducedAccessorImpl.writeLeafElement(TransducedAccessor.java:254) ~[jaxb-impl-2.2.11.jar:2.2.11]
              at com.sun.xml.bind.v2.runtime.property.SingleElementLeafProperty.serializeBody(SingleElementLeafProperty.java:130) ~[jaxb-impl-2.2.11.jar:2.2.11]
              at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:360) ~[jaxb-impl-2.2.11.jar:2.2.11]
              at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:696) ~[jaxb-impl-2.2.11.jar:2.2.11]
              at com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:158) ~[jaxb-impl-2.2.11.jar:2.2.11]
              at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:360) ~[jaxb-impl-2.2.11.jar:2.2.11]
              at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:696) ~[jaxb-impl-2.2.11.jar:2.2.11]
              at com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:158) ~[jaxb-impl-2.2.11.jar:2.2.11]
              at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:160) ~[jaxb-impl-2.2.11.jar:2.2.11]
              at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:130) ~[jaxb-impl-2.2.11.jar:2.2.11]
              at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(ElementBeanInfoImpl.java:332) ~[jaxb-impl-2.2.11.jar:2.2.11]
              at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:339) ~[jaxb-impl-2.2.11.jar:2.2.11]
              at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:75) ~[jaxb-impl-2.2.11.jar:2.2.11]
              at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:494) ~[jaxb-impl-2.2.11.jar:2.2.11]
              at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:323) ~[jaxb-impl-2.2.11.jar:2.2.11]
              at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:178) ~[jaxb-impl-2.2.11.jar:2.2.11]
              at org.apache.cxf.jaxb.JAXBEncoderDecoder.writeObject(JAXBEncoderDecoder.java:615) ~[cxf-rt-databinding-jaxb-3.1.2.jar:3.1.2]
              at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:241) ~[cxf-rt-databinding-jaxb-3.1.2.jar:3.1.2]
              ... 91 common frames omitted
      

      My code for constructing the return type:

          public static FileType toFileType( MetaData metaData )
          {
              ByteDataSource byteArrayDataSource =
                  new ByteDataSource( metaData.getLobData().getBlob(), metaData.getMimeType() );
              DataHandler dataHandler = new DataHandler( byteArrayDataSource );
      
              return new FileType().withFileMetaData( toWs( metaData ) ).withPayload( dataHandler );
          }
      
      

        Attachments

          Activity

            People

            • Assignee:
              sergey_beryozkin Sergey Beryozkin
              Reporter:
              davidkarlsen@gmail.com David J. M. Karlsen
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: