Thanks, Sean, I appreciate it. On Sun, Sep 22, 2024 at 1:10 PM Sean Bell <[email protected]> wrote:
> Hi Peter, > > I incorporated your suggestion in Pull Request 630: > https://github.com/RaiMan/SikuliX1/pull/630 > > We'll see if/when it gets merged in. > > -- > You received this bug notification because you are subscribed to the bug > report. > https://bugs.launchpad.net/bugs/2060175 > > Title: > Mouse location throws NullPointerException > > Status in SikuliX: > New > > Bug description: > 1. The version of Sikuli you were using. > 2.0.5 > 2. Your operating system, 32-bit or 64-bit, and its version. > MS Windows 11, 64-bit > 3. The procedure to reproduce the bug. > Mouse.at().getPoint() > 4. Any information that might help us to locate the bug. > See below :-) > > > I'm using Jython with Sikulix, and am trying to get information about > the Mouse location with a call such as this: > > mouse_off_scr = scr.getBounds().contains(Mouse.at().getPoint()) > > However, this frequently results in a NullPointerException being > thrown within the Java library, and (now sure why) I can't even catch > the error with a try/except BaseException. I did a bit of digging into > the Java code, and found the culprit within the Device class method > getLocation(). > > public Location getLocation() { > PointerInfo mp = MouseInfo.getPointerInfo(); > if (mp != null) { > return new Location(MouseInfo.getPointerInfo().getLocation()); > } else { > Debug.error("Mouse: not possible to get mouse position > (PointerInfo == null)"); > return null; > } > } > > It looks like there is some code in place to avoid the NPE. Even > though it's checking for a null return value from > MouseInfo.getPointerInfo(), the method gets called a second time and > that's when the NPE occurs. I think the method should probably be > corrected as follows: > > public Location getLocation() { > PointerInfo mp = MouseInfo.getPointerInfo(); > if (mp != null) { > return new Location(mp.getLocation()); > } else { > Debug.error("Mouse: not possible to get mouse position > (PointerInfo == null)"); > return null; > } > } > > That may result is very slightly "outdated" mouse information, but at > least it would avoid crashing the program. :-) > > To manage notifications about this bug go to: > https://bugs.launchpad.net/sikuli/+bug/2060175/+subscriptions > > -- You received this bug notification because you are a member of Sikuli Drivers, which is subscribed to SikuliX. https://bugs.launchpad.net/bugs/2060175 Title: Mouse location throws NullPointerException Status in SikuliX: New Bug description: 1. The version of Sikuli you were using. 2.0.5 2. Your operating system, 32-bit or 64-bit, and its version. MS Windows 11, 64-bit 3. The procedure to reproduce the bug. Mouse.at().getPoint() 4. Any information that might help us to locate the bug. See below :-) I'm using Jython with Sikulix, and am trying to get information about the Mouse location with a call such as this: mouse_off_scr = scr.getBounds().contains(Mouse.at().getPoint()) However, this frequently results in a NullPointerException being thrown within the Java library, and (now sure why) I can't even catch the error with a try/except BaseException. I did a bit of digging into the Java code, and found the culprit within the Device class method getLocation(). public Location getLocation() { PointerInfo mp = MouseInfo.getPointerInfo(); if (mp != null) { return new Location(MouseInfo.getPointerInfo().getLocation()); } else { Debug.error("Mouse: not possible to get mouse position (PointerInfo == null)"); return null; } } It looks like there is some code in place to avoid the NPE. Even though it's checking for a null return value from MouseInfo.getPointerInfo(), the method gets called a second time and that's when the NPE occurs. I think the method should probably be corrected as follows: public Location getLocation() { PointerInfo mp = MouseInfo.getPointerInfo(); if (mp != null) { return new Location(mp.getLocation()); } else { Debug.error("Mouse: not possible to get mouse position (PointerInfo == null)"); return null; } } That may result is very slightly "outdated" mouse information, but at least it would avoid crashing the program. :-) To manage notifications about this bug go to: https://bugs.launchpad.net/sikuli/+bug/2060175/+subscriptions _______________________________________________ Mailing list: https://launchpad.net/~sikuli-driver Post to : [email protected] Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp

