I have a problem with fisheye. When I want to upload a private key, i get the following error in fisheye.out
2012-09-10 16:46:51,948 ERROR - Error for /admin/servlet.gupld java.lang.NoClassDefFoundError: Could not initialize class com.sun.jna.Native at com.cenqua.fisheye.util.FileSystemUtils.privatise(FileSystemUtils.java:81) at com.atlassian.fecru.security.SshKeyManagerImpl.createPrivateKeyFile(SshKeyManagerImpl.java:97) at com.atlassian.fecru.security.SshKeyManagerImpl.saveKeyPair(SshKeyManagerImpl.java:111) at com.atlassian.fecru.security.SshKeyManagerImpl.isEncrypted(SshKeyManagerImpl.java:103) at com.atlassian.fecru.gwt.servlet.GwtSshKeyUploadServlet.executeAction(GwtSshKeyUploadServlet.java:40) at gwtupload.server.UploadAction.doPost(UploadAction.java:162)
What went wrong here?
I was able to get past the problem like Allan Saddi by upgrading the jna jar to version 3.4.2.
With the old jna jar in place, I would get classdef not found errors if I attempted to upload a public key or test a connection using a FishEye generated key.
You can download the jar file at this URL: https://github.com/twall/jna/blob/3.4.2/dist/jna.jar?raw=true
At this point I was able to successfully generate a ssh key pair, manually upload the public key to GitHub Enterprise, and add the repository.
The problem is that we are depending on JNA to set permissions on the newly created SSH key, using for example chmod on unix.
The error shows that the class com.sun.jna.Native is failing to load due to a missing dependency.
Potentially this is due to the JVM that you are using. Can you please let us know what OS and JVM versions you are using?
Also, is there any more stack trace that would suggest what dependency is actually missing?
happens also with ubuntu 64bit,
java version "1.7.0_25"
OpenJDK Runtime Environment (IcedTea 2.3.10) (7u25-2.3.10-1ubuntu0.12.04.2)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)
I am having the same issue when trying to upload a private key for a Git repo in FishEye.
This is NOT due to a missing library in the JVM. The jna libary is part of the FishEye install. The file is located at [FishEye install dir]/lib/jna-3.4.0.jar.
Besides the stack trace, I occasionally get the following in a popup:
In the logs I see:
INFO: Initiating Jersey application, version 'Jersey: 1.8-atlassian-6 03/12/2012 02:59 PM'
2012-09-13 12:22:13,373 ERROR - Could not save private key: POSIX c library "c" was not found
2012-09-13 12:22:14,250 ERROR - Could not save private key: POSIX c library "c" was not found
(Version:2.8.1 Build:20120829051639 2012-08-29
[fisheye@fisheye01 lib]$ java -version
java version "1.6.0_35"
Java(TM) SE Runtime Environment (build 1.6.0_35-b10)
Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01, mixed mode)
We ran into this issue as well and found this thread by searching.
I eventually fixed this by upgrading jna-3.4.0.jar in FishEye to jna-3.4.2.jar. It works for us, but YMMV.
From the looks of the error, there has been an issue importing a library that FishEye is dependent upon so I would suggest checking that you are running your instance on a supported JVM. I'm sorry to say that is just speculation, but certainly something worth investigating.
All the best,