[nobug] avoid cyclic load attempts on SSE model
diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/format/FormattingStrategyJSDT.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/format/FormattingStrategyJSDT.java index b101269..2cd6265 100644 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/format/FormattingStrategyJSDT.java +++ b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/format/FormattingStrategyJSDT.java
@@ -15,11 +15,12 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.eclipse.core.filebuffers.FileBuffers; +import org.eclipse.core.filebuffers.ITextFileBuffer; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IWorkspaceRoot; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; import org.eclipse.jface.text.BadLocationException; import org.eclipse.jface.text.Document; import org.eclipse.jface.text.IDocument; @@ -213,13 +214,11 @@ private Map getProjectOptions(IDocument baseDocument) { IJavaScriptProject javaProject = null; - IDOMModel xmlModel = null; Map options = null; - try { - xmlModel = (IDOMModel) StructuredModelManager.getModelManager().getExistingModelForRead(baseDocument); - String baseLocation = xmlModel.getBaseLocation(); + ITextFileBuffer buffer = FileBuffers.getTextFileBufferManager().getTextFileBuffer(baseDocument); + if (buffer != null) { IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); - IPath filePath = new Path(baseLocation); + IPath filePath = buffer.getLocation(); IProject project = null; if (filePath.segmentCount() > 0) { project = root.getProject(filePath.segment(0)); @@ -227,10 +226,6 @@ if (project != null) { javaProject = JavaScriptCore.create(project); } - } finally { - if (xmlModel != null) { - xmlModel.releaseFromRead(); - } } if (javaProject != null) { options = javaProject.getOptions(true);