On Fri, 20 Dec 2024 13:59:40 GMT, Alexey Ivanov <aiva...@openjdk.org> wrote:
>> test/jdk/java/awt/Robot/MouseMoveOffScreen.java line 44: >> >>> 42: robot.delay(500); >>> 43: >>> 44: Point currLoc = MouseInfo.getPointerInfo().getLocation(); >> >> Not directly related to this change, >> `MouseInfo.getPointerInfo().getLocation()` throws NPE for a multi-monitor >> extended display setup on windows for an off-screen location (I haven't >> checked on other platforms). It returns valid PointerInfo only if the point >> falls within the bounds of any of the screen device , else it returns null. >> This may be the expected behavior of MouseInfo.getPointerInfo() but the >> javadoc is not clear about how off-screen coordinates are handled. >> >> For this test you can add a null check before calling .getLocation() for >> sanity (although multimonitor setup is not the case for CI runs) > >> For this test you can add a null check before calling .getLocation() for >> sanity (although multimonitor setup is not the case for CI runs) > > If `Robot.mouseMove` is expected to limit mouse to the valid (virtual screen) > coordinates, `MouseInfo.getPointerInfo()` should never throw > `NullPointerException` if mouse is available. @aivanov-jdk I see your point. But I'm running into NPE at `MouseInfo.getPointerInfo().getLocation()` without the fix as well (dual monitor, extended display setup) Is it expected of MouseInfo.getPointerInfo() to return null for off-screen coordinates (meaning does it consider it as mouse not available if it is outside the screen devices)? PointerInfo has two things associated with it - screen device and a location, so if it is not able to associate the coordinate with any of the screen device (off-screen coordinate) is it suppose to return null in this case? ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/22781#discussion_r1894251274