2011-10-19 4 views
0

첨부 된 groovy 클래스를 grails의 최신 스냅 샷으로 컴파일하려고 할 때 다음 예외가 발생합니다. 나는 오늘 빌드 서버에서 벗어났다. 예외적 인 핵심 주석은 다음과 같습니다. 이것이 자신의 작업이 아니라면이 버그를 변환기의 작성자에게보고하십시오.Grails/Groovy Transform Exception

/u01/workspace/grails/grails-spring-social-core/grails-app/domain/grails/plugins/springsocial/UserConnection.groovy : -1 : 사용 객체 변환 예외

메서드의 클래스 노드 grails.plugins.springsocial.UserConnection을 포함하는 제네릭 public static grails.plugins.springsocial.UserConnection create() {...}
직접. 당신은이 일을하도록되어 있지 않습니다. 새 ClassNode를 참조하는 새 ClassNode를 만들고 이전 클래스의 대신 새 ClassNode를 사용하십시오. 그렇지 않으면 컴파일러가 잘못된 설명자를 만들고 OpenJDK의 TypeResolver에 NullPointerException이 발생할 가능성이 있습니다 ( ). 이것이 이 아니라면이 버그를 변환기의 작성자에게보고하십시오.

이렇게보고 된 몇 가지 grails 버그처럼 보이지만, 플러그인에서 버그로 해고 된 곳입니다. 이것은 grails 문제 또는 groovy 문제입니까 ??

이 이야기는 그루비 같은 버그 일 수 있습니다 ...하지만 이것은 내 머리 위로 방법입니다.

http://comments.gmane.org/gmane.comp.lang.groovy.devel/26130

이의 근본 원인은 무엇인가? 다시 이것은 grails로 변환 할 때의 문제인가 아니면 Groovy 컴파일러 예외인가? 다음 클래스는 제가 컴파일하려고하는 것입니다 :

package grails.plugins.springsocial 

import groovy.transform.EqualsAndHashCode 

@EqualsAndHashCode(includeFields=true) 
class UserConnection implements Serializable { 

    String userId 
    String providerId 
    String providerUserId 
    String displayName 
    String profileUrl 
    String imageUrl 
    String accessToken 
    String secret 
    String refreshToken 
    Long rank 
    Long expireTime 

    static constraints = { 
     userId nullable: false 
     providerId nullable: false 
     providerUserId nullable: false 
     displayName nullable: true 
     profileUrl nullable: true 
     imageUrl nullable: true 
     accessToken nullable: false 
     secret nullable: true 
     refreshToken nullable: true 
     rank nullable: false 
     expireTime nullable: true 
    } 

    static mapping = { 
     table "UserConnection" 
     version false 

     id composite:['userId', 'providerId', 'providerUserId'] 

     userId column:'userId',length:64 
     providerId column:'providerId',length:128 
     providerUserId column:'providerUserId',length:128 
     displayName column:'displayName' 
     profileUrl column:'profileUrl' 
     imageUrl column:'imageUrl' 
     accessToken column:'accessToken' 
     secret column:'secret' 
     refreshToken column:'refreshToken' 
     rank column:'rank' 
     expireTime column:'expireTime' 
    } 
} 

감사합니다!

+0

Grails의 버전은 무엇입니까? 'EqualsAndHashCode'는 Groovy 1.8.0 이후에만 있었고 Grails 1.3.7은 Groovy 1.7에 있었습니까? –

+0

빌드 서버의 최신 2.0 스냅. 이것은 1.8.3 그루비 (groovy) 문제입니다. 1.8.2로 다운 그레이드하여 arround를 얻습니다. – chrislovecnm

답변

0

이렇게하면 Groovy 1.8.3 문제가 발생합니다. 나는 1.8.2로 다운 그레이드했고 더 이상 문제가 없었다.