You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ba...@apache.org on 2010/01/02 06:44:35 UTC
svn commit: r895126 - in /commons/proper/lang/trunk/src:
java/org/apache/commons/lang3/exception/ExceptionUtils.java
test/org/apache/commons/lang3/exception/ExceptionUtilsTest.java
Author: bayard
Date: Sat Jan 2 05:44:35 2010
New Revision: 895126
URL: http://svn.apache.org/viewvc?rev=895126&view=rev
Log:
Removing setCause method. JDK 1.4 provided an initCause method and this method was to support both pre and post JDK 1.4 use cases. I don't see much of a reason to keep supporting Exceptions that have setCause as well as the inherited initCause. LANG-491
Modified:
commons/proper/lang/trunk/src/java/org/apache/commons/lang3/exception/ExceptionUtils.java
commons/proper/lang/trunk/src/test/org/apache/commons/lang3/exception/ExceptionUtilsTest.java
Modified: commons/proper/lang/trunk/src/java/org/apache/commons/lang3/exception/ExceptionUtils.java
URL: http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/java/org/apache/commons/lang3/exception/ExceptionUtils.java?rev=895126&r1=895125&r2=895126&view=diff
==============================================================================
--- commons/proper/lang/trunk/src/java/org/apache/commons/lang3/exception/ExceptionUtils.java (original)
+++ commons/proper/lang/trunk/src/java/org/apache/commons/lang3/exception/ExceptionUtils.java Sat Jan 2 05:44:35 2010
@@ -151,64 +151,6 @@
}
/**
- * <p>Sets the cause of a <code>Throwable</code> using introspection, allowing
- * source code compatibility between pre-1.4 and post-1.4 Java releases.</p>
- *
- * <p>The typical use of this method is inside a constructor as in
- * the following example:</p>
- *
- * <pre>
- * import org.apache.commons.lang3.exception.ExceptionUtils;
- *
- * public class MyException extends Exception {
- *
- * public MyException(String msg) {
- * super(msg);
- * }
- *
- * public MyException(String msg, Throwable cause) {
- * super(msg);
- * ExceptionUtils.setCause(this, cause);
- * }
- * }
- * </pre>
- *
- * @param target the target <code>Throwable</code>
- * @param cause the <code>Throwable</code> to set in the target
- * @return a <code>true</code> if the target has been modified
- * @since 2.2
- */
- public static boolean setCause(Throwable target, Throwable cause) {
- if (target == null) {
- throw new NullPointerException("target must not be null.");
- }
- Object[] causeArgs = new Object[]{cause};
- boolean modifiedTarget = false;
- if (THROWABLE_INITCAUSE_METHOD != null) {
- try {
- THROWABLE_INITCAUSE_METHOD.invoke(target, causeArgs);
- modifiedTarget = true;
- } catch (IllegalAccessException ignored) {
- // Exception ignored.
- } catch (InvocationTargetException ignored) {
- // Exception ignored.
- }
- }
- try {
- Method setCauseMethod = target.getClass().getMethod("setCause", new Class[]{Throwable.class});
- setCauseMethod.invoke(target, causeArgs);
- modifiedTarget = true;
- } catch (NoSuchMethodException ignored) {
- // Exception ignored.
- } catch (IllegalAccessException ignored) {
- // Exception ignored.
- } catch (InvocationTargetException ignored) {
- // Exception ignored.
- }
- return modifiedTarget;
- }
-
- /**
* Returns the given list as a <code>String[]</code>.
* @param list a list to transform.
* @return the given list as a <code>String[]</code>.
Modified: commons/proper/lang/trunk/src/test/org/apache/commons/lang3/exception/ExceptionUtilsTest.java
URL: http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/test/org/apache/commons/lang3/exception/ExceptionUtilsTest.java?rev=895126&r1=895125&r2=895126&view=diff
==============================================================================
--- commons/proper/lang/trunk/src/test/org/apache/commons/lang3/exception/ExceptionUtilsTest.java (original)
+++ commons/proper/lang/trunk/src/test/org/apache/commons/lang3/exception/ExceptionUtilsTest.java Sat Jan 2 05:44:35 2010
@@ -185,25 +185,6 @@
assertSame(((ExceptionWithCause) cyclicCause.getCause()).getCause(), ExceptionUtils.getRootCause(cyclicCause));
}
- public void testSetCause() {
- Exception cause = new ExceptionWithoutCause();
- assertEquals(true, ExceptionUtils.setCause(new ExceptionWithCause(null), cause));
- if (SystemUtils.isJavaVersionAtLeast(140)) {
- assertEquals(true, ExceptionUtils.setCause(new ExceptionWithoutCause(), cause));
- }
- }
-
- /**
- * Tests overriding a cause to <code>null</code>.
- */
- public void testSetCauseToNull() {
- Exception ex = new ExceptionWithCause(new IOException());
- assertEquals(true, ExceptionUtils.setCause(ex, new IllegalStateException()));
- assertNotNull(ExceptionUtils.getCause(ex));
- assertEquals(true, ExceptionUtils.setCause(ex, null));
- assertNull(ExceptionUtils.getCause(ex));
- }
-
//-----------------------------------------------------------------------
public void testGetThrowableCount_Throwable() {
assertEquals(0, ExceptionUtils.getThrowableCount(null));