2013-04-29 1 views
4

Я использую Grails 2.2.2 с GGTS 3.3M1. Когда я запускаю приложение (grails run-app) и меняю что-то в файле groovy, Grails перекомпилирует файл. Во время этого процесса возникает следующий выход ошибки:Grails 2.2.2 Ошибки компиляции: ThreadGroupContext beaninfo

| Error Unexpected problem clearing ThreadGroupContext beaninfo: 
| Error java.lang.ClassCastException: java.beans.WeakIdentityMap cannot be cast to java.util.Map 
| Error at org.springsource.loaded.agent.JVMPlugin.reloadEvent(JVMPlugin.java:77) 
| Error at org.springsource.loaded.TypeRegistry.fireReloadEvent(TypeRegistry.java:1594) 
| Error at org.springsource.loaded.ReloadableType.loadNewVersion(ReloadableType.java:396) 
| Error at org.springsource.loaded.TypeRegistry.loadNewVersion(TypeRegistry.java:805) 
| Error at org.springsource.loaded.agent.ReloadableFileChangeListener.fileChanged(ReloadableFileChangeListener.java:51) 
| Error at org.springsource.loaded.agent.Watcher.determineChangesSince(FileSystemWatcher.java:218) 
| Error at org.springsource.loaded.agent.Watcher.run(FileSystemWatcher.java:205) 
| Error at java.lang.Thread.run(Thread.java:722) 
Reloading: JVMPlugin: warning: unable to clear BEANINFO_CACHE, cant find field 

Компиляция работает нормально, но ошибка все еще происходит.

+0

Эта ошибка, похоже, происходит с JDK 1.7. Я предлагаю вам попробовать использовать GGTS 3.2 + новейший JDK 1.6, он работает здесь для меня. –

+0

Я не могу этого сделать, потому что мне нужно JAva 1.7 для моего приложения. – confile

+0

потенциально связанный с этим: http://grails.1312388.n4.nabble.com/Reloading-JVMPlugin-warning-unable-to-clear-BEANINFO-CACHE-cant-find-field-td4644050.html и этот https://jira.grails.org/browse/GRAILS-10027 В нем говорится, что он исправлен, но я на JDK 1.7.0_55 и Grails 2.2, и я все еще получаю его. В нечетные моменты я также получаю вышеуказанную ошибку. – mastaBlasta

ответ

9

Это связано с тем, что вы находитесь на обновлении JDK 1.7 21. Что-то «переместилось» в JDK на эту версию, и логика очистки состояния нуждается в обновлении в springloaded. Это уже исправлено в Springloaded codebase, но не будет в новой версии Grails на некоторое время. Старые версии JDK 1.7 будут в порядке. Вы можете игнорировать это сообщение, но это означает, что некоторое состояние не было очищено, когда тип был перезагружен - и это означает, что может показаться, что он не перезагрузил некоторые изменения, которые вы могли бы внести в свои типы.

+0

Я перешел на jdk 1.7.0_17, и теперь все работает нормально. – confile