[
https://issues.apache.org/jira/browse/GROOVY-7630?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
John Wagenleitner resolved GROOVY-7630.
---------------------------------------
Resolution: Fixed
Fix Version/s: 2.5.0-beta-1
2.4.6
> JsonSlurper LAX parser with invalid number
> ------------------------------------------
>
> Key: GROOVY-7630
> URL: https://issues.apache.org/jira/browse/GROOVY-7630
> Project: Groovy
> Issue Type: Bug
> Components: JSON
> Affects Versions: 2.4.5
> Environment: DISTRIB_ID=Ubuntu
> DISTRIB_RELEASE=14.10
> DISTRIB_CODENAME=utopic
> DISTRIB_DESCRIPTION="Ubuntu 14.10"
> Linux 3.16.0-44-generic x86_64
> Reporter: Alan Hengle
> Priority: Minor
> Fix For: 2.4.6, 2.5.0-beta-1
>
>
> The JsonSlurper LAX parser parses an invalid number incorrectly:
> {code:title=Example.java|borderStyle=solid}
> import groovy.json.*
> def obj = new JsonSlurper().setType(JsonParserType.LAX).parseText('{ "num":
> 1a}')
> println "1a: num = ${obj.num}"
> println "1a: type is " + obj.num.class.name
> obj = new JsonSlurper().setType(JsonParserType.LAX).parseText('{ "num": 1A}')
> println "1A: num = ${obj.num}"
> println "1A: type is " + obj.num.class.name
> {code}
> produces:
> 1a: num = 59
> 1a: type is java.lang.Integer
> 1A: num = 27
> 1A: type is java.lang.Integer
> It seems like the parser should fail this as an invalid number, though one
> could argue the LAX parser could interpret it as hex 1a, but neither is being
> done. Valid numbers are of course parsed correctly.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)