On Tue, 14 Oct 2025 21:53:41 GMT, Daniel Hu <[email protected]> wrote:

>> These changes should prevent entire binary files from being loaded into 
>> memory for build/AbsPathsInImage.java test. I chose a default buffer size of 
>> 8KB since BufferedInputStream uses that, but open to alternative solutions. 
>> GHA passes and test passes on linux x64.
>
> Daniel Hu has updated the pull request incrementally with two additional 
> commits since the last revision:
> 
>  - fix incorrect use of inputstream
>  - remove extraneous variables/imports

test/jdk/build/AbsPathsInImage.java line 313:

> 311:         }
> 312:         System.out.println();
> 313:     }

I wanted to keep the debug output as close to the original as possible. But the 
original method backtracks to a non-ascii value, and that gets really 
complicated with the new buffered solution as probably a 2nd buffer would need 
to be kept while not being able to guarantee a static space complexity 
requirement (as who knows how much bytes are between each pair of ascii bytes). 
Moreover, when the test passes, a 2nd buffer kept for debug output isn't even 
used, meaning a pointless space penalty for the common case.

Instead, I added a secondary function that simply re-scans the file when the 
test fails. That does mean the test might take twice as long during failure 
(and all the associated additional space requirements), but I think that's an 
acceptable tradeoff, as vast majority of runs won't receive this penalty.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/26030#discussion_r2452876592

Reply via email to