eclipse-ee4j / jakartaee-tck-tools Goto Github PK
View Code? Open in Web Editor NEWLicense: Other
License: Other
Upgrade com.sun.tdk.signaturetest.SignatureTest in sigtest-maven-plugin to be executed as a maven goal.
Context:
The signature tests in platform-tck and several standalone TCKs that were separated out, uses a legacy signaturetest framework majorly to invoke the sigtest-maven-plugin with specific arguments.
For eg: The runSignatureTest method is used to invoke the com.sun.tdk.signaturetest.SignatureTest with the right arguments to run the Signature Tests.
The org/netbeans/apitest/SigtestCheck.java can be run using maven goal "check" specified like here for CDI TCK.
Expected:
Can we also improve the com.sun.tdk.signaturetest.SignatureTest so as to execute the same via maven goal and parameters specified. This can avoid the complexities of the legacy signaturetest module in platform-tck and dependency on it.
I locally tried updating https://github.com/jakartaee/platform-tck/blob/10.0.x/src/com/sun/ts/tests/signaturetest/SigTestDriver.java#L64 from:
private static final String[] excludeJdkClasses = {
"java.util.Map",
"java.lang.Object",
"java.io.ByteArrayInputStream",
"java.io.InputStream",
"java.lang.Deprecated",
"java.io.Writer",
"java.io.OutputStream",
"java.util.List",
"java.util.Collection",
"java.util.concurrent.ExecutorService",
"java.util.concurrent.Future",
"java.util.HashSet",
"java.util.LinkedHashSet",
"java.util.SequencedCollection",
"java.util.SequencedSet",
"java.lang.instrument.IllegalClassFormatException",
"javax.transaction.xa.XAException",
"java.lang.AutoCloseable",
"java.lang.annotation.Repeatable",
"java.lang.InterruptedException",
"java.lang.CloneNotSupportedException",
"java.lang.Throwable",
"java.lang.Thread",
"java.lang.Enum"
};
To:
private static final String[] excludeJdkClasses = {
"java",
"java.",
"javax"
"javax."
};
But the above change didn't work as expected as we got signature test check failures.
I think that https://github.com/jakartaredhat/netbeans-apitest/blob/master/src/main/java/com/sun/tdk/signaturetest/core/PackageGroup.java#L35 should allow one of the ^ specified package names to be matched instead of included explicit JDK class names to ignore.
public static Release find(int version) {
if (version > 21) {
return null;
}
char ch = (char) (version < 10 ? '0' + version : 'A' + (version - 10));
return RELEASES.get(ch);
}
^ will be a problem on newer than Java 21 releases (e.g. Java 23).
The location of where the fully processed appclient ear is extracted is hard-coded to target/appclient. This should be a setting in the appclient protocol configuration.
As discussed on the platform-dev list, we should create a fork of the https://github.com/jtulach/netbeans-apitest to be able to evolve this for the Jakarta TCK signature test needs going forward. A fork was already created to verify a new build could be done here:
https://github.com/jakartaredhat/netbeans-apitest
The EMO is fine with the use of the GPL license since this is a standalone tool that does not link with any other Jakarta project.
The PMC has also been asked for approval. Once that is given we should be able to move forward.
The sigtest-maven-plugin tests expect that they can install a security manager to capture the exit code. Need to look into how to change this as it fails under SE 21 with exceptions like:
[ERROR] org.netbeans.apitest.StrictCheckSigtestTest.testOverrideFinalize -- Time elapsed: 0.010 s <<< ERROR!
java.lang.UnsupportedOperationException: The Security Manager is deprecated and will be removed in a future release
at java.base/java.lang.System.setSecurityManager(System.java:429)
at org.netbeans.apitest.ExecuteUtils.execute(ExecuteUtils.java:66)
at org.netbeans.apitest.StrictCheckSigtestTest.checkAPIsEqual(StrictCheckSigtestTest.java:62)
at org.netbeans.apitest.CheckNewSigtestTest.testOverrideFinalize(CheckNewSigtestTest.java:265)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at junit.framework.TestCase.runTest(TestCase.java:177)
at org.netbeans.junit.NbTestCase.access$200(NbTestCase.java:79)
at org.netbeans.junit.NbTestCase$2.doSomething(NbTestCase.java:484)
at org.netbeans.junit.NbTestCase$1Guard.run(NbTestCase.java:405)
at org.netbeans.junit.NbTestCase.runBare(NbTestCase.java:505)
at junit.framework.TestResult$1.protect(TestResult.java:122)
at junit.framework.TestResult.runProtected(TestResult.java:142)
at junit.framework.TestResult.run(TestResult.java:125)
at junit.framework.TestCase.run(TestCase.java:130)
at org.netbeans.junit.NbTestCase.run(NbTestCase.java:294)
at junit.framework.TestSuite.runTest(TestSuite.java:241)
at junit.framework.TestSuite.run(TestSuite.java:236)
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:90)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:316)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:240)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:214)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:155)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)
A signature like below generates the assertion error:
meth public final int compareTo({java.lang.Enum%0})
java.lang.Enum.lambda$describeConstable$0(java.lang.constant.ClassDesc) skipped
java.lang.AssertionError: method public final int java.lang.Enum.compareTo({java.lang.Enum%0})
at com.sun.tdk.signaturetest.core.Erasurator.processMember(Erasurator.java:250)
at com.sun.tdk.signaturetest.core.Erasurator.processMember(Erasurator.java:203)
at com.sun.tdk.signaturetest.core.MethodOverridingChecker.addMethod(MemberCollectionBuilder.java:760)
at com.sun.tdk.signaturetest.core.MethodOverridingChecker.addMethods(MemberCollectionBuilder.java:775)
at com.sun.tdk.signaturetest.core.ClassHierarchyImpl.isMethodOverriden(ClassHierarchyImpl.java:174)
at com.sun.tdk.signaturetest.SignatureTest.transformMember(SignatureTest.java:1291)
at com.sun.tdk.signaturetest.SignatureTest.trackMember(SignatureTest.java:1343)
at com.sun.tdk.signaturetest.SignatureTest.verifyClass(SignatureTest.java:1204)
at com.sun.tdk.signaturetest.SignatureTest.verifyClass(SignatureTest.java:1059)
at com.sun.tdk.signaturetest.SignatureTest.check(SignatureTest.java:822)
at com.sun.tdk.signaturetest.SignatureTest.run(SignatureTest.java:293)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at ee.jakarta.tck.ws.rs.signaturetest.SigTestDriver.runSignatureTest(SigTestDriver.java:179)
at ee.jakarta.tck.ws.rs.signaturetest.SignatureTestDriver.executeSigTest(SignatureTestDriver.java:232)
at ee.jakarta.tck.ws.rs.signaturetest.jaxrs.JAXRSSigTestIT.signatureTest(JAXRSSigTestIT.java:368)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:728)
at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:218)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:214)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:139)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:69)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:198)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:169)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:93)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:58)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:141)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:57)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:103)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:85)
at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47)
at org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:56)
at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:184)
at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:148)
at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:122)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)
The full enum signature looks like:
CLSS public abstract java.lang.Enum<%0 extends java.lang.Enum<{java.lang.Enum%0}>>
cons protected init(java.lang.String,int)
innr public final static EnumDesc
intf java.io.Serializable
intf java.lang.Comparable<{java.lang.Enum%0}>
intf java.lang.constant.Constable
meth protected final java.lang.Object clone() throws java.lang.CloneNotSupportedException
meth protected final void finalize()
meth public final boolean equals(java.lang.Object)
meth public final int compareTo({java.lang.Enum%0})
meth public final int hashCode()
meth public final int ordinal()
meth public final java.lang.Class<{java.lang.Enum%0}> getDeclaringClass()
meth public final java.lang.String name()
meth public final java.util.Optional<java.lang.Enum$EnumDesc<{java.lang.Enum%0}>> describeConstable()
meth public java.lang.String toString()
meth public static <%0 extends java.lang.Enum<{%%0}>> {%%0} valueOf(java.lang.Class<{%%0}>,java.lang.String)
supr java.lang.Object
hfds name,ordinal
We occasionally see following java.util.ConcurrentModificationException failure:
[javatest.batch] 01-17-2024 18:53:49: SVR: JImage RC = 0
[javatest.batch] 01-17-2024 18:53:49: SVR: optionalPkgToIgnore = jakarta.xml.bind
[javatest.batch] 01-17-2024 18:53:49: SVR: ********** BEGIN PACKAGE LEVEL SIGNATURE VALIDATION **********
[javatest.batch]
[javatest.batch]
[javatest.batch] 01-17-2024 18:53:49: SVR: ********** BEGIN VALIDATE PACKAGE 'jakarta.resource.spi.security' **********
[javatest.batch]
[javatest.batch] 01-17-2024 18:53:49: SVR: ********** VALIDATE IN STATIC MODE - TO CHECK CONSANT VALUES ****
[javatest.batch] 01-17-2024 18:53:49: SVR: Static mode supports checks of static constants values
[javatest.batch] 01-17-2024 18:53:49: SVR-ERROR: Unexpected exception null
[javatest.batch] 01-17-2024 18:53:49: SVR-ERROR: Test case throws exception: signatureTest failed with an unexpected exception
[javatest.batch] 01-17-2024 18:53:49: SVR-ERROR: Exception at:
[javatest.batch] 01-17-2024 18:53:49: SVR-ERROR: java.lang.reflect.InvocationTargetException
[javatest.batch] at jdk.internal.reflect.GeneratedMethodAccessor21.invoke(Unknown Source)
[javatest.batch] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[javatest.batch] at java.base/java.lang.reflect.Method.invoke(Method.java:568)
[javatest.batch] at deployment.JavaEESigTest_servlet_vehicle.ear.JavaEESigTest_servlet_vehicle_web.war//com.sun.ts.tests.signaturetest.SigTestDriver.runSignatureTest(SigTestDriver.java:187)
[javatest.batch] at deployment.JavaEESigTest_servlet_vehicle.ear.JavaEESigTest_servlet_vehicle_web.war//com.sun.ts.tests.signaturetest.SignatureTestDriver.executeSigTest(SignatureTestDriver.java:194)
[javatest.batch] at deployment.JavaEESigTest_servlet_vehicle.ear.JavaEESigTest_servlet_vehicle_web.war//com.sun.ts.tests.signaturetest.SigTestEE.signatureTest(SigTestEE.java:277)
[javatest.batch] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[javatest.batch] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
[javatest.batch] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[javatest.batch] at java.base/java.lang.reflect.Method.invoke(Method.java:568)
[javatest.batch] at deployment.JavaEESigTest_servlet_vehicle.ear.JavaEESigTest_servlet_vehicle_web.war//com.sun.ts.lib.harness.EETest.run(EETest.java:596)
[javatest.batch] at deployment.JavaEESigTest_servlet_vehicle.ear.JavaEESigTest_servlet_vehicle_web.war//com.sun.ts.lib.harness.ServiceEETest.run(ServiceEETest.java:115)
[javatest.batch] at deployment.JavaEESigTest_servlet_vehicle.ear.JavaEESigTest_servlet_vehicle_web.war//com.sun.ts.tests.common.vehicle.servlet.ServletVehicle.runTest(ServletVehicle.java:123)
[javatest.batch] at deployment.JavaEESigTest_servlet_vehicle.ear.JavaEESigTest_servlet_vehicle_web.war//com.sun.ts.tests.common.vehicle.servlet.ServletVehicle.doGet(ServletVehicle.java:95)
[javatest.batch] at deployment.JavaEESigTest_servlet_vehicle.ear.JavaEESigTest_servlet_vehicle_web.war//com.sun.ts.tests.common.vehicle.servlet.ServletVehicle.doPost(ServletVehicle.java:115)
[javatest.batch] at [email protected]//jakarta.servlet.http.HttpServlet.service(HttpServlet.java:547)
[javatest.batch] at [email protected]//jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)
[javatest.batch] at [email protected]//io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
[javatest.batch] at [email protected]//io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
[javatest.batch] at [email protected]//io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
[javatest.batch] at [email protected]//io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
[javatest.batch] at org.wildfly.security.elytron-web.undertow-server@4.0.0.Final-redhat-00001//org.wildfly.elytron.web.undertow.server.ElytronRunAsHandler.lambda$handleRequest$1(ElytronRunAsHandler.java:68)
[javatest.batch] at [email protected]//org.wildfly.security.auth.server.FlexibleIdentityAssociation.runAsFunctionEx(FlexibleIdentityAssociation.java:103)
[javatest.batch] at [email protected]//org.wildfly.security.auth.server.Scoped.runAsFunctionEx(Scoped.java:161)
[javatest.batch] at [email protected]//org.wildfly.security.auth.server.Scoped.runAs(Scoped.java:73)
[javatest.batch] at org.wildfly.security.elytron-web.undertow-server@4.0.0.Final-redhat-00001//org.wildfly.elytron.web.undertow.server.ElytronRunAsHandler.handleRequest(ElytronRunAsHandler.java:67)
[javatest.batch] at [email protected]//io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
[javatest.batch] at [email protected]//io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
[javatest.batch] at [email protected]//io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
[javatest.batch] at [email protected]//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
[javatest.batch] at [email protected]//io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
[javatest.batch] at [email protected]//io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
[javatest.batch] at [email protected]//io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
[javatest.batch] at org.wildfly.security.elytron-web.undertow-server-servlet@4.0.0.Final-redhat-00001//org.wildfly.elytron.web.undertow.server.servlet.CleanUpHandler.handleRequest(CleanUpHandler.java:38)
[javatest.batch] at [email protected]//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
[javatest.batch] at [email protected]//org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
[javatest.batch] at [email protected]//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
[javatest.batch] at [email protected]//org.wildfly.extension.undertow.deployment.GlobalRequestControllerHandler.handleRequest(GlobalRequestControllerHandler.java:68)
[javatest.batch] at [email protected]//io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
[javatest.batch] at [email protected]//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
[javatest.batch] at [email protected]//io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:276)
[javatest.batch] at [email protected]//io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
[javatest.batch] at [email protected]//io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:132)
[javatest.batch] at [email protected]//io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
[javatest.batch] at [email protected]//io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
[javatest.batch] at [email protected]//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1430)
[javatest.batch] at [email protected]//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1430)
[javatest.batch] at [email protected]//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1430)
[javatest.batch] at [email protected]//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1430)
[javatest.batch] at [email protected]//io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:256)
[javatest.batch] at [email protected]//io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:101)
[javatest.batch] at [email protected]//io.undertow.server.Connectors.executeRootHandler(Connectors.java:393)
[javatest.batch] at [email protected]//io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:859)
[javatest.batch] at [email protected]//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
[javatest.batch] at [email protected]//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1990)
[javatest.batch] at [email protected]//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
[javatest.batch] at [email protected]//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
[javatest.batch] at [email protected]//org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
[javatest.batch] at java.base/java.lang.Thread.run(Thread.java:833)
[javatest.batch] Caused by: java.util.ConcurrentModificationException
[javatest.batch] at java.base/java.util.ArrayList$Itr.checkForComodification(ArrayList.java:1013)
[javatest.batch] at java.base/java.util.ArrayList$Itr.next(ArrayList.java:967)
[javatest.batch] at deployment.JavaEESigTest_servlet_vehicle.ear.JavaEESigTest_servlet_vehicle_web.war//com.sun.tdk.signaturetest.core.PackageGroup.checkName(PackageGroup.java:101)
[javatest.batch] at deployment.JavaEESigTest_servlet_vehicle.ear.JavaEESigTest_servlet_vehicle_web.war//com.sun.tdk.signaturetest.SignatureTest$DefaultJDKExclude.isJdkClass(SignatureTest.java:1575)
[javatest.batch] at deployment.JavaEESigTest_servlet_vehicle.ear.JavaEESigTest_servlet_vehicle_web.war//com.sun.tdk.signaturetest.core.ClassCorrector.isInvisibleClass(ClassCorrector.java:721)
[javatest.batch] at deployment.JavaEESigTest_servlet_vehicle.ear.JavaEESigTest_servlet_vehicle_web.war//com.sun.tdk.signaturetest.core.ClassCorrector.checkActualParameters(ClassCorrector.java:386)
[javatest.batch] at deployment.JavaEESigTest_servlet_vehicle.ear.JavaEESigTest_servlet_vehicle_web.war//com.sun.tdk.signaturetest.core.ClassCorrector.checkMethodParameters(ClassCorrector.java:356)
[javatest.batch] at deployment.JavaEESigTest_servlet_vehicle.ear.JavaEESigTest_servlet_vehicle_web.war//com.sun.tdk.signaturetest.core.ClassCorrector.fixMethods(ClassCorrector.java:301)
[javatest.batch] at deployment.JavaEESigTest_servlet_vehicle.ear.JavaEESigTest_servlet_vehicle_web.war//com.sun.tdk.signaturetest.core.ClassCorrector.transform(ClassCorrector.java:118)
[javatest.batch] at deployment.JavaEESigTest_servlet_vehicle.ear.JavaEESigTest_servlet_vehicle_web.war//com.sun.tdk.signaturetest.core.MemberCollectionBuilder.createMembers(MemberCollectionBuilder.java:144)
[javatest.batch] at deployment.JavaEESigTest_servlet_vehicle.ear.JavaEESigTest_servlet_vehicle_web.war//com.sun.tdk.signaturetest.SignatureTest.verifyClass(SignatureTest.java:1032)
[javatest.batch] at deployment.JavaEESigTest_servlet_vehicle.ear.JavaEESigTest_servlet_vehicle_web.war//com.sun.tdk.signaturetest.SignatureTest.check(SignatureTest.java:821)
[javatest.batch] at deployment.JavaEESigTest_servlet_vehicle.ear.JavaEESigTest_servlet_vehicle_web.war//com.sun.tdk.signaturetest.SignatureTest.run(SignatureTest.java:293)
[javatest.batch] ... 59 more
[javatest.batch]
[javatest.batch] 01-17-2024 18:53:49: SVR: $$$ SigTestEE.cleanup() called
[javatest.batch] 01-17-2024 18:53:49: SVR: cleanup
[javatest.batch] 01-17-2024 18:53:49: SVR: $$$ SigTestEE.cleanup() returning
[javatest.batch] 01-17-2024 18:53:49: SVR: Test running in servlet vehicle failed
[javatest.batch] 01-17-2024 18:53:49: SVR: ********** Status Report 'jakarta.resource.spi.security' **********
Add tests + support for recording signatures on Java 17
The OpenJDK sigtest tool is archived with no explanation as to why.
https://openjdk.org/jeps/457 will Provide a standard API for parsing, generating, and transforming Java class files.
In the future, could jeps/457 be used in place of jakarta.tck:sigtest-maven-plugin
? This open issue is for answering that.
We might also see an answer to https://mail.openjdk.org/pipermail/sigtest-dev/2024-February/thread.html at some point.
If -IgnoreJDKClasses
is specified, JDK classes will be ignored when testing/checking signatures.
With this change, we will also treat the following options the same as -IgnoreJDKClasses
:
Migration note: Change from -IgnoreJDKClass
(or -IgnoreJDKClass className
sequences) to only specify -IgnoreJDKClasses
.
This class has several constants that are not being updated by the build as expected by this class. Right now the 2.3 release indicates it is version 2.2.
public class Version {
private static I18NResourceBundle i18n =
I18NResourceBundle.getBundleForClass(Version.class);
// the following constatnts should be filled in by the build script
public static final String Number="2.2";
public static final String build_time="";
public static final String build_os="";
public static final String build_user="";
...
There is not direct support for filtering java source files in maven, so one would have to use something like the templating-maven-plugin and move the com.sun.tdk.signaturetest.Version into a src/main/java-templates directory based on the example configuration.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.