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();