You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@river.apache.org by pe...@apache.org on 2010/05/11 22:37:49 UTC

svn commit: r943285 [3/3] - in /incubator/river/jtsk/trunk: ./ qa/ qa/harness/trust/ qa/src/com/sun/jini/qa/harness/ qa/src/com/sun/jini/qa/resources/ src/com/sun/jini/tool/ src/net/jini/core/lookup/ src/net/jini/discovery/ src/net/jini/lease/ src/net/...

Added: incubator/river/jtsk/trunk/src/org/apache/river/imp/security/policy/util/messages.properties
URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/src/org/apache/river/imp/security/policy/util/messages.properties?rev=943285&view=auto
==============================================================================
--- incubator/river/jtsk/trunk/src/org/apache/river/imp/security/policy/util/messages.properties (added)
+++ incubator/river/jtsk/trunk/src/org/apache/river/imp/security/policy/util/messages.properties Tue May 11 20:37:47 2010
@@ -0,0 +1,344 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#  
+#      http://www.apache.org/licenses/LICENSE-2.0
+#  
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+# 
+
+# messages for EN locale
+security.01=Algorithm is null
+security.02=Provider is null or empty string
+security.03=Provider {0} is not available
+security.04=Provider is null
+security.05=Incorrect offset/len parameters
+security.06=Null input parameter
+security.07=the type parameter is null
+security.08=the algorithm parameter is null
+security.09=the format parameter is null
+security.0A=the encoded parameter is null
+security.0B=Could not create SecretKeySpec: {0}
+security.0C=unrecognized type/format combination: {0}/{1}
+security.0D=Could not resolute key: {0}
+security.0E=unrecognized key type: {0}
+security.0F=timestamp cannot be null
+security.10=signerCertPath cannot be null
+security.100=ASN.1 implicitly tagged type is expected at [{0}]. Expected tag: {1}, but encountered tag {2}
+security.101=ASN.1 type:{0} is not designed to be encoded
+security.102=Negative tag number
+security.103=Wrong tag class
+security.104=Tag long form is not implemented
+security.105=DER: only definite length encoding MUST be used
+security.106=ASN.1 bitstring: constructed identifier at [{0}]. Not valid for DER.
+security.107=ASN.1 bitstring: wrong content at [{0}]. DER requires zero unused bits in final octet.
+security.108=ASN.1 boolean: wrong content at [{0}]. DER allows only 0x00 or 0xFF values
+security.109=ASN.1 octetstring: constructed identifier at [{0}]. Not valid for DER.
+security.10A=ASN.1 string: constructed identifier at [{0}]. Not valid for DER.
+security.10B=ASN.1 UTCTime: constructed identifier at [{0}]. Not valid for DER.
+security.10C=ASN.1 UTCTime: wrong format for DER, identifier at [{0}]
+security.10D=ASN.1 GeneralizedTime: constructed identifier at [{0}]. Not valid for DER.
+security.10E=ASN.1 choice type: {0} MUST have at least one alternative
+security.10F=ASN.1 choice type: {0} MUST have alternatives with distinct tags
+security.11={0} {1} implementation not found: {2}
+security.110=Failed to decode ASN.1 choice type.  No alternatives were found for {0}
+security.111=Wrong content length
+security.112=Decoding indefined length encoding is not provided
+security.113=Too long encoding at [{0}]
+security.114=ASN.1 Bitstring: wrong length. Tag at [{0}]
+security.115=ASN.1 Bitstring: wrong content at [{0}]. A number of unused bits MUST be in range 0 to 7
+security.116=ASN.1 Bitstring: wrong content at [{0}]. For empty string unused bits MUST be 0
+security.117=Decoding constructed ASN.1 bitstring  type is not provided
+security.118=ASN.1 bitstring identifier is expected at [{0}], but encountered: {1}
+security.119=ASN.1 enumerated identifier is expected at [{0}], but encountered: {1}
+security.11A=ASN.1 enumerated: wrong length for identifier at [{0}]
+security.11B=ASN.1 enumerated: wrong content at [{0}]. An integer MUST be encoded in minimum number of octets
+security.11C=ASN.1 boolean identifier is expected at [{0}], but encountered:{1} 
+security.11D=Wrong length for ASN.1 boolean at [{0}]
+security.11E=ASN.1 GeneralizedTime: encoded format is not implemented
+security.11F=ASN.1 GeneralizedTime wrongly encoded at [{0}]
+security.12={0}: service cannot use the parameter
+security.120=Decoding constructed ASN.1 GeneralizedTime type is not provided
+security.121=ASN.1 GeneralizedTime identifier is expected at [{0}], but encountered: {1}
+security.122=ASN.1 UTCTime: local time format is not supported.
+security.123=ASN.1 UTCTime: wrong length, identifier at [{0}]
+security.124=Decoding constructed ASN.1 UTCTime type is not provided
+security.125=ASN.1 UTCTime identifier is expected at [{0}], but encountered: {1}
+security.126=Time encoding has invalid char
+security.127=ASN.1 integer identifier is expected at [{0}], but encountered: {1}
+security.128=Wrong length for ASN.1 integer at [{0}]
+security.129=Wrong content for ASN.1 integer at [{0}]. An integer MUST be encoded in minimum number of octets
+security.12A=Decoding constructed ASN.1 octet string  type is not provided
+security.12B=ASN.1 octetstring identifier is expected at [{0}], but encountered: {1}
+security.12C=ASN.1 OID identifier is expected at [{0}], but encountered: {1}
+security.12D=Wrong length for ASN.1 object identifier at [{0}]
+security.12E=Wrong encoding at [{0}]
+security.12F=ASN.1 sequence identifier is expected at [{0}], but encountered: {1}
+security.13=Cert's public key does not match Identity's public key
+security.130=ASN.1 Sequence: mandatory value is missing at [{0}]
+security.131=Mandatory value is missing at [{0}]
+security.132=ASN.1 Sequence: mandatory value is missing at [{0}]
+security.133=Mandatory value is missing at [{0}]
+security.134=Wrong encoding at [{0}]. Content's length and encoded length are not the same
+security.135=ASN.1 sequenceOf identifier is expected at [{0}], but encountered: {1}
+security.136=ASN.1 set identifier is expected at [{0}], but encountered: {1}
+security.137=Decoding ASN.1 Set type is not provided
+security.138=ASN.1 setOf identifier is expected at [{0}], but encountered: {1}
+security.139=Decoding constructed ASN.1 string type is not provided
+security.13A=ASN.1 string type identifier is expected at [{0}], but encountered: {1}
+security.13B=Unexpected end of encoding
+security.13C=Failed to read encoded content
+security.13D=Number of unused bits MUST be in range 0-7
+security.13E=For empty bit string unused bits MUST be 0
+security.13F=ASN.1 explicitly tagged type is expected at [{0}]. Expected tag: {1}, but encountered tag {2}
+security.14=key already used in scope
+security.140=thread can not be null
+security.141=You can not modify this map.
+security.142=null context may be stored only once.
+security.143=Error expanding alias : {0}
+security.144=Self protocol is valid only in context of Principal-based grant entries
+security.145=Unknown expansion protocol : {0}
+security.146=No KeyStore to resolve signers : "{0}"
+security.147=No KeyStore to resolve principal by alias : "{0}"
+security.148=Invalid certificate for alias "{0}" : {1}. Only X509Certificate should be aliased to principals.
+security.149=Null algorithm name
+security.14A={0} {1} implementation not found
+security.14B={0} , algorithm is null
+security.14C=Provider implementation should be specified via "{0}" security property
+security.14D=Provided class {0} does not implement {1}
+security.14E=Unable to instantiate provider : {0}
+security.14F=Unknown key: {0}
+security.15=collection is read-only
+security.150=No suitable constructors found in permission class : {0}. Zero, one or two-argument constructor is expected
+security.151=Certificate Factory supports CRLs and Certificates in (PEM) ASN.1 DER encoded form, and Certification Paths in PkiPath and PKCS7 formats.
+security.152=Input Stream contains not enough data.
+security.153=Input stream should not be null.
+security.154=Invalid PKCS7 data provided
+security.155=There is no data in the stream.
+security.156=Incorrect PEM encoding: EOF before content.
+security.157=Incorrect Base64 encoding: EOF without closing delimiter.
+security.158=Incorrect Base64 encoding: New line code is expected before closing delimiter boundary.
+security.159=Incorrect Base64 encoding.
+security.15A=Could not reset the stream: position became invalid or stream has not been marked.
+security.15B=Incorrect PEM encoding: '-----BEGIN{0}' is expected as opening delimiter boundary.
+security.15B1=Incorrect PEM encoding: '-----END{0}' is expected as closing delimiter boundary.
+security.15B2=Incorrect PEM encoding: New line code is expected after the opening delimiter boundary."
+security.15B3=Bad Certificate encoding.
+security.15B4=Bad CRL encoding.
+security.15C=Signature was not verified.
+security.15D=One of provided certificates is not X509 certificate
+security.15E=Incorrect encoded form: {0}
+security.15F=Unsupported encoding.
+security.16=invalid permission: {0}
+security.160=Incorrect PKCS7 encoded form: missing signed data
+security.161=Encoding Error occurred
+security.162=null is passed to 'buf' parameter
+security.163=buf.lendth doesn't fit supplied offset and len
+security.164=\ len < digest's length (which is 20 bytes) 
+security.165=negative offset: {0}
+security.166=no byte[] passed to 'input' parameter
+security.167=input.lendth doesn't fit supplied offset and len
+security.168='privateKey' is not instanceof DSAPrivateKey
+security.169=bad p
+security.16A=bad q
+security.16B=x is not positive or >= q
+security.16C='publicKey' is not instanceof DSAPublicKey
+security.16D=y is not positive
+security.16E=invalid parameter for this engine
+security.16F=signature bytes have invalid encoding
+security.17=no more elements
+security.170=bad argument: byte[] is too small
+security.171=numBytes={0}
+security.172=OID's group is null
+security.173=No SignedData found
+security.174=Can not recognize a critical extension
+security.175=Incorrect MD
+security.176=Incorrect signature
+security.177=Illegal format: 
+security.178=Unrecognizable attribute name: {0}
+security.179=AttributeValue getDecodedObject MUST not be invoked
+security.17A=AttributeValue encodeContent MUST not be invoked
+security.17B=ObjectIdentifier: invalid static initialization - duplicate OIDs:{0}, {1}
+security.17C=ObjectIdentifier: invalid static initialization - small OID pool capacity
+security.17D=permittedSubtrees are empty
+security.17E=excludedSubtrees are empty
+security.17F=DistributionPoint MUST NOT consist of only the reasons field
+security.18=Could not store certificate
+security.180=Unknown string representation for type [{0}]
+security.181=Unknown type: [{0}]
+security.182=Specified iPAddress is not correct.
+security.183=GeneralName: unknown tag: {0}
+security.184=DNS name must start with a letter:'{0}' {1} 
+security.185=Incorrect DNS name: {0}
+security.186=Incorrect DNS name: label ends with '-': {0}
+security.187=Bad representation of uniformResourceIdentifier. It must include the scheme and a scheme-specific-part: {0}
+security.188=Bad representation of uniformResourceIdentifier. It should not be relative: {0}
+security.189=Bad representation of uniformResourceIdentifier.{0}
+security.18A=OID should consist of no less than 2 components:{0}
+security.18B=Component of IPv4 address should consist of no more than 3 decimal numbers: {0}
+security.18C=Incorrect IP representation: {0}
+security.18D=IPv4 address should consist of 4 decimal numbers: {0}
+security.18E=Incorrect IPv6 representation: '{0}'
+security.18F=IPv6 address should consist of 8 hexadecimal numbers: {0}
+security.19=Could not find CertificateFactory of type {0}
+security.190=GeneralName: scheme is missing in URI: {0}
+security.191=GeneralName: unknown tag: {0}
+security.192=Invalid distinguished name string
+security.193=ATTENTION: 'bytesRead == -1' in getLinuxRandomBits()
+security.194=ATTENTION: IOException in RandomBitsSupplier.getLinuxRandomBits()\n
+security.195=numBytes <= 0  : {0}
+security.196=ATTENTION: service is not available : no random devices
+security.197=ATTENTION: service is not available : native library is not linked
+security.198=ATTENTION: getWindowsRandom(myBytes, numBytes) returned false
+security.199={0} {1} implementation not found: 
+security.1A=Could not generate certificate
+security.1B=The value of len parameter is less than the actual digest length.
+security.1C=Invalid negative offset
+security.1D=Incorrect offset or len value
+security.1E=Parameter has already been initialized
+security.1F=Parameter has not been initialized
+security.20=invalid null permission
+security.21=Null permission
+security.22=collection is corrupted
+security.23=all-enabled flag is corrupted
+security.24=Inconsistent types of contained permissions
+security.25=Invalid state of wildcard flag
+security.26=The public key in the certificate cannot be used for digital signature purposes
+security.27=Signature object is not initialized properly.
+security.28=name must not be null
+security.29=name must not be empty
+security.2D=The value of len parameter is less than the actual signature length
+security.2E=Method initialize(AlgorithmParameterSpec params, SecureRandom random)is not supported
+security.2F=type cannot be null
+security.2A=The filter is null
+security.2B=The filter is not in the required format
+security.2C=The key is null
+security.30=Cannot encode certificate {0}
+security.31=target type field is corrupted
+security.32=Error decoding certificate
+security.33=Not Supported operation
+security.35=protectionParameter is neither PasswordProtection nor CallbackHandlerProtection instance
+security.36=Password was destroyed
+security.37=ProtectionParameter object is not PasswordProtection: {0}
+security.38=Unknown KeyStore.Entry object
+security.39=entry is null
+security.3A=protParam should be PasswordProtection or CallbackHandlerProtection
+security.3B=Entry object is neither PrivateKeyObject nor SecretKeyEntrynor TrustedCertificateEntry:  {0}
+security.3C=Incorrect ProtectionParameter
+security.3D=Default CallbackHandler was not defined
+security.3E=LoadSroreParameter is null
+security.3F=alias is null
+security.40=entryClass is null
+security.41=keystore is null
+security.41=the keyStore parameter is null
+security.42=protectionParameter is null
+security.43=file is null
+security.44=File: {0} does not exist
+security.45={0} does not refer to a normal file
+security.46=getKeyStore() was not invoked
+security.47=handler is null
+security.48=privateKey is null
+security.49=chain is null
+security.4A=chain length equals 0
+security.4B=Algorithm of private key does not match algorithm of public key in end certificate of entry (with index number: 0)
+security.4C=Certificates from the given chain have different types
+security.4D=secretKey is null
+security.4E=trustCertificate is null
+security.4F=KeyStore was not initialized
+security.50=password is null
+security.51=stream is null
+security.52=Certificate chain is not defined for Private key 
+security.53=Index should be -1 when CertPath is null
+security.54=Invalid index
+security.55=the certPath parameter is null
+security.56=The OID: "{0}" is incorrect.
+security.57=The name component is not a Stirng or a byte array.
+security.58=pathLen criteria should be >= -2
+security.59=Failed to get X500Principal issuer
+security.5A=Failed to get X500Principal subject
+security.5B=the maxPathLength parameter is less than -1
+security.5C=the trustedCert parameter is null
+security.5D=the caName parameter is null
+security.5E=the caPublicKey parameter is null
+security.5F=the caName parameter is empty string
+security.60=the caPrincipal parameter is null
+security.62=The name is not a String or byte array
+security.61=issuer
+security.63=Provided parameter is null
+security.64=the trustAnchor parameter is null
+security.65=the subjectPublicKey parameter is null
+security.66=Could not create serialization object:{0}
+security.67=Could not resolve cert path: {0}
+security.68=Could not resolve certificate: {0}
+security.69=the encoded length is 0
+security.6A=the keystore is empty
+security.6B=all list elements must be of type java.security.cert.CertStore
+security.6C=all set elements must be of type java.lang.String
+security.6D=the trust anchors set is empty
+security.6E=all set elements must be of type java.security.cert.TrustAnchor
+security.6F=the trustAnchors parameter is null
+security.70=Method engineGenerateCertPath(InputStream inStream) is not supported
+security.71=Method engineGenerateCertPath(InputStream inStream, String encoding) is not supported
+security.72=Method engineGenerateCertPath(List certificates) is not supported
+security.73=Method engineGetCertPathEncodings() is not supported
+security.74=There are no CertPath encodings
+security.75=the m is not positive
+security.76=the rp is null
+security.77=the rp is invalid
+security.78=the length of ks is invalid
+security.79=the ks is invalid
+security.7A=the field parameter is null
+security.7B=the a parameter is null
+security.7C=the b parameter is null
+security.7D=the a is not in the field
+security.7E=the b is not in the field
+security.7F=invalid saltLen
+security.80=the mdName parameter is null
+security.81=mgfName is null
+security.82=invalid trailerField
+security.83=the {0} parameter is null
+security.84=the w parameter is point at infinity
+security.85=the otherPrimeInfo length is 0
+security.86=the {0} parameter is not positive
+security.87=The stream should not be null
+security.88=The data should not be null
+security.89=Expected entries are : "grant" or "keystore"
+security.8A=Expected syntax is : keystore "url"[, "type"]
+security.8B=Expected syntax is : signedby "name1,...,nameN"
+security.8C=Expected syntax is : codebase "url"
+security.8D=Expected syntax is : principal [class_name] "principal_name"
+security.8E=Expected syntax is : permission permission_class_name ["target_name"] [, "action_list"] [, signedby "name1,...,nameN"]
+security.8F=Unexpected token encountered: {0}. {1}
+security.90=Unexpected token encountered: {0}
+security.91=Class cannot be null or empty
+security.92=identity is null
+security.93=name '{0}' is already used
+security.94=key '{0}' is already used
+security.95=invalid identity's name
+security.96=identity is not found
+security.97=ASN.1 Named Bitstring: size contstrains
+security.98=OID's array is null
+security.99=OID MUST have at least 2 subidentifiers
+security.9A=Valid values for first subidentifier are 0, 1 and 2
+security.9B=If the first subidentifier has 0 or 1 value the second subidentifier value MUST be less then 40. 
+security.9C=Subidentifier MUST have positive value.
+security.9D=ObjectIdentifier string is null
+security.9E=Incorrect syntax
+security.9F=Implicit tagging can not be used for ASN.1 ANY or CHOICE type
+security.19A=Failed to decode keySpec encoding: {0}
+security.19B=Failed to decode parameters: {0}
+security.19C='keySpec' is neither DSAPrivateKeySpec nor PKCS8EncodedKeySpec
+security.19D='keySpec' is neither DSAPublicKeySpec nor X509EncodedKeySpec
+security.19E=null is passed to the 'keySpec' argument
+security.19F='key' is neither DSAPublicKey nor DSAPrivateKey
+security.1A0=ATTENTION: InvalidKeySpecException in engineGeneratePrivate: {0}
+security.1A1=ATTENTION: InvalidKeySpecException in engineGeneratePublic: {0}
+security.1A2=Failed to encode issuer name
+security.1A3=AccessDescriptions list is null or empty

