You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ju...@apache.org on 2012/05/09 15:21:33 UTC

svn commit: r1336186 - in /jackrabbit/oak/trunk: oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/ oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/ oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ oak-jcr/src/main/java/org/apache...

Author: jukka
Date: Wed May  9 13:21:32 2012
New Revision: 1336186

URL: http://svn.apache.org/viewvc?rev=1336186&view=rev
Log:
OAK-89: Improve exception handling

Improvements by Michael Dürig

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/JcrNameParser.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/JcrPathParser.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImpl.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImplTest.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ItemImpl.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionDelegate.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/WorkspaceImpl.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeManagerImpl.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/security/user/UserManagerImpl.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/ValueFactoryImpl.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/JcrNameParser.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/JcrNameParser.java?rev=1336186&r1=1336185&r2=1336186&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/JcrNameParser.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/JcrNameParser.java Wed May  9 13:21:32 2012
@@ -52,9 +52,9 @@ public class JcrNameParser {
          * Informs this listener about the result of {@link JcrNameParser#parse(String, org.apache.jackrabbit.oak.namepath.JcrNameParser.Listener)}
          *
          * @param name The resulting name upon successful completion of
-         * {@link JcrNameParser#parse(String, org.apache.jackrabbit.oak.namepath.JcrNameParser.Listener)}
+         * {@link org.apache.jackrabbit.oak.namepath.JcrNameParser#parse(String, org.apache.jackrabbit.oak.namepath.JcrNameParser.Listener)}
          */
-        void name(String name);
+        boolean name(String name);
     }
 
     /**

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/JcrPathParser.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/JcrPathParser.java?rev=1336186&r1=1336185&r2=1336186&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/JcrPathParser.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/JcrPathParser.java Wed May  9 13:21:32 2012
@@ -35,13 +35,13 @@ public class JcrPathParser {
 
     private JcrPathParser() {
     }
-    
+
     interface Listener extends JcrNameParser.Listener {
-        void root();
-        void identifier(String identifier);
-        void current();
-        void parent();
-        void index(int index);
+        boolean root();
+        boolean identifier(String identifier);
+        boolean current();
+        boolean parent();
+        boolean index(int index);
     }
 
     public static void parse(String jcrPath, Listener listener) {
@@ -62,7 +62,9 @@ public class JcrPathParser {
         // check if absolute path
         int pos = 0;
         if (jcrPath.charAt(0) == '/') {
-            listener.root();
+            if (!listener.root()) {
+                return;
+            }
             pos++;
         }
 
@@ -113,7 +115,9 @@ public class JcrPathParser {
                         }
 
                         JcrNameParser.parse(name, listener);
-                        listener.index(index);
+                        if (!listener.index(index)) {
+                            return;
+                        }
                         state = STATE_PREFIX_START;
                         lastPos = pos;
                         name = null;
@@ -127,16 +131,22 @@ public class JcrPathParser {
                                 return;
                             }
                             String identifier = jcrPath.substring(lastPos, pos - 2);
-                            listener.identifier(identifier);
+                            if (!listener.identifier(identifier)) {
+                                return;
+                            }
                             state = STATE_PREFIX_START;
                             lastPos = pos;
                         }
                     } else if (state == STATE_DOT) {
-                        listener.current();
+                        if (!listener.current()) {
+                            return;
+                        }
                         lastPos = pos;
                         state = STATE_PREFIX_START;
                     } else if (state == STATE_DOTDOT) {
-                        listener.parent();
+                        if (!listener.parent()) {
+                            return;
+                        }
                         lastPos = pos;
                         state = STATE_PREFIX_START;
                     } else if (state != STATE_URI

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImpl.java?rev=1336186&r1=1336185&r2=1336186&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImpl.java Wed May  9 13:21:32 2012
@@ -53,6 +53,7 @@ public class NamePathMapperImpl implemen
     @Override
     public String getOakPath(String jcrPath) {
         final List<String> elements = new ArrayList<String>();
+        final StringBuilder parseErrors = new StringBuilder();
 
         if ("/".equals(jcrPath)) {
             // avoid the need to special case the root path later on
@@ -61,64 +62,73 @@ public class NamePathMapperImpl implemen
 
         JcrPathParser.Listener listener = new JcrPathParser.Listener() {
 
-            // TODO: replace RuntimeException by something that oak-jcr can deal with (e.g. ValueFactory)
-
             @Override
-            public void root() {
+            public boolean root() {
                 if (!elements.isEmpty()) {
-                    throw new RuntimeException("/ on non-empty path");
+                    parseErrors.append("/ on non-empty path");
+                    return false;
                 }
                 elements.add("");
+                return true;
             }
 
             @Override
-            public void identifier(String identifier) {
+            public boolean identifier(String identifier) {
                 if (!elements.isEmpty()) {
-                    throw new RuntimeException("[identifier] on non-empty path");
+                    parseErrors.append("[identifier] on non-empty path");
+                    return false;
                 }
                 elements.add(identifier);  // todo resolve identifier
-                // todo seal
+                // todo seal elements
+                return true;
             }
 
             @Override
-            public void current() {
+            public boolean current() {
                 // nothing to do here
+                return true;
             }
 
             @Override
-            public void parent() {
+            public boolean parent() {
                 if (elements.isEmpty()) {
-                    throw new RuntimeException(".. of empty path");
+                    parseErrors.append(".. of empty path");
+                    return false;
                 }
                 elements.remove(elements.size() - 1);
+                return true;
             }
 
             @Override
-            public void index(int index) {
+            public boolean index(int index) {
                 if (index > 1) {
-                    throw new RuntimeException("index > 1");
+                    parseErrors.append("index > 1");
+                    return false;
                 }
+                return true;
             }
 
             @Override
             public void error(String message) {
-                throw new RuntimeException(message);
+                parseErrors.append(message);
             }
 
             @Override
-            public void name(String name) {
+            public boolean name(String name) {
                 String p = nameMapper.getOakName(name);
                 if (p == null) {
-                    error("Invalid name: " + name);
+                    parseErrors.append("Invalid name: ").append(name);
+                    return false;
                 }
                 elements.add(p);
+                return true;
             }
         };
 
-        try {
-            JcrPathParser.parse(jcrPath, listener);
-        } catch (RuntimeException e) {
-            return null; // TODO Avoid exceptions for control flow
+        JcrPathParser.parse(jcrPath, listener);
+        if (parseErrors.length() != 0) {
+            log.debug("Could not parser path " + jcrPath + ": " + parseErrors.toString());
+            return null;
         }
 
         StringBuilder oakPath = new StringBuilder();
@@ -150,51 +160,57 @@ public class NamePathMapperImpl implemen
 
         JcrPathParser.Listener listener = new JcrPathParser.Listener() {
             @Override
-            public void root() {
+            public boolean root() {
                 if (!elements.isEmpty()) {
-                    throw new RuntimeException("/ on non-empty path");
+                    throw new IllegalArgumentException("/ on non-empty path");
                 }
                 elements.add("");
+                return true;
             }
 
             @Override
-            public void identifier(String identifier) {
+            public boolean identifier(String identifier) {
                 if (!elements.isEmpty()) {
-                    throw new RuntimeException("[identifier] on non-empty path");
+                    throw new IllegalArgumentException("[identifier] on non-empty path");
                 }
                 elements.add(identifier);  // todo resolve identifier
-                // todo seal
+                // todo seal elements
+                return true;
             }
 
             @Override
-            public void current() {
+            public boolean current() {
                 // nothing to do here
+                return false;
             }
 
             @Override
-            public void parent() {
+            public boolean parent() {
                 if (elements.isEmpty()) {
-                    throw new RuntimeException(".. of empty path");
+                    throw new IllegalArgumentException(".. of empty path");
                 }
                 elements.remove(elements.size() - 1);
+                return true;
             }
 
             @Override
-            public void index(int index) {
+            public boolean index(int index) {
                 if (index > 1) {
-                    throw new RuntimeException("index > 1");
+                    throw new IllegalArgumentException("index > 1");
                 }
+                return true;
             }
 
             @Override
             public void error(String message) {
-                throw new RuntimeException(message);
+                throw new IllegalArgumentException(message);
             }
 
             @Override
-            public void name(String name) {
+            public boolean name(String name) {
                 String p = nameMapper.getJcrName(name);
                 elements.add(p);
+                return true;
             }
         };
 
@@ -215,4 +231,4 @@ public class NamePathMapperImpl implemen
         jcrPath.deleteCharAt(jcrPath.length() - 1);
         return jcrPath.toString();
     }
-}
\ No newline at end of file
+}

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImplTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImplTest.java?rev=1336186&r1=1336185&r2=1336186&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImplTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImplTest.java Wed May  9 13:21:32 2012
@@ -121,4 +121,4 @@ public class NamePathMapperImplTest {
         }
 
     }
-}
\ No newline at end of file
+}

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ItemImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ItemImpl.java?rev=1336186&r1=1336185&r2=1336186&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ItemImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ItemImpl.java Wed May  9 13:21:32 2012
@@ -175,4 +175,4 @@ abstract class ItemImpl extends Abstract
     String toJcrPath(String oakPath) {
         return sessionDelegate.getNamePathMapper().getJcrPath(oakPath);
     }
-}
\ No newline at end of file
+}

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java?rev=1336186&r1=1336185&r2=1336186&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java Wed May  9 13:21:32 2012
@@ -25,7 +25,6 @@ import org.apache.jackrabbit.oak.commons
 import org.apache.jackrabbit.oak.jcr.util.LogUtil;
 import org.apache.jackrabbit.oak.jcr.value.ValueConverter;
 import org.apache.jackrabbit.oak.namepath.NameMapper;
-import org.apache.jackrabbit.oak.namepath.NamePathMapper;
 import org.apache.jackrabbit.oak.util.Function1;
 import org.apache.jackrabbit.oak.util.Iterators;
 import org.apache.jackrabbit.oak.util.Predicate;
@@ -150,7 +149,7 @@ public class NodeImpl extends ItemImpl i
     public Node addNode(String relPath, String primaryNodeTypeName) throws RepositoryException {
         checkStatus();
 
-        String oakPath = sessionDelegate.getOakPathOrThrow(relPath);
+        String oakPath = sessionDelegate.getOakPathOrThrow(relPath, new RepositoryException());
         String oakName = PathUtils.getName(oakPath);
         NodeDelegate parent = dlg.getChild(PathUtils.getParentPath(oakPath));
         if (parent == null) {
@@ -213,7 +212,7 @@ public class NodeImpl extends ItemImpl i
             p.remove();
             return p;
         } else {
-            String oakName = sessionDelegate.getOakPathOrThrow(jcrName);
+            String oakName = sessionDelegate.getOakPathOrThrow(jcrName, new RepositoryException());
             CoreValue oakValue = ValueConverter.toCoreValue(targetValue, sessionDelegate);
             return new PropertyImpl(dlg.setProperty(oakName, oakValue));
         }
@@ -244,7 +243,7 @@ public class NodeImpl extends ItemImpl i
             p.remove();
             return p;
         } else {
-            String oakName = sessionDelegate.getOakPathOrThrow(jcrName);
+            String oakName = sessionDelegate.getOakPathOrThrow(jcrName, new RepositoryException());
             List<CoreValue> oakValue = ValueConverter.toCoreValues(targetValues, sessionDelegate);
             return new PropertyImpl(dlg.setProperty(oakName, oakValue));
         }
@@ -365,7 +364,7 @@ public class NodeImpl extends ItemImpl i
     public Node getNode(String relPath) throws RepositoryException {
         checkStatus();
 
-        String oakPath = sessionDelegate.getOakPathOrThrowNotFound(relPath);
+        String oakPath = sessionDelegate.getOakPathOrThrow(relPath, new PathNotFoundException(relPath));
         NodeDelegate nd = dlg.getChild(oakPath);
         if (nd == null) {
             throw new PathNotFoundException(relPath);
@@ -419,7 +418,7 @@ public class NodeImpl extends ItemImpl i
     public Property getProperty(String relPath) throws RepositoryException {
         checkStatus();
 
-        String oakPath = sessionDelegate.getOakPathOrThrowNotFound(relPath);
+        String oakPath = sessionDelegate.getOakPathOrThrow(relPath, new PathNotFoundException());
         PropertyDelegate pd = dlg.getProperty(oakPath);
         if (pd == null) {
             throw new PathNotFoundException(relPath + " not found on " + getPath());
@@ -551,7 +550,7 @@ public class NodeImpl extends ItemImpl i
     public boolean hasNode(String relPath) throws RepositoryException {
         checkStatus();
 
-        String oakPath = sessionDelegate.getOakPathOrNull(relPath);
+        String oakPath = sessionDelegate.getOakPathOrThrow(relPath, new RepositoryException());
         return oakPath != null && dlg.getChild(oakPath) != null;
     }
 
@@ -559,7 +558,7 @@ public class NodeImpl extends ItemImpl i
     public boolean hasProperty(String relPath) throws RepositoryException {
         checkStatus();
 
-        String oakPath = sessionDelegate.getOakPathOrNull(relPath);
+        String oakPath = sessionDelegate.getOakPathOrThrow(relPath, new RepositoryException());
         return oakPath != null && dlg.getProperty(oakPath) != null;
     }
 
@@ -657,7 +656,7 @@ public class NodeImpl extends ItemImpl i
         // TODO: END
 
         String jcrPrimaryType =
-                sessionDelegate.getOakPathOrThrow(Property.JCR_PRIMARY_TYPE);
+                sessionDelegate.getOakPathOrThrow(Property.JCR_PRIMARY_TYPE, new RepositoryException());
         CoreValue cv = ValueConverter.toCoreValue(nodeTypeName, PropertyType.NAME, sessionDelegate);
         dlg.setProperty(jcrPrimaryType, cv);
     }
@@ -999,4 +998,4 @@ public class NodeImpl extends ItemImpl i
             return getTargetType(values[0], type);
         }
     }
-}
\ No newline at end of file
+}

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionDelegate.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionDelegate.java?rev=1336186&r1=1336185&r2=1336186&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionDelegate.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionDelegate.java Wed May  9 13:21:32 2012
@@ -142,52 +142,18 @@ public class SessionDelegate {
         }
     }
 
-    /**
-     * Shortcut for {@code SessionDelegate.getNamePathMapper().getOakPath(jcrPath)}.
-     *
-     * @param jcrPath JCR path
-     * @return Oak path, or {@code null}
-     */
-    public String getOakPathOrNull(String jcrPath) {
-        return getNamePathMapper().getOakPath(jcrPath);
-    }
-
-    /**
-     * Returns the Oak path for the given JCR path, or throws a
-     * {@link PathNotFoundException} if the path can not be mapped.
-     *
-     * @param jcrPath JCR path
-     * @return Oak path
-     * @throws PathNotFoundException if the path can not be mapped
-     */
-    public String getOakPathOrThrowNotFound(String jcrPath)
-            throws PathNotFoundException {
+    public <T extends Throwable> String getOakPathOrThrow(String jcrPath, T t) throws T {
         String oakPath = getOakPathOrNull(jcrPath);
-        if (oakPath != null) {
+        if (oakPath != null || t == null) {
             return oakPath;
         } else {
-            throw new PathNotFoundException(jcrPath);
+            throw t;
         }
     }
 
-    /**
-     * Returns the Oak path for the given JCR path, or throws a
-     * {@link RepositoryException} if the path can not be mapped.
-     *
-     * @param jcrPath JCR path
-     * @return Oak path
-     * @throws RepositoryException if the path can not be mapped
-     */
-    public String getOakPathOrThrow(String jcrPath)
-            throws RepositoryException {
-        String oakPath = getOakPathOrNull(jcrPath);
-        if (oakPath != null) {
-            return oakPath;
-        } else {
-            throw new RepositoryException("Invalid path: " + jcrPath);
-        }
+    public String getOakPathOrNull(String jcrPath) {
+        return getNamePathMapper().getOakPath(jcrPath);
     }
-
     //----------------------------------------------------------< Workspace >---
 
     public Workspace getWorkspace() {
@@ -307,7 +273,7 @@ public class SessionDelegate {
                 String ns = nsRegistry.getURI(oakPrefix);
                 return session.getNamespacePrefix(ns);
             } catch (RepositoryException e) {
-                // TODO
+                log.debug("Could not get JCR prefix for OAK prefix " + oakPrefix);
                 return null;
             }
         }
@@ -318,7 +284,7 @@ public class SessionDelegate {
                 String ns = getSession().getNamespaceURI(jcrPrefix);
                 return nsRegistry.getPrefix(ns);
             } catch (RepositoryException e) {
-                // TODO
+                log.debug("Could not get OAK prefix for JCR prefix " + jcrPrefix);
                 return null;
             }
         }
@@ -328,7 +294,7 @@ public class SessionDelegate {
             try {
                 return nsRegistry.getPrefix(uri);
             } catch (RepositoryException e) {
-                // TODO
+                log.debug("Could not get OAK prefix for URI " + uri);
                 return null;
             }
         }

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java?rev=1336186&r1=1336185&r2=1336186&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java Wed May  9 13:21:32 2012
@@ -122,8 +122,8 @@ public class SessionImpl extends Abstrac
     public void move(String srcAbsPath, String destAbsPath) throws RepositoryException {
         ensureIsAlive();
         dlg.move(
-                dlg.getOakPathOrThrowNotFound(srcAbsPath),
-                dlg.getOakPathOrThrowNotFound(destAbsPath),
+                dlg.getOakPathOrThrow(srcAbsPath, new PathNotFoundException(srcAbsPath)),
+                dlg.getOakPathOrThrow(destAbsPath, new PathNotFoundException(destAbsPath)),
                 true);
     }
 
@@ -161,7 +161,7 @@ public class SessionImpl extends Abstrac
         ensureIsAlive();
 
         @SuppressWarnings("unused")
-        String oakPath = dlg.getOakPathOrThrowNotFound(parentAbsPath);
+        String oakPath = dlg.getOakPathOrThrow(parentAbsPath, new PathNotFoundException(parentAbsPath));
 
         throw new UnsupportedRepositoryOperationException("TODO: Session.getImportContentHandler");
     }

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/WorkspaceImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/WorkspaceImpl.java?rev=1336186&r1=1336185&r2=1336186&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/WorkspaceImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/WorkspaceImpl.java Wed May  9 13:21:32 2012
@@ -27,6 +27,7 @@ import org.xml.sax.ContentHandler;
 import org.xml.sax.InputSource;
 
 import javax.jcr.NamespaceRegistry;
+import javax.jcr.PathNotFoundException;
 import javax.jcr.Repository;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
@@ -91,8 +92,8 @@ public class WorkspaceImpl implements Ja
         }
 
         sessionDelegate.copy(
-                sessionDelegate.getOakPathOrThrowNotFound(srcAbsPath),
-                sessionDelegate.getOakPathOrThrowNotFound(destAbsPath));
+                sessionDelegate.getOakPathOrThrow(srcAbsPath, new PathNotFoundException(srcAbsPath)),
+                sessionDelegate.getOakPathOrThrow(destAbsPath, new PathNotFoundException(srcAbsPath)));
     }
 
     @SuppressWarnings("deprecation")
@@ -111,8 +112,8 @@ public class WorkspaceImpl implements Ja
         ensureIsAlive();
 
         sessionDelegate.move(
-                sessionDelegate.getOakPathOrThrowNotFound(srcAbsPath),
-                sessionDelegate.getOakPathOrThrowNotFound(destAbsPath),
+                sessionDelegate.getOakPathOrThrow(srcAbsPath, new PathNotFoundException(srcAbsPath)),
+                sessionDelegate.getOakPathOrThrow(destAbsPath, new PathNotFoundException(destAbsPath)),
                 false);
     }
 
