[ 
https://issues.apache.org/jira/browse/GROOVY-4777?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ilguiz Latypov updated GROOVY-4777:
-----------------------------------
    Attachment: build.gradle

> GString cannot be cast to java.lang.String while iterating a collection from 
> java
> ---------------------------------------------------------------------------------
>
>                 Key: GROOVY-4777
>                 URL: https://issues.apache.org/jira/browse/GROOVY-4777
>             Project: Groovy
>          Issue Type: Bug
>          Components: groovy-runtime
>    Affects Versions: 1.7.10
>         Environment: Linux
>            Reporter: David Gomez
>            Priority: Major
>         Attachments: GStringTest.java, GStringTest.java, build.gradle
>
>
> When i try to iterate a map that contains GStrings i get a 
> {noformat}
> java.lang.ClassCastException: org.codehaus.groovy.runtime.GStringImpl cannot 
> be cast to java.lang.String
> at experiments.inputdata.GStringCastTest.testCast(GStringCastTest.java:24)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at junit.framework.TestCase.runTest(TestCase.java:154)
> at junit.framework.TestCase.runBare(TestCase.java:127)
> at junit.framework.TestResult$1.protect(TestResult.java:106)
> at junit.framework.TestResult.runProtected(TestResult.java:124)
> at junit.framework.TestResult.run(TestResult.java:109)
> at junit.framework.TestCase.run(TestCase.java:118)
> at junit.framework.TestSuite.runTest(TestSuite.java:208)
> at junit.framework.TestSuite.run(TestSuite.java:203)
> at 
> org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
> at 
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
> at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
> at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
> at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
> {noformat}
> Here is the code snippet:
> {code}
> ConfigSlurper slurper = new ConfigSlurper();
> String script =
>       "example {\n" +
>       "       one = \"one\"\n" +
>       "       two = \"${one} + ${one}\"\n" +
>       "       three = \"${two} + ${one}\"\n" +
>       "}";
> ConfigObject config = slurper.parse(script);
> Map<String, String> e = (Map<String, String>) config.get("example");
> for (String k : e.keySet()) {
>       String v = e.get(k);
>       System.out.println(v);
> }
> {code}
> See attached JUnit test case.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to