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