Return-Path: X-Original-To: apmail-cxf-issues-archive@www.apache.org Delivered-To: apmail-cxf-issues-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id D8CFAE9BB for ; Mon, 25 Feb 2013 11:46:15 +0000 (UTC) Received: (qmail 79133 invoked by uid 500); 25 Feb 2013 11:46:15 -0000 Delivered-To: apmail-cxf-issues-archive@cxf.apache.org Received: (qmail 78998 invoked by uid 500); 25 Feb 2013 11:46:14 -0000 Mailing-List: contact issues-help@cxf.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cxf.apache.org Delivered-To: mailing list issues@cxf.apache.org Received: (qmail 78954 invoked by uid 99); 25 Feb 2013 11:46:13 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 25 Feb 2013 11:46:13 +0000 Date: Mon, 25 Feb 2013 11:46:12 +0000 (UTC) From: "Ivan Grebenek (JIRA)" To: issues@cxf.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Created] (CXF-4851) AttachmentDeserializer cannot handle attachments with Quoted Printable content transfer encoding in initializeRootMessage MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 Ivan Grebenek created CXF-4851: ---------------------------------- Summary: AttachmentDeserializer cannot handle attachments with Quoted Printable content transfer encoding in initializeRootMessage Key: CXF-4851 URL: https://issues.apache.org/jira/browse/CXF-4851 Project: CXF Issue Type: Bug Affects Versions: 2.7.3, 2.6.6 Reporter: Ivan Grebenek The issue is the same as CXF-1847, but it happens by initializing root message in initializeRootMessage() method. processing SOAP POST /PortalUpdateStatusServiceWAR/updateStatusService HTTP/1.1 Host: 127.0.0.1:7788 Connection: close, TE TE: trailers, deflate, gzip, compress User-Agent: Oracle HTTPClient Version 10h SOAPAction: updateStatus Accept-Encoding: gzip, x-gzip, compress, x-compress Content-type: multipart/related; type="text/xml"; start="<84353ECADD8D15912FBDF2318104ECF4>"; boundary="----=_Part_119_6505558.1361536929956" Content-length: 138556 ------=_Part_119_6505558.1361536929956 Content-Type: text/plain; charset=Cp1251 Content-Transfer-Encoding: quoted-printable Content-Id: <84353ECADD8D15912FBDF2318104ECF4> ... ------=_Part_119_6505558.1361536929956 Content-Type: application/octet-stream Content-Transfer-Encoding: binary Content-Id: <3048> ... results in the following exception: 13:38:30.567 [AJPRequestHandler-RMICallHandler-38] WARN o.a.cxf.phase.PhaseInterceptorChain - Interceptor for {http://ws.apache.org/axis2}updateStatusService has thrown exception, unwinding now java.lang.RuntimeException: Couldn't parse stream. at org.apache.cxf.staxutils.StaxUtils.createXMLStreamReader(StaxUtils.java:1262) ~[cxf-api-2.6.6.jar:2.6.6] at org.apache.cxf.interceptor.StaxInInterceptor.handleMessage(StaxInInterceptor.java:112) ~[cxf-api-2.6.6.jar:2.6.6] at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262) ~[cxf-api-2.6.6.jar:2.6.6] at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) [cxf-api-2.6.6.jar:2.6.6] at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:237) [cxf-rt-transports-http-2.6.6.jar:2.6.6] at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:209) [cxf-rt-transports-http-2.6.6.jar:2.6.6] at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:189) [cxf-rt-transports-http-2.6.6.jar:2.6.6] at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:130) [cxf-rt-transports-http-2.6.6.jar:2.6.6] at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:225) [cxf-rt-transports-http-2.6.6.jar:2.6.6] at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:145) [cxf-rt-transports-http-2.6.6.jar:2.6.6] at javax.servlet.http.HttpServlet.service(HttpServlet.java:763) [servlet.jar:na] at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:201) [cxf-rt-transports-http-2.6.6.jar:2.6.6] at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:734) [oc4j-internal.jar:na] at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:391) [oc4j-internal.jar:na] at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:908) [oc4j-internal.jar:na] at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:458) [oc4j-internal.jar:na] at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:313) [oc4j-internal.jar:na] at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:199) [oc4j-internal.jar:na] at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260) [oc4j-internal.jar:na] at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303) [oc4j-internal.jar:na] at java.lang.Thread.run(Thread.java:595) [na:1.5.0_18] Caused by: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '3' (code 51); expected a quote character enclosing value for 'version' at [row,col {unknown-source}]: [1,15] at com.ctc.wstx.io.InputBootstrapper.reportUnexpectedChar(InputBootstrapper.java:506) ~[woodstox-core-asl-4.1.1.jar:4.1.1] at com.ctc.wstx.io.InputBootstrapper.handleEq(InputBootstrapper.java:421) ~[woodstox-core-asl-4.1.1.jar:4.1.1] at com.ctc.wstx.io.InputBootstrapper.readXmlVersion(InputBootstrapper.java:319) ~[woodstox-core-asl-4.1.1.jar:4.1.1] at com.ctc.wstx.io.InputBootstrapper.readXmlDecl(InputBootstrapper.java:262) ~[woodstox-core-asl-4.1.1.jar:4.1.1] at com.ctc.wstx.io.ReaderBootstrapper.bootstrapInput(ReaderBootstrapper.java:155) ~[woodstox-core-asl-4.1.1.jar:4.1.1] at com.ctc.wstx.stax.WstxInputFactory.doCreateSR(WstxInputFactory.java:531) ~[woodstox-core-asl-4.1.1.jar:4.1.1] at com.ctc.wstx.stax.WstxInputFactory.createSR(WstxInputFactory.java:585) ~[woodstox-core-asl-4.1.1.jar:4.1.1] at com.ctc.wstx.stax.WstxInputFactory.createSR(WstxInputFactory.java:610) ~[woodstox-core-asl-4.1.1.jar:4.1.1] at com.ctc.wstx.stax.WstxInputFactory.createXMLStreamReader(WstxInputFactory.java:316) ~[woodstox-core-asl-4.1.1.jar:4.1.1] at org.apache.cxf.staxutils.StaxUtils.createXMLStreamReader(StaxUtils.java:1260) ~[cxf-api-2.6.6.jar:2.6.6] ... 20 common frames omitted I solved that by the following modification (version 2.6.6) try { InternetHeaders ih = new InternetHeaders(stream); message.put(InternetHeaders.class.getName(), ih); String val = ih.getHeader("Content-Type", "; "); if (!StringUtils.isEmpty(val)) { String cs = HttpHeaderHelper.findCharset(val); if (!StringUtils.isEmpty(cs)) { message.put(Message.ENCODING, HttpHeaderHelper.mapCharset(cs)); } String contentTransferEncoding = ih.getHeader("Content-Transfer-Encoding", null); quotedPrintable = contentTransferEncoding != null && contentTransferEncoding .equalsIgnoreCase(QUOTED_PRINTABLE); } } catch (MessagingException e) { throw new RuntimeException(e); } InputStream is; if (quotedPrintable) { InputStream rawInputSream = new MimeBodyPartInputStream(stream, boundary, pbAmount); is = new QuotedPrintableDecoderStream(rawInputSream); } else is = new MimeBodyPartInputStream(stream, boundary, pbAmount); body = new DelegatingInputStream(is, this); createCount++; message.setContent(InputStream.class, body); -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira