Hi. I found the keying problem still existed in svnkit-1.7.5-v1. When password storage is required in ubuntu, svnkit hangs or jvm crashes.
The test code was listed in the previous mail. Any idea? ------------------------------ Date: Thu, 7 Jun 2012 23:32:57 -0700 (PDT) From: "[tc]" <zhutian...@baidu.com> Subject: Gnome Keyring Hangs When Current Thread Is Not the UI Thread To: svnkit-users@svnkit.com Message-ID: <33979813.p...@talk.nabble.com> Content-Type: text/plain; charset=us-ascii I am using SVNKit 1.7.4-v1. When SVNKit lib runs in ubuntu, I found the keyring functions hangs in the daemon thread. NOTE: wincrypt for Windows and keychain for MacOS are not suffered from this problem. The main functions I called are: try { boolean isSaved = SVNGnomeKeyring.setPassword("test realm", "test user name", "test password", false /* nonInteractive */, null /* keyringPasswordProvider */); System.out.println("setPassword = " + isSaved); String savedPasswd = SVNGnomeKeyring.getPassword("test realm", "test user name", false /* nonInteractive */, null /* keyringPasswordProvider */); System.out.println("getPassword = " + savedPasswd); } catch (SVNException e) { e.printStackTrace(); } The above code works fine in the command line. But when it is running in the daemon thread that is NOT the UI thread (IMPORTANT), program always hangs in native code in SVNMethodCallLogger. Thread thread = new Thread(new Runnable() { @Override public void run() { try { boolean isSaved = SVNGnomeKeyring.setPassword("test realm", "test user name", "test password", false /* nonInteractive */, null /* keyringPasswordProvider */); System.out.println("setPassword = " + isSaved); String savedPasswd = SVNGnomeKeyring.getPassword("test realm", "test user name", false /* nonInteractive */, null /* keyringPasswordProvider */); System.out.println("getPassword = " + savedPasswd); } catch (SVNException e) { e.printStackTrace(); } }}); Shell shell = new Shell(); shell.open(); thread.start(); while (!shell.isDisposed()) { try { if (!shell.getDisplay().readAndDispatch()) { shell.getDisplay().sleep(); } } catch (Throwable e) { if (e instanceof ThreadDeath) { // Don't catch ThreadDeath as this is a normal // occurrence when the thread dies throw (ThreadDeath) e; } } } try { thread.join(); } catch (InterruptedException e) { e.printStackTrace(); } When program hangs in the daemon thread, the UI also hangs. So I believe the problem is relative to the message loop. I do not have the source code of the native code, so I cannot trace the problem deeper. Any suggestions? -- View this message in context: http://old.nabble.com/Gnome-Keyring-Hangs-When-Current-Thread-Is-Not-the-UI-Thread-tp33979813p33979813.html Sent from the SVNKit - Users mailing list archive at Nabble.com. ------------------------------ _______________________________________________ svnkit-users mailing list svnkit-users@svnkit.com http://lists.tmatesoft.com/mailman/listinfo/svnkit-users End of svnkit-users Digest, Vol 17, Issue 5 *******************************************