Why VNC Access Method Fails

Document ID : KB000095476
Last Modified Date : 27/05/2018
Show Technical Document Details
Issue:
PAM Servers were upgraded to 3.2 recently from 2.8.x.
Then it was found that VNC Client Access Method fails to launch and logs.log showing exception.
All other Access Method works but VNC.
Environment:
PAM 3.2
(Also applicable to all 3.1.x and 3.0.x)
 
Cause:
It is easy to assume it could be caused by an antivirus blocking some executions of code so ProcessMonitor was installed and checked if there was any involvement but there was none.
There was no permission issue either.

When looking at the logs.log file, the exception reported by VNC Access Method was as below.
2018-05-10 14:28:06 INFO  - May 10, 2018 2:28:06 PM com.ca.xsuite.app.vncapplet.viewer.Viewer <init>
INFO: TightVNC Viewer version null     syserr [PAM Access Agent-4]
2018-05-10 14:28:07 INFO  - Exception in thread "AWT-EventQueue-0"     syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  - java.lang.ExceptionInInitializerError     syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -      syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -     at com.ca.xsuite.app.vncapplet.viewer.swing.gui.ConnectionView.<init>(Unknown Source)     syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -      syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -     at com.ca.xsuite.app.vncapplet.viewer.Viewer.run(Unknown Source)     syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -      syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -     at java.awt.event.InvocationEvent.dispatch(Unknown Source)     syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -      syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -     at java.awt.EventQueue.dispatchEventImpl(Unknown Source)     syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -      syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -     at java.awt.EventQueue.access$500(Unknown Source)     syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -      syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -     at java.awt.EventQueue$3.run(Unknown Source)     syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -      syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -     at java.awt.EventQueue$3.run(Unknown Source)     syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -      syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -     at java.security.AccessController.doPrivileged(Native Method)     syserr [AWT-EventQueue-0]
2018-05-10 14:28:06 INFO  - Invoking launchService([{"launchType":"task","serviceId":"","appId":"","userId":3,"deviceId":9,"taskId":"1","customName":"VNC","rdpDriveMount":"true","rdpResolution":"","secsso":"","policyId":"","credentialId":""}, 9, 1, 3, , VNC, , , true, , , , , ])     com.ca.xsuite.client.bridge.JSMethodBridge [IPC Sync Events Thread]
2018-05-10 14:28:07 INFO  -      syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -     at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)     syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -      syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -     at java.awt.EventQueue.dispatchEvent(Unknown Source)     syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -      syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -     at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)     syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -      syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -     at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)     syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -      syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -     at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)     syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -      syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -     at java.awt.EventDispatchThread.pumpEvents(Unknown Source)     syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -      syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -     at java.awt.EventDispatchThread.pumpEvents(Unknown Source)     syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -      syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -     at java.awt.EventDispatchThread.run(Unknown Source)     syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -      syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  - Caused by: java.util.MissingResourceException: Can't find bundle for base name com.ca.xsuite.app.vncapplet.lang.vnc, locale en     syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -      syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -     at java.util.ResourceBundle.throwMissingResourceException(Unknown Source)     syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -      syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -     at java.util.ResourceBundle.getBundleImpl(Unknown Source)     syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -      syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -     at java.util.ResourceBundle.getBundle(Unknown Source)     syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -      syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -     at com.ca.xsuite.app.vncapplet.viewer.swing.Messages.<clinit>(Unknown Source)     syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -      syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -     ... 16 more     syserr [AWT-EventQueue-0]
2018-05-10 14:28:07 INFO  -      syserr [AWT-EventQueue-0]

It provides following hints:
1. The "java.lang" is where the initialization fails.
2. There appears to be something "Missing" in the "com.ca.xsuite.app.vncapplet.lang" folder.

So that has led me to extract the "(PAMClient)\app\gkvnc__V3.2.0.52.jar" file to take a look.
User-added image

In that folder there were only 2 language files which is "English (United States)" and "Japan".

That led me to check the Regional settings at the OS level.
User-added image
Check the "Region" and check the "Formats".
User-added image

As long as the "Format" is not "English (United States)" or "Japanese (Japan)" the users will encounter this behavior where the VNC Access Method do not launch.

From checking the PAM Client 2.8, there is no "lang" folder at all suggesting this issue would not have occurred in the 2.x version of PAM and is only encountered on PAM 3.x regardless of whether it was an upgrade or new deployment.

Also, there is Language setting that can be configured at the PAM Client.
By default it is set to "Auto-detect" but even when you uncheck this option and manually set "English(US)" as Client Language the same exception still occurs.
User-added image
 
Resolution:
This will be fixed in the future release and a workaround is to use "English (United States)" or "Japanese (Japan)" for now at the "Region" setting at the OS level.
User-added image
The cause of this is because the default language file "vnc.properties" was missing so when the matching Locale properties file was not found it caused an exception.
Future release (including PAM 3.1.2) will include the default "vnc.properties" file to handle all language other than "English (United States)" and "Japanese (Japan)".