diff options
Diffstat (limited to 'src/main/java/com/amazon/carbonado')
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();
}
|