Ma réponse sera un peu sans rapport, mais j'ai eu le même problème en essayant de vider les threads en utilisant jcmd
. Je recevais le même message d'erreur même si j'exécutais jcmd
sous la racine utilisateur.
Vous devez exécuter jcmd <pid> Thread.print
sous le même utilisateur que le processus Java a, sinon vos connexions seront interrompues. Java se fiche que vous soyez root ou pas.
Donc en gros :
sudo -u <java_process_user> jcmd <pid> Thread.print
Travaillez pour l'instant.
Ajout de '-XX:+StartAttachListener'
à l'argument jvm a résolu le problème.
Un problème similaire est abordé ici sur https://code.google.com/p/jmockit/issues/detail?id=136 et http://mail.openjdk.java.net/pipermail/macosx-port-dev/2013 -October/006098.html (qui parle d'une possible régression dans le build jdk7)
Comme @bbarker, j'ai eu la même erreur mais sur JDK 1.8.0_161 en utilisant le sous-système Linux dans Windows 10 ("Bash on Ubuntu on Windows"). La configuration du plug-in Surefire avec l'argument JVM mentionné ci-dessus a également résolu le problème pour moi :
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.21.0</version>
<configuration>
<argLine>-XX:+StartAttachListener</argLine>
</configuration>
</plugin>
L'exécution des tests à partir d'une invite de commande Windows "normale" fonctionne cependant sans ce qui précède.