svn commit: r1200405 - /struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONReader.java
Author: mcucchiara Date: Thu Nov 10 16:18:27 2011 New Revision: 1200405 URL: http://svn.apache.org/viewvc?rev=1200405&view=rev Log: Removed redundant cast and unnecessary boxing Modified: struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONReader.java Modified: struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONReader.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONReader.java?rev=1200405&r1=1200404&r2=1200405&view=diff == --- struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONReader.java (original) +++ struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONReader.java Thu Nov 10 16:18:27 2011 @@ -40,14 +40,14 @@ class JSONReader { private static Map escapes = new HashMap(); static { -escapes.put(new Character('"'), new Character('"')); -escapes.put(new Character('\\'), new Character('\\')); -escapes.put(new Character('/'), new Character('/')); -escapes.put(new Character('b'), new Character('\b')); -escapes.put(new Character('f'), new Character('\f')); -escapes.put(new Character('n'), new Character('\n')); -escapes.put(new Character('r'), new Character('\r')); -escapes.put(new Character('t'), new Character('\t')); +escapes.put('"', '"'); +escapes.put('\\', '\\'); +escapes.put('/', '/'); +escapes.put('b', '\b'); +escapes.put('f', '\f'); +escapes.put('n', '\n'); +escapes.put('r', '\r'); +escapes.put('t', '\t'); } private CharacterIterator it; @@ -75,7 +75,7 @@ class JSONReader { } private Object read() throws JSONException { -Object ret = null; +Object ret; this.skipWhiteSpace(); @@ -198,8 +198,8 @@ class JSONReader { this.addDigits(); } -return (this.buf.indexOf(".") >= 0) ? (Object) Double.parseDouble(this.buf.toString()) -: (Object) Long.parseLong(this.buf.toString()); +return (this.buf.indexOf(".") >= 0) ? Double.parseDouble(this.buf.toString()) : +Long.parseLong(this.buf.toString()); } private Object string(char quote) { @@ -212,10 +212,10 @@ class JSONReader { if (this.c == 'u') { this.add(this.unicode()); } else { -Object value = escapes.get(new Character(this.c)); +Object value = escapes.get(this.c); if (value != null) { -this.add(((Character) value).charValue()); +this.add((Character) value); } } } else {
svn commit: r1200412 - /struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONReader.java
Author: mcucchiara Date: Thu Nov 10 16:24:27 2011 New Revision: 1200412 URL: http://svn.apache.org/viewvc?rev=1200412&view=rev Log: Reverted redundant cast (tests failed) Modified: struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONReader.java Modified: struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONReader.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONReader.java?rev=1200412&r1=1200411&r2=1200412&view=diff == --- struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONReader.java (original) +++ struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONReader.java Thu Nov 10 16:24:27 2011 @@ -198,8 +198,8 @@ class JSONReader { this.addDigits(); } -return (this.buf.indexOf(".") >= 0) ? Double.parseDouble(this.buf.toString()) : -Long.parseLong(this.buf.toString()); +return (this.buf.indexOf(".") >= 0) ? (Object) Double.parseDouble(this.buf.toString()) +: (Object) Long.parseLong(this.buf.toString()); } private Object string(char quote) {
svn commit: r1200422 - in /struts/struts2/trunk/plugins/json/src: main/java/org/apache/struts2/json/JSONReader.java test/java/org/apache/struts2/json/JSONReaderTest.java
Author: mcucchiara Date: Thu Nov 10 16:51:46 2011 New Revision: 1200422 URL: http://svn.apache.org/viewvc?rev=1200422&view=rev Log: WW-3701 - Wrong parsing of number with exponents Added: struts/struts2/trunk/plugins/json/src/test/java/org/apache/struts2/json/JSONReaderTest.java Modified: struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONReader.java Modified: struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONReader.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONReader.java?rev=1200422&r1=1200421&r2=1200422&view=diff == --- struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONReader.java (original) +++ struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONReader.java Thu Nov 10 16:51:46 2011 @@ -176,6 +176,7 @@ class JSONReader { private Object number() { this.buf.setLength(0); +boolean toDouble = false; if (this.c == '-') { this.add(); @@ -184,11 +185,13 @@ class JSONReader { this.addDigits(); if (this.c == '.') { +toDouble = true; this.add(); this.addDigits(); } if ((this.c == 'e') || (this.c == 'E')) { +toDouble = true; this.add(); if ((this.c == '+') || (this.c == '-')) { @@ -198,8 +201,11 @@ class JSONReader { this.addDigits(); } -return (this.buf.indexOf(".") >= 0) ? (Object) Double.parseDouble(this.buf.toString()) -: (Object) Long.parseLong(this.buf.toString()); +if (toDouble) { +return Double.parseDouble(this.buf.toString()); +} else { +return Long.parseLong(this.buf.toString()); +} } private Object string(char quote) { Added: struts/struts2/trunk/plugins/json/src/test/java/org/apache/struts2/json/JSONReaderTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/json/src/test/java/org/apache/struts2/json/JSONReaderTest.java?rev=1200422&view=auto == --- struts/struts2/trunk/plugins/json/src/test/java/org/apache/struts2/json/JSONReaderTest.java (added) +++ struts/struts2/trunk/plugins/json/src/test/java/org/apache/struts2/json/JSONReaderTest.java Thu Nov 10 16:51:46 2011 @@ -0,0 +1,47 @@ +package org.apache.struts2.json; + +import org.junit.Test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +/** + * User: mcucchiara + * Date: 10/11/11 + * Time: 17.26 + */ +public class JSONReaderTest { +private JSONReader reader = new JSONReader(); + +@Test +public void testExponentialNumber() throws Exception { +Object ret = reader.read("5e-5"); +assertNotNull(ret); +assertEquals(Double.class, ret.getClass()); +assertEquals(5.0E-5, ret); +} + +@Test +public void testExponentialNumber2() throws Exception { +Object ret = reader.read("123.4e10"); +assertNotNull(ret); +assertEquals(Double.class, ret.getClass()); +assertEquals(123.4e10, ret); +} + +@Test +public void testDecimalNumber() throws Exception { +Object ret = reader.read("3.2"); +assertNotNull(ret); +assertEquals(Double.class, ret.getClass()); +assertEquals(3.2, ret); +} + +@Test +public void testNaturalNumber() throws Exception { +Object ret = reader.read("123"); +assertNotNull(ret); +assertEquals(Long.class, ret.getClass()); +assertEquals(123L, ret); +} +}
[CONF] Confluence Changes in the last 24 hours
This is a daily summary of all recent changes in Confluence. - Updated Spaces: - Apache ActiveMQ (https://cwiki.apache.org/confluence/display/ACTIVEMQ) Pages - Networks of Brokers edited by tmielke (10:14 AM) https://cwiki.apache.org/confluence/display/ACTIVEMQ/Networks+of+Brokers Apache Camel (https://cwiki.apache.org/confluence/display/CAMEL) Pages - Mock edited by boday (02:44 PM) https://cwiki.apache.org/confluence/display/CAMEL/Mock Batch Consumer edited by bibryam (12:39 PM) https://cwiki.apache.org/confluence/display/CAMEL/Batch+Consumer XSLT edited by rnewcomb (12:12 PM) https://cwiki.apache.org/confluence/display/CAMEL/XSLT Camel 2.9.0 Release edited by davsclaus (05:49 AM) https://cwiki.apache.org/confluence/display/CAMEL/Camel+2.9.0+Release Apache Hive (https://cwiki.apache.org/confluence/display/Hive) Pages - LanguageManual UDF edited by jonch...@fb.com (06:53 PM) https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF Apache Mahout (https://cwiki.apache.org/confluence/display/MAHOUT) Pages - File Format Integrations created by lance.nors...@gmail.com (10:50 PM) https://cwiki.apache.org/confluence/display/MAHOUT/File+Format+Integrations Database Integrations created by lance.nors...@gmail.com (10:14 PM) https://cwiki.apache.org/confluence/display/MAHOUT/Database+Integrations Professional Support edited by apachejagdish (06:35 PM) https://cwiki.apache.org/confluence/display/MAHOUT/Professional+Support Apache OpenOffice.org Community (https://cwiki.apache.org/confluence/display/OOOUSERS) Pages - IP_Clearance edited by af (07:17 AM) https://cwiki.apache.org/confluence/display/OOOUSERS/IP_Clearance Apache Qpid (https://cwiki.apache.org/confluence/display/qpid) Pages - Addressing Examples created by g...@redhat.com (12:55 PM) https://cwiki.apache.org/confluence/display/qpid/Addressing+Examples Apache Sling Website (https://cwiki.apache.org/confluence/display/SLINGxSITE) Pages - Project Team edited by thecarlhall (12:59 PM) https://cwiki.apache.org/confluence/display/SLINGxSITE/Project+Team Apache Tapestry (https://cwiki.apache.org/confluence/display/TAPESTRY) Pages - Community edited by demey.emman...@gmail.com (03:37 AM) https://cwiki.apache.org/confluence/display/TAPESTRY/Community Apache VCL (https://cwiki.apache.org/confluence/display/VCL) Pages - 2011-11 Incubator VCL Report created by arkurth (04:40 PM) https://cwiki.apache.org/confluence/display/VCL/2011-11+Incubator+VCL+Report Apache Whirr (https://cwiki.apache.org/confluence/display/WHIRR) Pages - RoadMap edited by tomwhite (01:48 PM) https://cwiki.apache.org/confluence/display/WHIRR/RoadMap Change your notification preferences: https://cwiki.apache.org/confluence/users/viewnotifications.action