This is an automated email from the ASF dual-hosted git repository. lukaszlenart pushed a commit to branch action-context-boost in repository https://gitbox.apache.org/repos/asf/struts.git
commit b0197f370e15286675481517f7eb284b43a818b9 Author: JCgH4164838Gh792C124B5 <43964333+jcgh4164838gh792c12...@users.noreply.github.com> AuthorDate: Sun Mar 22 15:37:20 2020 -0400 Fix for test running on JDK 9+. If using Spring 4.x mock objects the MockServletContext has a dependency on javax.activation that causes a java.lang.NoClassDefFoundError. - Test updated to allow the single call that triggers this in JDK9+ to continue as long as the class not found is FileTypeMap (expected). --- .../org/apache/struts2/StrutsSpringPortletMockObjectsTest.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/plugins/junit-portlet/src/test/java/org/apache/struts2/StrutsSpringPortletMockObjectsTest.java b/plugins/junit-portlet/src/test/java/org/apache/struts2/StrutsSpringPortletMockObjectsTest.java index 6ba60f3..e802dc6 100644 --- a/plugins/junit-portlet/src/test/java/org/apache/struts2/StrutsSpringPortletMockObjectsTest.java +++ b/plugins/junit-portlet/src/test/java/org/apache/struts2/StrutsSpringPortletMockObjectsTest.java @@ -1465,7 +1465,15 @@ public class StrutsSpringPortletMockObjectsTest extends StrutsSpringTestCase { assertNull("ServletWrappingPortletContext resource stream for /ThisDoesNotExist not null ?", servletWrappingPortletContext.getResourceAsStream("/ThisDoesNotExist")); assertTrue("ServletWrappingPortletContext major version not >= 2 ?", servletWrappingPortletContext.getMajorVersion() >= 2); assertTrue("ServletWrappingPortletContext minor version not >= 0 ?", servletWrappingPortletContext.getMajorVersion() >= 0); - assertNull("ServletWrappingPortletContext MIME type for / not null ?", servletWrappingPortletContext.getMimeType("/")); + try { + assertNull("ServletWrappingPortletContext MIME type for / not null ?", servletWrappingPortletContext.getMimeType("/")); + } catch (NoClassDefFoundError ncdfe) { + // If compiled with Spring 4.x the MockServletContext has a dependency on javax.activation. This will cause a runtime failure running under JDK 9+ due to removal + // of the javax.activation module. For that reason we will ignore the NoClassDefFoundError failure provided it is for the known FileTypeMap dependency. + if (!ncdfe.getMessage().contains("javax/activation/FileTypeMap")) { + fail("Unexpected exception: " + ncdfe); + } + } assertNotNull("ServletWrappingPortletContext real path for / null ?", servletWrappingPortletContext.getRealPath("/")); assertNull("ServletWrappingPortletContext real path for /ThisDoesNotExist not null ? ?", servletWrappingPortletContext.getRealPath("/ThisDoesNotExist")); assertNull("ServletWrappingPortletContext resource paths for / not null ?", servletWrappingPortletContext.getResourcePaths("/"));