Return-Path: Delivered-To: apmail-avro-commits-archive@www.apache.org Received: (qmail 81350 invoked from network); 3 Dec 2010 16:41:21 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 3 Dec 2010 16:41:21 -0000 Received: (qmail 42231 invoked by uid 500); 3 Dec 2010 16:41:21 -0000 Delivered-To: apmail-avro-commits-archive@avro.apache.org Received: (qmail 42190 invoked by uid 500); 3 Dec 2010 16:41:19 -0000 Mailing-List: contact commits-help@avro.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@avro.apache.org Delivered-To: mailing list commits@avro.apache.org Received: (qmail 42182 invoked by uid 99); 3 Dec 2010 16:41:18 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 03 Dec 2010 16:41:18 +0000 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 Dec 2010 16:41:15 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 1485523889ED; Fri, 3 Dec 2010 16:39:43 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1041903 - in /avro/trunk: CHANGES.txt lang/java/src/java/org/apache/avro/io/ResolvingDecoder.java lang/java/src/java/org/apache/avro/io/parsing/ResolvingGrammarGenerator.java lang/java/src/test/java/org/apache/avro/io/TestResolvingIO.java Date: Fri, 03 Dec 2010 16:39:42 -0000 To: commits@avro.apache.org From: thiru@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20101203163943.1485523889ED@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: thiru Date: Fri Dec 3 16:39:42 2010 New Revision: 1041903 URL: http://svn.apache.org/viewvc?rev=1041903&view=rev Log: Fixed AVRO-706. Java: Type promotion not succeeding for long -> float Modified: avro/trunk/CHANGES.txt avro/trunk/lang/java/src/java/org/apache/avro/io/ResolvingDecoder.java avro/trunk/lang/java/src/java/org/apache/avro/io/parsing/ResolvingGrammarGenerator.java avro/trunk/lang/java/src/test/java/org/apache/avro/io/TestResolvingIO.java Modified: avro/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/avro/trunk/CHANGES.txt?rev=1041903&r1=1041902&r2=1041903&view=diff ============================================================================== --- avro/trunk/CHANGES.txt (original) +++ avro/trunk/CHANGES.txt Fri Dec 3 16:39:42 2010 @@ -56,6 +56,8 @@ Avro 1.5.0 (unreleased) AVRO-702. Java: Fix a bug printing nested record namespaces. (cutting) + AVRO-706. Java: Type promotion not succeeding for long -> float. (thiru) + Avro 1.4.1 (13 October 2010) NEW FEATURES Modified: avro/trunk/lang/java/src/java/org/apache/avro/io/ResolvingDecoder.java URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/src/java/org/apache/avro/io/ResolvingDecoder.java?rev=1041903&r1=1041902&r2=1041903&view=diff ============================================================================== --- avro/trunk/lang/java/src/java/org/apache/avro/io/ResolvingDecoder.java (original) +++ avro/trunk/lang/java/src/java/org/apache/avro/io/ResolvingDecoder.java Fri Dec 3 16:39:42 2010 @@ -155,6 +155,19 @@ public class ResolvingDecoder extends Va } @Override + public float readFloat() throws IOException { + Symbol actual = parser.advance(Symbol.FLOAT); + if (actual == Symbol.INT) { + return (float) in.readInt(); + } else if (actual == Symbol.LONG) { + return (float) in.readLong(); + } else { + assert actual == Symbol.FLOAT; + return (float) in.readFloat(); + } + } + + @Override public double readDouble() throws IOException { Symbol actual = parser.advance(Symbol.DOUBLE); if (actual == Symbol.INT) { Modified: avro/trunk/lang/java/src/java/org/apache/avro/io/parsing/ResolvingGrammarGenerator.java URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/src/java/org/apache/avro/io/parsing/ResolvingGrammarGenerator.java?rev=1041903&r1=1041902&r2=1041903&view=diff ============================================================================== --- avro/trunk/lang/java/src/java/org/apache/avro/io/parsing/ResolvingGrammarGenerator.java (original) +++ avro/trunk/lang/java/src/java/org/apache/avro/io/parsing/ResolvingGrammarGenerator.java Fri Dec 3 16:39:42 2010 @@ -130,12 +130,18 @@ public class ResolvingGrammarGenerator e case LONG: switch (writerType) { case INT: - case DOUBLE: - case FLOAT: return Symbol.resolve(super.generate(writer, seen), Symbol.LONG); } break; + case FLOAT: + switch (writerType) { + case INT: + case LONG: + return Symbol.resolve(super.generate(writer, seen), Symbol.FLOAT); + } + break; + case DOUBLE: switch (writerType) { case INT: @@ -156,7 +162,6 @@ public class ResolvingGrammarGenerator e case BOOLEAN: case INT: case STRING: - case FLOAT: case BYTES: case ENUM: case ARRAY: Modified: avro/trunk/lang/java/src/test/java/org/apache/avro/io/TestResolvingIO.java URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/src/test/java/org/apache/avro/io/TestResolvingIO.java?rev=1041903&r1=1041902&r2=1041903&view=diff ============================================================================== --- avro/trunk/lang/java/src/test/java/org/apache/avro/io/TestResolvingIO.java (original) +++ avro/trunk/lang/java/src/test/java/org/apache/avro/io/TestResolvingIO.java Fri Dec 3 16:39:42 2010 @@ -124,12 +124,12 @@ public class TestResolvingIO { private static Object[][] testSchemas() { // The mnemonics are the same as {@link TestValidatingIO#testSchemas} return new Object[][] { - // { "\"int\"", "I", "\"float\"", "F" }, // makes sense? + { "\"int\"", "I", "\"float\"", "F" }, { "\"int\"", "I", "\"double\"", "D" }, - // { "\"long\"", "L", "\"float\"", "F" }, // And this? + { "\"int\"", "I", "\"long\"", "L" }, + { "\"long\"", "L", "\"float\"", "F" }, { "\"long\"", "L", "\"double\"", "D" }, { "\"float\"", "F", "\"double\"", "D" }, - { "\"double\"", "D", "\"long\"", "L" }, { "{\"type\":\"array\", \"items\": \"int\"}", "[]", "{\"type\":\"array\", \"items\": \"long\"}", "[]", },