[pkg-java] r2693 -
branches/dom4j/feature/remove-nonfree-concurrent-class/src/java/org/dom4j/tree
Marcus Better
marcusb-guest at alioth.debian.org
Tue Oct 31 11:24:14 UTC 2006
Author: marcusb-guest
Date: 2006-10-31 12:24:13 +0100 (Tue, 31 Oct 2006)
New Revision: 2693
Modified:
branches/dom4j/feature/remove-nonfree-concurrent-class/src/java/org/dom4j/tree/NamespaceCache.java
Log:
Merge change accidentally committed to debian branch (r2692).
Modified: branches/dom4j/feature/remove-nonfree-concurrent-class/src/java/org/dom4j/tree/NamespaceCache.java
===================================================================
--- branches/dom4j/feature/remove-nonfree-concurrent-class/src/java/org/dom4j/tree/NamespaceCache.java 2006-10-31 11:11:20 UTC (rev 2692)
+++ branches/dom4j/feature/remove-nonfree-concurrent-class/src/java/org/dom4j/tree/NamespaceCache.java 2006-10-31 11:24:13 UTC (rev 2693)
@@ -26,42 +26,46 @@
* @version $Revision: 1.15 $
*/
public class NamespaceCache {
- private static final String CONCURRENTREADERHASHMAP_CLASS
- = "edu.emory.mathcs.backport.java.util.concurrent.ConcurrentHashMap";
+ private static final String BACKPORT_CONCURRENTHASHMAP_CLASS
+ = "edu.emory.mathcs.backport.java.util.concurrent.ConcurrentHashMap";
+ private static final String OSWEGO_CONCURRENTHASHMAP_CLASS
+ = "EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap";
/**
* Cache of {@link Map}instances indexed by URI which contain caches of
* {@link Namespace}for each prefix
*/
- protected static Map cache;
+ protected static Map cache = newConcurrentHashMap();
/**
* Cache of {@link Namespace}instances indexed by URI for default
* namespaces with no prefixes
*/
- protected static Map noPrefixCache;
+ protected static Map noPrefixCache = newConcurrentHashMap();
- static {
+ protected static Map newConcurrentHashMap()
+ {
/* Try the java.util.concurrent.ConcurrentHashMap first. */
try {
Class clazz = Class
.forName("java.util.concurrent.ConcurrentHashMap");
Constructor construct = clazz.getConstructor(new Class[] {
Integer.TYPE, Float.TYPE, Integer.TYPE });
- cache = (Map) construct.newInstance(new Object[] {new Integer(11),
+ return (Map) construct.newInstance(new Object[] {new Integer(11),
new Float(0.75f), new Integer(1) });
- noPrefixCache = (Map) construct.newInstance(new Object[] {
- new Integer(11), new Float(0.75f), new Integer(1) });
} catch (Throwable t1) {
- /* Try to use the util.concurrent library (if in classpath) */
try {
- Class clazz = Class.forName(CONCURRENTREADERHASHMAP_CLASS);
- cache = (Map) clazz.newInstance();
- noPrefixCache = (Map) clazz.newInstance();
+ /* Try to use the backport-util-concurrent library */
+ Class clazz = Class.forName(BACKPORT_CONCURRENTHASHMAP_CLASS);
+ return (Map) clazz.newInstance();
} catch (Throwable t2) {
- /* If previous implementations fail, use internal one */
- cache = new ConcurrentReaderHashMap();
- noPrefixCache = new ConcurrentReaderHashMap();
+ try {
+ /* Try to use the oswego concurrent library */
+ Class clazz = Class.forName(OSWEGO_CONCURRENTHASHMAP_CLASS);
+ return (Map) clazz.newInstance();
+ } catch (Throwable t3) {
+ return null;
+ }
}
}
}
@@ -154,7 +158,7 @@
answer = (Map) cache.get(uri);
if (answer == null) {
- answer = new ConcurrentReaderHashMap();
+ answer = newConcurrentHashMap();
cache.put(uri, answer);
}
}
More information about the pkg-java-commits
mailing list