bamaer opened a new issue, #8479:
URL: https://github.com/apache/hop/issues/8479
### Apache Hop version?
2.20.0-SNAPSHOT
### Java version?
21
### Operating system
Linux
### What happened?
Confirmed on Linux and MacOS.
Hop GUI fails to load the Explorer perspective on startup (main)
```
java.lang.IllegalArgumentException: Argument cannot be null
at org.eclipse.swt.widgets.Widget.checkParent(Widget.java:450)
at org.eclipse.swt.widgets.MenuItem.<init>(MenuItem.java:108)
at
org.apache.hop.ui.hopgui.perspective.explorer.ExplorerPerspective.createSingleTabFolder(ExplorerPerspective.java:2164)
at
org.apache.hop.ui.hopgui.perspective.explorer.ExplorerPerspective.initialize(ExplorerPerspective.java:442)
at org.apache.hop.ui.hopgui.HopGui.loadPerspectives(HopGui.java:934)
```
Two changes, each correct in isolation:
3fe5ab0bc0 — Split-Screen View, fixes #5715 (PR #6689), 2026-03-02.
ExplorerPerspective.createSingleTabFolder() appends its Move to Right / Move
Down / Join Left / Join Above / Move to New Window items to the tab context
menu, obtaining it with Menu menu = folder.getMenu();. That worked because
TabCloseHandler attached its menu to the folder with tabFolder.setMenu(menu).
2c56ee9f89 — limit context dialog when sidebar is open, fixes #8443 (PR
#8450), 2026-09-19. To stop Hop Web showing an attached menu before the server
can veto it, TabCloseHandler stopped attaching the menu and now shows it from
MenuDetect instead:
```
- Menu menu = new Menu(tabFolder);
- tabFolder.setMenu(menu);
+ menu = new Menu(tabFolder);
```
SWT Control.getMenu() returns null unless setMenu() was called on that
widget, so the six-month-old consumer in ExplorerPerspective now gets null and
new MenuItem(null, SWT.SEPARATOR) throws. Nothing in #8450's diff touches
ExplorerPerspective, which is why it wasn't caught.
Fix: ExplorerPerspective should take the menu from the TabCloseHandler that
owns it rather than from the folder — keep the handler instance (its return
value is currently discarded), expose the menu, and use it.
Reproduced on upstream/main at 556a69d4b5 with a clean tree, Linux/GTK.
Platform-independent: Widget.checkParent() rejects a null parent on every SWT
backend, so macOS and Windows should behave the same. Hop Web runs the same
code path.
### Issue Priority
Priority: 0
### 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]