From b265cada7b4901dfaca9f97789291c43599ddac0 Mon Sep 17 00:00:00 2001 From: "Brian S. O'Neill" Date: Sun, 4 May 2008 17:21:57 +0000 Subject: Introduce PersistInterruptedException. --- .../carbonado/FetchInterruptedException.java | 5 +++ .../carbonado/PersistInterruptedException.java | 50 ++++++++++++++++++++++ .../amazon/carbonado/spi/ExceptionTransformer.java | 4 ++ 3 files changed, 59 insertions(+) create mode 100644 src/main/java/com/amazon/carbonado/PersistInterruptedException.java 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(); } -- cgit v1.2.3