Uploaded image for project: 'Groovy'
  1. Groovy
  2. GROOVY-8678

Groovy Script execution fails when comparing decimal values against decimal constant without leading 0

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 2.4.x, 2.5.0
    • Fix Version/s: 3.x
    • Component/s: groovy-runtime, Groovysh
    • Labels:
      None

      Description

      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

      public static void main(String[] args) throws Exception, IllegalAccessException { Object evaluate = new GroovyShell().evaluate("\"abcd\".length() == .34"); System.out.println("result: " + evaluate); 
      }

       In the above snippet, If I replace .34 with 0.34 then the script execution works as expected.

      Exception reported is as follows

      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)
      

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              dyutimoysarkar Dyutimoy Sarkar
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated: