You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2020/12/16 21:11:32 UTC

[commons-vfs] branch master updated: Don't fail on Java 16 when printing a thread snapshot after a test run.

This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-vfs.git


The following commit(s) were added to refs/heads/master by this push:
     new 3ad4bb1  Don't fail on Java 16 when printing a thread snapshot after a test run.
3ad4bb1 is described below

commit 3ad4bb12a3a101995c95c29c0eb5dd6d077bb522
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Wed Dec 16 16:11:27 2020 -0500

    Don't fail on Java 16 when printing a thread snapshot after a test run.
    
    For example, avoid test failures like:
    
    junit.framework.TestSuite@ab3b54(org.apache.commons.vfs2.test.ProviderTestSuite)
    Time elapsed: 4.287 sec  <<< ERROR!
    java.lang.reflect.InaccessibleObjectException: Unable to make field
    private java.lang.Runnable java.lang.Thread.target accessible: module
    java.base does not "opens java.lang" to unnamed module @17b2c1c9
    	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:357)
    	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
    	at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:177)
    	at java.base/java.lang.reflect.Field.setAccessible(Field.java:171)
    	at org.apache.commons.vfs2.test.AbstractTestSuite.dumpThreadSnapshot(AbstractTestSuite.java:246)
    	at org.apache.commons.vfs2.test.AbstractTestSuite.validateThreadSnapshot(AbstractTestSuite.java:218)
    	at org.apache.commons.vfs2.test.AbstractTestSuite.lambda$run$0(AbstractTestSuite.java:132)
    	at junit.framework.TestResult.runProtected(TestResult.java:142)
    	at org.apache.commons.vfs2.test.AbstractTestSuite.run(AbstractTestSuite.java:134)
    	at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:90)
    	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:367)
    	at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:274)
    	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
    	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:161)
    	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:290)
    	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:242)
    	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:121)
---
 .../src/test/java/org/apache/commons/vfs2/test/AbstractTestSuite.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/test/AbstractTestSuite.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/test/AbstractTestSuite.java
index 06890f1..b04c100 100644
--- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/test/AbstractTestSuite.java
+++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/test/AbstractTestSuite.java
@@ -244,8 +244,8 @@ public abstract class AbstractTestSuite extends TestSetup {
         try {
             threadTargetField = Thread.class.getDeclaredField("target");
             threadTargetField.setAccessible(true);
-        } catch (final NoSuchFieldException e) {
-            // ignored
+        } catch (final Exception e) {
+            System.err.println("Test suite cannot show up the a thread snapshot: "+ e);
         }
 
         for (int iter = 0; iter < threadSnapshot.length; iter++) {