You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2009/09/24 12:18:11 UTC

svn commit: r818425 - in /jackrabbit/trunk: jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/ExceptionConverter.java jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/client/methods/DavMethodBase.java

Author: jukka
Date: Thu Sep 24 10:18:10 2009
New Revision: 818425

URL: http://svn.apache.org/viewvc?rev=818425&view=rev
Log:
JCR-2318: Keep WebDAV exception causes

Modified:
    jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/ExceptionConverter.java
    jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/client/methods/DavMethodBase.java

Modified: jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/ExceptionConverter.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/ExceptionConverter.java?rev=818425&r1=818424&r2=818425&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/ExceptionConverter.java (original)
+++ jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/ExceptionConverter.java Thu Sep 24 10:18:10 2009
@@ -88,16 +88,29 @@
                                        method instanceof PutMethod)) {
                     // target item has probably while transient changes have
                     // been made.
-                    throw new InvalidItemStateException(msg);
+                    throw new InvalidItemStateException(msg, davExc);
                 } else {
-                    return new ItemNotFoundException(msg);
+                    return new ItemNotFoundException(msg, davExc);
                 }
-            case DavServletResponse.SC_LOCKED : return new LockException(msg);
-            case DavServletResponse.SC_METHOD_NOT_ALLOWED : return new ConstraintViolationException(msg);
-            case DavServletResponse.SC_CONFLICT : return new InvalidItemStateException(msg);
-            case DavServletResponse.SC_PRECONDITION_FAILED : return new LockException(msg);
-            case DavServletResponse.SC_NOT_IMPLEMENTED: throw new UnsupportedOperationException("Missing implementation. " + ((method != null) ? "Method " + method + " could not be executed." : ""));
-            default: return new RepositoryException(msg);
+            case DavServletResponse.SC_LOCKED :
+                return new LockException(msg, davExc);
+            case DavServletResponse.SC_METHOD_NOT_ALLOWED :
+                return new ConstraintViolationException(msg, davExc);
+            case DavServletResponse.SC_CONFLICT :
+                return new InvalidItemStateException(msg, davExc);
+            case DavServletResponse.SC_PRECONDITION_FAILED :
+                return new LockException(msg, davExc);
+            case DavServletResponse.SC_NOT_IMPLEMENTED:
+                if (method != null) {
+                    throw new UnsupportedOperationException(
+                            "Missing implementation: Method "
+                            + method + " could not be executed", davExc);
+                } else {
+                    throw new UnsupportedOperationException(
+                            "Missing implementation", davExc);
+                }
+            default:
+                return new RepositoryException(msg, davExc);
         }
     }
 }
\ No newline at end of file

Modified: jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/client/methods/DavMethodBase.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/client/methods/DavMethodBase.java?rev=818425&r1=818424&r2=818425&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/client/methods/DavMethodBase.java (original)
+++ jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/client/methods/DavMethodBase.java Thu Sep 24 10:18:10 2009
@@ -119,9 +119,14 @@
                 responseDocument = docBuilder.parse(in);
                 return responseDocument;
             } catch (ParserConfigurationException e) {
-                throw new IOException(e.getMessage());
+                IOException exception =
+                    new IOException("XML parser configuration error");
+                exception.initCause(e);
+                throw exception;
             } catch (SAXException e) {
-                throw new IOException(e.getMessage());
+                IOException exception = new IOException("XML parsing error");
+                exception.initCause(e);
+                throw exception;
             } finally {
                 in.close();
             }
@@ -206,7 +211,10 @@
             doc.appendChild(requestBody.toXml(doc));
             setRequestBody(doc);
         } catch (ParserConfigurationException e) {
-            throw new IOException(e.getMessage());
+            IOException exception =
+                new IOException("XML parser configuration error");
+            exception.initCause(e);
+            throw exception;
         }
     }