Proneel Guptan created IO-679:
---------------------------------

             Summary: input.AbstractCharacterFilterReader passes count of chars 
read to filter, not the filter char
                 Key: IO-679
                 URL: https://issues.apache.org/jira/browse/IO-679
             Project: Commons IO
          Issue Type: Bug
          Components: Streams/Writers
    Affects Versions: 2.7
            Reporter: Proneel Guptan
         Attachments: AbstractCharacterFilterIssue.java

Ran into a bug with AbstractCharacterFilterReader where I noticed that my 
filter was not receiving the actual characters, but was instead receiving an 
int value corresponding to the number of chars in my input stream buffer.

I looked at the [source 
file|[https://github.com/apache/commons-io/blob/master/src/main/java/org/apache/commons/io/input/AbstractCharacterFilterReader.java]]
 and realized that on line 64:
 {{if (filter(read)) {}}
 should have been:

{{if (filter(cbuf[readPos])) {}}

'read` has the number of bytes read from the source reader, not the code point 
of the character read.

I have attached a sample program that illustrates the issue.

I can work on a patch and submit it when done. I will add a test case in the 
patch.

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to