eclipse-ee4j / jakartaee-tck-tools

Other
7 stars 15 forks source link

Improve error message when ts.jte property is missing #119

Closed scottmarlow closed 2 weeks ago

scottmarlow commented 2 weeks ago

Current error message:

[INFO] Running com.sun.ts.tests.ejb30.assembly.appres.warejb.ClientTest [ERROR] Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 7.195 s <<< FAILURE! -- in com.sun.ts.tests.ejb30.assembly.appres.warejb.ClientTest [ERROR] com.sun.ts.tests.ejb30.assembly.appres.warejb.ClientTest.clientPostConstruct -- Time elapsed: 0.023 s <<< ERROR! java.lang.Exception: Test case throws exception: java.lang.NullPointerException: Cannot invoke "String.trim()" because the return value of "java.util.Properties.getProperty(String)" is null at tck.arquillian.protocol.javatest.JavaTestMethodExecutor.invoke(JavaTestMethodExecutor.java:69) at org.jboss.arquillian.container.test.impl.execution.RemoteTestExecuter.execute(RemoteTestExecuter.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:569) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:86) at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:103) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:90) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:134) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:106) at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:62) at org.jboss.arquillian.container.test.impl.execution.ClientTestExecuter.execute(ClientTestExecuter.java:52) at java.base/java.lang.reflect.Method.invoke(Method.java:569) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:86) at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:103) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:90) at org.jboss.arquillian.container.test.impl.client.ContainerEventController.createContext(ContainerEventController.java:128) at org.jboss.arquillian.container.test.impl.client.ContainerEventController.createTestContext(ContainerEventController.java:118) at java.base/java.lang.reflect.Method.invoke(Method.java:569) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:86) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:95) at org.jboss.arquillian.test.impl.TestContextHandler.createTestContext(TestContextHandler.java:116) at java.base/java.lang.reflect.Method.invoke(Method.java:569) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:86) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:95) at org.jboss.arquillian.test.impl.TestContextHandler.createClassContext(TestContextHandler.java:83) at java.base/java.lang.reflect.Method.invoke(Method.java:569) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:86) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:95) at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:69) at java.base/java.lang.reflect.Method.invoke(Method.java:569) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:86) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:95) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:134) at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.test(EventTestRunnerAdaptor.java:139) at org.jboss.arquillian.junit5.ArquillianExtension.interceptInvocation(ArquillianExtension.java:149) at org.jboss.arquillian.junit5.ArquillianExtension.interceptTestMethod(ArquillianExtension.java:89) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)

starksm64 commented 2 weeks ago

The problem here is that this is happening on the javatest base classes on the server and we don't know what is being looked up on the client JavaTestMethodExecutor side. What has to be done is to replace all property lookup in the jakarta.tck:common module with a TestUtil#getProperty utility method that logs what property is missing.

starksm64 commented 2 weeks ago

This is a platform-tck issue: https://github.com/jakartaee/platform-tck/issues/1503