Make sure this exception code does not depend on Java 1.4 nested exceptions. SVN revision 38990 does not compile with Java 1.3.1.

Compiled with Sun Java 1.3.1_15
Tested with Sun Java 1.3.1_15
Tested with Sun Java 1.4.2_12
Tested with Sun Java 1.5.0_08
All of the above on Windows XP SP2 + patches.

git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/lang/trunk@432024 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Gary D. Gregory 2006-08-16 20:34:01 +00:00
parent e6cde16e0a
commit eb68acff59
1 changed files with 33 additions and 17 deletions

View File

@ -32,7 +32,23 @@ import org.apache.commons.lang.SystemUtils;
/** /**
* Tests {@link org.apache.commons.lang.exception.ExceptionUtils}. * Tests {@link org.apache.commons.lang.exception.ExceptionUtils}.
* *
* <h3>Notes</h3>
* <p>
* Make sure this exception code does not depend on Java 1.4 nested exceptions. SVN revision 38990 does not compile with
* Java 1.3.1.
* </p>
* <ul>
* <li>Compiled with Sun Java 1.3.1_15</li>
* <li>Tested with Sun Java 1.3.1_15</li>
* <li>Tested with Sun Java 1.4.2_12</li>
* <li>Tested with Sun Java 1.5.0_08</li>
* <li>All of the above on Windows XP SP2 + patches.</li>
* </ul>
* <p>
* Gary Gregory; August 16, 2006.
* </p>
*
* @author <a href="mailto:dlr@finemaltcoding.com">Daniel Rall</a> * @author <a href="mailto:dlr@finemaltcoding.com">Daniel Rall</a>
* @author <a href="mailto:steven@caswell.name">Steven Caswell</a> * @author <a href="mailto:steven@caswell.name">Steven Caswell</a>
* @author Stephen Colebourne * @author Stephen Colebourne
@ -46,7 +62,7 @@ public class ExceptionUtilsTestCase extends junit.framework.TestCase {
private Throwable withoutCause; private Throwable withoutCause;
private Throwable jdkNoCause; private Throwable jdkNoCause;
private ExceptionWithCause selfCause; private ExceptionWithCause selfCause;
private ExceptionWithCause recursiveCause; private ExceptionWithCause cyclicCause;
public ExceptionUtilsTestCase(String name) { public ExceptionUtilsTestCase(String name) {
super(name); super(name);
@ -66,7 +82,7 @@ public class ExceptionUtilsTestCase extends junit.framework.TestCase {
ExceptionWithCause a = new ExceptionWithCause(null); ExceptionWithCause a = new ExceptionWithCause(null);
ExceptionWithCause b = new ExceptionWithCause(a); ExceptionWithCause b = new ExceptionWithCause(a);
a.setCause(b); a.setCause(b);
recursiveCause = new ExceptionWithCause(a); cyclicCause = new ExceptionWithCause(a);
} }
protected void tearDown() throws Exception { protected void tearDown() throws Exception {
@ -75,7 +91,7 @@ public class ExceptionUtilsTestCase extends junit.framework.TestCase {
withCause = null; withCause = null;
jdkNoCause = null; jdkNoCause = null;
selfCause = null; selfCause = null;
recursiveCause = null; cyclicCause = null;
} }
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -131,9 +147,9 @@ public class ExceptionUtilsTestCase extends junit.framework.TestCase {
assertSame(nested, ExceptionUtils.getCause(withCause)); assertSame(nested, ExceptionUtils.getCause(withCause));
assertSame(null, ExceptionUtils.getCause(jdkNoCause)); assertSame(null, ExceptionUtils.getCause(jdkNoCause));
assertSame(selfCause, ExceptionUtils.getCause(selfCause)); assertSame(selfCause, ExceptionUtils.getCause(selfCause));
assertSame(recursiveCause.getCause(), ExceptionUtils.getCause(recursiveCause)); assertSame(cyclicCause.getCause(), ExceptionUtils.getCause(cyclicCause));
assertSame(recursiveCause.getCause().getCause(), ExceptionUtils.getCause(recursiveCause.getCause())); assertSame(((ExceptionWithCause) cyclicCause.getCause()).getCause(), ExceptionUtils.getCause(cyclicCause.getCause()));
assertSame(recursiveCause.getCause(), ExceptionUtils.getCause(recursiveCause.getCause().getCause())); assertSame(cyclicCause.getCause(), ExceptionUtils.getCause(((ExceptionWithCause) cyclicCause.getCause()).getCause()));
} }
public void testGetCause_ThrowableArray() { public void testGetCause_ThrowableArray() {
@ -166,7 +182,7 @@ public class ExceptionUtilsTestCase extends junit.framework.TestCase {
assertSame(withoutCause, ExceptionUtils.getRootCause(withCause)); assertSame(withoutCause, ExceptionUtils.getRootCause(withCause));
assertSame(null, ExceptionUtils.getRootCause(jdkNoCause)); assertSame(null, ExceptionUtils.getRootCause(jdkNoCause));
assertSame(null, ExceptionUtils.getRootCause(selfCause)); assertSame(null, ExceptionUtils.getRootCause(selfCause));
assertSame(recursiveCause.getCause().getCause(), ExceptionUtils.getRootCause(recursiveCause)); assertSame(((ExceptionWithCause) cyclicCause.getCause()).getCause(), ExceptionUtils.getRootCause(cyclicCause));
} }
public void testSetCause() { public void testSetCause() {
@ -220,7 +236,7 @@ public class ExceptionUtilsTestCase extends junit.framework.TestCase {
assertEquals(3, ExceptionUtils.getThrowableCount(withCause)); assertEquals(3, ExceptionUtils.getThrowableCount(withCause));
assertEquals(1, ExceptionUtils.getThrowableCount(jdkNoCause)); assertEquals(1, ExceptionUtils.getThrowableCount(jdkNoCause));
assertEquals(1, ExceptionUtils.getThrowableCount(selfCause)); assertEquals(1, ExceptionUtils.getThrowableCount(selfCause));
assertEquals(3, ExceptionUtils.getThrowableCount(recursiveCause)); assertEquals(3, ExceptionUtils.getThrowableCount(cyclicCause));
} }
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -262,11 +278,11 @@ public class ExceptionUtilsTestCase extends junit.framework.TestCase {
} }
public void testGetThrowables_Throwable_recursiveCause() { public void testGetThrowables_Throwable_recursiveCause() {
Throwable[] throwables = ExceptionUtils.getThrowables(recursiveCause); Throwable[] throwables = ExceptionUtils.getThrowables(cyclicCause);
assertEquals(3, throwables.length); assertEquals(3, throwables.length);
assertSame(recursiveCause, throwables[0]); assertSame(cyclicCause, throwables[0]);
assertSame(recursiveCause.getCause(), throwables[1]); assertSame(cyclicCause.getCause(), throwables[1]);
assertSame(recursiveCause.getCause().getCause(), throwables[2]); assertSame(((ExceptionWithCause) cyclicCause.getCause()).getCause(), throwables[2]);
} }
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -309,11 +325,11 @@ public class ExceptionUtilsTestCase extends junit.framework.TestCase {
} }
public void testGetThrowableList_Throwable_recursiveCause() { public void testGetThrowableList_Throwable_recursiveCause() {
List throwables = ExceptionUtils.getThrowableList(recursiveCause); List throwables = ExceptionUtils.getThrowableList(cyclicCause);
assertEquals(3, throwables.size()); assertEquals(3, throwables.size());
assertSame(recursiveCause, throwables.get(0)); assertSame(cyclicCause, throwables.get(0));
assertSame(recursiveCause.getCause(), throwables.get(1)); assertSame(cyclicCause.getCause(), throwables.get(1));
assertSame(recursiveCause.getCause().getCause(), throwables.get(2)); assertSame(((ExceptionWithCause) cyclicCause.getCause()).getCause(), throwables.get(2));
} }
//----------------------------------------------------------------------- //-----------------------------------------------------------------------