From 53d0e4c3702ae5037ff81ac2a400ca63013f7f04 Mon Sep 17 00:00:00 2001 From: Per Minborg Date: Tue, 21 Apr 2026 12:50:25 +0000 Subject: [PATCH] 8372688: Test out-of-bounds indexing for List.ofLazy()::get Reviewed-by: jvernee --- .../jdk/java/lang/LazyConstant/LazyListTest.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/test/jdk/java/lang/LazyConstant/LazyListTest.java b/test/jdk/java/lang/LazyConstant/LazyListTest.java index 111e3cf8ab2..4201fff3bb7 100644 --- a/test/jdk/java/lang/LazyConstant/LazyListTest.java +++ b/test/jdk/java/lang/LazyConstant/LazyListTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2025, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2025, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -153,6 +153,15 @@ final class LazyListTest { assertEquals(-1, lazy.lastIndexOf(SIZE + 1)); } + @ParameterizedTest + @MethodSource("lazyLists") + void bounds(List list) { + IntStream.range(0, list.size()) + .forEach(i -> assertEquals(IDENTITY.apply(i), list.get(i))); + assertThrows(IndexOutOfBoundsException.class, () -> list.get(-1)); + assertThrows(IndexOutOfBoundsException.class, () -> list.get(list.size())); + } + @Test void toStringTest() { assertEquals("[]", newEmptyLazyList().toString()); @@ -423,6 +432,11 @@ final class LazyListTest { ); } + static Stream lazyLists() { + return IntStream.rangeClosed(0, SIZE) + .mapToObj(i -> List.ofLazy(i, IDENTITY)); + } + static List newLazyList() { return List.ofLazy(SIZE, IDENTITY); }