If the Java version on your MAC OS X is too old, you might see the following exception in a terminal window when you start Worksnaps client. 

In this case, please upgrade your Java version by the following instruction -- 


  • OS X Lion -- Please go to this page to install Java -- http://support.apple.com/kb/DL1421. (OS X Lion does not have Java pre-installed.)
  • Operation system other than OS X Lion -- You can run a Software Update to update your Java to the most recent version.

If the performing the above still does not work, please uninstall Java first and start Worksnaps Client. Then you will see this dialog box. Just click Install button to install Java. 





--------------- Sample Exception ---------------

[java] INFO 10:43:22,734 - [Client Log] [login username=jspear]

[java] WARN 10:43:23,472 - javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty

javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty

 at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:190)

 at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1731)

 at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1692)

 at com.sun.net.ssl.internal.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1675)

 at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1204)

 at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1181)

 at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434)

 at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166)

 at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1014)

 at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230)

 at com.timetracking.net.RequestHelper.a(SourceFile:52)

 at com.timetracking.core.CoreManager.a(SourceFile:527)

 at com.timetracking.core.i.a(SourceFile:83)

 at com.timetracking.ui.LoginUI.b(SourceFile:55)

 at com.timetracking.ui.LoginUI.b(SourceFile:28)

 at com.timetracking.ui.q.actionPerformed(SourceFile:236)

 at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)

 at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)

 at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)

 at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)

 at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)

 at java.awt.Component.processMouseEvent(Component.java:6373)

 at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)

 at java.awt.Component.processEvent(Component.java:6138)

 at java.awt.Container.processEvent(Container.java:2085)

 at java.awt.Component.dispatchEventImpl(Component.java:4735)

 at java.awt.Container.dispatchEventImpl(Container.java:2143)

 at java.awt.Component.dispatchEvent(Component.java:4565)

 at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4621)

 at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4282)

 at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4212)

 at java.awt.Container.dispatchEventImpl(Container.java:2129)

 at java.awt.Window.dispatchEventImpl(Window.java:2478)

 at java.awt.Component.dispatchEvent(Component.java:4565)

 at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:679)

 at java.awt.EventQueue.access$000(EventQueue.java:85)

 at java.awt.EventQueue$1.run(EventQueue.java:638)

 at java.awt.EventQueue$1.run(EventQueue.java:636)

 at java.security.AccessController.doPrivileged(Native Method)

 at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)

 at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)

 at java.awt.EventQueue$2.run(EventQueue.java:652)

 at java.awt.EventQueue$2.run(EventQueue.java:650)

 at java.security.AccessController.doPrivileged(Native Method)

 at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)

 at java.awt.EventQueue.dispatchEvent(EventQueue.java:649)

 at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)

 at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)

 at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)

 at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)

 at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)

 at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Caused by: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty

 at sun.security.validator.PKIXValidator.<init>(PKIXValidator.java:57)

 at sun.security.validator.Validator.getInstance(Validator.java:161)

 at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.getValidator(X509TrustManagerImpl.java:108)

 at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:204)

 at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:249)

 at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1185)

 at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:136)

 at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:593)

 at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:529)

 at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:925)

 at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1170)

 at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1197)

 ... 47 more

Caused by: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty

 at java.security.cert.PKIXParameters.setTrustAnchors(PKIXParameters.java:183)

 at java.security.cert.PKIXParameters.<init>(PKIXParameters.java:103)

 at java.security.cert.PKIXBuilderParameters.<init>(PKIXBuilderParameters.java:87)

 at sun.security.validator.PKIXValidator.<init>(PKIXValidator.java:55)