Propchange: incubator/river/jtsk/trunk/src/org/apache/river/imp/security/policy/util/messages.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/river/jtsk/trunk/src/org/apache/river/imp/util/ConcurrentWeakIdentityMap.java
URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/src/org/apache/river/imp/util/ConcurrentWeakIdentityMap.java?rev=943285&view=auto
==============================================================================
--- incubator/river/jtsk/trunk/src/org/apache/river/imp/util/ConcurrentWeakIdentityMap.java (added)
+++ incubator/river/jtsk/trunk/src/org/apache/river/imp/util/ConcurrentWeakIdentityMap.java Tue May 11 20:37:47 2010
@@ -0,0 +1,214 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.river.imp.util;
+
+
+import java.lang.ref.ReferenceQueue;
+import java.lang.ref.WeakReference;
+import java.util.Collection;
+import java.util.Enumeration;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+
+/**
+ * Identity-based weak hash map, safe for concurrent threads.
+ * 
+ * Based on an underlying ConcurrentHashMap, it doesn't accept null keys.
+ *
+ *
+ * @param K - key
+ * @param V - value
+ * @author Peter Firmstone.
+ *
+ * @since 2.3
+ */
+public class ConcurrentWeakIdentityMap<K, V> implements ConcurrentMap<K, V> {
+    // ConcurrentHashMap must be protected from null values;
+    private final ConcurrentHashMap<Key, V> map = new ConcurrentHashMap<Key, V>();
+    private final ReferenceQueue queue = new ReferenceQueue();
+
+    /**
+     * Associates value with given key, returning value previously associated
+     * with key, or null if none.
+     * @param key - Key
+     * @param value - Value
+     * @return previous value or null
+     */
+    public V put(K key, V value) {
+	processQueue();
+        if (key == null){return null;}
+	return map.put(Key.create(key, queue), value);
+    }
+
+    /**
+     * Returns value associated with given key, or null if none.
+     */
+    public V get(Object key) {
+	processQueue();
+        if (key == null) { return null;}
+	return map.get(Key.create(key, null));
+    }
+
+    /**
+     * Removes association for given key, returning value previously associated
+     * with key, or null if none.
+     */
+    public V remove(Object key) {
+	processQueue();
+        if (key == null) {return null;}
+	return map.remove(Key.create(key, null));
+    }
+
+    /**
+     * Returns collection containing all values currently held in this map.
+     */
+    public Collection<V> values() {
+	processQueue();
+	return map.values();
+    }
+
+    /**
+     * Removes all associations from this map.
+     */
+    public void clear() {
+	processQueue();
+	map.clear();
+    }
+
+    private void processQueue() {
+	Key k;
+	while ((k = (Key) queue.poll()) != null) {
+	    map.remove(k);
+	}
+    }
+
+    private static class Key<T> extends WeakReference<T> {
+	private final int hash;
+
+        @SuppressWarnings("unchecked")
+	static Key create(Object k, ReferenceQueue q) {
+            //if (k == null) {return null;} // Perhaps this is incorrect
+	    if (q == null) {return new Key(k);}
+	    return new Key(k, q);	  
+	}
+
+	private Key(T k) {
+	    super(k);
+	    hash = System.identityHashCode(k);
+	}
+
+	private Key(T k, ReferenceQueue<? super T> q) {
+	    super(k, q);
+	    hash = System.identityHashCode(k);
+	}
+
+        @Override
+	public boolean equals(Object o) {
+	    if (this == o) {
+		return true;
+	    } else if (!(o instanceof Key)) {
+		return false;
+	    }
+	    Object k1 = get(), k2 = ((Key) o).get();
+	    return (k1 != null && k2 != null && k1 == k2);
+	}
+
+        @Override
+	public int hashCode() {
+	    return hash;
+	}
+    }
+
+    public int size() {
+        processQueue();
+        return map.size();
+    }
+
+    public boolean isEmpty() {
+        processQueue();
+        return map.isEmpty();
+    }
+
+    @SuppressWarnings("unchecked")
+    public boolean containsKey(Object key) {
+        processQueue();
+        if (key == null) {return false;}
+        return map.containsKey(new Key(key));
+    }
+
+    public boolean containsValue(Object value) {
+        processQueue();
+        if (value == null) {return false;}
+        return map.containsValue(value);
+    }
+    
+    /**
+     * Unsupported method
+     * @param m
+     */
+    public void putAll(Map<? extends K, ? extends V> m) {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+    
+    @SuppressWarnings("unchecked")
+    public Set<K> keySet() {
+        processQueue();
+        Enumeration<Key> keys = map.keys(); //Defensive copy by ConcurrentHashMap
+        Set<K> keySet = new HashSet<K>();
+        while (keys.hasMoreElements()){
+            keySet.add( (K) keys.nextElement().get());
+        }
+        return keySet;
+    }
+    
+    /**
+     * Unsupported method
+     * @return
+     */
+    public Set<Map.Entry<K, V>> entrySet() {
+        throw new UnsupportedOperationException("Not supported yet, ever?");
+    }
+
+    @SuppressWarnings("unchecked")
+    public V putIfAbsent(K key, V value) {
+        processQueue();  //may be a slight delay before atomic putIfAbsent
+        return map.putIfAbsent(new Key(key), value);       
+    }
+
+    @SuppressWarnings("unchecked")
+    public boolean remove(Object key, Object value) {
+        return map.remove(new Key(key), value);
+    }
+
+    @SuppressWarnings("unchecked")
+    public boolean replace(K key, V oldValue, V newValue) {
+        processQueue();
+        return map.replace(new Key(key), oldValue, newValue);
+    }
+
+    @SuppressWarnings("unchecked")
+    public V replace(K key, V value) {
+        processQueue();
+        return map.replace(new Key(key), value);
+    }
+}

Propchange: incubator/river/jtsk/trunk/src/org/apache/river/imp/util/ConcurrentWeakIdentityMap.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: incubator/river/jtsk/trunk/test/src/org/apache/river/imp/security/policy/se/ConcurrentPermissionsTest.java (from r933907, incubator/river/jtsk/trunk/test/src/org/apache/river/security/concurrent/ConcurrentPermissionsTest.java)
URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/test/src/org/apache/river/imp/security/policy/se/ConcurrentPermissionsTest.java?p2=incubator/river/jtsk/trunk/test/src/org/apache/river/imp/security/policy/se/ConcurrentPermissionsTest.java&p1=incubator/river/jtsk/trunk/test/src/org/apache/river/security/concurrent/ConcurrentPermissionsTest.java&r1=933907&r2=943285&rev=943285&view=diff
==============================================================================
--- incubator/river/jtsk/trunk/test/src/org/apache/river/security/concurrent/ConcurrentPermissionsTest.java (original)
+++ incubator/river/jtsk/trunk/test/src/org/apache/river/imp/security/policy/se/ConcurrentPermissionsTest.java Tue May 11 20:37:47 2010
@@ -3,7 +3,7 @@
  * and open the template in the editor.
  */
 
-package org.apache.river.security.concurrent;
+package org.apache.river.imp.security.policy.se;
 
 import java.lang.reflect.ReflectPermission;
 import java.net.NetPermission;
@@ -13,8 +13,10 @@ import java.security.UnresolvedPermissio
 import java.util.ArrayList;
 import java.util.Enumeration;
 import java.util.PropertyPermission;
+import java.util.logging.LoggingPermission;
 import net.jini.security.AuthenticationPermission;
-import org.apache.river.security.RevokeablePermissionCollection;
+import org.apache.river.imp.security.policy.se.ConcurrentPermissions;
+import org.apache.river.imp.security.policy.se.RevokeablePermissionCollection;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
@@ -83,7 +85,7 @@ public class ConcurrentPermissionsTest {
      */
     @Test
     public void implies2() {
-        System.out.println("implies");
+        System.out.println("implies2");
         Permission permission = new AuthenticationPermission("javax.security.auth.x500.X500Principal \"CN=serverRSA\"", "listen");
         ConcurrentPermissions instance = new ConcurrentPermissions();
         instance.add(permission);
@@ -91,7 +93,21 @@ public class ConcurrentPermissionsTest {
         boolean result = instance.implies(permission);
         assertEquals(expResult, result);
     }
-
+    
+    /**
+     * Test of implies method, of class ConcurrentPermissions.
+     */
+    @Test
+    public void implies3() {
+        System.out.println("implies3");
+        Permission permission = new LoggingPermission ("control", null);
+        Permission permisCheck = new LoggingPermission ("control", null);
+        ConcurrentPermissions instance = new ConcurrentPermissions();
+        instance.add(permission);
+        boolean expResult = true;
+        boolean result = instance.implies(permisCheck);
+        assertEquals(expResult, result);
+    }
     /**
      * Test of elements method, of class ConcurrentPermissions.
      * TODO Concurrent adds.
@@ -102,14 +118,17 @@ public class ConcurrentPermissionsTest {
         Permission permission0 = new ReflectPermission ("suppressAccessChecks");
         Permission permission1 = new PropertyPermission ("sun.security.key.serial.interop", "read");
         Permission permission2 = new NetPermission ("specifyStreamHandler");
+        Permission permission3 = new LoggingPermission ("control", null);
         ConcurrentPermissions instance = new ConcurrentPermissions();
         instance.add(permission0);
         instance.add(permission1);
         instance.add(permission2);
+        instance.add(permission3);
         ArrayList<Permission> expResult = new ArrayList<Permission>();
         expResult.add(permission0);
         expResult.add(permission1);
         expResult.add(permission2);
+        expResult.add(permission3);
         Enumeration<Permission> elem = instance.elements();
         ArrayList<Permission> result = new ArrayList<Permission>();
         while (elem.hasMoreElements()){

Copied: incubator/river/jtsk/trunk/test/src/org/apache/river/imp/security/policy/se/ConcurrentPolicyFileTest.java (from r933907, incubator/river/jtsk/trunk/test/src/org/apache/river/security/concurrent/ConcurrentPolicyFileTest.java)
URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/test/src/org/apache/river/imp/security/policy/se/ConcurrentPolicyFileTest.java?p2=incubator/river/jtsk/trunk/test/src/org/apache/river/imp/security/policy/se/ConcurrentPolicyFileTest.java&p1=incubator/river/jtsk/trunk/test/src/org/apache/river/security/concurrent/ConcurrentPolicyFileTest.java&r1=933907&r2=943285&rev=943285&view=diff
==============================================================================
--- incubator/river/jtsk/trunk/test/src/org/apache/river/security/concurrent/ConcurrentPolicyFileTest.java (original)
+++ incubator/river/jtsk/trunk/test/src/org/apache/river/imp/security/policy/se/ConcurrentPolicyFileTest.java Tue May 11 20:37:47 2010
@@ -20,7 +20,7 @@
 * @version $Revision$
 */
 
-package org.apache.river.security.concurrent;
+package org.apache.river.imp.security.policy.se;
 
 import tests.support.FakePrincipal;
 import java.net.URL;
@@ -36,10 +36,11 @@ import java.util.Collection;
 import java.util.HashSet;
 import java.util.Properties;
 
-import org.apache.river.security.policy.util.PolicyEntry;
-import org.apache.river.security.policy.util.UnresolvedPrincipal;
-import org.apache.river.security.policy.util.DefaultPolicyParser;
+import org.apache.river.imp.security.policy.util.PolicyEntry;
+import org.apache.river.imp.security.policy.util.UnresolvedPrincipal;
+import org.apache.river.imp.security.policy.util.DefaultPolicyParser;
 import junit.framework.TestCase;
+import org.apache.river.imp.security.policy.se.ConcurrentPolicyFile;
 
 
 /**

Copied: incubator/river/jtsk/trunk/test/src/org/apache/river/imp/security/policy/se/MultiReadPermissionCollectionTest.java (from r933907, incubator/river/jtsk/trunk/test/src/org/apache/river/security/concurrent/MultiReadPermissionCollectionTest.java)
URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/test/src/org/apache/river/imp/security/policy/se/MultiReadPermissionCollectionTest.java?p2=incubator/river/jtsk/trunk/test/src/org/apache/river/imp/security/policy/se/MultiReadPermissionCollectionTest.java&p1=incubator/river/jtsk/trunk/test/src/org/apache/river/security/concurrent/MultiReadPermissionCollectionTest.java&r1=933907&r2=943285&rev=943285&view=diff
==============================================================================
--- incubator/river/jtsk/trunk/test/src/org/apache/river/security/concurrent/MultiReadPermissionCollectionTest.java (original)
+++ incubator/river/jtsk/trunk/test/src/org/apache/river/imp/security/policy/se/MultiReadPermissionCollectionTest.java Tue May 11 20:37:47 2010
@@ -3,16 +3,17 @@
  * and open the template in the editor.
  */
 
-package org.apache.river.security.concurrent;
+package org.apache.river.imp.security.policy.se;
+
 
-import org.apache.river.security.concurrent.MultiReadPermissionCollection;
 import java.security.Permission;
 import java.security.PermissionCollection;
 import java.util.ArrayList;
 import java.util.Enumeration;
 import net.jini.security.AccessPermission;
 import net.jini.security.AuthenticationPermission;
-import org.apache.river.security.RevokeablePermissionCollection;
+import org.apache.river.imp.security.policy.se.RevokeablePermissionCollection;
+import org.apache.river.imp.security.policy.se.MultiReadPermissionCollection;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;

Copied: incubator/river/jtsk/trunk/test/src/org/apache/river/imp/security/policy/se/PermissionCollectionTest.java (from r933907, incubator/river/jtsk/trunk/test/src/org/apache/river/security/concurrent/PermissionCollectionTest.java)
URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/test/src/org/apache/river/imp/security/policy/se/PermissionCollectionTest.java?p2=incubator/river/jtsk/trunk/test/src/org/apache/river/imp/security/policy/se/PermissionCollectionTest.java&p1=incubator/river/jtsk/trunk/test/src/org/apache/river/security/concurrent/PermissionCollectionTest.java&r1=933907&r2=943285&rev=943285&view=diff
==============================================================================
--- incubator/river/jtsk/trunk/test/src/org/apache/river/security/concurrent/PermissionCollectionTest.java (original)
+++ incubator/river/jtsk/trunk/test/src/org/apache/river/imp/security/policy/se/PermissionCollectionTest.java Tue May 11 20:37:47 2010
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.river.security.concurrent;
+package org.apache.river.imp.security.policy.se;
 
 import java.io.File;
 import java.io.FileOutputStream;

Copied: incubator/river/jtsk/trunk/test/src/org/apache/river/imp/security/policy/se/Permissions_ImplTest.java (from r933907, incubator/river/jtsk/trunk/test/src/org/apache/river/security/concurrent/Permissions_ImplTest.java)
URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/test/src/org/apache/river/imp/security/policy/se/Permissions_ImplTest.java?p2=incubator/river/jtsk/trunk/test/src/org/apache/river/imp/security/policy/se/Permissions_ImplTest.java&p1=incubator/river/jtsk/trunk/test/src/org/apache/river/security/concurrent/Permissions_ImplTest.java&r1=933907&r2=943285&rev=943285&view=diff
==============================================================================
--- incubator/river/jtsk/trunk/test/src/org/apache/river/security/concurrent/Permissions_ImplTest.java (original)
+++ incubator/river/jtsk/trunk/test/src/org/apache/river/imp/security/policy/se/Permissions_ImplTest.java Tue May 11 20:37:47 2010
@@ -20,7 +20,7 @@
 * @version $Revision$
 */
 
-package org.apache.river.security.concurrent;
+package org.apache.river.imp.security.policy.se;
 import java.security.AllPermission;
 import java.security.BasicPermission;
 import java.security.Permission;
@@ -29,6 +29,7 @@ import java.security.SecurityPermission;
 import java.security.UnresolvedPermission;
 
 import junit.framework.TestCase;
+import org.apache.river.imp.security.policy.se.ConcurrentPermissions;
 
 /**
  * Tests for <code>Permissions</code>

Copied: incubator/river/jtsk/trunk/test/src/org/apache/river/imp/security/policy/util/DefaultPolicyParserTest.java (from r933907, incubator/river/jtsk/trunk/test/src/org/apache/river/security/policy/util/DefaultPolicyParserTest.java)
URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/test/src/org/apache/river/imp/security/policy/util/DefaultPolicyParserTest.java?p2=incubator/river/jtsk/trunk/test/src/org/apache/river/imp/security/policy/util/DefaultPolicyParserTest.java&p1=incubator/river/jtsk/trunk/test/src/org/apache/river/security/policy/util/DefaultPolicyParserTest.java&r1=933907&r2=943285&rev=943285&view=diff
==============================================================================
--- incubator/river/jtsk/trunk/test/src/org/apache/river/security/policy/util/DefaultPolicyParserTest.java (original)
+++ incubator/river/jtsk/trunk/test/src/org/apache/river/imp/security/policy/util/DefaultPolicyParserTest.java Tue May 11 20:37:47 2010
@@ -20,8 +20,10 @@
 * @version $Revision$
 */
 
-package org.apache.river.security.policy.util;
+package org.apache.river.imp.security.policy.util;
 
+import org.apache.river.imp.security.policy.util.DefaultPolicyParser;
+import org.apache.river.imp.security.policy.util.PolicyEntry;
 import java.io.File;
 import java.io.FileWriter;
 import java.net.URL;

Copied: incubator/river/jtsk/trunk/test/src/org/apache/river/imp/security/policy/util/PolicyEntryTest.java (from r933907, incubator/river/jtsk/trunk/test/src/org/apache/river/security/policy/util/PolicyEntryTest.java)
URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/test/src/org/apache/river/imp/security/policy/util/PolicyEntryTest.java?p2=incubator/river/jtsk/trunk/test/src/org/apache/river/imp/security/policy/util/PolicyEntryTest.java&p1=incubator/river/jtsk/trunk/test/src/org/apache/river/security/policy/util/PolicyEntryTest.java&r1=933907&r2=943285&rev=943285&view=diff
==============================================================================
--- incubator/river/jtsk/trunk/test/src/org/apache/river/security/policy/util/PolicyEntryTest.java (original)
+++ incubator/river/jtsk/trunk/test/src/org/apache/river/imp/security/policy/util/PolicyEntryTest.java Tue May 11 20:37:47 2010
@@ -20,8 +20,10 @@
 * @version $Revision$
 */
 
-package org.apache.river.security.policy.util;
+package org.apache.river.imp.security.policy.util;
 
+import org.apache.river.imp.security.policy.util.UnresolvedPrincipal;
+import org.apache.river.imp.security.policy.util.PolicyEntry;
 import java.net.URL;
 import java.security.cert.Certificate;
 import java.security.AllPermission;

Copied: incubator/river/jtsk/trunk/test/src/org/apache/river/imp/security/policy/util/PolicyUtilsTest.java (from r933907, incubator/river/jtsk/trunk/test/src/org/apache/river/security/policy/util/PolicyUtilsTest.java)
URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/test/src/org/apache/river/imp/security/policy/util/PolicyUtilsTest.java?p2=incubator/river/jtsk/trunk/test/src/org/apache/river/imp/security/policy/util/PolicyUtilsTest.java&p1=incubator/river/jtsk/trunk/test/src/org/apache/river/security/policy/util/PolicyUtilsTest.java&r1=933907&r2=943285&rev=943285&view=diff
==============================================================================
--- incubator/river/jtsk/trunk/test/src/org/apache/river/security/policy/util/PolicyUtilsTest.java (original)
+++ incubator/river/jtsk/trunk/test/src/org/apache/river/imp/security/policy/util/PolicyUtilsTest.java Tue May 11 20:37:47 2010
@@ -20,8 +20,9 @@
 * @version $Revision$
 */
 
-package org.apache.river.security.policy.util;
+package org.apache.river.imp.security.policy.util;
 
+import org.apache.river.imp.security.policy.util.PolicyUtils;
 import java.io.File;
 import java.net.URL;
 import java.security.AllPermission;

Modified: incubator/river/jtsk/trunk/test/src/tests/support/FakePrincipal.java
URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/test/src/tests/support/FakePrincipal.java?rev=943285&r1=943284&r2=943285&view=diff
==============================================================================
--- incubator/river/jtsk/trunk/test/src/tests/support/FakePrincipal.java (original)
+++ incubator/river/jtsk/trunk/test/src/tests/support/FakePrincipal.java Tue May 11 20:37:47 2010
@@ -22,7 +22,6 @@
 
 package tests.support;
 
-import org.apache.river.security.concurrent.*;
 
 public class FakePrincipal extends MyPrincipal {
     public FakePrincipal(String name) {