Author: mbenson
Date: Wed Jun 13 11:45:43 2007
New Revision: 546994

URL: http://svn.apache.org/viewvc?view=rev&rev=546994
Log:
complete sealing handling

Modified:
    
jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/NamespaceResolver.java

Modified: 
jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/NamespaceResolver.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/NamespaceResolver.java?view=diff&rev=546994&r1=546993&r2=546994
==============================================================================
--- 
jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/NamespaceResolver.java
 (original)
+++ 
jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/NamespaceResolver.java
 Wed Jun 13 11:45:43 2007
@@ -51,14 +51,17 @@
     public NamespaceResolver(NamespaceResolver parent) {
         this.parent = parent;
     }
-    
+
     /**
      * Registers a namespace prefix.
      * 
      * @param prefix A namespace prefix
      * @param namespaceURI A URI for that prefix
      */
-    public void registerNamespace(String prefix, String namespaceURI) {
+    public synchronized void registerNamespace(String prefix, String 
namespaceURI) {
+        if (isSealed()) {
+            throw new IllegalStateException("Cannot register namespaces on a 
sealed NamespaceResolver");
+        }
         namespaceMap.put(prefix, namespaceURI);
         reverseMap = null;
     }
@@ -92,7 +95,7 @@
      * @param prefix The namespace prefix to look up
      * @return namespace URI or null if the prefix is undefined.
      */
-    public String getNamespaceURI(String prefix) {
+    public synchronized String getNamespaceURI(String prefix) {
         String uri = (String) namespaceMap.get(prefix);
         if (uri == null && pointer != null) {
             uri = pointer.getNamespaceURI(prefix);
@@ -108,7 +111,7 @@
      * @param namespaceURI the ns URI to check.
      * @return String prefix
      */
-    public String getPrefix(String namespaceURI) {
+    public synchronized String getPrefix(String namespaceURI) {
         if (reverseMap == null) {
             reverseMap = new HashMap();
             NodeIterator ni = pointer.namespaceIterator();
@@ -159,7 +162,9 @@
      */
     public Object clone() {
         try {
-            return super.clone();
+            NamespaceResolver result = (NamespaceResolver) super.clone();
+            result.sealed = false;
+            return result;
         }
         catch (CloneNotSupportedException e) {
             // Of course, it's supported.



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to