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

Sebb commented on IO-356:
-------------------------

testBufferedRead_RequiredCharset enters an infinite loop if encoder.reset() is 
called before encoder.encode().

However, adding it to the reset() method seems to help.

The testSkip(String) method is broken, as it assumes that each input char 
produces a single output byte.
No wonder it works for ASCII and UTF-8 and fails for UTF-16.
                
> CharSequenceInputStream#reset() behaves incorrectly in case when buffer size 
> is not dividable by data size
> ----------------------------------------------------------------------------------------------------------
>
>                 Key: IO-356
>                 URL: https://issues.apache.org/jira/browse/IO-356
>             Project: Commons IO
>          Issue Type: Bug
>          Components: Streams/Writers
>    Affects Versions: 2.4
>            Reporter: Dmitry Katsubo
>         Attachments: CharSequenceInputStreamTest.java
>
>
> The size effect happens when buffer size of input stream is not dividable by 
> requested data size. The bug is hidden in {{CharSequenceInputStream#reset()}} 
> method which should also call (I think) {{bbuf.limit(0)}} otherwise next call 
> to {{CharSequenceInputStream#read()}} will return the remaining tail which 
> {{bbuf}} has accumulated.
> In the attached test case the test fails, if {{dataSize = 13}} (not dividable 
> by 10) and runs OK if {{dataSize = 20}} (dividable by 10).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to