On Fri, 6 Jun 2025 08:42:40 GMT, Alan Bateman <al...@openjdk.org> wrote:
> For multi VM tests (very common in the test suite) then you typically see the > parent process using Process/ProcessBuilder and starting a child VM with its > standard streams connected to the parent, meaning reading from System.in will > read from a pipe connected to the parent. Some tests do inherit but I doubt > we have any tests that inherit and also read from an interactive console. > > So my point is that we probably don't need to jump on all tests that use > System.in. _I think_ 😅 I see your point, and I agree with it. I've dropped several of my earlier changes from the abandoned parent #25368 – this applies to all subsequent tickets: #25544 (core), #25541 (tools), and this one. When the subject code is called in a `Process`, or the stream is obtained from a `URL` or a `ClassLoader`, ..., when it is _"obvious"_ that the stream doesn't refer to the console, I've skipped the `stdin.encoding` refactoring. That said, _"obvious"_ is very subjective and I might have misjudged certain usages. > The tests that do read from System.in probably need closer examination to see > if they are reading from a pipe or something else. In all `stdin.encoding` PRs – #25544 (core), #25541 (tools), and this one – I've examined usages before introducing the changes. I did my best, but I cannot claim it was exhaustive. That said, if it requires a significant effort to deduce that the console is not involved in a `System.in` usage, I'd prefer to include the `stdin.encoding` best-practice. There is a considerable likelihood that a later change could inadvertently violate that subtle assumption. @AlanBateman, if you think a particular change needs closer examination or needs to be reverted, please say so. I'd be more than happy to carry out that task. ------------- PR Comment: https://git.openjdk.org/jdk/pull/25542#issuecomment-2948996963