175155 AdaptExpression returns NOT_LOADED when adapter factory and adapter are loaded
diff --git a/bundles/org.eclipse.core.expressions/src/org/eclipse/core/internal/expressions/AdaptExpression.java b/bundles/org.eclipse.core.expressions/src/org/eclipse/core/internal/expressions/AdaptExpression.java
index 190521f..ca4e87c 100644
--- a/bundles/org.eclipse.core.expressions/src/org/eclipse/core/internal/expressions/AdaptExpression.java
+++ b/bundles/org.eclipse.core.expressions/src/org/eclipse/core/internal/expressions/AdaptExpression.java
@@ -70,19 +70,24 @@
 			return EvaluationResult.FALSE;
 		Object var= context.getDefaultVariable();
 		Object adapted= null;
+		IAdapterManager manager= Platform.getAdapterManager();
 		if (Expressions.isInstanceOf(var, fTypeName)) {
 			adapted= var;
 		} else {
-			IAdapterManager manager= Platform.getAdapterManager();
 			if (!manager.hasAdapter(var, fTypeName))
 				return EvaluationResult.FALSE;
 		
 			adapted= manager.getAdapter(var, fTypeName);
 		}
-		// the adapted result is null but hasAdapter returned true. This means
-		// that there is an adapter but the adapter isn't loaded yet.
-		if (adapted == null) 
-			return EvaluationResult.NOT_LOADED;
+		// the adapted result is null but hasAdapter returned true check
+		// if the adapter is loaded.
+		if (adapted == null) {
+			if (manager.queryAdapter(var, fTypeName) == IAdapterManager.NOT_LOADED) {
+				return EvaluationResult.NOT_LOADED;
+			} else {
+				return EvaluationResult.FALSE;
+			}
+		}
 		return evaluateAnd(new DefaultVariable(context, adapted));
 	}