mattcasters opened a new issue, #9227:
URL: https://github.com/apache/hop/issues/9227
### Apache Hop version?
2.21.0-SNAPSHOT
### Java version?
21
### Operating system
Linux
### What happened?
Quitting the Hop GUI prints this on the console and exits with an error:
```
Serious error detected in the Hop GUI: Failed to execute runnable
(java.lang.NullPointerException: Cannot invoke
"org.eclipse.swt.custom.CTabFolder.getItemCount()" because the return value of
"org.apache.hop.ui.hopgui.perspective.explorer.ExplorerPerspective.getTargetTabFolder()"
is null)
org.eclipse.swt.SWTException: Failed to execute runnable
(java.lang.NullPointerException: Cannot invoke
"org.eclipse.swt.custom.CTabFolder.getItemCount()" because the return value of
"org.apache.hop.ui.hopgui.perspective.explorer.ExplorerPerspective.getTargetTabFolder()"
is null)
at org.eclipse.swt.SWT.error(SWT.java:4934)
at
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3643)
at org.eclipse.swt.widgets.Display.release(Display.java:4002)
at org.eclipse.swt.graphics.Device.dispose(Device.java:267)
```
`Display.dispose()` still runs queued `asyncExec` updates after the editor
tabs are gone. A pipeline graph update calls `HopGui.handleFileCapabilities()`,
which asks `ExplorerPerspective.hasNavigationPreviousFile()`. That method calls
`getItemCount()` on a tab folder that is already null. The exception escapes
`display.dispose()`, so `HopGui.main` prints "Serious error detected in the Hop
GUI".
The same navigation methods in the metadata and execution perspectives call
`getItemCount()` on their tab folder without a disposed check.
### Issue Priority
Priority: 3
### Issue Component
Component: Hop Gui
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]