--- old/src/java.desktop/macosx/native/libawt_lwawt/awt/CRobot.m 2016-09-16 14:38:51.000000000 +0530 +++ new/src/java.desktop/macosx/native/libawt_lwawt/awt/CRobot.m 2016-09-16 14:38:51.000000000 +0530 @@ -67,6 +67,7 @@ // happen with z-order. static int gsEventNumber; static int* gsButtonEventNumber; +static CRobotKeyCodeMapping *keyCodeMapping; static inline CGKeyCode GetCGKeyCode(jint javaKeyCode); @@ -130,6 +131,7 @@ gsButtonEventNumber[i] = ROBOT_EVENT_NUMBER_START; } } + keyCodeMapping = [CRobotKeyCodeMapping sharedInstance]; } /* @@ -344,8 +346,10 @@ static inline CGKeyCode GetCGKeyCode(jint javaKeyCode) { - CRobotKeyCodeMapping *keyCodeMapping = [CRobotKeyCodeMapping sharedInstance]; - return [keyCodeMapping getOSXKeyCodeForJavaKey:javaKeyCode]; + if (keyCodeMapping) { + return [keyCodeMapping getOSXKeyCodeForJavaKey:javaKeyCode]; + } + return OSX_Undefined; } static int GetClickCount(BOOL isDown) { --- old/src/java.desktop/macosx/native/libawt_lwawt/awt/CRobotKeyCode.m 2016-09-16 14:38:52.000000000 +0530 +++ new/src/java.desktop/macosx/native/libawt_lwawt/awt/CRobotKeyCode.m 2016-09-16 14:38:52.000000000 +0530 @@ -30,15 +30,8 @@ @synthesize javaToMacKeyMap; -+(CRobotKeyCodeMapping *) sharedInstance { - static CRobotKeyCodeMapping *instance = nil; - static dispatch_once_t executeOnce; - - dispatch_once(&executeOnce, ^{ - instance = [[CRobotKeyCodeMapping alloc] init]; - }); - - return instance; ++ (CRobotKeyCodeMapping *) sharedInstance { + return [[[CRobotKeyCodeMapping alloc] init] autorelease]; } -(id) init {