Return-Path: Delivered-To: apmail-tomcat-dev-archive@www.apache.org Received: (qmail 9116 invoked from network); 3 Oct 2008 16:19:26 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 3 Oct 2008 16:19:26 -0000 Received: (qmail 18497 invoked by uid 500); 3 Oct 2008 16:19:21 -0000 Delivered-To: apmail-tomcat-dev-archive@tomcat.apache.org Received: (qmail 18438 invoked by uid 500); 3 Oct 2008 16:19:21 -0000 Mailing-List: contact dev-help@tomcat.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Tomcat Developers List" Delivered-To: mailing list dev@tomcat.apache.org Received: (qmail 18427 invoked by uid 99); 3 Oct 2008 16:19:21 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 03 Oct 2008 09:19:21 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 03 Oct 2008 16:18:27 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 62DFD2388855; Fri, 3 Oct 2008 09:19:02 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r701432 - in /tomcat/trunk: java/org/apache/el/lang/ELSupport.java test/org/apache/el/lang/TestELSupport.java Date: Fri, 03 Oct 2008 16:19:02 -0000 To: dev@tomcat.apache.org From: markt@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20081003161902.62DFD2388855@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: markt Date: Fri Oct 3 09:19:01 2008 New Revision: 701432 URL: http://svn.apache.org/viewvc?rev=701432&view=rev Log: Fix regression in previous fix for https://issues.apache.org/bugzilla/show_bug.cgi?id=43656 Patch provided by Nils Eckert. Modified: tomcat/trunk/java/org/apache/el/lang/ELSupport.java tomcat/trunk/test/org/apache/el/lang/TestELSupport.java Modified: tomcat/trunk/java/org/apache/el/lang/ELSupport.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/el/lang/ELSupport.java?rev=701432&r1=701431&r2=701432&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/el/lang/ELSupport.java (original) +++ tomcat/trunk/java/org/apache/el/lang/ELSupport.java Fri Oct 3 09:19:01 2008 @@ -224,18 +224,18 @@ return ((BigDecimal) number).toBigInteger(); } if (number instanceof BigInteger) { - return new BigInteger(number.toString()); + return number; } return BigInteger.valueOf(number.longValue()); } if (BigDecimal.class.equals(type)) { if (number instanceof BigDecimal) { - return new BigDecimal(number.toString()); + return number; } if (number instanceof BigInteger) { return new BigDecimal((BigInteger) number); } - return new BigDecimal(number.doubleValue()); + return new BigDecimal(number.toString()); } if (Byte.TYPE == type || Byte.class.equals(type)) { return new Byte(number.byteValue()); @@ -341,7 +341,7 @@ public final static Object coerceToType(final Object obj, final Class type) throws IllegalArgumentException { if (type == null || Object.class.equals(type) || - (obj != null && type.equals(obj.getClass()))) { + (obj != null && type.isAssignableFrom(obj.getClass()))) { return obj; } if (String.class.equals(type)) { @@ -356,9 +356,6 @@ if (Boolean.class.equals(type) || Boolean.TYPE == type) { return coerceToBoolean(obj); } - if (obj != null && type.isAssignableFrom(obj.getClass())) { - return obj; - } if (type.isEnum()) { return coerceToEnum(obj, type); } Modified: tomcat/trunk/test/org/apache/el/lang/TestELSupport.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/el/lang/TestELSupport.java?rev=701432&r1=701431&r2=701432&view=diff ============================================================================== --- tomcat/trunk/test/org/apache/el/lang/TestELSupport.java (original) +++ tomcat/trunk/test/org/apache/el/lang/TestELSupport.java Fri Oct 3 09:19:01 2008 @@ -56,6 +56,12 @@ testIsSame(Float.valueOf(0.123456F)); } + public void testCoerceIntegerToNumber() { + Integer input = 4390241; + Object output = ELSupport.coerceToType(input, Number.class); + assertEquals(input, output); + } + private static void testIsSame(Object value) { assertEquals(value, ELSupport.coerceToNumber(value, value.getClass())); } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org For additional commands, e-mail: dev-help@tomcat.apache.org