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]

Reply via email to