[ 
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)

Reply via email to