Details
Description
When running the unit tests the RAM provider custom tests fails only with Java 8 (build and runtime):
Tests run: 9, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.019 sec <<< FAILURE! - in org.apache.commons.vfs2.provider.ram.test.CustomRamProviderTest testSmallFS(org.apache.commons.vfs2.provider.ram.test.CustomRamProviderTest) Time elapsed: 0.012 sec <<< ERROR! java.lang.IllegalArgumentException: Self-suppression not permitted at org.apache.commons.vfs2.provider.ram.RamFileObject.resize(RamFileObject.java:277) at org.apache.commons.vfs2.provider.ram.RamFileOutputStream.write(RamFileOutputStream.java:68) at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140) at org.apache.commons.vfs2.util.MonitorOutputStream.flush(MonitorOutputStream.java:114) at java.io.FilterOutputStream.close(FilterOutputStream.java:158) at org.apache.commons.vfs2.util.MonitorOutputStream.close(MonitorOutputStream.java:54) at org.apache.commons.vfs2.provider.DefaultFileContent$FileContentOutputStream.close(DefaultFileContent.java:711) at org.apache.commons.vfs2.provider.ram.test.CustomRamProviderTest.testSmallFS(CustomRamProviderTest.java:264)
This seems to be a java8 thing. The test actually expexts an IOException, and in the above stacktrace location it is actually thrown:
org.apache.commons.vfs2.provider.ram.RamFileObject.resize(RamFileObject.java:277)
But the runtime seems to wrap this in an IlelgalArgumentException. Internez say it is related to try with resource (which can collect suppressed exceptions), however we don't use that (at least not in the VFS code). Maybe its a test test-framework or JUnit problem?