Skip to content

GPMONGODB-114: NullPointerException in isDirty() #452

@graemerocher

Description

@graemerocher

Original Reporter: pledbrook
Environment: Grails 1.3.7, Mac OS X Lion
Version: 1.0.0.M7
Migrated From: http://jira.grails.org/browse/GPMONGODB-114

Here's the output from the grailstwitter Cloud Foundry sample app:
{noformat}
2011-10-07 20:36:53,624 [main] DEBUG mapping.DefaultSearchableCompassClassMappingXmlBuilder - org.grails.twitter.Status xml [

authorId dateCreated message ] 2011-10-07 20:36:53,624 [main] DEBUG mapping.SearchableClassPropertySearchableGrailsDomainClassMappingConfigurator - Adding [org.grails.twitter.Status] mapping to CompassConfiguration 2011-10-07 20:36:54,780 [main] DEBUG spring.SearchableCompassFactoryBean - Done building Compass 2011-10-07 20:37:01,442 [main] INFO connection.CachingConnectionFactory - Established shared Rabbit Connection: Shared Rabbit Connection: org.springframework.amqp.rabbit.connection.SimpleConnection@4e42751f 2011-10-07 20:37:03,717 [main] DEBUG domain.DynamicDomainMethodUtils - Adding searchable methods to [org.grails.twitter.auth.Person] 2011-10-07 20:37:04,025 [main] DEBUG domain.DynamicDomainMethodUtils - Adding searchable methods to [org.grails.twitter.Status] 2011-10-07 20:37:05,312 [main] DEBUG searchable.SearchableGrailsPlugin - Not performing bulk index 2011-10-07 20:37:14,163 [main] INFO bootstrap.BootStrap - >> Time taken to load Mongo data: 6.466s 2011-10-07 20:37:14,430 [main] INFO compass.CompassGpsUtils - Starting Searchable Plugin bulk index 2011-10-07 20:37:14,703 [main] INFO compass.CompassGpsUtils - Finished Searchable Plugin bulk index, 272 ms 2011-10-07 20:37:15,405 [main] INFO bootstrap.BootStrap - Indexing 1000 status messages 2011-10-07 20:37:18,867 [main] INFO bootstrap.BootStrap - Finished indexing 2011-10-07 20:39:48,330 [SimpleAsyncTaskExecutor-1] DEBUG twitter.SyncService - Reindexing instance 1001 of org.grails.twitter.Status 2011-10-07 20:39:48,510 [pool-1-thread-1] DEBUG twitter.TagService - Adding tags 'cloudfoundry, grails' to status 1001 java.lang.NullPointerException at org.grails.datastore.mapping.mongo.engine.MongoEntityPersister.isDirty(MongoEntityPersister.java:541) at org.grails.datastore.mapping.core.AbstractSession.isDirty(AbstractSession.java:257) at org.grails.datastore.mapping.engine.NativeEntryEntityPersister.persistEntity(NativeEntryEntityPersister.java:603) at org.grails.datastore.mapping.engine.EntityPersister.persist(EntityPersister.java:130) at org.grails.datastore.mapping.core.AbstractSession.persist(AbstractSession.java:464) at org.grails.datastore.mapping.core.Session$persist.call(Unknown Source) at org.grails.datastore.gorm.GormInstanceApi.doSave(GormInstanceApi.groovy:174) at sun.reflect.GeneratedMethodAccessor119.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1058) at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1070) at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrentN(ScriptBytecodeAdapter.java:77) at org.grails.datastore.gorm.GormInstanceApi.this$dist$invoke$4(GormInstanceApi.groovy) at org.grails.datastore.gorm.GormInstanceApi$4.methodMissing(GormInstanceApi.groovy) at sun.reflect.GeneratedMethodAccessor118.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) at groovy.lang.MetaClassImpl.invokeMissingMethod(MetaClassImpl.java:813) at groovy.lang.MetaClassImpl.invokePropertyOrMissing(MetaClassImpl.java:1107) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1060) at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1070) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886) at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:157) at org.grails.datastore.gorm.GormInstanceApi$4.doInSession(GormInstanceApi.groovy:150) at org.grails.datastore.mapping.core.DatastoreUtils.execute(DatastoreUtils.java:301) at org.grails.datastore.mapping.core.DatastoreUtils$execute.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40) at org.grails.datastore.mapping.core.DatastoreUtils$execute.call(Unknown Source) at org.grails.datastore.gorm.AbstractDatastoreApi.execute(AbstractDatastoreApi.groovy:34) at sun.reflect.GeneratedMethodAccessor114.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:266) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:51) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149) at org.grails.datastore.gorm.GormInstanceApi.save(GormInstanceApi.groovy:148) at sun.reflect.GeneratedMethodAccessor117.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1058) at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1070) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886) at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:793) at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:776) at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN(ScriptBytecodeAdapter.java:163) at org.grails.datastore.gorm.InstanceMethodInvokingClosure.call(GormEnhancer.groovy:241) at org.codehaus.groovy.runtime.metaclass.ClosureStaticMetaMethod.invoke(ClosureStaticMetaMethod.java:59) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoMetaMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:307) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:63) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124) at org.grails.twitter.TagService.extractTagsFromMessage(TagService.groovy:26) at org.grails.twitter.TagService$extractTagsFromMessage.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124) at org.grails.twitter.StatusService$_updateStatus_closure1.doCall(StatusService.groovy:14) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSite.invoke(PogoMetaMethodSite.java:225) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:51) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149) at org.grails.twitter.StatusService$_updateStatus_closure1.doCall(StatusService.groovy) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1058) at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1070) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886) at groovy.lang.Closure.call(Closure.java:282) at groovy.lang.Closure.call(Closure.java:277) at groovy.lang.Closure.run(Closure.java:360) at java_lang_Runnable$run.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) at grails.plugin.executor.SessionBoundRunnable.run(SessionBoundRunnable.groovy:39) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) {noformat}

The bit of code triggering the error is here: https://github.com/SpringSource/cloudfoundry-samples/blob/master/grailstwitter/grails-app/services/org/grails/twitter/TagService.groovy#L26

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions