[
https://issues.apache.org/jira/browse/HBASE-23671?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18060894#comment-18060894
]
Duo Zhang commented on HBASE-23671:
-----------------------------------
Now in the sub module where we removed junit vintage engine, a test timeout
will lead to ClassNotFoundException
{noformat}
java.lang.NoClassDefFoundError: org/junit/runner/notification/RunListener
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
at
java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
at
java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862)
at
java.base/jdk.internal.loader.BuiltinClassLoader$4.run(BuiltinClassLoader.java:773)
at
java.base/jdk.internal.loader.BuiltinClassLoader$4.run(BuiltinClassLoader.java:768)
at
java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
at
java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:781)
at
java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681)
at
java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
at
java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
at
org.apache.hadoop.hbase.HBaseJupiterExtension.printThreadDump(HBaseJupiterExtension.java:181)
at
org.apache.hadoop.hbase.HBaseJupiterExtension.runWithTimeout(HBaseJupiterExtension.java:174)
at
org.apache.hadoop.hbase.HBaseJupiterExtension.interceptTestMethod(HBaseJupiterExtension.java:202)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
Caused by: java.lang.ClassNotFoundException:
org.junit.runner.notification.RunListener
at
java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at
java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
... 17 more
{noformat}
This is because in HBaseJupiterExtension, when printing thread dump, we call
the junit4 utility class TimedOutTestsListener directly, which implements
junit4 RunListener.
Since we will finally migrate all tests to junit5, I prefer we just leave it as
is for now, and remove TimedOutTestsListener when we finish the migration.
Thanks.
> Upgrade to JUnit 5
> ------------------
>
> Key: HBASE-23671
> URL: https://issues.apache.org/jira/browse/HBASE-23671
> Project: HBase
> Issue Type: Task
> Components: Filesystem Integration, test
> Reporter: Nick Dimiduk
> Assignee: Istvan Toth
> Priority: Major
> Labels: pull-request-available
> Fix For: 2.7.0, 3.0.0-beta-2, 2.6.4, 2.5.13
>
>
> JUnit 4 has probably seen it's last release. It's time to
> [migrate|https://junit.org/junit5/docs/current/user-guide/#migrating-from-junit4]
> over to JUnit5.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)