Bug 570842 - NPE in DisplayView with Build id: I20210131-1800

Change-Id: I81bc36823f1bb6b79042933c2caac8f866655910
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/display/DisplayView.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/display/DisplayView.java
index 112c84e..0e74cb9 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/display/DisplayView.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/display/DisplayView.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2019 IBM Corporation and others.
+ * Copyright (c) 2000, 2021 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -421,19 +421,20 @@
 	@Override
 	public <T> T getAdapter(Class<T> required) {
 
-		if (ITextOperationTarget.class.equals(required)) {
-			return (T) fSourceViewer.getTextOperationTarget();
-		}
-
-		if (IFindReplaceTarget.class.equals(required)) {
-			return (T) fSourceViewer.getFindReplaceTarget();
-		}
-
-		if (IDataDisplay.class.equals(required)) {
+		if (fDataDisplay != null && IDataDisplay.class.equals(required)) {
 			return (T) fDataDisplay;
 		}
-		if (ITextViewer.class.equals(required)) {
-			return (T) fSourceViewer;
+		if (fSourceViewer != null) {
+			if (ITextOperationTarget.class.equals(required)) {
+				return (T) fSourceViewer.getTextOperationTarget();
+			}
+
+			if (IFindReplaceTarget.class.equals(required)) {
+				return (T) fSourceViewer.getFindReplaceTarget();
+			}
+			if (ITextViewer.class.equals(required)) {
+				return (T) fSourceViewer;
+			}
 		}
 
 		return super.getAdapter(required);