Return-Path: Delivered-To: apmail-incubator-harmony-dev-archive@www.apache.org Received: (qmail 50067 invoked from network); 3 Apr 2006 03:25:59 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 3 Apr 2006 03:25:59 -0000 Received: (qmail 45476 invoked by uid 500); 3 Apr 2006 03:25:56 -0000 Delivered-To: apmail-incubator-harmony-dev-archive@incubator.apache.org Received: (qmail 45426 invoked by uid 500); 3 Apr 2006 03:25:55 -0000 Mailing-List: contact harmony-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: harmony-dev@incubator.apache.org Delivered-To: mailing list harmony-dev@incubator.apache.org Received: (qmail 45415 invoked by uid 99); 3 Apr 2006 03:25:55 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 02 Apr 2006 20:25:55 -0700 X-ASF-Spam-Status: No, hits=2.3 required=10.0 tests=HTML_10_20,HTML_MESSAGE,SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (asf.osuosl.org: 202.81.18.152 is neither permitted nor denied by domain of richard.liangyx@gmail.com) Received: from [202.81.18.152] (HELO ausmtp04.au.ibm.com) (202.81.18.152) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 02 Apr 2006 20:25:54 -0700 Received: from sd0208e0.au.ibm.com (d23rh904.au.ibm.com [202.81.18.202]) by ausmtp04.au.ibm.com (8.13.6/8.13.5) with ESMTP id k333XNoj006418 for ; Mon, 3 Apr 2006 13:33:31 +1000 Received: from d23av02.au.ibm.com (d23av02.au.ibm.com [9.190.250.243]) by sd0208e0.au.ibm.com (8.12.10/NCO/VER6.8) with ESMTP id k333Re21242212 for ; Mon, 3 Apr 2006 13:27:50 +1000 Received: from d23av02.au.ibm.com (loopback [127.0.0.1]) by d23av02.au.ibm.com (8.12.11/8.13.3) with ESMTP id k333OKCG024902 for ; Mon, 3 Apr 2006 13:24:20 +1000 Received: from d23m0016.cn.ibm.com (d23m0016.cn.ibm.com [9.181.32.76]) by d23av02.au.ibm.com (8.12.11/8.12.11) with ESMTP id k333OIPv024796 for ; Mon, 3 Apr 2006 13:24:19 +1000 Received: from [127.0.0.1] ([9.181.107.53]) by d23m0016.cn.ibm.com (Lotus Domino Release 6.53HF294) with ESMTP id 2006040311200668-1945 ; Mon, 3 Apr 2006 11:20:06 +0800 Message-ID: <44309465.20708@gmail.com> Date: Mon, 03 Apr 2006 11:20:05 +0800 From: Richard Liang User-Agent: Thunderbird 1.5 (Windows/20051201) MIME-Version: 1.0 To: harmony-dev@incubator.apache.org Subject: Re: [jira] Updated: (HARMONY-121) Stack overflow running security manager test References: <1693587792.1141383616725.JavaMail.jira@ajax.apache.org> In-Reply-To: <1693587792.1141383616725.JavaMail.jira@ajax.apache.org> X-MIMETrack: Itemize by SMTP Server on d23m0016/23/M/IBM(Release 6.53HF294 | January 28, 2005) at 03/04/2006 11:20:06, Serialize by Router on d23m0016/23/M/IBM(Release 6.53HF294 | January 28, 2005) at 03/04/2006 11:24:18, Serialize complete at 03/04/2006 11:24:18 Content-Type: multipart/alternative; boundary="------------090004090303060401040100" X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N --------------090004090303060401040100 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=UTF-8; format=flowed Mikhail Loenko (JIRA) wrote: > [ http://issues.apache.org/jira/browse/HARMONY-121?page=all ] > > Mikhail Loenko updated HARMONY-121: > ----------------------------------- > > Attachment: policy.txt > > I've replaced 'Preload classes used for checkPackageAccess' with 'Preload and initialize Policy implementation classes' > One need to run regression tests to verify that everything works fine with checkPackageAccess. > > Anyway calling checkPackageAccess from the System does not guarantee the desired result: > in the user's security manager it might be void > > Thanks, > Mikhail > > >> Stack overflow running security manager test >> -------------------------------------------- >> >> Key: HARMONY-121 >> URL: http://issues.apache.org/jira/browse/HARMONY-121 >> Project: Harmony >> Type: Bug >> Components: Classlib >> Reporter: Tim Ellison >> Attachments: policy.txt >> >> The following test case runs ok on the reference impl.but fails with a stack overflow on Harmony code. >> private static class MySecurityManager extends SecurityManager { >> private static final RuntimePermission SET_MANAGER_PERMISSION = >> new RuntimePermission("setSecurityManager"); >> >> public void checkPermission(Permission perm) { >> if (!perm.equals(SET_MANAGER_PERMISSION)) { >> super.checkPermission(perm); >> } >> } >> } >> public void test_getProperties() { >> System.setSecurityManager(new MySecurityManager()); >> try { >> System.getProperties(); >> } catch (SecurityException e) { >> // Expected >> } finally { >> System.setSecurityManager(null); >> } >> } >> The stack overflow is as follows: >> java.lang.StackOverflowError >> at java.util.PropertyPermission.equals(PropertyPermission.java:78) >> at org.apache.harmony.tests.java.lang.SecurityManagerTest$MySecurityManager.checkPermission(SecurityManagerTest.java:44) >> at java.lang.SecurityManager.checkPropertiesAccess(SecurityManager.java:343) >> at java.lang.System.getProperties(System.java:519) >> at org.apache.harmony.security.fortress.PolicyUtils$SystemKit.run(PolicyUtils.java:84) >> at java.security.AccessController.doPrivileged(AccessController.java:183) >> at org.apache.harmony.security.fortress.DefaultPolicy.refresh(DefaultPolicy.java:272) >> at org.apache.harmony.security.fortress.DefaultPolicy.getPermissions(DefaultPolicy.java:194) >> at java.security.Policy.implies(Policy.java:77) >> at java.security.ProtectionDomain.implies(ProtectionDomain.java:118) >> at java.security.AccessController.checkPermission(AccessController.java:88) >> at java.lang.SecurityManager.checkPermission(SecurityManager.java:704) >> at org.apache.harmony.tests.java.lang.SecurityManagerTest$MySecurityManager.checkPermission(SecurityManagerTest.java:45) >> at java.lang.SecurityManager.checkPropertiesAccess(SecurityManager.java:343) >> at java.lang.System.getProperties(System.java:519) >> at org.apache.harmony.security.fortress.PolicyUtils$SystemKit.run(PolicyUtils.java:84) >> at java.security.AccessController.doPrivileged(AccessController.java:183) >> at org.apache.harmony.security.fortress.DefaultPolicy.refresh(DefaultPolicy.java:272) >> at org.apache.harmony.security.fortress.DefaultPolicy.getPermissions(DefaultPolicy.java:194) >> at java.security.Policy.implies(Policy.java:77) >> at java.security.ProtectionDomain.implies(ProtectionDomain.java:118) >> at java.security.AccessController.checkPermission(AccessController.java:88) >> at java.lang.SecurityManager.checkPermission(SecurityManager.java:704) >> at org.apache.harmony.tests.java.lang.SecurityManagerTest$MySecurityManager.checkPermission(SecurityManagerTest.java:45) >> at java.lang.SecurityManager.checkPropertiesAccess(SecurityManager.java:343) >> at java.lang.System.getProperties(System.java:519) >> >> at org.apache.harmony.security.fortress.PolicyUtils$SystemKit.run(PolicyUtils.java:84) >> at java.security.AccessController.doPrivileged(AccessController.java:183) >> at org.apache.harmony.security.fortress.DefaultPolicy.refresh(DefaultPolicy.java:272) >> at org.apache.harmony.security.fortress.DefaultPolicy.getPermissions(DefaultPolicy.java:194) >> at java.security.Policy.implies(Policy.java:77) >> at java.security.ProtectionDomain.implies(ProtectionDomain.java:118) >> at java.security.AccessController.checkPermission(AccessController.java:88) >> at java.lang.SecurityManager.checkPermission(SecurityManager.java:704) >> at org.apache.harmony.tests.java.lang.SecurityManagerTest$MySecurityManager.checkPermission(SecurityManagerTest.java:45) >> at java.lang.SecurityManager.checkPropertiesAccess(SecurityManager.java:343) >> at java.lang.System.getProperties(System.java:519) >> at org.apache.harmony.security.fortress.PolicyUtils$SystemKit.run(PolicyUtils.java:84) >> at java.security.AccessController.doPrivileged(AccessController.java:183) >> at org.apache.harmony.security.fortress.DefaultPolicy.refresh(DefaultPolicy.java:272) >> at org.apache.harmony.security.fortress.DefaultPolicy.getPermissions(DefaultPolicy.java:194) >> at java.security.Policy.implies(Policy.java:77) >> at java.security.ProtectionDomain.implies(ProtectionDomain.java:118) >> at java.security.AccessController.checkPermission(AccessController.java:88) >> at java.lang.SecurityManager.checkPermission(SecurityManager.java:704) >> at org.apache.harmony.tests.java.lang.SecurityManagerTest$MySecurityManager.checkPermission(SecurityManagerTest.java:45) >> at java.lang.SecurityManager.checkPropertiesAccess(SecurityManager.java:343) >> at java.lang.System.getProperties(System.java:519) >> at org.apache.harmony.tests.java.lang.SecurityManagerTest.test_getProperties(SecurityManagerTest.java:53) >> at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:211) >> at java.lang.reflect.Method.invoke(Method.java:248) >> at junit.framework.TestCase.runTest(TestCase.java:154) >> at junit.framework.TestCase.runBare(TestCase.java:127) >> at junit.framework.TestResult$1.protect(TestResult.java:106) >> at junit.framework.TestResult.runProtected(TestResult.java:124) >> at junit.framework.TestResult.run(TestResult.java:109) >> at junit.framework.TestCase.run(TestCase.java:118) >> at junit.framework.TestSuite.runTest(TestSuite.java:208) >> at junit.framework.TestSuite.run(TestSuite.java:203) >> at junit.framework.TestSuite.runTest(TestSuite.java:208) >> at junit.framework.TestSuite.run(TestSuite.java:203) >> at junit.framework.TestSuite.runTest(TestSuite.java:208) >> at junit.framework.TestSuite.run(TestSuite.java:203) >> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478) >> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344) >> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) >> > > Hello Mikhail, Would you please apply the patch you provided? :-) We have some dependency on this issue. Thanks a lot. -- Richard Liang China Software Development Lab, IBM --------------090004090303060401040100--