diff options
author | Robert Schuster <robertschuster@fsfe.org> | 2009-09-18 16:04:01 +0200 |
---|---|---|
committer | Robert Schuster <robertschuster@fsfe.org> | 2009-09-18 16:04:01 +0200 |
commit | 2e7c334a4f6b0882ee90c8be91f81d24e4d82496 (patch) | |
tree | 11c29c8c61eb8679015869fea7aab5e51cd8eec7 /recipes/xml-commons/dom4j-1.6.1/debian.patch | |
parent | 04800cfdf823ea3003eb1164c4d5dfd7e1db5679 (diff) |
dom4j 1.6.1: New recipe (for Jalimo SVN).
dom4j-native 1.6.1: Dito.
jaxen 1.1.1: Dito.
xom 1.1: Dito.
xpp2 2.1.10: Dito.
xpp3 1.1.3.4.0: Dito.
Diffstat (limited to 'recipes/xml-commons/dom4j-1.6.1/debian.patch')
-rw-r--r-- | recipes/xml-commons/dom4j-1.6.1/debian.patch | 1628 |
1 files changed, 1628 insertions, 0 deletions
diff --git a/recipes/xml-commons/dom4j-1.6.1/debian.patch b/recipes/xml-commons/dom4j-1.6.1/debian.patch new file mode 100644 index 0000000000..87fda85740 --- /dev/null +++ b/recipes/xml-commons/dom4j-1.6.1/debian.patch @@ -0,0 +1,1628 @@ +--- dom4j-1.6.1+dfsg.orig/src/java/org/jaxen/dom4j/DocumentNavigator.java ++++ dom4j-1.6.1+dfsg/src/java/org/jaxen/dom4j/DocumentNavigator.java +@@ -0,0 +1,501 @@ ++package org.jaxen.dom4j; ++ ++/* ++ * $Header: /home/projects/jaxen/scm/jaxen/src/java/main/org/jaxen/dom4j/DocumentNavigator.java,v 1.33 2006/07/03 13:17:30 elharo Exp $ ++ * $Revision: 1.33 $ ++ * $Date: 2006/07/03 13:17:30 $ ++ * ++ * ==================================================================== ++ * ++ * Copyright 2000-2005 bob mcwhirter & James Strachan. ++ * All rights reserved. ++ * ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions are ++ * met: ++ * ++ * * Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * ++ * * Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * * Neither the name of the Jaxen Project nor the names of its ++ * contributors may be used to endorse or promote products derived ++ * from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS ++ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED ++ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER ++ * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ++ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ++ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR ++ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ++ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING ++ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ++ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ * ++ * ==================================================================== ++ * This software consists of voluntary contributions made by many ++ * individuals on behalf of the Jaxen Project and was originally ++ * created by bob mcwhirter <bob@werken.com> and ++ * James Strachan <jstrachan@apache.org>. For more information on the ++ * Jaxen Project, please see <http://www.jaxen.org/>. ++ * ++ * $Id: DocumentNavigator.java,v 1.33 2006/07/03 13:17:30 elharo Exp $ ++*/ ++ ++import java.util.ArrayList; ++import java.util.HashSet; ++import java.util.Iterator; ++import java.util.List; ++ ++import org.dom4j.Attribute; ++import org.dom4j.Branch; ++import org.dom4j.CDATA; ++import org.dom4j.Comment; ++import org.dom4j.Document; ++import org.dom4j.DocumentException; ++import org.dom4j.Element; ++import org.dom4j.Namespace; ++import org.dom4j.Node; ++import org.dom4j.ProcessingInstruction; ++import org.dom4j.QName; ++import org.dom4j.Text; ++import org.dom4j.io.SAXReader; ++import org.jaxen.DefaultNavigator; ++import org.jaxen.FunctionCallException; ++import org.jaxen.NamedAccessNavigator; ++import org.jaxen.Navigator; ++import org.jaxen.XPath; ++import org.jaxen.JaxenConstants; ++import org.jaxen.saxpath.SAXPathException; ++import org.jaxen.util.SingleObjectIterator; ++ ++/** ++ * Interface for navigating around the DOM4J object model. ++ * ++ * <p> ++ * This class is not intended for direct usage, but is ++ * used by the Jaxen engine during evaluation. ++ * </p> ++ * ++ * @see XPath ++ * ++ * @author <a href="mailto:bob@werken.com">bob mcwhirter</a> ++ * @author Stephen Colebourne ++ */ ++public class DocumentNavigator extends DefaultNavigator implements NamedAccessNavigator ++{ ++ ++ /** ++ * ++ */ ++ private static final long serialVersionUID = 5582300797286535936L; ++ private transient SAXReader reader; ++ ++ /** Singleton implementation. ++ */ ++ private static class Singleton ++ { ++ /** Singleton instance. ++ */ ++ private static DocumentNavigator instance = new DocumentNavigator(); ++ } ++ ++ /** Retrieve the singleton instance of this <code>DocumentNavigator</code>. ++ */ ++ public static Navigator getInstance() ++ { ++ return Singleton.instance; ++ } ++ ++ public boolean isElement(Object obj) ++ { ++ return obj instanceof Element; ++ } ++ ++ public boolean isComment(Object obj) ++ { ++ return obj instanceof Comment; ++ } ++ ++ public boolean isText(Object obj) ++ { ++ return ( obj instanceof Text ++ || ++ obj instanceof CDATA ); ++ } ++ ++ public boolean isAttribute(Object obj) ++ { ++ return obj instanceof Attribute; ++ } ++ ++ public boolean isProcessingInstruction(Object obj) ++ { ++ return obj instanceof ProcessingInstruction; ++ } ++ ++ public boolean isDocument(Object obj) ++ { ++ return obj instanceof Document; ++ } ++ ++ public boolean isNamespace(Object obj) ++ { ++ return obj instanceof Namespace; ++ } ++ ++ public String getElementName(Object obj) ++ { ++ Element elem = (Element) obj; ++ ++ return elem.getName(); ++ } ++ ++ public String getElementNamespaceUri(Object obj) ++ { ++ Element elem = (Element) obj; ++ ++ String uri = elem.getNamespaceURI(); ++ if ( uri == null) ++ return ""; ++ else ++ return uri; ++ } ++ ++ public String getElementQName(Object obj) ++ { ++ Element elem = (Element) obj; ++ ++ return elem.getQualifiedName(); ++ } ++ ++ public String getAttributeName(Object obj) ++ { ++ Attribute attr = (Attribute) obj; ++ ++ return attr.getName(); ++ } ++ ++ public String getAttributeNamespaceUri(Object obj) ++ { ++ Attribute attr = (Attribute) obj; ++ ++ String uri = attr.getNamespaceURI(); ++ if ( uri == null) ++ return ""; ++ else ++ return uri; ++ } ++ ++ public String getAttributeQName(Object obj) ++ { ++ Attribute attr = (Attribute) obj; ++ ++ return attr.getQualifiedName(); ++ } ++ ++ public Iterator getChildAxisIterator(Object contextNode) ++ { ++ Iterator result = null; ++ if ( contextNode instanceof Branch ) ++ { ++ Branch node = (Branch) contextNode; ++ result = node.nodeIterator(); ++ } ++ if (result != null) { ++ return result; ++ } ++ return JaxenConstants.EMPTY_ITERATOR; ++ } ++ ++ /** ++ * Retrieves an <code>Iterator</code> over the child elements that ++ * match the supplied name. ++ * ++ * @param contextNode the origin context node ++ * @param localName the local name of the children to return, always present ++ * @param namespacePrefix the prefix of the namespace of the children to return ++ * @param namespaceURI the uri of the namespace of the children to return ++ * ++ * @return an Iterator that traverses the named children, or null if none ++ */ ++ public Iterator getChildAxisIterator( ++ Object contextNode, String localName, String namespacePrefix, String namespaceURI) { ++ ++ if ( contextNode instanceof Element ) { ++ Element node = (Element) contextNode; ++ return node.elementIterator(QName.get(localName, namespacePrefix, namespaceURI)); ++ } ++ if ( contextNode instanceof Document ) { ++ Document node = (Document) contextNode; ++ Element el = node.getRootElement(); ++ if (el == null || el.getName().equals(localName) == false) { ++ return JaxenConstants.EMPTY_ITERATOR; ++ } ++ if (namespaceURI != null) { ++ if (namespaceURI.equals(el.getNamespaceURI()) == false) { ++ return JaxenConstants.EMPTY_ITERATOR; ++ } ++ } ++ return new SingleObjectIterator(el); ++ } ++ ++ return JaxenConstants.EMPTY_ITERATOR; ++ } ++ ++ public Iterator getParentAxisIterator(Object contextNode) ++ { ++ if ( contextNode instanceof Document ) ++ { ++ return JaxenConstants.EMPTY_ITERATOR; ++ } ++ ++ Node node = (Node) contextNode; ++ ++ Object parent = node.getParent(); ++ ++ if ( parent == null ) ++ { ++ parent = node.getDocument(); ++ } ++ ++ return new SingleObjectIterator( parent ); ++ } ++ ++ public Iterator getAttributeAxisIterator(Object contextNode) ++ { ++ if ( ! ( contextNode instanceof Element ) ) ++ { ++ return JaxenConstants.EMPTY_ITERATOR; ++ } ++ ++ Element elem = (Element) contextNode; ++ ++ return elem.attributeIterator(); ++ } ++ ++ /** ++ * Retrieves an <code>Iterator</code> over the attribute elements that ++ * match the supplied name. ++ * ++ * @param contextNode the origin context node ++ * @param localName the local name of the attributes to return, always present ++ * @param namespacePrefix the prefix of the namespace of the attributes to return ++ * @param namespaceURI the URI of the namespace of the attributes to return ++ * @return an Iterator that traverses the named attributes, not null ++ */ ++ public Iterator getAttributeAxisIterator( ++ Object contextNode, String localName, String namespacePrefix, String namespaceURI) { ++ ++ if ( contextNode instanceof Element ) { ++ Element node = (Element) contextNode; ++ Attribute attr = node.attribute(QName.get(localName, namespacePrefix, namespaceURI)); ++ if (attr == null) { ++ return JaxenConstants.EMPTY_ITERATOR; ++ } ++ return new SingleObjectIterator(attr); ++ } ++ return JaxenConstants.EMPTY_ITERATOR; ++ } ++ ++ public Iterator getNamespaceAxisIterator(Object contextNode) ++ { ++ if ( ! ( contextNode instanceof Element ) ) ++ { ++ return JaxenConstants.EMPTY_ITERATOR; ++ } ++ ++ Element element = (Element) contextNode; ++ List nsList = new ArrayList(); ++ HashSet prefixes = new HashSet(); ++ for ( Element context = element; context != null; context = context.getParent() ) { ++ List declaredNS = new ArrayList(context.declaredNamespaces()); ++ declaredNS.add(context.getNamespace()); ++ ++ for ( Iterator iter = context.attributes().iterator(); iter.hasNext(); ) ++ { ++ Attribute attr = (Attribute) iter.next(); ++ declaredNS.add(attr.getNamespace()); ++ } ++ ++ for ( Iterator iter = declaredNS.iterator(); iter.hasNext(); ) ++ { ++ Namespace namespace = (Namespace) iter.next(); ++ if (namespace != Namespace.NO_NAMESPACE) ++ { ++ String prefix = namespace.getPrefix(); ++ if ( ! prefixes.contains( prefix ) ) { ++ prefixes.add( prefix ); ++ nsList.add( namespace.asXPathResult( element ) ); ++ } ++ } ++ } ++ } ++ nsList.add( Namespace.XML_NAMESPACE.asXPathResult( element ) ); ++ return nsList.iterator(); ++ } ++ ++ public Object getDocumentNode(Object contextNode) ++ { ++ if ( contextNode instanceof Document ) ++ { ++ return contextNode; ++ } ++ else if ( contextNode instanceof Node ) ++ { ++ Node node = (Node) contextNode; ++ return node.getDocument(); ++ } ++ return null; ++ } ++ ++ /** Returns a parsed form of the given XPath string, which will be suitable ++ * for queries on DOM4J documents. ++ */ ++ public XPath parseXPath (String xpath) throws SAXPathException ++ { ++ return new Dom4jXPath(xpath); ++ } ++ ++ public Object getParentNode(Object contextNode) ++ { ++ if ( contextNode instanceof Node ) ++ { ++ Node node = (Node) contextNode; ++ Object answer = node.getParent(); ++ if ( answer == null ) ++ { ++ answer = node.getDocument(); ++ if (answer == contextNode) { ++ return null; ++ } ++ } ++ return answer; ++ } ++ return null; ++ } ++ ++ public String getTextStringValue(Object obj) ++ { ++ return getNodeStringValue( (Node) obj ); ++ } ++ ++ public String getElementStringValue(Object obj) ++ { ++ return getNodeStringValue( (Node) obj ); ++ } ++ ++ public String getAttributeStringValue(Object obj) ++ { ++ return getNodeStringValue( (Node) obj ); ++ } ++ ++ private String getNodeStringValue(Node node) ++ { ++ return node.getStringValue(); ++ } ++ ++ public String getNamespaceStringValue(Object obj) ++ { ++ Namespace ns = (Namespace) obj; ++ ++ return ns.getURI(); ++ } ++ ++ public String getNamespacePrefix(Object obj) ++ { ++ Namespace ns = (Namespace) obj; ++ ++ return ns.getPrefix(); ++ } ++ ++ public String getCommentStringValue(Object obj) ++ { ++ Comment cmt = (Comment) obj; ++ ++ return cmt.getText(); ++ } ++ ++ public String translateNamespacePrefixToUri(String prefix, Object context) ++ { ++ Element element = null; ++ if ( context instanceof Element ) ++ { ++ element = (Element) context; ++ } ++ else if ( context instanceof Node ) ++ { ++ Node node = (Node) context; ++ element = node.getParent(); ++ } ++ if ( element != null ) ++ { ++ Namespace namespace = element.getNamespaceForPrefix( prefix ); ++ ++ if ( namespace != null ) ++ { ++ return namespace.getURI(); ++ } ++ } ++ return null; ++ } ++ ++ public short getNodeType(Object node) ++ { ++ if ( node instanceof Node ) ++ { ++ return ((Node) node).getNodeType(); ++ } ++ return 0; ++ } ++ ++ public Object getDocument(String uri) throws FunctionCallException ++ { ++ try ++ { ++ return getSAXReader().read( uri ); ++ } ++ catch (DocumentException e) ++ { ++ throw new FunctionCallException("Failed to parse document for URI: " + uri, e); ++ } ++ } ++ ++ public String getProcessingInstructionTarget(Object obj) ++ { ++ ProcessingInstruction pi = (ProcessingInstruction) obj; ++ ++ return pi.getTarget(); ++ } ++ ++ public String getProcessingInstructionData(Object obj) ++ { ++ ProcessingInstruction pi = (ProcessingInstruction) obj; ++ ++ return pi.getText(); ++ } ++ ++ // Properties ++ //------------------------------------------------------------------------- ++ public SAXReader getSAXReader() ++ { ++ if ( reader == null ) ++ { ++ reader = new SAXReader(); ++ reader.setMergeAdjacentText( true ); ++ } ++ return reader; ++ } ++ ++ public void setSAXReader(SAXReader reader) ++ { ++ this.reader = reader; ++ } ++ ++} +--- dom4j-1.6.1+dfsg.orig/src/java/org/jaxen/dom4j/Dom4jXPath.java ++++ dom4j-1.6.1+dfsg/src/java/org/jaxen/dom4j/Dom4jXPath.java +@@ -0,0 +1,94 @@ ++/* ++ * $Header: /home/projects/jaxen/scm/jaxen/src/java/main/org/jaxen/dom4j/Dom4jXPath.java,v 1.8 2006/06/03 20:44:53 elharo Exp $ ++ * $Revision: 1.8 $ ++ * $Date: 2006/06/03 20:44:53 $ ++ * ++ * ==================================================================== ++ * ++ * Copyright 2000-2002 bob mcwhirter & James Strachan. ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions are ++ * met: ++ * ++ * * Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * ++ * * Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * * Neither the name of the Jaxen Project nor the names of its ++ * contributors may be used to endorse or promote products derived ++ * from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS ++ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED ++ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER ++ * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ++ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ++ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR ++ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ++ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING ++ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ++ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ * ++ * ==================================================================== ++ * This software consists of voluntary contributions made by many ++ * individuals on behalf of the Jaxen Project and was originally ++ * created by bob mcwhirter <bob@werken.com> and ++ * James Strachan <jstrachan@apache.org>. For more information on the ++ * Jaxen Project, please see <http://www.jaxen.org/>. ++ * ++ * $Id: Dom4jXPath.java,v 1.8 2006/06/03 20:44:53 elharo Exp $ ++ */ ++ ++ ++ ++package org.jaxen.dom4j; ++ ++import org.jaxen.BaseXPath; ++import org.jaxen.JaxenException; ++ ++/** An XPath implementation for the dom4j model ++ * ++ * <p>This is the main entry point for matching an XPath against a DOM ++ * tree. You create a compiled XPath object, then match it against ++ * one or more context nodes using the {@link #selectNodes(Object)} ++ * method, as in the following example:</p> ++ * ++ * <pre> ++ * Node node = ...; ++ * XPath path = new Dom4jXPath("a/b/c"); ++ * List results = path.selectNodes(node); ++ * </pre> ++ * ++ * @see BaseXPath ++ * @see <a href="http://dom4j.org/">The dom4j website</a> ++ * ++ * @author <a href="mailto:bob@werken.com">bob mcwhirter</a> ++ * @author <a href="mailto:jstachan@apache.org">James Strachan</a> ++ * ++ * @version $Revision: 1.8 $ ++ */ ++public class Dom4jXPath extends BaseXPath ++{ ++ /** ++ * ++ */ ++ private static final long serialVersionUID = -75510941087659775L; ++ ++ /** Construct given an XPath expression string. ++ * ++ * @param xpathExpr the XPath expression ++ * ++ * @throws JaxenException if there is a syntax error while ++ * parsing the expression ++ */ ++ public Dom4jXPath(String xpathExpr) throws JaxenException ++ { ++ super( xpathExpr, DocumentNavigator.getInstance() ); ++ } ++} +--- dom4j-1.6.1+dfsg.orig/src/java/org/dom4j/dom/DOMAttribute.java ++++ dom4j-1.6.1+dfsg/src/java/org/dom4j/dom/DOMAttribute.java +@@ -14,7 +14,10 @@ + import org.w3c.dom.DOMException;
+ import org.w3c.dom.Document;
+ import org.w3c.dom.NamedNodeMap;
++import org.w3c.dom.Node;
+ import org.w3c.dom.NodeList;
++import org.w3c.dom.TypeInfo;
++import org.w3c.dom.UserDataHandler;
+
+ /**
+ * <p>
+@@ -179,6 +182,76 @@ + public org.w3c.dom.Element getOwnerElement() {
+ return DOMNodeHelper.asDOMElement(getParent());
+ }
++
++ public TypeInfo getSchemaTypeInfo() {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public boolean isId() {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public String getBaseURI() {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public short compareDocumentPosition(Node other) throws DOMException {
++ // TODO Auto-generated method stub
++ return 0;
++ }
++
++ public String getTextContent() throws DOMException {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public void setTextContent(String textContent) throws DOMException {
++ // TODO Auto-generated method stub
++
++ }
++
++ public boolean isSameNode(Node other) {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public String lookupPrefix(String namespaceURI) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public boolean isDefaultNamespace(String namespaceURI) {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public String lookupNamespaceURI(String prefix) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public boolean isEqualNode(Node arg) {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public Object getFeature(String feature, String version) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public Object setUserData(String key, Object data, UserDataHandler handler) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public Object getUserData(String key) {
++ // TODO Auto-generated method stub
++ return null;
++ }
+ }
+
+ /*
+--- dom4j-1.6.1+dfsg.orig/src/java/org/dom4j/dom/DOMCDATA.java ++++ dom4j-1.6.1+dfsg/src/java/org/dom4j/dom/DOMCDATA.java +@@ -14,7 +14,10 @@ + import org.w3c.dom.DOMException;
+ import org.w3c.dom.Document;
+ import org.w3c.dom.NamedNodeMap;
++import org.w3c.dom.Node;
+ import org.w3c.dom.NodeList;
++import org.w3c.dom.Text;
++import org.w3c.dom.UserDataHandler;
+
+ /**
+ * <p>
+@@ -225,6 +228,81 @@ + protected CDATA createCDATA(String text) {
+ return new DOMCDATA(text);
+ }
++
++ public boolean isElementContentWhitespace() {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public String getWholeText() {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public Text replaceWholeText(String content) throws DOMException {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public String getBaseURI() {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public short compareDocumentPosition(Node other) throws DOMException {
++ // TODO Auto-generated method stub
++ return 0;
++ }
++
++ public String getTextContent() throws DOMException {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public void setTextContent(String textContent) throws DOMException {
++ // TODO Auto-generated method stub
++
++ }
++
++ public boolean isSameNode(Node other) {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public String lookupPrefix(String namespaceURI) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public boolean isDefaultNamespace(String namespaceURI) {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public String lookupNamespaceURI(String prefix) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public boolean isEqualNode(Node arg) {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public Object getFeature(String feature, String version) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public Object setUserData(String key, Object data, UserDataHandler handler) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public Object getUserData(String key) {
++ // TODO Auto-generated method stub
++ return null;
++ }
+ }
+
+ /*
+--- dom4j-1.6.1+dfsg.orig/src/java/org/dom4j/dom/DOMComment.java ++++ dom4j-1.6.1+dfsg/src/java/org/dom4j/dom/DOMComment.java +@@ -13,7 +13,9 @@ + import org.w3c.dom.DOMException;
+ import org.w3c.dom.Document;
+ import org.w3c.dom.NamedNodeMap;
++import org.w3c.dom.Node;
+ import org.w3c.dom.NodeList;
++import org.w3c.dom.UserDataHandler;
+
+ /**
+ * <p>
+@@ -187,6 +189,66 @@ + throws DOMException {
+ DOMNodeHelper.replaceData(this, offset, count, arg);
+ }
++
++ public String getBaseURI() {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public short compareDocumentPosition(Node other) throws DOMException {
++ // TODO Auto-generated method stub
++ return 0;
++ }
++
++ public String getTextContent() throws DOMException {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public void setTextContent(String textContent) throws DOMException {
++ // TODO Auto-generated method stub
++
++ }
++
++ public boolean isSameNode(Node other) {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public String lookupPrefix(String namespaceURI) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public boolean isDefaultNamespace(String namespaceURI) {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public String lookupNamespaceURI(String prefix) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public boolean isEqualNode(Node arg) {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public Object getFeature(String feature, String version) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public Object setUserData(String key, Object data, UserDataHandler handler) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public Object getUserData(String key) {
++ // TODO Auto-generated method stub
++ return null;
++ }
+ }
+
+ /*
+--- dom4j-1.6.1+dfsg.orig/src/java/org/dom4j/dom/DOMDocumentFactory.java ++++ dom4j-1.6.1+dfsg/src/java/org/dom4j/dom/DOMDocumentFactory.java +@@ -174,6 +174,11 @@ + docType.getPublicId(), docType.getSystemId());
+ }
+ }
++
++ public Object getFeature(String arg0, String arg1) {
++ // TODO Auto-generated method stub
++ return null;
++ }
+ }
+
+
+@@ -213,4 +218,4 @@ + * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved.
+- */ +\ No newline at end of file ++ */
+--- dom4j-1.6.1+dfsg.orig/src/java/org/dom4j/dom/DOMDocument.java ++++ dom4j-1.6.1+dfsg/src/java/org/dom4j/dom/DOMDocument.java +@@ -15,12 +15,15 @@ +
+ import org.w3c.dom.Attr;
+ import org.w3c.dom.CDATASection;
++import org.w3c.dom.DOMConfiguration;
+ import org.w3c.dom.DOMException;
+ import org.w3c.dom.Document;
+ import org.w3c.dom.EntityReference;
+ import org.w3c.dom.NamedNodeMap;
++import org.w3c.dom.Node;
+ import org.w3c.dom.NodeList;
+ import org.w3c.dom.ProcessingInstruction;
++import org.w3c.dom.UserDataHandler;
+
+ /**
+ * <p>
+@@ -301,6 +304,136 @@ + return super.getDocumentFactory();
+ }
+ }
++
++ public String getInputEncoding() {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public String getXmlEncoding() {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public boolean getXmlStandalone() {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public void setXmlStandalone(boolean arg0) throws DOMException {
++ // TODO Auto-generated method stub
++
++ }
++
++ public String getXmlVersion() {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public void setXmlVersion(String arg0) throws DOMException {
++ // TODO Auto-generated method stub
++
++ }
++
++ public boolean getStrictErrorChecking() {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public void setStrictErrorChecking(boolean arg0) {
++ // TODO Auto-generated method stub
++
++ }
++
++ public String getDocumentURI() {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public void setDocumentURI(String arg0) {
++ // TODO Auto-generated method stub
++
++ }
++
++ public Node adoptNode(Node arg0) throws DOMException {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public DOMConfiguration getDomConfig() {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public void normalizeDocument() {
++ // TODO Auto-generated method stub
++
++ }
++
++ public Node renameNode(Node arg0, String arg1, String arg2) throws DOMException {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public String getBaseURI() {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public short compareDocumentPosition(Node arg0) throws DOMException {
++ // TODO Auto-generated method stub
++ return 0;
++ }
++
++ public String getTextContent() throws DOMException {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public void setTextContent(String arg0) throws DOMException {
++ // TODO Auto-generated method stub
++
++ }
++
++ public boolean isSameNode(Node arg0) {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public String lookupPrefix(String arg0) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public boolean isDefaultNamespace(String arg0) {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public String lookupNamespaceURI(String arg0) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public boolean isEqualNode(Node arg0) {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public Object getFeature(String arg0, String arg1) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public Object setUserData(String arg0, Object arg1, UserDataHandler arg2) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public Object getUserData(String arg0) {
++ // TODO Auto-generated method stub
++ return null;
++ }
+ }
+
+ /*
+--- dom4j-1.6.1+dfsg.orig/src/java/org/dom4j/dom/DOMDocumentType.java ++++ dom4j-1.6.1+dfsg/src/java/org/dom4j/dom/DOMDocumentType.java +@@ -12,7 +12,9 @@ + import org.w3c.dom.DOMException;
+ import org.w3c.dom.Document;
+ import org.w3c.dom.NamedNodeMap;
++import org.w3c.dom.Node;
+ import org.w3c.dom.NodeList;
++import org.w3c.dom.UserDataHandler;
+
+ /**
+ * <p>
+@@ -177,6 +179,66 @@ + public String getInternalSubset() {
+ return getElementName();
+ }
++
++ public String getBaseURI() {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public short compareDocumentPosition(Node arg0) throws DOMException {
++ // TODO Auto-generated method stub
++ return 0;
++ }
++
++ public String getTextContent() throws DOMException {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public void setTextContent(String arg0) throws DOMException {
++ // TODO Auto-generated method stub
++
++ }
++
++ public boolean isSameNode(Node arg0) {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public String lookupPrefix(String arg0) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public boolean isDefaultNamespace(String arg0) {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public String lookupNamespaceURI(String arg0) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public boolean isEqualNode(Node arg0) {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public Object getFeature(String arg0, String arg1) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public Object setUserData(String arg0, Object arg1, UserDataHandler arg2) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public Object getUserData(String arg0) {
++ // TODO Auto-generated method stub
++ return null;
++ }
+ }
+
+ /*
+--- dom4j-1.6.1+dfsg.orig/src/java/org/dom4j/dom/DOMElement.java ++++ dom4j-1.6.1+dfsg/src/java/org/dom4j/dom/DOMElement.java +@@ -16,11 +16,14 @@ + import org.dom4j.QName;
+ import org.dom4j.tree.DefaultElement;
+
++import org.w3c.dom.Attr;
+ import org.w3c.dom.DOMException;
+ import org.w3c.dom.Document;
+ import org.w3c.dom.NamedNodeMap;
+ import org.w3c.dom.Node;
+ import org.w3c.dom.NodeList;
++import org.w3c.dom.TypeInfo;
++import org.w3c.dom.UserDataHandler;
+
+ /**
+ * <p>
+@@ -389,6 +392,86 @@ +
+ return getDocumentFactory().createQName(localName, prefix, namespace);
+ }
++
++ public TypeInfo getSchemaTypeInfo() {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public void setIdAttribute(String arg0, boolean arg1) throws DOMException {
++ // TODO Auto-generated method stub
++
++ }
++
++ public void setIdAttributeNS(String arg0, String arg1, boolean arg2) throws DOMException {
++ // TODO Auto-generated method stub
++
++ }
++
++ public void setIdAttributeNode(Attr arg0, boolean arg1) throws DOMException {
++ // TODO Auto-generated method stub
++
++ }
++
++ public String getBaseURI() {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public short compareDocumentPosition(Node arg0) throws DOMException {
++ // TODO Auto-generated method stub
++ return 0;
++ }
++
++ public String getTextContent() throws DOMException {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public void setTextContent(String arg0) throws DOMException {
++ // TODO Auto-generated method stub
++
++ }
++
++ public boolean isSameNode(Node arg0) {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public String lookupPrefix(String arg0) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public boolean isDefaultNamespace(String arg0) {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public String lookupNamespaceURI(String arg0) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public boolean isEqualNode(Node arg0) {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public Object getFeature(String arg0, String arg1) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public Object setUserData(String arg0, Object arg1, UserDataHandler arg2) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public Object getUserData(String arg0) {
++ // TODO Auto-generated method stub
++ return null;
++ }
+ }
+
+ /*
+--- dom4j-1.6.1+dfsg.orig/src/java/org/dom4j/dom/DOMEntityReference.java ++++ dom4j-1.6.1+dfsg/src/java/org/dom4j/dom/DOMEntityReference.java +@@ -13,7 +13,9 @@ + import org.w3c.dom.DOMException;
+ import org.w3c.dom.Document;
+ import org.w3c.dom.NamedNodeMap;
++import org.w3c.dom.Node;
+ import org.w3c.dom.NodeList;
++import org.w3c.dom.UserDataHandler;
+
+ /**
+ * <p>
+@@ -166,6 +168,66 @@ + public boolean hasAttributes() {
+ return DOMNodeHelper.hasAttributes(this);
+ }
++
++ public String getBaseURI() {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public short compareDocumentPosition(Node arg0) throws DOMException {
++ // TODO Auto-generated method stub
++ return 0;
++ }
++
++ public String getTextContent() throws DOMException {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public void setTextContent(String arg0) throws DOMException {
++ // TODO Auto-generated method stub
++
++ }
++
++ public boolean isSameNode(Node arg0) {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public String lookupPrefix(String arg0) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public boolean isDefaultNamespace(String arg0) {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public String lookupNamespaceURI(String arg0) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public boolean isEqualNode(Node arg0) {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public Object getFeature(String arg0, String arg1) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public Object setUserData(String arg0, Object arg1, UserDataHandler arg2) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public Object getUserData(String arg0) {
++ // TODO Auto-generated method stub
++ return null;
++ }
+ }
+
+ /*
+--- dom4j-1.6.1+dfsg.orig/src/java/org/dom4j/dom/DOMNamespace.java ++++ dom4j-1.6.1+dfsg/src/java/org/dom4j/dom/DOMNamespace.java +@@ -13,7 +13,9 @@ + import org.w3c.dom.DOMException;
+ import org.w3c.dom.Document;
+ import org.w3c.dom.NamedNodeMap;
++import org.w3c.dom.Node;
+ import org.w3c.dom.NodeList;
++import org.w3c.dom.UserDataHandler;
+
+ /**
+ * <p>
+@@ -140,6 +142,66 @@ + public boolean hasAttributes() {
+ return DOMNodeHelper.hasAttributes(this);
+ }
++
++ public String getBaseURI() {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public short compareDocumentPosition(Node arg0) throws DOMException {
++ // TODO Auto-generated method stub
++ return 0;
++ }
++
++ public String getTextContent() throws DOMException {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public void setTextContent(String arg0) throws DOMException {
++ // TODO Auto-generated method stub
++
++ }
++
++ public boolean isSameNode(Node arg0) {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public String lookupPrefix(String arg0) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public boolean isDefaultNamespace(String arg0) {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public String lookupNamespaceURI(String arg0) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public boolean isEqualNode(Node arg0) {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public Object getFeature(String arg0, String arg1) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public Object setUserData(String arg0, Object arg1, UserDataHandler arg2) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public Object getUserData(String arg0) {
++ // TODO Auto-generated method stub
++ return null;
++ }
+ }
+
+ /*
+--- dom4j-1.6.1+dfsg.orig/src/java/org/dom4j/dom/DOMProcessingInstruction.java ++++ dom4j-1.6.1+dfsg/src/java/org/dom4j/dom/DOMProcessingInstruction.java +@@ -15,7 +15,9 @@ + import org.w3c.dom.DOMException;
+ import org.w3c.dom.Document;
+ import org.w3c.dom.NamedNodeMap;
++import org.w3c.dom.Node;
+ import org.w3c.dom.NodeList;
++import org.w3c.dom.UserDataHandler;
+
+ /**
+ * <p>
+@@ -177,6 +179,66 @@ + }
+ }
+
++ public String getBaseURI() {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public short compareDocumentPosition(Node arg0) throws DOMException {
++ // TODO Auto-generated method stub
++ return 0;
++ }
++
++ public String getTextContent() throws DOMException {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public void setTextContent(String arg0) throws DOMException {
++ // TODO Auto-generated method stub
++
++ }
++
++ public boolean isSameNode(Node arg0) {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public String lookupPrefix(String arg0) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public boolean isDefaultNamespace(String arg0) {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public String lookupNamespaceURI(String arg0) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public boolean isEqualNode(Node arg0) {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public Object getFeature(String arg0, String arg1) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public Object setUserData(String arg0, Object arg1, UserDataHandler arg2) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public Object getUserData(String arg0) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
+ // Implementation methods
+ // -------------------------------------------------------------------------
+ }
+--- dom4j-1.6.1+dfsg.orig/src/java/org/dom4j/dom/DOMText.java ++++ dom4j-1.6.1+dfsg/src/java/org/dom4j/dom/DOMText.java +@@ -14,7 +14,9 @@ + import org.w3c.dom.DOMException;
+ import org.w3c.dom.Document;
+ import org.w3c.dom.NamedNodeMap;
++import org.w3c.dom.Node;
+ import org.w3c.dom.NodeList;
++import org.w3c.dom.UserDataHandler;
+
+ /**
+ * <p>
+@@ -224,6 +226,81 @@ + protected Text createText(String text) {
+ return new DOMText(text);
+ }
++
++ public boolean isElementContentWhitespace() {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public String getWholeText() {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public org.w3c.dom.Text replaceWholeText(String arg0) throws DOMException {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public String getBaseURI() {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public short compareDocumentPosition(Node arg0) throws DOMException {
++ // TODO Auto-generated method stub
++ return 0;
++ }
++
++ public String getTextContent() throws DOMException {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public void setTextContent(String arg0) throws DOMException {
++ // TODO Auto-generated method stub
++
++ }
++
++ public boolean isSameNode(Node arg0) {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public String lookupPrefix(String arg0) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public boolean isDefaultNamespace(String arg0) {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public String lookupNamespaceURI(String arg0) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public boolean isEqualNode(Node arg0) {
++ // TODO Auto-generated method stub
++ return false;
++ }
++
++ public Object getFeature(String arg0, String arg1) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public Object setUserData(String arg0, Object arg1, UserDataHandler arg2) {
++ // TODO Auto-generated method stub
++ return null;
++ }
++
++ public Object getUserData(String arg0) {
++ // TODO Auto-generated method stub
++ return null;
++ }
+ }
+
+ /*
+--- dom4j-1.6.1+dfsg.orig/src/java/org/dom4j/tree/NamespaceCache.java ++++ dom4j-1.6.1+dfsg/src/java/org/dom4j/tree/NamespaceCache.java +@@ -26,42 +26,46 @@ + * @version $Revision: 1.15 $
+ */
+ public class NamespaceCache {
+- private static final String CONCURRENTREADERHASHMAP_CLASS
+- = "EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap";
++ 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);
+ }
+ }
|