[404791] NPE in FileBufferModelManager.detectContentType
diff --git a/tests/org.eclipse.wst.xml.ui.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.wst.xml.ui.tests/META-INF/MANIFEST.MF
index ccbd556..ad64b09 100644
--- a/tests/org.eclipse.wst.xml.ui.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.wst.xml.ui.tests/META-INF/MANIFEST.MF
@@ -21,9 +21,10 @@
org.eclipse.wst.sse.core,
org.eclipse.ui.views,
org.eclipse.core.resources,
+ org.eclipse.core.filesystem;bundle-version="1.3.0",
org.eclipse.core.runtime,
org.eclipse.wst.xml.core,
org.eclipse.wst.validation,
com.ibm.icu
-Eclipse-LazyStart: true
+Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/tests/org.eclipse.wst.xml.ui.tests/src/org/eclipse/wst/xml/ui/tests/TestOpenEditorXML.java b/tests/org.eclipse.wst.xml.ui.tests/src/org/eclipse/wst/xml/ui/tests/TestOpenEditorXML.java
index 047a896..cdd1c74 100644
--- a/tests/org.eclipse.wst.xml.ui.tests/src/org/eclipse/wst/xml/ui/tests/TestOpenEditorXML.java
+++ b/tests/org.eclipse.wst.xml.ui.tests/src/org/eclipse/wst/xml/ui/tests/TestOpenEditorXML.java
@@ -12,14 +12,24 @@
package org.eclipse.wst.xml.ui.tests;
import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URI;
import junit.framework.TestCase;
+import org.eclipse.core.filesystem.EFS;
+import org.eclipse.core.filesystem.IFileStore;
+import org.eclipse.core.filesystem.URIUtil;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IProjectDescription;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
import org.eclipse.jface.text.IDocument;
@@ -28,6 +38,7 @@
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.ide.FileStoreEditorInput;
import org.eclipse.ui.ide.IDE;
import org.eclipse.wst.sse.core.StructuredModelManager;
import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
@@ -145,4 +156,37 @@
((IDocumentExtension4) doc).set(newContent, fFile.getModificationStamp());
assertEquals("Set contents in document with read only regions failed", newContent, doc.get());
}
+
+ public void testOpenOnLocalFileStore() throws Exception {
+ // filebuffers for local files have a location
+ IPath stateLocation = XMLUITestsPlugin.getDefault().getStateLocation();
+ File file = stateLocation.append(FILE_NAME).toFile();
+ FileOutputStream fileOutputStream = new FileOutputStream(file);
+
+ ByteArrayOutputStream buffer = new ByteArrayOutputStream();
+ InputStream contents = fFile.getContents();
+ if (contents != null) {
+ int c;
+ byte bytes[] = new byte[2048];
+ try {
+ while ((c = contents.read(bytes)) >= 0) {
+ buffer.write(bytes, 0, c);
+ }
+ contents.close();
+ }
+ catch (IOException ioe) {
+ // no cleanup can be done
+ }
+ }
+
+ fileOutputStream.write(buffer.toByteArray());
+ URI uri = URIUtil.toURI(new Path(file.getAbsolutePath()));
+ IFileStore store = EFS.getStore(uri);
+ FileStoreEditorInput input = new FileStoreEditorInput(store);
+ IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+ IWorkbenchPage page = workbenchWindow.getActivePage();
+ IEditorPart editor = IDE.openEditor(page, input, "org.eclipse.wst.xml.ui.internal.tabletree.XMLMultiPageEditorPart");
+ page.closeEditor(editor, false);
+ assertTrue("Unable to open structured text editor " + fEditor, (fEditor instanceof XMLMultiPageEditorPart) || (fEditor instanceof StructuredTextEditor));
+ }
}