@@ -323,4 +324,4 @@ public class WorkspaceImpl implements Ja
             throw new UnsupportedRepositoryOperationException(option + " is not supported by this repository.");
         }
     }
-}
\ No newline at end of file
+}

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeManagerImpl.java?rev=1336186&r1=1336185&r2=1336186&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeManagerImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeManagerImpl.java Wed May  9 13:21:32 2012
@@ -16,27 +16,6 @@
  */
 package org.apache.jackrabbit.oak.jcr.nodetype;
 
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.jcr.RepositoryException;
-import javax.jcr.UnsupportedRepositoryOperationException;
-import javax.jcr.nodetype.NoSuchNodeTypeException;
-import javax.jcr.nodetype.NodeDefinitionTemplate;
-import javax.jcr.nodetype.NodeType;
-import javax.jcr.nodetype.NodeTypeDefinition;
-import javax.jcr.nodetype.NodeTypeIterator;
-import javax.jcr.nodetype.NodeTypeManager;
-import javax.jcr.nodetype.NodeTypeTemplate;
-import javax.jcr.nodetype.PropertyDefinitionTemplate;
-
 import org.apache.jackrabbit.commons.cnd.CompactNodeTypeDefReader;
 import org.apache.jackrabbit.commons.cnd.DefinitionBuilderFactory;
 import org.apache.jackrabbit.commons.cnd.DefinitionBuilderFactory.AbstractNodeDefinitionBuilder;
