JDK-8166040 : [MacOSX 10.12] Pressing a modifier key results in NullPointerException thrown by applets
  • Type: Bug
  • Component: deploy
  • Sub-Component: plugin
  • Affected Version: 8u102
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • OS: os_x
  • CPU: x86
  • Submitted: 2016-09-13
  • Updated: 2017-01-19
  • Resolved: 2017-01-19
Related Reports
Duplicate :  
Relates :  
Description
FULL PRODUCT VERSION :
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)

ADDITIONAL OS VERSION INFORMATION :
macOS Sierra Golden Master

System Version:	macOS 10.12 (16A319)
Kernel Version:	Darwin 16.0.0
Boot Volume:	Sierra


A DESCRIPTION OF THE PROBLEM :
Applets expecting user's input throw a native exception if any of the modifier keys (Caps Lock, Shift, Alt, etc) is pressed.

This issue occurs to all the Java applets tested so far (RDP, SSH applets).

While rendering poor user experience in general, this issue is especially bad for the fullscreen applets as the pop-up dialog is hidden beneath the main window and user cannot perform any further action being trapped into their fullscreen session (e.g., RDP applets).

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. Go to the SSH MindTerm Java applet page:
https://www.rbvi.ucsf.edu/home/tef/ssh/

2. When applet window is shown, put focus into it and press some modifier key, e.g. Caps Lock.

EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
The modifier key applies silently, e.g. for Caps Lock the letters default register is switched.
ACTUAL -
Java shows the "Internal Error" dialog asking the user to either "Continue" or "Crash" the Java process.

ERROR MESSAGES/STACK TRACES THAT OCCUR :
Exception Name: JavaNativeException
Description: java.lang.NullPointerException
	at sun.awt.SunToolkit.getSystemEventQueueImplPP(SunToolkit.java:1090)
	at sun.awt.SunToolkit.getSystemEventQueueImplPP(SunToolkit.java:1085)
	at sun.awt.SunToolkit.getSystemEventQueueImpl(SunToolkit.java:1080)
	at java.awt.Toolkit.getEventQueue(Toolkit.java:1734)
	at java.awt.EventQueue.invokeLater(EventQueue.java:1266)
	at sun.plugin2.main.client.MacOSXKeyHandler.notifyFlagsChangedFromNative(Unknown Source)

User Info: (null)

0   CoreFoundation                      0x00007fffb920d7bb __exceptionPreprocess + 171
1   libobjc.A.dylib                     0x00007fffcd97aa2a objc_exception_throw + 48
2   CoreFoundation                      0x00007fffb920d709 -[NSException raise] + 9
3   JavaNativeFoundation                0x000000010fc8701a JNFCallStaticVoidMethod + 233
4   libnpjp2.dylib                      0x000000011322fc37 flagsChanged + 72
5   SkyLight                            0x00007fffca5e9376 processDecodedEventRef + 113
6   SkyLight                            0x00007fffca5e8bc1 processEventTapData + 543
7   SkyLight                            0x00007fffca6020be _XPostEventTapData + 261
8   SkyLight                            0x00007fffca5e894c eventTapMessageHandler + 137
9   CoreFoundation                      0x00007fffb918d4dd __CFMachPortPerform + 253
10  CoreFoundation                      0x00007fffb918d3c9 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 41
11  CoreFoundation                      0x00007fffb918d341 __CFRunLoopDoSource1 + 465
12  CoreFoundation                      0x00007fffb9185435 __CFRunLoopRun + 2405
13  CoreFoundation                      0x00007fffb9184874 CFRunLoopRunSpecific + 420
14  HIToolbox                           0x00007fffb8724f6c RunCurrentEventLoopInMode + 240
15  HIToolbox                           0x00007fffb8724da1 ReceiveNextEventCommon + 432
16  HIToolbox                           0x00007fffb8724bd6 _BlockUntilNextEventMatchingListInModeWithFilter + 71
17  AppKit                              0x00007fffb6e1b5f5 _DPSNextEvent + 1093
18  AppKit                              0x00007fffb752b8eb -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1637
19  libosxapp.dylib                     0x00000001118fd3aa -[NSApplicationAWT nextEventMatchingMask:untilDate:inMode:dequeue:] + 124
20  AppKit                              0x00007fffb6e0ffbd -[NSApplication run] + 926
21  libosxapp.dylib                     0x00000001118fd14d +[NSApplicationAWT runAWTLoopWithApp:] + 156
22  libawt_lwawt.dylib                  0x000000011188a4b3 -[AWTStarter starter:] + 905
23  Foundation                          0x00007fffbabeff2a __NSThreadPerformPerform + 326
24  CoreFoundation                      0x00007fffb91a4581 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
25  CoreFoundation                      0x00007fffb918598c __CFRunLoopDoSources0 + 556
26  CoreFoundation                      0x00007fffb9184e76 __CFRunLoopRun + 934
27  CoreFoundation                      0x00007fffb9184874 CFRunLoopRunSpecific + 420
28  java                                0x0000000109b44465 CreateExecutionEnvironment + 871
29  java                                0x0000000109b4018c JLI_Launch + 1952
30  java                                0x0000000109b464c2 main + 101
31  java                                0x0000000109b3f9e4 start + 52
32  ???                                 0x000000000000000e 0x0 + 14


REPRODUCIBILITY :
This bug can be reproduced always.

---------- BEGIN SOURCE ----------
This open source applet can be used to reproduce this:
https://github.com/thshdw/lixia-javardp

For a ready compiled applet (another one), go to 
https://www.rbvi.ucsf.edu/home/tef/ssh/
---------- END SOURCE ----------

CUSTOMER SUBMITTED WORKAROUND :
It appears JRE 9 EarlyAccess is not affected:
JRE version 9-ea+135


Comments
Issue is not reproducible with current version 8u121. Closing this as duplicate of JDK-8165867.
19-01-2017

Checked this on Sierra (10.12) with 8u102 and couldn't reproduce this as reported. Received exception, java.security.AccessControlException: access denied (attached console log) Apparently, this need to be checked outside OWAN.
16-09-2016

The issue is reported against upcoming macOS version 10.12 (Sierra). Checked this with El Capitan, 10.11.6 with 8u102, 8u112 ea b04 and 9 ea b127 and couldn't reproduce the issue.
14-09-2016