Hi, Vladimir

The bug has been raised in ICU bug tracking system serveral months ago[1].

ICU has noticed this bug and will fix the bug in next release version.

Thanks.

[1] (http://bugs.icu-project.org/cgi-bin/icu-bugs/conversion?id=5074)

On 5/4/06, Vladimir Strigun (JIRA) <[EMAIL PROTECTED]> wrote:

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

Vladimir Strigun commented on HARMONY-33:
-----------------------------------------

Unfortunately the bug should be reopened. I have the next output with
Harmony33 class:

java.lang.IllegalArgumentException: The length must be positive.
       at java.nio.charset.CoderResult.malformedForLength(CoderResult.java
:152)
       at com.ibm.icu4jni.charset.CharsetDecoderICU.implFlush(Unknown
Source)
       at java.nio.charset.CharsetDecoder.flush(CharsetDecoder.java:571)
       at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:254)
       at Harmony33.main(Harmony33.java:11)

It's not a regression, the problem here is inside implFlush method of
CharsetDecoderICU .
Corresponding bug was submitted to ICU already:
http://bugs.icu-project.org/cgi-bin/icu-bugs?findid=5074
So, we just need to wait until we get new version of ICU library.

> java.nio.BufferOverflow exception while decoding ByteBuffer with UTF-16
charset
>
-------------------------------------------------------------------------------
>
>          Key: HARMONY-33
>          URL: http://issues.apache.org/jira/browse/HARMONY-33
>      Project: Harmony
>         Type: Bug

>   Components: Classlib
>     Reporter: Vladimir Strigun
>     Assignee: Tim Ellison
>     Priority: Minor

>
> If I try to decode ByteBuffer with lengh 1 using UTF-16 decoder
unexpected java.nio.BufferOverflow exception occured. Please see testcase
below.
> import java.nio.*;
> import java.nio.charset.*;
> import junit.framework.TestCase;
> public class TestDecoder extends TestCase {
>     public static void main(String[] args) {
>         junit.textui.TestRunner.run(TestDecoder.class);
>     }
>     public static void testDecoder(){
>         try{
>             ByteBuffer bb = ByteBuffer.allocate(1);
>             bb.put(0,(byte)77);
>             CharsetDecoder utf16D = Charset.forName
("UTF-16").newDecoder();
>             CharBuffer cb = utf16D.onMalformedInput(
CodingErrorAction.REPLACE).onUnmappableCharacter(CodingErrorAction.REPLACE
).decode(bb);
>         }catch(Exception e){
>             fail("Exception occured: "+e);
>         }
>     }
> }
> Output on RI:
> .
> Time: 0,03
> OK (1 test)
> Output with Harmony:
> .F
> Time: 0,01
> There was 1 failure:
> 1) testDecoder(TestDecoder)junit.framework.AssertionFailedError:
Exception occured: java.nio.BufferOverflowException
>         at TestDecoder.testDecoder(TestDecoder.java:20)
>         at java.lang.reflect.AccessibleObject.invokeV(
AccessibleObject.java:211)
>         at TestDecoder.main(TestDecoder.java:10)
> FAILURES!!!
> Tests run: 1,  Failures: 1,  Errors: 0

--
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




--
Andrew Zhang
China Software Development Lab, IBM

Reply via email to