From 8c3fe215b447dcdc39cfdbf587b73592e726f2d5 Mon Sep 17 00:00:00 2001 From: Jonathan Nieder Date: Tue, 2 Jun 2015 16:52:21 -0700 Subject: [PATCH] Allow setting detail message and cause when constructing most exceptions In particular, this means a RepositoryResolver, UploadPackFactory, or ReceivePackFactory can set a detail message for ServiceNotAuthorizedException or ServiceNotEnabledException with information for the client about why access is not allowed. Change-Id: I38e1798e1e9d09b5e75cefacd9d85f25729235a9 Signed-off-by: Jonathan Nieder --- .../jgit/api/errors/RefNotFoundException.java | 9 ++++++++ .../errors/StashApplyFailureException.java | 9 ++++++++ .../api/errors/UnmergedPathsException.java | 9 ++++++++ .../jgit/errors/DiffInterruptedException.java | 21 +++++++++++++++++++ .../jgit/errors/LockFailedException.java | 14 +++++++++++++ .../ServiceNotAuthorizedException.java | 17 +++++++++++++++ .../resolver/ServiceNotEnabledException.java | 17 +++++++++++++++ 7 files changed, 96 insertions(+) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/errors/RefNotFoundException.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/errors/RefNotFoundException.java index c8d96a026..b9f2a5617 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/api/errors/RefNotFoundException.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/errors/RefNotFoundException.java @@ -43,6 +43,15 @@ public class RefNotFoundException extends GitAPIException { private static final long serialVersionUID = 1L; + /** + * @param message + * @param cause + * @since 4.1 + */ + public RefNotFoundException(String message, Throwable cause) { + super(message, cause); + } + /** * @param message */ diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/errors/StashApplyFailureException.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/errors/StashApplyFailureException.java index 25d7e4d47..1d54f77db 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/api/errors/StashApplyFailureException.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/errors/StashApplyFailureException.java @@ -9,6 +9,15 @@ public class StashApplyFailureException extends GitAPIException { private static final long serialVersionUID = 1L; + /** + * @param message + * @param cause + * @since 4.1 + */ + public StashApplyFailureException(String message, Throwable cause) { + super(message, cause); + } + /** * Create a StashApplyFailedException * diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/errors/UnmergedPathsException.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/errors/UnmergedPathsException.java index 099004015..082f94c65 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/api/errors/UnmergedPathsException.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/errors/UnmergedPathsException.java @@ -61,4 +61,13 @@ public UnmergedPathsException() { public UnmergedPathsException(Throwable cause) { super(JGitText.get().unmergedPaths, cause); } + + /** + * @param message + * @param cause + * @since 4.1 + */ + public UnmergedPathsException(String message, Throwable cause) { + super(message, cause); + } } diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/errors/DiffInterruptedException.java b/org.eclipse.jgit/src/org/eclipse/jgit/errors/DiffInterruptedException.java index e6ae685c0..94c8e5d1d 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/errors/DiffInterruptedException.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/errors/DiffInterruptedException.java @@ -51,4 +51,25 @@ */ public class DiffInterruptedException extends RuntimeException { private static final long serialVersionUID = 1L; + + /** + * @param message + * @param cause + * @since 4.1 + */ + public DiffInterruptedException(String message, Throwable cause) { + super(message, cause); + } + + /** + * @param message + * @since 4.1 + */ + public DiffInterruptedException(String message) { + super(message); + } + + public DiffInterruptedException() { + super(); + } } diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/errors/LockFailedException.java b/org.eclipse.jgit/src/org/eclipse/jgit/errors/LockFailedException.java index 18aa9d978..0142e1763 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/errors/LockFailedException.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/errors/LockFailedException.java @@ -56,6 +56,20 @@ public class LockFailedException extends IOException { private File file; + /** + * @param file + * file that could not be locked + * @param message + * exception message + * @param cause + * cause, for later retrieval by {@link Throwable#getCause()} + * @since 4.1 + */ + public LockFailedException(File file, String message, Throwable cause) { + super(message, cause); + this.file = file; + } + /** * Construct a CannotLockException for the given file and message * diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/resolver/ServiceNotAuthorizedException.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/resolver/ServiceNotAuthorizedException.java index 3c16556b4..a9e3e42ed 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/resolver/ServiceNotAuthorizedException.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/resolver/ServiceNotAuthorizedException.java @@ -55,6 +55,23 @@ public class ServiceNotAuthorizedException extends Exception { private static final long serialVersionUID = 1L; + /** + * @param message + * @param cause + * @since 4.1 + */ + public ServiceNotAuthorizedException(String message, Throwable cause) { + super(message, cause); + } + + /** + * @param message + * @since 4.1 + */ + public ServiceNotAuthorizedException(String message) { + super(message); + } + public ServiceNotAuthorizedException() { super(JGitText.get().unauthorized); } diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/resolver/ServiceNotEnabledException.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/resolver/ServiceNotEnabledException.java index d0fa758a8..78ae303ed 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/resolver/ServiceNotEnabledException.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/resolver/ServiceNotEnabledException.java @@ -49,6 +49,23 @@ public class ServiceNotEnabledException extends Exception { private static final long serialVersionUID = 1L; + /** + * @param message + * @param cause + * @since 4.1 + */ + public ServiceNotEnabledException(String message, Throwable cause) { + super(message, cause); + } + + /** + * @param message + * @since 4.1 + */ + public ServiceNotEnabledException(String message) { + super(message); + } + /** Indicates the request service is not available. */ public ServiceNotEnabledException() { super(JGitText.get().serviceNotEnabledNoName);