[101057] content type incorrect in JSP with XML output - partial fix
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/FileBufferModelManager.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/FileBufferModelManager.java
index c392b3c..7119855 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/FileBufferModelManager.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/FileBufferModelManager.java
@@ -553,11 +553,12 @@
 			IStructuredModel model = null;
 			IModelHandler handler = ModelHandlerRegistry.getInstance().getHandlerForContentTypeId(info.contentTypeID);
 			IModelLoader loader = handler.getModelLoader();
-			model = loader.createModel(document, info.buffer.getLocation().toString());
+			model = loader.createModel(document, info.buffer.getLocation().toString(), handler);
 			try {
 				info.model = model;
 				model.setId(info.buffer.getLocation().toString());
-				model.setModelHandler(handler);
+				// handler now set by loader, for now
+				//model.setModelHandler(handler);
 				if (model instanceof AbstractStructuredModel) {
 					((AbstractStructuredModel) model).setContentTypeIdentifier(info.contentTypeID);
 				}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/AbstractModelLoader.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/AbstractModelLoader.java
index 92dad2c..a9512d2 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/AbstractModelLoader.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/AbstractModelLoader.java
@@ -27,6 +27,7 @@
 import org.eclipse.wst.sse.core.internal.document.IDocumentLoader;
 import org.eclipse.wst.sse.core.internal.encoding.EncodingMemento;
 import org.eclipse.wst.sse.core.internal.encoding.EncodingRule;
+import org.eclipse.wst.sse.core.internal.ltk.modelhandler.IModelHandler;
 import org.eclipse.wst.sse.core.internal.ltk.parser.BlockMarker;
 import org.eclipse.wst.sse.core.internal.ltk.parser.BlockTagParser;
 import org.eclipse.wst.sse.core.internal.ltk.parser.RegionParser;
@@ -107,11 +108,15 @@
 		return model;
 	}
 
-	public IStructuredModel createModel(IStructuredDocument structuredDocument, String baseLocation) {
+	public IStructuredModel createModel(IStructuredDocument structuredDocument, String baseLocation, IModelHandler handler) {
 		documentLoaderInstance = null;
 		IStructuredModel model = newModel();
 		model.setBaseLocation(baseLocation);
-
+		
+		// handler must be set early, incase a re-init is 
+		// required during creation.
+		model.setModelHandler(handler);
+		
 		addFactories(model, getAdapterFactories());
 		// For types with propagating adapters, it's important
 		// that the propagating adapter be in place before the contents
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/IModelLoader.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/IModelLoader.java
index e7766c8..ccbff88 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/IModelLoader.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/IModelLoader.java
@@ -19,6 +19,7 @@
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.wst.sse.core.internal.encoding.EncodingRule;
+import org.eclipse.wst.sse.core.internal.ltk.modelhandler.IModelHandler;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
 
 
@@ -81,6 +82,6 @@
 	 * Create a Structured Model with the given StructuredDocument instance as
 	 * its document (instead of a new document instance as well)
 	 */
-	IStructuredModel createModel(IStructuredDocument document, String baseLocation);
+	IStructuredModel createModel(IStructuredDocument document, String baseLocation, IModelHandler handler);
 
 }