Bug 553461 - NPE in TextConsoleViewer.lineGetStyle
Change-Id: If5bc348ffc127ac097b34e25a6a835e9891c11ee
Signed-off-by: Paul Pazderski <paul-eclipse@ppazderski.de>
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsole.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsole.java
index 8437172..c808df6 100644
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsole.java
+++ b/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsole.java
@@ -321,8 +321,8 @@
}
final IDocument document = partitioner.getDocument();
- document.setDocumentPartitioner(null);
partitioner.disconnect();
+ document.setDocumentPartitioner(null);
super.dispose();
}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsoleViewer.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsoleViewer.java
index 3c35cb4..2e41871 100644
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsoleViewer.java
+++ b/org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsoleViewer.java
@@ -32,6 +32,7 @@
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.IDocumentAdapter;
import org.eclipse.jface.text.IDocumentListener;
+import org.eclipse.jface.text.IDocumentPartitioner;
import org.eclipse.jface.text.IPositionUpdater;
import org.eclipse.jface.text.IRegion;
import org.eclipse.jface.text.JFaceTextUtil;
@@ -376,9 +377,13 @@
int offset = event.lineOffset;
int length = event.lineText.length();
- StyleRange[] partitionerStyles = ((IConsoleDocumentPartitioner) document.getDocumentPartitioner()).getStyleRanges(offset, length);
- if (partitionerStyles != null) {
- Collections.addAll(ranges, partitionerStyles);
+ IDocumentPartitioner partitioner = document.getDocumentPartitioner();
+ if (partitioner instanceof IConsoleDocumentPartitioner) {
+ StyleRange[] partitionerStyles = ((IConsoleDocumentPartitioner) partitioner).getStyleRanges(offset,
+ length);
+ if (partitionerStyles != null) {
+ Collections.addAll(ranges, partitionerStyles);
+ }
}
try {
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsoleViewer.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsoleViewer.java
index 609c9f1..7d97706 100644
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsoleViewer.java
+++ b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsoleViewer.java
@@ -98,6 +98,10 @@
protected void handleVerifyEvent(VerifyEvent e) {
final IConsoleDocumentPartitioner partitioner = (IConsoleDocumentPartitioner) getDocument()
.getDocumentPartitioner();
+ if (partitioner == null) {
+ e.doit = false;
+ return;
+ }
final IConsoleDocumentPartitionerExtension partitionerExt = (IConsoleDocumentPartitionerExtension) partitioner;
final StyledTextContent content = getTextWidget().getContent();