You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by ni...@apache.org on 2007/05/22 02:23:28 UTC

svn commit: r540380 - /jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/PropertyUtilsTestCase.java

Author: niallp
Date: Mon May 21 17:23:27 2007
New Revision: 540380

URL: http://svn.apache.org/viewvc?view=rev&rev=540380
Log:
BEANUTILS-266 - add a test case to check that PropertyUtilsBean's invoke method is correctly initializing the cause on JDK 1.4+

Modified:
    jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/PropertyUtilsTestCase.java

Modified: jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/PropertyUtilsTestCase.java
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/PropertyUtilsTestCase.java?view=diff&rev=540380&r1=540379&r2=540380
==============================================================================
--- jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/PropertyUtilsTestCase.java (original)
+++ jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/PropertyUtilsTestCase.java Mon May 21 17:23:27 2007
@@ -25,6 +25,7 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.StringTokenizer;
 
 import org.apache.commons.beanutils.priv.PrivateBeanFactory;
 import org.apache.commons.beanutils.priv.PrivateDirect;
@@ -3825,5 +3826,43 @@
         myMap.put("thebean", bean);
         utilsBean.getNestedProperty(myMap, "thebean.mapitem");
         utilsBean.getNestedProperty(myMap, "thebean(mapitem)");
+    }
+
+    /**
+     * Test {@link PropertyUtilsBean}'s invoke method throwing an IllegalArgumentException
+     * and check that the "cause" has been properly initialized for JDK 1.4+
+     * See BEANUTILS-266 for changes and reason for test
+     */
+    public void testExceptionFromInvoke() throws Exception {
+        if (isPre14JVM()) {
+            return;
+        }
+        try {
+            PropertyUtils.setSimpleProperty(bean, "intProperty","XXX");
+        } catch(IllegalArgumentException t) {
+            Throwable cause = (Throwable)PropertyUtils.getProperty(t, "cause");
+            assertNotNull("Cause not found", cause);
+            assertTrue("Expected cause to be IllegalArgumentException, but was: " + cause.getClass(),
+                    cause instanceof IllegalArgumentException);
+            assertEquals("Check error message", "argument type mismatch", cause.getMessage());
+        } catch(Throwable t) {
+            fail("Expected IllegalArgumentException, but threw " + t);
+        }
+    }
+
+    /**
+     * Test for JDK 1.4
+     */
+    private boolean isPre14JVM() {
+        String version = System.getProperty("java.specification.version");
+        StringTokenizer tokenizer = new StringTokenizer(version,".");
+        if (tokenizer.nextToken().equals("1")) {
+            String minorVersion = tokenizer.nextToken();
+            if (minorVersion.equals("0")) return true;
+            if (minorVersion.equals("1")) return true;
+            if (minorVersion.equals("2")) return true;
+            if (minorVersion.equals("3")) return true;
+        }
+        return false;
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org