[nobug] Fix typos, add safety checks
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelquery/TagModelQuery.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelquery/TagModelQuery.java index 6adfe2e..73ef1cc 100644 --- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelquery/TagModelQuery.java +++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelquery/TagModelQuery.java
@@ -13,12 +13,14 @@ import java.util.List; +import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.ProjectScope; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.preferences.IEclipsePreferences; import org.eclipse.jst.jsp.core.internal.JSPCorePlugin; +import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver; import org.eclipse.wst.sse.core.internal.ltk.modelhandler.EmbeddedTypeHandler; import org.eclipse.wst.sse.core.internal.modelhandler.ModelHandlerUtility; import org.eclipse.wst.sse.core.internal.provisional.IModelManager; @@ -33,6 +35,7 @@ import org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl.ModelQueryImpl; import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; import org.eclipse.wst.xml.core.internal.ssemodelquery.ModelQueryAdapter; +import org.eclipse.wst.xml.core.internal.ssemodelquery.MovableModelQuery; import org.w3c.dom.Element; import org.w3c.dom.Node; @@ -41,7 +44,7 @@ * loaded tag libraries in the model before falling back to the embedded model * query, if one is found. */ -public class TagModelQuery extends ModelQueryImpl implements ModelQuery { +public class TagModelQuery extends ModelQueryImpl implements ModelQuery, MovableModelQuery { /** * The default mime-type for the embedded ModelQuery */ @@ -70,7 +73,7 @@ /* * (non-Javadoc) * - * @seeorg.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl. + * @see org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl. * ModelQueryImpl#getCMElementDeclaration(org.w3c.dom.Element) */ public CMElementDeclaration getCMElementDeclaration(Element element) { @@ -109,9 +112,12 @@ if (!baseLocation.equals(IModelManager.UNMANAGED_MODEL)) { IPath path = new Path(baseLocation); if (path.segmentCount() > 1) { - String key = createPreferenceKey(path); - IEclipsePreferences preferences = new ProjectScope(ResourcesPlugin.getWorkspace().getRoot().getProject(path.segment(0))).getNode(JSPCorePlugin.getDefault().getBundle().getSymbolicName()); - type = preferences.get(key, DEFAULT_MIMETYPE); + IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(path.segment(0)); + if (project.isAccessible()) { + String key = createPreferenceKey(path); + IEclipsePreferences preferences = new ProjectScope(project).getNode(JSPCorePlugin.getDefault().getBundle().getSymbolicName()); + type = preferences.get(key, DEFAULT_MIMETYPE); + } } } } @@ -139,4 +145,11 @@ } return fEmbeddedModelQuery; } + + /* (non-Javadoc) + * @see org.eclipse.wst.xml.core.internal.ssemodelquery.MovableModelQuery#setIdResolver(org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver) + */ + public void setIdResolver(URIResolver newURIResolver) { + fEmbeddedModelQuery = null; + } }