Use given throwable as the cause for the IAE that's thrown during loop
detection.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=165643812
diff --git a/android/guava-tests/test/com/google/common/base/ThrowablesTest.java b/android/guava-tests/test/com/google/common/base/ThrowablesTest.java
index 756642e..5ac365e 100644
--- a/android/guava-tests/test/com/google/common/base/ThrowablesTest.java
+++ b/android/guava-tests/test/com/google/common/base/ThrowablesTest.java
@@ -553,6 +553,7 @@
Throwables.getRootCause(cause);
fail("Should have throw IAE");
} catch (IllegalArgumentException expected) {
+ assertThat(expected).hasCauseThat().isSameAs(cause);
}
}
@@ -641,6 +642,7 @@
Throwables.getCausalChain(cause);
fail("Should have throw IAE");
} catch (IllegalArgumentException expected) {
+ assertThat(expected).hasCauseThat().isSameAs(cause);
}
}
diff --git a/android/guava/src/com/google/common/base/Throwables.java b/android/guava/src/com/google/common/base/Throwables.java
index 4cc913d..81dacba 100644
--- a/android/guava/src/com/google/common/base/Throwables.java
+++ b/android/guava/src/com/google/common/base/Throwables.java
@@ -262,7 +262,7 @@
throwable = cause;
if (throwable == slowPointer) {
- throw new IllegalArgumentException("Loop in causal chain detected @ " + throwable);
+ throw new IllegalArgumentException("Loop in causal chain detected.", throwable);
}
if (advanceSlowPointer) {
slowPointer = slowPointer.getCause();
@@ -305,7 +305,7 @@
causes.add(throwable);
if (throwable == slowPointer) {
- throw new IllegalArgumentException("Loop in causal chain detected @ " + throwable);
+ throw new IllegalArgumentException("Loop in causal chain detected.", throwable);
}
if (advanceSlowPointer) {
slowPointer = slowPointer.getCause();
diff --git a/guava-tests/test/com/google/common/base/ThrowablesTest.java b/guava-tests/test/com/google/common/base/ThrowablesTest.java
index 756642e..5ac365e 100644
--- a/guava-tests/test/com/google/common/base/ThrowablesTest.java
+++ b/guava-tests/test/com/google/common/base/ThrowablesTest.java
@@ -553,6 +553,7 @@
Throwables.getRootCause(cause);
fail("Should have throw IAE");
} catch (IllegalArgumentException expected) {
+ assertThat(expected).hasCauseThat().isSameAs(cause);
}
}
@@ -641,6 +642,7 @@
Throwables.getCausalChain(cause);
fail("Should have throw IAE");
} catch (IllegalArgumentException expected) {
+ assertThat(expected).hasCauseThat().isSameAs(cause);
}
}
diff --git a/guava/src/com/google/common/base/Throwables.java b/guava/src/com/google/common/base/Throwables.java
index 4cc913d..81dacba 100644
--- a/guava/src/com/google/common/base/Throwables.java
+++ b/guava/src/com/google/common/base/Throwables.java
@@ -262,7 +262,7 @@
throwable = cause;
if (throwable == slowPointer) {
- throw new IllegalArgumentException("Loop in causal chain detected @ " + throwable);
+ throw new IllegalArgumentException("Loop in causal chain detected.", throwable);
}
if (advanceSlowPointer) {
slowPointer = slowPointer.getCause();
@@ -305,7 +305,7 @@
causes.add(throwable);
if (throwable == slowPointer) {
- throw new IllegalArgumentException("Loop in causal chain detected @ " + throwable);
+ throw new IllegalArgumentException("Loop in causal chain detected.", throwable);
}
if (advanceSlowPointer) {
slowPointer = slowPointer.getCause();