summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorJan-Marek Glogowski <glogow@fbihome.de>2018-12-06 13:26:48 +0000
committerJan-Marek Glogowski <glogow@fbihome.de>2018-12-11 22:08:42 +0100
commitc9de94c65b8ab8bf6073400eda5ba848ba22af47 (patch)
treeb0d20bf49bdf182b752415c73219adaa4522bf0f /configure.ac
parent597cffcc65f6b1a16c41b37e17b87a70a820a209 (diff)
tdf#121925 test for URLClassPath.ClassPathURLCheck
Adds a configure test to check for the enabled ClassPathURLCheck. Should be reverted, if our jars pass it. Change-Id: I040b41f329ccae21b92118fd58270682e50e95c1 Reviewed-on: https://gerrit.libreoffice.org/64709 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com> (cherry picked from commit 905c107cde4a0a7059b1e11b5f23a0a59188cb0c) Reviewed-on: https://gerrit.libreoffice.org/64968 Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac52
1 files changed, 52 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index d553580772c0..1a5323c1b10b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -7304,6 +7304,58 @@ if test -n "$ENABLE_JAVA" -a -z "$JAVAINC"; then
fi
SOLARINC="$SOLARINC $JAVAINC"
+if test "$ENABLE_JAVA" != "" -a "x" != "x$JAVACOMPILER"; then
+ url_check_unknown=0
+ java_base="testurlcheck"
+ java_src="${java_base}.java"
+ java_cls="${java_base}.class"
+ cat > "${java_src}" <<_ACEOF
+[import jdk.internal.loader.URLClassPath;
+import java.lang.reflect.Field;
+import java.net.URL;
+
+class ${java_base}
+{
+ public static void main(String args[])
+ {
+ try {
+ URLClassPath cp = new URLClassPath(new URL[0], null);
+ Field field = cp.getClass().getDeclaredField("DISABLE_CP_URL_CHECK");
+ field.setAccessible(true);
+ System.out.println(field.get(cp).toString());
+ } catch(Exception e) {
+ System.out.println("unknown");
+ }
+ }
+}]
+_ACEOF
+ AC_MSG_CHECKING([if jdk.net.URLClassPath.ClassPathURLCheck is disabled])
+ java_cmd="$JAVACOMPILER --add-exports java.base/jdk.internal.loader=ALL-UNNAMED ${java_src} 1>&2"
+ AC_TRY_EVAL(java_cmd)
+ if test $? = 0 -a -f "./${java_cls}"; then
+ java_res=`$JAVAINTERPRETER --add-opens java.base/jdk.internal.loader=ALL-UNNAMED ${java_base} 2>/dev/null`
+ if test $? = 0; then
+ case "${java_res}" in
+ true) AC_MSG_RESULT([yes]) ;;
+ false)
+ rm -f "./${java_src}" "./${java_cls}"
+ AC_MSG_ERROR([no - Java unit tests will break!])
+ ;;
+ *) url_check_unknown=1 ;;
+ esac
+ else
+ url_check_unknown=1
+ fi
+ else
+ url_check_unknown=1
+ fi
+ if test $url_check_unknown -eq 1; then
+ AC_MSG_RESULT([unknown - assuming yes])
+ add_warning "Unable to find the default value for jdk.net.URLClassPath.ClassPathURLCheck - java tests might fail!"
+ fi
+ rm -f "./${java_src}" "./${java_cls}"
+fi
+
AC_SUBST(JAVACOMPILER)
AC_SUBST(JAVADOC)
AC_SUBST(JAVAINTERPRETER)