[java] -----------------------------------------
    [java]
    [java] # of tests started   = 1412
    [java] # of tests completed = 1412
    [java] # of tests skipped   = 46
    [java] # of tests passed    = 1412
    [java] # of tests failed    = 0
    [java]
    [java] -----------------------------------------
    [java]
    [java]    Date finished:
    [java]       Sat Jan 21 22:40:18 EST 2012
    [java]    Time elapsed:
    [java]       87070 seconds
    [java]

collect-result:

BUILD SUCCESSFUL
Total time: 1,480 minutes 41 seconds

These tests all pass using the new DelegateCombinerSecurityManager, DynamicPolicyProvider and ConcurrentPolicyFile.

This is interesting since URL has effectively been replaced with URI in policy file grants, I had at least expected some tests to fail based on URI's narrower scope. URI has security advantages over using URL in policy grant statements, no longer is a network DNS call required, but then neither is File system access after policy files have been parsed, making ConcurrentPolicyFile effectively immutable. Network access and file system access, apart from being slow, represent mutable state.

With Java 8, these policy implementations will be highly scalable (no Policy class lock). Failing permission check calls may block on Permissions.implies, but only after failing the policy permission check.

Better still DelegateCombinerSecurityManager contains a non blocking cache, so tasks with identical contexts, repeatedly invoking permission checks, while running in an Executor or ThreadPool, will return quickly after the first check is added to cache.

This allows security to be enabled, without impeding scalability.

Next task is to sort out the jtreg tests; updated to run on jdk6, by removing dependencies on jdk5, followed by a dummy merge.

Cheers,

Peter.


Reply via email to