firebiird opened a new issue, #14402:
URL: https://github.com/apache/grails-core/issues/14402

   Hello All,
   
   I'm using grails 3.3.8 & gorm = 6.1.10.RELEASE
   
   I think there is an issue when using the geospatial Point class in 
production environment. 
   
   Whenever the project is run in production I get the following error : 
   
   ```
    | Running application...
   Listening for transport dt_socket at address: 64407
   Connected to the target VM, address: '127.0.0.1:64407', transport: 'socket'
   2018-11-06 09:54:32.414 ERROR --- [           main] 
o.s.boot.SpringApplication               : Application startup failed
   Disconnected from the target VM, address: '127.0.0.1:64407', transport: 
'socket'
   
   java.lang.IllegalArgumentException: Property [location] is not a valid 
property of class grails3.mongodb.Tracking
           at 
org.grails.datastore.mapping.reflect.FieldEntityAccess$FieldEntityReflector.getPropertyReader(FieldEntityAccess.java:268)
           at 
org.grails.datastore.mapping.reflect.FieldEntityAccess$FieldEntityReflector.getProperty(FieldEntityAccess.java:286)
           at 
grails.gorm.validation.PersistentEntityValidator.validatePropertyWithConstraint(PersistentEntityValidator.groovy:319)
           at 
grails.gorm.validation.PersistentEntityValidator.validate(PersistentEntityValidator.groovy:76)
           at 
org.grails.datastore.gorm.GormValidationApi.doValidate(GormValidationApi.groovy:124)
           at 
org.grails.datastore.gorm.GormValidationApi.validate(GormValidationApi.groovy:153)
           at 
org.grails.datastore.gorm.GormValidateable$Trait$Helper.validate(GormValidateable.groovy:71)
           at 
org.grails.datastore.gorm.GormValidateable$Trait$Helper$validate$1.call(Unknown 
Source)
           at 
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
           at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
           at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:136)
           at grails3.mongodb.Tracking.validate(Tracking.groovy)
           at 
org.grails.datastore.gorm.GormInstanceApi.doSave(GormInstanceApi.groovy:332)
           at 
org.grails.datastore.gorm.GormInstanceApi.doSave(GormInstanceApi.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.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
           at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
           at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1225)
           at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
           at 
org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:947)
           at 
org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:930)
           at 
org.codehaus.groovy.runtime.InvokerHelper.invokeMethodSafe(InvokerHelper.java:92)
           at 
org.grails.datastore.gorm.GormInstanceApi$_save_closure5.doCall(GormInstanceApi.groovy:179)
           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.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
           at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
           at 
org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
           at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
           at groovy.lang.Closure.call(Closure.java:418)
           at 
org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:54)
           at 
org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:124)
           at com.sun.proxy.$Proxy91.doInSession(Unknown Source)
           at 
org.grails.datastore.mapping.core.DatastoreUtils.execute(DatastoreUtils.java:319)
           at 
org.grails.datastore.gorm.AbstractDatastoreApi.execute(AbstractDatastoreApi.groovy:40)
           at 
org.grails.datastore.gorm.GormInstanceApi.save(GormInstanceApi.groovy:178)
           at 
org.grails.datastore.gorm.GormInstanceApi.save(GormInstanceApi.groovy:118)
           at 
org.grails.datastore.gorm.GormEntity$Trait$Helper.save(GormEntity.groovy:98)
           at 
org.grails.datastore.gorm.GormEntity$Trait$Helper$save.call(Unknown Source)
           at 
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
           at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
           at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)
           at grails3.mongodb.Tracking.save(Tracking.groovy)
           at grails3.mongodb.Tracking.save(Tracking.groovy)
           at org.grails.datastore.gorm.GormEntity$save.call(Unknown Source)
           at 
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
           at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
           at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
           at grails3.mongodb.BootStrap$_closure1.doCall(BootStrap.groovy:12)
           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.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
           at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
           at 
org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
           at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
           at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1099)
           at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
           at groovy.lang.Closure.call(Closure.java:418)
           at groovy.lang.Closure.call(Closure.java:412)
           at 
grails.util.Environment.evaluateEnvironmentSpecificBlock(Environment.java:541)
           at 
grails.util.Environment.executeForEnvironment(Environment.java:534)
           at 
grails.util.Environment.executeForCurrentEnvironment(Environment.java:510)
           at 
org.grails.web.servlet.boostrap.DefaultGrailsBootstrapClass.callInit(DefaultGrailsBootstrapClass.java:74)
           at 
org.grails.web.servlet.context.GrailsConfigUtils.executeGrailsBootstraps(GrailsConfigUtils.java:65)
           at 
org.grails.plugins.web.servlet.context.BootStrapClassRunner.onStartup(BootStrapClassRunner.groovy:53)
           at 
grails.boot.config.GrailsApplicationPostProcessor.onApplicationEvent(GrailsApplicationPostProcessor.groovy:261)
           at 
grails.boot.config.GrailsApplicationPostProcessor.onApplicationEvent(GrailsApplicationPostProcessor.groovy)
           at 
org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
           at 
org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
           at 
org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
           at 
org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:393)
           at 
org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:347)
           at 
org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:883)
           at 
org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:144)
           at 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546)
           at 
org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
           at 
org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)
           at 
org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)
           at 
org.springframework.boot.SpringApplication.run(SpringApplication.java:303)
           at grails.boot.GrailsApp.run(GrailsApp.groovy:84)
           at grails.boot.GrailsApp.run(GrailsApp.groovy:393)
           at grails.boot.GrailsApp.run(GrailsApp.groovy:380)
           at grails.boot.GrailsApp$run.call(Unknown Source)
           at 
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
           at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
           at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:136)
           at grails3.mongodb.Application.main(Application.groovy:8)
   
   
   FAILURE: Build failed with an exception. 
   ```
   
   
   
   To test this I created a new grails application with Just one class included 
: 
   
   ```
   import grails.mongodb.geo.Point
   
   class Tracking {
   
       Point location;
   
       static constraints = {
           location geoIndex:"2dsphere"
       }
   }
   
   ```
   
   And a line in bootstrap which inserts a new tracking record. 
   
   When running in non production mode this works 100% of the time. however as 
soon as I use grails prod run-app or deploy it via tomcat, I get the stacktrace 
above. 
   
   I've attached a zipped version of the bare application for reproduction. 
   
   Thanks 
   
   Lee.
   
   
[grails3-mongodb.zip](https://github.com/grails/gorm-mongodb/files/2552587/grails3-mongodb.zip)
   
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to