首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Grails / Gorm / Exception在线程"Thread-8“错误!源单元中阶段“语义分析”中的异常

Grails / Gorm / Exception在线程"Thread-8“错误!源单元中阶段“语义分析”中的异常
EN

Stack Overflow用户
提问于 2018-01-28 05:19:51
回答 2查看 324关注 0票数 2

使用Grails 3.3.2在Gorm6.1中获得此异常:

代码语言:javascript
复制
    Exception in thread "Thread-8" BUG! exception in phase 'semantic analysis' in source unit '/Users/emmanuj/projects/cleena/demo/src/main/groovy/com/emmanuj/cleena/UserService.groovy' unexpected NullpointerException
            at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1070)
            at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:603)
            at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:581)
            at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:558)
            at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:537)
            at grails.boot.GrailsApp.compileGroovyFile(GrailsApp.groovy:313)
            at grails.boot.GrailsApp.recompile(GrailsApp.groovy:299)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:498)
            at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1427)
            at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
            at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
            at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:384)
            at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
            at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:69)
            at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52)
            at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154)
            at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:182)
            at grails.boot.GrailsApp$_enableDevelopmentModeWatch_closure1.doCall(GrailsApp.groovy:240)
            at grails.boot.GrailsApp$_enableDevelopmentModeWatch_closure1.doCall(GrailsApp.groovy)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:498)
            at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1427)
            at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
            at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
            at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
            at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
            at groovy.lang.Closure.call(Closure.java:414)
            at groovy.lang.Closure.call(Closure.java:408)
            at groovy.lang.Closure.run(Closure.java:495)
            at java.lang.Thread.run(Thread.java:748)
    Caused by: java.lang.NullPointerException
            at org.grails.datastore.gorm.services.implementers.AbstractDetachedCriteriaServiceImplementor.doImplement(AbstractDetachedCriteriaServiceImplementor.groovy:79)
            at org.grails.datastore.gorm.services.implementers.AbstractReadOperationImplementer.implement(AbstractReadOperationImplementer.groovy:62)
            at org.grails.datastore.gorm.services.transform.ServiceTransformation.visitAfterTraitApplied(ServiceTransformation.groovy:278)
            at org.grails.datastore.gorm.transform.AbstractTraitApplyingGormASTTransformation.visit(AbstractTraitApplyingGormASTTransformation.groovy:52)
            at org.grails.datastore.gorm.transform.AbstractTraitApplyingGormASTTransformation.visit(AbstractTraitApplyingGormASTTransformation.groovy:42)
            at org.grails.datastore.gorm.transform.AbstractGormASTTransformation.visit(AbstractGormASTTransformation.groovy:59)
            at org.codehaus.groovy.transform.ASTTransformationVisitor.visitClass(ASTTransformationVisitor.java:134)
            at org.codehaus.groovy.transform.ASTTransformationVisitor$2.call(ASTTransformationVisitor.java:178)
            at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1065)
            ... 34 more

复制步骤

  1. 创建一个新的Grails 3.3.2项目
  2. 创建一个名为User的域类,如下所示: 导入grails.compiler.GrailsCompileStatic @GrailsCompileStatic类用户{ String静态约束={}}
  3. 以及以下Gorm数据服务接口和类: 包com.emmanuj.cleena /** * DataService界面用于用户域*/接口IUserService {用户获取(可序列化id)列表列表(Map)长计数()、空删除(可序列化id)用户保存(用户用户)}

和抽象类实现:

代码语言:javascript
复制
    @Slf4j
    @Service(User)
    abstract class UserService implements IUserService {
        def grailsApplication
        List<User> search(User currentUser, long radius, int offset, int max){
            return []
        }

        def getZipcodes(String zipCode, long radius) {
            return []
        }

    }
  1. 从交互式提示符运行grails应用程序。
  2. 更改UserService
  3. 重新编译期间出现异常/崩溃。

Groovy版本为2.4.13

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-03 16:10:32

我开了一期关于github回购的文章。看起来像一个GORM Hibernate bug:https://github.com/grails/gorm-hibernate5/issues/72。但他们关闭了它,因为“无法修复”。不知道为什么..。

票数 0
EN

Stack Overflow用户

发布于 2021-01-12 14:31:31

重新启动Grails服务器修复了这个问题.

以下是实际的解释-

我创建了一个运行良好的类,然后将它更新为关联另一个依赖类,Grails抛出了这个错误。这个错误仅仅意味着当服务器运行时需要创建更多的对象时,它不能编译已经编译过的类。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48483419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档