RFR: 8374308: ImageBufferCache does not work as intended [v2]

David Beaumont duke at openjdk.org
Tue Jan 6 11:03:46 UTC 2026


On Tue, 6 Jan 2026 10:47:04 GMT, David Beaumont <duke at openjdk.org> wrote:

>> Fair points. This is just moved code, but IOOBE is clearly not the right choice here.
>
> In fact, taking a more holistic view, the size check is already done by the caller, so there's some nice simplification possible here.

You *do* need a negative check when using long because of underflow.
If longValue is 0xFFFFFFFF00000001 (negative, invalid) then '(int) longValue' is 1 (positive, valid).

https://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.1.3

Or you could use a different style of check:

int intValue = (int) longValue;
if (intValue != longValue) { throw ... }

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

PR Review Comment: https://git.openjdk.org/jdk/pull/29043#discussion_r2664543524


More information about the core-libs-dev mailing list