Mac OS X: Fixed potential NPE in AWTUtil.getPointerLocation

This commit is contained in:
Elias Naur 2008-04-10 20:14:15 +00:00
parent 450634c49c
commit 3f4f832669
1 changed files with 10 additions and 6 deletions

View File

@ -39,6 +39,7 @@ import java.awt.Component;
import java.awt.Cursor; import java.awt.Cursor;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.GraphicsDevice; import java.awt.GraphicsDevice;
import java.awt.GraphicsConfiguration;
import java.awt.IllegalComponentStateException; import java.awt.IllegalComponentStateException;
import java.awt.Point; import java.awt.Point;
import java.awt.Robot; import java.awt.Robot;
@ -115,11 +116,14 @@ final class AWTUtil {
final Method getLocation_method = PointerInfo_class.getMethod("getLocation", null); final Method getLocation_method = PointerInfo_class.getMethod("getLocation", null);
return (Point)AccessController.doPrivileged(new PrivilegedExceptionAction() { return (Point)AccessController.doPrivileged(new PrivilegedExceptionAction() {
public final Object run() throws Exception { public final Object run() throws Exception {
GraphicsConfiguration config = component.getGraphicsConfiguration();
if (config != null) {
Object pointer_info = getPointerInfo_method.invoke(null, null); Object pointer_info = getPointerInfo_method.invoke(null, null);
GraphicsDevice device = (GraphicsDevice)getDevice_method.invoke(pointer_info, null); GraphicsDevice device = (GraphicsDevice)getDevice_method.invoke(pointer_info, null);
if (device == component.getGraphicsConfiguration().getDevice()) { if (device == config.getDevice()) {
return (Point)getLocation_method.invoke(pointer_info, null); return (Point)getLocation_method.invoke(pointer_info, null);
} else }
}
return null; return null;
} }
}); });