@@ -49,6 +28,26 @@ import org.apache.jackrabbit.oak.api.Cor
 import org.apache.jackrabbit.oak.jcr.value.ValueFactoryImpl;
 import org.apache.jackrabbit.oak.namepath.NameMapper;
 
+import javax.jcr.RepositoryException;
+import javax.jcr.UnsupportedRepositoryOperationException;
+import javax.jcr.nodetype.NoSuchNodeTypeException;
+import javax.jcr.nodetype.NodeDefinitionTemplate;
+import javax.jcr.nodetype.NodeType;
+import javax.jcr.nodetype.NodeTypeDefinition;
+import javax.jcr.nodetype.NodeTypeIterator;
+import javax.jcr.nodetype.NodeTypeManager;
+import javax.jcr.nodetype.NodeTypeTemplate;
+import javax.jcr.nodetype.PropertyDefinitionTemplate;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 public class NodeTypeManagerImpl implements NodeTypeManager {
 
     private final ValueFactoryImpl vf;

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/security/user/UserManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/security/user/UserManagerImpl.java?rev=1336186&r1=1336185&r2=1336186&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/security/user/UserManagerImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/security/user/UserManagerImpl.java Wed May  9 13:21:32 2012
@@ -388,7 +388,7 @@ public class UserManagerImpl implements 
     }
 
     private String getInternalPath(Node node) throws RepositoryException {
-        return sessionDelegate.getOakPathOrThrow(node.getPath());
+        return sessionDelegate.getOakPathOrThrow(node.getPath(), new RepositoryException());
     }
 
 }
\ No newline at end of file

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/ValueFactoryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/ValueFactoryImpl.java?rev=1336186&r1=1336185&r2=1336186&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/ValueFactoryImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/ValueFactoryImpl.java Wed May  9 13:21:32 2012
@@ -19,7 +19,6 @@ package org.apache.jackrabbit.oak.jcr.va
 import org.apache.commons.io.IOUtils;
 import org.apache.jackrabbit.oak.api.CoreValue;
 import org.apache.jackrabbit.oak.api.CoreValueFactory;
-import org.apache.jackrabbit.oak.jcr.SessionDelegate;
 import org.apache.jackrabbit.oak.namepath.NamePathMapper;
 import org.apache.jackrabbit.util.ISO8601;
 import org.slf4j.Logger;
@@ -202,4 +201,4 @@ public class ValueFactoryImpl implements
         CoreValue cv = factory.createValue(value.getUUID(), weak ? PropertyType.WEAKREFERENCE : PropertyType.REFERENCE);
         return new ValueImpl(cv, namePathMapper);
     }
-}
\ No newline at end of file
+}