[tests] Modify teardown
diff --git a/plugins/org.eclipse.mylyn.docs.intent.client.ui.ide/src/org/eclipse/mylyn/docs/intent/client/ui/ide/builder/IntentBuilderDeltaVisitor.java b/plugins/org.eclipse.mylyn.docs.intent.client.ui.ide/src/org/eclipse/mylyn/docs/intent/client/ui/ide/builder/IntentBuilderDeltaVisitor.java
index 1b5ebc9..5461ee7 100644
--- a/plugins/org.eclipse.mylyn.docs.intent.client.ui.ide/src/org/eclipse/mylyn/docs/intent/client/ui/ide/builder/IntentBuilderDeltaVisitor.java
+++ b/plugins/org.eclipse.mylyn.docs.intent.client.ui.ide/src/org/eclipse/mylyn/docs/intent/client/ui/ide/builder/IntentBuilderDeltaVisitor.java
@@ -50,10 +50,8 @@
switch (delta.getKind()) {
case IResourceDelta.ADDED:
// If an intent project has been created
- if (resource instanceof IProject && resource.isAccessible()
- && ((IProject)resource).hasNature(IntentNature.NATURE_ID)) {
- openedProjects.add((IProject)resource);
- }
+ // Then a new repository will be created and the
+ // IntentProjectBasedRepositoryManagerContribution will trigger project connexion
break;
case IResourceDelta.CHANGED:
if ((IResourceDelta.OPEN & delta.getFlags()) != 0) {
diff --git a/plugins/org.eclipse.mylyn.docs.intent.client.ui.ide/src/org/eclipse/mylyn/docs/intent/client/ui/ide/builder/IntentProjectListener.java b/plugins/org.eclipse.mylyn.docs.intent.client.ui.ide/src/org/eclipse/mylyn/docs/intent/client/ui/ide/builder/IntentProjectListener.java
index 402c68f..8d61e2e 100644
--- a/plugins/org.eclipse.mylyn.docs.intent.client.ui.ide/src/org/eclipse/mylyn/docs/intent/client/ui/ide/builder/IntentProjectListener.java
+++ b/plugins/org.eclipse.mylyn.docs.intent.client.ui.ide/src/org/eclipse/mylyn/docs/intent/client/ui/ide/builder/IntentProjectListener.java
@@ -125,24 +125,26 @@
*/
public void handleOpenedProject(IProject project) {
// Step 1: determine if the opened project is a valid Intent project
- try {
- if (project.isAccessible() && project.hasNature(IntentNature.NATURE_ID)) {
- // Step 2: determine if it is already handled by this project listener
- if (projectManagers.get(project.getName()) == null) {
- // Step 3: if not, create an Intent project manager for this project
- IntentProjectManager projectManager = getIntentProjectManager(project);
- try {
- IntentLogger.getInstance().log(LogType.LIFECYCLE,
- "[IntentProjectListener] Handling project " + project.getName());
- projectManager.connect();
- projectManagers.put(project.getName(), projectManager);
- } catch (RepositoryConnectionException e) {
- IntentUiLogger.logError(e);
+ synchronized(projectManagers) {
+ try {
+ if (project.isAccessible() && project.hasNature(IntentNature.NATURE_ID)) {
+ // Step 2: determine if it is already handled by this project listener
+ if (projectManagers.get(project.getName()) == null) {
+ // Step 3: if not, create an Intent project manager for this project
+ IntentProjectManager projectManager = getIntentProjectManager(project);
+ try {
+ IntentLogger.getInstance().log(LogType.LIFECYCLE,
+ "[IntentProjectListener] Handling project " + project.getName());
+ projectManager.connect();
+ projectManagers.put(project.getName(), projectManager);
+ } catch (RepositoryConnectionException e) {
+ IntentUiLogger.logError(e);
+ }
}
}
+ } catch (CoreException e) {
+ IntentUiLogger.logError(e);
}
- } catch (CoreException e) {
- IntentUiLogger.logError(e);
}
}
diff --git a/plugins/org.eclipse.mylyn.docs.intent.client.ui.ide/src/org/eclipse/mylyn/docs/intent/client/ui/ide/navigator/UpdateProblemsViewJob.java b/plugins/org.eclipse.mylyn.docs.intent.client.ui.ide/src/org/eclipse/mylyn/docs/intent/client/ui/ide/navigator/UpdateProblemsViewJob.java
index 037effe..6eaf594 100644
--- a/plugins/org.eclipse.mylyn.docs.intent.client.ui.ide/src/org/eclipse/mylyn/docs/intent/client/ui/ide/navigator/UpdateProblemsViewJob.java
+++ b/plugins/org.eclipse.mylyn.docs.intent.client.ui.ide/src/org/eclipse/mylyn/docs/intent/client/ui/ide/navigator/UpdateProblemsViewJob.java
@@ -132,7 +132,7 @@
statusIsProxy = statusIsProxy || status.eResource() == null
|| status.getTarget().eResource() == null;
- if (project.isAccessible() && !statusIsProxy) {
+ if (project.isAccessible() && project.exists() && !statusIsProxy) {
marker = project.createMarker("org.eclipse.core.resources.problemmarker");
if (status.getSeverity() == CompilationStatusSeverity.WARNING) {
marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_WARNING);
diff --git a/tests/org.eclipse.mylyn.docs.intent.client.ui.test/src/org/eclipse/mylyn/docs/intent/client/ui/test/util/AbstractIntentUITest.java b/tests/org.eclipse.mylyn.docs.intent.client.ui.test/src/org/eclipse/mylyn/docs/intent/client/ui/test/util/AbstractIntentUITest.java
index a12b4ea..111e953 100644
--- a/tests/org.eclipse.mylyn.docs.intent.client.ui.test/src/org/eclipse/mylyn/docs/intent/client/ui/test/util/AbstractIntentUITest.java
+++ b/tests/org.eclipse.mylyn.docs.intent.client.ui.test/src/org/eclipse/mylyn/docs/intent/client/ui/test/util/AbstractIntentUITest.java
@@ -182,31 +182,34 @@
}
// Step 2: clean workspace
- if (intentProject != null) {
- IntentRepositoryManager.INSTANCE.deleteRepository(intentProject.getName());
- waitForAllOperationsInUIThread();
+ try {
+ if (intentProject != null) {
+ IntentRepositoryManager.INSTANCE.deleteRepository(intentProject.getName());
+ waitForAllOperationsInUIThread();
- intentProject.delete(true, true, new NullProgressMonitor());
+ intentProject.delete(true, true, new NullProgressMonitor());
+ }
+ } finally {
+ IntentEditorActivator.getDefault().getLog().removeLogListener(this);
+ WorkspaceUtils.cleanWorkspace();
+
+ // Step 3: unregister repository listener and deactivate advance loggin
+ if (repositoryListener != null) {
+ Platform.removeLogListener(repositoryListener);
+ }
+ IEclipsePreferences node = InstanceScope.INSTANCE.getNode(IntentEditorActivator.getDefault()
+ .getBundle().getSymbolicName());
+ node.putBoolean(IntentPreferenceConstants.ACTIVATE_ADVANCE_LOGGING, false);
+
+ // Step 4: setting all fields to null (to avoid memory leaks)
+ setAllFieldsToNull();
+
+ // Step 5: remove all dynamically added contributions
+ while (dynamicExtensionCounter > 0) {
+ removeLastExtension();
+ }
+ super.tearDown();
}
- IntentEditorActivator.getDefault().getLog().removeLogListener(this);
- WorkspaceUtils.cleanWorkspace();
-
- // Step 3: unregister repository listener and deactivate advance loggin
- if (repositoryListener != null) {
- Platform.removeLogListener(repositoryListener);
- }
- IEclipsePreferences node = InstanceScope.INSTANCE.getNode(IntentEditorActivator.getDefault()
- .getBundle().getSymbolicName());
- node.putBoolean(IntentPreferenceConstants.ACTIVATE_ADVANCE_LOGGING, false);
-
- // Step 4: setting all fields to null (to avoid memory leaks)
- setAllFieldsToNull();
-
- // Step 5: remove all dynamically added contributions
- while (dynamicExtensionCounter > 0) {
- removeLastExtension();
- }
- super.tearDown();
}
/**
@@ -315,15 +318,12 @@
public void run(IProgressMonitor monitor) throws CoreException {
IProject project = WorkspaceUtils.createProject(projectName, monitor);
ToggleNatureAction.toggleNature(project);
-
- IntentRepositoryInitializer.initializeContent(projectName, intentDocumentContent);
-
- // Step 3 : initializing all useful informations
intentProject = project;
setUpRepository(project);
}
};
ResourcesPlugin.getWorkspace().run(create, null);
+ IntentRepositoryInitializer.initializeContent(projectName, intentDocumentContent);
}
/**