Ken Scoggins created GROOVY-7494:
------------------------------------

             Summary: ArrayStoreException assigning GStringImpl to String[] 
when using Indy
                 Key: GROOVY-7494
                 URL: https://issues.apache.org/jira/browse/GROOVY-7494
             Project: Groovy
          Issue Type: Bug
          Components: groovy-runtime
    Affects Versions: 2.4.3
         Environment: Windows 7; Java 8
            Reporter: Ken Scoggins


While upgrading a software baseline from Java 7/Groovy 2.0.2 to Java 8/Groovy 
2.4, it appears that assigning a GString with an embedded variable reference to 
a String array is broken when using Indy. The following example demonstrates 
this issue:

{code}
int a = 1
String[] fubar = new String[1]
fubar[0] = "Item $a"
println fubar
{code}

Without Indy, it works just fine:
{panel}
/c/test$ groovy GroovyIndyBug.groovy
[Item 1]
{panel}

With Indy, we get the ArrayStoreException
{panel}
/c/test$ groovy -indy GroovyIndyBug.groovy
Caught: java.lang.ArrayStoreException: org.codehaus.groovy.runtime.GStringImpl
java.lang.ArrayStoreException: org.codehaus.groovy.runtime.GStringImpl
        at GroovyIndyBug.run(GroovyIndyBug.groovy:3)
{panel}

I tried various other assignment methods and this appears to be the only one 
with the issue.  Oddly, even doing the same assignment, but at creation time 
instead of after, works just fine.  Some of the other related scenarios I tried 
are:

{code}
int a = 1

String[] foo = ["Assigned At Creation $a"]
println foo

foo[0] = "No Embedded Variable"
println foo

foo[0] = "as String $a" as String
println foo

foo[0] = "BROKEN $a"
println foo
{code}

With Indy:
{panel}
/c/test $ groovy -indy GroovyIndyBug.groovy
[Assigned At Creation 1]
[No Embedded Variable]
[as String 1]
Caught: java.lang.ArrayStoreException: org.codehaus.groovy.runtime.GStringImpl
java.lang.ArrayStoreException: org.codehaus.groovy.runtime.GStringImpl
        at GroovyIndyBug.run(GroovyIndyBug.groovy:12){panel}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to