[
https://issues.apache.org/jira/browse/GROOVY-7086?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Paul King closed GROOVY-7086.
-----------------------------
> ShortTypeHandling: java.lang.ClassCastException: java.lang.Class cannot be
> cast to java.lang.String
> ---------------------------------------------------------------------------------------------------
>
> Key: GROOVY-7086
> URL: https://issues.apache.org/jira/browse/GROOVY-7086
> Project: Groovy
> Issue Type: Bug
> Components: groovy-runtime
> Affects Versions: 2.3.0
> Environment: Tomcat 7.0.x, jdk 1.6
> Reporter: Fernando Kasten Peinado
> Assignee: John Wagenleitner
> Priority: Minor
> Fix For: 2.4.8
>
>
> I'm getting this error using groovy and JasperReports, when I use a field
> with a bean property that is a java.lang.Class.
> It seams that the implementation is not compatible:
> /** NOW IT IS LIKE THIS */
> {code}
> public static Class castToClass(Object object) {
> if (object==null) return null;
> if (object instanceof Class) return (Class) object;
> try {
> return Class.forName(object.toString());
> } catch (Exception e) {
> throw new GroovyCastException(object, Class.class, e);
> }
> }
> public static String castToString(Object object) {
> if (object==null) return null;
> if (object instanceof Class) return (String) object; // CLASS CAST IS
> HERE!
> return object.toString();
> }
> {code}
> /** I THINK IT SHOULD BE */
> {code}
> public static String castToString(Object object) {
> if (object==null) return null;
> if (object instanceof Class) return ((Class)object).getName();
> /*
> to be compatible with the reverse operation (castToClass) thats do
> Class.forName(), right?
> */
> return object.toString();
> }
> {code}
> thanks, in advance!
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)