You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Paul King (JIRA)" <ji...@apache.org> on 2017/02/01 23:19:07 UTC

[jira] [Closed] (GROOVY-7086) ShortTypeHandling: java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.String

     [ 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)