And I've just confirmed all the QA tests are passing too.

    [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]       Thu Feb 09 17:38:26 EST 2012
    [java]    Time elapsed:
    [java]       86874 seconds
    [java]

collect-result:

BUILD SUCCESSFUL
Total time: 1,472 minutes 30 seconds

So in summary the new concurrent DynamicPolicyProvider, passes all tests, including it's own junit tests, it does so in combination with the new scalable caching DelegateCombinerSecurityManager. It's called Combiner because it uses a DomainCombiner for parallelizing ProtectionDomain permission implies checks. This code also includes a number of bug fixes not included in the main line code, these were concurrency bugs in existing code, uncovered during policy development.

Unfortunately for true scalability you'll need Java 8, due to a class lock on java.security.Policy.getPolicyNoCheck() that ProtectionDomain.implies calls used in earlier Java releases. The code hasn't been tested on Java 8.

I'm going to look into creating a timed reference, but for now the Security Manager cache uses soft references.

Looks like I'm ready for a merge.

Cheers,

Peter.

Peter Firmstone wrote:
There are now 6 failures and 132 tests passing. (It's worth noting that each jtreg test typically contains multiple unit or regression tests)

Of the 6 failures, one is for a squid proxy server, 4 are Kerberos tests that require a KDC server, we have an apache infrastructure zone provided for this purpose, but not being kerberos man, I'm worried about misconfiguring a Kerberos test server with a direction connection to the internet. Anyone with kerberos experience please feel free to contact me.

The remaining failing test is RegistryRetainCodebase.

These tests have always failed since we first started running jtreg on River, in fact two more tests are now passing, TestEqual and CheckDefinite.

TestEqual, now passes, the failure was due to the URL equals bug, to fix it, I overrode equals() and hashCode() in the httpmd provider.


       Execution failed: `main' threw exception: Test$FailedException:
       1 test failure

   * net/jini/url/httpmd/TestEqual.java
<file:///opt/src/ApacheRiver/trunk/qa/jtreg/JTwork/net/jini/url/httpmd/TestEqual.jtr>
     : Tests equal on httpmd: URLs


CheckDefinite is now passing, it was missing the tools.jar from its classpath, a similar test failure RegistryRetainCodebase, I suspect is missing the stub class.


       Program `/usr/jdk/jdk1.5.0_15/bin/java' interrupted! (timed out?)

* net/jini/loader/pref/PreferredClassProvider/checkDefinite/CheckDefinite.java <file:///opt/src/ApacheRiver/trunk/qa/jtreg/JTwork/net/jini/loader/pref/PreferredClassProvider/checkDefinite/CheckDefinite.jtr>
     : Make sure that the preferred class provider can tell when the
     preferred list definitely does not exist in the resources of a
     class loader





JT Harness : Tests that failed
Tests are grouped by their final status message.
Execution failed: `main' threw exception: TestFailedException: TEST FAILED: client failed to call back in time

* net/jini/loader/pref/PreferredClassProvider/registryRetainCodebase/RegistryRetainCodebase.java
     <cid:[email protected]> : Ensures that a
     registry with a stub class in CLASSPATH preserves the codebase
     annotation of that stub class (using preferred classes) when a
     marshalled instance of that class is passed through the
     rmiregistry in a series of remote method invocations

Execution failed: `main' threw exception: java.rmi.UnknownHostException: unknown host in BasicObjectEndpoint[162aaab2-ccbc-49dd-b3df-d7de6fdf34c3,HttpEndpoint[10.1.1.2:34122]]; nested exception is: java.net.UnknownHostException: jiniproxy

   * net/jini/jeri/http/echo/EchoImpl.java
     <cid:[email protected]> : Echo implementation
     for testing basic HTTP endpoint functionality.

Execution failed: exit code 1

   * net/jini/jeri/kerberos/RegressionTests/runListenEndpointTest.sh
     <cid:[email protected]> : Different
     ServerEndPoints must allow export on same ListenEndPoint
   * net/jini/jeri/kerberos/UnitTests/runTestEndpoints.sh
     <cid:[email protected]> : Test the
     KerberosEndpoint and KerberosServerEndpoint classes.
   * net/jini/jeri/kerberos/UnitTests/runTestPerformance.sh
     <cid:[email protected]> : Tests the end to end
     performance of Kerberos provider.
   * net/jini/jeri/transport/multihomed/runMultihome.sh
     <cid:[email protected]> : Test the
     KerberosEndpoint for multihome support

------------------------------------------------------------------------
Report generated on 08/02/2012 7:42:51 AM
Using JT Harness 4.1.4; built on 29 August 2008 12:00:00 AM with Java(TM) 2 SDK, Version 1.5.0

JT Harness : Tests that passed
Tests are grouped by their final status message.
Execution successful

com/sun/jini/action/catchSecurityException/CatchSecurityException.java : The PrivilegedAction implementations in com.sun.jini.action that read system properties should catch SecurityException, in case the caller's protection domain or their own protection domain does not even have the necessary permission, and return the default value instead. com/sun/jini/config/KeyStores/TestGetKeyStore.java : Tests KeyStores.getKeyStore com/sun/jini/config/KeyStores/TestGetX500Principal.java : Tests KeyStores.getX500Principal com/sun/jini/phoenix/ExecOptionPermission/Operations.java : test basic operations of ExecOptionPermission com/sun/jini/tool/CheckConfigurationFile/TestCheck.java : Tests CheckConfigurationFile java/rmi/server/RMIClassLoader/loadProxyClasses/PreferredLoadProxyClasses.java : functional test for RMIClassLoader.loadProxyClass; test ensures that the preferred class loader provider implements RMIClassLoader.loadProxyClass correctly. java/rmi/server/Unreferenced/marshalledObjectGet/MarshalledObjectGet.java : When an object is retrieved from a MarshalledObject, callbacks that were registered by objects in the graph for execution when the unmarshalling is done should get executed java/rmi/server/Unreferenced/whenOnUnexport/WhenOnUnexport.java : When a remote object implements the Unreferenced interface, the implementation should invoke its unreferenced() method when the number of known remote client references through DGC-enabled exports transitions from greater than zero to zero AND the remote object is still exported by at least one DGC-enabled exporter-- but not if it's only exported with non-DGC-enabled exporters. net/jini/activation/Activatable/activateExceptionTest/ActivateExceptionTest.java : ActivatableInvocationHandler wrapping of ConnectException; this test checks possible exceptional conditions occurring when ActivatableInvocationHandler attempts to activate an object net/jini/activation/Activatable/activateFailure/ActivateFailure.java : check that exception thrown by activatable object constructor gets back to phoenix without connection getting slammed shut by unexport of a JERI-exported activation group net/jini/activation/Activatable/checkImplClassLoader/CheckImplClassLoader.java : ActivationGroupImpl.newInstance does not set context classloader for impl net/jini/activation/Activatable/checkRegisterInLog/CheckRegisterInLog.java : activate fails if rmid is restarted net/jini/activation/Activatable/createPrivateActivable/CreatePrivateActivatable.java : allow non-public activatable class and/or constructor net/jini/activation/Activatable/downloadParameterClass/DownloadParameterClass.java : The class loader used to load classes for parameter types sent in an RMI call to an activatable object should delegate to the class loader that loaded the class of the activatable object itself, to maximize the likelihood of type compatibility between downloaded parameter types and supertypes shared with the activatable object. net/jini/activation/Activatable/downloadSecurityManager/DownloadSecurityManager.java : Activation groups should be able to download and install a security manager. net/jini/activation/Activatable/forceLogSnapshot/ForceLogSnapshot.java : synopsis: Activatable objects cannot be restarted. net/jini/activation/Activatable/inactiveGroup/InactiveGroup.java : synopsis: rmid should not destroy group when it reports inactiveGroup net/jini/activation/Activatable/nestedActivate/NestedActivate.java : synopsis: Activating objects from an Activatable constructor causes deadlock net/jini/activation/Activatable/nonExistentActivatable/NonExistentActivatable.java : synopsis: NoSuchObjectException not thrown for non-existent activatable objects net/jini/activation/Activatable/restartCrashedService/RestartCrashedService.java : synopsis: rmid should waitFor restartable objects that crash and restart them net/jini/activation/Activatable/restartService/RestartService.java : synopsis: activator should restart daemon services
   net/jini/activation/Activatable/terminateGroup/TerminateGroup.java :
net/jini/activation/Activatable/unregisterInactive/UnregisterInactive.java : synopsis: activatable object fails to go inactive after unregister/inactive sequence. net/jini/activation/Activatable/useProxyAccessor/UseProxyAccessor.java : test for ProxyAccessor use in conjunction with activation net/jini/activation/ActivatableInvocationHandler/readObject/ReadObject.java : AIH.readObject should throw InvalidObjectException if constraints inconsistent. net/jini/activation/ActivationAdmin/getGroupsObjects/GetGroupsObjects.java : test getActivationGroups and getActivableObjects methods net/jini/activation/ActivationSystem/accessControl/AccessControl.java : test basic permission-based access control for a secure rmid net/jini/activation/ActivationSystem/bootstrapAttack/BootstrapAttack.java : test that code downloading is disabled for registry net/jini/activation/ActivationSystem/ensureRestart/EnsureRestart.java : net/jini/activation/ActivationSystem/unregisterGroup/UnregisterGroup.java : synopsis: ActivationSystem.unregisterGroup should unregister objects in group net/jini/config/ConfigurationFile/TestParser/TestParser.java : Tests parsing configuration files. net/jini/config/TestAPI/TestConstructor.java : Tests ConfigurationFile constructors net/jini/config/TestAPI/TestGetEntryType.java : Tests ConfigurationFile.getEntry net/jini/config/TestAPI/TestGetInstance.java : Tests ConfigurationProvider.getInstance net/jini/config/TestAPI/TestOverrides.java : Tests configuration file overrides net/jini/config/TestAPI/TestUnicodeEscapesDecodingReader.java : Tests UnicodeEscapesDecodingReader net/jini/config/TestAbstractConfiguration.java : Tests the AbstractConfiguration class net/jini/config/TestEmptyConfiguration.java : Tests the EmptyConfiguration class net/jini/constraints/BasicMethodConstraints/getConstraints/GetConstraints.java : test BasicMethodConstraints.getConstraints net/jini/constraints/BasicMethodConstraints/ordering/Ordering.java : test BasicMethodConstraints descriptor ordering restrictions net/jini/constraints/basicOperations/BasicOperations.java : test basic operations of the constraint classes net/jini/constraints/readObject/ReadObject.java : test constraint class readObject methods net/jini/iiop/echo/ConnectedExport.java : Test basic IiopExporter functionality for "connected" exports (i.e., exports with a specified ORB to which to connect). net/jini/iiop/echo/NonIiopExport.java : Verify that IiopExporter will not export an object if its Tie class is unavailable. net/jini/iiop/echo/UnconnectedExport.java : Test basic IiopExporter functionality for "unconnected" exports (i.e., exports which do not connect to an ORB) net/jini/io/MarshalInputStream/verifyWithEqualLoaders/VerifyWithEqualLoaders.java : MarshalInputStream should verify codebase integrity (if constructed to do so) even if the defaultLoader and the context class loader identical, as long as neither of them are the same as or a descendant of the defining class loader of the class being resolved. net/jini/jeri/BasicInvocationDispatcher/checkClientPermission/CheckClientPermission.java : test SecureDispatcher.checkClientPermisson net/jini/jeri/BasicInvocationDispatcher/suppressStackTraces/SuppressStackTraces.java : When the system property com.sun.jini.jeri.server.suppressStackTraces is set true, then BasicInvocationDispatcher should take positive action to counteract the new feature in 1.4 of an exception's stack trace being part of its serialized form so that the server-side stack trace of an exception that occurs during the execution of a remote method invocation gets marshalled to the client net/jini/jeri/BasicInvocationHandler/serverStackTrace/ServerStackTrace.java : When an exception is thrown by a remote method invocation, the stack trace of the exception catchable by the client application should comprise both the client-side trace as well as the server-side trace, as serialized with the Throwable from the server. net/jini/jeri/BasicInvocationHandler/unmarshalUnexpectedException/UnmarshalUnexpectedException.java : Verify that an unexpected exception (except RuntimeException or Error) unmarshalled by BasicInvocationHandler.unmarshalThrow method are wrapped in a java.rmi.UnexpectedException. net/jini/jeri/BasicJeriExporter/dgcServerExposure/DgcServerExposure.java : The server-side DGC implementation remote object should only be exported at a given endpoint while there are DGC-enabled remote objects also exported at that same endpoint, in order to minimize exposure to certain unmarshalling denial-of-service attacks (such as a "large object" attack), given that the server-side DGC implementation does not support access control net/jini/jeri/BasicJeriExporter/globalListenLock/GlobalListenLock.java : The BasicJeriExporter implementation must not hold a global lock while attempting to listen on a ListenEndpoint. net/jini/jeri/BasicJeriExporter/operations/Operations.java : test BasicJeriExporter basic operations net/jini/jeri/BasicJeriExporter/sameClassCheck/SameClassCheck.java : The BasicJeriExporter implementation must not compare ListenEndpoint instances of different classes. net/jini/jeri/BasicJeriTrustVerifier/BjtvSubclassTest.java : Allow BasicJeriTrustVerifier subclasses to customize invocation handler check net/jini/jeri/connection/ConnectionManager/overlocking/Overlocking.java : Request initiation to a net.jini.jeri.connection-based endpoint should not block waiting for the establishment of a connection that the request wouldn't have been used for anyway (like if the connection does not satisfy the new request's constraints). net/jini/jeri/connection/ConnectionManager/saturation/Saturation.java : test ConnectionManager.newRequest handling of mux saturation net/jini/jeri/http/connectionReuse/Test.java : Test HTTP connection reuse. net/jini/jeri/internal/runtime/getRemoteInterfaces/GetRemoteInterfaces.java : Test getRemoteInterfaces net/jini/jeri/internal/runtime/runtimeThreadInheritanceLeak/RuntimeThreadInheritanceLeak.java : When the JERI runtime (lazily) spawns system threads that could outlive the application context in which they were (happened to be) created, such threads should not inherit (thread local) data specific to such an application context for various isolation reasons (see 4219095) net/jini/jeri/kerberos/UnitTests/TestVerifier.java : Tests the jgss trust verifier. net/jini/jeri/ssl/UnitTests/TestConnectionContext.java : Tests the ConnectionContext class net/jini/jeri/ssl/UnitTests/TestEndpoint.java : Tests the SslEndpoint and HttpsEndpoint classes. net/jini/jeri/ssl/UnitTests/TestEndpointHttps.sh : Tests the Endpoint class over HTTPS. net/jini/jeri/ssl/UnitTests/TestEndpointInternal.java : Tests non-public methods of the Endpoint class. net/jini/jeri/ssl/UnitTests/TestEndpointInternalHttps.sh : Tests non-public methods of the Endpoint class over HTTPS. net/jini/jeri/ssl/UnitTests/TestPerformance.java : Tests performance of RMI and JSSE. net/jini/jeri/ssl/UnitTests/TestPerformanceHttps.sh : Tests performance of RMI and JSSE over HTTPS. net/jini/jeri/ssl/UnitTests/TestRMI.java : Performs user-level tests defined at the RMI level. net/jini/jeri/ssl/UnitTests/TestRMIHttps.sh : Performs user-level tests defined at the RMI level over HTTPS. net/jini/jeri/ssl/UnitTests/TestServerEndpoint.java : Test the SslServerEndpoint and HttpsServerEndpoint classes. net/jini/jeri/ssl/UnitTests/TestServerEndpointHttps.sh : Test the ServerEndpoint class over HTTPS. net/jini/jeri/ssl/UnitTests/TestTwoEndpoints.java : Tests exports on one ListenEndpoint but different ServerEndpoints net/jini/jeri/ssl/UnitTests/TestUtilities.java : Tests the Utilities class net/jini/jeri/ssl/UnitTests/TestVerifier.java : Tests the trust verifier. net/jini/jeri/ssl/UnitTests/TestWeakSoftTable.java : Tests the WeakSoftTable class. net/jini/jeri/tcp/ServerEndpointClose.java : When a TcpServerEndpont's ServerEndpointListener is closed (such as by unexporting all JERI-exported remote objects on that endpoint) after a connection has been accepted from the underlying ServerSocket but before the connection has been added to the internal set of connections, then the new connection should still be closed in a timely fashion, rather than be allowed to stay open. net/jini/jeri/tcp/connectTimeout/TestConnectTimeout.java : Test the TCP provider's support for socket connect timeouts controlled by ConnectionAbsoluteTime and ConnectionRelativeTime constraints. net/jini/jeri/tcp/localHostExposure/LocalHostExposure.java : If the local host name cannot be resolved, TcpServerEndpoint.enumerateListenEndpoints must not expose it in the resulting UnknownHostException if the caller does not have permission to resolve it. net/jini/jeri/tcp/outOfThreads/OutOfThreads.java : This test verifies robustness (to a certain level) of the NIO-mode mux implementation when the VM cannot create any more threads net/jini/jeri/tcp/outOfThreads/OutOfThreads2.java : This test verifies robustness (to a certain level) of the stream-mode mux implementation when the VM cannot create any more threads net/jini/jeri/tcp/serverSocketClose/ServerSocketClose.java : If the TcpServerEndpoint accept loop terminates for some reason, like if an exception occurs for which it gives up entirely, then the server socket should also be closed, so that clients are not left hanging. net/jini/jeri/tcp/unfulfilledConstraints/TestUnfulfilledConstraints.java : Test the TCP provider's computation of unfulfilled constraints, i.e net/jini/jeri/transport/multihomed/Multihomed.java : TcpEndpoint.newRequest.next must try connecting to all addresses for the endpoint's host name before failing, while enforcing the specified security checks net/jini/jrmp/ServerContext/TestServerContext.java : Verify that using ServerContext.getServerContextElement to obtain the ClientHost functions properly for objects exported over JRMP. net/jini/jrmp/echo/TestActivatableExport.java : Test activatable exports using JrmpExporter. net/jini/jrmp/echo/TestExport.java : Test non-activatable exports using JrmpExporter. net/jini/loader/ClassLoading/verifyBeforeLoading/VerifyBeforeLoading.java : When ClassLoading.loadClass or ClassLoading.loadProxyClass is invoked with verifyCodebaseIntegrity true, it should not pass a codebase that contains URLs that have not been verified to provide integrity to the RMIClassLoader provider
   net/jini/loader/pref/PreferredClassLoader/4881293/Test4881293.java :
net/jini/loader/pref/PreferredClassLoader/urlStreamHandlerFactory/TestURLStreamHandlerFactory.java : PreferredClassLoader should have a constructor that has a URLStreamHandlerFactory, like URLClassLoader does net/jini/loader/pref/PreferredClassProvider/arrayClassNames/ArrayClassNames.java : When PreferredClassProvider.loadClass is passed an array class name, it should follow the prescription of the preferred list as if it had been passed the name of the element type of the same array class. net/jini/loader/pref/PreferredClassProvider/checkBoomerangs/CheckBoomerangs.java : Test ensures that no class boomerangs arise from the use of preferred classes whose annotation matches that of a contextual class loader net/jini/loader/pref/PreferredClassProvider/checkDefinite/CheckDefinite.java : Make sure that the preferred class provider can tell when the preferred list definitely does not exist in the resources of a class loader net/jini/loader/pref/PreferredClassProvider/constructorCheck/ConstructorCheck.java : Untrusted code should not be able to instantiate a PreferredClassProvider and obtain references to class loaders from it (such as by subclassing it and overriding a protected method). net/jini/loader/pref/PreferredClassProvider/defaultIsExtensionLoader/DefaultIsExtensionLoader.java : Test that ensures that classes in the system class loader can be found when the defaultLoader is the system class loader and net/jini/loader/pref/PreferredClassProvider/exerciseProviderConfig/ExerciseNoProvider.java : Functional test to verify configurability of the preferred class provider using the NoProvider net/jini/loader/pref/PreferredClassProvider/exerciseProviderConfig/ExerciseProviderConfig.java : Functional test to verify configurability of the preferred classes provider net/jini/loader/pref/PreferredClassProvider/exerciseProviderConfig/ExerciseRequireDlPermProvider.java : Functional test to verify configurability of the preferred class provider using the RequireDlPermProvider net/jini/loader/pref/PreferredClassProvider/finalizerAttack/FinalizerAttack.java : Untrusted code should not be able to use an instance of PreferredClassProvider for which the constructor's security check did not succeed, such as by a having a subclass that overrides finalize() to provide a reference to the instance and through which dangerous protected methods can be invoked. net/jini/loader/pref/PreferredClassProvider/malformedAncestorURLs/MalformedAncestorURLs.java : When the default loader, the context class loader, or an ancestor of the context class loader has an annotation string with a malformed URL, that shouldn't cause PreferredClassProvider's loadClass, loadProxyClass, or getClassLoader methods to throw a MalformedURLException; those methods analyze these other loader's annotations for "boomerang" matches, but if one of them contains a malformed URL, then it must not match the codebase argument's URLs (which are checked for malformed URLs earlier), so the method should proceed gracefully as if the match failed rather than throwing a MalformedURLException to the caller net/jini/loader/pref/PreferredClassProvider/nonURLAncestor/NonURLAncestor.java : When the context class loader or an ancestor of the context class loader is chosen because of a boomerang match, or when the context class loader is chosen because of a null codebase argument (and the default loader was not used), and this chosen loader is not a URLClassLoader, then there should not be a ClassCastException because of an assumption that the chosen loader is a URLClassLoader while checking permissions net/jini/loader/pref/PreferredClassProvider/pinContextLoader/PinContextLoader.java : The current thread's context class loader should not be pinned (kept strongly reachable) merely as a result of performing a PreferredClassProvider operation, such as because the codebase URL path for the operation matches an ancestor of the current thread's context loader (i.e net/jini/loader/pref/PreferredResources/correctInterpretation/CorrectInterpretation.java : functional test to verify that preferred resource provider correctly implements preferred classes and resource functionality net/jini/security/AccessPermission/Operations.java : test basic operations of AccessPermission net/jini/security/AuthenticationPermission/Operations.java : test basic operations of AuthenticationPermission net/jini/security/GrantPermission/implies/Test.java : Verify proper functioning of GrantPermission.implies() and equals() net/jini/security/GrantPermission/invalidNamedPermission/Test.java : Verify proper functioning of checks against invalid permission classes specified in GrantPermission name net/jini/security/GrantPermission/nested/Test.java : Verify that implication properly handles nested GrantPermissions. net/jini/security/GrantPermission/parseName/Test.java : Test GrantPermission constructor which parses list of Permissions. net/jini/security/GrantPermission/readObject/Test.java : Test GrantPermission readObject method. net/jini/security/GrantPermission/serialize/Test.java : Test GrantPermission serialization. net/jini/security/ProxyPreparer/TestBasicProxyPreparer.java : Tests the BasicProxyPreparer class net/jini/security/Security/contextClassLoader/Test.java : 5105843: Security class missing doPrivileged around getContextClassLoader net/jini/security/Security/doPrivileged/Test.java : Verify basic functionality of Security.doPrivileged() methods. net/jini/security/Security/getContext/Test.java : Verify basic functionality of Security.getContext() method net/jini/security/Security/grants/Test.java : Verify basic functionality of the grantSupported() and grant() methods of class Security. net/jini/security/Security/implicitGrants/Test.java : Verify proper basic functionality of Security.grant(Class, Class) net/jini/security/policy/DynamicPolicyProvider/basePolicyNotFound/Test.java : Verify that PolicyInitializationException results if base policy class is not found net/jini/security/policy/DynamicPolicyProvider/domainCaching/Test.java : Verify that ProtectionDomain is not pinned unnecessarily. net/jini/security/policy/DynamicPolicyProvider/dynamicBasePolicy/Test.java : Test proper functioning when DynamicPolicyProvider is used with a base policy that is also dynamic. net/jini/security/policy/DynamicPolicyProvider/nullCases/Test.java : Verify that DynamicPolicyProvider handles null inputs properly net/jini/security/policy/DynamicPolicyProvider/principalGrants/Test.java : Verify proper functioning of principal-based grants. net/jini/security/policy/DynamicPolicyProvider/selfGrants/Test.java : Test basic permission grants (to self with no principals, for simplicity) net/jini/security/policy/PolicyFileProvider/basePolicyNotFound/Test.java : Verify that PolicyInitializationException results if base policy class is not found net/jini/security/policy/PolicyFileProvider/basicGrants/Test.java : Verify that PolicyFileProvider correctly handles basic permission grants net/jini/security/policy/PolicyFileProvider/nullCases/Test.java : Verify that PolicyFileProvider handles null inputs properly net/jini/security/policy/PolicyFileProvider/umbrellaGrants/Test.java : Test PolicyFileProvider expansion of UmbrellaGrantPermissions
   net/jini/url/httpmd/TestEqual.java : Tests equal on httpmd: URLs
   net/jini/url/httpmd/TestHttpmdUtil.java : Test the MdUtil class
   net/jini/url/httpmd/TestJar.java : Tests using md: URLs for JAR files
   net/jini/url/httpmd/TestParse.java : Tests parsing httpmd: URLs
net/jini/url/httpmd/TestStream.java : Tests reading from md: URL streams

Report generated on 08/02/2012 7:42:51 AM
Using JT Harness 4.1.4; built on 29 August 2008 12:00:00 AM with Java(TM) 2 SDK, Version 1.5.0


Reply via email to