harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tim Ellison <t.p.elli...@gmail.com>
Subject [classlib] charset decoding (was: [Fwd: [jira] Commented: (HARMONY-410) method decode(ByteBuffer, CharBuffer, boolean) should set correct position in ByteBuffer])
Date Wed, 26 Apr 2006 08:47:28 GMT
Looks like a conversation best conducted on the dev list...

-------- Original Message --------
Subject: [jira] Commented: (HARMONY-410) method decode(ByteBuffer,
CharBuffer, boolean) should set correct position in ByteBuffer
Date: Wed, 26 Apr 2006 08:25:03 +0000 (GMT+00:00)
From: Vladimir Strigun (JIRA) <jira@apache.org>
Reply-To: harmony-dev@incubator.apache.org
To: harmony-commits@incubator.apache.org

    [
http://issues.apache.org/jira/browse/HARMONY-410?page=comments#action_12376425
]

Vladimir Strigun commented on HARMONY-410:
------------------------------------------

Hi Richard,

Thanks for the clarification, I agree that streaming decode is good
thing, but I'd like to explain my understanding of specification :)
According to specification of CharsetDecoder decoding operation should
process by the following steps:
"
2. Invoke the decode method zero or more times, as long as additional
input may be available, passing false for the endOfInput argument and
filling the input buffer and flushing the output buffer between
invocations;

3. Invoke the decode method one final time, passing true for the
endOfInput argument; and then
"
spec also says:
"The buffers' positions will be advanced to reflect the bytes read and
the characters written, but their marks and limits will not be modified"

I understand these sentences in the next way:
invoke decode with endOfInput = false if you have additional input, then
fill the buffer (i.e. add to buffer some additional input), invoke
decode again and pass correct endOfInput parameter dependent of
availability of input.

Example you provided is very useful and, of course, 1st option looks
better, but what I'm suggest here is to reflect actual processed bytes
in input. After first invocation of decode, not all bytes processed
actually, i.e. almost all bytes processed, but some stored in decoder to
further operation. Is it possible to store bytes in decoder, support
streaming decoding, and, at the same time sets correct position in input
buffer after each operation?

Thanks.
Vladimir.

> method decode(ByteBuffer, CharBuffer, boolean) should set correct position in ByteBuffer
> ----------------------------------------------------------------------------------------
>
>          Key: HARMONY-410
>          URL: http://issues.apache.org/jira/browse/HARMONY-410
>      Project: Harmony
>         Type: Bug

>   Components: Classlib
>     Reporter: Vladimir Strigun
>     Assignee: Mikhail Loenko
>     Priority: Minor
>  Attachments: Harmony-410_patch.txt, harmony-410_test.txt
>
> When ByteBuffer contain incomplete sequence of bytes for successful decoding, position
in ByteBuffer should be set to latest successful byte. I will attach testcase and patch soon.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira



-- 

Tim Ellison (t.p.ellison@gmail.com)
IBM Java technology centre, UK.

---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org


Mime
View raw message