8185890: Intermittent NPE in JLightweightFrame when updating cursor aceoss multiple graphics devices
Reviewed-by: azvegint
--- a/jdk/src/java.desktop/share/classes/sun/swing/JLightweightFrame.java Thu Aug 10 10:41:04 2017 +0530
+++ b/jdk/src/java.desktop/share/classes/sun/swing/JLightweightFrame.java Thu Aug 10 10:46:19 2017 +0530
@@ -509,7 +509,16 @@
* and could not be overridden.
*/
private void updateClientCursor() {
- Point p = MouseInfo.getPointerInfo().getLocation();
+ PointerInfo pointerInfo = MouseInfo.getPointerInfo();
+ if (pointerInfo == null) {
+ /*
+ * This can happen when multiple graphics device cannot decide
+ * which graphics device contains the current mouse position
+ * or on systems without a mouse
+ */
+ return;
+ }
+ Point p = pointerInfo.getLocation();
SwingUtilities.convertPointFromScreen(p, this);
Component target = SwingUtilities.getDeepestComponentAt(this, p.x, p.y);
if (target != null) {