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

Andreas Veithen commented on AXIOM-467:
---------------------------------------

I debugged the issue and this is clearly caused by MIME4J-244, which causes 
MIME4J to fail on a perfectly valid and standards compliant MIME message. The 
fact that the issue doesn't occur in relaxed mode is a coincidence.

> 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
>         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: dev-unsubscr...@ws.apache.org
For additional commands, e-mail: dev-h...@ws.apache.org

Reply via email to