From 77b67de31fed7681ab46d5fdeb6e4ffd84dca782 Mon Sep 17 00:00:00 2001 From: Alena Laskavaia Date: Thu, 17 Jul 2008 18:23:23 +0000 Subject: [PATCH] [241288] - temporary fix - trying to avoid dead-lock on import --- .../cdt/internal/core/CConfigBasedDescriptorManager.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CConfigBasedDescriptorManager.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CConfigBasedDescriptorManager.java index f629f84c94b..88238aebabc 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CConfigBasedDescriptorManager.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CConfigBasedDescriptorManager.java @@ -122,7 +122,7 @@ public class CConfigBasedDescriptorManager implements ICDescriptorManager { if (dr.getProjectOwner().getID().equals(NULLCOwner.getOwnerID())) { // non owned descriptors are simply configure to the new owner no questions ask! dr = updateDescriptor(project, dr, id); - dr.apply(true); + } else if (!dr.getProjectOwner().getID().equals(id)) { IStatus status = new Status(IStatus.ERROR, CCorePlugin.PLUGIN_ID, CCorePlugin.STATUS_CDTPROJECT_EXISTS, CCorePlugin.getResourceString("CDescriptorManager.exception.alreadyConfigured"), //$NON-NLS-1$ @@ -135,7 +135,7 @@ public class CConfigBasedDescriptorManager implements ICDescriptorManager { // try { dr = findDescriptor(project, true); dr = updateDescriptor(project, dr, id); - dr.apply(true); + // } catch (CoreException e) { // if .cdtproject already exists we'll use that // IStatus status = e.getStatus(); // if (status.getCode() == CCorePlugin.STATUS_CDTPROJECT_EXISTS) { @@ -145,7 +145,8 @@ public class CConfigBasedDescriptorManager implements ICDescriptorManager { // } } } - + + dr.apply(true); if(dr.isOperationStarted()) dr.setOpEvent(new CDescriptorEvent(dr, CDescriptorEvent.CDTPROJECT_ADDED, 0)); } @@ -185,9 +186,9 @@ public class CConfigBasedDescriptorManager implements ICDescriptorManager { synchronized(CProjectDescriptionManager.getInstance()){ dr = updateDescriptor(project, dr, id); - dr.apply(true); } + dr.apply(true); if(dr.isOperationStarted()) dr.setOpEvent(new CDescriptorEvent(dr, CDescriptorEvent.CDTPROJECT_CHANGED, CDescriptorEvent.OWNER_CHANGED)); }