Hi Patrick, I will sponsor this.
Given what Mandy says about the system class loader i think we can drop the method systemResources. There is some “race memory" not captured in the specification, which should be updated, as Mandy says. Then… 1401 public Stream<URL> resources(String name) { 1402 return streamOf(() -> { 1403 try { 1404 return getResources(name).asIterator(); 1405 } catch (IOException e) { 1406 throw new UncheckedIOException(e); 1407 } 1408 }); 1409 } 1410 1411 private static final int RESOURCE_CHARACTERISTICS = Spliterator.NONNULL | Spliterator.IMMUTABLE; 1412 1413 static Stream<URL> streamOf(Supplier<Iterator<URL>> iteratorSupplier) { 1414 return StreamSupport.stream( 1415 () -> Spliterators.spliteratorUnknownSize(iteratorSupplier.get(), RESOURCE_CHARACTERISTICS), 1416 RESOURCE_CHARACTERISTICS, false); 1417 } 1418 … you can merge the suppliers e.g: Supplier<Spliterator<URL>> si = () -> { try { return Spliterators.spliteratorUnknownSize(getResources(name).asIterator(), …); } catch (IOException e) { throw new UncheckedIOException(e); } }; return StreamSupport.stream(si, …); ? Paul. > On 7 Sep 2016, at 11:38, Patrick Reinhart <patr...@reini.net> wrote: > > The current changes can be found here: > > http://cr.openjdk.java.net/~reinhapa/reviews/8161230/webrev.03 >