Patch: FYI: test for chaining oddity

Tom Tromey tromey@redhat.com
Wed Apr 5 18:30:00 GMT 2006


I'm checking this in.

I wrote this test to check the behavior of exception chaining in an
odd situation.  I think this behavior is pretty broken, but we do
agree with the JDK here, so I'm checking it in.  Also I figured that
if the JDK is ever fixed this will let us notice.

Tom

2006-04-05  Tom Tromey  <tromey@redhat.com>

	* gnu/testlet/java/lang/reflect/InvocationTargetException/Chain.java:
	New file.

Index: gnu/testlet/java/lang/reflect/InvocationTargetException/Chain.java
===================================================================
RCS file: gnu/testlet/java/lang/reflect/InvocationTargetException/Chain.java
diff -N gnu/testlet/java/lang/reflect/InvocationTargetException/Chain.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/testlet/java/lang/reflect/InvocationTargetException/Chain.java	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,58 @@
+/* Chain.java -- Test exception chaining
+   Copyright (C) 2006 Red Hat, Inc.
+This file is part of Mauve.
+
+Mauve is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+Mauve is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Mauve; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+*/
+
+// Tags: JDK1.4
+
+package gnu.testlet.java.lang.reflect.InvocationTargetException;
+
+import java.lang.reflect.InvocationTargetException;
+
+import gnu.testlet.TestHarness;
+import gnu.testlet.Testlet;
+
+public class Chain extends InvocationTargetException implements Testlet {
+
+	public Chain() {
+	}
+
+	public Chain(Throwable targetException, String err) {
+		super(targetException, err);
+	}
+
+	public Chain(Throwable targetException) {
+		super(targetException);
+	}
+
+	public void test(TestHarness harness) {
+		boolean ok = false;
+		try {
+			Throwable t = new Throwable();
+			Chain c = new Chain();
+			// Bogusly, the JDK does not allow this.
+			c.initCause(c);
+		} catch (IllegalStateException _) {
+			harness.debug(_);
+			ok = true;
+		}
+		harness.check(ok);
+	}
+
+}



More information about the Mauve-patches mailing list