diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/context/InputContext.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/context/InputContext.java index 1db4b1e10c3..03bd2818c26 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/context/InputContext.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/context/InputContext.java @@ -162,6 +162,16 @@ protected void create() { fDocumentProvider = createDocumentProvider(fEditorInput); try { fDocumentProvider.connect(fEditorInput); + // Verify that the document is available after connect() + // This can fail if the file was deleted/moved during editor initialization + // or if there's a race condition with workspace events + IDocument document = fDocumentProvider.getDocument(fEditorInput); + if (document == null) { + throw new CoreException(new org.eclipse.core.runtime.Status( + org.eclipse.core.runtime.IStatus.ERROR, + "org.eclipse.pde.ui", //$NON-NLS-1$ + "Document not available after connecting to document provider for input: " + fEditorInput.getName())); //$NON-NLS-1$ + } fModel = createModel(fEditorInput); if (fModel instanceof IModelChangeProvider) { fModelListener = e -> {