Blogs Blogs

«Back

Subclipse fails with org.eclipse.swt.SWTException: Invalid thread access

I encountered this problem while trying to checkout Liferay's source in Eclipse, using the Subclipse plugin. The manifestation was as follows:

* anonymous access to the SVN required empty password; saving of the empty password didn't seem to work;
* on pressing 'Finish' in the wizard, either Subclipse, or the whole Eclipse would give an error message, which presents itself in the log files as:

!ENTRY org.eclipse.core.jobs 4 2 2011-03-14 20:47:56.033
!MESSAGE An internal error occurred during: "SVN Checkout".
!STACK 0
org.eclipse.swt.SWTException: Invalid thread access
	at org.eclipse.swt.SWT.error(SWT.java:4083)
	at org.eclipse.swt.SWT.error(SWT.java:3998)
	at org.eclipse.swt.SWT.error(SWT.java:3969)
	at org.eclipse.swt.widgets.Widget.error(Widget.java:466)
	at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:404)
	at org.eclipse.swt.widgets.Control.isVisible(Control.java:3175)
	at org.eclipse.swt.widgets.ProgressBar.timerProc(ProgressBar.java:276)
	at org.eclipse.swt.widgets.Display.windowTimerProc(Display.java:4378)
	at org.tigris.subversion.javahl.SVNClient.list(Native Method)
	at org.tigris.subversion.javahl.SVNClient.list(SVNClient.java:201)
	at org.tigris.subversion.javahl.SVNClient.list(SVNClient.java:187)
	at org.tigris.subversion.svnclientadapter.javahl.AbstractJhlClientAdapter.getList(AbstractJhlClientAdapter.java:332)
	at org.tigris.subversion.subclipse.core.commands.CheckoutCommand.basicRun(CheckoutCommand.java:100)
	at org.tigris.subversion.subclipse.core.commands.CheckoutCommand$1.run(CheckoutCommand.java:222)
	at org.tigris.subversion.subclipse.core.SVNProviderPlugin$6.run(SVNProviderPlugin.java:497)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)
	at org.tigris.subversion.subclipse.core.SVNProviderPlugin.run(SVNProviderPlugin.java:492)
	at org.tigris.subversion.subclipse.core.commands.CheckoutCommand.run(CheckoutCommand.java:220)
	at org.tigris.subversion.subclipse.ui.operations.CheckoutAsProjectOperation.execute(CheckoutAsProjectOperation.java:99)
	at org.tigris.subversion.subclipse.ui.operations.CheckoutAsProjectOperation.execute(CheckoutAsProjectOperation.java:68)
	at org.tigris.subversion.subclipse.ui.operations.SVNOperation.run(SVNOperation.java:89)
	at org.eclipse.team.internal.ui.actions.JobRunnableContext.run(JobRunnableContext.java:144)
	at org.eclipse.team.internal.ui.actions.JobRunnableContext$ResourceJob.runInWorkspace(JobRunnableContext.java:72)
	at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

According to this wiki article, the problem is with GNOME keyring. The proposed solution worked flawlessly; hence, I quote it here:

There is currently a bug in the new support for GNOME keyring in Subversion 1.6. It works OK when using the command line, but not when other users of the libraries use it. Until this is fixed, you can workaround the problem by turning off this feature. To do this, open the file ~/.subversion/config and add the following:

[auth]
### Set password stores used by Subversion. They should be
### delimited by spaces or commas. The order of values determines
### the order in which password stores are used.
### Valid password stores:
###   gnome-keyring        (Unix-like systems)
###   kwallet              (Unix-like systems)
###   keychain             (Mac OS X)
###   windows-cryptoapi    (Windows)
password-stores = 

The empty value for "password-stores" disables the feature. Passwords will be stored in plain text in the auth folder as with all previous version of Subversion.

Comments
Trackback URL: