Hello Stepan,
It's really too late for me to reply :-( ... I've tried your patch and
run all tests on both windows xp and red hat linux, IBM VME.
It seems that it has passed the o.a.h.rmi.RegistryTest on both
platforms. As for LogManagerTest, now it has already been excluded in
the logging module. So is it possible that the crash you have
encountered is due to other problems (such as Harmony-3075 and
Harmony-3142)?
Pls correct me if I'm wrong. Thanks.
Stepan Mishura (JIRA) wrote:
[
https://issues.apache.org/jira/browse/HARMONY-2910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Stepan Mishura updated HARMONY-2910:
------------------------------------
Attachment: Harmony-2910.diff
Hi Ruth,
Sorry for delay with response. You update looks OK for me. I just modified
CodeSource recreation and moved it to PolicyEntry.impliesCodeSource(). Also I
simplified PolicyUtils.normalizeURL().
But simplification of normalizeURL() method I've discovered one more problem in
security code. If you run a refreshed patch (from Feb 06) you will see tests
crashes:
org.apache.harmony.logging.tests.java.util.logging.LogManagerTest
org.apache.harmony.rmi.RegistryTest
It looks like there is a cyclic dependency in security code. So I'm going to
wait with the patch applying until the cyclic dependency is investigated and
resolved.
Thoughts?
Thanks,
Stepan.
[classlib][security] Harmony cannot identify 'codeBase' feature in policy file
------------------------------------------------------------------------------
Key: HARMONY-2910
URL: https://issues.apache.org/jira/browse/HARMONY-2910
Project: Harmony
Issue Type: Bug
Components: Classlib
Reporter: Ruth Cao
Assigned To: Stepan Mishura
Attachments: Harmony-2910-2.zip, Harmony-2910.diff, Harmony-2910.diff,
Harmony-2910.diff, regressionTest2910.txt
create a simple policy file and then run PolicyTest with the argument and the
policy file[1] as following on Windows XP:
-Dtest.bin.dir=c:\api\ -Djava.security.policy=<policy file path>
public class PolicyTest {
public static void main(String[] args) throws Exception {
Policy p = Policy.getPolicy();
ProtectionDomain pd = new ProtectionDomain(new CodeSource(new
URL(
"file:/c:/api/*"),
(java.security.cert.Certificate[]) null), null);
PermissionCollection pCollection = p.getPermissions(pd);
Enumeration<Permission> elements = pCollection.elements();
while (elements.hasMoreElements()) {
if(elements.nextElement().equals(new AllPermission())){
System.out.println("contains AllPermission");
}
}
}
}
RI prints:
contains AllPermission
while Harmony prints nothing.
[1]
grant codeBase "file:${test.bin.dir}/-" {
permission java.security.AllPermission;
};