[ https://issues.apache.org/jira/browse/GROOVY-8678?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Paul King updated GROOVY-8678: ------------------------------ Affects Version/s: 3.0.0-rc-3 > Groovy Script execution fails when comparing decimal values against decimal > constant without leading 0 > ------------------------------------------------------------------------------------------------------ > > Key: GROOVY-8678 > URL: https://issues.apache.org/jira/browse/GROOVY-8678 > Project: Groovy > Issue Type: Bug > Components: groovy-runtime, Groovysh > Affects Versions: 2.4.x, 2.5.0, 3.0.0-rc-3 > Reporter: Dyutimoy Sarkar > Priority: Major > Fix For: 4.x > > > Hi, > I am reporting the following bug as I am not able to ascertain from the web > if what I am facing is a consequence of desired intent. > Using groovy shell to execute the following groovy script snippet fails at > compilation phase when executing the script through java. I am using Jre1.7 > {code:java} > public static void main(String[] args) throws Exception, > IllegalAccessException { > Object evaluate = new GroovyShell().evaluate("\"abcd\".length() == .34"); > System.out.println("result: " + evaluate); > }{code} > In the above snippet, If I replace *.34* with *0.34* then the script > execution works as expected. > Exception reported is as follows > {code:java} > Exception in thread "main" > org.codehaus.groovy.control.MultipleCompilationErrorsException: startup > failed: > Script1.groovy: 1: unexpected token: . @ line 1, column 20. > "abcd".length() == .34 > ^ > 1 error > at > org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:311) > at > org.codehaus.groovy.control.ErrorCollector.addFatalError(ErrorCollector.java:151) > at > org.codehaus.groovy.control.ErrorCollector.addError(ErrorCollector.java:121) > at > org.codehaus.groovy.control.ErrorCollector.addError(ErrorCollector.java:133) > at org.codehaus.groovy.control.SourceUnit.addError(SourceUnit.java:332) > at > org.codehaus.groovy.antlr.AntlrParserPlugin.transformCSTIntoAST(AntlrParserPlugin.java:226) > at > org.codehaus.groovy.antlr.AntlrParserPlugin.parseCST(AntlrParserPlugin.java:192) > at org.codehaus.groovy.control.SourceUnit.parse(SourceUnit.java:230) > at > org.codehaus.groovy.control.CompilationUnit$1.call(CompilationUnit.java:186) > at > org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:968) > at > org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:633) > at > org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:609) > at > org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:586) > at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:352) > at groovy.lang.GroovyClassLoader.access$300(GroovyClassLoader.java:85) > at groovy.lang.GroovyClassLoader$5.provide(GroovyClassLoader.java:321) > at groovy.lang.GroovyClassLoader$5.provide(GroovyClassLoader.java:318) > at > org.codehaus.groovy.runtime.memoize.ConcurrentCommonCache.getAndPut(ConcurrentCommonCache.java:147) > at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:316) > at groovy.lang.GroovyShell.parseClass(GroovyShell.java:548) > at groovy.lang.GroovyShell.parse(GroovyShell.java:560) > at groovy.lang.GroovyShell.evaluate(GroovyShell.java:444) > at groovy.lang.GroovyShell.evaluate(GroovyShell.java:483) > at groovy.lang.GroovyShell.evaluate(GroovyShell.java:454) > at groovytest.Testtest.main(Testtest.java:19) > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)