# HG changeset patch # User pbansal # Date 1526387611 -19800 # Node ID 9822dd521c15a3645d701f17e8b25f6efc2117ca # Parent 23a8ccafa7ba24eb441a1c53dcacaa05bcaeff6f 8196616: ava/awt/GraphicsDevice/DisplayModes/CompareToXrandrTest.java fails Reviewed-by: prr, mhalder diff -r 23a8ccafa7ba -r 9822dd521c15 test/jdk/java/awt/GraphicsDevice/DisplayModes/CompareToXrandrTest.java --- a/test/jdk/java/awt/GraphicsDevice/DisplayModes/CompareToXrandrTest.java Tue May 15 11:34:25 2018 +0530 +++ b/test/jdk/java/awt/GraphicsDevice/DisplayModes/CompareToXrandrTest.java Tue May 15 18:03:31 2018 +0530 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2018, 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 @@ -24,7 +24,7 @@ /** * @test * @key headful - * @bug 8022810 + * @bug 8022810 8196616 * @summary Cannot list all the available display modes on Ubuntu linux in case * of two screen devices * @run main CompareToXrandrTest @@ -49,28 +49,27 @@ return; } - BufferedReader reader = new BufferedReader(new InputStreamReader( - Runtime.getRuntime().exec("/usr/bin/xrandr").getInputStream())); - reader.readLine(); - reader.readLine(); - Pattern pattern = Pattern.compile("^\\s*(\\d+x\\d+)"); + try (BufferedReader reader = new BufferedReader(new InputStreamReader( + Runtime.getRuntime().exec("/usr/bin/xrandr").getInputStream()))) { + Pattern pattern = Pattern.compile("^\\s*(\\d+x\\d+)"); - for (GraphicsDevice d : GraphicsEnvironment - .getLocalGraphicsEnvironment().getScreenDevices()) { + for (GraphicsDevice d : GraphicsEnvironment + .getLocalGraphicsEnvironment().getScreenDevices()) { + + Set xrandrModes = reader.lines().map(pattern::matcher) + .filter(Matcher::find).map(m -> m.group(1)) + .collect(Collectors.toSet()); - Set xrandrModes = reader.lines().map(pattern::matcher) - .takeWhile(Matcher::find).map(m -> m.group(1)) - .collect(Collectors.toSet()); + Set javaModes = Arrays.stream(d.getDisplayModes()) + .map(m -> m.getWidth() + "x" + m.getHeight()) + .collect(Collectors.toSet()); - Set javaModes = Arrays.stream(d.getDisplayModes()) - .map(m -> m.getWidth() + "x" + m.getHeight()) - .collect(Collectors.toSet()); - - if (!xrandrModes.equals(javaModes)) { - throw new RuntimeException("Failed"); - } else { - System.out.println("Device " + d + ": " + javaModes.size() + - " modes found."); + if (!xrandrModes.equals(javaModes)) { + throw new RuntimeException("Failed"); + } else { + System.out.println("Device " + d + ": " + javaModes.size() + + " modes found."); + } } } }