mirror of https://github.com/apache/jclouds.git
Issue 456: add new InsufficientResourcesException
This commit is contained in:
parent
4eefd0dfa1
commit
99bbdfce8a
|
@ -0,0 +1,43 @@
|
|||
/**
|
||||
*
|
||||
* Copyright (C) 2010 Cloud Conscious, LLC. <info@cloudconscious.com>
|
||||
*
|
||||
* ====================================================================
|
||||
* 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 org.jclouds.rest;
|
||||
|
||||
/**
|
||||
* Thrown when there is a quota or otherwise limit preventing the operation from occurring.
|
||||
*
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
public class InsufficientResourcesException extends RuntimeException {
|
||||
|
||||
/** The serialVersionUID */
|
||||
private static final long serialVersionUID = -2272965726680821281L;
|
||||
|
||||
public InsufficientResourcesException() {
|
||||
super();
|
||||
}
|
||||
|
||||
public InsufficientResourcesException(String arg0, Throwable arg1) {
|
||||
super(arg0, arg1);
|
||||
}
|
||||
|
||||
public InsufficientResourcesException(Throwable arg0) {
|
||||
super(arg0);
|
||||
}
|
||||
}
|
|
@ -28,13 +28,13 @@ import java.util.NoSuchElementException;
|
|||
|
||||
import org.jclouds.http.HttpResponseException;
|
||||
import org.jclouds.rest.AuthorizationException;
|
||||
import org.jclouds.rest.InsufficientResourcesException;
|
||||
import org.jclouds.rest.ResourceNotFoundException;
|
||||
|
||||
import com.google.common.base.Throwables;
|
||||
import com.google.inject.ProvisionException;
|
||||
import com.google.inject.spi.Message;
|
||||
|
||||
|
||||
/**
|
||||
* General utilities used in jclouds code.
|
||||
*
|
||||
|
@ -72,9 +72,9 @@ public class Throwables2 {
|
|||
}
|
||||
|
||||
// Note this needs to be kept up-to-date with all top-level exceptions jclouds works against
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
@SuppressWarnings( { "unchecked", "rawtypes" })
|
||||
public static Exception returnFirstExceptionIfInListOrThrowStandardExceptionOrCause(Class[] exceptionTypes,
|
||||
Exception exception) throws Exception {
|
||||
Exception exception) throws Exception {
|
||||
for (Class type : exceptionTypes) {
|
||||
Throwable throwable = getFirstThrowableOfType(exception, type);
|
||||
if (throwable != null) {
|
||||
|
@ -82,8 +82,8 @@ public class Throwables2 {
|
|||
}
|
||||
}
|
||||
for (Class<Exception> propagatableExceptionType : new Class[] { IllegalStateException.class,
|
||||
UnsupportedOperationException.class, IllegalArgumentException.class, AuthorizationException.class,
|
||||
ResourceNotFoundException.class, HttpResponseException.class }) {
|
||||
UnsupportedOperationException.class, IllegalArgumentException.class, AuthorizationException.class,
|
||||
ResourceNotFoundException.class, InsufficientResourcesException.class, HttpResponseException.class }) {
|
||||
Throwable throwable = getFirstThrowableOfType(exception, propagatableExceptionType);
|
||||
if (throwable != null) {
|
||||
throw (Exception) throwable;
|
||||
|
@ -101,7 +101,5 @@ public class Throwables2 {
|
|||
assert false : "exception should have propogated " + e;
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -30,6 +30,7 @@ import java.util.concurrent.TimeoutException;
|
|||
import org.jclouds.http.HttpCommand;
|
||||
import org.jclouds.http.HttpResponseException;
|
||||
import org.jclouds.rest.AuthorizationException;
|
||||
import org.jclouds.rest.InsufficientResourcesException;
|
||||
import org.jclouds.rest.ResourceNotFoundException;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
|
@ -115,7 +116,13 @@ public class Throwables2Test {
|
|||
Exception e = new AuthorizationException();
|
||||
returnFirstExceptionIfInListOrThrowStandardExceptionOrCause(new Class[] {}, new RuntimeException(e));
|
||||
}
|
||||
|
||||
|
||||
@Test(expectedExceptions = InsufficientResourcesException.class)
|
||||
public void testPropagateStandardExceptionInsufficientResourcesException() throws Exception {
|
||||
Exception e = new InsufficientResourcesException();
|
||||
returnFirstExceptionIfInListOrThrowStandardExceptionOrCause(new Class[] {}, new RuntimeException(e));
|
||||
}
|
||||
|
||||
@Test(expectedExceptions = ResourceNotFoundException.class)
|
||||
public void testPropagateStandardExceptionResourceNotFoundException() throws Exception {
|
||||
Exception e = new ResourceNotFoundException();
|
||||
|
|
Loading…
Reference in New Issue