# Testcase for PR381 Stackoverflow error with security manager, signed jars # and -Djava.security.debug set. # # Copyright (c) 2009, Red Hat Inc. # # This code is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This code is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License version # 2 along with this work; if not, write to the Free Software Foundation, # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. # # @test # @bug 6584033 # @summary Stackoverflow error with security manager, signed jars and debug. # @build TimeZoneDatePermissionCheck # @run shell TimeZoneDatePermissionCheck.sh # Set default if not run under jtreg from test dir itself if [ "${TESTCLASSES}" = "" ] ; then TESTCLASSES="." fi if [ "${TESTJAVA}" = "" ] ; then TESTJAVA=/usr fi if [ "${COMPILEJAVA}" = "" ]; then COMPILEJAVA="${TESTJAVA}" fi # create a test keystore and dummy cert. Note that we use the COMPILEJAVA # as this test is a TimeZone test, it doesn't test keytool rm -f ${TESTCLASSES}/timezonedatetest.store ${COMPILEJAVA}/bin/keytool ${TESTTOOLVMOPTS} -genkeypair -alias testcert \ -keystore ${TESTCLASSES}/timezonedatetest.store \ -storepass testpass -validity 360 \ -dname "cn=Mark Wildebeest, ou=FreeSoft, o=Red Hat, c=NL" \ -keypass testpass # create a jar file to sign with the test class in it. rm -f ${TESTCLASSES}/timezonedatetest.jar ${COMPILEJAVA}/bin/jar ${TESTTOOLVMOPTS} cf \ ${TESTCLASSES}/timezonedatetest.jar \ -C ${TESTCLASSES} TimeZoneDatePermissionCheck.class # sign it ${COMPILEJAVA}/bin/jarsigner ${TESTTOOLVMOPTS} \ -keystore ${TESTCLASSES}/timezonedatetest.store \ -storepass testpass ${TESTCLASSES}/timezonedatetest.jar testcert # run it with the security manager on, plus accesscontroller debugging # will go into infinite recursion trying to get enough permissions for # printing Date of failing certificate unless fix is applied. ${TESTJAVA}/bin/java ${TESTVMOPTS} -Djava.security.manager \ -Djava.security.debug=access,failure,policy \ -cp ${TESTCLASSES}/timezonedatetest.jar TimeZoneDatePermissionCheck