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