You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by "Carsten Pfeiffer (JIRA)" <ji...@apache.org> on 2014/02/20 13:43:19 UTC

[jira] [Commented] (IVYDE-259) duplicate setup's added to setuplist in prefs file

    [ https://issues.apache.org/jira/browse/IVYDE-259?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13906921#comment-13906921 ] 

Carsten Pfeiffer commented on IVYDE-259:
----------------------------------------

The change in IvyClasspathContainer (asyncExec -> syncExec) may unfortunately lead to deadlock situations. If the main thread attempts to execute a job while the resolve job is already running, the main thread waits for the resolve job to finish. The latter then attempts to syncExec() into the main thread, which won't work.

{code}
Thread [Worker-4] (Suspended)	
	waiting for: RunnableLock  (id=122)	
	Object.wait(long) line: not available [native method]	
	RunnableLock(Object).wait() line: 503	
	Synchronizer.syncExec(Runnable) line: 187	
	Display.syncExec(Runnable) line: 4330	
	IvyClasspathContainerImpl.setClasspathEntries(IClasspathEntry[]) line: 148	
	IvyClasspathContainerImpl.updateClasspathEntries(IClasspathEntry[]) line: 144	
	IvyClasspathResolver.postBatchResolve() line: 40	
	IvyResolveJob.doRun(IProgressMonitor) line: 263	
	IvyResolveJob.run(IProgressMonitor) line: 85	
	Worker.run() line: 54	
{code}

{code}
Thread [main] (Suspended)	
	owns: RunnableLock  (id=122)	
		waited by: Thread [Worker-4] (Suspended)	
	waiting for: Object  (id=123)	
	Object.wait(long) line: not available [native method]	
	Object.wait() line: 503	
	ThreadJob.waitForRun(ThreadJob, IProgressMonitor, InternalJob, Thread) line: 272	
	ThreadJob.joinRun(ThreadJob, IProgressMonitor) line: 199	
	ImplicitJobs.begin(ISchedulingRule, IProgressMonitor, boolean) line: 92	
	JobManager.beginRule(ISchedulingRule, IProgressMonitor) line: 286	
	WorkManager.checkIn(ISchedulingRule, IProgressMonitor) line: 118	
	Workspace.prepareOperation(ISchedulingRule, IProgressMonitor) line: 2282	
	Folder(Resource).refreshLocal(int, IProgressMonitor) line: 1655	
	ExternalFoldersManager.createLinkFolder(IPath, boolean, IProject, IProgressMonitor) line: 155	
	ExternalFoldersManager.createLinkFolder(IPath, boolean, IProgressMonitor) line: 145	
	ExternalFolderChange.updateExternalFoldersIfNecessary(boolean, IProgressMonitor) line: 48	
	SetContainerOperation(ChangeClasspathOperation).classpathChanged(ClasspathChange, boolean) line: 62	
	SetContainerOperation.executeOperation() line: 110	
	SetContainerOperation(JavaModelOperation).run(IProgressMonitor) line: 728	
	Workspace.run(IWorkspaceRunnable, ISchedulingRule, int, IProgressMonitor) line: 2344	
	SetContainerOperation(JavaModelOperation).runOperation(IProgressMonitor) line: 793	
	JavaCore.setClasspathContainer(IPath, IJavaProject[], IClasspathContainer[], IProgressMonitor) line: 4952	
	IvyClasspathContainerImpl.notifyUpdateClasspathEntries() line: 172	
	IvyClasspathContainerImpl$1.run() line: 162	
	RunnableLock.run() line: 35	
	Synchronizer.runAsyncMessages(boolean) line: 135	
	Display.runAsyncMessages(boolean) line: 3563	
	Display.readAndDispatch() line: 3212	
...
{code}

> duplicate setup's added to setuplist in prefs file
> --------------------------------------------------
>
>                 Key: IVYDE-259
>                 URL: https://issues.apache.org/jira/browse/IVYDE-259
>             Project: IvyDE
>          Issue Type: Bug
>         Environment: ivyde hudson build
>            Reporter: Stephen Haberman
>            Assignee: Nicolas Lalevée
>            Priority: Minor
>             Fix For: 2.2.0.beta1
>
>
> I'm using the latest hudson build and the new .settings/org.apache.ivyde.eclipse.prefs file is churning a lot. In the latest diff, the setting org.apache.ivyde.eclipse.standlaoneretrieve had changed from:
> <?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>
> <setuplist>
> 	<setup name\="dependencies">
> 		<ivysettings loadondemand\="false" path\="${workspace_loc\:project/ivysettings.xml}"/>
> 		<ivyxml path\="ivy.xml"/>
> 		<retrieve confs\="*" pattern\="bin/lib/[conf]/[type]s/[artifact].[ext]" sync\="true" types\="jar,source"/>
> 	</setup>
>         (this <setup/> was repeated 5 times)
> To the same thing but with <setup/> repeated 6 times.
> It seems to be adding new setups but not taking out the old ones. I'm not really sure what is triggering the new (duplicate) <setup/> to be added. I just notice after using Eclipse for awhile that the files have changed.
> Also, the setting name "standlaoneretrieve" has a typo, "laone" should be "alone".
> Apologies if I shouldn't be using the hudson build or reporting bugs for it here.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)