Repository: dbeaver/dbeaver
Issue: NPE with find/replace window

#### System information: 
- Operating system (distribution) and version Windows 10
- DBeaver version 21.1.0
- Additional extensions: n/a

#### Connection specification:
- Database name and version Oracle 12
- Driver name ojdbc 19
- Do you use tunnels or proxies (SSH, SOCKS, etc)? n/a

#### Describe the problem you're observing:
Sometimes the find/replace dialog, if left open while navigating different objects, throws a NullPointerException. When this happens, pressing the close button is useless. Instead, clicking on the X button successfully closes the dialog.
An NPE is thrown every time you switch tab or click close.

#### Steps to reproduce, if exist:
I am not able to reliably reproduce this issue.

#### Include any warning/errors/backtraces from the logs

Exception when clicking "Close"
```
java.lang.NullPointerException
	at org.jkiss.dbeaver.ui.controls.lightgrid.LightGrid.selectCells(LightGrid.java:4178)
	at org.jkiss.dbeaver.ui.controls.resultset.spreadsheet.SpreadsheetFindReplaceTarget.endSession(SpreadsheetFindReplaceTarget.java:172)
	at org.jkiss.dbeaver.ui.DynamicFindReplaceTarget.endSession(DynamicFindReplaceTarget.java:105)
	at org.eclipse.ui.texteditor.FindReplaceDialog.handleDialogClose(FindReplaceDialog.java:1080)
	at org.eclipse.ui.texteditor.FindReplaceDialog.close(FindReplaceDialog.java:1055)
	at org.eclipse.ui.texteditor.FindReplaceDialog.buttonPressed(FindReplaceDialog.java:837)
	at org.eclipse.jface.dialogs.Dialog.lambda$0(Dialog.java:619)
	at org.eclipse.swt.events.SelectionListener$1.widgetSelected(SelectionListener.java:84)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:252)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4209)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1043)
	...
```

Exception when switching tabs (happens only after the first one was triggered
```
java.lang.NullPointerException
	at org.jkiss.dbeaver.ui.controls.lightgrid.LightGrid.selectCells(LightGrid.java:4178)
	at org.jkiss.dbeaver.ui.controls.resultset.spreadsheet.SpreadsheetFindReplaceTarget.endSession(SpreadsheetFindReplaceTarget.java:172)
	at org.jkiss.dbeaver.ui.DynamicFindReplaceTarget.endSession(DynamicFindReplaceTarget.java:105)
	at org.eclipse.ui.texteditor.FindReplaceDialog.updateTarget(FindReplaceDialog.java:1719)
	at org.eclipse.ui.texteditor.FindReplaceAction$FindReplaceDialogStub.partActivated(FindReplaceAction.java:130)
	at org.eclipse.ui.texteditor.FindReplaceAction$FindReplaceDialogStub.partActivated(FindReplaceAction.java:137)
	at org.eclipse.ui.internal.PartService$6.run(PartService.java:145)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.ui.internal.PartService.partActivated(PartService.java:142)
	at org.eclipse.ui.internal.WorkbenchPage$4.run(WorkbenchPage.java:4901)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.ui.internal.WorkbenchPage.firePartActivated(WorkbenchPage.java:4898)
	at org.eclipse.ui.internal.WorkbenchPage$E4PartListener.partActivated(WorkbenchPage.java:219)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl$2.run(PartServiceImpl.java:249)
	...
```

Changed files:
plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/controls/resultset/spreadsheet/SpreadsheetFindReplaceTarget.java

diff --git a/plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/controls/resultset/spreadsheet/SpreadsheetFindReplaceTarget.java b/plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/controls/resultset/spreadsheet/SpreadsheetFindReplaceTarget.java
index cb8862fc78..7f4a301895 100644
--- a/plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/controls/resultset/spreadsheet/SpreadsheetFindReplaceTarget.java
+++ b/plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/controls/resultset/spreadsheet/SpreadsheetFindReplaceTarget.java
@@ -61,7 +61,7 @@ class SpreadsheetFindReplaceTarget implements IFindReplaceTarget, IFindReplaceTa
     private Color scopeHighlightColor;
     private boolean replaceAll;
     private boolean sessionActive = false;
-    private List<GridPos> originalSelection = null;
+    private List<GridPos> originalSelection = new ArrayList<>();
 
     public static synchronized SpreadsheetFindReplaceTarget getInstance() {
         if (instance == null) {