[ 
https://issues.apache.org/jira/browse/AXIOM-467?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14537669#comment-14537669
 ] 

Detelin Hadzhiev edited comment on AXIOM-467 at 5/11/15 7:04 AM:
-----------------------------------------------------------------

No I don't have another example, but the provided one is a real XML document 
encoded as "quoted-printable" content. 
I'm pretty sure the issue could be reproduced with any larger encoded XML 
document.
Using relax mode is necessary otherwise axiom will not be backward compatible 
for documents that have small deviations from the MIME spec.


was (Author: d_hadzhiev):
No I don't have another example, but the provided one is a real XML document 
encoded as "quoted-printable" content. 
I'm pretty sure the issue could be reproduced with any larger encoded XML 
document.
Using relax mode is necessary otherwise axiom will not be backward compatible 
for documents that have small deviations form the MIME spec.

> Cannot read "quoted-printable" encoded data from MIME part
> ----------------------------------------------------------
>
>                 Key: AXIOM-467
>                 URL: https://issues.apache.org/jira/browse/AXIOM-467
>             Project: Axiom
>          Issue Type: Bug
>          Components: API
>    Affects Versions: 1.2.13, 1.2.14
>            Reporter: Detelin Hadzhiev
>             Fix For: 1.2.16
>
>         Attachments: axiom-1.2.13.patch, axiom_1.2.7.patch
>
>
> Processing "quoted-printable" encoded data in the axiom v.1.2.13 seems to be 
> backward incompatible as it was in the axiom. 1.2.7.
> I provided one and the same test case which illustrates how the test is 
> working in the axiom 1.2.7 but not in 1.2.13.
> In the axiom 1.2.13 I got the following exception:
> org.apache.axiom.om.OMException: org.apache.axiom.ext.io.StreamCopyException: 
> Error reading from source
>       at 
> org.apache.axiom.attachments.PartContentFactory.createPartContent(PartContentFactory.java:153)
>       at org.apache.axiom.attachments.PartImpl.fetch(PartImpl.java:176)
>       at org.apache.axiom.attachments.PartImpl.getContent(PartImpl.java:149)
>       at 
> org.apache.axiom.attachments.PartImpl.getInputStream(PartImpl.java:224)
>       at 
> org.apache.axiom.attachments.PartDataSource.getInputStream(PartDataSource.java:44)
>       at javax.activation.DataHandler.getInputStream(DataHandler.java:238)
>       at 
> org.apache.axiom.attachments.QuotedPrintablePartTest.testReadStreamFromPart(QuotedPrintablePartTest.java:38)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:601)
>       at junit.framework.TestCase.runTest(TestCase.java:168)
>       at junit.framework.TestCase.runBare(TestCase.java:134)
>       at junit.framework.TestResult$1.protect(TestResult.java:110)
>       at junit.framework.TestResult.runProtected(TestResult.java:128)
>       at junit.framework.TestResult.run(TestResult.java:113)
>       at junit.framework.TestCase.run(TestCase.java:124)
>       at junit.framework.TestSuite.runTest(TestSuite.java:243)
>       at junit.framework.TestSuite.run(TestSuite.java:238)
>       at 
> org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:131)
>       at 
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
> Caused by: org.apache.axiom.ext.io.StreamCopyException: Error reading from 
> source
>       at 
> org.apache.axiom.attachments.utils.BAAOutputStream.readFrom(BAAOutputStream.java:114)
>       at 
> org.apache.axiom.attachments.impl.BufferUtils.inputStream2OutputStream(BufferUtils.java:76)
>       at 
> org.apache.axiom.attachments.PartContentFactory.createPartContent(PartContentFactory.java:119)
>       ... 24 more
> Caused by: java.io.IOException: Found LF without CR
>       at 
> org.apache.james.mime4j.codec.QuotedPrintableInputStream.read0(QuotedPrintableInputStream.java:195)
>       at 
> org.apache.james.mime4j.codec.QuotedPrintableInputStream.read(QuotedPrintableInputStream.java:317)
>       at 
> org.apache.axiom.attachments.utils.BAAOutputStream.readFrom(BAAOutputStream.java:112)
>       ... 26 more
> The root cause of this exception is that AXIOM forces usage of the STRICT 
> mode of MIME4J for decoding found in org.apache.axiom.attachments.MIMEMessage 
> class
>     MimeConfig config = new MimeConfig();
>     config.setStrictParsing(true);
> The default behavior MIME4J is SILENT(relaxed)  mode, if the strict parsing 
> is not enforced that the test will pass successfully.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to