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)