← Back to team overview

sikuli-driver team mailing list archive

Re: [Bug 2060175] Re: Mouse location throws NullPointerException

 

Thanks, Sean, I appreciate it.

On Sun, Sep 22, 2024 at 1:10 PM Sean Bell <2060175@xxxxxxxxxxxxxxxxxx>
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



References