This seems to be an interesting difference between Java 5 and Java 6 behavior in the RI...
Permission p1 = new RuntimePermission("exitVM"); Permission p2 = new RuntimePermission("exitVM.0"); p1.implies(p2); this 'implies' is false on Java 5, but true on Java 6 Permission p3 = new RuntimePermission("exitVM.*"); Permission p4 = new RuntimePermission("exitVM"); p3.implies(p4); this is also false on Java 5, and true on Java 6. I can see the logic for the changes in Java 6, which is the behavior I would expect from a basic permission. However, to retain compatibility with the RI I'm inclined to match the difference and put different code into our Java 5 and Java 6 streams. I wonder how many apps fix their policy file when moving from Java 5 to Java 6 8-0 Regards, Tim On 20/Jul/2010 09:41, Tim Ellison (JIRA) wrote: > [ > https://issues.apache.org/jira/browse/HARMONY-6593?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12890216#action_12890216 > ] > > Tim Ellison commented on HARMONY-6593: > -------------------------------------- > > This causes another test to fail: > > This should throw a SecurityException. > > junit.framework.AssertionFailedError: This should throw a SecurityException. > at > org.apache.harmony.luni.tests.java.lang.SecurityManagerTest.test_checkExit_int(SecurityManagerTest.java:288) > at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:197) > > > I'll take a look too. > > >> [classlib][luni]SecurityManager.checkExit(status) function fails to check >> for various status values >> --------------------------------------------------------------------------------------------------- >> >> Key: HARMONY-6593 >> URL: https://issues.apache.org/jira/browse/HARMONY-6593 >> Project: Harmony >> Issue Type: Bug >> Components: Classlib >> Affects Versions: 5.0M13 >> Environment: Windows and Linux >> Reporter: Mohanraj Loganathan >> Assignee: Tim Ellison >> Attachments: securityManager_exitV_001.diff >> >> >> Consider the testcase below[1]. Harmony throws unknown permission >> But with RI the same test passes. >> As per API doc, checkExit should be able to check VM exit status. >> [1] testcase: >> public void test_checkExit_int1() { >> SecurityManager mySecMngr = new SecurityManager(){ >> public void checkPermission(Permission permission) { >> if (!permission.equals(new RuntimePermission("exitVM.1") )) { >> throw new SecurityException("unknown permission"); >> } >> } >> }; >> mySecMngr.checkExit(1); >> try { >> mySecMngr.checkExit(2); >> fail("Should throw SecurityException"); >> } catch (SecurityException se) { >> // expected >> } >> } >