2013-11-01 21 views
3

我自己解決了這個問題,但編譯錯誤沒有提供反饋,所以我在此處放棄修復。Groovy java.lang.VerifyError - 期望在堆棧上查找整數

的代碼是像

def aMethod(String param1, String param2) 
{ 
    Sql gsql = Sql.newInstance(<init code>) 
    int hashCode = null 

    ... more code 
} 

我認爲Groovy的被包裹int變量中的對象,但顯然不是充分。當我刪除int hashcode = null時,一切運行良好。

可能與一些正在進入Groovy的靜態編譯/優化的東西,這些天

+0

哦,VerifyError好像是在我實例化類的時候發生的......看起來JDK拒絕了我所知道的生成的字節碼。 –

+2

當您收到'VerifyError'時,是時候在Groovy問題跟蹤器中提交錯誤報告了。 –

回答

3

首先感謝Peter備案https://jira.codehaus.org/browse/GROOVY-6419

INT X = null不是在Groovy無效了,因爲Groovy的1.8。那時候我們做了一個很大的改變,叫做「原始優化」,如果程序主要基於Java原語,它允許Groovy以接近Java的速度運行一些程序。令人遺憾的是,這需要Groovy在處理null時將int處理爲int。否則,我們將無法使用JVM爲此提供的操作,從而再次損失速度優勢。

相關問題