Index: jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/name/NameException.java
===================================================================
--- jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/name/NameException.java	(revision 490517)
+++ jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/name/NameException.java	(working copy)
@@ -16,13 +16,13 @@
  */
 package org.apache.jackrabbit.name;
 
-import org.apache.jackrabbit.BaseException;
+import javax.jcr.RepositoryException;
 
 /**
  * Base class for exceptions about malformed or otherwise
  * invalid JCR names and paths.
  */
-public class NameException extends BaseException {
+public class NameException extends RepositoryException {
 
     /**
      * Creates a NameException with the given error message.
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java	(revision 490593)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java	(working copy)
@@ -156,43 +156,37 @@
      */
     protected PropertyId resolveRelativePropertyPath(String relPath)
             throws RepositoryException {
-        try {
-            /**
-             * first check if relPath is just a name (in which case we don't
-             * have to build & resolve absolute path)
-             */
-            if (relPath.indexOf('/') == -1) {
-                QName propName = NameFormat.parse(relPath, session.getNamespaceResolver());
-                // check if property entry exists
-                NodeState thisState = (NodeState) state;
-                if (thisState.hasPropertyName(propName)) {
-                    return new PropertyId(thisState.getNodeId(), propName);
-                } else {
-                    // there's no property with that name
-                    return null;
-                }
-            }
-            /**
-             * build and resolve absolute path
-             */
-            Path p = PathFormat.parse(getPrimaryPath(), relPath,
-                    session.getNamespaceResolver()).getCanonicalPath();
-            ItemId id = session.getHierarchyManager().resolvePath(p);
-            if (id == null) {
-                // path not found
-                return null;
-            }
-            if (!id.denotesNode()) {
-                return (PropertyId) id;
+        /**
+         * first check if relPath is just a name (in which case we don't
+         * have to build & resolve absolute path)
+         */
+        if (relPath.indexOf('/') == -1) {
+            QName propName = NameFormat.parse(relPath, session.getNamespaceResolver());
+            // check if property entry exists
+            NodeState thisState = (NodeState) state;
+            if (thisState.hasPropertyName(propName)) {
+                return new PropertyId(thisState.getNodeId(), propName);
             } else {
-                // not a property
+                // there's no property with that name
                 return null;
             }
-        } catch (NameException e) {
-            String msg = "failed to resolve path " + relPath + " relative to " + safeGetJCRPath();
-            log.debug(msg);
-            throw new RepositoryException(msg, e);
         }
+        /**
+         * build and resolve absolute path
+         */
+        Path p = PathFormat.parse(getPrimaryPath(), relPath,
+                session.getNamespaceResolver()).getCanonicalPath();
+        ItemId id = session.getHierarchyManager().resolvePath(p);
+        if (id == null) {
+            // path not found
+            return null;
+        }
+        if (!id.denotesNode()) {
+            return (PropertyId) id;
+        } else {
+            // not a property
+            return null;
+        }
     }
 
     /**
@@ -394,13 +388,9 @@
                                                boolean exactTypeMatch,
                                                BitSet status)
             throws ConstraintViolationException, RepositoryException {
-        QName qName;
-        try {
-            qName = NameFormat.parse(name, session.getNamespaceResolver());
-        } catch (NameException e) {
-            throw new RepositoryException("invalid property name: " + name, e);
-        }
-        return getOrCreateProperty(qName, type, multiValued, exactTypeMatch, status);
+        return getOrCreateProperty(
+                NameFormat.parse(name, session.getNamespaceResolver()),
+                type, multiValued, exactTypeMatch, status);
     }
 
     /**
@@ -569,14 +559,8 @@
     }
 
     protected void removeChildProperty(String propName) throws RepositoryException {
-        QName qName;
-        try {
-            qName = NameFormat.parse(propName, session.getNamespaceResolver());
-        } catch (NameException e) {
-            throw new RepositoryException(
-                    "invalid property name: " + propName, e);
-        }
-        removeChildProperty(qName);
+        removeChildProperty(
+                NameFormat.parse(propName, session.getNamespaceResolver()));
     }
 
     protected void removeChildProperty(QName propName) throws RepositoryException {
@@ -2552,14 +2536,8 @@
             throw new RepositoryException("invalid node type name: " + nodeTypeName, npde);
         }
 
-        QName ntName;
-        try {
-            ntName = NameFormat.parse(nodeTypeName, session.getNamespaceResolver());
-        } catch (NameException e) {
-            throw new RepositoryException(
-                    "invalid node type name: " + nodeTypeName, e);
-        }
-        return isNodeType(ntName);
+        return isNodeType(
+                NameFormat.parse(nodeTypeName, session.getNamespaceResolver()));
     }
 
     /**
@@ -2595,42 +2573,21 @@
     /**
      * {@inheritDoc}
      */
-    public void addMixin(String mixinName)
-            throws NoSuchNodeTypeException, VersionException,
-            ConstraintViolationException, LockException, RepositoryException {
-        QName ntName;
-        try {
-            ntName = NameFormat.parse(mixinName, session.getNamespaceResolver());
-        } catch (NameException e) {
-            throw new RepositoryException(
-                    "invalid mixin type name: " + mixinName, e);
-        }
-
-        addMixin(ntName);
+    public void addMixin(String mixinName) throws RepositoryException {
+        addMixin(NameFormat.parse(mixinName, session.getNamespaceResolver()));
     }
 
     /**
      * {@inheritDoc}
      */
-    public void removeMixin(String mixinName)
-            throws NoSuchNodeTypeException, VersionException,
-            ConstraintViolationException, LockException, RepositoryException {
-        QName ntName;
-        try {
-            ntName = NameFormat.parse(mixinName, session.getNamespaceResolver());
-        } catch (NameException e) {
-            throw new RepositoryException(
-                    "invalid mixin type name: " + mixinName, e);
-        }
-
-        removeMixin(ntName);
+    public void removeMixin(String mixinName) throws RepositoryException {
+        removeMixin(NameFormat.parse(mixinName, session.getNamespaceResolver()));
     }
 
     /**
      * {@inheritDoc}
      */
-    public boolean canAddMixin(String mixinName)
-            throws NoSuchNodeTypeException, RepositoryException {
+    public boolean canAddMixin(String mixinName) throws RepositoryException {
         // check state of this instance
         sanityCheck();
 
@@ -2651,13 +2608,7 @@
             return false;
         }
 
-        QName ntName;
-        try {
-            ntName = NameFormat.parse(mixinName, session.getNamespaceResolver());
-        } catch (NameException e) {
-            throw new RepositoryException(
-                    "invalid mixin type name: " + mixinName, e);
-        }
+        QName ntName = NameFormat.parse(mixinName, session.getNamespaceResolver());
 
         NodeTypeManagerImpl ntMgr = session.getNodeTypeManager();
         NodeTypeImpl mixin = ntMgr.getNodeType(ntName);
@@ -2846,17 +2797,10 @@
                 return m2.getPath();
             }
 
-            String relPath;
-            try {
-                Path p = m1.getPrimaryPath().computeRelativePath(getPrimaryPath());
-                // use prefix mappings of srcSession
-                relPath = PathFormat.format(p, srcSession.getNamespaceResolver());
-            } catch (NameException be) {
-                // should never get here...
-                String msg = "internal error: failed to determine relative path";
-                log.error(msg, be);
-                throw new RepositoryException(msg, be);
-            }
+            Path p = m1.getPrimaryPath().computeRelativePath(getPrimaryPath());
+            // use prefix mappings of srcSession
+            String relPath =
+                PathFormat.format(p, srcSession.getNamespaceResolver());
 
             if (!m2.hasNode(relPath)) {
                 throw new ItemNotFoundException();
@@ -3244,17 +3188,10 @@
                 return m2;
             }
 
-            String relPath;
-            try {
-                Path p = m1.getPrimaryPath().computeRelativePath(getPrimaryPath());
-                // use prefix mappings of srcSession
-                relPath = PathFormat.format(p, srcSession.getNamespaceResolver());
-            } catch (NameException be) {
-                // should never get here...
-                String msg = "internal error: failed to determine relative path";
-                log.error(msg, be);
-                throw new RepositoryException(msg, be);
-            }
+            Path p = m1.getPrimaryPath().computeRelativePath(getPrimaryPath());
+            // use prefix mappings of srcSession
+            String relPath =
+                PathFormat.format(p, srcSession.getNamespaceResolver());
             if (!m2.hasNode(relPath)) {
                 return null;
             } else {
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/RowIteratorImpl.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/RowIteratorImpl.java	(revision 490593)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/RowIteratorImpl.java	(working copy)
@@ -250,30 +250,26 @@
                 tmp.addAll(Arrays.asList(properties));
                 propertySet = tmp;
             }
-            try {
-                QName prop = NameFormat.parse(propertyName, resolver);
-                if (!propertySet.contains(prop)) {
-                    throw new ItemNotFoundException(propertyName);
+            QName prop = NameFormat.parse(propertyName, resolver);
+            if (!propertySet.contains(prop)) {
+                throw new ItemNotFoundException(propertyName);
+            }
+            if (node.hasProperty(prop)) {
+                Property p = node.getProperty(prop);
+                if (p.getDefinition().getRequiredType() == PropertyType.UNDEFINED) {
+                    return new StringValue(p.getString());
+                } else {
+                    return p.getValue();
                 }
-                if (node.hasProperty(prop)) {
-                    Property p = node.getProperty(prop);
-                    if (p.getDefinition().getRequiredType() == PropertyType.UNDEFINED) {
-                        return new StringValue(p.getString());
-                    } else {
-                        return p.getValue();
-                    }
+            } else {
+                // either jcr:score, jcr:path or not set
+                if (QName.JCR_PATH.equals(prop)) {
+                    return PathValue.valueOf(node.getPath());
+                } else if (QName.JCR_SCORE.equals(prop)) {
+                    return new LongValue((int) (score * 1000f));
                 } else {
-                    // either jcr:score, jcr:path or not set
-                    if (QName.JCR_PATH.equals(prop)) {
-                        return PathValue.valueOf(node.getPath());
-                    } else if (QName.JCR_SCORE.equals(prop)) {
-                        return new LongValue((int) (score * 1000f));
-                    } else {
-                        return null;
-                    }
+                    return null;
                 }
-            } catch (NameException e) {
-                throw new RepositoryException(e.getMessage(), e);
             }
         }
     }
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/LuceneQueryBuilder.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/LuceneQueryBuilder.java	(revision 490593)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/LuceneQueryBuilder.java	(working copy)
@@ -293,8 +293,6 @@
                     terms.add(t);
                 }
             }
-        } catch (NameException e) {
-            exceptions.add(e);
         } catch (RepositoryException e) {
             exceptions.add(e);
         }
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionHistoryImpl.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionHistoryImpl.java	(revision 490593)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionHistoryImpl.java	(working copy)
@@ -136,30 +136,24 @@
      */
     public void addVersionLabel(String versionName, String label, boolean move)
             throws VersionException, RepositoryException {
-        try {
-            session.getVersionManager().setVersionLabel(this,
-                    NameFormat.parse(versionName, session.getNamespaceResolver()),
-                    NameFormat.parse(label, session.getNamespaceResolver()),
-                    move);
-        } catch (NameException e) {
-            throw new VersionException(e);
-        }
+        session.getVersionManager().setVersionLabel(
+                this,
+                NameFormat.parse(versionName, session.getNamespaceResolver()),
+                NameFormat.parse(label, session.getNamespaceResolver()),
+                move);
     }
 
     /**
      * @see javax.jcr.version.VersionHistory#removeVersionLabel(String)
      */
     public void removeVersionLabel(String label) throws RepositoryException {
-        try {
-            Version existing = session.getVersionManager().setVersionLabel(this,
-                    null,
-                    NameFormat.parse(label, session.getNamespaceResolver()),
-                    true);
-            if (existing == null) {
-                throw new VersionException("No version with label '" + label + "' exists in this version history.");
-            }
-        } catch (NameException e) {
-            throw new VersionException(e);
+        Version existing = session.getVersionManager().setVersionLabel(
+                this,
+                null,
+                NameFormat.parse(label, session.getNamespaceResolver()),
+                true);
+        if (existing == null) {
+            throw new VersionException("No version with label '" + label + "' exists in this version history.");
         }
     }
 
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeManagerImpl.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeManagerImpl.java	(revision 490593)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeManagerImpl.java	(working copy)
@@ -220,24 +220,20 @@
 
             if (contentType.equalsIgnoreCase(TEXT_XML)
                     || contentType.equalsIgnoreCase(APPLICATION_XML)) {
-                try {
-                    NodeTypeReader ntr = new NodeTypeReader(in);
+                NodeTypeReader ntr = new NodeTypeReader(in);
 
-                    Properties namespaces = ntr.getNamespaces();
-                    if (namespaces != null) {
-                        Enumeration prefixes = namespaces.propertyNames();
-                        while (prefixes.hasMoreElements()) {
-                            String prefix = (String) prefixes.nextElement();
-                            String uri = namespaces.getProperty(prefix);
-                            namespaceMap.put(prefix, uri);
-                        }
+                Properties namespaces = ntr.getNamespaces();
+                if (namespaces != null) {
+                    Enumeration prefixes = namespaces.propertyNames();
+                    while (prefixes.hasMoreElements()) {
+                        String prefix = (String) prefixes.nextElement();
+                        String uri = namespaces.getProperty(prefix);
+                        namespaceMap.put(prefix, uri);
                     }
-
-                    NodeTypeDef[] defs = ntr.getNodeTypeDefs();
-                    nodeTypeDefs.addAll(Arrays.asList(defs));
-                } catch (NameException e) {
-                    throw new RepositoryException("Illegal JCR name", e);
                 }
+
+                NodeTypeDef[] defs = ntr.getNodeTypeDefs();
+                nodeTypeDefs.addAll(Arrays.asList(defs));
             } else if (contentType.equalsIgnoreCase(TEXT_X_JCR_CND)) {
                 try {
                     NamespaceMapping mapping = new NamespaceMapping(nsResolver);
@@ -479,12 +475,8 @@
      * {@inheritDoc}
      */
     public boolean hasNodeType(String name) throws RepositoryException {
-        try {
-            QName qname = NameFormat.parse(name, nsResolver);
-            return getNodeTypeRegistry().isRegistered(qname);
-        } catch (NameException e) {
-           throw new RepositoryException();
-        }
+        QName qname = NameFormat.parse(name, nsResolver);
+        return getNodeTypeRegistry().isRegistered(qname);
     }
 
     //-------------------------------------------------------------< Dumpable >
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeImpl.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeImpl.java	(revision 490593)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeImpl.java	(working copy)
@@ -389,8 +389,6 @@
             EffectiveNodeType.checkSetPropertyValueConstraints(
                     def, new InternalValue[]{internalValue});
             return true;
-        } catch (NameException be) {
-            // implementation specific exception, fall through
         } catch (RepositoryException re) {
             // fall through
         }
@@ -471,8 +469,6 @@
                     (InternalValue[]) list.toArray(new InternalValue[list.size()]);
             EffectiveNodeType.checkSetPropertyValueConstraints(def, internalValues);
             return true;
-        } catch (NameException be) {
-            // implementation specific exception, fall through
         } catch (RepositoryException re) {
             // fall through
         }
@@ -486,8 +482,6 @@
         try {
             ent.checkAddNodeConstraints(NameFormat.parse(childNodeName, nsResolver));
             return true;
-        } catch (NameException be) {
-            // implementation specific exception, fall through
         } catch (RepositoryException re) {
             // fall through
         }
@@ -504,8 +498,6 @@
                     NameFormat.parse(nodeTypeName, nsResolver),
                     ntMgr.getNodeTypeRegistry());
             return true;
-        } catch (NameException be) {
-            // implementation specific exception, fall through
         } catch (RepositoryException re) {
             // fall through
         }
@@ -519,8 +511,6 @@
         try {
             ent.checkRemoveItemConstraints(NameFormat.parse(itemName, nsResolver));
             return true;
-        } catch (NameException be) {
-            // implementation specific exception, fall through
         } catch (RepositoryException re) {
             // fall through
         }
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/DocViewSAXEventGenerator.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/DocViewSAXEventGenerator.java	(revision 490517)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/DocViewSAXEventGenerator.java	(working copy)
@@ -70,14 +70,7 @@
     }
 
     private QName getQName(String rawName) throws RepositoryException {
-        try {
-            return NameFormat.parse(rawName, nsResolver);
-        } catch (NameException e) {
-            // should never get here...
-            String msg = "internal error: failed to resolve namespace mappings";
-            log.error(msg, e);
-            throw new RepositoryException(msg, e);
-        }
+        return NameFormat.parse(rawName, nsResolver);
     }
 
     /**
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/AbstractSAXEventGenerator.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/AbstractSAXEventGenerator.java	(revision 490517)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/AbstractSAXEventGenerator.java	(working copy)
@@ -132,19 +132,12 @@
 
         // resolve the names of some wellknown properties
         // allowing for session-local prefix mappings
-        try {
-            jcrPrimaryType = NameFormat.format(QName.JCR_PRIMARYTYPE, nsResolver);
-            jcrMixinTypes = NameFormat.format(QName.JCR_MIXINTYPES, nsResolver);
-            jcrUUID = NameFormat.format(QName.JCR_UUID, nsResolver);
-            jcrRoot = NameFormat.format(QName.JCR_ROOT, nsResolver);
-            jcrXMLText = NameFormat.format(QName.JCR_XMLTEXT, nsResolver);
-            jcrXMLCharacters = NameFormat.format(QName.JCR_XMLCHARACTERS, nsResolver);
-        } catch (NameException e) {
-            // should never get here...
-            String msg = "internal error: failed to resolve namespace mappings";
-            log.error(msg, e);
-            throw new RepositoryException(msg, e);
-        }
+        jcrPrimaryType = NameFormat.format(QName.JCR_PRIMARYTYPE, nsResolver);
+        jcrMixinTypes = NameFormat.format(QName.JCR_MIXINTYPES, nsResolver);
+        jcrUUID = NameFormat.format(QName.JCR_UUID, nsResolver);
+        jcrRoot = NameFormat.format(QName.JCR_ROOT, nsResolver);
+        jcrXMLText = NameFormat.format(QName.JCR_XMLTEXT, nsResolver);
+        jcrXMLCharacters = NameFormat.format(QName.JCR_XMLCHARACTERS, nsResolver);
     }
 
     /**
