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
