[ https://issues.apache.org/jira/browse/CXF-4726?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
chengy updated CXF-4726: ------------------------ Description: When test with the mtom example by SAAJ Dispath API,I find 2 bug: 1,the AttachmentPart.getDataHandler().getInputStream() contains no data,available method get 0; 2,the filename contains non-US-ASCII characters received incorrect. the client test code like below: URL wsdlURL=new URL("http://localhost:9000/mime-test?wsdl"); TestMtomService tms = new TestMtomService(wsdlURL, SERVICE_NAME); TestMtomPortType port = (TestMtomPortType) tms.getPort(PORT_NAME, TestMtomPortType.class); Binding binding = ((BindingProvider)port).getBinding(); ((SOAPBinding)binding).setMTOMEnabled(true); DocumentBuilderFactory dbf= DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); String s="<testDataHandler xmlns=\"http://cxf.apache.org/mime/types\"><name>Bob</name></testDataHandler>"; Document doc= dbf.newDocumentBuilder().parse(new InputSource(new StringBufferInputStream(s))); SOAPMessage msg=MessageFactory.newInstance().createMessage(); msg.getSOAPBody().addDocument(doc); Dispatch<SOAPMessage> dispatch =tms.createDispatch(PORT_NAME, SOAPMessage.class, Mode.MESSAGE); SOAPMessage res= dispatch.invoke(msg); AttachmentPart attachmentPart= (AttachmentPart)res.getAttachments().next(); System.out.println(attachmentPart.getDataHandler().getName()+";"+attachmentPart.getDataHandler().getInputStream().available()); the server test code like below: public void testDataHandler(Holder<String> name, Holder<DataHandler> attachinfo) { try { name.value = "Hello " + name.value; attachinfo.value = new DataHandler(new FileDataSource(new File("c:/奋斗1cc.jpg"))); } catch (Exception e) { e.printStackTrace(); } } was: When test with the mtom example by SAAJ Dispath API,I find 2 bug: 1,the AttachmentPart.getDataHandler().getInputStream() contains no data,available method get 0; 2,the filename contains non-US-ASCII characters display incorrect. the client test code like below: URL wsdlURL=new URL("http://localhost:9000/mime-test?wsdl"); TestMtomService tms = new TestMtomService(wsdlURL, SERVICE_NAME); TestMtomPortType port = (TestMtomPortType) tms.getPort(PORT_NAME, TestMtomPortType.class); Binding binding = ((BindingProvider)port).getBinding(); ((SOAPBinding)binding).setMTOMEnabled(true); DocumentBuilderFactory dbf= DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); String s="<testDataHandler xmlns=\"http://cxf.apache.org/mime/types\"><name>Bob</name></testDataHandler>"; Document doc= dbf.newDocumentBuilder().parse(new InputSource(new StringBufferInputStream(s))); SOAPMessage msg=MessageFactory.newInstance().createMessage(); msg.getSOAPBody().addDocument(doc); Dispatch<SOAPMessage> dispatch =tms.createDispatch(PORT_NAME, SOAPMessage.class, Mode.MESSAGE); SOAPMessage res= dispatch.invoke(msg); AttachmentPart attachmentPart= (AttachmentPart)res.getAttachments().next(); System.out.println(attachmentPart.getDataHandler().getName()+";"+attachmentPart.getDataHandler().getInputStream().available()); the server test code like below: public void testDataHandler(Holder<String> name, Holder<DataHandler> attachinfo) { try { name.value = "Hello " + name.value; attachinfo.value = new DataHandler(new FileDataSource(new File("c:/奋斗1cc.jpg"))); } catch (Exception e) { e.printStackTrace(); } } Summary: AttachmentDataSource stream bug and filename contains non-US-ASCII characters receive incorrect (was: AttachmentDataSource stream cache bug and filename contains non-US-ASCII characters not correct) > AttachmentDataSource stream bug and filename contains non-US-ASCII characters > receive incorrect > ----------------------------------------------------------------------------------------------- > > Key: CXF-4726 > URL: https://issues.apache.org/jira/browse/CXF-4726 > Project: CXF > Issue Type: Bug > Affects Versions: 2.6.4 > Reporter: chengy > > When test with the mtom example by SAAJ Dispath API,I find 2 bug: > 1,the AttachmentPart.getDataHandler().getInputStream() contains no > data,available method get 0; > 2,the filename contains non-US-ASCII characters received incorrect. > the client test code like below: > URL wsdlURL=new URL("http://localhost:9000/mime-test?wsdl"); > TestMtomService tms = new TestMtomService(wsdlURL, SERVICE_NAME); > TestMtomPortType port = (TestMtomPortType) tms.getPort(PORT_NAME, > TestMtomPortType.class); > Binding binding = ((BindingProvider)port).getBinding(); > ((SOAPBinding)binding).setMTOMEnabled(true); > DocumentBuilderFactory dbf= DocumentBuilderFactory.newInstance(); > dbf.setNamespaceAware(true); > String s="<testDataHandler > xmlns=\"http://cxf.apache.org/mime/types\"><name>Bob</name></testDataHandler>"; > Document doc= dbf.newDocumentBuilder().parse(new InputSource(new > StringBufferInputStream(s))); > SOAPMessage msg=MessageFactory.newInstance().createMessage(); > msg.getSOAPBody().addDocument(doc); > Dispatch<SOAPMessage> dispatch =tms.createDispatch(PORT_NAME, > SOAPMessage.class, Mode.MESSAGE); > SOAPMessage res= dispatch.invoke(msg); > AttachmentPart attachmentPart= > (AttachmentPart)res.getAttachments().next(); > > System.out.println(attachmentPart.getDataHandler().getName()+";"+attachmentPart.getDataHandler().getInputStream().available()); > the server test code like below: > public void testDataHandler(Holder<String> name, Holder<DataHandler> > attachinfo) { > try { > name.value = "Hello " + name.value; > attachinfo.value = new DataHandler(new FileDataSource(new > File("c:/奋斗1cc.jpg"))); > } catch (Exception e) { > e.printStackTrace(); > } > } -- 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