Community
Participate
Working Groups
Created attachment 170768 [details] thread dump Eclipse RC2 See thread dump. I've changed selection in synchronize view while a ''override and update'' operation was in progress.
Created attachment 185038 [details] Locked threads As you can see from the thread dumps (complete thread dumps for the 3 selected threads you can see in attachement), there were no deadlock. It's just that 2 threads were awaiting for the completion of the third one. "SVN-Y7J5W" prio=6 tid=0x57e01800 nid=0xfcc runnable [0x56e9e000] java.lang.Thread.State: RUNNABLE at java.io.FileInputStream.readBytes(Native Method) at java.io.FileInputStream.read(Unknown Source) at java.io.BufferedInputStream.fill(Unknown Source) at java.io.BufferedInputStream.read(Unknown Source) - locked <0x09a541f0> (a java.io.BufferedInputStream) at org.tmatesoft.svn.core.internal.wc.SVNFileUtil.compareFiles(SVNFileUtil.java:950) at org.tmatesoft.svn.core.internal.wc.admin.SVNAdminArea.compareAndVerify(SVNAdminArea.java:1429) at org.tmatesoft.svn.core.internal.wc.admin.SVNAdminArea.hasTextModifications(SVNAdminArea.java:218) .......................... at org.tmatesoft.svn.core.javahl.SVNClientImpl.status(SVNClientImpl.java:282) at org.polarion.team.svn.connector.svnkit.SVNKitConnector.status(SVNKitConnector.java:336) at org.eclipse.team.svn.core.extension.factory.ThreadNameModifier.status(ThreadNameModifier.java:608) at org.eclipse.team.svn.core.utility.SVNUtility.status(SVNUtility.java:299) at org.eclipse.team.svn.core.svnstorage.SVNRemoteStorage.getStatuses(SVNRemoteStorage.java:862) at org.eclipse.team.svn.core.svnstorage.SVNRemoteStorage.loadLocalResourcesSubTreeSVNImpl(SVNRemoteStorage.java:777) at org.eclipse.team.svn.core.svnstorage.SVNRemoteStorage.loadLocalResourcesSubTree(SVNRemoteStorage.java:656) at org.eclipse.team.svn.core.svnstorage.SVNRemoteStorage.asLocalResource(SVNRemoteStorage.java:421) - locked <0x18c695f8> (a org.eclipse.team.svn.core.svnstorage.SVNRemoteStorage) at org.eclipse.team.svn.core.utility.FileUtility.addChildren(FileUtility.java:806) at org.eclipse.team.svn.core.utility.FileUtility.getResourcesRecursive(FileUtility.java:411) at org.eclipse.team.svn.core.utility.FileUtility.getResourcesRecursive(FileUtility.java:406) at org.eclipse.team.svn.ui.mapping.UpdateSubscriberContext$3.getResources(UpdateSubscriberContext.java:179) at org.eclipse.team.svn.core.operation.local.AbstractWorkingCopyOperation.operableData(AbstractWorkingCopyOperation.java:56) at org.eclipse.team.svn.core.operation.local.UpdateOperation.runImpl(UpdateOperation.java:81) .......................... at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) "Worker-9" prio=6 tid=0x560b0000 nid=0xf28 waiting for monitor entry [0x5954f000] java.lang.Thread.State: BLOCKED (on object monitor) at org.eclipse.team.svn.core.svnstorage.SVNRemoteStorage.getRegisteredChildren(SVNRemoteStorage.java:367) - waiting to lock <0x18c695f8> (a org.eclipse.team.svn.core.svnstorage.SVNRemoteStorage) at org.eclipse.team.svn.core.operation.local.GetAllResourcesOperation.runImpl(GetAllResourcesOperation.java:37) at org.eclipse.team.svn.core.operation.AbstractActionOperation.run(AbstractActionOperation.java:81) at org.eclipse.team.svn.core.operation.LoggedOperation.run(LoggedOperation.java:39) at org.eclipse.team.svn.core.utility.ProgressMonitorUtility.doTask(ProgressMonitorUtility.java:104) at org.eclipse.team.svn.core.utility.ProgressMonitorUtility.doTaskExternal(ProgressMonitorUtility.java:90) at org.eclipse.team.svn.core.utility.ProgressMonitorUtility.doTaskExternalDefault(ProgressMonitorUtility.java:77) at org.eclipse.team.svn.core.utility.FileUtility.getAllMembers(FileUtility.java:820) at org.eclipse.team.svn.core.utility.FileUtility.checkForResourcesPresence(FileUtility.java:379) at org.eclipse.team.svn.core.utility.FileUtility.checkForResourcesPresenceRecursive(FileUtility.java:348) at org.eclipse.team.svn.ui.decorator.SVNLightweightDecorator.getStatus(SVNLightweightDecorator.java:419) at org.eclipse.team.svn.ui.decorator.SVNLightweightDecorator.decorateResource(SVNLightweightDecorator.java:226) at org.eclipse.team.svn.ui.decorator.SVNLightweightDecorator.decorate(SVNLightweightDecorator.java:193) at org.eclipse.ui.internal.decorators.LightweightDecoratorDefinition.decorate(LightweightDecoratorDefinition.java:263) at org.eclipse.ui.internal.decorators.LightweightDecoratorManager$LightweightRunnable.run(LightweightDecoratorManager.java:81) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.decorate(LightweightDecoratorManager.java:365) at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.getDecorations(LightweightDecoratorManager.java:347) at org.eclipse.ui.internal.decorators.DecorationScheduler$1.ensureResultCached(DecorationScheduler.java:371) at org.eclipse.ui.internal.decorators.DecorationScheduler$1.run(DecorationScheduler.java:331) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) "main" prio=6 tid=0x008f6400 nid=0x460 waiting for monitor entry [0x0012e000] java.lang.Thread.State: BLOCKED (on object monitor) at org.eclipse.team.svn.core.svnstorage.SVNRemoteStorage.asLocalResource(SVNRemoteStorage.java:417) - waiting to lock <0x18c695f8> (a org.eclipse.team.svn.core.svnstorage.SVNRemoteStorage) at org.eclipse.team.svn.core.synchronize.AbstractSVNSubscriber.getSyncInfo(AbstractSVNSubscriber.java:138) at org.eclipse.team.svn.ui.synchronize.action.AbstractSynchronizeLogicalModelAction.getFilteredResources(AbstractSynchronizeLogicalModelAction.java:237) at org.eclipse.team.svn.ui.synchronize.action.AbstractSynchronizeLogicalModelAction.isEnabledForSelection(AbstractSynchronizeLogicalModelAction.java:67) at org.eclipse.team.ui.synchronize.ModelParticipantAction.updateSelection(ModelParticipantAction.java:88) at org.eclipse.team.svn.ui.synchronize.action.logicalmodel.OpenInExternalCompareEditorModelAction.updateSelection(OpenInExternalCompareEditorModelAction.java:60) at org.eclipse.ui.actions.BaseSelectionListenerAction.selectionChanged(BaseSelectionListenerAction.java:124) .......................... at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574) at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
There were no deadlock, it's just that you caused some UI threads waiting for the completion of previously started action. Although it is obviously no good when UI threads waiting for something there are no critical issues like deadlock.