[
https://issues.apache.org/jira/browse/IO-855?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17841968#comment-17841968
]
Gary D. Gregory commented on IO-855:
------------------------------------
Yeah, this class made it into the codebase without unit tests, so we only have
the Javadocs to go by to detect the intent of the original author. What's a
bug? What's a feature? Who knows!
> Clarify behavior of PeekableInputStream.peek() in JavaDoc
> ---------------------------------------------------------
>
> Key: IO-855
> URL: https://issues.apache.org/jira/browse/IO-855
> Project: Commons IO
> Issue Type: Improvement
> Components: Streams/Writers
> Affects Versions: 2.15.1
> Reporter: Dominik Stadler
> Priority: Minor
>
> The current JavaDoc of the PeekableInputStream states {*}"Returns whether the
> next bytes in the buffer are as given by sourceBuffer."{*}. When trying to
> using it I expected the following to work:
>
> PeekableInputStream stream = {color:#cc7832}new {color}PeekableInputStream(
> {color:#cc7832}new {color}ByteArrayInputStream({color:#6a8759}"Some text
> buffer"{color}.getBytes(StandardCharsets.{color:#9876aa}UTF_8{color}))){color:#cc7832};
> {color}{color:#cc7832}
> {color}assertTrue(stream.peek({color:#6a8759}"Some"{color}.getBytes(StandardCharsets.{color:#9876aa}UTF_8{color}))){color:#cc7832};
> {color}
>
> However this fails because the current implementation checks if the available
> bytes on the stream *exactly* match the bytes in the stream, so if there is
> more data available, it will return false!
>
> If this is the intended behavior, it should be made more prominent in the
> JavaDoc.
> P.S.: I am not sure how useful such an implementation is as at least for me
> most such use-cases are of type "startsWith", not "equals".
--
This message was sent by Atlassian Jira
(v8.20.10#820010)