Fixed bug 375634: RepositoryProvider#getProvider(..) methods are
inefficient for inaccessible projects
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/RepositoryProvider.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/RepositoryProvider.java
index d7798cd..cb3ad2c 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/RepositoryProvider.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/RepositoryProvider.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
+ * Copyright (c) 2000, 2012 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -488,7 +488,7 @@
 	 */
 	final public static RepositoryProvider getProvider(IProject project) {
 		try {					
-			if(project.isAccessible()) {
+			if (project.isAccessible()) {
 				
 				//-----------------------------
 				//First, look for the session property
@@ -525,13 +525,14 @@
 						}
 					}
 				}
+				markAsUnshared(project);
 			}
 		} catch(CoreException e) {
 			if (!isAcceptableException(e)) {
 				TeamPlugin.log(e);
 			}
+			markAsUnshared(project);
 		}
-        markAsUnshared(project);
 		return null;
 	}
 	
@@ -555,7 +556,7 @@
 	 */
 	final public static RepositoryProvider getProvider(IProject project, String id) {
 		try {
-			if(project.isAccessible()) {
+			if (project.isAccessible()) {
 				// Look for an existing provider first to avoid accessing persistent properties
 				RepositoryProvider provider = lookupProviderProp(project);  //throws core, we will reuse the catching already here
 				if(provider != null) {
@@ -598,13 +599,14 @@
 						return (RepositoryProvider)project.getNature(id);
 					}			
 				}
+				markAsUnshared(project);
 			}
 		} catch(CoreException e) {
 			if (!isAcceptableException(e)) {
 				TeamPlugin.log(e);
 			}
+			markAsUnshared(project);
 		}
-        markAsUnshared(project);
 		return null;
 	}