From be766c6e3ade3ca3c836e686f5a054c99bc051e5 Mon Sep 17 00:00:00 2001 From: Alain Magloire Date: Tue, 3 Feb 2004 18:08:58 +0000 Subject: [PATCH] PR 51121, patch from Chris Wiebe to fix and race condition. --- core/org.eclipse.cdt.ui/ChangeLog | 11 +++++++++++ .../internal/ui/text/CSourceViewerConfiguration.java | 10 +++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/core/org.eclipse.cdt.ui/ChangeLog b/core/org.eclipse.cdt.ui/ChangeLog index 0deac77b1e5..f1d2e4d9d15 100644 --- a/core/org.eclipse.cdt.ui/ChangeLog +++ b/core/org.eclipse.cdt.ui/ChangeLog @@ -1,3 +1,14 @@ +2004-02-03 Alain Magloire + + PR 51121 + From Chris Wiebe: + This patch prevents a null pointer exception in + org.eclipse.jface.text.reconciler.AbstractReconciler. Under certain + conditions (like rapidly closing all editors) the call to getDocument() + inside initialProcess() can return null which causes an exception. + + * src/org/eclipse/cdt/internal/ui/text/CSourceViewerConfiguration.java + 2004-02-03 Alain Magloire PR 51115 diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CSourceViewerConfiguration.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CSourceViewerConfiguration.java index 268ee31a347..7fc7b089f30 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CSourceViewerConfiguration.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CSourceViewerConfiguration.java @@ -192,7 +192,15 @@ public class CSourceViewerConfiguration extends SourceViewerConfiguration { */ public IReconciler getReconciler(ISourceViewer sourceViewer) { if (fEditor != null && fEditor.isEditable()) { - Reconciler reconciler= new Reconciler(); + Reconciler reconciler= new Reconciler() { + protected void initialProcess() { + // prevent case where getDocument() returns null + // and causes exception in initialProcess() + IDocument doc = getDocument(); + if (doc != null) + super.initialProcess(); + } + }; reconciler.setDelay(1000); reconciler.setIsIncrementalReconciler(false); reconciler.setReconcilingStrategy(new CReconcilingStrategy(fEditor), IDocument.DEFAULT_CONTENT_TYPE);