summaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/amazon/carbonado/FetchInterruptedException.java5
-rw-r--r--src/main/java/com/amazon/carbonado/PersistInterruptedException.java50
-rw-r--r--src/main/java/com/amazon/carbonado/spi/ExceptionTransformer.java4
3 files changed, 59 insertions, 0 deletions
diff --git a/src/main/java/com/amazon/carbonado/FetchInterruptedException.java b/src/main/java/com/amazon/carbonado/FetchInterruptedException.java
index 1f8e4a7..762c343 100644
--- a/src/main/java/com/amazon/carbonado/FetchInterruptedException.java
+++ b/src/main/java/com/amazon/carbonado/FetchInterruptedException.java
@@ -42,4 +42,9 @@ public class FetchInterruptedException extends FetchException {
public FetchInterruptedException(Throwable cause) {
super(cause);
}
+
+ @Override
+ protected PersistException makePersistException(String message, Throwable cause) {
+ return new PersistInterruptedException(message, cause);
+ }
}
diff --git a/src/main/java/com/amazon/carbonado/PersistInterruptedException.java b/src/main/java/com/amazon/carbonado/PersistInterruptedException.java
new file mode 100644
index 0000000..28aef0f
--- /dev/null
+++ b/src/main/java/com/amazon/carbonado/PersistInterruptedException.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2008 Amazon Technologies, Inc. or its affiliates.
+ * Amazon, Amazon.com and Carbonado are trademarks or registered trademarks
+ * of Amazon Technologies, Inc. or its affiliates. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.amazon.carbonado;
+
+/**
+ * Thrown from a persist operation that was canceled.
+ *
+ * @author Brian S O'Neill
+ * @since 1.2
+ */
+public class PersistInterruptedException extends PersistException {
+ private static final long serialVersionUID = 1;
+
+ public PersistInterruptedException() {
+ super();
+ }
+
+ public PersistInterruptedException(String message) {
+ super(message);
+ }
+
+ public PersistInterruptedException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public PersistInterruptedException(Throwable cause) {
+ super(cause);
+ }
+
+ @Override
+ protected FetchException makeFetchException(String message, Throwable cause) {
+ return new FetchInterruptedException(message, cause);
+ }
+}
diff --git a/src/main/java/com/amazon/carbonado/spi/ExceptionTransformer.java b/src/main/java/com/amazon/carbonado/spi/ExceptionTransformer.java
index 2064e68..e660162 100644
--- a/src/main/java/com/amazon/carbonado/spi/ExceptionTransformer.java
+++ b/src/main/java/com/amazon/carbonado/spi/ExceptionTransformer.java
@@ -24,6 +24,7 @@ import java.nio.channels.ClosedByInterruptException;
import com.amazon.carbonado.FetchException;
import com.amazon.carbonado.FetchInterruptedException;
import com.amazon.carbonado.PersistException;
+import com.amazon.carbonado.PersistInterruptedException;
import com.amazon.carbonado.RepositoryException;
/**
@@ -158,6 +159,9 @@ public class ExceptionTransformer {
if (e instanceof PersistException) {
return (PersistException) e;
}
+ if (e instanceof InterruptedIOException) {
+ return new PersistInterruptedException(e);
+ }
if (e instanceof FetchException) {
return ((FetchException) e).toPersistException();
}