Bug 326103 - NPE when comparing two projects
To localize some calls to MergeSourceViewer's getSourceViewer() which
is NPE prone, extract method to get Find/Replace target.
Change-Id: I95df7b183bab126c2edacf68bf2b3ed6e03bff93
Signed-off-by: Mykola Nikishov <mn@mn.com.ua>
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
index 04d3d48..74b0459 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
@@ -1292,32 +1292,36 @@
@Override
public int findAndSelect(int widgetOffset, String findString,
boolean searchForward, boolean caseSensitive, boolean wholeWord) {
- return fFocusPart.getSourceViewer().getFindReplaceTarget().findAndSelect(widgetOffset, findString, searchForward, caseSensitive, wholeWord);
+ return getTarget().findAndSelect(widgetOffset, findString, searchForward, caseSensitive, wholeWord);
+ }
+
+ private IFindReplaceTarget getTarget() {
+ return fFocusPart.getSourceViewer().getFindReplaceTarget();
}
@Override
public Point getSelection() {
- return fFocusPart.getSourceViewer().getFindReplaceTarget().getSelection();
+ return getTarget().getSelection();
}
@Override
public String getSelectionText() {
- return fFocusPart.getSourceViewer().getFindReplaceTarget().getSelectionText();
+ return getTarget().getSelectionText();
}
@Override
public boolean isEditable() {
- return fFocusPart.getSourceViewer().getFindReplaceTarget().isEditable();
+ return getTarget().isEditable();
}
@Override
public void replaceSelection(String text) {
- fFocusPart.getSourceViewer().getFindReplaceTarget().replaceSelection(text);
+ getTarget().replaceSelection(text);
}
@Override
public int findAndSelect(int offset, String findString, boolean searchForward, boolean caseSensitive, boolean wholeWord, boolean regExSearch) {
- IFindReplaceTarget findReplaceTarget = fFocusPart.getSourceViewer().getFindReplaceTarget();
+ IFindReplaceTarget findReplaceTarget = getTarget();
if (findReplaceTarget instanceof IFindReplaceTargetExtension3) {
return ((IFindReplaceTargetExtension3) findReplaceTarget).findAndSelect(offset, findString, searchForward, caseSensitive, wholeWord, regExSearch);
}
@@ -1330,7 +1334,7 @@
@Override
public void replaceSelection(String text, boolean regExReplace) {
- IFindReplaceTarget findReplaceTarget = fFocusPart.getSourceViewer().getFindReplaceTarget();
+ IFindReplaceTarget findReplaceTarget = getTarget();
if (findReplaceTarget instanceof IFindReplaceTargetExtension3) {
((IFindReplaceTargetExtension3) findReplaceTarget).replaceSelection(text, regExReplace);
return;
@@ -1343,7 +1347,7 @@
@Override
public boolean validateTargetState() {
- IFindReplaceTarget findReplaceTarget = fFocusPart.getSourceViewer().getFindReplaceTarget();
+ IFindReplaceTarget findReplaceTarget = getTarget();
if (findReplaceTarget instanceof IFindReplaceTargetExtension2) {
return ((IFindReplaceTargetExtension2) findReplaceTarget).validateTargetState();
}
@@ -1352,7 +1356,7 @@
@Override
public void beginSession() {
- IFindReplaceTarget findReplaceTarget = fFocusPart.getSourceViewer().getFindReplaceTarget();
+ IFindReplaceTarget findReplaceTarget = getTarget();
if (findReplaceTarget instanceof IFindReplaceTargetExtension) {
((IFindReplaceTargetExtension) findReplaceTarget).beginSession();
}
@@ -1360,7 +1364,7 @@
@Override
public void endSession() {
- IFindReplaceTarget findReplaceTarget = fFocusPart.getSourceViewer().getFindReplaceTarget();
+ IFindReplaceTarget findReplaceTarget = getTarget();
if (findReplaceTarget instanceof IFindReplaceTargetExtension) {
((IFindReplaceTargetExtension) findReplaceTarget).endSession();
}
@@ -1368,7 +1372,7 @@
@Override
public IRegion getScope() {
- IFindReplaceTarget findReplaceTarget = fFocusPart.getSourceViewer().getFindReplaceTarget();
+ IFindReplaceTarget findReplaceTarget = getTarget();
if (findReplaceTarget instanceof IFindReplaceTargetExtension) {
return ((IFindReplaceTargetExtension) findReplaceTarget).getScope();
}
@@ -1377,7 +1381,7 @@
@Override
public void setScope(IRegion scope) {
- IFindReplaceTarget findReplaceTarget = fFocusPart.getSourceViewer().getFindReplaceTarget();
+ IFindReplaceTarget findReplaceTarget = getTarget();
if (findReplaceTarget instanceof IFindReplaceTargetExtension) {
((IFindReplaceTargetExtension) findReplaceTarget).setScope(scope);
}
@@ -1385,7 +1389,7 @@
@Override
public Point getLineSelection() {
- IFindReplaceTarget findReplaceTarget = fFocusPart.getSourceViewer().getFindReplaceTarget();
+ IFindReplaceTarget findReplaceTarget = getTarget();
if (findReplaceTarget instanceof IFindReplaceTargetExtension) {
return ((IFindReplaceTargetExtension) findReplaceTarget).getLineSelection();
}
@@ -1394,7 +1398,7 @@
@Override
public void setSelection(int offset, int length) {
- IFindReplaceTarget findReplaceTarget = fFocusPart.getSourceViewer().getFindReplaceTarget();
+ IFindReplaceTarget findReplaceTarget = getTarget();
if (findReplaceTarget instanceof IFindReplaceTargetExtension) {
((IFindReplaceTargetExtension) findReplaceTarget).setSelection(offset, length);
}
@@ -1402,7 +1406,7 @@
@Override
public void setScopeHighlightColor(Color color) {
- IFindReplaceTarget findReplaceTarget = fFocusPart.getSourceViewer().getFindReplaceTarget();
+ IFindReplaceTarget findReplaceTarget = getTarget();
if (findReplaceTarget instanceof IFindReplaceTargetExtension) {
((IFindReplaceTargetExtension) findReplaceTarget).setScopeHighlightColor(color);
}
@@ -1410,7 +1414,7 @@
@Override
public void setReplaceAllMode(boolean replaceAll) {
- IFindReplaceTarget findReplaceTarget = fFocusPart.getSourceViewer().getFindReplaceTarget();
+ IFindReplaceTarget findReplaceTarget = getTarget();
if (findReplaceTarget instanceof IFindReplaceTargetExtension) {
((IFindReplaceTargetExtension) findReplaceTarget).setReplaceAllMode(replaceAll);
}