Skip to content

hardening on widget disable, fixes #7512#7515

Open
hansva wants to merge 1 commit into
apache:mainfrom
hansva:7512
Open

hardening on widget disable, fixes #7512#7515
hansva wants to merge 1 commit into
apache:mainfrom
hansva:7512

Conversation

@hansva

@hansva hansva commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Please add a meaningful description for your change here


Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

  • Run mvn clean install apache-rat:check to make sure basic checks pass. A more thorough check will be performed on your pull request automatically.
  • If you have a group of commits related to the same change, please squash your commits into one and force push your branch using git rebase -i.
  • Mention the appropriate issue in your description (for example: addresses #123), if applicable.

To make clear that you license your contribution under the Apache License Version 2.0, January 2004
you have to acknowledge this by using the following check-box.

@mattcasters

Copy link
Copy Markdown
Contributor

While building with mvn -T6 clean install I got a LOT of errors in the log

...
2026/07/13 18:10:41 - GUI -  at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute (ThrowableCollector.java:74)
2026/07/13 18:10:41 - GUI -  at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$2 (NodeTestTask.java:176)
2026/07/13 18:10:41 - GUI -  at org.junit.jupiter.engine.descriptor.DynamicTestTestDescriptor.execute (DynamicTestTestDescriptor.java:37)
2026/07/13 18:10:41 - GUI -  at org.junit.jupiter.engine.descriptor.DynamicTestTestDescriptor.execute (DynamicTestTestDescriptor.java:67)
2026/07/13 18:10:41 - GUI -  at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke (InvocationInterceptorChain.java:39)
2026/07/13 18:10:41 - GUI -  at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke (InvocationInterceptorChain.java:47)
2026/07/13 18:10:41 - GUI -  at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed (InvocationInterceptorChain.java:66)
2026/07/13 18:10:41 - GUI -  at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed (InvocationInterceptorChain.java:99)
2026/07/13 18:10:41 - GUI -  at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptorCall.lambda$ofVoid$0 (InvocationInterceptorChain.java:80)
2026/07/13 18:10:41 - GUI -  at org.junit.jupiter.engine.descriptor.DynamicTestTestDescriptor.lambda$execute$0 (DynamicTestTestDescriptor.java:69)
2026/07/13 18:10:41 - GUI -  at org.junit.jupiter.api.extension.InvocationInterceptor.interceptDynamicTest (InvocationInterceptor.java:189)
2026/07/13 18:10:41 - GUI -  at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed (InvocationInterceptorChain.java:124)
2026/07/13 18:10:41 - GUI -  at org.junit.jupiter.engine.descriptor.DynamicTestTestDescriptor.lambda$toInvocation$0 (DynamicTestTestDescriptor.java:76)
2026/07/13 18:10:41 - GUI -  at org.apache.hop.ui.testing.DisabledGuiWidgetsTestBase.lambda$casesFor$0 (DisabledGuiWidgetsTestBase.java:144)
2026/07/13 18:10:41 - GUI -  at org.apache.hop.ui.testing.DisabledGuiWidgetsTestBase.disablingIsHarmless (DisabledGuiWidgetsTestBase.java:163)
2026/07/13 18:10:41 - GUI -  at org.apache.hop.ui.testing.DisabledGuiWidgetsTestBase.buildToolbar (DisabledGuiWidgetsTestBase.java:327)
2026/07/13 18:10:41 - GUI -  at org.apache.hop.ui.core.gui.GuiToolbarWidgets.createToolbarWidgets (GuiToolbarWidgets.java:119)
2026/07/13 18:10:41 - GUI -  at org.apache.hop.ui.core.gui.GuiToolbarWidgets.lookupToolbarItemFilter (GuiToolbarWidgets.java:161)
2026/07/13 18:10:41 - GUI -  at org.apache.hop.ui.core.gui.BaseGuiWidgets.findGuiPluginInstance (BaseGuiWidgets.java:96)
2026/07/13 18:10:41 - GUI -  at java.lang.ClassLoader.loadClass (ClassLoader.java:526)
2026/07/13 18:10:41 - GUI -  at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass (ClassLoaders.java:188)
2026/07/13 18:10:41 - GUI -  at jdk.internal.loader.BuiltinClassLoader.loadClass (BuiltinClassLoader.java:639)
2026/07/13 18:10:41 - GUI -  at jdk.internal.loader.BuiltinClassLoader.loadClassOrNull (BuiltinClassLoader.java:651)
2026/07/13 18:10:41 - GUI -  at java.lang.ClassLoader.getClassLoadingLock (ClassLoader.java:681)
2026/07/13 18:10:41 - GUI -  at java.util.concurrent.ConcurrentHashMap.putIfAbsent (ConcurrentHashMap.java:1541)
2026/07/13 18:10:41 - GUI -  at java.util.concurrent.ConcurrentHashMap.putVal (ConcurrentHashMap.java:1011)
2026/07/13 18:10:41 - GUI - 
2026/07/13 18:10:41 - GUI -     at org.apache.hop.ui.core.gui.BaseGuiWidgets.findGuiPluginInstance(BaseGuiWidgets.java:106)
2026/07/13 18:10:41 - GUI -     at org.apache.hop.ui.core.gui.GuiToolbarWidgets.lookupToolbarItemFilter(GuiToolbarWidgets.java:161)
2026/07/13 18:10:41 - GUI -     at org.apache.hop.ui.core.gui.GuiToolbarWidgets.createToolbarWidgets(GuiToolbarWidgets.java:119)
2026/07/13 18:10:41 - GUI -     at org.apache.hop.ui.testing.DisabledGuiWidgetsTestBase.buildToolbar(DisabledGuiWidgetsTestBase.java:327)
2026/07/13 18:10:41 - GUI -     at org.apache.hop.ui.testing.DisabledGuiWidgetsTestBase.disablingIsHarmless(DisabledGuiWidgetsTestBase.java:163)
2026/07/13 18:10:41 - GUI -     at org.apache.hop.ui.testing.DisabledGuiWidgetsTestBase.lambda$casesFor$0(DisabledGuiWidgetsTestBase.java:144)
2026/07/13 18:10:41 - GUI -     at org.junit.jupiter.engine.descriptor.DynamicTestTestDescriptor.lambda$toInvocation$0(DynamicTestTestDescriptor.java:76)
2026/07/13 18:10:41 - GUI -     at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:124)
2026/07/13 18:10:41 - GUI -     at org.junit.jupiter.api.extension.InvocationInterceptor.interceptDynamicTest(InvocationInterceptor.java:189)
2026/07/13 18:10:41 - GUI -     at org.junit.jupiter.engine.descriptor.DynamicTestTestDescriptor.lambda$execute$0(DynamicTestTestDescriptor.java:69)
2026/07/13 18:10:41 - GUI -     at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptorCall.lambda$ofVoid$0(InvocationInterceptorChain.java:80)
2026/07/13 18:10:41 - GUI -     at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:99)
2026/07/13 18:10:41 - GUI -     at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:66)
2026/07/13 18:10:41 - GUI -     at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:47)
2026/07/13 18:10:41 - GUI -     at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:39)
2026/07/13 18:10:41 - GUI -     at org.junit.jupiter.engine.descriptor.DynamicTestTestDescriptor.execute(DynamicTestTestDescriptor.java:67)
2026/07/13 18:10:41 - GUI -     at org.junit.jupiter.engine.descriptor.DynamicTestTestDescriptor.execute(DynamicTestTestDescriptor.java:37)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$2(NodeTestTask.java:176)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$1(NodeTestTask.java:166)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:138)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$0(NodeTestTask.java:164)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:163)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:116)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:36)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.NodeTestTask$DefaultDynamicTestExecutor.execute(NodeTestTask.java:268)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.NodeTestTask$DefaultDynamicTestExecutor.execute(NodeTestTask.java:246)
2026/07/13 18:10:41 - GUI -     at java.base/java.util.Optional.ifPresent(Optional.java:178)
2026/07/13 18:10:41 - GUI -     at org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.lambda$invokeTestMethod$0(TestFactoryTestDescriptor.java:125)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
2026/07/13 18:10:41 - GUI -     at org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.invokeTestMethod(TestFactoryTestDescriptor.java:112)
2026/07/13 18:10:41 - GUI -     at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:157)
2026/07/13 18:10:41 - GUI -     at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:70)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$2(NodeTestTask.java:176)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$1(NodeTestTask.java:166)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:138)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$0(NodeTestTask.java:164)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:163)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:116)
2026/07/13 18:10:41 - GUI -     at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:42)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$2(NodeTestTask.java:180)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$1(NodeTestTask.java:166)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:138)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$0(NodeTestTask.java:164)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:163)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:116)
2026/07/13 18:10:41 - GUI -     at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:42)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$2(NodeTestTask.java:180)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$1(NodeTestTask.java:166)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:138)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$0(NodeTestTask.java:164)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:163)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:116)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:36)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:52)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:58)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.launcher.core.EngineExecutionOrchestrator.executeEngine(EngineExecutionOrchestrator.java:246)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.launcher.core.EngineExecutionOrchestrator.failOrExecuteEngine(EngineExecutionOrchestrator.java:218)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:179)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:66)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:157)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:65)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:125)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:58)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.launcher.core.InterceptingLauncher.lambda$execute$2(InterceptingLauncher.java:57)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.launcher.core.InterceptingLauncher.execute(InterceptingLauncher.java:56)
2026/07/13 18:10:41 - GUI -     at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:58)
2026/07/13 18:10:41 - GUI -     at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
2026/07/13 18:10:41 - GUI -     at java.base/java.lang.reflect.Method.invoke(Method.java:580)
2026/07/13 18:10:41 - GUI -     at org.apache.maven.surefire.api.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:125)
2026/07/13 18:10:41 - GUI -     at org.apache.maven.surefire.junitplatform.LauncherAdapter.executeWithCancellationToken(LauncherAdapter.java:68)
2026/07/13 18:10:41 - GUI -     at org.apache.maven.surefire.junitplatform.LauncherAdapter.execute(LauncherAdapter.java:54)
2026/07/13 18:10:41 - GUI -     at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:203)
2026/07/13 18:10:41 - GUI -     at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:168)
2026/07/13 18:10:41 - GUI -     at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:136)
2026/07/13 18:10:41 - GUI -     at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
2026/07/13 18:10:41 - GUI -     at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
2026/07/13 18:10:41 - GUI -     at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)
2026/07/13 18:10:41 - GUI -     at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)
2026/07/13 18:10:41 - GUI - Caused by: java.lang.NullPointerException
2026/07/13 18:10:41 - GUI -     at java.base/java.util.concurrent.ConcurrentHashMap.putVal(ConcurrentHashMap.java:1011)
2026/07/13 18:10:41 - GUI -     at java.base/java.util.concurrent.ConcurrentHashMap.putIfAbsent(ConcurrentHashMap.java:1541)
2026/07/13 18:10:41 - GUI -     at java.base/java.lang.ClassLoader.getClassLoadingLock(ClassLoader.java:681)
2026/07/13 18:10:41 - GUI -     at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:651)
2026/07/13 18:10:41 - GUI -     at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
2026/07/13 18:10:41 - GUI -     at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
2026/07/13 18:10:41 - GUI -     at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
2026/07/13 18:10:41 - GUI -     at org.apache.hop.ui.core.gui.BaseGuiWidgets.findGuiPluginInstance(BaseGuiWidgets.java:96)
2026/07/13 18:10:41 - GUI -     ... 90 more
...

@hansva

hansva commented Jul 13, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for testing I'll take a look

@mattcasters

Copy link
Copy Markdown
Contributor

I tracked it to the rcp/ module. It also shows various dialogs on my laptop when running the tests :-)

@hansva

hansva commented Jul 13, 2026

Copy link
Copy Markdown
Contributor Author

Yes showing the dialogs is what it is supposed to do, we have some actual UI tests now, still very basic though

@mattcasters

Copy link
Copy Markdown
Contributor

Hey it's pretty cool :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants