com.amazonaws.util.Throwables Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aws-java-sdk Show documentation
Show all versions of aws-java-sdk Show documentation
The Amazon Web Services SDK for Java provides Java APIs for building software on AWS' cost-effective, scalable, and reliable infrastructure products. The AWS Java SDK allows developers to code against APIs for all of Amazon's infrastructure web services (Amazon S3, Amazon EC2, Amazon SQS, Amazon Relational Database Service, Amazon AutoScaling, etc).
The newest version!
package com.amazonaws.util;
import org.apache.commons.logging.LogFactory;
/**
* Utility for use with errors or exceptions.
*/
public enum Throwables {
;
/**
* Returns the root cause of the given throwable, or null if the given
* throwable is null. If the root cause is over 1000 level deep, the
* original throwable will be returned defensively as this is heuristically
* considered a circular reference, however unlikely.
*/
public static Throwable getRootCause(Throwable orig) {
if (orig == null)
return orig;
Throwable t = orig;
// defend against (malicious?) circularity
for (int i=0; i < 1000; i++) {
Throwable cause = t.getCause();
if (cause == null)
return t;
t = cause;
}
// Too bad. Return the original exception.
LogFactory.getLog(Throwables.class).debug(
"Possible circular reference detected on " + orig.getClass()
+ ": [" + orig + "]");
return orig;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy