james-mime4j-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Markus Wiederkehr <markus.wiederk...@gmail.com>
Subject Re: [jira] Updated: (MIME4J-118) MIME stream parser handles non-ASCII fields incorrectly
Date Tue, 17 Feb 2009 12:33:24 GMT
Let me reply to the mailing list to keep the discussion on the detail
level away from the JIRA..

On Tue, Feb 17, 2009 at 12:29 PM, Oleg Kalnichevski (JIRA)
<mime4j-dev@james.apache.org> wrote:
>
>     [ https://issues.apache.org/jira/browse/MIME4J-118?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
>
> Oleg Kalnichevski updated MIME4J-118:
> -------------------------------------
>
>    Attachment: mime4j-118.patch
>
> Here is the first cut at fixing the problem with charset coding in MIME fields. The significant
changes are
>
> (1) EntityStateMachine#getField() returns ByteArrayBuffer instead of a String
> (2) ContentHandler#field takes ByteArrayBuffer instead of a String

Your patch does not look bad, but:

I have a feeling that it will not help with MIME4J-116, maybe on the
contrary. You say you do not want AbstractEntity to create Field
instances yet you give no rationalization for your opinion.. I don't
see how the ByteArrayBuffer can help with the unnecessary duplicate
field parsing.

I have no problem with small changes one at a time. But it does not
hurt to keep an eye on related issues in the process.

Also I don't like that ByteArrayBuffer is a mutable class (and yes, I
am aware that byte[] is mutable too). Please consider that Field is
designed to be immutable. This is an important aspect because a Field
may be shared between multiple messages. So if you refactor Field to
store a ByteArrayBuffer please make sure that the ByteArrayBuffer does
not get exposed publicly.

Maybe we should introduce an immutable object that holds a byte array;
similar to what String is for a character array. That would still not
help with #116 though..

Markus

> If these changes are okay with everyone I'll proceed with refactoring and change Field
and friends to utilize ByteArrayBuffer for storing raw field content.
>
> Oleg
>
>
>> MIME stream parser handles non-ASCII fields incorrectly
>> -------------------------------------------------------
>>
>>                 Key: MIME4J-118
>>                 URL: https://issues.apache.org/jira/browse/MIME4J-118
>>             Project: JAMES Mime4j
>>          Issue Type: Bug
>>            Reporter: Oleg Kalnichevski
>>            Assignee: Oleg Kalnichevski
>>             Fix For: 0.6
>>
>>         Attachments: mime4j-118.patch
>>
>>
>> Presently MIME stream parser handles non-ASCII fields incorrectly. Binary field content
gets converted to its textual representation too early in the parsing process using simple
byte to char cast. The decision about appropriate char encoding should be left up to individual
ContentHandler implementations.
>> Oleg
>
> --
> This message is automatically generated by JIRA.
> -
> You can reply to this email to add a comment to the issue online.

Mime
View raw message